All functions:
  Elements:
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/uri.cpp:12,1
    - Dst: Botan::URI::from_any
      Src: /src/botan/src/fuzzer/uri.cpp:17,1
    - Dst: std::string
      Src: /src/botan/src/fuzzer/uri.cpp:17,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/fuzzer/uri.cpp:17,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/uri.cpp:17,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/uri.cpp:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 19
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/uri.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Botan::URI::from_any
    - std::span<const uint8_t>::size
    - reinterpret_cast<const char*>
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> input)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:16,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:18,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:18,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:22,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:22,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:22,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:23,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:23,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:23,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:25,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:28,1
    - Dst: is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:28,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:31,1
    - Dst: auto::negate
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:31,1
    - Dst: is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:31,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:34,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:37,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:40,1
    - Dst: auto::is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:42,1
    - Dst: auto::invert
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:43,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:44,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:47,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:50,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:53,1
    - Dst: auto::invert
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:53,1
    - Dst: auto::is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:56,1
    - Dst: auto::invert
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:57,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:58,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:60,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:61,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:65,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:68,1
    - Dst: auto::square_self
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:69,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:70,1
    - Dst: auto::is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:77,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:79,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:80,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:81,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:81,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:82,1
    - Dst: auto::value
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:82,1
    - Dst: auto::is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:85,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:87,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:88,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:89,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:89,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:90,1
    - Dst: auto::value
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - ' group'
    - in
    argTypes:
    - Botan::EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 92
    functionName: check_scalar_arith
    functionSourceFile: /src/botan/src/fuzzer/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::one
    - auto::negate
    - Botan::EC_Scalar::from_bytes_mod_order
    - is_zero
    - auto::value
    - std::span<const uint8_t>::last
    - auto::invert_vartime
    - auto::invert
    - auto::serialize_to
    - FUZZER_ASSERT_TRUE
    - get_order_bytes
    - std::span<const uint8_t>::first
    - Botan::EC_Scalar::EC_Scalar
    - auto::has_value
    - std::span<const uint8_t>::size
    - Botan::EC_Scalar::deserialize
    - auto::square_self
    linkageType: ''
    returnType: void
    signature: void check_scalar_arith(const Botan::EC_Group& group, std::span<const
      uint8_t> in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:16,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:18,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:18,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:22,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:22,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:22,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:23,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:23,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:23,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:25,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:28,1
    - Dst: is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:28,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:31,1
    - Dst: auto::negate
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:31,1
    - Dst: is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:31,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:34,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:37,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:40,1
    - Dst: auto::is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:42,1
    - Dst: auto::invert
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:43,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:44,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:47,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:50,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:53,1
    - Dst: auto::invert
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:53,1
    - Dst: auto::is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:56,1
    - Dst: auto::invert
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:57,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:58,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:60,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:61,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:65,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:68,1
    - Dst: auto::square_self
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:69,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:70,1
    - Dst: auto::is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:77,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:79,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:80,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:81,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:81,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:82,1
    - Dst: auto::value
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:82,1
    - Dst: auto::is_zero
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:85,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:87,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:88,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:89,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:89,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:90,1
    - Dst: auto::value
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - ' group'
    - in
    argTypes:
    - Botan::EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 92
    functionName: check_scalar_arith
    functionSourceFile: /src/botan/src/fuzzer/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::one
    - auto::negate
    - Botan::EC_Scalar::from_bytes_mod_order
    - is_zero
    - auto::value
    - std::span<const uint8_t>::last
    - auto::invert_vartime
    - auto::invert
    - auto::serialize_to
    - FUZZER_ASSERT_TRUE
    - get_order_bytes
    - std::span<const uint8_t>::first
    - Botan::EC_Scalar::EC_Scalar
    - auto::has_value
    - std::span<const uint8_t>::size
    - Botan::EC_Scalar::deserialize
    - auto::square_self
    linkageType: ''
    returnType: void
    signature: void check_scalar_arith(const Botan::EC_Group& group, std::span<const
      uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:98,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:103,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:105,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:106,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:107,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:108,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:109,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:110,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:111,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:112,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:113,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:114,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:115,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:116,1
    - Dst: check_scalar_arith
      Src: /src/botan/src/fuzzer/ec_scalar.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 138
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::subspan
    - Botan::EC_Group::from_name
    - check_scalar_arith
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:10,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:12,1
    - Dst: std::memcpy
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:18,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:18,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:18,1
    - Dst: Botan::basecase_sqr
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:31,1
    - Dst: Botan::bigint_comba_sqr4
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:34,1
    - Dst: Botan::bigint_comba_mul4
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:36,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:37,1
    - Dst: Botan::bigint_comba_sqr6
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:40,1
    - Dst: Botan::bigint_comba_mul6
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:42,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:43,1
    - Dst: Botan::bigint_comba_sqr8
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:46,1
    - Dst: Botan::bigint_comba_mul8
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:48,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:49,1
    - Dst: Botan::bigint_comba_sqr9
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:52,1
    - Dst: Botan::bigint_comba_mul9
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:54,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:55,1
    - Dst: Botan::bigint_comba_sqr16
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:58,1
    - Dst: Botan::bigint_comba_mul16
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:60,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:61,1
    - Dst: Botan::bigint_comba_sqr24
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:64,1
    - Dst: Botan::bigint_comba_mul24
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:66,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:67,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:71,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:74,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:77,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:80,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:83,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_sqr.cpp:86,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 87
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/mp_comba_sqr.cpp
    functionUses: 0
    functionsReached:
    - Botan::basecase_sqr
    - Botan::bigint_comba_mul24
    - Botan::bigint_comba_sqr8
    - Botan::bigint_comba_mul9
    - Botan::bigint_comba_mul6
    - Botan::bigint_comba_mul4
    - Botan::bigint_comba_sqr9
    - compare_word_vec
    - Botan::bigint_comba_sqr6
    - Botan::bigint_comba_sqr16
    - std::memcpy
    - Botan::bigint_comba_sqr4
    - Botan::bigint_comba_mul8
    - Botan::bigint_comba_mul16
    - Botan::bigint_comba_sqr24
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setw
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:26,1
    - Dst: std::setfill
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:26,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - name
    - x
    - x_len
    argTypes:
    - std::string_view
    - word[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: format_word_vec
    functionSourceFile: /src/botan/src/fuzzer/mp_fuzzers.h
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::setw
    - std::setfill
    linkageType: ''
    returnType: std::string
    signature: std::string format_word_vec(std::string_view name, const word x[],
      size_t x_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - x
    - x_len
    argTypes:
    - std::string_view
    - word[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: dump_word_vec
    functionSourceFile: /src/botan/src/fuzzer/mp_fuzzers.h
    functionUses: 0
    functionsReached:
    - format_word_vec
    linkageType: ''
    returnType: void
    signature: void dump_word_vec(std::string_view name, const word x[], size_t x_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:38,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:42,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:43,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:44,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:51,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:52,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:53,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:58,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:59,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - x
    - x_len
    - y
    - y_len
    - comparing
    argTypes:
    - word[]
    - size_t
    - word[]
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 63
    functionName: compare_word_vec
    functionSourceFile: /src/botan/src/fuzzer/mp_fuzzers.h
    functionUses: 1
    functionsReached:
    - min
    - FUZZER_WRITE_AND_CRASH
    - dump_word_vec
    linkageType: ''
    returnType: void
    signature: void compare_word_vec(const word x[], size_t x_len, const word y[],
      size_t y_len, const char* comparing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/fuzzer/x509_path.cpp:21,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/x509_path.cpp:22,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/fuzzer/x509_path.cpp:22,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/fuzzer/x509_path.cpp:24,1
    - Dst: x509_path_validate
      Src: /src/botan/src/fuzzer/x509_path.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 28
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - std::unique_ptr::get
    - std::vector::push_back
    - x509_path_validate
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_sm2p256.cpp:11,1
    - Dst: check_ecc_math
      Src: /src/botan/src/fuzzer/ecc_sm2p256.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ecc_sm2p256.cpp
    functionUses: 0
    functionsReached:
    - check_ecc_math
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/fuzzer/ipv4.cpp:13,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/ipv4.cpp:13,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ipv4.cpp:13,1
    - Dst: Botan::string_to_ipv4
      Src: /src/botan/src/fuzzer/ipv4.cpp:14,1
    - Dst: Botan::ipv4_to_string
      Src: /src/botan/src/fuzzer/ipv4.cpp:15,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/ipv4.cpp:16,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ipv4.cpp:19,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/fuzzer/ipv4.cpp:20,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/ipv4.cpp:20,1
    - Dst: Botan::ipv4_to_string
      Src: /src/botan/src/fuzzer/ipv4.cpp:21,1
    - Dst: Botan::string_to_ipv4
      Src: /src/botan/src/fuzzer/ipv4.cpp:22,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/ipv4.cpp:23,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/ipv4.cpp:23,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/ipv4.cpp:24,1
    - Dst: auto::value
      Src: /src/botan/src/fuzzer/ipv4.cpp:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 26
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ipv4.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_be<uint32_t>
    - Botan::string_to_ipv4
    - auto::value
    - FUZZER_ASSERT_TRUE
    - Botan::ipv4_to_string
    - auto::has_value
    - std::span<const uint8_t>::size
    - reinterpret_cast<const char*>
    - std::span<const uint8_t>::data
    - FUZZER_ASSERT_EQUAL
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_p224.cpp:11,1
    - Dst: check_ecc_math
      Src: /src/botan/src/fuzzer/ecc_p224.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ecc_p224.cpp
    functionUses: 0
    functionsReached:
    - check_ecc_math
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/divide.cpp:11,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/fuzzer/divide.cpp:16,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/fuzzer/divide.cpp:17,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/fuzzer/divide.cpp:18,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/fuzzer/divide.cpp:19,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/fuzzer/divide.cpp:20,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/fuzzer/divide.cpp:21,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/fuzzer/divide.cpp:22,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/divide.cpp:24,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/divide.cpp:24,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/divide.cpp:24,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/divide.cpp:25,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/divide.cpp:25,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/divide.cpp:25,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/divide.cpp:25,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/divide.cpp:25,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/fuzzer/divide.cpp:31,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/divide.cpp:33,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/divide.cpp:37,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/fuzzer/divide.cpp:39,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/divide.cpp:41,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/divide.cpp:42,1
    - Dst: Botan::BigInt::word_at
      Src: /src/botan/src/fuzzer/divide.cpp:46,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/fuzzer/divide.cpp:51,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/divide.cpp:53,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/divide.cpp:55,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/fuzzer/divide.cpp:58,1
    - Dst: Botan::BigInt::word_at
      Src: /src/botan/src/fuzzer/divide.cpp:58,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/divide.cpp:59,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/divide.cpp:60,1
    - Dst: Botan::BigInt::word_at
      Src: /src/botan/src/fuzzer/divide.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 61
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/divide.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::subspan
    - FUZZER_ASSERT_EQUAL
    - Botan::BigInt::word_at
    - Botan::vartime_divide
    - FUZZER_ASSERT_TRUE
    - Botan::ct_divide
    - std::span<const uint8_t>::size
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_even
      Src: /src/botan/src/fuzzer/invert.cpp:16,1
    - Dst: is_even
      Src: /src/botan/src/fuzzer/invert.cpp:16,1
    - Dst: Botan::BigInt::is_nonzero
      Src: /src/botan/src/fuzzer/invert.cpp:26,1
    - Dst: Botan::low_zero_bits
      Src: /src/botan/src/fuzzer/invert.cpp:27,1
    - Dst: Botan::BigInt::is_odd
      Src: /src/botan/src/fuzzer/invert.cpp:30,1
    - Dst: Botan::BigInt::is_odd
      Src: /src/botan/src/fuzzer/invert.cpp:30,1
    - Dst: Botan::low_zero_bits
      Src: /src/botan/src/fuzzer/invert.cpp:38,1
    - Dst: Botan::BigInt::is_odd
      Src: /src/botan/src/fuzzer/invert.cpp:41,1
    - Dst: Botan::BigInt::is_odd
      Src: /src/botan/src/fuzzer/invert.cpp:41,1
    - Dst: Botan::BigInt::is_negative
      Src: /src/botan/src/fuzzer/invert.cpp:64,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - ' n'
    - ' mod'
    argTypes:
    - Botan::BigInt
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 72
    functionName: ref_inverse_mod
    functionSourceFile: /src/botan/src/fuzzer/invert.cpp
    functionUses: 0
    functionsReached:
    - is_even
    - Botan::BigInt::is_negative
    - Botan::BigInt::is_nonzero
    - Botan::low_zero_bits
    - Botan::BigInt::is_odd
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt ref_inverse_mod(const Botan::BigInt& n, const Botan::BigInt&
      mod)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_even
      Src: /src/botan/src/fuzzer/invert.cpp:16,1
    - Dst: is_even
      Src: /src/botan/src/fuzzer/invert.cpp:16,1
    - Dst: Botan::BigInt::is_nonzero
      Src: /src/botan/src/fuzzer/invert.cpp:26,1
    - Dst: Botan::low_zero_bits
      Src: /src/botan/src/fuzzer/invert.cpp:27,1
    - Dst: Botan::BigInt::is_odd
      Src: /src/botan/src/fuzzer/invert.cpp:30,1
    - Dst: Botan::BigInt::is_odd
      Src: /src/botan/src/fuzzer/invert.cpp:30,1
    - Dst: Botan::low_zero_bits
      Src: /src/botan/src/fuzzer/invert.cpp:38,1
    - Dst: Botan::BigInt::is_odd
      Src: /src/botan/src/fuzzer/invert.cpp:41,1
    - Dst: Botan::BigInt::is_odd
      Src: /src/botan/src/fuzzer/invert.cpp:41,1
    - Dst: Botan::BigInt::is_negative
      Src: /src/botan/src/fuzzer/invert.cpp:64,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - ' n'
    - ' mod'
    argTypes:
    - Botan::BigInt
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 72
    functionName: ref_inverse_mod
    functionSourceFile: /src/botan/src/fuzzer/invert.cpp
    functionUses: 0
    functionsReached:
    - is_even
    - Botan::BigInt::is_negative
    - Botan::BigInt::is_nonzero
    - Botan::low_zero_bits
    - Botan::BigInt::is_odd
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt ref_inverse_mod(const Botan::BigInt& n, const Botan::BigInt&
      mod)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/invert.cpp:79,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/invert.cpp:83,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/invert.cpp:83,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/invert.cpp:83,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/invert.cpp:84,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/invert.cpp:84,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/invert.cpp:84,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/invert.cpp:84,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/invert.cpp:84,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/fuzzer/invert.cpp:90,1
    - Dst: ref_inverse_mod
      Src: /src/botan/src/fuzzer/invert.cpp:91,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/invert.cpp:94,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/invert.cpp:94,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/invert.cpp:95,1
    - Dst: gcd
      Src: /src/botan/src/fuzzer/invert.cpp:96,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/invert.cpp:97,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/invert.cpp:98,1
    - Dst: to_hex_string
      Src: /src/botan/src/fuzzer/invert.cpp:99,1
    - Dst: to_hex_string
      Src: /src/botan/src/fuzzer/invert.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/invert.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::subspan
    - ref_inverse_mod
    - gcd
    - to_hex_string
    - Botan::inverse_mod
    - FUZZER_WRITE_AND_CRASH
    - std::span<const uint8_t>::size
    - Botan::BigInt::to_hex_string
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_p384.cpp:11,1
    - Dst: check_ecc_math
      Src: /src/botan/src/fuzzer/ecc_p384.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ecc_p384.cpp
    functionUses: 0
    functionsReached:
    - check_ecc_math
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_numsp512.cpp:11,1
    - Dst: check_ecc_math
      Src: /src/botan/src/fuzzer/ecc_numsp512.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ecc_numsp512.cpp
    functionUses: 0
    functionsReached:
    - check_ecc_math
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: random_prime
      Src: /src/botan/src/fuzzer/ressol.cpp:16,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/fuzzer/ressol.cpp:16,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/fuzzer/ressol.cpp:17,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ressol.cpp:19,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/ressol.cpp:24,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/fuzzer/ressol.cpp:25,1
    - Dst: auto::reduce
      Src: /src/botan/src/fuzzer/ressol.cpp:28,1
    - Dst: auto::square
      Src: /src/botan/src/fuzzer/ressol.cpp:29,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/ressol.cpp:32,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/ressol.cpp:32,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/ressol.cpp:33,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/ressol.cpp:34,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/ressol.cpp:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 39
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ressol.cpp
    functionUses: 0
    functionsReached:
    - fuzzer_rng
    - auto::square
    - auto::reduce
    - random_prime
    - Botan::sqrt_modulo_prime
    - Botan::Barrett_Reduction::for_public_modulus
    - FUZZER_WRITE_AND_CRASH
    - std::span<const uint8_t>::size
    - Botan::BigInt::to_hex_string
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_power_of_2
      Src: /src/botan/src/fuzzer/mem_pool.cpp:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - plen
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: compute_expected_alignment
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_power_of_2
    linkageType: ''
    returnType: size_t
    signature: size_t compute_expected_alignment(size_t plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: RawPage
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawPage(void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/botan/src/fuzzer/mem_pool.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: ~RawPage()
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void ~RawPage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: RawPage
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawPage(const RawPage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& operator=(const RawPage& other)'
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPage
    signature: RawPage & operator=(const RawPage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/botan/src/fuzzer/mem_pool.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: RawPage
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void RawPage(RawPage&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/botan/src/fuzzer/mem_pool.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: '& operator=(RawPage&& other) noexcept'
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: RawPage
    signature: RawPage & operator=(RawPage&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ptr
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * ptr() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/fuzzer/mem_pool.cpp:57,1
    - Dst: ::posix_memalign
      Src: /src/botan/src/fuzzer/mem_pool.cpp:62,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/mem_pool.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/mem_pool.cpp:66,1
    - Dst: RawPage
      Src: /src/botan/src/fuzzer/mem_pool.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - count
    - page_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: allocate_raw_pages
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - ::posix_memalign
    - std::vector::reserve
    - RawPage
    - FUZZER_ASSERT_EQUAL
    linkageType: ''
    returnType: std::vector<RawPage>
    signature: std::vector<RawPage> allocate_raw_pages(size_t count, size_t page_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_power_of_2
      Src: /src/botan/src/fuzzer/mem_pool.cpp:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - plen
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: compute_expected_alignment
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_power_of_2
    linkageType: ''
    returnType: size_t
    signature: size_t compute_expected_alignment(size_t plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: RawPage
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawPage(void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::free
      Src: /src/botan/src/fuzzer/mem_pool.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: ~RawPage()
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - std::free
    linkageType: ''
    returnType: void
    signature: void ~RawPage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: RawPage
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawPage(const RawPage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& operator=(const RawPage& other)'
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPage
    signature: RawPage & operator=(const RawPage& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/botan/src/fuzzer/mem_pool.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: RawPage
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 1
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void RawPage(RawPage&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/botan/src/fuzzer/mem_pool.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: '& operator=(RawPage&& other) noexcept'
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: RawPage
    signature: RawPage & operator=(RawPage&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ptr
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * ptr() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/fuzzer/mem_pool.cpp:57,1
    - Dst: ::posix_memalign
      Src: /src/botan/src/fuzzer/mem_pool.cpp:62,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/mem_pool.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/mem_pool.cpp:66,1
    - Dst: RawPage
      Src: /src/botan/src/fuzzer/mem_pool.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - count
    - page_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: allocate_raw_pages
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - ::posix_memalign
    - std::vector::reserve
    - RawPage
    - FUZZER_ASSERT_EQUAL
    linkageType: ''
    returnType: std::vector<RawPage>
    signature: std::vector<RawPage> allocate_raw_pages(size_t count, size_t page_size)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: allocate_raw_pages
      Src: /src/botan/src/fuzzer/mem_pool.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/fuzzer/mem_pool.cpp:83,1
    - Dst: std::vector::size
      Src: /src/botan/src/fuzzer/mem_pool.cpp:83,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/mem_pool.cpp:85,1
    - Dst: ptr
      Src: /src/botan/src/fuzzer/mem_pool.cpp:85,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mem_pool.cpp:91,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mem_pool.cpp:92,1
    - Dst: static_cast<uint8_t*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:107,1
    - Dst: Botan::Memory_Pool::allocate
      Src: /src/botan/src/fuzzer/mem_pool.cpp:107,1
    - Dst: compute_expected_alignment
      Src: /src/botan/src/fuzzer/mem_pool.cpp:110,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:111,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mem_pool.cpp:113,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:114,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mem_pool.cpp:122,1
    - Dst: std::memset
      Src: /src/botan/src/fuzzer/mem_pool.cpp:127,1
    - Dst: static_cast<int>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:127,1
    - Dst: std::map::insert
      Src: /src/botan/src/fuzzer/mem_pool.cpp:129,1
    - Dst: std::make_pair
      Src: /src/botan/src/fuzzer/mem_pool.cpp:129,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mem_pool.cpp:131,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:131,1
    - Dst: std::map::begin
      Src: /src/botan/src/fuzzer/mem_pool.cpp:137,1
    - Dst: std::prev
      Src: /src/botan/src/fuzzer/mem_pool.cpp:138,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mem_pool.cpp:142,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:142,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:143,1
    - Dst: next
      Src: /src/botan/src/fuzzer/mem_pool.cpp:147,1
    - Dst: std::map::end
      Src: /src/botan/src/fuzzer/mem_pool.cpp:149,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mem_pool.cpp:151,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:151,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:152,1
    - Dst: std::map::empty
      Src: /src/botan/src/fuzzer/mem_pool.cpp:157,1
    - Dst: std::map::size
      Src: /src/botan/src/fuzzer/mem_pool.cpp:161,1
    - Dst: std::map::begin
      Src: /src/botan/src/fuzzer/mem_pool.cpp:163,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/mem_pool.cpp:170,1
    - Dst: Botan::Memory_Pool::deallocate
      Src: /src/botan/src/fuzzer/mem_pool.cpp:170,1
    - Dst: std::map::erase
      Src: /src/botan/src/fuzzer/mem_pool.cpp:171,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 174
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - ptr
    - std::map::end
    - compute_expected_alignment
    - FUZZER_WRITE_AND_CRASH
    - std::map::size
    - static_cast<void*>
    - std::make_pair
    - static_cast<int>
    - std::map::insert
    - std::map::empty
    - FUZZER_ASSERT_TRUE
    - std::span<const uint8_t>::data
    - std::vector::size
    - Botan::Memory_Pool::allocate
    - static_cast<uint8_t*>
    - Botan::Memory_Pool::deallocate
    - allocate_raw_pages
    - std::memset
    - std::map::erase
    - std::prev
    - std::vector::push_back
    - std::vector::reserve
    - reinterpret_cast<uintptr_t>
    - std::map::begin
    - std::span<const uint8_t>::size
    - next
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::setenv
      Src: /src/botan/src/fuzzer/fuzzers.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/botan/src/fuzzer/fuzzers.h
    functionUses: 0
    functionsReached:
    - ::setenv
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int* /*argc*/, char*** /*argv*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fuzz
      Src: /src/botan/src/fuzzer/fuzzers.h:42,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/fuzzer/fuzzers.h:42,1
    - Dst: what
      Src: /src/botan/src/fuzzer/fuzzers.h:44,1
    - Dst: abort
      Src: /src/botan/src/fuzzer/fuzzers.h:45,1
    - Dst: abort
      Src: /src/botan/src/fuzzer/fuzzers.h:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/botan/src/fuzzer/fuzzers.h
    functionUses: 0
    functionsReached:
    - fuzz
    - abort
    - std::span<const uint8_t>
    - what
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t in[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::ChaCha_RNG>
      Src: /src/botan/src/fuzzer/fuzzers.h:58,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/fuzzer/fuzzers.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: fuzzer_rng_as_shared
    functionSourceFile: /src/botan/src/fuzzer/fuzzers.h
    functionUses: 0
    functionsReached:
    - std::make_shared<Botan::ChaCha_RNG>
    - Botan::secure_vector<uint8_t>
    linkageType: ''
    returnType: std::shared_ptr<Botan::RandomNumberGenerator>
    signature: std::shared_ptr<Botan::RandomNumberGenerator> fuzzer_rng_as_shared()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng_as_shared
      Src: /src/botan/src/fuzzer/fuzzers.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: fuzzer_rng
    functionSourceFile: /src/botan/src/fuzzer/fuzzers.h
    functionUses: 1
    functionsReached:
    - fuzzer_rng_as_shared
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & fuzzer_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: FUZZER_WRITE_AND_CRASH
    functionSourceFile: /src/botan/src/fuzzer/fuzzers.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUZZER_WRITE_AND_CRASH(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: FUZZER_ASSERT_EQUAL
    functionSourceFile: /src/botan/src/fuzzer/fuzzers.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUZZER_ASSERT_EQUAL(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: FUZZER_ASSERT_TRUE
    functionSourceFile: /src/botan/src/fuzzer/fuzzers.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUZZER_ASSERT_TRUE(e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/fuzzer/fuzzers.h:102,1
    - Dst: std::ifstream::read
      Src: /src/botan/src/fuzzer/fuzzers.h:104,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/fuzzer/fuzzers.h:104,1
    - Dst: std::vector::data
      Src: /src/botan/src/fuzzer/fuzzers.h:104,1
    - Dst: static_cast<std::streamsize>
      Src: /src/botan/src/fuzzer/fuzzers.h:104,1
    - Dst: std::vector::size
      Src: /src/botan/src/fuzzer/fuzzers.h:104,1
    - Dst: std::ifstream::gcount
      Src: /src/botan/src/fuzzer/fuzzers.h:105,1
    - Dst: std::vector::resize
      Src: /src/botan/src/fuzzer/fuzzers.h:106,1
    - Dst: std::vector::shrink_to_fit
      Src: /src/botan/src/fuzzer/fuzzers.h:107,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/botan/src/fuzzer/fuzzers.h:109,1
    - Dst: std::vector::data
      Src: /src/botan/src/fuzzer/fuzzers.h:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - files
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 114
    functionName: fuzz_files
    functionSourceFile: /src/botan/src/fuzzer/fuzzers.h
    functionUses: 0
    functionsReached:
    - std::ifstream::good
    - std::vector::resize
    - static_cast<std::streamsize>
    - std::vector::shrink_to_fit
    - std::vector::data
    - reinterpret_cast<char*>
    - std::ifstream::gcount
    - LLVMFuzzerTestOneInput
    - std::ifstream::read
    - std::vector::size
    linkageType: ''
    returnType: int
    signature: int fuzz_files(char* files[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/botan/src/fuzzer/fuzzers.h:128,1
    - Dst: fuzz_files
      Src: /src/botan/src/fuzzer/fuzzers.h:132,1
    - Dst: __AFL_LOOP
      Src: /src/botan/src/fuzzer/fuzzers.h:137,1
    - Dst: read
      Src: /src/botan/src/fuzzer/fuzzers.h:141,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/fuzzer/fuzzers.h:141,1
    - Dst: std::vector::data
      Src: /src/botan/src/fuzzer/fuzzers.h:141,1
    - Dst: static_cast<std::streamsize>
      Src: /src/botan/src/fuzzer/fuzzers.h:141,1
    - Dst: std::vector::size
      Src: /src/botan/src/fuzzer/fuzzers.h:141,1
    - Dst: gcount
      Src: /src/botan/src/fuzzer/fuzzers.h:142,1
    - Dst: std::vector::resize
      Src: /src/botan/src/fuzzer/fuzzers.h:144,1
    - Dst: std::vector::shrink_to_fit
      Src: /src/botan/src/fuzzer/fuzzers.h:145,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/botan/src/fuzzer/fuzzers.h:147,1
    - Dst: std::vector::data
      Src: /src/botan/src/fuzzer/fuzzers.h:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 149
    functionName: main
    functionSourceFile: /src/botan/src/fuzzer/fuzzers.h
    functionUses: 0
    functionsReached:
    - __AFL_LOOP
    - LLVMFuzzerInitialize
    - gcount
    - std::vector::resize
    - static_cast<std::streamsize>
    - std::vector::shrink_to_fit
    - std::vector::data
    - reinterpret_cast<char*>
    - fuzz_files
    - read
    - LLVMFuzzerTestOneInput
    - std::vector::size
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/botan/src/fuzzer/fuzzers.h:157,1
    - Dst: klee_make_symbolic
      Src: /src/botan/src/fuzzer/fuzzers.h:160,1
    - Dst: klee_range
      Src: /src/botan/src/fuzzer/fuzzers.h:162,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/botan/src/fuzzer/fuzzers.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: main
    functionSourceFile: /src/botan/src/fuzzer/fuzzers.h
    functionUses: 0
    functionsReached:
    - klee_range
    - LLVMFuzzerTestOneInput
    - LLVMFuzzerInitialize
    - klee_make_symbolic
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:10,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:12,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:15,1
    - Dst: std::memcpy
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:20,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:20,1
    - Dst: std::memcpy
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:21,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:21,1
    - Dst: Botan::basecase_mul
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:35,1
    - Dst: Botan::bigint_comba_mul4
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:38,1
    - Dst: Botan::bigint_comba_mul6
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:41,1
    - Dst: Botan::bigint_comba_mul8
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:44,1
    - Dst: Botan::bigint_comba_mul9
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:47,1
    - Dst: Botan::bigint_comba_mul16
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:50,1
    - Dst: Botan::bigint_comba_mul24
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:53,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:57,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:60,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:63,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:66,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:69,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_comba_mul.cpp:72,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 73
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/mp_comba_mul.cpp
    functionUses: 1
    functionsReached:
    - Botan::bigint_comba_mul24
    - Botan::basecase_mul
    - Botan::bigint_comba_mul9
    - Botan::bigint_comba_mul6
    - Botan::bigint_comba_mul4
    - Botan::bigint_comba_mul16
    - compare_word_vec
    - std::memcpy
    - Botan::bigint_comba_mul8
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_bp384.cpp:11,1
    - Dst: check_ecc_math
      Src: /src/botan/src/fuzzer/ecc_bp384.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ecc_bp384.cpp
    functionUses: 1
    functionsReached:
    - check_ecc_math
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 15
    functionName: ASN1_Parser::ASN1_Parser
    functionSourceFile: /src/botan/src/fuzzer/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_Parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/fuzzer/asn1.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - type
    - klass
    - level
    - length
    - value
    argTypes:
    - Botan::ASN1_Type
    - Botan::ASN1_Class
    - size_t
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: ASN1_Parser::format
    functionSourceFile: /src/botan/src/fuzzer/asn1.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::string
    signature: "std::string format(Botan::ASN1_Type type,\n                         Botan::ASN1_Class
      klass,\n                         size_t level,\n                         size_t
      length,\n                         std::string_view value) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/fuzzer/asn1.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - klass
    - ' value'
    argTypes:
    - Botan::ASN1_Type
    - Botan::ASN1_Class
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: ASN1_Parser::format_bin
    functionSourceFile: /src/botan/src/fuzzer/asn1.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::string
    signature: "std::string format_bin(Botan::ASN1_Type type,\n                             Botan::ASN1_Class
      klass,\n                             const std::vector<uint8_t>& value) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/fuzzer/asn1.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' bn'
    argTypes:
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: ASN1_Parser::format_bn
    functionSourceFile: /src/botan/src/fuzzer/asn1.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::string
    signature: std::string format_bn(const Botan::BigInt& bn) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_Parser::ASN1_Parser
      Src: /src/botan/src/fuzzer/asn1.cpp:47,1
    - Dst: ASN1_Parser::print_to_stream
      Src: /src/botan/src/fuzzer/asn1.cpp:48,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/asn1.cpp:48,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/asn1.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/asn1.cpp
    functionUses: 1
    functionsReached:
    - ASN1_Parser::ASN1_Parser
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - ASN1_Parser::print_to_stream
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: Fuzzer_TLS_Client_Creds::psk_identity_hint
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string psk_identity_hint(const std::string& /*type*/, const std::string&
      /*context*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: Fuzzer_TLS_Client_Creds::psk_identity
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string psk_identity(const std::string& /*type*/,\n                               const
      std::string& /*context*/,\n                               const std::string&
      /*hint*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_client.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Fuzzer_TLS_Client_Creds::session_ticket_key
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_client.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Fuzzer_TLS_Client_Creds::dtls_cookie_secret
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> dtls_cookie_secret() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/fuzzer/tls_client.cpp:42,1
    - Dst: std::find
      Src: /src/botan/src/fuzzer/tls_client.cpp:42,1
    - Dst: begin
      Src: /src/botan/src/fuzzer/tls_client.cpp:42,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_client.cpp:42,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_client.cpp:42,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/fuzzer/tls_client.cpp:43,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/fuzzer/tls_client.cpp:47,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_client.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - host
    - whoami
    argTypes:
    - std::string_view
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: Fuzzer_TLS_Client_Creds::find_preshared_keys
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - std::find
    - std::vector::emplace_back
    - begin
    - Botan::Credentials_Manager::find_preshared_keys
    - empty
    - end
    linkageType: ''
    returnType: std::vector<Botan::TLS::ExternalPSK>
    signature: "std::vector<Botan::TLS::ExternalPSK> find_preshared_keys(\n         std::string_view
      host,\n         Botan::TLS::Connection_Side whoami,\n         const std::vector<std::string>&
      identities = {},\n         const std::optional<std::string>& prf = std::nullopt)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Ciphersuite::all_known_ciphersuites
      Src: /src/botan/src/fuzzer/tls_client.cpp:57,1
    - Dst: valid
      Src: /src/botan/src/fuzzer/tls_client.cpp:58,1
    - Dst: usable_in_version
      Src: /src/botan/src/fuzzer/tls_client.cpp:58,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/tls_client.cpp:59,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/fuzzer/tls_client.cpp:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: Fuzzer_TLS_Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 0
    functionsReached:
    - usable_in_version
    - std::vector::push_back
    - valid
    - ciphersuite_code
    - Botan::TLS::Ciphersuite::all_known_ciphersuites
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> ciphersuite_list(Botan::TLS::Protocol_Version
      version) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Fuzzer_TLS_Client_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Fuzzer_TLS_Client_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*rec*/, std::span<const uint8_t>
      /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Fuzzer_TLS_Client_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
      Src: /src/botan/src/fuzzer/tls_client.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ' cert_chain'
    - ' ocsp_responses'
    - ' trusted_roots'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    - std::vector<std::optional<Botan::OCSP::Response>>
    - std::vector<Botan::Certificate_Store*>
    - Botan::Usage_Type
    - std::string_view
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      ocsp_responses,\n                                 const std::vector<Botan::Certificate_Store*>&
      trusted_roots,\n                                 Botan::Usage_Type usage,\n
      \                                std::string_view hostname,\n                                 const
      Botan::TLS::Policy& policy) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/fuzzer/tls_client.cpp:98,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/fuzzer/tls_client.cpp:102,1
    - Dst: std::make_shared<Fuzzer_TLS_Policy>
      Src: /src/botan/src/fuzzer/tls_client.cpp:103,1
    - Dst: std::make_shared<Fuzzer_TLS_Client_Callbacks>
      Src: /src/botan/src/fuzzer/tls_client.cpp:106,1
    - Dst: std::make_shared<Fuzzer_TLS_Client_Creds>
      Src: /src/botan/src/fuzzer/tls_client.cpp:107,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/fuzzer/tls_client.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 1
    functionsReached:
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Fuzzer_TLS_Client_Callbacks>
    - std::span<const uint8_t>::empty
    - Botan::TLS::Client::received_data
    - std::make_shared<Fuzzer_TLS_Client_Creds>
    - std::make_shared<Fuzzer_TLS_Policy>
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_p256.cpp:11,1
    - Dst: check_ecc_math
      Src: /src/botan/src/fuzzer/ecc_p256.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ecc_p256.cpp
    functionUses: 1
    functionsReached:
    - check_ecc_math
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/ocsp.cpp:13,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ocsp.cpp:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ocsp.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/bn_sqr.cpp:13,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/bn_sqr.cpp:17,1
    - Dst: square
      Src: /src/botan/src/fuzzer/bn_sqr.cpp:19,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/bn_sqr.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 23
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/bn_sqr.cpp
    functionUses: 1
    functionsReached:
    - square
    - std::span<const uint8_t>::size
    - Botan::BigInt::from_bytes
    - FUZZER_ASSERT_EQUAL
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/fuzzer/pkcs8.cpp:17,1
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/fuzzer/pkcs8.cpp:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 28
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/pkcs8.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_bp512.cpp:11,1
    - Dst: check_ecc_math
      Src: /src/botan/src/fuzzer/ecc_bp512.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ecc_bp512.cpp
    functionUses: 1
    functionsReached:
    - check_ecc_math
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/fuzzer/x509_dn.cpp:18,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/fuzzer/x509_dn.cpp:19,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/x509_dn.cpp:29,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/x509_dn.cpp:32,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/x509_dn.cpp:35,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 37
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/x509_dn.cpp
    functionUses: 1
    functionsReached:
    - Botan::X509_DN::decode_from
    - FUZZER_ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/fuzzer/oaep.cpp:15,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/oaep.cpp:17,1
    - Dst: Botan::CT::Option<size_t>
      Src: /src/botan/src/fuzzer/oaep.cpp:18,1
    - Dst: Botan::CT::Option<size_t>
      Src: /src/botan/src/fuzzer/oaep.cpp:23,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/oaep.cpp:27,1
    - Dst: Botan::CT::Option<size_t>
      Src: /src/botan/src/fuzzer/oaep.cpp:29,1
    - Dst: Botan::CT::Option<size_t>
      Src: /src/botan/src/fuzzer/oaep.cpp:33,1
    - Dst: Botan::CT::Option<size_t>
      Src: /src/botan/src/fuzzer/oaep.cpp:37,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - in
    - ' Phash'
    argTypes:
    - std::span<const uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 38
    functionName: ref_oaep_unpad
    functionSourceFile: /src/botan/src/fuzzer/oaep.cpp
    functionUses: 0
    functionsReached:
    - size
    - Botan::CT::Option<size_t>
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Botan::CT::Option<size_t>
    signature: Botan::CT::Option<size_t> ref_oaep_unpad(std::span<const uint8_t> in,
      const std::vector<uint8_t>& Phash)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/fuzzer/oaep.cpp:15,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/oaep.cpp:17,1
    - Dst: Botan::CT::Option<size_t>
      Src: /src/botan/src/fuzzer/oaep.cpp:18,1
    - Dst: Botan::CT::Option<size_t>
      Src: /src/botan/src/fuzzer/oaep.cpp:23,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/oaep.cpp:27,1
    - Dst: Botan::CT::Option<size_t>
      Src: /src/botan/src/fuzzer/oaep.cpp:29,1
    - Dst: Botan::CT::Option<size_t>
      Src: /src/botan/src/fuzzer/oaep.cpp:33,1
    - Dst: Botan::CT::Option<size_t>
      Src: /src/botan/src/fuzzer/oaep.cpp:37,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - in
    - ' Phash'
    argTypes:
    - std::span<const uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 38
    functionName: ref_oaep_unpad
    functionSourceFile: /src/botan/src/fuzzer/oaep.cpp
    functionUses: 0
    functionsReached:
    - size
    - Botan::CT::Option<size_t>
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Botan::CT::Option<size_t>
    signature: Botan::CT::Option<size_t> ref_oaep_unpad(std::span<const uint8_t> in,
      const std::vector<uint8_t>& Phash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::oaep_find_delim
      Src: /src/botan/src/fuzzer/oaep.cpp:45,1
    - Dst: ref_oaep_unpad
      Src: /src/botan/src/fuzzer/oaep.cpp:47,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/oaep.cpp:49,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/oaep.cpp:49,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/oaep.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/fuzzer/oaep.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/fuzzer/oaep.cpp:50,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/oaep.cpp:51,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/oaep.cpp:51,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/oaep.cpp:52,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/oaep.cpp:53,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/oaep.cpp:53,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/oaep.cpp:54,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/oaep.cpp
    functionUses: 1
    functionsReached:
    - Botan::oaep_find_delim
    - ref_oaep_unpad
    - auto::has_value
    - FUZZER_WRITE_AND_CRASH
    - auto::value
    - FUZZER_ASSERT_EQUAL
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/crl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_frp256.cpp:11,1
    - Dst: check_ecc_math
      Src: /src/botan/src/fuzzer/ecc_frp256.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ecc_frp256.cpp
    functionUses: 1
    functionsReached:
    - check_ecc_math
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_bp256.cpp:11,1
    - Dst: check_ecc_math
      Src: /src/botan/src/fuzzer/ecc_bp256.cpp:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 17
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ecc_bp256.cpp
    functionUses: 1
    functionsReached:
    - check_ecc_math
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:15,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:16,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:18,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 35
    functionName: ref_pkcs7_unpad
    functionSourceFile: /src/botan/src/fuzzer/mode_padding.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t ref_pkcs7_unpad(std::span<const uint8_t> in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:38,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 57
    functionName: ref_x923_unpad
    functionSourceFile: /src/botan/src/fuzzer/mode_padding.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t ref_x923_unpad(std::span<const uint8_t> in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 82
    functionName: ref_oneandzero_unpad
    functionSourceFile: /src/botan/src/fuzzer/mode_padding.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t ref_oneandzero_unpad(std::span<const uint8_t> in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 104
    functionName: ref_esp_unpad
    functionSourceFile: /src/botan/src/fuzzer/mode_padding.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t ref_esp_unpad(std::span<const uint8_t> in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: ref_tls_cbc_unpad
    functionSourceFile: /src/botan/src/fuzzer/mode_padding.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ref_tls_cbc_unpad(std::span<const uint8_t> in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:15,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:16,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:18,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 35
    functionName: ref_pkcs7_unpad
    functionSourceFile: /src/botan/src/fuzzer/mode_padding.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t ref_pkcs7_unpad(std::span<const uint8_t> in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:38,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 57
    functionName: ref_x923_unpad
    functionSourceFile: /src/botan/src/fuzzer/mode_padding.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t ref_x923_unpad(std::span<const uint8_t> in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 82
    functionName: ref_oneandzero_unpad
    functionSourceFile: /src/botan/src/fuzzer/mode_padding.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t ref_oneandzero_unpad(std::span<const uint8_t> in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 104
    functionName: ref_esp_unpad
    functionSourceFile: /src/botan/src/fuzzer/mode_padding.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t ref_esp_unpad(std::span<const uint8_t> in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: ref_tls_cbc_unpad
    functionSourceFile: /src/botan/src/fuzzer/mode_padding.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ref_tls_cbc_unpad(std::span<const uint8_t> in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mode_padding.cpp:138,1
    - Dst: Botan::PKCS7_Padding::valid_blocksize
      Src: /src/botan/src/fuzzer/mode_padding.cpp:140,1
    - Dst: Botan::PKCS7_Padding::unpad
      Src: /src/botan/src/fuzzer/mode_padding.cpp:141,1
    - Dst: ref_pkcs7_unpad
      Src: /src/botan/src/fuzzer/mode_padding.cpp:142,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/mode_padding.cpp:143,1
    - Dst: Botan::ANSI_X923_Padding::valid_blocksize
      Src: /src/botan/src/fuzzer/mode_padding.cpp:146,1
    - Dst: Botan::ANSI_X923_Padding::unpad
      Src: /src/botan/src/fuzzer/mode_padding.cpp:147,1
    - Dst: ref_x923_unpad
      Src: /src/botan/src/fuzzer/mode_padding.cpp:148,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/mode_padding.cpp:149,1
    - Dst: Botan::OneAndZeros_Padding::valid_blocksize
      Src: /src/botan/src/fuzzer/mode_padding.cpp:152,1
    - Dst: Botan::OneAndZeros_Padding::unpad
      Src: /src/botan/src/fuzzer/mode_padding.cpp:153,1
    - Dst: ref_oneandzero_unpad
      Src: /src/botan/src/fuzzer/mode_padding.cpp:154,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/mode_padding.cpp:155,1
    - Dst: Botan::ESP_Padding::valid_blocksize
      Src: /src/botan/src/fuzzer/mode_padding.cpp:158,1
    - Dst: Botan::ESP_Padding::unpad
      Src: /src/botan/src/fuzzer/mode_padding.cpp:159,1
    - Dst: ref_esp_unpad
      Src: /src/botan/src/fuzzer/mode_padding.cpp:160,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/mode_padding.cpp:161,1
    - Dst: Botan::TLS::check_tls_cbc_padding
      Src: /src/botan/src/fuzzer/mode_padding.cpp:164,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mode_padding.cpp:164,1
    - Dst: ref_tls_cbc_unpad
      Src: /src/botan/src/fuzzer/mode_padding.cpp:165,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/mode_padding.cpp:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 167
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/mode_padding.cpp
    functionUses: 1
    functionsReached:
    - ref_oneandzero_unpad
    - Botan::OneAndZeros_Padding::valid_blocksize
    - Botan::ESP_Padding::unpad
    - ref_x923_unpad
    - Botan::ESP_Padding::valid_blocksize
    - ref_pkcs7_unpad
    - Botan::ANSI_X923_Padding::valid_blocksize
    - Botan::PKCS7_Padding::unpad
    - ref_tls_cbc_unpad
    - Botan::PKCS7_Padding::valid_blocksize
    - Botan::ANSI_X923_Padding::unpad
    - Botan::OneAndZeros_Padding::unpad
    - ref_esp_unpad
    - Botan::TLS::check_tls_cbc_padding
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - FUZZER_ASSERT_EQUAL
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/fuzzer/pkcs1.cpp:16,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/fuzzer/pkcs1.cpp:20,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/fuzzer/pkcs1.cpp:26,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/fuzzer/pkcs1.cpp:28,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/fuzzer/pkcs1.cpp:32,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 33
    functionName: simple_pkcs1_unpad
    functionSourceFile: /src/botan/src/fuzzer/pkcs1.cpp
    functionUses: 0
    functionsReached:
    - Botan::Decoding_Error
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> simple_pkcs1_unpad(const uint8_t in[], size_t
      len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/fuzzer/pkcs1.cpp:16,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/fuzzer/pkcs1.cpp:20,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/fuzzer/pkcs1.cpp:26,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/fuzzer/pkcs1.cpp:28,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/fuzzer/pkcs1.cpp:32,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 33
    functionName: simple_pkcs1_unpad
    functionSourceFile: /src/botan/src/fuzzer/pkcs1.cpp
    functionUses: 0
    functionsReached:
    - Botan::Decoding_Error
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> simple_pkcs1_unpad(const uint8_t in[], size_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::resize
      Src: /src/botan/src/fuzzer/pkcs1.cpp:46,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/pkcs1.cpp:46,1
    - Dst: static_cast<Botan::EncryptionPaddingScheme*>
      Src: /src/botan/src/fuzzer/pkcs1.cpp:47,1
    - Dst: unpad
      Src: /src/botan/src/fuzzer/pkcs1.cpp:47,1
    - Dst: auto::has_value
      Src: /src/botan/src/fuzzer/pkcs1.cpp:48,1
    - Dst: std::vector::resize
      Src: /src/botan/src/fuzzer/pkcs1.cpp:50,1
    - Dst: auto::value_or
      Src: /src/botan/src/fuzzer/pkcs1.cpp:50,1
    - Dst: simple_pkcs1_unpad
      Src: /src/botan/src/fuzzer/pkcs1.cpp:56,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/pkcs1.cpp:56,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/pkcs1.cpp:56,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/pkcs1.cpp:62,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/fuzzer/pkcs1.cpp:62,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/pkcs1.cpp:64,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/fuzzer/pkcs1.cpp:64,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 67
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/pkcs1.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_encode
    - std::vector::resize
    - simple_pkcs1_unpad
    - static_cast<Botan::EncryptionPaddingScheme*>
    - auto::has_value
    - auto::value_or
    - unpad
    - FUZZER_WRITE_AND_CRASH
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/cert.cpp:13,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 21
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/cert.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_secp256k1.cpp:11,1
    - Dst: check_ecc_math
      Src: /src/botan/src/fuzzer/ecc_secp256k1.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ecc_secp256k1.cpp
    functionUses: 1
    functionsReached:
    - check_ecc_math
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_Layer::copy_data
      Src: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: prepare
    functionSourceFile: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Handshake_Layer::copy_data
    linkageType: ''
    returnType: Botan::TLS::Handshake_Layer
    signature: Botan::TLS::Handshake_Layer prepare(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_Layer::copy_data
      Src: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: prepare
    functionSourceFile: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Handshake_Layer::copy_data
    linkageType: ''
    returnType: Botan::TLS::Handshake_Layer
    signature: Botan::TLS::Handshake_Layer prepare(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare
      Src: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp:29,1
    - Dst: auto::next_message
      Src: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp:31,1
    - Dst: prepare
      Src: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp:33,1
    - Dst: auto::next_post_handshake_message
      Src: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp
    functionUses: 1
    functionsReached:
    - auto::next_post_handshake_message
    - auto::next_message
    - prepare
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/barrett.cpp:16,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/barrett.cpp:20,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/barrett.cpp:24,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/barrett.cpp:26,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/barrett.cpp:26,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/barrett.cpp:27,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/barrett.cpp:27,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/barrett.cpp:27,1
    - Dst: Botan::BigInt::is_zero
      Src: /src/botan/src/fuzzer/barrett.cpp:29,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/fuzzer/barrett.cpp:34,1
    - Dst: auto::reduce
      Src: /src/botan/src/fuzzer/barrett.cpp:35,1
    - Dst: ct_modulo
      Src: /src/botan/src/fuzzer/barrett.cpp:38,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/barrett.cpp:41,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/barrett.cpp:41,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/barrett.cpp:42,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/barrett.cpp:43,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/barrett.cpp:44,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/barrett.cpp:45,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 48
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/barrett.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::subspan
    - auto::reduce
    - ct_modulo
    - Botan::BigInt::is_zero
    - Botan::Barrett_Reduction::for_public_modulus
    - FUZZER_WRITE_AND_CRASH
    - std::span<const uint8_t>::size
    - Botan::BigInt::to_hex_string
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:14,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:14,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:19,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:21,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:21,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:22,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:22,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:22,1
    - Dst: Botan::BigInt::flip_sign
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:25,1
    - Dst: Botan::BigInt::flip_sign
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:28,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:34,1
    - Dst: Botan::BigInt::cmp
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:34,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:43,1
    - Dst: Botan::BigInt::is_zero
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:43,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:44,1
    - Dst: Botan::BigInt::is_zero
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:44,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:48,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:52,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:56,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:57,1
    - Dst: Botan::BigInt::is_nonzero
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:57,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:58,1
    - Dst: Botan::BigInt::is_nonzero
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:58,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:59,1
    - Dst: Botan::BigInt::is_negative
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:59,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:60,1
    - Dst: Botan::BigInt::is_positive
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:60,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:64,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:65,1
    - Dst: Botan::BigInt::is_nonzero
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:65,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:66,1
    - Dst: Botan::BigInt::is_nonzero
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:66,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:67,1
    - Dst: Botan::BigInt::is_positive
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:67,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:68,1
    - Dst: Botan::BigInt::is_negative
      Src: /src/botan/src/fuzzer/bn_cmp.cpp:68,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 70
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/bn_cmp.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::subspan
    - Botan::BigInt::is_positive
    - Botan::BigInt::is_negative
    - Botan::BigInt::cmp
    - Botan::BigInt::is_nonzero
    - Botan::BigInt::flip_sign
    - Botan::BigInt::is_zero
    - FUZZER_ASSERT_TRUE
    - std::span<const uint8_t>::size
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: void
    signature: void fuzz(const std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<word>
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: crandall_C
    functionSourceFile: /src/botan/src/fuzzer/mp_redc_crandall.cpp
    functionUses: 0
    functionsReached:
    - static_cast<word>
    linkageType: ''
    returnType: word
    signature: word crandall_C()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<word>
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: crandall_C
    functionSourceFile: /src/botan/src/fuzzer/mp_redc_crandall.cpp
    functionUses: 0
    functionsReached:
    - static_cast<word>
    linkageType: ''
    returnType: word
    signature: word crandall_C()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:27,1
    - Dst: crandall_C
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:31,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:33,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:36,1
    - Dst: Botan::load_be<word>
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:46,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:46,1
    - Dst: Botan::redc_crandall<word, 4, C>
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:49,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:51,1
    - Dst: auto::data
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:51,1
    - Dst: auto::_data
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:51,1
    - Dst: auto::sig_words
      Src: /src/botan/src/fuzzer/mp_redc_crandall.cpp:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/mp_redc_crandall.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::subspan
    - auto::_data
    - auto::data
    - auto::sig_words
    - compare_word_vec
    - crandall_C
    - Botan::load_be<word>
    - std::span<const uint8_t>::size
    - Botan::redc_crandall<word, 4, C>
    - Botan::BigInt::from_bytes
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/fuzzer/tls_client_hello.cpp:13,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/fuzzer/tls_client_hello.cpp:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 16
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/tls_client_hello.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/fuzzer/gcd.cpp:14,1
    - Dst: Botan::BigInt::swap
      Src: /src/botan/src/fuzzer/gcd.cpp:17,1
    - Dst: Botan::BigInt::swap
      Src: /src/botan/src/fuzzer/gcd.cpp:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Botan::BigInt
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: ref_gcd
    functionSourceFile: /src/botan/src/fuzzer/gcd.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::BigInt
    - Botan::BigInt::swap
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt ref_gcd(Botan::BigInt a, Botan::BigInt b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/fuzzer/gcd.cpp:14,1
    - Dst: Botan::BigInt::swap
      Src: /src/botan/src/fuzzer/gcd.cpp:17,1
    - Dst: Botan::BigInt::swap
      Src: /src/botan/src/fuzzer/gcd.cpp:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Botan::BigInt
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: ref_gcd
    functionSourceFile: /src/botan/src/fuzzer/gcd.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::BigInt
    - Botan::BigInt::swap
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt ref_gcd(Botan::BigInt a, Botan::BigInt b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/gcd.cpp:28,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/gcd.cpp:32,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/gcd.cpp:33,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/gcd.cpp:33,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/gcd.cpp:34,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/gcd.cpp:34,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/gcd.cpp:34,1
    - Dst: ref_gcd
      Src: /src/botan/src/fuzzer/gcd.cpp:36,1
    - Dst: Botan::gcd
      Src: /src/botan/src/fuzzer/gcd.cpp:37,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/gcd.cpp:40,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/gcd.cpp:40,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/gcd.cpp:41,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/gcd.cpp:42,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/gcd.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 45
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/gcd.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::subspan
    - Botan::BigInt::to_hex_string
    - FUZZER_WRITE_AND_CRASH
    - std::span<const uint8_t>::size
    - Botan::gcd
    - ref_gcd
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/mp_redc.cpp:13,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mp_redc.cpp:13,1
    - Dst: std::memcpy
      Src: /src/botan/src/fuzzer/mp_redc.cpp:24,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mp_redc.cpp:24,1
    - Dst: std::memcpy
      Src: /src/botan/src/fuzzer/mp_redc.cpp:25,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mp_redc.cpp:25,1
    - Dst: std::memcpy
      Src: /src/botan/src/fuzzer/mp_redc.cpp:26,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mp_redc.cpp:26,1
    - Dst: Botan::bigint_monty_redc_4
      Src: /src/botan/src/fuzzer/mp_redc.cpp:29,1
    - Dst: Botan::bigint_monty_redc_6
      Src: /src/botan/src/fuzzer/mp_redc.cpp:31,1
    - Dst: Botan::bigint_monty_redc_8
      Src: /src/botan/src/fuzzer/mp_redc.cpp:33,1
    - Dst: Botan::bigint_monty_redc_16
      Src: /src/botan/src/fuzzer/mp_redc.cpp:35,1
    - Dst: Botan::bigint_monty_redc_24
      Src: /src/botan/src/fuzzer/mp_redc.cpp:37,1
    - Dst: Botan::bigint_monty_redc_32
      Src: /src/botan/src/fuzzer/mp_redc.cpp:39,1
    - Dst: std::abort
      Src: /src/botan/src/fuzzer/mp_redc.cpp:41,1
    - Dst: Botan::bigint_monty_redc_generic
      Src: /src/botan/src/fuzzer/mp_redc.cpp:44,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:48,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:49,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:50,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:51,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:52,1
    - Dst: std::abort
      Src: /src/botan/src/fuzzer/mp_redc.cpp:53,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:56,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 57
    functionName: fuzz_mp_redc
    functionSourceFile: /src/botan/src/fuzzer/mp_redc.cpp
    functionUses: 0
    functionsReached:
    - Botan::bigint_monty_redc_24
    - Botan::bigint_monty_redc_generic
    - Botan::bigint_monty_redc_16
    - Botan::bigint_monty_redc_6
    - Botan::bigint_monty_redc_32
    - compare_word_vec
    - Botan::bigint_monty_redc_8
    - std::memcpy
    - Botan::bigint_monty_redc_4
    - dump_word_vec
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - FUZZER_ASSERT_EQUAL
    - std::abort
    linkageType: ''
    returnType: void
    signature: void fuzz_mp_redc(std::span<const uint8_t> in)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/mp_redc.cpp:13,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mp_redc.cpp:13,1
    - Dst: std::memcpy
      Src: /src/botan/src/fuzzer/mp_redc.cpp:24,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mp_redc.cpp:24,1
    - Dst: std::memcpy
      Src: /src/botan/src/fuzzer/mp_redc.cpp:25,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mp_redc.cpp:25,1
    - Dst: std::memcpy
      Src: /src/botan/src/fuzzer/mp_redc.cpp:26,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mp_redc.cpp:26,1
    - Dst: Botan::bigint_monty_redc_4
      Src: /src/botan/src/fuzzer/mp_redc.cpp:29,1
    - Dst: Botan::bigint_monty_redc_6
      Src: /src/botan/src/fuzzer/mp_redc.cpp:31,1
    - Dst: Botan::bigint_monty_redc_8
      Src: /src/botan/src/fuzzer/mp_redc.cpp:33,1
    - Dst: Botan::bigint_monty_redc_16
      Src: /src/botan/src/fuzzer/mp_redc.cpp:35,1
    - Dst: Botan::bigint_monty_redc_24
      Src: /src/botan/src/fuzzer/mp_redc.cpp:37,1
    - Dst: Botan::bigint_monty_redc_32
      Src: /src/botan/src/fuzzer/mp_redc.cpp:39,1
    - Dst: std::abort
      Src: /src/botan/src/fuzzer/mp_redc.cpp:41,1
    - Dst: Botan::bigint_monty_redc_generic
      Src: /src/botan/src/fuzzer/mp_redc.cpp:44,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:48,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:49,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:50,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:51,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:52,1
    - Dst: std::abort
      Src: /src/botan/src/fuzzer/mp_redc.cpp:53,1
    - Dst: compare_word_vec
      Src: /src/botan/src/fuzzer/mp_redc.cpp:56,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 57
    functionName: fuzz_mp_redc
    functionSourceFile: /src/botan/src/fuzzer/mp_redc.cpp
    functionUses: 0
    functionsReached:
    - Botan::bigint_monty_redc_24
    - Botan::bigint_monty_redc_generic
    - Botan::bigint_monty_redc_16
    - Botan::bigint_monty_redc_6
    - Botan::bigint_monty_redc_32
    - compare_word_vec
    - Botan::bigint_monty_redc_8
    - std::memcpy
    - Botan::bigint_monty_redc_4
    - dump_word_vec
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - FUZZER_ASSERT_EQUAL
    - std::abort
    linkageType: ''
    returnType: void
    signature: void fuzz_mp_redc(std::span<const uint8_t> in)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/fuzzer/mp_redc.cpp:62,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mp_redc.cpp:62,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mp_redc.cpp:66,1
    - Dst: fuzz_mp_redc
      Src: /src/botan/src/fuzzer/mp_redc.cpp:70,1
    - Dst: fuzz_mp_redc
      Src: /src/botan/src/fuzzer/mp_redc.cpp:72,1
    - Dst: fuzz_mp_redc
      Src: /src/botan/src/fuzzer/mp_redc.cpp:74,1
    - Dst: fuzz_mp_redc
      Src: /src/botan/src/fuzzer/mp_redc.cpp:76,1
    - Dst: fuzz_mp_redc
      Src: /src/botan/src/fuzzer/mp_redc.cpp:78,1
    - Dst: fuzz_mp_redc
      Src: /src/botan/src/fuzzer/mp_redc.cpp:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 84
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/mp_redc.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - fuzz_mp_redc
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/fuzzer/os2ecp.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' group'
    - in
    argTypes:
    - Botan::EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: check_os2ecp
    functionSourceFile: /src/botan/src/fuzzer/os2ecp.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: void
    signature: void check_os2ecp(const Botan::EC_Group& group, std::span<const uint8_t>
      in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/fuzzer/os2ecp.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' group'
    - in
    argTypes:
    - Botan::EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: check_os2ecp
    functionSourceFile: /src/botan/src/fuzzer/os2ecp.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: void
    signature: void check_os2ecp(const Botan::EC_Group& group, std::span<const uint8_t>
      in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/os2ecp.cpp:22,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/os2ecp.cpp:26,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/os2ecp.cpp:27,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/os2ecp.cpp:28,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/os2ecp.cpp:29,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/os2ecp.cpp:30,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/os2ecp.cpp:31,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/fuzzer/os2ecp.cpp:32,1
    - Dst: check_os2ecp
      Src: /src/botan/src/fuzzer/os2ecp.cpp:34,1
    - Dst: check_os2ecp
      Src: /src/botan/src/fuzzer/os2ecp.cpp:35,1
    - Dst: check_os2ecp
      Src: /src/botan/src/fuzzer/os2ecp.cpp:36,1
    - Dst: check_os2ecp
      Src: /src/botan/src/fuzzer/os2ecp.cpp:37,1
    - Dst: check_os2ecp
      Src: /src/botan/src/fuzzer/os2ecp.cpp:38,1
    - Dst: check_os2ecp
      Src: /src/botan/src/fuzzer/os2ecp.cpp:39,1
    - Dst: check_os2ecp
      Src: /src/botan/src/fuzzer/os2ecp.cpp:40,1
    - Dst: check_os2ecp
      Src: /src/botan/src/fuzzer/os2ecp.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 42
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/os2ecp.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group::from_name
    - check_os2ecp
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_encode
      Src: /src/botan/src/fuzzer/ecc_helper.h:18,1
    - Dst: serialize_uncompressed
      Src: /src/botan/src/fuzzer/ecc_helper.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' o'
    - ' point'
    argTypes:
    - std::ostream
    - Botan::EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: '& operator<<(std::ostream& o, const Botan::EC_AffinePoint& point)'
    functionSourceFile: /src/botan/src/fuzzer/ecc_helper.h
    functionUses: 0
    functionsReached:
    - serialize_uncompressed
    - Botan::hex_encode
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& o, const Botan::EC_AffinePoint&
      point)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqrt_modulo_prime
      Src: /src/botan/src/fuzzer/ecc_helper.h:34,1
    - Dst: Botan::Exception
      Src: /src/botan/src/fuzzer/ecc_helper.h:37,1
    - Dst: Botan::BigInt::get_bit
      Src: /src/botan/src/fuzzer/ecc_helper.h:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - yMod2
    - ' x'
    - ' curve_p'
    - ' curve_a'
    - ' curve_b'
    argTypes:
    - bool
    - Botan::BigInt
    - Botan::BigInt
    - Botan::BigInt
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 45
    functionName: decompress_point
    functionSourceFile: /src/botan/src/fuzzer/ecc_helper.h
    functionUses: 0
    functionsReached:
    - Botan::Exception
    - Botan::BigInt::get_bit
    - sqrt_modulo_prime
    linkageType: ''
    returnType: Botan::BigInt
    signature: "Botan::BigInt decompress_point(bool yMod2,\n                                      const
      Botan::BigInt& x,\n                                      const Botan::BigInt&
      curve_p,\n                                      const Botan::BigInt& curve_a,\n
      \                                     const Botan::BigInt& curve_b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_helper.h:48,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/fuzzer/ecc_helper.h:50,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/ecc_helper.h:50,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/fuzzer/ecc_helper.h:51,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/ecc_helper.h:51,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_helper.h:51,1
    - Dst: auto::is_zero
      Src: /src/botan/src/fuzzer/ecc_helper.h:54,1
    - Dst: auto::is_zero
      Src: /src/botan/src/fuzzer/ecc_helper.h:54,1
    - Dst: auto::is_zero
      Src: /src/botan/src/fuzzer/ecc_helper.h:54,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/fuzzer/ecc_helper.h:58,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/fuzzer/ecc_helper.h:61,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/fuzzer/ecc_helper.h:62,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/fuzzer/ecc_helper.h:63,1
    - Dst: auto::add
      Src: /src/botan/src/fuzzer/ecc_helper.h:65,1
    - Dst: auto::add
      Src: /src/botan/src/fuzzer/ecc_helper.h:66,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/ecc_helper.h:68,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/ecc_helper.h:69,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/fuzzer/ecc_helper.h:71,1
    - Dst: auto::mul
      Src: /src/botan/src/fuzzer/ecc_helper.h:73,1
    - Dst: auto::mul
      Src: /src/botan/src/fuzzer/ecc_helper.h:74,1
    - Dst: auto::mul
      Src: /src/botan/src/fuzzer/ecc_helper.h:75,1
    - Dst: auto::add
      Src: /src/botan/src/fuzzer/ecc_helper.h:77,1
    - Dst: auto::add
      Src: /src/botan/src/fuzzer/ecc_helper.h:78,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/ecc_helper.h:80,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/ecc_helper.h:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' group'
    - in
    argTypes:
    - Botan::EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 82
    functionName: check_ecc_math
    functionSourceFile: /src/botan/src/fuzzer/ecc_helper.h
    functionUses: 10
    functionsReached:
    - auto::is_zero
    - std::span<const uint8_t>::subspan
    - fuzzer_rng
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::EC_AffinePoint::generator
    - auto::mul
    - auto::add
    - std::span<const uint8_t>::size
    - FUZZER_ASSERT_EQUAL
    linkageType: ''
    returnType: void
    signature: void check_ecc_math(const Botan::EC_Group& group, std::span<const uint8_t>
      in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::X509_Certificate>
      Src: /src/botan/src/fuzzer/tls_server.cpp:51,1
    - Dst: reset
      Src: /src/botan/src/fuzzer/tls_server.cpp:54,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/fuzzer/tls_server.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: Fuzzer_TLS_Server_Creds::Fuzzer_TLS_Server_Creds
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::X509_Certificate>
    - reset
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void Fuzzer_TLS_Server_Creds()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/tls_server.cpp:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' algos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 72
    functionName: Fuzzer_TLS_Server_Creds::cert_chain
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> cert_chain(\n         const std::vector<std::string>&
      algos,\n         const std::vector<Botan::AlgorithmIdentifier>& /*signature_schemes*/,\n
      \        const std::string& /*type*/,\n         const std::string& /*hostname*/)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' type'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: Fuzzer_TLS_Server_Creds::private_key_for
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      /*cert*/,\n                                                          const std::string&
      type,\n                                                          const std::string&
      /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_server.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Fuzzer_TLS_Server_Creds::session_ticket_key
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_server.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Fuzzer_TLS_Server_Creds::dtls_cookie_secret
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> dtls_cookie_secret() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: Fuzzer_TLS_Server_Creds::psk_identity_hint
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string psk_identity_hint(const std::string& /*type*/, const std::string&
      /*context*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: Fuzzer_TLS_Server_Creds::psk_identity
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string psk_identity(const std::string& /*type*/,\n                               const
      std::string& /*context*/,\n                               const std::string&
      /*hint*/) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/fuzzer/tls_server.cpp:106,1
    - Dst: std::find
      Src: /src/botan/src/fuzzer/tls_server.cpp:106,1
    - Dst: begin
      Src: /src/botan/src/fuzzer/tls_server.cpp:106,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_server.cpp:106,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_server.cpp:106,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/fuzzer/tls_server.cpp:107,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/fuzzer/tls_server.cpp:111,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_server.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - host
    - whoami
    argTypes:
    - std::string_view
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: Fuzzer_TLS_Server_Creds::find_preshared_keys
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - std::find
    - std::vector::emplace_back
    - begin
    - Botan::Credentials_Manager::find_preshared_keys
    - empty
    - end
    linkageType: ''
    returnType: std::vector<Botan::TLS::ExternalPSK>
    signature: "std::vector<Botan::TLS::ExternalPSK> find_preshared_keys(\n         std::string_view
      host,\n         Botan::TLS::Connection_Side whoami,\n         const std::vector<std::string>&
      identities = {},\n         const std::optional<std::string>& prf = std::nullopt)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Ciphersuite::all_known_ciphersuites
      Src: /src/botan/src/fuzzer/tls_server.cpp:125,1
    - Dst: valid
      Src: /src/botan/src/fuzzer/tls_server.cpp:126,1
    - Dst: usable_in_version
      Src: /src/botan/src/fuzzer/tls_server.cpp:126,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/tls_server.cpp:127,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/fuzzer/tls_server.cpp:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: Fuzzer_TLS_Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - usable_in_version
    - std::vector::push_back
    - valid
    - ciphersuite_code
    - Botan::TLS::Ciphersuite::all_known_ciphersuites
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> ciphersuite_list(Botan::TLS::Protocol_Version
      version) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: Fuzzer_TLS_Server_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Fuzzer_TLS_Server_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*rec*/, std::span<const uint8_t>
      /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: Fuzzer_TLS_Server_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/fuzzer/tls_server.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      client_protos) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
      Src: /src/botan/src/fuzzer/tls_server.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ' cert_chain'
    - ' ocsp_responses'
    - ' trusted_roots'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    - std::vector<std::optional<Botan::OCSP::Response>>
    - std::vector<Botan::Certificate_Store*>
    - Botan::Usage_Type
    - std::string_view
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: Fuzzer_TLS_Server_Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      ocsp_responses,\n                                 const std::vector<Botan::Certificate_Store*>&
      trusted_roots,\n                                 Botan::Usage_Type usage,\n
      \                                std::string_view hostname,\n                                 const
      Botan::TLS::Policy& policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::X509_Certificate>
      Src: /src/botan/src/fuzzer/tls_server.cpp:51,1
    - Dst: reset
      Src: /src/botan/src/fuzzer/tls_server.cpp:54,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/fuzzer/tls_server.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: Fuzzer_TLS_Server_Creds::Fuzzer_TLS_Server_Creds
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::X509_Certificate>
    - reset
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void Fuzzer_TLS_Server_Creds()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/tls_server.cpp:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' algos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 72
    functionName: Fuzzer_TLS_Server_Creds::cert_chain
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> cert_chain(\n         const std::vector<std::string>&
      algos,\n         const std::vector<Botan::AlgorithmIdentifier>& /*signature_schemes*/,\n
      \        const std::string& /*type*/,\n         const std::string& /*hostname*/)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' type'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: Fuzzer_TLS_Server_Creds::private_key_for
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      /*cert*/,\n                                                          const std::string&
      type,\n                                                          const std::string&
      /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_server.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Fuzzer_TLS_Server_Creds::session_ticket_key
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_server.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Fuzzer_TLS_Server_Creds::dtls_cookie_secret
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> dtls_cookie_secret() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: Fuzzer_TLS_Server_Creds::psk_identity_hint
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string psk_identity_hint(const std::string& /*type*/, const std::string&
      /*context*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: Fuzzer_TLS_Server_Creds::psk_identity
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string psk_identity(const std::string& /*type*/,\n                               const
      std::string& /*context*/,\n                               const std::string&
      /*hint*/) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/fuzzer/tls_server.cpp:106,1
    - Dst: std::find
      Src: /src/botan/src/fuzzer/tls_server.cpp:106,1
    - Dst: begin
      Src: /src/botan/src/fuzzer/tls_server.cpp:106,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_server.cpp:106,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_server.cpp:106,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/fuzzer/tls_server.cpp:107,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/fuzzer/tls_server.cpp:111,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_server.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - host
    - whoami
    argTypes:
    - std::string_view
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: Fuzzer_TLS_Server_Creds::find_preshared_keys
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - std::find
    - std::vector::emplace_back
    - begin
    - Botan::Credentials_Manager::find_preshared_keys
    - empty
    - end
    linkageType: ''
    returnType: std::vector<Botan::TLS::ExternalPSK>
    signature: "std::vector<Botan::TLS::ExternalPSK> find_preshared_keys(\n         std::string_view
      host,\n         Botan::TLS::Connection_Side whoami,\n         const std::vector<std::string>&
      identities = {},\n         const std::optional<std::string>& prf = std::nullopt)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Ciphersuite::all_known_ciphersuites
      Src: /src/botan/src/fuzzer/tls_server.cpp:125,1
    - Dst: valid
      Src: /src/botan/src/fuzzer/tls_server.cpp:126,1
    - Dst: usable_in_version
      Src: /src/botan/src/fuzzer/tls_server.cpp:126,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/tls_server.cpp:127,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/fuzzer/tls_server.cpp:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: Fuzzer_TLS_Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - usable_in_version
    - std::vector::push_back
    - valid
    - ciphersuite_code
    - Botan::TLS::Ciphersuite::all_known_ciphersuites
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> ciphersuite_list(Botan::TLS::Protocol_Version
      version) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: Fuzzer_TLS_Server_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Fuzzer_TLS_Server_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*rec*/, std::span<const uint8_t>
      /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: Fuzzer_TLS_Server_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/fuzzer/tls_server.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      client_protos) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
      Src: /src/botan/src/fuzzer/tls_server.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ' cert_chain'
    - ' ocsp_responses'
    - ' trusted_roots'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    - std::vector<std::optional<Botan::OCSP::Response>>
    - std::vector<Botan::Certificate_Store*>
    - Botan::Usage_Type
    - std::string_view
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: Fuzzer_TLS_Server_Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      ocsp_responses,\n                                 const std::vector<Botan::Certificate_Store*>&
      trusted_roots,\n                                 Botan::Usage_Type usage,\n
      \                                std::string_view hostname,\n                                 const
      Botan::TLS::Policy& policy) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/tls_server.cpp:176,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/fuzzer/tls_server.cpp:180,1
    - Dst: std::make_shared<Fuzzer_TLS_Policy>
      Src: /src/botan/src/fuzzer/tls_server.cpp:181,1
    - Dst: std::make_shared<Fuzzer_TLS_Server_Creds>
      Src: /src/botan/src/fuzzer/tls_server.cpp:183,1
    - Dst: std::make_shared<Fuzzer_TLS_Server_Callbacks>
      Src: /src/botan/src/fuzzer/tls_server.cpp:184,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/fuzzer/tls_server.cpp:191,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/tls_server.cpp:191,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/tls_server.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 193
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::subspan
    - std::make_shared<Fuzzer_TLS_Server_Creds>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Fuzzer_TLS_Server_Callbacks>
    - Botan::TLS::Server::received_data
    - std::span<const uint8_t>::size
    - std::make_shared<Fuzzer_TLS_Policy>
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/ecc_p521.cpp:11,1
    - Dst: check_ecc_math
      Src: /src/botan/src/fuzzer/ecc_p521.cpp:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 3
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/ecc_p521.cpp
    functionUses: 1
    functionsReached:
    - check_ecc_math
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/fuzzer/pow_mod.cpp:22,1
    - Dst: Botan::BigInt::is_odd
      Src: /src/botan/src/fuzzer/pow_mod.cpp:26,1
    - Dst: auto::multiply
      Src: /src/botan/src/fuzzer/pow_mod.cpp:27,1
    - Dst: auto::square
      Src: /src/botan/src/fuzzer/pow_mod.cpp:29,1
    - Dst: auto::multiply
      Src: /src/botan/src/fuzzer/pow_mod.cpp:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - x
    - n
    - ' p'
    argTypes:
    - Botan::BigInt
    - Botan::BigInt
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 33
    functionName: simple_power_mod
    functionSourceFile: /src/botan/src/fuzzer/pow_mod.cpp
    functionUses: 0
    functionsReached:
    - auto::multiply
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::BigInt::is_odd
    - auto::square
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt simple_power_mod(Botan::BigInt x, Botan::BigInt n, const
      Botan::BigInt& p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/fuzzer/pow_mod.cpp:22,1
    - Dst: Botan::BigInt::is_odd
      Src: /src/botan/src/fuzzer/pow_mod.cpp:26,1
    - Dst: auto::multiply
      Src: /src/botan/src/fuzzer/pow_mod.cpp:27,1
    - Dst: auto::square
      Src: /src/botan/src/fuzzer/pow_mod.cpp:29,1
    - Dst: auto::multiply
      Src: /src/botan/src/fuzzer/pow_mod.cpp:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - x
    - n
    - ' p'
    argTypes:
    - Botan::BigInt
    - Botan::BigInt
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 33
    functionName: simple_power_mod
    functionSourceFile: /src/botan/src/fuzzer/pow_mod.cpp
    functionUses: 0
    functionsReached:
    - auto::multiply
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::BigInt::is_odd
    - auto::square
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt simple_power_mod(Botan::BigInt x, Botan::BigInt n, const
      Botan::BigInt& p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/pow_mod.cpp:40,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/pow_mod.cpp:44,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/pow_mod.cpp:50,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/pow_mod.cpp:50,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/pow_mod.cpp:51,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/pow_mod.cpp:51,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/pow_mod.cpp:52,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/pow_mod.cpp:52,1
    - Dst: simple_power_mod
      Src: /src/botan/src/fuzzer/pow_mod.cpp:55,1
    - Dst: Botan::power_mod
      Src: /src/botan/src/fuzzer/pow_mod.cpp:56,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/pow_mod.cpp:59,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/pow_mod.cpp:59,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/pow_mod.cpp:60,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/pow_mod.cpp:61,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/pow_mod.cpp:62,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/pow_mod.cpp:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 66
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/pow_mod.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::subspan
    - Botan::BigInt::to_hex_string
    - Botan::power_mod
    - FUZZER_WRITE_AND_CRASH
    - std::span<const uint8_t>::size
    - simple_power_mod
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<Botan::X509_Certificate>
      Src: /src/botan/src/tests/test_tls.cpp:53,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:54,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:56,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:58,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:67,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:67,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_tls.cpp:70,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:72,1
    - Dst: first
      Src: /src/botan/src/tests/test_tls.cpp:73,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:74,1
    - Dst: first
      Src: /src/botan/src/tests/test_tls.cpp:75,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:80,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:82,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:84,1
    - Dst: std::vector<Botan::X509_Certificate>
      Src: /src/botan/src/tests/test_tls.cpp:92,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:93,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:95,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:96,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 103
    functionName: Botan_Tests::TLS_Session_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session::DER_encode
    - Test::Result::test_throws
    - first
    - std::vector::size
    - std::vector::data
    - Botan_Tests::TLS_Session_Tests::rng
    - Botan::TLS::Session::encrypt
    - std::vector<Botan::X509_Certificate>
    - Test::Result::test_bin_eq
    - Test::Result::test_bin_ne
    - Botan::TLS::Server_Information
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::TLS::Session::decrypt
    - Botan::TLS::Session::PEM_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan_Tests::TLS_CBC_Padding_Tests::TLS_CBC_Padding_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_Padding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:115,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:116,1
    - Dst: Botan::TLS::check_tls_cbc_padding
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: Botan_Tests::TLS_CBC_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - Test::Result::test_sz_eq
    - Botan::TLS::check_tls_cbc_padding
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mac_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::ZeroMac
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZeroMac(size_t mac_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::clear
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::name
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::output_length
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::add_data
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*input*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::final_result
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void final_result(std::span<uint8_t> out) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_tls.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::key_spec
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ZeroMac>
      Src: /src/botan/src/tests/test_tls.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::new_object
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ZeroMac>
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::key_schedule
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /* key */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::Noop_Block_Cipher
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Noop_Block_Cipher(size_t bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_tls.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_tls.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_tls.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Noop_Block_Cipher>
      Src: /src/botan/src/tests/test_tls.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Noop_Block_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<BlockCipher>
    signature: std::unique_ptr<BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /*key*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: Botan_Tests::TLS_CBC_Tests::TLS_CBC_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:203,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:204,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:205,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:206,1
    - Dst: std::make_unique<Noop_Block_Cipher>
      Src: /src/botan/src/tests/test_tls.cpp:211,1
    - Dst: std::make_unique<ZeroMac>
      Src: /src/botan/src/tests/test_tls.cpp:212,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:218,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls.cpp:218,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls.cpp:222,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls.cpp:222,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:225,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:227,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:229,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:233,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 240
    functionName: Botan_Tests::TLS_CBC_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
    - Test::Result::test_success
    - std::make_unique<ZeroMac>
    - std::vector::end
    - std::vector<uint8_t>
    - std::vector::size
    - std::vector::data
    - std::vector::begin
    - std::make_unique<Noop_Block_Cipher>
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::TLS_CBC_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
      Src: /src/botan/src/tests/test_tls.cpp:254,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
      Src: /src/botan/src/tests/test_tls.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_CBC_KAT_Tests::run_kat
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
      Src: /src/botan/src/tests/test_tls.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:274,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:274,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:275,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - get_req_str
    - Botan::BlockCipher::create_or_throw
    linkageType: ''
    returnType: "std::pair<std::unique_ptr<Botan::BlockCipher>,\n                                     std::unique_ptr<Botan::MessageAuthenticationCode>>"
    signature: "std::pair<std::unique_ptr<Botan::BlockCipher>,\n                                     std::unique_ptr<Botan::MessageAuthenticationCode>>
      get_cipher_and_mac(const VarMap& vars)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:292,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:293,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_tls.cpp:294,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:296,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:302,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:306,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:307,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:308,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:309,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:310,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
      Src: /src/botan/src/tests/test_tls.cpp:312,1
    - Dst: T
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls.cpp:316,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:317,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:319,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:319,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:320,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:320,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_tls.cpp:323,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:328,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:329,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:334,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    - Dst: auto::subspan
      Src: /src/botan/src/tests/test_tls.cpp:338,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:341,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:341,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:342,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:343,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - ' result'
    - ' vars'
    argTypes:
    - Test::Result
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 344
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - std::string
    - auto::minimum_final_size
    - auto::process
    - T
    - auto::size
    - std::move
    - auto::start
    - auto::finish
    - test_bin_eq
    - auto::end
    - get_req_bin
    - auto::set_associated_data
    - auto::begin
    - std::swap
    - get_req_sz
    - auto::subspan
    - get_req_bool
    - get_req_str
    - auto::set_key
    - Test_Error
    - auto::first
    - Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    linkageType: ''
    returnType: void
    signature: void run_kat(Test::Result& result, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: Botan_Tests::TLS_Null_Tests::TLS_Null_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Null_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:364,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:364,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:366,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:369,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:370,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:372,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:372,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:373,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - ' result'
    - ' hash'
    - ' key'
    - ' associated_data'
    - ' message'
    - ' expected_tls_fragment'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 376
    functionName: Botan_Tests::TLS_Null_Tests::encryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - begin
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
    - test_bin_eq
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
    - end
    linkageType: ''
    returnType: void
    signature: "void encryption_test(Test::Result& result,\n                           const
      std::string& hash,\n                           const std::vector<uint8_t>& key,\n
      \                          const std::vector<uint8_t>& associated_data,\n                           const
      std::vector<uint8_t>& message,\n                           const std::vector<uint8_t>&
      expected_tls_fragment)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:385,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:385,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:387,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:390,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:391,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:393,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:393,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:396,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:397,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:400,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - ' result'
    - ' hash'
    - ' key'
    - ' associated_data'
    - ' expected_message'
    - ' tls_fragment'
    - ' header'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 403
    functionName: Botan_Tests::TLS_Null_Tests::decryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
    - begin
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - test_throws
    - test_bin_eq
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
    - end
    linkageType: ''
    returnType: void
    signature: "void decryption_test(Test::Result& result,\n                           const
      std::string& hash,\n                           const std::vector<uint8_t>& key,\n
      \                          const std::vector<uint8_t>& associated_data,\n                           const
      std::vector<uint8_t>& expected_message,\n                           const std::vector<uint8_t>&
      tls_fragment,\n                           const std::string& header)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:408,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:408,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:410,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:413,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' result'
    - ' hash'
    - ' associated_data'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - test_throws
    linkageType: ''
    returnType: void
    signature: "void invalid_ad_length_test(Test::Result& result,\n                                  const
      std::string& hash,\n                                  const std::vector<uint8_t>&
      associated_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:421,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:422,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:424,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:425,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls.cpp:427,1
    - Dst: Botan_Tests::TLS_Null_Tests::encryption_test
      Src: /src/botan/src/tests/test_tls.cpp:428,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:429,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:433,1
    - Dst: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
      Src: /src/botan/src/tests/test_tls.cpp:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 441
    functionName: Botan_Tests::TLS_Null_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Null_Tests::encryption_test
    - get_req_str
    - Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    - Botan_Tests::TLS_Null_Tests::decryption_test
    - get_req_bin
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert
      Src: /src/botan/src/tests/test_tls.cpp:492,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:494,1
    - Dst: Botan::TLS::Alert
      Src: /src/botan/src/tests/test_tls.cpp:497,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:499,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 502
    functionName: Botan_Tests::Test_TLS_Alert_Strings::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - Test::Result::test_str_eq
    - std::set::count
    - Test::Result::test_sz_eq
    - Botan::TLS::Alert::type_string
    - Botan::TLS::Alert
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
      Src: /src/botan/src/tests/test_tls.cpp:518,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
      Src: /src/botan/src/tests/test_tls.cpp:522,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::diff
      Src: /src/botan/src/tests/test_tls.cpp:525,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:526,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:526,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 533
    functionName: Botan_Tests::Test_TLS_Policy_Text::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_Policy_Text::diff
    - Botan::fmt
    - Test::Result::test_success
    - Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    - Test::Result::test_failure
    - Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::getline
      Src: /src/botan/src/tests/test_tls.cpp:548,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_tls.cpp:551,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_tls.cpp:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ' a_str'
    - ' b_str'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 560
    functionName: Botan_Tests::Test_TLS_Policy_Text::diff
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - std::getline
    linkageType: ''
    returnType: std::string
    signature: std::string diff(const std::string& a_str, const std::string& b_str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls.cpp:563,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls.cpp:565,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls.cpp:566,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:567,1
    - Dst: Botan::TLS::Text_Policy::to_string
      Src: /src/botan/src/tests/test_tls.cpp:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 572
    functionName: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - std::ifstream::good
    - Botan::TLS::Text_Policy::to_string
    - Botan_Tests::Test::data_file
    - Test_Error
    - std::string::c_str
    linkageType: ''
    returnType: std::string
    signature: std::string read_tls_policy(const std::string& policy_str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::TLS::Policy>
      Src: /src/botan/src/tests/test_tls.cpp:577,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/test_tls.cpp:579,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_192>
      Src: /src/botan/src/tests/test_tls.cpp:581,1
    - Dst: std::make_unique<Botan::TLS::BSI_TR_02102_2>
      Src: /src/botan/src/tests/test_tls.cpp:583,1
    - Dst: std::make_unique<Botan::TLS::Strict_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:585,1
    - Dst: std::make_unique<Botan::TLS::Datagram_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:587,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:589,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/tests/test_tls.cpp:592,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 593
    functionName: Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr::to_string
    - std::make_unique<Botan::TLS::Strict_Policy>
    - std::make_unique<Botan::TLS::NSA_Suite_B_128>
    - std::make_unique<Botan::TLS::Datagram_Policy>
    - std::make_unique<Botan::TLS::BSI_TR_02102_2>
    - std::make_unique<Botan::TLS::NSA_Suite_B_192>
    - std::make_unique<Botan::TLS::Policy>
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string tls_policy_string(const std::string& policy_str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls.cpp:605,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls.cpp:606,1
    - Dst: auto::valid
      Src: /src/botan/src/tests/test_tls.cpp:608,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: Botan::TLS::Ciphersuite::is_scsv
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: auto::cbc_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:611,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:611,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:612,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:612,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:613,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:613,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tls.cpp:615,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:615,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:616,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls.cpp:617,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:618,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:621,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:622,1
    - Dst: auto::cipher_algo
      Src: /src/botan/src/tests/test_tls.cpp:622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 630
    functionName: Botan_Tests::Test_TLS_Ciphersuites::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::valid
    - auto::mac_algo
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - auto::null_ciphersuite
    - auto::prf_algo
    - auto::cipher_algo
    - Botan::TLS::Ciphersuite::by_id
    - auto::cbc_ciphersuite
    - auto::aead_ciphersuite
    - Test::Result::test_is_false
    - Botan::TLS::Ciphersuite::is_scsv
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:640,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:641,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
      Src: /src/botan/src/tests/test_tls.cpp:641,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:642,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 645
    functionName: Botan_Tests::Test_TLS_Algo_Strings::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
    - Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
    - Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Signature_Scheme::all_available_schemes
      Src: /src/botan/src/tests/test_tls.cpp:652,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls.cpp:653,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:655,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:655,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 661
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - to_string
    - std::set::insert
    - std::set::count
    - Test::Result::test_sz_eq
    - Botan::TLS::Signature_Scheme::all_available_schemes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_tls_sig_method_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::auth_method_to_string
      Src: /src/botan/src/tests/test_tls.cpp:673,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tls.cpp:674,1
    - Dst: Botan::TLS::auth_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:675,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 680
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::auth_method_to_string
    - Test::Result::test_str_not_empty
    - Test::Result::test_is_true
    - Botan::TLS::auth_method_from_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_auth_method_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/tests/test_tls.cpp:692,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tls.cpp:693,1
    - Dst: Botan::TLS::kex_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:694,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 699
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_str_not_empty
    - Botan::TLS::kex_method_to_string
    - Botan::TLS::kex_method_from_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_kex_algo_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<Botan::X509_Certificate>
      Src: /src/botan/src/tests/test_tls.cpp:53,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:54,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:56,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:58,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:67,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:67,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_tls.cpp:70,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:72,1
    - Dst: first
      Src: /src/botan/src/tests/test_tls.cpp:73,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:74,1
    - Dst: first
      Src: /src/botan/src/tests/test_tls.cpp:75,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:80,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:82,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:84,1
    - Dst: std::vector<Botan::X509_Certificate>
      Src: /src/botan/src/tests/test_tls.cpp:92,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:93,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:95,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:96,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 103
    functionName: Botan_Tests::TLS_Session_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session::DER_encode
    - Test::Result::test_throws
    - first
    - std::vector::size
    - std::vector::data
    - Botan_Tests::TLS_Session_Tests::rng
    - Botan::TLS::Session::encrypt
    - std::vector<Botan::X509_Certificate>
    - Test::Result::test_bin_eq
    - Test::Result::test_bin_ne
    - Botan::TLS::Server_Information
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::TLS::Session::decrypt
    - Botan::TLS::Session::PEM_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan_Tests::TLS_CBC_Padding_Tests::TLS_CBC_Padding_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_Padding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:115,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:116,1
    - Dst: Botan::TLS::check_tls_cbc_padding
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: Botan_Tests::TLS_CBC_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - Test::Result::test_sz_eq
    - Botan::TLS::check_tls_cbc_padding
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mac_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::ZeroMac
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZeroMac(size_t mac_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::clear
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::name
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::output_length
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::add_data
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*input*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::final_result
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void final_result(std::span<uint8_t> out) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_tls.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::key_spec
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ZeroMac>
      Src: /src/botan/src/tests/test_tls.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::new_object
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ZeroMac>
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::key_schedule
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /* key */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::Noop_Block_Cipher
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Noop_Block_Cipher(size_t bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_tls.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_tls.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_tls.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Noop_Block_Cipher>
      Src: /src/botan/src/tests/test_tls.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Noop_Block_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<BlockCipher>
    signature: std::unique_ptr<BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /*key*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: Botan_Tests::TLS_CBC_Tests::TLS_CBC_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:203,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:204,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:205,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:206,1
    - Dst: std::make_unique<Noop_Block_Cipher>
      Src: /src/botan/src/tests/test_tls.cpp:211,1
    - Dst: std::make_unique<ZeroMac>
      Src: /src/botan/src/tests/test_tls.cpp:212,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:218,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls.cpp:218,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls.cpp:222,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls.cpp:222,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:225,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:227,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:229,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:233,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 240
    functionName: Botan_Tests::TLS_CBC_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
    - Test::Result::test_success
    - std::make_unique<ZeroMac>
    - std::vector::end
    - std::vector<uint8_t>
    - std::vector::size
    - std::vector::data
    - std::vector::begin
    - std::make_unique<Noop_Block_Cipher>
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::TLS_CBC_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
      Src: /src/botan/src/tests/test_tls.cpp:254,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
      Src: /src/botan/src/tests/test_tls.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_CBC_KAT_Tests::run_kat
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
      Src: /src/botan/src/tests/test_tls.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:274,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:274,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:275,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - get_req_str
    - Botan::BlockCipher::create_or_throw
    linkageType: ''
    returnType: "std::pair<std::unique_ptr<Botan::BlockCipher>,\n                                     std::unique_ptr<Botan::MessageAuthenticationCode>>"
    signature: "std::pair<std::unique_ptr<Botan::BlockCipher>,\n                                     std::unique_ptr<Botan::MessageAuthenticationCode>>
      get_cipher_and_mac(const VarMap& vars)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:292,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:293,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_tls.cpp:294,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:296,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:302,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:306,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:307,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:308,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:309,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:310,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
      Src: /src/botan/src/tests/test_tls.cpp:312,1
    - Dst: T
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls.cpp:316,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:317,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:319,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:319,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:320,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:320,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_tls.cpp:323,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:328,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:329,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:334,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    - Dst: auto::subspan
      Src: /src/botan/src/tests/test_tls.cpp:338,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:341,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:341,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:342,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:343,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - ' result'
    - ' vars'
    argTypes:
    - Test::Result
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 344
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - std::string
    - auto::minimum_final_size
    - auto::process
    - T
    - auto::size
    - std::move
    - auto::start
    - auto::finish
    - test_bin_eq
    - auto::end
    - get_req_bin
    - auto::set_associated_data
    - auto::begin
    - std::swap
    - get_req_sz
    - auto::subspan
    - get_req_bool
    - get_req_str
    - auto::set_key
    - Test_Error
    - auto::first
    - Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    linkageType: ''
    returnType: void
    signature: void run_kat(Test::Result& result, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: Botan_Tests::TLS_Null_Tests::TLS_Null_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Null_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:364,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:364,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:366,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:369,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:370,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:372,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:372,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:373,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - ' result'
    - ' hash'
    - ' key'
    - ' associated_data'
    - ' message'
    - ' expected_tls_fragment'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 376
    functionName: Botan_Tests::TLS_Null_Tests::encryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - begin
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
    - test_bin_eq
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
    - end
    linkageType: ''
    returnType: void
    signature: "void encryption_test(Test::Result& result,\n                           const
      std::string& hash,\n                           const std::vector<uint8_t>& key,\n
      \                          const std::vector<uint8_t>& associated_data,\n                           const
      std::vector<uint8_t>& message,\n                           const std::vector<uint8_t>&
      expected_tls_fragment)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:385,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:385,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:387,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:390,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:391,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:393,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:393,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:396,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:397,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:400,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - ' result'
    - ' hash'
    - ' key'
    - ' associated_data'
    - ' expected_message'
    - ' tls_fragment'
    - ' header'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 403
    functionName: Botan_Tests::TLS_Null_Tests::decryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
    - begin
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - test_throws
    - test_bin_eq
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
    - end
    linkageType: ''
    returnType: void
    signature: "void decryption_test(Test::Result& result,\n                           const
      std::string& hash,\n                           const std::vector<uint8_t>& key,\n
      \                          const std::vector<uint8_t>& associated_data,\n                           const
      std::vector<uint8_t>& expected_message,\n                           const std::vector<uint8_t>&
      tls_fragment,\n                           const std::string& header)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:408,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:408,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:410,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:413,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' result'
    - ' hash'
    - ' associated_data'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - test_throws
    linkageType: ''
    returnType: void
    signature: "void invalid_ad_length_test(Test::Result& result,\n                                  const
      std::string& hash,\n                                  const std::vector<uint8_t>&
      associated_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:421,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:422,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:424,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:425,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls.cpp:427,1
    - Dst: Botan_Tests::TLS_Null_Tests::encryption_test
      Src: /src/botan/src/tests/test_tls.cpp:428,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:429,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:433,1
    - Dst: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
      Src: /src/botan/src/tests/test_tls.cpp:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 441
    functionName: Botan_Tests::TLS_Null_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Null_Tests::encryption_test
    - get_req_str
    - Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    - Botan_Tests::TLS_Null_Tests::decryption_test
    - get_req_bin
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert
      Src: /src/botan/src/tests/test_tls.cpp:492,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:494,1
    - Dst: Botan::TLS::Alert
      Src: /src/botan/src/tests/test_tls.cpp:497,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:499,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 502
    functionName: Botan_Tests::Test_TLS_Alert_Strings::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - Test::Result::test_str_eq
    - std::set::count
    - Test::Result::test_sz_eq
    - Botan::TLS::Alert::type_string
    - Botan::TLS::Alert
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
      Src: /src/botan/src/tests/test_tls.cpp:518,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
      Src: /src/botan/src/tests/test_tls.cpp:522,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::diff
      Src: /src/botan/src/tests/test_tls.cpp:525,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:526,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:526,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 533
    functionName: Botan_Tests::Test_TLS_Policy_Text::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_Policy_Text::diff
    - Botan::fmt
    - Test::Result::test_success
    - Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    - Test::Result::test_failure
    - Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::getline
      Src: /src/botan/src/tests/test_tls.cpp:548,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_tls.cpp:551,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_tls.cpp:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ' a_str'
    - ' b_str'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 560
    functionName: Botan_Tests::Test_TLS_Policy_Text::diff
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - std::ostringstream::str
    - std::getline
    linkageType: ''
    returnType: std::string
    signature: std::string diff(const std::string& a_str, const std::string& b_str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls.cpp:563,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls.cpp:565,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls.cpp:566,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:567,1
    - Dst: Botan::TLS::Text_Policy::to_string
      Src: /src/botan/src/tests/test_tls.cpp:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 572
    functionName: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - std::ifstream::good
    - Botan::TLS::Text_Policy::to_string
    - Botan_Tests::Test::data_file
    - Test_Error
    - std::string::c_str
    linkageType: ''
    returnType: std::string
    signature: std::string read_tls_policy(const std::string& policy_str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::TLS::Policy>
      Src: /src/botan/src/tests/test_tls.cpp:577,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/test_tls.cpp:579,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_192>
      Src: /src/botan/src/tests/test_tls.cpp:581,1
    - Dst: std::make_unique<Botan::TLS::BSI_TR_02102_2>
      Src: /src/botan/src/tests/test_tls.cpp:583,1
    - Dst: std::make_unique<Botan::TLS::Strict_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:585,1
    - Dst: std::make_unique<Botan::TLS::Datagram_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:587,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:589,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/tests/test_tls.cpp:592,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 593
    functionName: Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr::to_string
    - std::make_unique<Botan::TLS::Strict_Policy>
    - std::make_unique<Botan::TLS::NSA_Suite_B_128>
    - std::make_unique<Botan::TLS::Datagram_Policy>
    - std::make_unique<Botan::TLS::BSI_TR_02102_2>
    - std::make_unique<Botan::TLS::NSA_Suite_B_192>
    - std::make_unique<Botan::TLS::Policy>
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string tls_policy_string(const std::string& policy_str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls.cpp:605,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls.cpp:606,1
    - Dst: auto::valid
      Src: /src/botan/src/tests/test_tls.cpp:608,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: Botan::TLS::Ciphersuite::is_scsv
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: auto::cbc_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:611,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:611,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:612,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:612,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:613,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:613,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tls.cpp:615,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:615,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:616,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls.cpp:617,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:618,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:621,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:622,1
    - Dst: auto::cipher_algo
      Src: /src/botan/src/tests/test_tls.cpp:622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 630
    functionName: Botan_Tests::Test_TLS_Ciphersuites::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::valid
    - auto::mac_algo
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - auto::null_ciphersuite
    - auto::prf_algo
    - auto::cipher_algo
    - Botan::TLS::Ciphersuite::by_id
    - auto::cbc_ciphersuite
    - auto::aead_ciphersuite
    - Test::Result::test_is_false
    - Botan::TLS::Ciphersuite::is_scsv
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:640,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:641,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
      Src: /src/botan/src/tests/test_tls.cpp:641,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:642,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 645
    functionName: Botan_Tests::Test_TLS_Algo_Strings::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
    - Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
    - Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Signature_Scheme::all_available_schemes
      Src: /src/botan/src/tests/test_tls.cpp:652,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls.cpp:653,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:655,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:655,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 661
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - to_string
    - std::set::insert
    - std::set::count
    - Test::Result::test_sz_eq
    - Botan::TLS::Signature_Scheme::all_available_schemes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_tls_sig_method_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::auth_method_to_string
      Src: /src/botan/src/tests/test_tls.cpp:673,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tls.cpp:674,1
    - Dst: Botan::TLS::auth_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:675,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 680
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::auth_method_to_string
    - Test::Result::test_str_not_empty
    - Test::Result::test_is_true
    - Botan::TLS::auth_method_from_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_auth_method_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/tests/test_tls.cpp:692,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tls.cpp:693,1
    - Dst: Botan::TLS::kex_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:694,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 699
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_str_not_empty
    - Botan::TLS::kex_method_to_string
    - Botan::TLS::kex_method_from_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_kex_algo_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<Botan::X509_Certificate>
      Src: /src/botan/src/tests/test_tls.cpp:53,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:54,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:56,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:58,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:67,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:67,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_tls.cpp:70,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:72,1
    - Dst: first
      Src: /src/botan/src/tests/test_tls.cpp:73,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:74,1
    - Dst: first
      Src: /src/botan/src/tests/test_tls.cpp:75,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:80,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:82,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:84,1
    - Dst: std::vector<Botan::X509_Certificate>
      Src: /src/botan/src/tests/test_tls.cpp:92,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:93,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:95,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:96,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 103
    functionName: Botan_Tests::TLS_Session_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session::DER_encode
    - Test::Result::test_throws
    - first
    - std::vector::size
    - std::vector::data
    - Botan_Tests::TLS_Session_Tests::rng
    - Botan::TLS::Session::encrypt
    - std::vector<Botan::X509_Certificate>
    - Test::Result::test_bin_eq
    - Test::Result::test_bin_ne
    - Botan::TLS::Server_Information
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::TLS::Session::decrypt
    - Botan::TLS::Session::PEM_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan_Tests::TLS_CBC_Padding_Tests::TLS_CBC_Padding_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_Padding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:115,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:116,1
    - Dst: Botan::TLS::check_tls_cbc_padding
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: Botan_Tests::TLS_CBC_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - Test::Result::test_sz_eq
    - Botan::TLS::check_tls_cbc_padding
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mac_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::ZeroMac
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZeroMac(size_t mac_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::clear
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::name
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::output_length
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::add_data
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*input*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::final_result
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void final_result(std::span<uint8_t> out) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_tls.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::key_spec
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ZeroMac>
      Src: /src/botan/src/tests/test_tls.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::new_object
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ZeroMac>
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::key_schedule
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /* key */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::Noop_Block_Cipher
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Noop_Block_Cipher(size_t bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_tls.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_tls.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_tls.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Noop_Block_Cipher>
      Src: /src/botan/src/tests/test_tls.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Noop_Block_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<BlockCipher>
    signature: std::unique_ptr<BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /*key*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: Botan_Tests::TLS_CBC_Tests::TLS_CBC_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:203,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:204,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:205,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:206,1
    - Dst: std::make_unique<Noop_Block_Cipher>
      Src: /src/botan/src/tests/test_tls.cpp:211,1
    - Dst: std::make_unique<ZeroMac>
      Src: /src/botan/src/tests/test_tls.cpp:212,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:218,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls.cpp:218,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls.cpp:222,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls.cpp:222,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:225,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:227,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:229,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:233,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 240
    functionName: Botan_Tests::TLS_CBC_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
    - Test::Result::test_success
    - std::make_unique<ZeroMac>
    - std::vector::end
    - std::vector<uint8_t>
    - std::vector::size
    - std::vector::data
    - std::vector::begin
    - std::make_unique<Noop_Block_Cipher>
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::TLS_CBC_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
      Src: /src/botan/src/tests/test_tls.cpp:254,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
      Src: /src/botan/src/tests/test_tls.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_CBC_KAT_Tests::run_kat
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
      Src: /src/botan/src/tests/test_tls.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:274,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:274,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:275,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 5
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - get_req_str
    - Botan::BlockCipher::create_or_throw
    linkageType: ''
    returnType: "std::pair<std::unique_ptr<Botan::BlockCipher>,\n                                     std::unique_ptr<Botan::MessageAuthenticationCode>>"
    signature: "std::pair<std::unique_ptr<Botan::BlockCipher>,\n                                     std::unique_ptr<Botan::MessageAuthenticationCode>>
      get_cipher_and_mac(const VarMap& vars)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:292,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:293,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_tls.cpp:294,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:296,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:302,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:306,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:307,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:308,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:309,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:310,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
      Src: /src/botan/src/tests/test_tls.cpp:312,1
    - Dst: T
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls.cpp:316,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:317,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:319,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:319,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:320,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:320,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_tls.cpp:323,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:328,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:329,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:334,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    - Dst: auto::subspan
      Src: /src/botan/src/tests/test_tls.cpp:338,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:341,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:341,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:342,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:343,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - ' result'
    - ' vars'
    argTypes:
    - Test::Result
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 344
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - std::string
    - auto::minimum_final_size
    - auto::process
    - T
    - auto::size
    - std::move
    - auto::start
    - auto::finish
    - test_bin_eq
    - auto::end
    - get_req_bin
    - auto::set_associated_data
    - auto::begin
    - std::swap
    - get_req_sz
    - auto::subspan
    - get_req_bool
    - get_req_str
    - auto::set_key
    - Test_Error
    - auto::first
    - Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    linkageType: ''
    returnType: void
    signature: void run_kat(Test::Result& result, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: Botan_Tests::TLS_Null_Tests::TLS_Null_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Null_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:364,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:364,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:366,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:369,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:370,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:372,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:372,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:373,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - ' result'
    - ' hash'
    - ' key'
    - ' associated_data'
    - ' message'
    - ' expected_tls_fragment'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 376
    functionName: Botan_Tests::TLS_Null_Tests::encryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - begin
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
    - test_bin_eq
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
    - end
    linkageType: ''
    returnType: void
    signature: "void encryption_test(Test::Result& result,\n                           const
      std::string& hash,\n                           const std::vector<uint8_t>& key,\n
      \                          const std::vector<uint8_t>& associated_data,\n                           const
      std::vector<uint8_t>& message,\n                           const std::vector<uint8_t>&
      expected_tls_fragment)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:385,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:385,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:387,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:390,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:391,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:393,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:393,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:396,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:397,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:400,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - ' result'
    - ' hash'
    - ' key'
    - ' associated_data'
    - ' expected_message'
    - ' tls_fragment'
    - ' header'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 403
    functionName: Botan_Tests::TLS_Null_Tests::decryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
    - begin
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - test_throws
    - test_bin_eq
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
    - end
    linkageType: ''
    returnType: void
    signature: "void decryption_test(Test::Result& result,\n                           const
      std::string& hash,\n                           const std::vector<uint8_t>& key,\n
      \                          const std::vector<uint8_t>& associated_data,\n                           const
      std::vector<uint8_t>& expected_message,\n                           const std::vector<uint8_t>&
      tls_fragment,\n                           const std::string& header)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:408,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:408,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:410,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:413,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' result'
    - ' hash'
    - ' associated_data'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - test_throws
    linkageType: ''
    returnType: void
    signature: "void invalid_ad_length_test(Test::Result& result,\n                                  const
      std::string& hash,\n                                  const std::vector<uint8_t>&
      associated_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:421,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:422,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:424,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:425,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls.cpp:427,1
    - Dst: Botan_Tests::TLS_Null_Tests::encryption_test
      Src: /src/botan/src/tests/test_tls.cpp:428,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:429,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:433,1
    - Dst: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
      Src: /src/botan/src/tests/test_tls.cpp:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 441
    functionName: Botan_Tests::TLS_Null_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Null_Tests::encryption_test
    - get_req_str
    - Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    - Botan_Tests::TLS_Null_Tests::decryption_test
    - get_req_bin
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert
      Src: /src/botan/src/tests/test_tls.cpp:492,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:494,1
    - Dst: Botan::TLS::Alert
      Src: /src/botan/src/tests/test_tls.cpp:497,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:499,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 502
    functionName: Botan_Tests::Test_TLS_Alert_Strings::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - Test::Result::test_str_eq
    - std::set::count
    - Test::Result::test_sz_eq
    - Botan::TLS::Alert::type_string
    - Botan::TLS::Alert
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
      Src: /src/botan/src/tests/test_tls.cpp:518,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
      Src: /src/botan/src/tests/test_tls.cpp:522,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::diff
      Src: /src/botan/src/tests/test_tls.cpp:525,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:526,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:526,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 533
    functionName: Botan_Tests::Test_TLS_Policy_Text::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_Policy_Text::diff
    - Botan::fmt
    - Test::Result::test_success
    - Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    - Test::Result::test_failure
    - Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::getline
      Src: /src/botan/src/tests/test_tls.cpp:548,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_tls.cpp:551,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_tls.cpp:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ' a_str'
    - ' b_str'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 560
    functionName: Botan_Tests::Test_TLS_Policy_Text::diff
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - std::ostringstream::str
    - std::getline
    linkageType: ''
    returnType: std::string
    signature: std::string diff(const std::string& a_str, const std::string& b_str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls.cpp:563,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls.cpp:565,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls.cpp:566,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:567,1
    - Dst: Botan::TLS::Text_Policy::to_string
      Src: /src/botan/src/tests/test_tls.cpp:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 572
    functionName: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - std::ifstream::good
    - Botan::TLS::Text_Policy::to_string
    - Botan_Tests::Test::data_file
    - Test_Error
    - std::string::c_str
    linkageType: ''
    returnType: std::string
    signature: std::string read_tls_policy(const std::string& policy_str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::TLS::Policy>
      Src: /src/botan/src/tests/test_tls.cpp:577,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/test_tls.cpp:579,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_192>
      Src: /src/botan/src/tests/test_tls.cpp:581,1
    - Dst: std::make_unique<Botan::TLS::BSI_TR_02102_2>
      Src: /src/botan/src/tests/test_tls.cpp:583,1
    - Dst: std::make_unique<Botan::TLS::Strict_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:585,1
    - Dst: std::make_unique<Botan::TLS::Datagram_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:587,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:589,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/tests/test_tls.cpp:592,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 593
    functionName: Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - std::unique_ptr::to_string
    - std::make_unique<Botan::TLS::Strict_Policy>
    - std::make_unique<Botan::TLS::NSA_Suite_B_128>
    - std::make_unique<Botan::TLS::Datagram_Policy>
    - std::make_unique<Botan::TLS::BSI_TR_02102_2>
    - std::make_unique<Botan::TLS::NSA_Suite_B_192>
    - std::make_unique<Botan::TLS::Policy>
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string tls_policy_string(const std::string& policy_str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls.cpp:605,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls.cpp:606,1
    - Dst: auto::valid
      Src: /src/botan/src/tests/test_tls.cpp:608,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: Botan::TLS::Ciphersuite::is_scsv
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: auto::cbc_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:611,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:611,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:612,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:612,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:613,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:613,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tls.cpp:615,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:615,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:616,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls.cpp:617,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:618,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:621,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:622,1
    - Dst: auto::cipher_algo
      Src: /src/botan/src/tests/test_tls.cpp:622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 630
    functionName: Botan_Tests::Test_TLS_Ciphersuites::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::valid
    - auto::mac_algo
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - auto::null_ciphersuite
    - auto::prf_algo
    - auto::cipher_algo
    - Botan::TLS::Ciphersuite::by_id
    - auto::cbc_ciphersuite
    - auto::aead_ciphersuite
    - Test::Result::test_is_false
    - Botan::TLS::Ciphersuite::is_scsv
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:640,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:641,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
      Src: /src/botan/src/tests/test_tls.cpp:641,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:642,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 645
    functionName: Botan_Tests::Test_TLS_Algo_Strings::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
    - Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
    - Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Signature_Scheme::all_available_schemes
      Src: /src/botan/src/tests/test_tls.cpp:652,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls.cpp:653,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:655,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:655,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 661
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - to_string
    - std::set::insert
    - std::set::count
    - Test::Result::test_sz_eq
    - Botan::TLS::Signature_Scheme::all_available_schemes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_tls_sig_method_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::auth_method_to_string
      Src: /src/botan/src/tests/test_tls.cpp:673,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tls.cpp:674,1
    - Dst: Botan::TLS::auth_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:675,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 680
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::auth_method_to_string
    - Test::Result::test_str_not_empty
    - Test::Result::test_is_true
    - Botan::TLS::auth_method_from_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_auth_method_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/tests/test_tls.cpp:692,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tls.cpp:693,1
    - Dst: Botan::TLS::kex_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:694,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 699
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_str_not_empty
    - Botan::TLS::kex_method_to_string
    - Botan::TLS::kex_method_from_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_kex_algo_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<Botan::X509_Certificate>
      Src: /src/botan/src/tests/test_tls.cpp:53,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:54,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:56,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:58,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:67,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:67,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_tls.cpp:70,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:72,1
    - Dst: first
      Src: /src/botan/src/tests/test_tls.cpp:73,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:74,1
    - Dst: first
      Src: /src/botan/src/tests/test_tls.cpp:75,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:77,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:80,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:82,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:84,1
    - Dst: std::vector<Botan::X509_Certificate>
      Src: /src/botan/src/tests/test_tls.cpp:92,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:93,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:95,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:96,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 103
    functionName: Botan_Tests::TLS_Session_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session::DER_encode
    - Test::Result::test_throws
    - first
    - std::vector::size
    - std::vector::data
    - Botan_Tests::TLS_Session_Tests::rng
    - Botan::TLS::Session::encrypt
    - std::vector<Botan::X509_Certificate>
    - Test::Result::test_bin_eq
    - Test::Result::test_bin_ne
    - Botan::TLS::Server_Information
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::TLS::Session::decrypt
    - Botan::TLS::Session::PEM_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan_Tests::TLS_CBC_Padding_Tests::TLS_CBC_Padding_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_Padding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:115,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:116,1
    - Dst: Botan::TLS::check_tls_cbc_padding
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:118,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: Botan_Tests::TLS_CBC_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - Test::Result::test_sz_eq
    - Botan::TLS::check_tls_cbc_padding
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mac_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::ZeroMac
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZeroMac(size_t mac_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::clear
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::name
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::output_length
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::add_data
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*input*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::final_result
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void final_result(std::span<uint8_t> out) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_tls.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::key_spec
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ZeroMac>
      Src: /src/botan/src/tests/test_tls.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::new_object
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ZeroMac>
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_Tests::TLS_CBC_Tests::ZeroMac::key_schedule
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /* key */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::Noop_Block_Cipher
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Noop_Block_Cipher(size_t bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_tls.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_tls.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_tls.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Noop_Block_Cipher>
      Src: /src/botan/src/tests/test_tls.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Noop_Block_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<BlockCipher>
    signature: std::unique_ptr<BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /*key*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: Botan_Tests::TLS_CBC_Tests::TLS_CBC_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:203,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:204,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:205,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:206,1
    - Dst: std::make_unique<Noop_Block_Cipher>
      Src: /src/botan/src/tests/test_tls.cpp:211,1
    - Dst: std::make_unique<ZeroMac>
      Src: /src/botan/src/tests/test_tls.cpp:212,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:218,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls.cpp:218,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:220,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls.cpp:222,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls.cpp:222,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:225,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:227,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:229,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:233,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 240
    functionName: Botan_Tests::TLS_CBC_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
    - Test::Result::test_success
    - std::make_unique<ZeroMac>
    - std::vector::end
    - std::vector<uint8_t>
    - std::vector::size
    - std::vector::data
    - std::vector::begin
    - std::make_unique<Noop_Block_Cipher>
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::TLS_CBC_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
      Src: /src/botan/src/tests/test_tls.cpp:254,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
      Src: /src/botan/src/tests/test_tls.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_CBC_KAT_Tests::run_kat
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
      Src: /src/botan/src/tests/test_tls.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:274,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:274,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:275,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 7
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - get_req_str
    - Botan::BlockCipher::create_or_throw
    linkageType: ''
    returnType: "std::pair<std::unique_ptr<Botan::BlockCipher>,\n                                     std::unique_ptr<Botan::MessageAuthenticationCode>>"
    signature: "std::pair<std::unique_ptr<Botan::BlockCipher>,\n                                     std::unique_ptr<Botan::MessageAuthenticationCode>>
      get_cipher_and_mac(const VarMap& vars)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:292,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:293,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_tls.cpp:294,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:296,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:302,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:306,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:307,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:308,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:309,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:310,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
      Src: /src/botan/src/tests/test_tls.cpp:312,1
    - Dst: T
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls.cpp:316,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:317,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:319,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:319,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:320,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:320,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_tls.cpp:323,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:328,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:329,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:334,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    - Dst: auto::subspan
      Src: /src/botan/src/tests/test_tls.cpp:338,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:341,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:341,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:342,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:343,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - ' result'
    - ' vars'
    argTypes:
    - Test::Result
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 344
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 4
    functionsReached:
    - std::string
    - auto::minimum_final_size
    - auto::process
    - T
    - auto::size
    - std::move
    - auto::start
    - auto::finish
    - test_bin_eq
    - auto::end
    - get_req_bin
    - auto::set_associated_data
    - auto::begin
    - std::swap
    - get_req_sz
    - auto::subspan
    - get_req_bool
    - get_req_str
    - auto::set_key
    - Test_Error
    - auto::first
    - Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    linkageType: ''
    returnType: void
    signature: void run_kat(Test::Result& result, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: Botan_Tests::TLS_Null_Tests::TLS_Null_Tests
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Null_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:364,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:364,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:366,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:369,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:370,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:372,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:372,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:373,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - ' result'
    - ' hash'
    - ' key'
    - ' associated_data'
    - ' message'
    - ' expected_tls_fragment'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 376
    functionName: Botan_Tests::TLS_Null_Tests::encryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - begin
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
    - test_bin_eq
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
    - end
    linkageType: ''
    returnType: void
    signature: "void encryption_test(Test::Result& result,\n                           const
      std::string& hash,\n                           const std::vector<uint8_t>& key,\n
      \                          const std::vector<uint8_t>& associated_data,\n                           const
      std::vector<uint8_t>& message,\n                           const std::vector<uint8_t>&
      expected_tls_fragment)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:385,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:385,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:387,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:390,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:391,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:393,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:393,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:396,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:397,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:400,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls.cpp:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - ' result'
    - ' hash'
    - ' key'
    - ' associated_data'
    - ' expected_message'
    - ' tls_fragment'
    - ' header'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 403
    functionName: Botan_Tests::TLS_Null_Tests::decryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
    - begin
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - test_throws
    - test_bin_eq
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
    - end
    linkageType: ''
    returnType: void
    signature: "void decryption_test(Test::Result& result,\n                           const
      std::string& hash,\n                           const std::vector<uint8_t>& key,\n
      \                          const std::vector<uint8_t>& associated_data,\n                           const
      std::vector<uint8_t>& expected_message,\n                           const std::vector<uint8_t>&
      tls_fragment,\n                           const std::string& header)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:408,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:408,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:410,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:413,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' result'
    - ' hash'
    - ' associated_data'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::fmt
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - test_throws
    linkageType: ''
    returnType: void
    signature: "void invalid_ad_length_test(Test::Result& result,\n                                  const
      std::string& hash,\n                                  const std::vector<uint8_t>&
      associated_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:421,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:422,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:424,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:425,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls.cpp:427,1
    - Dst: Botan_Tests::TLS_Null_Tests::encryption_test
      Src: /src/botan/src/tests/test_tls.cpp:428,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:429,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:433,1
    - Dst: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
      Src: /src/botan/src/tests/test_tls.cpp:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 441
    functionName: Botan_Tests::TLS_Null_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Null_Tests::encryption_test
    - get_req_str
    - Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    - Botan_Tests::TLS_Null_Tests::decryption_test
    - get_req_bin
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert
      Src: /src/botan/src/tests/test_tls.cpp:492,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:494,1
    - Dst: Botan::TLS::Alert
      Src: /src/botan/src/tests/test_tls.cpp:497,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:499,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 502
    functionName: Botan_Tests::Test_TLS_Alert_Strings::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - Test::Result::test_str_eq
    - std::set::count
    - Test::Result::test_sz_eq
    - Botan::TLS::Alert::type_string
    - Botan::TLS::Alert
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
      Src: /src/botan/src/tests/test_tls.cpp:518,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
      Src: /src/botan/src/tests/test_tls.cpp:522,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::diff
      Src: /src/botan/src/tests/test_tls.cpp:525,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:526,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:526,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 533
    functionName: Botan_Tests::Test_TLS_Policy_Text::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_Policy_Text::diff
    - Botan::fmt
    - Test::Result::test_success
    - Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    - Test::Result::test_failure
    - Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::getline
      Src: /src/botan/src/tests/test_tls.cpp:548,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_tls.cpp:551,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_tls.cpp:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ' a_str'
    - ' b_str'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 560
    functionName: Botan_Tests::Test_TLS_Policy_Text::diff
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 4
    functionsReached:
    - std::ostringstream::str
    - std::getline
    linkageType: ''
    returnType: std::string
    signature: std::string diff(const std::string& a_str, const std::string& b_str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls.cpp:563,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls.cpp:565,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls.cpp:566,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:567,1
    - Dst: Botan::TLS::Text_Policy::to_string
      Src: /src/botan/src/tests/test_tls.cpp:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 572
    functionName: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 4
    functionsReached:
    - std::ifstream::good
    - Botan::TLS::Text_Policy::to_string
    - Botan_Tests::Test::data_file
    - Test_Error
    - std::string::c_str
    linkageType: ''
    returnType: std::string
    signature: std::string read_tls_policy(const std::string& policy_str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::TLS::Policy>
      Src: /src/botan/src/tests/test_tls.cpp:577,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/test_tls.cpp:579,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_192>
      Src: /src/botan/src/tests/test_tls.cpp:581,1
    - Dst: std::make_unique<Botan::TLS::BSI_TR_02102_2>
      Src: /src/botan/src/tests/test_tls.cpp:583,1
    - Dst: std::make_unique<Botan::TLS::Strict_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:585,1
    - Dst: std::make_unique<Botan::TLS::Datagram_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:587,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:589,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/tests/test_tls.cpp:592,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 593
    functionName: Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 4
    functionsReached:
    - std::unique_ptr::to_string
    - std::make_unique<Botan::TLS::Strict_Policy>
    - std::make_unique<Botan::TLS::NSA_Suite_B_128>
    - std::make_unique<Botan::TLS::Datagram_Policy>
    - std::make_unique<Botan::TLS::BSI_TR_02102_2>
    - std::make_unique<Botan::TLS::NSA_Suite_B_192>
    - std::make_unique<Botan::TLS::Policy>
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string tls_policy_string(const std::string& policy_str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls.cpp:605,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls.cpp:606,1
    - Dst: auto::valid
      Src: /src/botan/src/tests/test_tls.cpp:608,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: Botan::TLS::Ciphersuite::is_scsv
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: auto::cbc_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:611,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:611,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:612,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:612,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:613,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:613,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tls.cpp:615,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:615,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:616,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls.cpp:617,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:618,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:621,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls.cpp:622,1
    - Dst: auto::cipher_algo
      Src: /src/botan/src/tests/test_tls.cpp:622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 630
    functionName: Botan_Tests::Test_TLS_Ciphersuites::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::valid
    - auto::mac_algo
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - auto::null_ciphersuite
    - auto::prf_algo
    - auto::cipher_algo
    - Botan::TLS::Ciphersuite::by_id
    - auto::cbc_ciphersuite
    - auto::aead_ciphersuite
    - Test::Result::test_is_false
    - Botan::TLS::Ciphersuite::is_scsv
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:640,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:641,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
      Src: /src/botan/src/tests/test_tls.cpp:641,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:642,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 645
    functionName: Botan_Tests::Test_TLS_Algo_Strings::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
    - Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
    - Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Signature_Scheme::all_available_schemes
      Src: /src/botan/src/tests/test_tls.cpp:652,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls.cpp:653,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls.cpp:655,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:655,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 661
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 4
    functionsReached:
    - to_string
    - std::set::insert
    - std::set::count
    - Test::Result::test_sz_eq
    - Botan::TLS::Signature_Scheme::all_available_schemes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_tls_sig_method_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::auth_method_to_string
      Src: /src/botan/src/tests/test_tls.cpp:673,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tls.cpp:674,1
    - Dst: Botan::TLS::auth_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:675,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 680
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::auth_method_to_string
    - Test::Result::test_str_not_empty
    - Test::Result::test_is_true
    - Botan::TLS::auth_method_from_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_auth_method_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/tests/test_tls.cpp:692,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tls.cpp:693,1
    - Dst: Botan::TLS::kex_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:694,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls.cpp:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 699
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_str_not_empty
    - Botan::TLS::kex_method_to_string
    - Botan::TLS::kex_method_from_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_kex_algo_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_monty.cpp:24,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_monty.cpp:34,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:38,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:39,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:41,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:42,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:44,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:44,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:45,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:45,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_monty.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Montgomery_Integer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_monty.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::square
    - std::vector::push_back
    - Botan::BigInt::random_integer
    - auto::mul
    - value
    - Botan::random_prime
    - Botan::Montgomery_Int
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_monty.cpp:24,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_monty.cpp:34,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:38,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:39,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:41,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:42,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:44,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:44,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:45,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:45,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_monty.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Montgomery_Integer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_monty.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::square
    - std::vector::push_back
    - Botan::BigInt::random_integer
    - auto::mul
    - value
    - Botan::random_prime
    - Botan::Montgomery_Int
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_monty.cpp:24,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_monty.cpp:34,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:38,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:39,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:41,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:42,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:44,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:44,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:45,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:45,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_monty.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Montgomery_Integer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_monty.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::square
    - std::vector::push_back
    - Botan::BigInt::random_integer
    - auto::mul
    - value
    - Botan::random_prime
    - Botan::Montgomery_Int
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_monty.cpp:24,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_monty.cpp:34,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:38,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:39,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:41,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:42,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:44,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:44,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:45,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:45,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_monty.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Montgomery_Integer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_monty.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::square
    - std::vector::push_back
    - Botan::BigInt::random_integer
    - auto::mul
    - value
    - Botan::random_prime
    - Botan::Montgomery_Int
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_certstor_utils.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' hex'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: Botan_Tests::read_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_DN::decode_from
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN read_dn(const std::string& hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan_Tests::get_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::read_dn
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN get_dn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_utf8_dn_alternatives
      Src: /src/botan/src/tests/test_certstor_utils.cpp:38,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_utils.cpp:39,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor_utils.cpp:40,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_utils.cpp:40,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_certstor_utils.cpp:41,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_utils.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Botan_Tests::get_utf8_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - BOTAN_ASSERT_NOMSG
    - std::find_if
    - auto::end
    - Botan_Tests::get_utf8_dn_alternatives
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN get_utf8_dn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:50,1
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:56,1
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:62,1
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:68,1
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 80
    functionName: Botan_Tests::get_utf8_dn_alternatives
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::read_dn
    linkageType: ''
    returnType: std::vector<std::pair<std::string, Botan::X509_DN>>
    signature: std::vector<std::pair<std::string, Botan::X509_DN>> get_utf8_dn_alternatives()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_certstor_utils.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: Botan_Tests::get_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_key_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Botan_Tests::get_subject_cn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string get_subject_cn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_certstor_utils.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Botan_Tests::get_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_serial_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_certstor_utils.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_pubkey_sha1_of_cert_with_different_key_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: Botan_Tests::get_dn_of_cert_with_different_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::read_dn
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN get_dn_of_cert_with_different_key_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: Botan_Tests::get_unknown_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::read_dn
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN get_unknown_dn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 162
    functionName: Botan_Tests::get_skewed_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::read_dn
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN get_skewed_dn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_certstor_utils.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: Botan_Tests::get_unknown_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_unknown_key_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_certstor_utils.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' hex'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: Botan_Tests::read_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 5
    functionsReached:
    - Botan::X509_DN::decode_from
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN read_dn(const std::string& hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan_Tests::get_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::read_dn
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN get_dn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_utf8_dn_alternatives
      Src: /src/botan/src/tests/test_certstor_utils.cpp:38,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_utils.cpp:39,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor_utils.cpp:40,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_utils.cpp:40,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_certstor_utils.cpp:41,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_utils.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Botan_Tests::get_utf8_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - BOTAN_ASSERT_NOMSG
    - std::find_if
    - auto::end
    - Botan_Tests::get_utf8_dn_alternatives
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN get_utf8_dn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:50,1
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:56,1
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:62,1
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:68,1
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 80
    functionName: Botan_Tests::get_utf8_dn_alternatives
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::read_dn
    linkageType: ''
    returnType: std::vector<std::pair<std::string, Botan::X509_DN>>
    signature: std::vector<std::pair<std::string, Botan::X509_DN>> get_utf8_dn_alternatives()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_certstor_utils.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: Botan_Tests::get_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_key_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Botan_Tests::get_subject_cn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string get_subject_cn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_certstor_utils.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Botan_Tests::get_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_serial_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_certstor_utils.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_pubkey_sha1_of_cert_with_different_key_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: Botan_Tests::get_dn_of_cert_with_different_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::read_dn
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN get_dn_of_cert_with_different_key_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: Botan_Tests::get_unknown_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::read_dn
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN get_unknown_dn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::read_dn
      Src: /src/botan/src/tests/test_certstor_utils.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 162
    functionName: Botan_Tests::get_skewed_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::read_dn
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN get_skewed_dn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_certstor_utils.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: Botan_Tests::get_unknown_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_unknown_key_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Ed25519_Key_Validity_Tests::Ed25519_Key_Validity_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Key_Validity_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:29,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Ed25519_Key_Validity_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: Botan_Tests::Ed25519_Verification_Tests::Ed25519_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_Tests::Ed25519_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:42,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Ed25519_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Ed25519_Signature_Tests::Ed25519_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Ed25519_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:56,1
    - Dst: std::make_unique<Botan::Ed25519_PrivateKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:58,1
    - Dst: Botan::Ed25519_PrivateKey::from_seed
      Src: /src/botan/src/tests/test_ed25519.cpp:58,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_ed25519.cpp:60,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed25519.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Ed25519_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PrivateKey>
    - Botan::Ed25519_PrivateKey::from_seed
    - Test_Error
    - auto::raw_public_key_bits
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:85,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:86,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:89,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:90,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:92,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_ed25519.cpp:94,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:94,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:98,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_ed25519.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Ed25519_Curdle_Format_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::update
    - Botan::PK_Signer::signature
    - Test::Result::test_is_true
    - Botan::PK_Verifier::update
    - Botan::X509::load_key
    - Botan_Tests::Ed25519_Curdle_Format_Tests::rng
    - Botan::PK_Verifier::check_signature
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan_Tests::Ed25519_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Ed25519_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Ed25519_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Ed25519_Key_Validity_Tests::Ed25519_Key_Validity_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Key_Validity_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:29,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Ed25519_Key_Validity_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: Botan_Tests::Ed25519_Verification_Tests::Ed25519_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_Tests::Ed25519_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:42,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Ed25519_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Ed25519_Signature_Tests::Ed25519_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Ed25519_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:56,1
    - Dst: std::make_unique<Botan::Ed25519_PrivateKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:58,1
    - Dst: Botan::Ed25519_PrivateKey::from_seed
      Src: /src/botan/src/tests/test_ed25519.cpp:58,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_ed25519.cpp:60,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed25519.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Ed25519_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PrivateKey>
    - Botan::Ed25519_PrivateKey::from_seed
    - Test_Error
    - auto::raw_public_key_bits
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:85,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:86,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:89,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:90,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:92,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_ed25519.cpp:94,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:94,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:98,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_ed25519.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Ed25519_Curdle_Format_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::update
    - Botan::PK_Signer::signature
    - Test::Result::test_is_true
    - Botan::PK_Verifier::update
    - Botan::X509::load_key
    - Botan_Tests::Ed25519_Curdle_Format_Tests::rng
    - Botan::PK_Verifier::check_signature
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan_Tests::Ed25519_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Ed25519_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Ed25519_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Ed25519_Key_Validity_Tests::Ed25519_Key_Validity_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Key_Validity_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:29,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Ed25519_Key_Validity_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: Botan_Tests::Ed25519_Verification_Tests::Ed25519_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_Tests::Ed25519_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:42,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Ed25519_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Ed25519_Signature_Tests::Ed25519_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Ed25519_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:56,1
    - Dst: std::make_unique<Botan::Ed25519_PrivateKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:58,1
    - Dst: Botan::Ed25519_PrivateKey::from_seed
      Src: /src/botan/src/tests/test_ed25519.cpp:58,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_ed25519.cpp:60,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed25519.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Ed25519_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PrivateKey>
    - Botan::Ed25519_PrivateKey::from_seed
    - Test_Error
    - auto::raw_public_key_bits
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:85,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:86,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:89,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:90,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:92,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_ed25519.cpp:94,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:94,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:98,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_ed25519.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Ed25519_Curdle_Format_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::update
    - Botan::PK_Signer::signature
    - Test::Result::test_is_true
    - Botan::PK_Verifier::update
    - Botan::X509::load_key
    - Botan_Tests::Ed25519_Curdle_Format_Tests::rng
    - Botan::PK_Verifier::check_signature
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan_Tests::Ed25519_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Ed25519_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Ed25519_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Ed25519_Key_Validity_Tests::Ed25519_Key_Validity_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Key_Validity_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:29,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Ed25519_Key_Validity_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: Botan_Tests::Ed25519_Verification_Tests::Ed25519_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_Tests::Ed25519_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:42,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Ed25519_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Ed25519_Signature_Tests::Ed25519_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Ed25519_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:56,1
    - Dst: std::make_unique<Botan::Ed25519_PrivateKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:58,1
    - Dst: Botan::Ed25519_PrivateKey::from_seed
      Src: /src/botan/src/tests/test_ed25519.cpp:58,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_ed25519.cpp:60,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed25519.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Ed25519_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PrivateKey>
    - Botan::Ed25519_PrivateKey::from_seed
    - Test_Error
    - auto::raw_public_key_bits
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:85,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:86,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:89,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:90,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:92,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_ed25519.cpp:94,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:94,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ed25519.cpp:98,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_ed25519.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Ed25519_Curdle_Format_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::update
    - Botan::PK_Signer::signature
    - Test::Result::test_is_true
    - Botan::PK_Verifier::update
    - Botan::X509::load_key
    - Botan_Tests::Ed25519_Curdle_Format_Tests::rng
    - Botan::PK_Verifier::check_signature
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan_Tests::Ed25519_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Ed25519_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Ed25519_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed25519_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Cipher_Mode_Tests::Cipher_Mode_Tests
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_Mode_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_modes.cpp:29,1
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/tests/test_modes.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::Cipher_Mode_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached:
    - Botan::Cipher_Mode::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:36,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::possible_providers
      Src: /src/botan/src/tests/test_modes.cpp:40,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_modes.cpp:42,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:43,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:48,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:54,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:57,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:59,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:63,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:64,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:64,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:66,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:66,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:68,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:69,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:69,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:71,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:74,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:75,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:75,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:78,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:78,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:80,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:80,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:85,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:85,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:87,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 92
    functionName: Botan_Tests::Cipher_Mode_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - Botan_Tests::Cipher_Mode_Tests::test_mode
    - Botan_Tests::Cipher_Mode_Tests::possible_providers
    - Botan_Tests::Cipher_Mode_Tests::rng
    - auto::update_granularity
    - Botan::Cipher_Mode::create
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - auto::ideal_granularity
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_bin
    - what
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_modes.cpp:105,1
    - Dst: find
      Src: /src/botan/src/tests/test_modes.cpp:106,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_modes.cpp:108,1
    - Dst: name
      Src: /src/botan/src/tests/test_modes.cpp:108,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:111,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_modes.cpp:112,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:112,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: authenticated
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:117,1
    - Dst: minimum_final_size
      Src: /src/botan/src/tests/test_modes.cpp:118,1
    - Dst: test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:121,1
    - Dst: ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:121,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:123,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:123,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:125,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:127,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: default_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:147,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:147,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:148,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:149,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:151,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:152,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:155,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:156,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:157,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:158,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:160,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:160,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:163,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:164,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:167,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:167,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:168,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:171,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:172,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:176,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:178,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:181,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:181,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:182,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:187,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:188,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:191,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:192,1
    - Dst: Botan::secure_vector::clear
      Src: /src/botan/src/tests/test_modes.cpp:198,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:200,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:204,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:209,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:212,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:219,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:220,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:221,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:225,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:228,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: process
      Src: /src/botan/src/tests/test_modes.cpp:231,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_modes.cpp:231,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:233,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:235,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:236,1
    - Dst: clear
      Src: /src/botan/src/tests/test_modes.cpp:239,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:240,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:240,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:242,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:244,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 10
    argNames:
    - ' result'
    - ' algo'
    - ' provider'
    - ' direction'
    - ' mode'
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' rng'
    argTypes:
    - Test::Result
    - std::string
    - std::string
    - std::string
    - Botan::Cipher_Mode
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 246
    functionName: Botan_Tests::Cipher_Mode_Tests::test_mode
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 1
    functionsReached:
    - random_vec
    - data
    - ideal_granularity
    - test_is_true
    - default_nonce_length
    - output_length
    - Botan::secure_vector::assign
    - process
    - test_is_false
    - Botan::secure_vector::data
    - Botan::secure_vector::clear
    - clear
    - test_bin_eq
    - test_sz_gte
    - update_granularity
    - mutate_vec
    - provider
    - test_sz_gt
    - begin
    - start
    - test_sz_lte
    - name
    - update
    - set_key
    - reset
    - finish
    - valid_nonce_length
    - find
    - authenticated
    - test_sz_eq
    - test_throws
    - minimum_final_size
    - has_keying_material
    - size
    - test_str_eq
    - end
    linkageType: ''
    returnType: void
    signature: "void test_mode(Test::Result& result,\n                            const
      std::string& algo,\n                            const std::string& provider,\n
      \                           const std::string& direction,\n                            Botan::Cipher_Mode&
      mode,\n                            const std::vector<uint8_t>& key,\n                            const
      std::vector<uint8_t>& nonce,\n                            const std::vector<uint8_t>&
      input,\n                            const std::vector<uint8_t>& expected,\n
      \                           Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:255,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:255,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:256,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:256,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:257,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::run
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:267,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:269,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:275,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:276,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:277,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:279,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:280,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:282,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:283,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:284,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:287,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:288,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:290,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:292,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:293,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:295,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:297,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:298,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:300,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:301,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:303,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:304,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 309
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode_locked
    - std::unique_ptr::finish
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cbc_iv_carry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:315,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:317,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:322,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:323,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:324,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:326,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:327,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:329,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:330,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:331,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:333,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:334,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:336,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:338,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:339,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:341,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:343,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:345,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:347,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:348,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:349,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:351,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 356
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode_locked
    - std::unique_ptr::finish
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cfb_iv_carry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:363,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:365,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:367,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:368,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:370,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:371,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:388,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:389,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:391,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:392,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:396,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:398,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:400,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_modes.cpp:403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 408
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr::finish
    - Botan::hex_decode
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Test::Result::test_u8_eq
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ctr_iv_carry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Cipher_Mode_Tests::Cipher_Mode_Tests
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_Mode_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_modes.cpp:29,1
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/tests/test_modes.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::Cipher_Mode_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 1
    functionsReached:
    - Botan::Cipher_Mode::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:36,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::possible_providers
      Src: /src/botan/src/tests/test_modes.cpp:40,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_modes.cpp:42,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:43,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:48,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:54,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:57,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:59,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:63,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:64,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:64,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:66,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:66,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:68,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:69,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:69,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:71,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:74,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:75,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:75,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:78,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:78,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:80,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:80,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:85,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:85,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:87,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 92
    functionName: Botan_Tests::Cipher_Mode_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - Botan_Tests::Cipher_Mode_Tests::test_mode
    - Botan_Tests::Cipher_Mode_Tests::possible_providers
    - Botan_Tests::Cipher_Mode_Tests::rng
    - auto::update_granularity
    - Botan::Cipher_Mode::create
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - auto::ideal_granularity
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_bin
    - what
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_modes.cpp:105,1
    - Dst: find
      Src: /src/botan/src/tests/test_modes.cpp:106,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_modes.cpp:108,1
    - Dst: name
      Src: /src/botan/src/tests/test_modes.cpp:108,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:111,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_modes.cpp:112,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:112,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: authenticated
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:117,1
    - Dst: minimum_final_size
      Src: /src/botan/src/tests/test_modes.cpp:118,1
    - Dst: test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:121,1
    - Dst: ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:121,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:123,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:123,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:125,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:127,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: default_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:147,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:147,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:148,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:149,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:151,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:152,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:155,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:156,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:157,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:158,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:160,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:160,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:163,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:164,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:167,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:167,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:168,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:171,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:172,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:176,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:178,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:181,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:181,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:182,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:187,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:188,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:191,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:192,1
    - Dst: Botan::secure_vector::clear
      Src: /src/botan/src/tests/test_modes.cpp:198,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:200,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:204,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:209,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:212,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:219,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:220,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:221,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:225,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:228,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: process
      Src: /src/botan/src/tests/test_modes.cpp:231,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_modes.cpp:231,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:233,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:235,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:236,1
    - Dst: clear
      Src: /src/botan/src/tests/test_modes.cpp:239,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:240,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:240,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:242,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:244,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 10
    argNames:
    - ' result'
    - ' algo'
    - ' provider'
    - ' direction'
    - ' mode'
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' rng'
    argTypes:
    - Test::Result
    - std::string
    - std::string
    - std::string
    - Botan::Cipher_Mode
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 246
    functionName: Botan_Tests::Cipher_Mode_Tests::test_mode
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 2
    functionsReached:
    - random_vec
    - data
    - ideal_granularity
    - test_is_true
    - default_nonce_length
    - output_length
    - Botan::secure_vector::assign
    - process
    - test_is_false
    - Botan::secure_vector::data
    - Botan::secure_vector::clear
    - clear
    - test_bin_eq
    - test_sz_gte
    - update_granularity
    - mutate_vec
    - provider
    - test_sz_gt
    - begin
    - start
    - test_sz_lte
    - name
    - update
    - set_key
    - reset
    - finish
    - valid_nonce_length
    - find
    - authenticated
    - test_sz_eq
    - test_throws
    - minimum_final_size
    - has_keying_material
    - size
    - test_str_eq
    - end
    linkageType: ''
    returnType: void
    signature: "void test_mode(Test::Result& result,\n                            const
      std::string& algo,\n                            const std::string& provider,\n
      \                           const std::string& direction,\n                            Botan::Cipher_Mode&
      mode,\n                            const std::vector<uint8_t>& key,\n                            const
      std::vector<uint8_t>& nonce,\n                            const std::vector<uint8_t>&
      input,\n                            const std::vector<uint8_t>& expected,\n
      \                           Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:255,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:255,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:256,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:256,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:257,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::run
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:267,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:269,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:275,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:276,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:277,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:279,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:280,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:282,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:283,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:284,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:287,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:288,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:290,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:292,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:293,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:295,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:297,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:298,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:300,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:301,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:303,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:304,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 309
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode_locked
    - std::unique_ptr::finish
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cbc_iv_carry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:315,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:317,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:322,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:323,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:324,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:326,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:327,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:329,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:330,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:331,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:333,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:334,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:336,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:338,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:339,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:341,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:343,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:345,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:347,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:348,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:349,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:351,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 356
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode_locked
    - std::unique_ptr::finish
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cfb_iv_carry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:363,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:365,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:367,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:368,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:370,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:371,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:388,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:389,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:391,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:392,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:396,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:398,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:400,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_modes.cpp:403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 408
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr::finish
    - Botan::hex_decode
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Test::Result::test_u8_eq
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ctr_iv_carry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Cipher_Mode_Tests::Cipher_Mode_Tests
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_Mode_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_modes.cpp:29,1
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/tests/test_modes.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::Cipher_Mode_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 2
    functionsReached:
    - Botan::Cipher_Mode::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:36,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::possible_providers
      Src: /src/botan/src/tests/test_modes.cpp:40,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_modes.cpp:42,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:43,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:48,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:54,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:57,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:59,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:63,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:64,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:64,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:66,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:66,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:68,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:69,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:69,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:71,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:74,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:75,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:75,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:78,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:78,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:80,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:80,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:85,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:85,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:87,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 92
    functionName: Botan_Tests::Cipher_Mode_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - Botan_Tests::Cipher_Mode_Tests::test_mode
    - Botan_Tests::Cipher_Mode_Tests::possible_providers
    - Botan_Tests::Cipher_Mode_Tests::rng
    - auto::update_granularity
    - Botan::Cipher_Mode::create
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - auto::ideal_granularity
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_bin
    - what
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_modes.cpp:105,1
    - Dst: find
      Src: /src/botan/src/tests/test_modes.cpp:106,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_modes.cpp:108,1
    - Dst: name
      Src: /src/botan/src/tests/test_modes.cpp:108,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:111,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_modes.cpp:112,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:112,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: authenticated
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:117,1
    - Dst: minimum_final_size
      Src: /src/botan/src/tests/test_modes.cpp:118,1
    - Dst: test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:121,1
    - Dst: ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:121,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:123,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:123,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:125,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:127,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: default_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:147,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:147,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:148,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:149,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:151,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:152,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:155,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:156,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:157,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:158,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:160,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:160,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:163,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:164,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:167,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:167,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:168,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:171,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:172,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:176,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:178,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:181,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:181,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:182,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:187,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:188,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:191,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:192,1
    - Dst: Botan::secure_vector::clear
      Src: /src/botan/src/tests/test_modes.cpp:198,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:200,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:204,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:209,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:212,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:219,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:220,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:221,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:225,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:228,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: process
      Src: /src/botan/src/tests/test_modes.cpp:231,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_modes.cpp:231,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:233,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:235,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:236,1
    - Dst: clear
      Src: /src/botan/src/tests/test_modes.cpp:239,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:240,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:240,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:242,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:244,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 10
    argNames:
    - ' result'
    - ' algo'
    - ' provider'
    - ' direction'
    - ' mode'
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' rng'
    argTypes:
    - Test::Result
    - std::string
    - std::string
    - std::string
    - Botan::Cipher_Mode
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 246
    functionName: Botan_Tests::Cipher_Mode_Tests::test_mode
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 3
    functionsReached:
    - random_vec
    - data
    - ideal_granularity
    - test_is_true
    - default_nonce_length
    - output_length
    - Botan::secure_vector::assign
    - process
    - test_is_false
    - Botan::secure_vector::data
    - Botan::secure_vector::clear
    - clear
    - test_bin_eq
    - test_sz_gte
    - update_granularity
    - mutate_vec
    - provider
    - test_sz_gt
    - begin
    - start
    - test_sz_lte
    - name
    - update
    - set_key
    - reset
    - finish
    - valid_nonce_length
    - find
    - authenticated
    - test_sz_eq
    - test_throws
    - minimum_final_size
    - has_keying_material
    - size
    - test_str_eq
    - end
    linkageType: ''
    returnType: void
    signature: "void test_mode(Test::Result& result,\n                            const
      std::string& algo,\n                            const std::string& provider,\n
      \                           const std::string& direction,\n                            Botan::Cipher_Mode&
      mode,\n                            const std::vector<uint8_t>& key,\n                            const
      std::vector<uint8_t>& nonce,\n                            const std::vector<uint8_t>&
      input,\n                            const std::vector<uint8_t>& expected,\n
      \                           Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:255,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:255,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:256,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:256,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:257,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::run
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:267,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:269,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:275,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:276,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:277,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:279,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:280,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:282,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:283,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:284,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:287,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:288,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:290,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:292,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:293,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:295,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:297,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:298,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:300,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:301,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:303,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:304,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 309
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode_locked
    - std::unique_ptr::finish
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cbc_iv_carry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:315,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:317,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:322,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:323,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:324,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:326,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:327,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:329,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:330,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:331,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:333,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:334,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:336,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:338,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:339,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:341,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:343,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:345,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:347,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:348,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:349,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:351,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 356
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode_locked
    - std::unique_ptr::finish
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cfb_iv_carry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:363,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:365,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:367,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:368,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:370,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:371,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:388,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:389,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:391,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:392,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:396,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:398,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:400,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_modes.cpp:403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 408
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 3
    functionsReached:
    - std::unique_ptr::finish
    - Botan::hex_decode
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Test::Result::test_u8_eq
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ctr_iv_carry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Cipher_Mode_Tests::Cipher_Mode_Tests
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_Mode_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_modes.cpp:29,1
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/tests/test_modes.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::Cipher_Mode_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 3
    functionsReached:
    - Botan::Cipher_Mode::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:36,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::possible_providers
      Src: /src/botan/src/tests/test_modes.cpp:40,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_modes.cpp:42,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:43,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:48,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:54,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:57,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:59,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:63,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:64,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:64,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:66,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:66,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:68,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:69,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:69,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:71,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:74,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:75,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:75,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:78,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:78,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:80,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:80,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:85,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:85,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:87,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 92
    functionName: Botan_Tests::Cipher_Mode_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - Botan_Tests::Cipher_Mode_Tests::test_mode
    - Botan_Tests::Cipher_Mode_Tests::possible_providers
    - Botan_Tests::Cipher_Mode_Tests::rng
    - auto::update_granularity
    - Botan::Cipher_Mode::create
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - auto::ideal_granularity
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_bin
    - what
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_modes.cpp:105,1
    - Dst: find
      Src: /src/botan/src/tests/test_modes.cpp:106,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_modes.cpp:108,1
    - Dst: name
      Src: /src/botan/src/tests/test_modes.cpp:108,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:111,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_modes.cpp:112,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:112,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: authenticated
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:117,1
    - Dst: minimum_final_size
      Src: /src/botan/src/tests/test_modes.cpp:118,1
    - Dst: test_sz_gt
      Src: /src/botan/src/tests/test_modes.cpp:121,1
    - Dst: ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:121,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:123,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:123,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:125,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:127,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:134,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:136,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:140,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: default_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:147,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:147,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:148,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:149,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:151,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:152,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:155,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:156,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:157,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:158,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:160,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:160,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:163,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:164,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:167,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:167,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:168,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:171,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:172,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:176,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:178,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_modes.cpp:181,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:181,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:182,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:187,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:188,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:191,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:192,1
    - Dst: Botan::secure_vector::clear
      Src: /src/botan/src/tests/test_modes.cpp:198,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:200,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:204,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:208,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:209,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:212,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:216,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:217,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:219,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:220,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:221,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:225,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:228,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: process
      Src: /src/botan/src/tests/test_modes.cpp:231,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_modes.cpp:231,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_modes.cpp:233,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:235,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:236,1
    - Dst: clear
      Src: /src/botan/src/tests/test_modes.cpp:239,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_modes.cpp:240,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:240,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:242,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:244,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 10
    argNames:
    - ' result'
    - ' algo'
    - ' provider'
    - ' direction'
    - ' mode'
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' rng'
    argTypes:
    - Test::Result
    - std::string
    - std::string
    - std::string
    - Botan::Cipher_Mode
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 246
    functionName: Botan_Tests::Cipher_Mode_Tests::test_mode
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 4
    functionsReached:
    - random_vec
    - data
    - ideal_granularity
    - test_is_true
    - default_nonce_length
    - output_length
    - Botan::secure_vector::assign
    - process
    - test_is_false
    - Botan::secure_vector::data
    - Botan::secure_vector::clear
    - clear
    - test_bin_eq
    - test_sz_gte
    - update_granularity
    - mutate_vec
    - provider
    - test_sz_gt
    - begin
    - start
    - test_sz_lte
    - name
    - update
    - set_key
    - reset
    - finish
    - valid_nonce_length
    - find
    - authenticated
    - test_sz_eq
    - test_throws
    - minimum_final_size
    - has_keying_material
    - size
    - test_str_eq
    - end
    linkageType: ''
    returnType: void
    signature: "void test_mode(Test::Result& result,\n                            const
      std::string& algo,\n                            const std::string& provider,\n
      \                           const std::string& direction,\n                            Botan::Cipher_Mode&
      mode,\n                            const std::vector<uint8_t>& key,\n                            const
      std::vector<uint8_t>& nonce,\n                            const std::vector<uint8_t>&
      input,\n                            const std::vector<uint8_t>& expected,\n
      \                           Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:255,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:255,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:256,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:256,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:257,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::run
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:267,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:269,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:275,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:276,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:277,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:279,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:280,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:282,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:283,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:284,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:287,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:288,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:290,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:292,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:293,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:295,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:297,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:298,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:300,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:301,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:303,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:304,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 309
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode_locked
    - std::unique_ptr::finish
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cbc_iv_carry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:315,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:317,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:322,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:323,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:324,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:326,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:327,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:329,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:330,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:331,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:333,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:334,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:336,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:338,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:339,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:341,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:343,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:345,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:347,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:348,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:349,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:351,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 356
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode_locked
    - std::unique_ptr::finish
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cfb_iv_carry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:363,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:365,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:367,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:368,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:370,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:371,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:388,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:389,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:391,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:392,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:396,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_modes.cpp:398,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:400,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_modes.cpp:403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 408
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 4
    functionsReached:
    - std::unique_ptr::finish
    - Botan::hex_decode
    - std::unique_ptr::start
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - Test::Result::test_u8_eq
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ctr_iv_carry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::HOTP_KAT_Tests::HOTP_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HOTP_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::HOTP_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_otp.cpp:31,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:36,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:37,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:37,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:38,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:39,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_otp.cpp:43,1
    - Dst: Botan::HOTP::generate_hotp
      Src: /src/botan/src/tests/test_otp.cpp:43,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:45,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:46,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:47,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:50,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:51,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:52,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:55,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:56,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:57,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:60,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:61,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 65
    functionName: Botan_Tests::HOTP_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::HOTP::verify_hotp
    - Botan::SymmetricKey
    - Botan::HOTP::generate_hotp
    - Test::Result::test_is_false
    - Botan::HashFunction::create
    - get_req_sz
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_algo, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan_Tests::TOTP_KAT_Tests::TOTP_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TOTP_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan_Tests::TOTP_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_otp.cpp:79,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:84,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:84,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:85,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:85,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:86,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:87,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_otp.cpp:88,1
    - Dst: Botan_Tests::TOTP_KAT_Tests::from_timestring
      Src: /src/botan/src/tests/test_otp.cpp:92,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:93,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:94,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Botan::TOTP::generate_totp
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:98,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:98,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:99,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:99,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:100,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:100,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:101,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:101,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:102,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: Botan_Tests::TOTP_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - static_cast<uint32_t>
    - Botan_Tests::TOTP_KAT_Tests::from_timestring
    - Botan::TOTP::verify_totp
    - Botan::SymmetricKey
    - Botan::HashFunction::create
    - Botan_CLI::Timer::seconds
    - Botan::TOTP::generate_totp
    - get_req_sz
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::test_is_false
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_algo, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_otp.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_otp.cpp:110,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_otp.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' time_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: Botan_Tests::TOTP_KAT_Tests::from_timestring
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - substr
    - std::stoi
    - Botan::calendar_point
    - size
    - Test_Error
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point from_timestring(const std::string&
      time_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::HOTP_KAT_Tests::HOTP_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HOTP_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::HOTP_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_otp.cpp:31,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:36,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:37,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:37,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:38,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:39,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_otp.cpp:43,1
    - Dst: Botan::HOTP::generate_hotp
      Src: /src/botan/src/tests/test_otp.cpp:43,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:45,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:46,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:47,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:50,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:51,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:52,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:55,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:56,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:57,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:60,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:61,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 65
    functionName: Botan_Tests::HOTP_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::HOTP::verify_hotp
    - Botan::SymmetricKey
    - Botan::HOTP::generate_hotp
    - Test::Result::test_is_false
    - Botan::HashFunction::create
    - get_req_sz
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_algo, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan_Tests::TOTP_KAT_Tests::TOTP_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TOTP_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan_Tests::TOTP_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_otp.cpp:79,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:84,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:84,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:85,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:85,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:86,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:87,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_otp.cpp:88,1
    - Dst: Botan_Tests::TOTP_KAT_Tests::from_timestring
      Src: /src/botan/src/tests/test_otp.cpp:92,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:93,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:94,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Botan::TOTP::generate_totp
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:98,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:98,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:99,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:99,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:100,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:100,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:101,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:101,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:102,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: Botan_Tests::TOTP_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - static_cast<uint32_t>
    - Botan_Tests::TOTP_KAT_Tests::from_timestring
    - Botan::TOTP::verify_totp
    - Botan::SymmetricKey
    - Botan::HashFunction::create
    - Botan_CLI::Timer::seconds
    - Botan::TOTP::generate_totp
    - get_req_sz
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::test_is_false
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_algo, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_otp.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_otp.cpp:110,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_otp.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' time_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: Botan_Tests::TOTP_KAT_Tests::from_timestring
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - substr
    - std::stoi
    - Botan::calendar_point
    - size
    - Test_Error
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point from_timestring(const std::string&
      time_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::HOTP_KAT_Tests::HOTP_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HOTP_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::HOTP_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_otp.cpp:31,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:36,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:37,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:37,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:38,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:39,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_otp.cpp:43,1
    - Dst: Botan::HOTP::generate_hotp
      Src: /src/botan/src/tests/test_otp.cpp:43,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:45,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:46,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:47,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:50,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:51,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:52,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:55,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:56,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:57,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:60,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:61,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 65
    functionName: Botan_Tests::HOTP_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::HOTP::verify_hotp
    - Botan::SymmetricKey
    - Botan::HOTP::generate_hotp
    - Test::Result::test_is_false
    - Botan::HashFunction::create
    - get_req_sz
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_algo, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan_Tests::TOTP_KAT_Tests::TOTP_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TOTP_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan_Tests::TOTP_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_otp.cpp:79,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:84,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:84,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:85,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:85,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:86,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:87,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_otp.cpp:88,1
    - Dst: Botan_Tests::TOTP_KAT_Tests::from_timestring
      Src: /src/botan/src/tests/test_otp.cpp:92,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:93,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:94,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Botan::TOTP::generate_totp
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:98,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:98,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:99,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:99,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:100,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:100,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:101,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:101,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:102,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: Botan_Tests::TOTP_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - static_cast<uint32_t>
    - Botan_Tests::TOTP_KAT_Tests::from_timestring
    - Botan::TOTP::verify_totp
    - Botan::SymmetricKey
    - Botan::HashFunction::create
    - Botan_CLI::Timer::seconds
    - Botan::TOTP::generate_totp
    - get_req_sz
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::test_is_false
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_algo, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_otp.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_otp.cpp:110,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_otp.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' time_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: Botan_Tests::TOTP_KAT_Tests::from_timestring
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint32_t>
    - substr
    - std::stoi
    - Botan::calendar_point
    - size
    - Test_Error
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point from_timestring(const std::string&
      time_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::HOTP_KAT_Tests::HOTP_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HOTP_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::HOTP_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_otp.cpp:31,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:36,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:37,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:37,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:38,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:39,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_otp.cpp:43,1
    - Dst: Botan::HOTP::generate_hotp
      Src: /src/botan/src/tests/test_otp.cpp:43,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:45,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:46,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:47,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:50,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:51,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:52,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:55,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:56,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:57,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:60,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:61,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_otp.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 65
    functionName: Botan_Tests::HOTP_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::HOTP::verify_hotp
    - Botan::SymmetricKey
    - Botan::HOTP::generate_hotp
    - Test::Result::test_is_false
    - Botan::HashFunction::create
    - get_req_sz
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_algo, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan_Tests::TOTP_KAT_Tests::TOTP_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TOTP_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan_Tests::TOTP_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_otp.cpp:79,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:84,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:84,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:85,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:85,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:86,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:87,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_otp.cpp:88,1
    - Dst: Botan_Tests::TOTP_KAT_Tests::from_timestring
      Src: /src/botan/src/tests/test_otp.cpp:92,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:93,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:94,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Botan::TOTP::generate_totp
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:98,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:98,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:99,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:99,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:100,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:100,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_otp.cpp:101,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:101,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_otp.cpp:102,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: Botan_Tests::TOTP_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - static_cast<uint32_t>
    - Botan_Tests::TOTP_KAT_Tests::from_timestring
    - Botan::TOTP::verify_totp
    - Botan::SymmetricKey
    - Botan::HashFunction::create
    - Botan_CLI::Timer::seconds
    - Botan::TOTP::generate_totp
    - get_req_sz
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::test_is_false
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_algo, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_otp.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_otp.cpp:110,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:114,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:115,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:116,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:117,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:119,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_otp.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' time_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: Botan_Tests::TOTP_KAT_Tests::from_timestring
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint32_t>
    - substr
    - std::stoi
    - Botan::calendar_point
    - size
    - Test_Error
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point from_timestring(const std::string&
      time_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:40,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:42,1
    - Dst: std::make_unique<Botan::DSA_PrivateKey>
      Src: /src/botan/src/tests/test_dsa.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::DSA_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dsa.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/botan/src/tests/test_dsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::DSA_KAT_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - defined
    linkageType: ''
    returnType: void
    signature: void DSA_KAT_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:72,1
    - Dst: Botan::DSA_PrivateKey::public_key
      Src: /src/botan/src/tests/test_dsa.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::DSA_PrivateKey::public_key
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dsa.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: Botan_Tests::DSA_Verification_Tests::DSA_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::DSA_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:92,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:93,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:94,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:95,1
    - Dst: std::make_unique<Botan::DSA_PublicKey>
      Src: /src/botan/src/tests/test_dsa.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan_Tests::DSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::DSA_PublicKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::DSA_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan_Tests::DSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_Tests::DSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DSA_PublicKey>
      Src: /src/botan/src/tests/test_dsa.cpp:114,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dsa.cpp:114,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dsa.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: Botan_Tests::DSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DSA_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:40,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:42,1
    - Dst: std::make_unique<Botan::DSA_PrivateKey>
      Src: /src/botan/src/tests/test_dsa.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::DSA_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dsa.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/botan/src/tests/test_dsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::DSA_KAT_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - defined
    linkageType: ''
    returnType: void
    signature: void DSA_KAT_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:72,1
    - Dst: Botan::DSA_PrivateKey::public_key
      Src: /src/botan/src/tests/test_dsa.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::DSA_PrivateKey::public_key
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dsa.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: Botan_Tests::DSA_Verification_Tests::DSA_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::DSA_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:92,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:93,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:94,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:95,1
    - Dst: std::make_unique<Botan::DSA_PublicKey>
      Src: /src/botan/src/tests/test_dsa.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan_Tests::DSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::DSA_PublicKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::DSA_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan_Tests::DSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_Tests::DSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DSA_PublicKey>
      Src: /src/botan/src/tests/test_dsa.cpp:114,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dsa.cpp:114,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dsa.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: Botan_Tests::DSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DSA_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:40,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:42,1
    - Dst: std::make_unique<Botan::DSA_PrivateKey>
      Src: /src/botan/src/tests/test_dsa.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::DSA_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dsa.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/botan/src/tests/test_dsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::DSA_KAT_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - defined
    linkageType: ''
    returnType: void
    signature: void DSA_KAT_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:72,1
    - Dst: Botan::DSA_PrivateKey::public_key
      Src: /src/botan/src/tests/test_dsa.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::DSA_PrivateKey::public_key
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dsa.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: Botan_Tests::DSA_Verification_Tests::DSA_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::DSA_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:92,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:93,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:94,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:95,1
    - Dst: std::make_unique<Botan::DSA_PublicKey>
      Src: /src/botan/src/tests/test_dsa.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan_Tests::DSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::DSA_PublicKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::DSA_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan_Tests::DSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_Tests::DSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DSA_PublicKey>
      Src: /src/botan/src/tests/test_dsa.cpp:114,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dsa.cpp:114,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dsa.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: Botan_Tests::DSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DSA_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:40,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:42,1
    - Dst: std::make_unique<Botan::DSA_PrivateKey>
      Src: /src/botan/src/tests/test_dsa.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::DSA_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dsa.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/botan/src/tests/test_dsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::DSA_KAT_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - defined
    linkageType: ''
    returnType: void
    signature: void DSA_KAT_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:72,1
    - Dst: Botan::DSA_PrivateKey::public_key
      Src: /src/botan/src/tests/test_dsa.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::DSA_PrivateKey::public_key
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dsa.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::DSA_KAT_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: Botan_Tests::DSA_Verification_Tests::DSA_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::DSA_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:92,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:93,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:94,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dsa.cpp:95,1
    - Dst: std::make_unique<Botan::DSA_PublicKey>
      Src: /src/botan/src/tests/test_dsa.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan_Tests::DSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::DSA_PublicKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::DSA_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan_Tests::DSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_Tests::DSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DSA_PublicKey>
      Src: /src/botan/src/tests/test_dsa.cpp:114,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dsa.cpp:114,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dsa.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: Botan_Tests::DSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DSA_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_hss_lms.cpp:29,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:31,1
    - Dst: Botan_Tests::test_arb_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_LMS_Params::L
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:37,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:38,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:40,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:41,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:45,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:46,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:48,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 55
    functionName: Botan_Tests::test_hss_lms_params_parsing
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Botan_Tests::CHECK
    - Botan::HSS_LMS_Params::L
    - test_no_throw
    - lms_params
    - Botan::HSS_Level
    - Botan_Tests::test_arb_eq
    - lmots_params
    - Botan::HSS_LMS_Params::params_at_level
    - test_str_eq
    - test_enum_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_hss_lms_params_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::HSS_LMS_Signature_Generation_Test
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Generation_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:68,1
    - Dst: std::make_unique<Botan::HSS_LMS_PrivateKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::load_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::HSS_LMS_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:84,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::HSS_LMS_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:101,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::keygen_params
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:129,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:129,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:131,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:140,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:144,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:146,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 151
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::update
    - fuzzer_rng
    - Botan::fmt
    - auto::size
    - auto::at
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Botan::PK_Verifier::update
    - Test::Result::test_is_true
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_flipped_signature_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:156,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:156,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:158,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:167,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:168,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::update
    - fuzzer_rng
    - auto::data
    - auto::size
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Botan::PK_Verifier::update
    - Test::Result::test_is_true
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:182,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:182,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:184,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:185,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:190,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:191,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 197
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - fuzzer_rng
    - auto::data
    - auto::size
    - BOTAN_UNUSED
    - auto::private_key_bits
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_private_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:203,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:203,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:205,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:206,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:208,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:210,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:211,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:212,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 218
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - fuzzer_rng
    - auto::public_key_bits
    - auto::size
    - auto::data
    - BOTAN_UNUSED
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_public_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:221,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:222,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:223,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:234,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - HSS_LMS_PrivateKey
    - fuzzer_rng
    - auto::data
    - auto::private_key_bits
    - Botan::store_be
    linkageType: ''
    returnType: Botan::HSS_LMS_PrivateKey
    signature: Botan::HSS_LMS_PrivateKey create_private_key_with_idx(uint64_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:244,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:246,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:250,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:251,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:255,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:257,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:257,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:259,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:261,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:262,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_hss_lms.cpp:263,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:266,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:268,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::sign_message
    - HSS_LMS_PrivateKey
    - Test::Result::test_is_true
    - fuzzer_rng
    - Test::Result::test_opt_u64_eq
    - auto::private_key_bits
    - Botan::HSS_Signature::from_bytes_or_throw
    - Botan::LMS_Tree_Node_Idx
    - Test::Result::test_bin_ne
    - auto::remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_sig_changes_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:277,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:279,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:281,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:287,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::sign_message
    - fuzzer_rng
    - Test::Result::test_opt_u64_eq
    - auto::private_key_bits
    - Test::Result::test_no_throw
    - Test::Result::test_throws
    - Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    - auto::remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_sig_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
      Src: /src/botan/src/tests/test_hss_lms.cpp:292,1
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
      Src: /src/botan/src/tests/test_hss_lms.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:304,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_hss_lms.cpp:305,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:306,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:311,1
    - Dst: Botan::PK_Verifier::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:311,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: Botan::PK_Signer::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:321,1
    - Dst: Botan::PK_Signer::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 324
    functionName: Botan_Tests::HSS_LMS_Missing_API_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::algorithm_identifier
    - fuzzer_rng
    - auto::private_key_bits
    - Test::Result::test_str_eq
    - auto::key_length
    - Test::Result::test_bin_eq
    - auto::raw_private_key_bits
    - Botan::PK_Signer::hash_function
    - Botan::create_private_key
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - Botan::PK_Verifier::hash_function
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_hss_lms.cpp:29,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:31,1
    - Dst: Botan_Tests::test_arb_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_LMS_Params::L
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:37,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:38,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:40,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:41,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:45,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:46,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:48,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 55
    functionName: Botan_Tests::test_hss_lms_params_parsing
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Botan_Tests::CHECK
    - Botan::HSS_LMS_Params::L
    - test_no_throw
    - lms_params
    - Botan::HSS_Level
    - Botan_Tests::test_arb_eq
    - lmots_params
    - Botan::HSS_LMS_Params::params_at_level
    - test_str_eq
    - test_enum_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_hss_lms_params_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::HSS_LMS_Signature_Generation_Test
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Generation_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:68,1
    - Dst: std::make_unique<Botan::HSS_LMS_PrivateKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::load_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::HSS_LMS_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:84,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::HSS_LMS_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:101,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::keygen_params
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:129,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:129,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:131,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:140,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:144,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:146,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 151
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_Signer::update
    - fuzzer_rng
    - Botan::fmt
    - auto::size
    - auto::at
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Botan::PK_Verifier::update
    - Test::Result::test_is_true
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_flipped_signature_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:156,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:156,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:158,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:167,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:168,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_Signer::update
    - fuzzer_rng
    - auto::data
    - auto::size
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Botan::PK_Verifier::update
    - Test::Result::test_is_true
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:182,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:182,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:184,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:185,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:190,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:191,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 197
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - fuzzer_rng
    - auto::data
    - auto::size
    - BOTAN_UNUSED
    - auto::private_key_bits
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_private_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:203,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:203,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:205,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:206,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:208,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:210,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:211,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:212,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 218
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - fuzzer_rng
    - auto::public_key_bits
    - auto::size
    - auto::data
    - BOTAN_UNUSED
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_public_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:221,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:222,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:223,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:234,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - HSS_LMS_PrivateKey
    - fuzzer_rng
    - auto::data
    - auto::private_key_bits
    - Botan::store_be
    linkageType: ''
    returnType: Botan::HSS_LMS_PrivateKey
    signature: Botan::HSS_LMS_PrivateKey create_private_key_with_idx(uint64_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:244,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:246,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:250,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:251,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:255,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:257,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:257,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:259,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:261,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:262,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_hss_lms.cpp:263,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:266,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:268,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_Signer::sign_message
    - HSS_LMS_PrivateKey
    - Test::Result::test_is_true
    - fuzzer_rng
    - Test::Result::test_opt_u64_eq
    - auto::private_key_bits
    - Botan::HSS_Signature::from_bytes_or_throw
    - Botan::LMS_Tree_Node_Idx
    - Test::Result::test_bin_ne
    - auto::remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_sig_changes_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:277,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:279,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:281,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:287,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_Signer::sign_message
    - fuzzer_rng
    - Test::Result::test_opt_u64_eq
    - auto::private_key_bits
    - Test::Result::test_no_throw
    - Test::Result::test_throws
    - Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    - auto::remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_sig_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
      Src: /src/botan/src/tests/test_hss_lms.cpp:292,1
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
      Src: /src/botan/src/tests/test_hss_lms.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:304,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_hss_lms.cpp:305,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:306,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:311,1
    - Dst: Botan::PK_Verifier::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:311,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: Botan::PK_Signer::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:321,1
    - Dst: Botan::PK_Signer::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 324
    functionName: Botan_Tests::HSS_LMS_Missing_API_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::algorithm_identifier
    - fuzzer_rng
    - auto::private_key_bits
    - Test::Result::test_str_eq
    - auto::key_length
    - Test::Result::test_bin_eq
    - auto::raw_private_key_bits
    - Botan::PK_Signer::hash_function
    - Botan::create_private_key
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - Botan::PK_Verifier::hash_function
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_hss_lms.cpp:29,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:31,1
    - Dst: Botan_Tests::test_arb_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_LMS_Params::L
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:37,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:38,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:40,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:41,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:45,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:46,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:48,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 55
    functionName: Botan_Tests::test_hss_lms_params_parsing
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Botan_Tests::CHECK
    - Botan::HSS_LMS_Params::L
    - test_no_throw
    - lms_params
    - Botan::HSS_Level
    - Botan_Tests::test_arb_eq
    - lmots_params
    - Botan::HSS_LMS_Params::params_at_level
    - test_str_eq
    - test_enum_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_hss_lms_params_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::HSS_LMS_Signature_Generation_Test
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Generation_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:68,1
    - Dst: std::make_unique<Botan::HSS_LMS_PrivateKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::load_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::HSS_LMS_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:84,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::HSS_LMS_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:101,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::keygen_params
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:129,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:129,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:131,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:140,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:144,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:146,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 151
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_Signer::update
    - fuzzer_rng
    - Botan::fmt
    - auto::size
    - auto::at
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Botan::PK_Verifier::update
    - Test::Result::test_is_true
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_flipped_signature_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:156,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:156,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:158,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:167,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:168,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_Signer::update
    - fuzzer_rng
    - auto::data
    - auto::size
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Botan::PK_Verifier::update
    - Test::Result::test_is_true
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:182,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:182,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:184,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:185,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:190,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:191,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 197
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - fuzzer_rng
    - auto::data
    - auto::size
    - BOTAN_UNUSED
    - auto::private_key_bits
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_private_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:203,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:203,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:205,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:206,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:208,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:210,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:211,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:212,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 218
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - fuzzer_rng
    - auto::public_key_bits
    - auto::size
    - auto::data
    - BOTAN_UNUSED
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_public_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:221,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:222,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:223,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:234,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - HSS_LMS_PrivateKey
    - fuzzer_rng
    - auto::data
    - auto::private_key_bits
    - Botan::store_be
    linkageType: ''
    returnType: Botan::HSS_LMS_PrivateKey
    signature: Botan::HSS_LMS_PrivateKey create_private_key_with_idx(uint64_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:244,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:246,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:250,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:251,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:255,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:257,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:257,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:259,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:261,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:262,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_hss_lms.cpp:263,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:266,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:268,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_Signer::sign_message
    - HSS_LMS_PrivateKey
    - Test::Result::test_is_true
    - fuzzer_rng
    - Test::Result::test_opt_u64_eq
    - auto::private_key_bits
    - Botan::HSS_Signature::from_bytes_or_throw
    - Botan::LMS_Tree_Node_Idx
    - Test::Result::test_bin_ne
    - auto::remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_sig_changes_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:277,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:279,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:281,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:287,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_Signer::sign_message
    - fuzzer_rng
    - Test::Result::test_opt_u64_eq
    - auto::private_key_bits
    - Test::Result::test_no_throw
    - Test::Result::test_throws
    - Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    - auto::remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_sig_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
      Src: /src/botan/src/tests/test_hss_lms.cpp:292,1
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
      Src: /src/botan/src/tests/test_hss_lms.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:304,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_hss_lms.cpp:305,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:306,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:311,1
    - Dst: Botan::PK_Verifier::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:311,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: Botan::PK_Signer::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:321,1
    - Dst: Botan::PK_Signer::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 324
    functionName: Botan_Tests::HSS_LMS_Missing_API_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::algorithm_identifier
    - fuzzer_rng
    - auto::private_key_bits
    - Test::Result::test_str_eq
    - auto::key_length
    - Test::Result::test_bin_eq
    - auto::raw_private_key_bits
    - Botan::PK_Signer::hash_function
    - Botan::create_private_key
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - Botan::PK_Verifier::hash_function
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_hss_lms.cpp:29,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:31,1
    - Dst: Botan_Tests::test_arb_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_LMS_Params::L
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:34,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:37,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:38,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:40,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:41,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:45,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:46,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:48,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 55
    functionName: Botan_Tests::test_hss_lms_params_parsing
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Botan_Tests::CHECK
    - Botan::HSS_LMS_Params::L
    - test_no_throw
    - lms_params
    - Botan::HSS_Level
    - Botan_Tests::test_arb_eq
    - lmots_params
    - Botan::HSS_LMS_Params::params_at_level
    - test_str_eq
    - test_enum_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_hss_lms_params_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::HSS_LMS_Signature_Generation_Test
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Generation_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:68,1
    - Dst: std::make_unique<Botan::HSS_LMS_PrivateKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::load_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::HSS_LMS_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:84,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::HSS_LMS_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:101,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::keygen_params
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: Botan_Tests::HSS_LMS_Key_Generation_Test::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::HSS_LMS_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:129,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:129,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:131,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:140,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:144,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:146,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 151
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - Botan::PK_Signer::update
    - fuzzer_rng
    - Botan::fmt
    - auto::size
    - auto::at
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Botan::PK_Verifier::update
    - Test::Result::test_is_true
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_flipped_signature_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:156,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:156,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:158,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:167,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:168,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - Botan::PK_Signer::update
    - fuzzer_rng
    - auto::data
    - auto::size
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Botan::PK_Verifier::update
    - Test::Result::test_is_true
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:182,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:182,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:184,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:185,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:190,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:191,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 197
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - fuzzer_rng
    - auto::data
    - auto::size
    - BOTAN_UNUSED
    - auto::private_key_bits
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_private_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:203,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:203,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:205,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:206,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:208,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:210,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:211,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:212,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 218
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - fuzzer_rng
    - auto::public_key_bits
    - auto::size
    - auto::data
    - BOTAN_UNUSED
    - Test::Result::test_no_throw
    - Botan::create_private_key
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_too_short_public_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:221,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:222,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:223,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:234,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - HSS_LMS_PrivateKey
    - fuzzer_rng
    - auto::data
    - auto::private_key_bits
    - Botan::store_be
    linkageType: ''
    returnType: Botan::HSS_LMS_PrivateKey
    signature: Botan::HSS_LMS_PrivateKey create_private_key_with_idx(uint64_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:244,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:246,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:250,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:251,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:255,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:257,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:257,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:259,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:261,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:262,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_hss_lms.cpp:263,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:266,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:268,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - Botan::PK_Signer::sign_message
    - HSS_LMS_PrivateKey
    - Test::Result::test_is_true
    - fuzzer_rng
    - Test::Result::test_opt_u64_eq
    - auto::private_key_bits
    - Botan::HSS_Signature::from_bytes_or_throw
    - Botan::LMS_Tree_Node_Idx
    - Test::Result::test_bin_ne
    - auto::remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_sig_changes_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:277,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:279,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:281,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: Test::Result::test_opt_u64_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:287,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - Botan::PK_Signer::sign_message
    - fuzzer_rng
    - Test::Result::test_opt_u64_eq
    - auto::private_key_bits
    - Test::Result::test_no_throw
    - Test::Result::test_throws
    - Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    - auto::remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_sig_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
      Src: /src/botan/src/tests/test_hss_lms.cpp:292,1
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
      Src: /src/botan/src/tests/test_hss_lms.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:304,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_hss_lms.cpp:305,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:306,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:311,1
    - Dst: Botan::PK_Verifier::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:311,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:314,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: Botan::PK_Signer::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:318,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:321,1
    - Dst: Botan::PK_Signer::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 324
    functionName: Botan_Tests::HSS_LMS_Missing_API_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::algorithm_identifier
    - fuzzer_rng
    - auto::private_key_bits
    - Test::Result::test_str_eq
    - auto::key_length
    - Test::Result::test_bin_eq
    - auto::raw_private_key_bits
    - Botan::PK_Signer::hash_function
    - Botan::create_private_key
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - Botan::PK_Verifier::hash_function
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::encode_size
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: size_t
    signature: size_t encode_size(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:29,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:31,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: Botan_Tests::left_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - Botan::keccak_int_left_encode
    - test_sz_eq
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> left_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:36,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:38,1
    - Dst: Botan::keccak_int_right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: Botan_Tests::right_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    - Botan::keccak_int_encoding_size
    - Botan::keccak_int_right_encode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> right_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:45,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:46,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:46,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hex
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan_Tests::shake32
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::output_stdvec
    - Botan::XOF::create_or_throw
    - auto::update
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) shake32(std::string_view hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:54,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:56,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:56,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:57,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:57,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:58,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:58,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:60,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:60,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:61,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:61,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:62,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:62,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:68,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:68,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:69,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:69,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:71,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:71,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:82,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:82,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:83,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:83,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:85,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:85,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:100,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:101,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:112,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:122,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:122,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:123,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:125,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:138,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:142,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:143,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:146,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:147,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:149,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:151,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:152,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:159,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:161,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:162,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:168,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:168,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:169,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:171,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:173,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 185
    functionName: Botan_Tests::keccak_helpers
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - auto::output_stdvec
    - Botan_Tests::left_encode
    - Botan_Tests::CHECK
    - auto::block_size
    - test_sz_eq
    - Botan_Tests::shake32
    - Botan_Tests::encode_size
    - Botan::keccak_absorb_padded_strings_encoding
    - test_bin_eq
    - Botan_Tests::right_encode
    - Botan::XOF::create_or_throw
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> keccak_helpers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::encode_size
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 1
    functionsReached:
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: size_t
    signature: size_t encode_size(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:29,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:31,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: Botan_Tests::left_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 1
    functionsReached:
    - Botan::keccak_int_left_encode
    - test_sz_eq
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> left_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:36,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:38,1
    - Dst: Botan::keccak_int_right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: Botan_Tests::right_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 1
    functionsReached:
    - test_sz_eq
    - Botan::keccak_int_encoding_size
    - Botan::keccak_int_right_encode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> right_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:45,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:46,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:46,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hex
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan_Tests::shake32
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - auto::output_stdvec
    - Botan::XOF::create_or_throw
    - auto::update
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) shake32(std::string_view hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:54,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:56,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:56,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:57,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:57,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:58,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:58,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:60,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:60,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:61,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:61,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:62,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:62,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:68,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:68,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:69,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:69,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:71,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:71,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:82,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:82,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:83,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:83,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:85,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:85,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:100,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:101,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:112,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:122,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:122,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:123,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:125,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:138,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:142,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:143,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:146,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:147,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:149,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:151,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:152,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:159,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:161,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:162,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:168,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:168,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:169,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:171,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:173,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 185
    functionName: Botan_Tests::keccak_helpers
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - auto::output_stdvec
    - Botan_Tests::left_encode
    - Botan_Tests::CHECK
    - auto::block_size
    - test_sz_eq
    - Botan_Tests::shake32
    - Botan_Tests::encode_size
    - Botan::keccak_absorb_padded_strings_encoding
    - test_bin_eq
    - Botan_Tests::right_encode
    - Botan::XOF::create_or_throw
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> keccak_helpers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::encode_size
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 2
    functionsReached:
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: size_t
    signature: size_t encode_size(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:29,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:31,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: Botan_Tests::left_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 2
    functionsReached:
    - Botan::keccak_int_left_encode
    - test_sz_eq
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> left_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:36,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:38,1
    - Dst: Botan::keccak_int_right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: Botan_Tests::right_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 2
    functionsReached:
    - test_sz_eq
    - Botan::keccak_int_encoding_size
    - Botan::keccak_int_right_encode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> right_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:45,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:46,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:46,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hex
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan_Tests::shake32
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - auto::output_stdvec
    - Botan::XOF::create_or_throw
    - auto::update
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) shake32(std::string_view hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:54,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:56,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:56,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:57,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:57,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:58,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:58,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:60,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:60,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:61,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:61,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:62,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:62,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:68,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:68,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:69,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:69,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:71,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:71,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:82,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:82,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:83,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:83,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:85,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:85,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:100,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:101,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:112,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:122,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:122,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:123,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:125,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:138,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:142,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:143,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:146,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:147,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:149,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:151,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:152,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:159,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:161,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:162,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:168,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:168,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:169,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:171,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:173,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 185
    functionName: Botan_Tests::keccak_helpers
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - auto::output_stdvec
    - Botan_Tests::left_encode
    - Botan_Tests::CHECK
    - auto::block_size
    - test_sz_eq
    - Botan_Tests::shake32
    - Botan_Tests::encode_size
    - Botan::keccak_absorb_padded_strings_encoding
    - test_bin_eq
    - Botan_Tests::right_encode
    - Botan::XOF::create_or_throw
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> keccak_helpers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::encode_size
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 3
    functionsReached:
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: size_t
    signature: size_t encode_size(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:29,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:31,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: Botan_Tests::left_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 3
    functionsReached:
    - Botan::keccak_int_left_encode
    - test_sz_eq
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> left_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:36,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:38,1
    - Dst: Botan::keccak_int_right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: Botan_Tests::right_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 3
    functionsReached:
    - test_sz_eq
    - Botan::keccak_int_encoding_size
    - Botan::keccak_int_right_encode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> right_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:45,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:46,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:46,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hex
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan_Tests::shake32
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - auto::output_stdvec
    - Botan::XOF::create_or_throw
    - auto::update
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) shake32(std::string_view hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:54,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:56,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:56,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:57,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:57,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:58,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:58,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:60,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:60,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:61,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:61,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:62,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:62,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:68,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:68,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:69,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:69,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:71,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:71,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:82,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:82,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:83,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:83,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:85,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:85,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:100,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:101,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:112,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:122,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:122,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:123,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:125,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:138,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:142,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:143,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:146,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:147,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:149,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:151,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:152,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:159,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:161,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:162,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:168,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:168,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:169,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:171,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:173,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 185
    functionName: Botan_Tests::keccak_helpers
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - auto::output_stdvec
    - Botan_Tests::left_encode
    - Botan_Tests::CHECK
    - auto::block_size
    - test_sz_eq
    - Botan_Tests::shake32
    - Botan_Tests::encode_size
    - Botan::keccak_absorb_padded_strings_encoding
    - test_bin_eq
    - Botan_Tests::right_encode
    - Botan::XOF::create_or_throw
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> keccak_helpers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::Test_Credentials_Manager::session_ticket_key
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Other_Test_Credentials_Manager::session_ticket_key
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*record*/, std::span<const uint8_t>
      /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*summary*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:83,1
    - Dst: std::chrono::hours
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_current_timestamp
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::hours
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point tls_current_timestamp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Session_Manager_Callbacks::tick
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::Session_Manager_Policy::session_ticket_lifetime
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::minutes
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds session_ticket_lifetime() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Session_Manager_Policy::reuse_session_tickets
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool reuse_session_tickets() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Session_Manager_Policy::maximum_session_tickets_per_client_hello
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t maximum_session_tickets_per_client_hello() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_Tests::Session_Manager_Policy::set_session_limit
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_session_limit(size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::Session_Manager_Policy::set_allow_session_reuse
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_allow_session_reuse(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Botan_Tests::random_id
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_id(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: Botan_Tests::random_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_ticket(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: Botan_Tests::random_opaque_handle
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_opaque_handle(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: Botan_Tests::server_info
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::TLS::Server_Information
    signature: Botan::TLS::Server_Information & server_info()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:129,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:130,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:134,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:137,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:139,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:143,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:144,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - side
    - ' cbs'
    argTypes:
    - Botan::TLS::Connection_Side
    - Botan::TLS::Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 149
    functionName: Botan_Tests::default_session
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - tls_current_timestamp
    - Botan_CLI::Timer::seconds
    - TestSession::TestSession
    - is_pre_tls_13
    - Botan_Tests::server_info
    - Test_Error
    - Botan::TLS::Ciphersuite::from_name
    linkageType: ''
    returnType: decltype(auto)
    signature: "decltype(auto) default_session(Botan::TLS::Connection_Side side,\n
      \                              Botan::TLS::Callbacks& cbs,\n                               Botan::TLS::Protocol_Version
      version = Botan::TLS::Protocol_Version::TLS_V12)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:154,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:156,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:166,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:170,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:173,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:182,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:182,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:183,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:183,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:185,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:185,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:190,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:194,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:194,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:195,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:195,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:196,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:196,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:198,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:202,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:205,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:205,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:206,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:206,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:207,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:207,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:216,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:216,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:220,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:223,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:223,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:226,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:229,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:229,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:232,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:235,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:240,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:240,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:241,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:241,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:244,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:249,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:249,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:255,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:255,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:256,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:256,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:257,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:257,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:260,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:263,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:266,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:268,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:268,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:279,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:282,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:287,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:287,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:288,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:288,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:299,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:303,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:306,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:315,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:316,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:317,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:320,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:320,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:321,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:321,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:327,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Session_Ticket::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:331,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:331,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:334,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:337,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:337,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:341,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:341,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:343,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:352,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:355,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:355,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:362,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:363,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:363,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:364,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:365,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:365,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:369,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 386
    functionName: Botan_Tests::test_session_manager_in_memory
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_id
    - test_is_true
    - Botan::TLS::Session_Ticket::get
    - Botan_Tests::server_info
    - handle::ticket
    - Botan::TLS::Session_Manager_In_Memory::find
    - std::optional::emplace
    - Botan::TLS::Session_Manager_In_Memory::store
    - std::optional::find
    - auto::size
    - Botan_Tests::default_session
    - auto::ciphersuite_code
    - auto::ticket
    - test_bin_eq
    - handle::id
    - auto::random_vec
    - std::optional::establish
    - test_u16_eq
    - Botan::TLS::Opaque_Session_Handle
    - Botan_Tests::random_ticket
    - session::ciphersuite_code
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - session::version
    - require
    - Botan::TLS::Session_Manager_In_Memory::remove
    - std::optional::retrieve
    - auto::has_value
    - Botan::TLS::Session_Manager_In_Memory::retrieve
    - std::optional::capacity
    - auto::version
    - Botan_Tests::CHECK
    - std::optional::remove_all
    - std::optional::store
    - Botan::TLS::Session_Manager_In_Memory::establish
    - std::vector::push_back
    - test_sz_eq
    - std::vector::reserve
    - std::optional::remove
    - Botan::TLS::Session_Ticket
    - auto::id
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_in_memory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:393,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:398,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:399,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:401,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:406,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:408,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:409,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:412,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:414,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:418,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:419,1
    - Dst: Botan::TLS::PskIdentity::PskIdentity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:427,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:431,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:433,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:434,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:435,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:437,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:453,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:459,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:462,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:465,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:470,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:478,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:481,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:487,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:493,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:498,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:506,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:506,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:515,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:517,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:521,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:522,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:522,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:523,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:524,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:524,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 539
    functionName: Botan_Tests::test_session_manager_choose_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_is_true
    - Botan_Tests::server_info
    - ticket
    - tls_current_timestamp
    - std::vector
    - Botan_Tests::default_session
    - Botan_CLI::Timer::seconds
    - test_u16_eq
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - require
    - Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
    - begin
    - Botan::TLS::Session_Manager_Stateless::establish
    - is_pre_tls_13
    - auto::has_value
    - Botan::TLS::PskIdentity::PskIdentity
    - Botan::TLS::Ciphersuite::from_name
    - id
    - Botan_Tests::CHECK
    - std::vector::push_back
    - Botan::TLS::Session_Manager_In_Memory::establish
    - Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
    - TestSession::TestSession
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_choose_ticket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:542,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:544,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:552,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:554,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:554,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:555,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:555,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:563,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:563,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:567,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:571,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:571,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:573,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:573,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:576,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:579,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:579,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:593,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:594,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:594,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:597,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:599,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:599,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:602,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: auto::opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:606,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:608,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:608,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:616,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:617,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:617,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:618,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:619,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:619,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:625,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:628,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:631,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan_Tests::random_opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan::TLS::Session_Manager_Stateless::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:642,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:642,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:648,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:648,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:655,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:656,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:658,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:658,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:664,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:664,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 668
    functionName: Botan_Tests::test_session_manager_stateless
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_id
    - test_is_true
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - test_u64_eq
    - auto::opaque_handle
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - auto::is_ticket
    - std::chrono::duration_cast<std::chrono::seconds>
    - require
    - Botan::TLS::Session_Manager_Stateless::establish
    - auto::has_value
    - Botan::TLS::Session_Manager_Stateless::remove
    - Botan::TLS::Session_Manager_Stateless::remove_all
    - Botan_Tests::random_opaque_handle
    - Botan_Tests::CHECK
    - auto::start_time
    - Botan::TLS::Session_Manager_Stateless::retrieve
    - test_sz_eq
    - Botan::TLS::Session_Manager_Stateless::emits_session_tickets
    - Botan::TLS::Session_Manager_Stateless::store
    - test_throws
    - Botan::TLS::Session_Manager_Stateless::find
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_stateless()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:671,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:673,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:682,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:686,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:691,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:692,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:703,1
    - Dst: stateful_manager_factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:703,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:706,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:713,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:714,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:716,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:721,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:722,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:722,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:730,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:730,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:736,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:739,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:740,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:742,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:743,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:744,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:745,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:761,1
    - Dst: std::make_shared<Empty_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:762,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:764,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:765,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:767,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:767,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 772
    functionName: Botan_Tests::test_session_manager_hybrid
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - Botan::fmt
    - test_is_true
    - auto::emits_session_tickets
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - stateful_manager_factory
    - std::make_shared<Empty_Credentials_Manager>
    - Botan_Tests::default_session
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::Test::new_shared_rng
    - auto::is_ticket
    - Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    - require
    - auto::retrieve
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - make_manager
    - auto::has_value
    - auto::is_id
    - Botan_Tests::CHECK
    - std::vector::push_back
    - Botan_Tests::Test::temp_file_name
    - CHECK_all
    - auto::underlying_stateful_manager
    - auto::establish
    - Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_hybrid()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file_as_temporary_copy
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:780,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:781,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 784
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::Test::data_file_as_temporary_copy
    - empty
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(const std::string& db_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 792
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_Session_Manager::remove
    - empty
    linkageType: ''
    returnType: void
    signature: void ~Temporary_Database_File()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 794
    functionName: '& get() const'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 796
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(const Temporary_Database_File&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 797
    functionName: '& operator=(const Temporary_Database_File&)'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Temporary_Database_File
    signature: Temporary_Database_File & operator=(const Temporary_Database_File&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 798
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(Temporary_Database_File&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 799
    functionName: '& operator=(Temporary_Database_File&&)'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Temporary_Database_File
    signature: Temporary_Database_File & operator=(Temporary_Database_File&&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:804,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:809,1
    - Dst: Temporary_Database_File::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:818,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:820,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:821,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:822,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:822,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:827,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:828,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:829,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:829,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:834,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:837,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:839,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:839,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:847,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:847,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:850,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:853,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:854,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:856,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:856,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:857,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:857,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:859,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:859,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:861,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:861,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:862,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:862,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:863,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:863,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:869,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:870,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:872,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:872,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:873,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:873,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:875,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:876,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:876,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:879,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:879,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:890,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:890,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:894,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:897,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:902,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:906,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:910,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:911,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:913,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:913,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:916,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:916,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:926,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:929,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:929,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:930,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:930,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:934,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:934,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:942,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:942,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:952,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:955,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:955,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:956,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:956,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:963,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:963,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:964,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:964,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:965,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:965,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:967,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:968,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:968,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:969,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:969,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:975,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:984,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:984,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 990
    functionName: Botan_Tests::test_session_manager_sqlite
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session_Manager_SQLite::remove_all
    - Botan_Tests::random_id
    - Botan::TLS::Session_ID
    - test_is_true
    - is_ticket
    - Botan::TLS::Session_Manager_SQLite::find
    - Botan_Tests::server_info
    - Botan::TLS::Server_Information
    - Botan::TLS::Session_Manager_SQLite::store
    - Botan::hex_decode
    - ticket
    - auto::size
    - Botan_Tests::default_session
    - auto::ciphersuite_code
    - is_id
    - test_bin_eq
    - Temporary_Database_File::get
    - test_u16_eq
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - require
    - Session_Manager_Callbacks::tick
    - Botan::TLS::Session_Manager_SQLite::retrieve
    - auto::has_value
    - Botan::TLS::Session_Manager_SQLite::establish
    - auto::is_id
    - id
    - auto::version
    - Botan_Tests::CHECK
    - test_sz_eq
    - Botan::TLS::Session_Manager_SQLite::remove
    - Botan_Tests::Test::temp_file_name
    - auto::value
    - auto::id
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_sqlite()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:993,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:998,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1002,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_Stateless>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1006,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1007,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1012,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1013,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1019,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1019,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1022,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1023,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1029,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1030,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1034,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1034,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1035,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1035,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1037,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1039,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1039,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1048,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1050,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1051,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1051,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1052,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1052,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1054,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1055,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1057,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1057,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1061,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1061,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1062,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1075,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1077,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1078,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1078,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1080,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1081,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1081,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1085,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1086,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1086,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1088,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1089,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1089,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1093,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1095,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1095,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1098,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1098,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1099,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1099,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1101,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1102,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1102,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1113,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1117,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1118,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1118,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1121,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1123,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1124,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1128,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1129,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1130,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1130,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1131,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1144,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1146,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1147,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1148,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1149,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1150,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1153,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1156,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1158,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1160,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1163
    functionName: Botan_Tests::tls_session_manager_expiry
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - auto::c_str
    - Botan_Tests::random_id
    - Botan::fmt
    - test_is_true
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::server_info
    - Session_Manager_Policy::maximum_session_tickets_per_client_hello
    - ticket
    - Session_Manager_Policy::set_allow_session_reuse
    - auto::find
    - auto::size
    - auto::choose_from_offered_tickets
    - Botan_Tests::default_session
    - is_id
    - test_bin_eq
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - test_u16_eq
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - auto::remove_all
    - require
    - auto::retrieve
    - auto::empty
    - Session_Manager_Callbacks::tick
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - version
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - auto::has_value
    - Session_Manager_Policy::set_session_limit
    - id
    - Botan_Tests::CHECK
    - std::make_unique<Botan::TLS::Session_Manager_Stateless>
    - std::vector::push_back
    - test_sz_eq
    - Botan_Tests::Test::temp_file_name
    - std::vector::reserve
    - CHECK_all
    - factory
    - auto::store
    - auto::establish
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> tls_session_manager_expiry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::Test_Credentials_Manager::session_ticket_key
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Other_Test_Credentials_Manager::session_ticket_key
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*record*/, std::span<const uint8_t>
      /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*summary*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:83,1
    - Dst: std::chrono::hours
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_current_timestamp
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::hours
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point tls_current_timestamp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Session_Manager_Callbacks::tick
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::Session_Manager_Policy::session_ticket_lifetime
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::minutes
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds session_ticket_lifetime() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Session_Manager_Policy::reuse_session_tickets
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool reuse_session_tickets() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Session_Manager_Policy::maximum_session_tickets_per_client_hello
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t maximum_session_tickets_per_client_hello() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_Tests::Session_Manager_Policy::set_session_limit
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_session_limit(size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::Session_Manager_Policy::set_allow_session_reuse
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_allow_session_reuse(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Botan_Tests::random_id
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 4
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_id(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: Botan_Tests::random_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 5
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_ticket(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: Botan_Tests::random_opaque_handle
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 1
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_opaque_handle(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: Botan_Tests::server_info
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: Botan::TLS::Server_Information
    signature: Botan::TLS::Server_Information & server_info()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:129,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:130,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:134,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:137,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:139,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:143,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:144,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - side
    - ' cbs'
    argTypes:
    - Botan::TLS::Connection_Side
    - Botan::TLS::Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 149
    functionName: Botan_Tests::default_session
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 6
    functionsReached:
    - tls_current_timestamp
    - Botan_CLI::Timer::seconds
    - TestSession::TestSession
    - is_pre_tls_13
    - Botan_Tests::server_info
    - Test_Error
    - Botan::TLS::Ciphersuite::from_name
    linkageType: ''
    returnType: decltype(auto)
    signature: "decltype(auto) default_session(Botan::TLS::Connection_Side side,\n
      \                              Botan::TLS::Callbacks& cbs,\n                               Botan::TLS::Protocol_Version
      version = Botan::TLS::Protocol_Version::TLS_V12)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:154,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:156,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:166,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:170,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:173,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:182,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:182,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:183,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:183,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:185,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:185,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:190,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:194,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:194,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:195,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:195,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:196,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:196,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:198,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:202,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:205,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:205,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:206,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:206,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:207,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:207,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:216,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:216,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:220,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:223,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:223,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:226,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:229,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:229,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:232,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:235,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:240,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:240,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:241,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:241,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:244,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:249,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:249,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:255,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:255,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:256,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:256,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:257,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:257,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:260,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:263,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:266,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:268,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:268,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:279,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:282,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:287,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:287,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:288,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:288,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:299,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:303,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:306,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:315,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:316,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:317,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:320,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:320,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:321,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:321,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:327,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Session_Ticket::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:331,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:331,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:334,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:337,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:337,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:341,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:341,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:343,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:352,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:355,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:355,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:362,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:363,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:363,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:364,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:365,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:365,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:369,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 386
    functionName: Botan_Tests::test_session_manager_in_memory
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_id
    - test_is_true
    - Botan::TLS::Session_Ticket::get
    - Botan_Tests::server_info
    - handle::ticket
    - Botan::TLS::Session_Manager_In_Memory::find
    - std::optional::emplace
    - Botan::TLS::Session_Manager_In_Memory::store
    - std::optional::find
    - auto::size
    - Botan_Tests::default_session
    - auto::ciphersuite_code
    - auto::ticket
    - test_bin_eq
    - handle::id
    - auto::random_vec
    - std::optional::establish
    - test_u16_eq
    - Botan::TLS::Opaque_Session_Handle
    - Botan_Tests::random_ticket
    - session::ciphersuite_code
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - session::version
    - require
    - Botan::TLS::Session_Manager_In_Memory::remove
    - std::optional::retrieve
    - auto::has_value
    - Botan::TLS::Session_Manager_In_Memory::retrieve
    - std::optional::capacity
    - auto::version
    - Botan_Tests::CHECK
    - std::optional::remove_all
    - std::optional::store
    - Botan::TLS::Session_Manager_In_Memory::establish
    - std::vector::push_back
    - test_sz_eq
    - std::vector::reserve
    - std::optional::remove
    - Botan::TLS::Session_Ticket
    - auto::id
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_in_memory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:393,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:398,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:399,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:401,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:406,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:408,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:409,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:412,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:414,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:418,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:419,1
    - Dst: Botan::TLS::PskIdentity::PskIdentity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:427,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:431,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:433,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:434,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:435,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:437,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:453,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:459,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:462,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:465,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:470,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:478,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:481,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:487,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:493,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:498,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:506,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:506,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:515,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:517,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:521,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:522,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:522,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:523,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:524,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:524,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 539
    functionName: Botan_Tests::test_session_manager_choose_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_is_true
    - Botan_Tests::server_info
    - ticket
    - tls_current_timestamp
    - std::vector
    - Botan_Tests::default_session
    - Botan_CLI::Timer::seconds
    - test_u16_eq
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - require
    - Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
    - begin
    - Botan::TLS::Session_Manager_Stateless::establish
    - is_pre_tls_13
    - auto::has_value
    - Botan::TLS::PskIdentity::PskIdentity
    - Botan::TLS::Ciphersuite::from_name
    - id
    - Botan_Tests::CHECK
    - std::vector::push_back
    - Botan::TLS::Session_Manager_In_Memory::establish
    - Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
    - TestSession::TestSession
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_choose_ticket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:542,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:544,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:552,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:554,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:554,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:555,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:555,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:563,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:563,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:567,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:571,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:571,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:573,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:573,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:576,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:579,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:579,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:593,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:594,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:594,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:597,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:599,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:599,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:602,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: auto::opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:606,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:608,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:608,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:616,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:617,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:617,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:618,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:619,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:619,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:625,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:628,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:631,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan_Tests::random_opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan::TLS::Session_Manager_Stateless::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:642,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:642,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:648,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:648,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:655,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:656,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:658,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:658,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:664,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:664,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 668
    functionName: Botan_Tests::test_session_manager_stateless
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_id
    - test_is_true
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - test_u64_eq
    - auto::opaque_handle
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - auto::is_ticket
    - std::chrono::duration_cast<std::chrono::seconds>
    - require
    - Botan::TLS::Session_Manager_Stateless::establish
    - auto::has_value
    - Botan::TLS::Session_Manager_Stateless::remove
    - Botan::TLS::Session_Manager_Stateless::remove_all
    - Botan_Tests::random_opaque_handle
    - Botan_Tests::CHECK
    - auto::start_time
    - Botan::TLS::Session_Manager_Stateless::retrieve
    - test_sz_eq
    - Botan::TLS::Session_Manager_Stateless::emits_session_tickets
    - Botan::TLS::Session_Manager_Stateless::store
    - test_throws
    - Botan::TLS::Session_Manager_Stateless::find
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_stateless()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:671,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:673,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:682,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:686,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:691,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:692,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:703,1
    - Dst: stateful_manager_factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:703,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:706,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:713,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:714,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:716,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:721,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:722,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:722,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:730,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:730,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:736,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:739,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:740,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:742,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:743,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:744,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:745,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:761,1
    - Dst: std::make_shared<Empty_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:762,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:764,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:765,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:767,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:767,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 772
    functionName: Botan_Tests::test_session_manager_hybrid
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - Botan::fmt
    - test_is_true
    - auto::emits_session_tickets
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - stateful_manager_factory
    - std::make_shared<Empty_Credentials_Manager>
    - Botan_Tests::default_session
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::Test::new_shared_rng
    - auto::is_ticket
    - Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    - require
    - auto::retrieve
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - make_manager
    - auto::has_value
    - auto::is_id
    - Botan_Tests::CHECK
    - std::vector::push_back
    - Botan_Tests::Test::temp_file_name
    - CHECK_all
    - auto::underlying_stateful_manager
    - auto::establish
    - Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_hybrid()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file_as_temporary_copy
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:780,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:781,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 784
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::Test::data_file_as_temporary_copy
    - empty
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(const std::string& db_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 792
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_Session_Manager::remove
    - empty
    linkageType: ''
    returnType: void
    signature: void ~Temporary_Database_File()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 794
    functionName: '& get() const'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 796
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(const Temporary_Database_File&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 797
    functionName: '& operator=(const Temporary_Database_File&)'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Temporary_Database_File
    signature: Temporary_Database_File & operator=(const Temporary_Database_File&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 798
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(Temporary_Database_File&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 799
    functionName: '& operator=(Temporary_Database_File&&)'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Temporary_Database_File
    signature: Temporary_Database_File & operator=(Temporary_Database_File&&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:804,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:809,1
    - Dst: Temporary_Database_File::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:818,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:820,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:821,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:822,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:822,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:827,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:828,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:829,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:829,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:834,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:837,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:839,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:839,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:847,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:847,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:850,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:853,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:854,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:856,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:856,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:857,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:857,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:859,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:859,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:861,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:861,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:862,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:862,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:863,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:863,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:869,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:870,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:872,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:872,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:873,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:873,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:875,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:876,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:876,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:879,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:879,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:890,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:890,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:894,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:897,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:902,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:906,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:910,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:911,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:913,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:913,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:916,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:916,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:926,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:929,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:929,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:930,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:930,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:934,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:934,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:942,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:942,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:952,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:955,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:955,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:956,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:956,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:963,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:963,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:964,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:964,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:965,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:965,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:967,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:968,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:968,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:969,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:969,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:975,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:984,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:984,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 990
    functionName: Botan_Tests::test_session_manager_sqlite
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session_Manager_SQLite::remove_all
    - Botan_Tests::random_id
    - Botan::TLS::Session_ID
    - test_is_true
    - is_ticket
    - Botan::TLS::Session_Manager_SQLite::find
    - Botan_Tests::server_info
    - Botan::TLS::Server_Information
    - Botan::TLS::Session_Manager_SQLite::store
    - Botan::hex_decode
    - ticket
    - auto::size
    - Botan_Tests::default_session
    - auto::ciphersuite_code
    - is_id
    - test_bin_eq
    - Temporary_Database_File::get
    - test_u16_eq
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - require
    - Session_Manager_Callbacks::tick
    - Botan::TLS::Session_Manager_SQLite::retrieve
    - auto::has_value
    - Botan::TLS::Session_Manager_SQLite::establish
    - auto::is_id
    - id
    - auto::version
    - Botan_Tests::CHECK
    - test_sz_eq
    - Botan::TLS::Session_Manager_SQLite::remove
    - Botan_Tests::Test::temp_file_name
    - auto::value
    - auto::id
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_sqlite()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:993,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:998,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1002,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_Stateless>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1006,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1007,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1012,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1013,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1019,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1019,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1022,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1023,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1029,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1030,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1034,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1034,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1035,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1035,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1037,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1039,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1039,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1048,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1050,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1051,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1051,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1052,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1052,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1054,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1055,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1057,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1057,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1061,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1061,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1062,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1075,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1077,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1078,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1078,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1080,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1081,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1081,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1085,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1086,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1086,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1088,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1089,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1089,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1093,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1095,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1095,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1098,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1098,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1099,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1099,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1101,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1102,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1102,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1113,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1117,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1118,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1118,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1121,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1123,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1124,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1128,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1129,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1130,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1130,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1131,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1144,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1146,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1147,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1148,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1149,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1150,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1153,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1156,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1158,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1160,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1163
    functionName: Botan_Tests::tls_session_manager_expiry
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - auto::c_str
    - Botan_Tests::random_id
    - Botan::fmt
    - test_is_true
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::server_info
    - Session_Manager_Policy::maximum_session_tickets_per_client_hello
    - ticket
    - Session_Manager_Policy::set_allow_session_reuse
    - auto::find
    - auto::size
    - auto::choose_from_offered_tickets
    - Botan_Tests::default_session
    - is_id
    - test_bin_eq
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - test_u16_eq
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - auto::remove_all
    - require
    - auto::retrieve
    - auto::empty
    - Session_Manager_Callbacks::tick
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - version
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - auto::has_value
    - Session_Manager_Policy::set_session_limit
    - id
    - Botan_Tests::CHECK
    - std::make_unique<Botan::TLS::Session_Manager_Stateless>
    - std::vector::push_back
    - test_sz_eq
    - Botan_Tests::Test::temp_file_name
    - std::vector::reserve
    - CHECK_all
    - factory
    - auto::store
    - auto::establish
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> tls_session_manager_expiry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::Test_Credentials_Manager::session_ticket_key
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Other_Test_Credentials_Manager::session_ticket_key
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*record*/, std::span<const uint8_t>
      /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*summary*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:83,1
    - Dst: std::chrono::hours
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_current_timestamp
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::hours
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point tls_current_timestamp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Session_Manager_Callbacks::tick
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::Session_Manager_Policy::session_ticket_lifetime
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::minutes
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds session_ticket_lifetime() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Session_Manager_Policy::reuse_session_tickets
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool reuse_session_tickets() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Session_Manager_Policy::maximum_session_tickets_per_client_hello
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t maximum_session_tickets_per_client_hello() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_Tests::Session_Manager_Policy::set_session_limit
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_session_limit(size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::Session_Manager_Policy::set_allow_session_reuse
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_allow_session_reuse(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Botan_Tests::random_id
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 8
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_id(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: Botan_Tests::random_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 10
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_ticket(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: Botan_Tests::random_opaque_handle
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 2
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_opaque_handle(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: Botan_Tests::server_info
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Botan::TLS::Server_Information
    signature: Botan::TLS::Server_Information & server_info()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:129,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:130,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:134,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:137,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:139,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:143,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:144,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - side
    - ' cbs'
    argTypes:
    - Botan::TLS::Connection_Side
    - Botan::TLS::Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 149
    functionName: Botan_Tests::default_session
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 12
    functionsReached:
    - tls_current_timestamp
    - Botan_CLI::Timer::seconds
    - TestSession::TestSession
    - is_pre_tls_13
    - Botan_Tests::server_info
    - Test_Error
    - Botan::TLS::Ciphersuite::from_name
    linkageType: ''
    returnType: decltype(auto)
    signature: "decltype(auto) default_session(Botan::TLS::Connection_Side side,\n
      \                              Botan::TLS::Callbacks& cbs,\n                               Botan::TLS::Protocol_Version
      version = Botan::TLS::Protocol_Version::TLS_V12)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:154,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:156,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:166,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:170,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:173,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:182,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:182,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:183,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:183,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:185,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:185,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:190,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:194,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:194,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:195,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:195,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:196,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:196,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:198,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:202,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:205,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:205,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:206,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:206,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:207,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:207,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:216,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:216,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:220,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:223,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:223,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:226,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:229,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:229,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:232,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:235,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:240,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:240,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:241,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:241,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:244,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:249,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:249,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:255,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:255,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:256,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:256,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:257,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:257,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:260,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:263,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:266,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:268,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:268,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:279,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:282,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:287,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:287,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:288,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:288,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:299,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:303,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:306,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:315,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:316,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:317,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:320,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:320,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:321,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:321,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:327,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Session_Ticket::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:331,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:331,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:334,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:337,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:337,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:341,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:341,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:343,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:352,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:355,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:355,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:362,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:363,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:363,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:364,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:365,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:365,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:369,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 386
    functionName: Botan_Tests::test_session_manager_in_memory
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_id
    - test_is_true
    - Botan::TLS::Session_Ticket::get
    - Botan_Tests::server_info
    - handle::ticket
    - Botan::TLS::Session_Manager_In_Memory::find
    - std::optional::emplace
    - Botan::TLS::Session_Manager_In_Memory::store
    - std::optional::find
    - auto::size
    - Botan_Tests::default_session
    - auto::ciphersuite_code
    - auto::ticket
    - test_bin_eq
    - handle::id
    - auto::random_vec
    - std::optional::establish
    - test_u16_eq
    - Botan::TLS::Opaque_Session_Handle
    - Botan_Tests::random_ticket
    - session::ciphersuite_code
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - session::version
    - require
    - Botan::TLS::Session_Manager_In_Memory::remove
    - std::optional::retrieve
    - auto::has_value
    - Botan::TLS::Session_Manager_In_Memory::retrieve
    - std::optional::capacity
    - auto::version
    - Botan_Tests::CHECK
    - std::optional::remove_all
    - std::optional::store
    - Botan::TLS::Session_Manager_In_Memory::establish
    - std::vector::push_back
    - test_sz_eq
    - std::vector::reserve
    - std::optional::remove
    - Botan::TLS::Session_Ticket
    - auto::id
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_in_memory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:393,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:398,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:399,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:401,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:406,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:408,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:409,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:412,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:414,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:418,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:419,1
    - Dst: Botan::TLS::PskIdentity::PskIdentity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:427,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:431,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:433,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:434,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:435,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:437,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:453,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:459,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:462,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:465,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:470,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:478,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:481,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:487,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:493,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:498,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:506,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:506,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:515,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:517,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:521,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:522,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:522,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:523,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:524,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:524,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 539
    functionName: Botan_Tests::test_session_manager_choose_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_is_true
    - Botan_Tests::server_info
    - ticket
    - tls_current_timestamp
    - std::vector
    - Botan_Tests::default_session
    - Botan_CLI::Timer::seconds
    - test_u16_eq
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - require
    - Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
    - begin
    - Botan::TLS::Session_Manager_Stateless::establish
    - is_pre_tls_13
    - auto::has_value
    - Botan::TLS::PskIdentity::PskIdentity
    - Botan::TLS::Ciphersuite::from_name
    - id
    - Botan_Tests::CHECK
    - std::vector::push_back
    - Botan::TLS::Session_Manager_In_Memory::establish
    - Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
    - TestSession::TestSession
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_choose_ticket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:542,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:544,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:552,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:554,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:554,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:555,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:555,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:563,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:563,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:567,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:571,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:571,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:573,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:573,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:576,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:579,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:579,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:593,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:594,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:594,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:597,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:599,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:599,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:602,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: auto::opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:606,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:608,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:608,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:616,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:617,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:617,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:618,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:619,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:619,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:625,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:628,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:631,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan_Tests::random_opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan::TLS::Session_Manager_Stateless::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:642,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:642,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:648,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:648,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:655,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:656,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:658,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:658,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:664,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:664,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 668
    functionName: Botan_Tests::test_session_manager_stateless
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_id
    - test_is_true
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - test_u64_eq
    - auto::opaque_handle
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - auto::is_ticket
    - std::chrono::duration_cast<std::chrono::seconds>
    - require
    - Botan::TLS::Session_Manager_Stateless::establish
    - auto::has_value
    - Botan::TLS::Session_Manager_Stateless::remove
    - Botan::TLS::Session_Manager_Stateless::remove_all
    - Botan_Tests::random_opaque_handle
    - Botan_Tests::CHECK
    - auto::start_time
    - Botan::TLS::Session_Manager_Stateless::retrieve
    - test_sz_eq
    - Botan::TLS::Session_Manager_Stateless::emits_session_tickets
    - Botan::TLS::Session_Manager_Stateless::store
    - test_throws
    - Botan::TLS::Session_Manager_Stateless::find
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_stateless()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:671,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:673,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:682,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:686,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:691,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:692,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:703,1
    - Dst: stateful_manager_factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:703,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:706,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:713,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:714,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:716,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:721,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:722,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:722,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:730,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:730,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:736,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:739,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:740,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:742,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:743,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:744,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:745,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:761,1
    - Dst: std::make_shared<Empty_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:762,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:764,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:765,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:767,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:767,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 772
    functionName: Botan_Tests::test_session_manager_hybrid
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - Botan::fmt
    - test_is_true
    - auto::emits_session_tickets
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - stateful_manager_factory
    - std::make_shared<Empty_Credentials_Manager>
    - Botan_Tests::default_session
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::Test::new_shared_rng
    - auto::is_ticket
    - Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    - require
    - auto::retrieve
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - make_manager
    - auto::has_value
    - auto::is_id
    - Botan_Tests::CHECK
    - std::vector::push_back
    - Botan_Tests::Test::temp_file_name
    - CHECK_all
    - auto::underlying_stateful_manager
    - auto::establish
    - Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_hybrid()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file_as_temporary_copy
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:780,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:781,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 784
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::Test::data_file_as_temporary_copy
    - empty
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(const std::string& db_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 792
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_Session_Manager::remove
    - empty
    linkageType: ''
    returnType: void
    signature: void ~Temporary_Database_File()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 794
    functionName: '& get() const'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 796
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(const Temporary_Database_File&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 797
    functionName: '& operator=(const Temporary_Database_File&)'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Temporary_Database_File
    signature: Temporary_Database_File & operator=(const Temporary_Database_File&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 798
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(Temporary_Database_File&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 799
    functionName: '& operator=(Temporary_Database_File&&)'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Temporary_Database_File
    signature: Temporary_Database_File & operator=(Temporary_Database_File&&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:804,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:809,1
    - Dst: Temporary_Database_File::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:818,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:820,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:821,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:822,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:822,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:827,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:828,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:829,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:829,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:834,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:837,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:839,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:839,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:847,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:847,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:850,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:853,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:854,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:856,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:856,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:857,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:857,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:859,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:859,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:861,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:861,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:862,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:862,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:863,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:863,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:869,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:870,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:872,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:872,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:873,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:873,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:875,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:876,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:876,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:879,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:879,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:890,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:890,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:894,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:897,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:902,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:906,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:910,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:911,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:913,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:913,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:916,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:916,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:926,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:929,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:929,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:930,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:930,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:934,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:934,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:942,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:942,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:952,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:955,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:955,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:956,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:956,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:963,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:963,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:964,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:964,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:965,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:965,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:967,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:968,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:968,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:969,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:969,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:975,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:984,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:984,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 990
    functionName: Botan_Tests::test_session_manager_sqlite
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session_Manager_SQLite::remove_all
    - Botan_Tests::random_id
    - Botan::TLS::Session_ID
    - test_is_true
    - is_ticket
    - Botan::TLS::Session_Manager_SQLite::find
    - Botan_Tests::server_info
    - Botan::TLS::Server_Information
    - Botan::TLS::Session_Manager_SQLite::store
    - Botan::hex_decode
    - ticket
    - auto::size
    - Botan_Tests::default_session
    - auto::ciphersuite_code
    - is_id
    - test_bin_eq
    - Temporary_Database_File::get
    - test_u16_eq
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - require
    - Session_Manager_Callbacks::tick
    - Botan::TLS::Session_Manager_SQLite::retrieve
    - auto::has_value
    - Botan::TLS::Session_Manager_SQLite::establish
    - auto::is_id
    - id
    - auto::version
    - Botan_Tests::CHECK
    - test_sz_eq
    - Botan::TLS::Session_Manager_SQLite::remove
    - Botan_Tests::Test::temp_file_name
    - auto::value
    - auto::id
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_sqlite()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:993,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:998,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1002,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_Stateless>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1006,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1007,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1012,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1013,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1019,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1019,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1022,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1023,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1029,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1030,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1034,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1034,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1035,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1035,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1037,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1039,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1039,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1048,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1050,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1051,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1051,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1052,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1052,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1054,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1055,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1057,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1057,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1061,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1061,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1062,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1075,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1077,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1078,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1078,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1080,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1081,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1081,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1085,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1086,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1086,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1088,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1089,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1089,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1093,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1095,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1095,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1098,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1098,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1099,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1099,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1101,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1102,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1102,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1113,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1117,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1118,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1118,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1121,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1123,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1124,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1128,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1129,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1130,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1130,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1131,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1144,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1146,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1147,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1148,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1149,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1150,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1153,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1156,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1158,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1160,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1163
    functionName: Botan_Tests::tls_session_manager_expiry
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - auto::c_str
    - Botan_Tests::random_id
    - Botan::fmt
    - test_is_true
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::server_info
    - Session_Manager_Policy::maximum_session_tickets_per_client_hello
    - ticket
    - Session_Manager_Policy::set_allow_session_reuse
    - auto::find
    - auto::size
    - auto::choose_from_offered_tickets
    - Botan_Tests::default_session
    - is_id
    - test_bin_eq
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - test_u16_eq
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - auto::remove_all
    - require
    - auto::retrieve
    - auto::empty
    - Session_Manager_Callbacks::tick
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - version
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - auto::has_value
    - Session_Manager_Policy::set_session_limit
    - id
    - Botan_Tests::CHECK
    - std::make_unique<Botan::TLS::Session_Manager_Stateless>
    - std::vector::push_back
    - test_sz_eq
    - Botan_Tests::Test::temp_file_name
    - std::vector::reserve
    - CHECK_all
    - factory
    - auto::store
    - auto::establish
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> tls_session_manager_expiry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::Test_Credentials_Manager::session_ticket_key
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Other_Test_Credentials_Manager::session_ticket_key
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*record*/, std::span<const uint8_t>
      /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*summary*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:83,1
    - Dst: std::chrono::hours
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Session_Manager_Callbacks::tls_current_timestamp
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::hours
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point tls_current_timestamp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Session_Manager_Callbacks::tick
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tick()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::Session_Manager_Policy::session_ticket_lifetime
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::minutes
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds session_ticket_lifetime() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Session_Manager_Policy::reuse_session_tickets
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool reuse_session_tickets() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Session_Manager_Policy::maximum_session_tickets_per_client_hello
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t maximum_session_tickets_per_client_hello() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_Tests::Session_Manager_Policy::set_session_limit
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_session_limit(size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::Session_Manager_Policy::set_allow_session_reuse
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_allow_session_reuse(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Botan_Tests::random_id
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 12
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_id(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: Botan_Tests::random_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 15
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_ticket(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: Botan_Tests::random_opaque_handle
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 3
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) random_opaque_handle(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: Botan_Tests::server_info
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: Botan::TLS::Server_Information
    signature: Botan::TLS::Server_Information & server_info()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:129,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:130,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:134,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:137,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:139,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:143,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:144,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - side
    - ' cbs'
    argTypes:
    - Botan::TLS::Connection_Side
    - Botan::TLS::Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 149
    functionName: Botan_Tests::default_session
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 18
    functionsReached:
    - tls_current_timestamp
    - Botan_CLI::Timer::seconds
    - TestSession::TestSession
    - is_pre_tls_13
    - Botan_Tests::server_info
    - Test_Error
    - Botan::TLS::Ciphersuite::from_name
    linkageType: ''
    returnType: decltype(auto)
    signature: "decltype(auto) default_session(Botan::TLS::Connection_Side side,\n
      \                              Botan::TLS::Callbacks& cbs,\n                               Botan::TLS::Protocol_Version
      version = Botan::TLS::Protocol_Version::TLS_V12)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:154,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:156,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:166,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:170,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:173,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:182,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:182,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:183,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:183,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:185,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:185,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:190,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:194,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:194,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:195,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:195,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:196,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:196,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:198,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:202,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:205,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:205,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:206,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:206,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:207,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:207,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:216,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:216,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:220,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:223,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:223,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:226,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:229,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:229,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:232,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:235,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:240,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:240,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:241,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:241,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:244,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:249,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:249,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:255,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:255,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:256,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:256,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:257,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:257,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:260,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:263,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:266,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:268,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:268,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:279,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:282,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:287,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:287,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:288,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:288,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:291,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:294,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:296,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:299,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:303,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:306,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:308,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:315,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:316,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:317,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:320,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:320,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:321,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:321,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:325,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:327,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Session_Ticket::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:331,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:331,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:334,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:337,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:337,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:341,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:341,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:343,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:352,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:355,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:355,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:362,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:363,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:363,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:364,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:365,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:365,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:369,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:378,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 386
    functionName: Botan_Tests::test_session_manager_in_memory
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_id
    - test_is_true
    - Botan::TLS::Session_Ticket::get
    - Botan_Tests::server_info
    - handle::ticket
    - Botan::TLS::Session_Manager_In_Memory::find
    - std::optional::emplace
    - Botan::TLS::Session_Manager_In_Memory::store
    - std::optional::find
    - auto::size
    - Botan_Tests::default_session
    - auto::ciphersuite_code
    - auto::ticket
    - test_bin_eq
    - handle::id
    - auto::random_vec
    - std::optional::establish
    - test_u16_eq
    - Botan::TLS::Opaque_Session_Handle
    - Botan_Tests::random_ticket
    - session::ciphersuite_code
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - session::version
    - require
    - Botan::TLS::Session_Manager_In_Memory::remove
    - std::optional::retrieve
    - auto::has_value
    - Botan::TLS::Session_Manager_In_Memory::retrieve
    - std::optional::capacity
    - auto::version
    - Botan_Tests::CHECK
    - std::optional::remove_all
    - std::optional::store
    - Botan::TLS::Session_Manager_In_Memory::establish
    - std::vector::push_back
    - test_sz_eq
    - std::vector::reserve
    - std::optional::remove
    - Botan::TLS::Session_Ticket
    - auto::id
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_in_memory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:393,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:398,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:399,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:401,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:406,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:408,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:409,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:412,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:414,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:418,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:419,1
    - Dst: Botan::TLS::PskIdentity::PskIdentity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:427,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:431,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:433,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:434,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:435,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:437,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:446,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:447,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:453,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:459,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:462,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:465,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:470,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:474,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:478,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:481,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:487,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:493,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:498,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:502,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:505,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:506,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:506,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:515,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:517,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:521,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:522,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:522,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:523,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:524,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:524,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:526,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 539
    functionName: Botan_Tests::test_session_manager_choose_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_is_true
    - Botan_Tests::server_info
    - ticket
    - tls_current_timestamp
    - std::vector
    - Botan_Tests::default_session
    - Botan_CLI::Timer::seconds
    - test_u16_eq
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - require
    - Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
    - begin
    - Botan::TLS::Session_Manager_Stateless::establish
    - is_pre_tls_13
    - auto::has_value
    - Botan::TLS::PskIdentity::PskIdentity
    - Botan::TLS::Ciphersuite::from_name
    - id
    - Botan_Tests::CHECK
    - std::vector::push_back
    - Botan::TLS::Session_Manager_In_Memory::establish
    - Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
    - TestSession::TestSession
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_choose_ticket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:542,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:544,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:552,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:554,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:554,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:555,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:555,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:556,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:563,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:563,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:567,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:571,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:571,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:573,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:573,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:576,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:579,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:579,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:580,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:591,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:593,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:594,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:594,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:597,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:599,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:599,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:600,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:602,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: auto::opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:606,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:608,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:608,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:609,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:616,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:617,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:617,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:618,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:619,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:619,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:620,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:625,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:626,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:628,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:631,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan_Tests::random_opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan::TLS::Session_Manager_Stateless::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:637,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:642,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:642,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:643,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:645,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:648,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:648,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:655,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:656,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:657,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:658,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:658,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:664,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:664,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 668
    functionName: Botan_Tests::test_session_manager_stateless
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_id
    - test_is_true
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - test_u64_eq
    - auto::opaque_handle
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - auto::is_ticket
    - std::chrono::duration_cast<std::chrono::seconds>
    - require
    - Botan::TLS::Session_Manager_Stateless::establish
    - auto::has_value
    - Botan::TLS::Session_Manager_Stateless::remove
    - Botan::TLS::Session_Manager_Stateless::remove_all
    - Botan_Tests::random_opaque_handle
    - Botan_Tests::CHECK
    - auto::start_time
    - Botan::TLS::Session_Manager_Stateless::retrieve
    - test_sz_eq
    - Botan::TLS::Session_Manager_Stateless::emits_session_tickets
    - Botan::TLS::Session_Manager_Stateless::store
    - test_throws
    - Botan::TLS::Session_Manager_Stateless::find
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_stateless()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:671,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:673,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:682,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:686,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:691,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:692,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:703,1
    - Dst: stateful_manager_factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:703,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:706,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:708,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:713,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:714,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:716,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:719,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:721,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:722,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:722,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:728,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:730,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:730,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:733,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:736,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:739,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:740,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:742,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:743,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:744,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:745,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:753,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:754,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:755,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:761,1
    - Dst: std::make_shared<Empty_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:762,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:764,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:765,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:767,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:767,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 772
    functionName: Botan_Tests::test_session_manager_hybrid
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - Botan::fmt
    - test_is_true
    - auto::emits_session_tickets
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - stateful_manager_factory
    - std::make_shared<Empty_Credentials_Manager>
    - Botan_Tests::default_session
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::Test::new_shared_rng
    - auto::is_ticket
    - Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    - require
    - auto::retrieve
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - make_manager
    - auto::has_value
    - auto::is_id
    - Botan_Tests::CHECK
    - std::vector::push_back
    - Botan_Tests::Test::temp_file_name
    - CHECK_all
    - auto::underlying_stateful_manager
    - auto::establish
    - Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_hybrid()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file_as_temporary_copy
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:780,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:781,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 784
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::Test::data_file_as_temporary_copy
    - empty
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(const std::string& db_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 792
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_Session_Manager::remove
    - empty
    linkageType: ''
    returnType: void
    signature: void ~Temporary_Database_File()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 794
    functionName: '& get() const'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 796
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(const Temporary_Database_File&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 797
    functionName: '& operator=(const Temporary_Database_File&)'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Temporary_Database_File
    signature: Temporary_Database_File & operator=(const Temporary_Database_File&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 798
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Temporary_Database_File(Temporary_Database_File&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 799
    functionName: '& operator=(Temporary_Database_File&&)'
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Temporary_Database_File
    signature: Temporary_Database_File & operator=(Temporary_Database_File&&)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:804,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:809,1
    - Dst: Temporary_Database_File::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:818,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:820,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:821,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:822,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:822,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:827,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:828,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:829,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:829,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:834,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:837,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:839,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:839,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:847,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:847,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:850,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:853,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:854,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:856,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:856,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:857,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:857,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:859,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:859,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:861,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:861,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:862,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:862,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:863,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:863,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:869,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:870,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:872,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:872,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:873,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:873,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:875,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:876,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:876,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:879,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:879,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:890,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:890,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:894,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:897,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:899,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:902,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:906,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:910,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:911,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:913,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:913,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:916,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:916,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:926,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:929,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:929,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:930,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:930,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:931,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:932,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:934,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:934,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:942,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:942,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:952,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:955,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:955,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:956,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:956,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:963,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:963,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:964,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:964,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:965,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:965,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:967,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:968,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:968,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:969,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:969,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:975,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:981,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:984,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:984,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 990
    functionName: Botan_Tests::test_session_manager_sqlite
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session_Manager_SQLite::remove_all
    - Botan_Tests::random_id
    - Botan::TLS::Session_ID
    - test_is_true
    - is_ticket
    - Botan::TLS::Session_Manager_SQLite::find
    - Botan_Tests::server_info
    - Botan::TLS::Server_Information
    - Botan::TLS::Session_Manager_SQLite::store
    - Botan::hex_decode
    - ticket
    - auto::size
    - Botan_Tests::default_session
    - auto::ciphersuite_code
    - is_id
    - test_bin_eq
    - Temporary_Database_File::get
    - test_u16_eq
    - Botan_Tests::random_ticket
    - Botan_Tests::Test::new_shared_rng
    - require
    - Session_Manager_Callbacks::tick
    - Botan::TLS::Session_Manager_SQLite::retrieve
    - auto::has_value
    - Botan::TLS::Session_Manager_SQLite::establish
    - auto::is_id
    - id
    - auto::version
    - Botan_Tests::CHECK
    - test_sz_eq
    - Botan::TLS::Session_Manager_SQLite::remove
    - Botan_Tests::Test::temp_file_name
    - auto::value
    - auto::id
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_session_manager_sqlite()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:993,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:998,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1002,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_Stateless>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1006,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1007,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1012,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1013,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1019,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1019,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1022,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1023,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1024,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1029,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1030,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1034,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1034,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1035,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1035,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1036,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1037,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1039,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1039,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1048,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1050,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1051,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1051,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1052,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1052,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1054,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1055,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1057,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1057,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1061,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1061,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1062,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1075,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1077,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1078,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1078,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1080,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1081,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1081,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1085,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1086,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1086,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1088,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1089,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1089,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1093,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1095,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1095,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1098,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1098,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1099,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1099,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1100,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1101,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1102,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1102,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1113,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1117,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1118,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1118,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1121,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1123,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1124,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1128,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1129,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1130,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1130,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1131,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1144,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1146,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1147,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1148,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1149,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1150,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1151,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1153,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1156,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1158,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1160,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1163
    functionName: Botan_Tests::tls_session_manager_expiry
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - auto::c_str
    - Botan_Tests::random_id
    - Botan::fmt
    - test_is_true
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::server_info
    - Session_Manager_Policy::maximum_session_tickets_per_client_hello
    - ticket
    - Session_Manager_Policy::set_allow_session_reuse
    - auto::find
    - auto::size
    - auto::choose_from_offered_tickets
    - Botan_Tests::default_session
    - is_id
    - test_bin_eq
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - test_u16_eq
    - std::make_shared<Test_Credentials_Manager>
    - Botan_Tests::random_ticket
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - auto::remove_all
    - require
    - auto::retrieve
    - auto::empty
    - Session_Manager_Callbacks::tick
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - version
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - auto::has_value
    - Session_Manager_Policy::set_session_limit
    - id
    - Botan_Tests::CHECK
    - std::make_unique<Botan::TLS::Session_Manager_Stateless>
    - std::vector::push_back
    - test_sz_eq
    - Botan_Tests::Test::temp_file_name
    - std::vector::reserve
    - CHECK_all
    - factory
    - auto::store
    - auto::establish
    - auto::value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> tls_session_manager_expiry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::HMAC_DRBG_Tests::HMAC_DRBG_Tests
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HMAC_DRBG_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:36,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:37,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_kat.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_kat.cpp:44,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:54,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: Botan_Tests::HMAC_DRBG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::randomize_with_input
    - std::move
    - std::vector::size
    - get_opt_bin
    - auto::initialize_with
    - std::vector::data
    - Test::Result::test_bin_eq
    - std::make_unique<Botan::HMAC_DRBG>
    - auto::add_entropy
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_Tests::ChaCha_RNG_Tests::ChaCha_RNG_Tests
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChaCha_RNG_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:77,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:78,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:79,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:81,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:82,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: Botan::ChaCha_RNG::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: Botan::ChaCha_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:92,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 99
    functionName: Botan_Tests::ChaCha_RNG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::randomize_with_input
    - std::vector::data
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::ChaCha_RNG::initialize_with
    - Botan::ChaCha_RNG::add_entropy
    - Botan::ChaCha_RNG::ChaCha_RNG
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::HMAC_DRBG_Tests::HMAC_DRBG_Tests
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HMAC_DRBG_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:36,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:37,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_kat.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_kat.cpp:44,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:54,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: Botan_Tests::HMAC_DRBG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::randomize_with_input
    - std::move
    - std::vector::size
    - get_opt_bin
    - auto::initialize_with
    - std::vector::data
    - Test::Result::test_bin_eq
    - std::make_unique<Botan::HMAC_DRBG>
    - auto::add_entropy
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_Tests::ChaCha_RNG_Tests::ChaCha_RNG_Tests
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChaCha_RNG_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:77,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:78,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:79,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:81,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:82,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: Botan::ChaCha_RNG::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: Botan::ChaCha_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:92,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 99
    functionName: Botan_Tests::ChaCha_RNG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::randomize_with_input
    - std::vector::data
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::ChaCha_RNG::initialize_with
    - Botan::ChaCha_RNG::add_entropy
    - Botan::ChaCha_RNG::ChaCha_RNG
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::HMAC_DRBG_Tests::HMAC_DRBG_Tests
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HMAC_DRBG_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:36,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:37,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_kat.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_kat.cpp:44,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:54,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: Botan_Tests::HMAC_DRBG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::randomize_with_input
    - std::move
    - std::vector::size
    - get_opt_bin
    - auto::initialize_with
    - std::vector::data
    - Test::Result::test_bin_eq
    - std::make_unique<Botan::HMAC_DRBG>
    - auto::add_entropy
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_Tests::ChaCha_RNG_Tests::ChaCha_RNG_Tests
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChaCha_RNG_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:77,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:78,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:79,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:81,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:82,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: Botan::ChaCha_RNG::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: Botan::ChaCha_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:92,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 99
    functionName: Botan_Tests::ChaCha_RNG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::randomize_with_input
    - std::vector::data
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::ChaCha_RNG::initialize_with
    - Botan::ChaCha_RNG::add_entropy
    - Botan::ChaCha_RNG::ChaCha_RNG
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::HMAC_DRBG_Tests::HMAC_DRBG_Tests
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HMAC_DRBG_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:36,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:37,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_kat.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_kat.cpp:44,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:49,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:54,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:56,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:57,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: Botan_Tests::HMAC_DRBG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::randomize_with_input
    - std::move
    - std::vector::size
    - get_opt_bin
    - auto::initialize_with
    - std::vector::data
    - Test::Result::test_bin_eq
    - std::make_unique<Botan::HMAC_DRBG>
    - auto::add_entropy
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_Tests::ChaCha_RNG_Tests::ChaCha_RNG_Tests
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ChaCha_RNG_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:77,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:78,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:79,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:81,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:82,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: Botan::ChaCha_RNG::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:87,1
    - Dst: Botan::ChaCha_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:92,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:94,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:95,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 99
    functionName: Botan_Tests::ChaCha_RNG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::randomize_with_input
    - std::vector::data
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::ChaCha_RNG::initialize_with
    - Botan::ChaCha_RNG::add_entropy
    - Botan::ChaCha_RNG::ChaCha_RNG
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::ECC_Basepoint_Mul_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Basepoint_Mul_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:35,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:37,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:44,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:44,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:48,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:48,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:52,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:52,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:53,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 56
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::get_base_point
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_AffinePoint::generator
    - Botan::EC_Point::encode
    - Botan::EC_Group::from_name
    - auto::serialize_uncompressed
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - Botan_Tests::ECC_Basepoint_Mul_Tests::rng
    - auto::OS2ECP
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::ECC_Varpoint_Mul_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Varpoint_Mul_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:72,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:74,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:76,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:80,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:80,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:85,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:85,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:92,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 95
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_compressed
    - auto::negate
    - Botan::EC_Point::encode
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - get_req_bn
    - Botan_Tests::ECC_Varpoint_Mul_Tests::rng
    - Botan::EC_AffinePoint::deserialize
    - auto::OS2ECP
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::ECC_Mul2_Tests::ECC_Mul2_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Mul2_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: Botan_Tests::ECC_Mul2_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:111,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:123,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:126,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:134,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:134,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:137,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:141,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:141,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:144,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:145,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:146,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:147,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:149,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:150,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:151,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 155
    functionName: Botan_Tests::ECC_Mul2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_compressed
    - auto::negate
    - mul
    - Botan::EC_AffinePoint::deserialize
    - check_px_qy
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::mul_px_qy
    - get_req_bn
    - Test::Result::test_failure
    - rng
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:165,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:173,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:173,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:174,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:174,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:176,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:176,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:180,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:182,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:187,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:187,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:188,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:194,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:196,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:198,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:199,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:200,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:201,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:202,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:203,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:203,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:204,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:208,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:208,1
    - Dst: auto::zeroize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:209,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 216
    functionName: Botan_Tests::ECC_Mul2_Inf_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::fmt
    - Test::Result::test_success
    - Botan::EC_Scalar::random
    - auto::negate
    - std::vector::push_back
    - auto::zeroize
    - Botan::EC_AffinePoint::generator
    - Botan::EC_AffinePoint::identity
    - check_px_qy
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::mul_px_qy
    - auto::mul
    - auto::add
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - rng
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:226,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:229,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:231,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:232,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:232,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:241,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:247,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:249,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:249,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:250,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:250,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:251,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:251,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:255,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:255,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:256,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:256,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:257,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:257,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 264
    functionName: Botan_Tests::ECC_Point_Addition_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::EC_Scalar::random
    - auto::negate
    - check_expr_is_g
    - std::vector::push_back
    - Botan::EC_AffinePoint::generator
    - serialize_uncompressed
    - Botan::EC_AffinePoint::identity
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - auto::mul
    - auto::add
    - Botan::EC_Group::known_named_groups
    - rng
    - auto::serialize_uncompressed
    - auto::is_identity
    - Test::Result::test_is_true
    - Test::Result::test_is_false
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:274,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:276,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:277,1
    - Dst: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:280,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 284
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - fuzzer_rng
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:290,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:294,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:296,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:300,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:300,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:301,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:305,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:305,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:308,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:308,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:309,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:309,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:310,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:310,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:313,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:313,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:316,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:316,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:317,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:317,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:322,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:328,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:329,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:330,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:335,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:338,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:339,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:340,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:340,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:344,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:345,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:362,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:363,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:364,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:373,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:380,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:381,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:381,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:389,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:391,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:393,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:393,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:395,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:397,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 3
    argNames:
    - ' result'
    - ' group'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 402
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 1
    functionsReached:
    - test_is_true
    - serialize
    - get_order_bytes
    - Botan::BigInt::from_bytes
    - auto::is_zero
    - test_is_false
    - Botan::EC_Scalar::one
    - auto::size
    - auto::to_bigint
    - auto::invert_vartime
    - test_bin_eq
    - BOTAN_ASSERT_NOMSG
    - end_timer
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::from_bytes_mod_order
    - test_sz_lte
    - randomize
    - get_order
    - auto::negate
    - std::vector<uint8_t>
    - auto::serialize
    - auto::invert
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: void
    signature: "void test_scalar_arith(Test::Result& result,\n                             const
      Botan::EC_Group& group,\n                             Botan::RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::ECC_Basepoint_Mul_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Basepoint_Mul_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:35,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:37,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:44,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:44,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:48,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:48,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:52,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:52,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:53,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 56
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::get_base_point
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_AffinePoint::generator
    - Botan::EC_Point::encode
    - Botan::EC_Group::from_name
    - auto::serialize_uncompressed
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - Botan_Tests::ECC_Basepoint_Mul_Tests::rng
    - auto::OS2ECP
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::ECC_Varpoint_Mul_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Varpoint_Mul_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:72,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:74,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:76,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:80,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:80,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:85,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:85,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:92,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 95
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_compressed
    - auto::negate
    - Botan::EC_Point::encode
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - get_req_bn
    - Botan_Tests::ECC_Varpoint_Mul_Tests::rng
    - Botan::EC_AffinePoint::deserialize
    - auto::OS2ECP
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::ECC_Mul2_Tests::ECC_Mul2_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Mul2_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: Botan_Tests::ECC_Mul2_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:111,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:123,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:126,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:134,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:134,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:137,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:141,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:141,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:144,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:145,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:146,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:147,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:149,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:150,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:151,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 155
    functionName: Botan_Tests::ECC_Mul2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_compressed
    - auto::negate
    - mul
    - Botan::EC_AffinePoint::deserialize
    - check_px_qy
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::mul_px_qy
    - get_req_bn
    - Test::Result::test_failure
    - rng
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:165,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:173,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:173,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:174,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:174,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:176,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:176,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:180,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:182,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:187,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:187,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:188,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:194,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:196,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:198,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:199,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:200,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:201,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:202,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:203,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:203,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:204,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:208,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:208,1
    - Dst: auto::zeroize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:209,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 216
    functionName: Botan_Tests::ECC_Mul2_Inf_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::fmt
    - Test::Result::test_success
    - Botan::EC_Scalar::random
    - auto::negate
    - std::vector::push_back
    - auto::zeroize
    - Botan::EC_AffinePoint::generator
    - Botan::EC_AffinePoint::identity
    - check_px_qy
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::mul_px_qy
    - auto::mul
    - auto::add
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - rng
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:226,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:229,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:231,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:232,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:232,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:241,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:247,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:249,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:249,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:250,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:250,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:251,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:251,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:255,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:255,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:256,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:256,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:257,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:257,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 264
    functionName: Botan_Tests::ECC_Point_Addition_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::EC_Scalar::random
    - auto::negate
    - check_expr_is_g
    - std::vector::push_back
    - Botan::EC_AffinePoint::generator
    - serialize_uncompressed
    - Botan::EC_AffinePoint::identity
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - auto::mul
    - auto::add
    - Botan::EC_Group::known_named_groups
    - rng
    - auto::serialize_uncompressed
    - auto::is_identity
    - Test::Result::test_is_true
    - Test::Result::test_is_false
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:274,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:276,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:277,1
    - Dst: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:280,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 284
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - fuzzer_rng
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:290,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:294,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:296,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:300,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:300,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:301,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:305,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:305,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:308,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:308,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:309,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:309,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:310,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:310,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:313,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:313,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:316,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:316,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:317,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:317,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:322,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:328,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:329,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:330,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:335,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:338,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:339,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:340,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:340,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:344,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:345,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:362,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:363,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:364,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:373,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:380,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:381,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:381,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:389,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:391,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:393,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:393,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:395,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:397,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 3
    argNames:
    - ' result'
    - ' group'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 402
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 2
    functionsReached:
    - test_is_true
    - serialize
    - get_order_bytes
    - Botan::BigInt::from_bytes
    - auto::is_zero
    - test_is_false
    - Botan::EC_Scalar::one
    - auto::size
    - auto::to_bigint
    - auto::invert_vartime
    - test_bin_eq
    - BOTAN_ASSERT_NOMSG
    - end_timer
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::from_bytes_mod_order
    - test_sz_lte
    - randomize
    - get_order
    - auto::negate
    - std::vector<uint8_t>
    - auto::serialize
    - auto::invert
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: void
    signature: "void test_scalar_arith(Test::Result& result,\n                             const
      Botan::EC_Group& group,\n                             Botan::RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::ECC_Basepoint_Mul_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Basepoint_Mul_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:35,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:37,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:44,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:44,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:48,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:48,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:52,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:52,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:53,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 56
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::get_base_point
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_AffinePoint::generator
    - Botan::EC_Point::encode
    - Botan::EC_Group::from_name
    - auto::serialize_uncompressed
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - Botan_Tests::ECC_Basepoint_Mul_Tests::rng
    - auto::OS2ECP
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::ECC_Varpoint_Mul_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Varpoint_Mul_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:72,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:74,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:76,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:80,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:80,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:85,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:85,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:92,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 95
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_compressed
    - auto::negate
    - Botan::EC_Point::encode
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - get_req_bn
    - Botan_Tests::ECC_Varpoint_Mul_Tests::rng
    - Botan::EC_AffinePoint::deserialize
    - auto::OS2ECP
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::ECC_Mul2_Tests::ECC_Mul2_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Mul2_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: Botan_Tests::ECC_Mul2_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:111,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:123,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:126,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:134,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:134,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:137,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:141,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:141,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:144,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:145,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:146,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:147,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:149,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:150,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:151,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 155
    functionName: Botan_Tests::ECC_Mul2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_compressed
    - auto::negate
    - mul
    - Botan::EC_AffinePoint::deserialize
    - check_px_qy
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::mul_px_qy
    - get_req_bn
    - Test::Result::test_failure
    - rng
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:165,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:173,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:173,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:174,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:174,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:176,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:176,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:180,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:182,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:187,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:187,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:188,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:194,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:196,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:198,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:199,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:200,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:201,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:202,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:203,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:203,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:204,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:208,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:208,1
    - Dst: auto::zeroize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:209,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 216
    functionName: Botan_Tests::ECC_Mul2_Inf_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::fmt
    - Test::Result::test_success
    - Botan::EC_Scalar::random
    - auto::negate
    - std::vector::push_back
    - auto::zeroize
    - Botan::EC_AffinePoint::generator
    - Botan::EC_AffinePoint::identity
    - check_px_qy
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::mul_px_qy
    - auto::mul
    - auto::add
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - rng
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:226,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:229,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:231,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:232,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:232,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:241,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:247,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:249,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:249,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:250,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:250,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:251,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:251,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:255,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:255,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:256,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:256,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:257,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:257,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 264
    functionName: Botan_Tests::ECC_Point_Addition_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::EC_Scalar::random
    - auto::negate
    - check_expr_is_g
    - std::vector::push_back
    - Botan::EC_AffinePoint::generator
    - serialize_uncompressed
    - Botan::EC_AffinePoint::identity
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - auto::mul
    - auto::add
    - Botan::EC_Group::known_named_groups
    - rng
    - auto::serialize_uncompressed
    - auto::is_identity
    - Test::Result::test_is_true
    - Test::Result::test_is_false
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:274,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:276,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:277,1
    - Dst: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:280,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 284
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - fuzzer_rng
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:290,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:294,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:296,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:300,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:300,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:301,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:305,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:305,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:308,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:308,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:309,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:309,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:310,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:310,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:313,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:313,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:316,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:316,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:317,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:317,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:322,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:328,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:329,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:330,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:335,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:338,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:339,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:340,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:340,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:344,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:345,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:362,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:363,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:364,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:373,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:380,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:381,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:381,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:389,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:391,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:393,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:393,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:395,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:397,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 3
    argNames:
    - ' result'
    - ' group'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 402
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 3
    functionsReached:
    - test_is_true
    - serialize
    - get_order_bytes
    - Botan::BigInt::from_bytes
    - auto::is_zero
    - test_is_false
    - Botan::EC_Scalar::one
    - auto::size
    - auto::to_bigint
    - auto::invert_vartime
    - test_bin_eq
    - BOTAN_ASSERT_NOMSG
    - end_timer
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::from_bytes_mod_order
    - test_sz_lte
    - randomize
    - get_order
    - auto::negate
    - std::vector<uint8_t>
    - auto::serialize
    - auto::invert
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: void
    signature: "void test_scalar_arith(Test::Result& result,\n                             const
      Botan::EC_Group& group,\n                             Botan::RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::ECC_Basepoint_Mul_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Basepoint_Mul_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:35,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:37,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:44,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:44,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:48,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:48,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:52,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:52,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:53,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 56
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::get_base_point
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_AffinePoint::generator
    - Botan::EC_Point::encode
    - Botan::EC_Group::from_name
    - auto::serialize_uncompressed
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - Botan_Tests::ECC_Basepoint_Mul_Tests::rng
    - auto::OS2ECP
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::ECC_Varpoint_Mul_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Varpoint_Mul_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:72,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:74,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:76,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:80,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:80,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:85,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:85,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:88,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:91,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:92,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 95
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_compressed
    - auto::negate
    - Botan::EC_Point::encode
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - get_req_bn
    - Botan_Tests::ECC_Varpoint_Mul_Tests::rng
    - Botan::EC_AffinePoint::deserialize
    - auto::OS2ECP
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_Tests::ECC_Mul2_Tests::ECC_Mul2_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Mul2_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: Botan_Tests::ECC_Mul2_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:111,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:123,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:126,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:134,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:134,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:137,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:141,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:141,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:144,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:145,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:146,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:147,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:149,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:150,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:151,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 155
    functionName: Botan_Tests::ECC_Mul2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_compressed
    - auto::negate
    - mul
    - Botan::EC_AffinePoint::deserialize
    - check_px_qy
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::mul_px_qy
    - get_req_bn
    - Test::Result::test_failure
    - rng
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:165,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:173,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:173,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:174,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:174,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:176,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:176,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:180,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:182,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:185,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:187,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:187,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:188,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:194,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:196,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:198,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:199,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:200,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:201,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:202,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:203,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:203,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:204,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:208,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:208,1
    - Dst: auto::zeroize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:209,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 216
    functionName: Botan_Tests::ECC_Mul2_Inf_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::fmt
    - Test::Result::test_success
    - Botan::EC_Scalar::random
    - auto::negate
    - std::vector::push_back
    - auto::zeroize
    - Botan::EC_AffinePoint::generator
    - Botan::EC_AffinePoint::identity
    - check_px_qy
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::mul_px_qy
    - auto::mul
    - auto::add
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - rng
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:226,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:229,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:231,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:232,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:232,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:235,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:241,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:244,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:247,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:249,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:249,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:250,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:250,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:251,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:251,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:252,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:253,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:255,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:255,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:256,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:256,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:257,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:257,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 264
    functionName: Botan_Tests::ECC_Point_Addition_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::EC_Scalar::random
    - auto::negate
    - check_expr_is_g
    - std::vector::push_back
    - Botan::EC_AffinePoint::generator
    - serialize_uncompressed
    - Botan::EC_AffinePoint::identity
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - auto::mul
    - auto::add
    - Botan::EC_Group::known_named_groups
    - rng
    - auto::serialize_uncompressed
    - auto::is_identity
    - Test::Result::test_is_true
    - Test::Result::test_is_false
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:274,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:276,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:277,1
    - Dst: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:280,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 284
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - fuzzer_rng
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:290,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:294,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:296,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:300,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:300,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:301,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:305,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:305,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:308,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:308,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:309,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:309,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:310,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:310,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:313,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:313,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:316,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:316,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:317,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:317,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:322,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:325,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:328,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:329,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:330,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:335,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:338,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:339,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:340,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:340,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:344,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:345,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:351,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:352,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:356,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:357,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:358,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:362,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:363,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:364,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:369,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:373,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:380,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:381,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:381,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:385,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:389,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:391,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:393,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:393,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:395,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:397,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:398,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 3
    argNames:
    - ' result'
    - ' group'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 402
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 4
    functionsReached:
    - test_is_true
    - serialize
    - get_order_bytes
    - Botan::BigInt::from_bytes
    - auto::is_zero
    - test_is_false
    - Botan::EC_Scalar::one
    - auto::size
    - auto::to_bigint
    - auto::invert_vartime
    - test_bin_eq
    - BOTAN_ASSERT_NOMSG
    - end_timer
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::from_bytes_mod_order
    - test_sz_lte
    - randomize
    - get_order
    - auto::negate
    - std::vector<uint8_t>
    - auto::serialize
    - auto::invert
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: void
    signature: "void test_scalar_arith(Test::Result& result,\n                             const
      Botan::EC_Group& group,\n                             Botan::RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::FPE_FE1_Tests::FPE_FE1_Tests
    functionSourceFile: /src/botan/src/tests/test_fpe.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FPE_FE1_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:24,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:26,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_fpe.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:28,1
    - Dst: Botan::FPE::fe1_encrypt
      Src: /src/botan/src/tests/test_fpe.cpp:32,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_fpe.cpp:34,1
    - Dst: Botan::FPE::fe1_decrypt
      Src: /src/botan/src/tests/test_fpe.cpp:36,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_fpe.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: Botan_Tests::FPE_FE1_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_fpe.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::FPE::fe1_decrypt
    - Botan::FPE::fe1_encrypt
    - Botan::SymmetricKey
    - get_req_bn
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::FPE_FE1_Tests::FPE_FE1_Tests
    functionSourceFile: /src/botan/src/tests/test_fpe.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FPE_FE1_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:24,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:26,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_fpe.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:28,1
    - Dst: Botan::FPE::fe1_encrypt
      Src: /src/botan/src/tests/test_fpe.cpp:32,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_fpe.cpp:34,1
    - Dst: Botan::FPE::fe1_decrypt
      Src: /src/botan/src/tests/test_fpe.cpp:36,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_fpe.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: Botan_Tests::FPE_FE1_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_fpe.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::FPE::fe1_decrypt
    - Botan::FPE::fe1_encrypt
    - Botan::SymmetricKey
    - get_req_bn
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::FPE_FE1_Tests::FPE_FE1_Tests
    functionSourceFile: /src/botan/src/tests/test_fpe.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FPE_FE1_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:24,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:26,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_fpe.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:28,1
    - Dst: Botan::FPE::fe1_encrypt
      Src: /src/botan/src/tests/test_fpe.cpp:32,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_fpe.cpp:34,1
    - Dst: Botan::FPE::fe1_decrypt
      Src: /src/botan/src/tests/test_fpe.cpp:36,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_fpe.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: Botan_Tests::FPE_FE1_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_fpe.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::FPE::fe1_decrypt
    - Botan::FPE::fe1_encrypt
    - Botan::SymmetricKey
    - get_req_bn
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::FPE_FE1_Tests::FPE_FE1_Tests
    functionSourceFile: /src/botan/src/tests/test_fpe.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FPE_FE1_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:24,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:26,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_fpe.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:28,1
    - Dst: Botan::FPE::fe1_encrypt
      Src: /src/botan/src/tests/test_fpe.cpp:32,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_fpe.cpp:34,1
    - Dst: Botan::FPE::fe1_decrypt
      Src: /src/botan/src/tests/test_fpe.cpp:36,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_fpe.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: Botan_Tests::FPE_FE1_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_fpe.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::FPE::fe1_decrypt
    - Botan::FPE::fe1_encrypt
    - Botan::SymmetricKey
    - get_req_bn
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_entropy.cpp:27,1
    - Dst: enabled_sources
      Src: /src/botan/src/tests/test_entropy.cpp:29,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_entropy.cpp:36,1
    - Dst: poll_just
      Src: /src/botan/src/tests/test_entropy.cpp:41,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:43,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:43,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/tests/test_entropy.cpp:45,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:46,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:46,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:47,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/tests/test_entropy.cpp:47,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_entropy.cpp:50,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:50,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:53,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_entropy.cpp:59,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_entropy.cpp:67,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_entropy.cpp:68,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:70,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:72,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:75,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:75,1
    - Dst: poll_just
      Src: /src/botan/src/tests/test_entropy.cpp:80,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_entropy.cpp:82,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:82,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:84,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:84,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_entropy.cpp:87,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_entropy.cpp:89,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_entropy.cpp:92,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_entropy.cpp:93,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:95,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_entropy.cpp:97,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:101,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:104,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:104,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_entropy.cpp:115,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_entropy.cpp:116,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 120
    functionName: Botan_Tests::Entropy_Source_Tests::run
    functionSourceFile: /src/botan/src/tests/test_entropy.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::assign
    - Botan::secure_vector::insert
    - auto::start
    - auto::finish
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - SeedCapturing_RNG::samples
    - Botan::Compression_Algorithm::create
    - Botan::secure_vector::end
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_sz_gte
    - what
    - poll_just
    - Test::Result::test_note
    - std::vector::push_back
    - SeedCapturing_RNG::seed_material
    - Test::Result::test_sz_lt
    - Botan::Entropy_Sources::global_sources
    - enabled_sources
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_entropy.cpp:27,1
    - Dst: enabled_sources
      Src: /src/botan/src/tests/test_entropy.cpp:29,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_entropy.cpp:36,1
    - Dst: poll_just
      Src: /src/botan/src/tests/test_entropy.cpp:41,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:43,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:43,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/tests/test_entropy.cpp:45,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:46,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:46,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:47,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/tests/test_entropy.cpp:47,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_entropy.cpp:50,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:50,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:53,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_entropy.cpp:59,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_entropy.cpp:67,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_entropy.cpp:68,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:70,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:72,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:75,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:75,1
    - Dst: poll_just
      Src: /src/botan/src/tests/test_entropy.cpp:80,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_entropy.cpp:82,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:82,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:84,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:84,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_entropy.cpp:87,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_entropy.cpp:89,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_entropy.cpp:92,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_entropy.cpp:93,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:95,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_entropy.cpp:97,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:101,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:104,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:104,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_entropy.cpp:115,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_entropy.cpp:116,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 120
    functionName: Botan_Tests::Entropy_Source_Tests::run
    functionSourceFile: /src/botan/src/tests/test_entropy.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::assign
    - Botan::secure_vector::insert
    - auto::start
    - auto::finish
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - SeedCapturing_RNG::samples
    - Botan::Compression_Algorithm::create
    - Botan::secure_vector::end
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_sz_gte
    - what
    - poll_just
    - Test::Result::test_note
    - std::vector::push_back
    - SeedCapturing_RNG::seed_material
    - Test::Result::test_sz_lt
    - Botan::Entropy_Sources::global_sources
    - enabled_sources
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_entropy.cpp:27,1
    - Dst: enabled_sources
      Src: /src/botan/src/tests/test_entropy.cpp:29,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_entropy.cpp:36,1
    - Dst: poll_just
      Src: /src/botan/src/tests/test_entropy.cpp:41,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:43,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:43,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/tests/test_entropy.cpp:45,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:46,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:46,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:47,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/tests/test_entropy.cpp:47,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_entropy.cpp:50,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:50,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:53,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_entropy.cpp:59,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_entropy.cpp:67,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_entropy.cpp:68,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:70,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:72,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:75,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:75,1
    - Dst: poll_just
      Src: /src/botan/src/tests/test_entropy.cpp:80,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_entropy.cpp:82,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:82,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:84,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:84,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_entropy.cpp:87,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_entropy.cpp:89,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_entropy.cpp:92,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_entropy.cpp:93,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:95,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_entropy.cpp:97,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:101,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:104,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:104,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_entropy.cpp:115,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_entropy.cpp:116,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 120
    functionName: Botan_Tests::Entropy_Source_Tests::run
    functionSourceFile: /src/botan/src/tests/test_entropy.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::assign
    - Botan::secure_vector::insert
    - auto::start
    - auto::finish
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - SeedCapturing_RNG::samples
    - Botan::Compression_Algorithm::create
    - Botan::secure_vector::end
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_sz_gte
    - what
    - poll_just
    - Test::Result::test_note
    - std::vector::push_back
    - SeedCapturing_RNG::seed_material
    - Test::Result::test_sz_lt
    - Botan::Entropy_Sources::global_sources
    - enabled_sources
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_entropy.cpp:27,1
    - Dst: enabled_sources
      Src: /src/botan/src/tests/test_entropy.cpp:29,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_entropy.cpp:36,1
    - Dst: poll_just
      Src: /src/botan/src/tests/test_entropy.cpp:41,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:43,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:43,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/tests/test_entropy.cpp:45,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:46,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:46,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:47,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/tests/test_entropy.cpp:47,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_entropy.cpp:50,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:50,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:53,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_entropy.cpp:59,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:66,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_entropy.cpp:67,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_entropy.cpp:68,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:70,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:72,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:75,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:75,1
    - Dst: poll_just
      Src: /src/botan/src/tests/test_entropy.cpp:80,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_entropy.cpp:82,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:82,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:84,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:84,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_entropy.cpp:87,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:88,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_entropy.cpp:89,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/tests/test_entropy.cpp:90,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_entropy.cpp:92,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_entropy.cpp:93,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_entropy.cpp:95,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_entropy.cpp:97,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_entropy.cpp:101,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:104,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:104,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_entropy.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/test_entropy.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_entropy.cpp:115,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_entropy.cpp:116,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 120
    functionName: Botan_Tests::Entropy_Source_Tests::run
    functionSourceFile: /src/botan/src/tests/test_entropy.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::assign
    - Botan::secure_vector::insert
    - auto::start
    - auto::finish
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - SeedCapturing_RNG::samples
    - Botan::Compression_Algorithm::create
    - Botan::secure_vector::end
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_sz_gte
    - what
    - poll_just
    - Test::Result::test_note
    - std::vector::push_back
    - SeedCapturing_RNG::seed_material
    - Test::Result::test_sz_lt
    - Botan::Entropy_Sources::global_sources
    - enabled_sources
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::ECKCDSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_eckcdsa.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_eckcdsa.cpp:34,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_eckcdsa.cpp:35,1
    - Dst: std::make_unique<Botan::ECKCDSA_PrivateKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:37,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECKCDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:45,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_eckcdsa.cpp:58,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_eckcdsa.cpp:59,1
    - Dst: std::make_unique<Botan::ECKCDSA_PublicKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECKCDSA_PublicKey>
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::ECKCDSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_eckcdsa.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_eckcdsa.cpp:34,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_eckcdsa.cpp:35,1
    - Dst: std::make_unique<Botan::ECKCDSA_PrivateKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:37,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECKCDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:45,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_eckcdsa.cpp:58,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_eckcdsa.cpp:59,1
    - Dst: std::make_unique<Botan::ECKCDSA_PublicKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECKCDSA_PublicKey>
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::ECKCDSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_eckcdsa.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_eckcdsa.cpp:34,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_eckcdsa.cpp:35,1
    - Dst: std::make_unique<Botan::ECKCDSA_PrivateKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:37,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECKCDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:45,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_eckcdsa.cpp:58,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_eckcdsa.cpp:59,1
    - Dst: std::make_unique<Botan::ECKCDSA_PublicKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECKCDSA_PublicKey>
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::ECKCDSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_eckcdsa.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_eckcdsa.cpp:34,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_eckcdsa.cpp:35,1
    - Dst: std::make_unique<Botan::ECKCDSA_PrivateKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:37,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECKCDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:45,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_eckcdsa.cpp:58,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_eckcdsa.cpp:59,1
    - Dst: std::make_unique<Botan::ECKCDSA_PublicKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECKCDSA_PublicKey>
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:26,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:27,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:27,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:28,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:28,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:29,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:29,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:30,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
      Src: /src/botan/src/tests/test_sodium.cpp:30,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:31,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
      Src: /src/botan/src/tests/test_sodium.cpp:31,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:32,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:32,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:33,1
    - Dst: Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:33,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:34,1
    - Dst: Botan_Tests::Sodium_API_Tests::hash_sha256
      Src: /src/botan/src/tests/test_sodium.cpp:34,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:35,1
    - Dst: Botan_Tests::Sodium_API_Tests::hash_sha512
      Src: /src/botan/src/tests/test_sodium.cpp:35,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:36,1
    - Dst: Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
      Src: /src/botan/src/tests/test_sodium.cpp:36,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:37,1
    - Dst: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:38,1
    - Dst: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
      Src: /src/botan/src/tests/test_sodium.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:39,1
    - Dst: Botan_Tests::Sodium_API_Tests::shorthash_siphash24
      Src: /src/botan/src/tests/test_sodium.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:40,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_chacha20
      Src: /src/botan/src/tests/test_sodium.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:41,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:42,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_salsa20
      Src: /src/botan/src/tests/test_sodium.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:43,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_xchacha20
      Src: /src/botan/src/tests/test_sodium.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:44,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_xsalsa20
      Src: /src/botan/src/tests/test_sodium.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:45,1
    - Dst: Botan_Tests::Sodium_API_Tests::sign_ed25519
      Src: /src/botan/src/tests/test_sodium.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:46,1
    - Dst: Botan_Tests::Sodium_API_Tests::sodium_malloc
      Src: /src/botan/src/tests/test_sodium.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:47,1
    - Dst: Botan_Tests::Sodium_API_Tests::sodium_utils
      Src: /src/botan/src/tests/test_sodium.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Sodium_API_Tests::run
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    - Botan_Tests::Sodium_API_Tests::stream_chacha20
    - Botan_Tests::Sodium_API_Tests::sign_ed25519
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    - Botan_Tests::Sodium_API_Tests::stream_xchacha20
    - Botan_Tests::Sodium_API_Tests::sodium_utils
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::auth_poly1305
    - Botan_Tests::Sodium_API_Tests::shorthash_siphash24
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    - Botan_Tests::Sodium_API_Tests::stream_salsa20
    - Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    - Botan_Tests::Sodium_API_Tests::hash_sha256
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
    - std::vector::push_back
    - Botan_Tests::Sodium_API_Tests::hash_sha512
    - Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    - Botan_Tests::Sodium_API_Tests::sodium_malloc
    - Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    - Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::sodium_malloc
      Src: /src/botan/src/tests/test_sodium.cpp:56,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_sodium.cpp:57,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:59,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:60,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_sodium.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Sodium_API_Tests::sodium_malloc
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::sodium_malloc
    - Botan::Sodium::sodium_free
    - std::memset
    - Test::Result::test_success
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sodium_malloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:75,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:94,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:96,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:98,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 103
    functionName: Botan_Tests::Sodium_API_Tests::sodium_utils
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::sodium_memcmp
    - std::memset
    - Botan::Sodium::sodium_compare
    - std::vector::data
    - Botan::Sodium::sodium_increment
    - Test::Result::test_bin_eq
    - Botan::Sodium::sodium_is_zero
    - Botan::Sodium::sodium_add
    - Test::Result::test_is_true
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sodium_utils()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf_deterministic
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::randombytes_buf_deterministic
    - std::vector::data
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result randombytes_buf_deterministic()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha512
      Src: /src/botan/src/tests/test_sodium.cpp:122,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:122,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: Botan_Tests::Sodium_API_Tests::hash_sha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_hash_sha512
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_sha512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha256
      Src: /src/botan/src/tests/test_sodium.cpp:136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:136,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: Botan_Tests::Sodium_API_Tests::hash_sha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_hash_sha256
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_sha256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:153,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:159,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:165,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:166,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:169,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:171,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:172,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:176,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:180,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:181,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:184,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:186,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:187,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 193
    functionName: Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::crypto_box_easy
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_box_open_easy
    - Botan::Sodium::crypto_box_seed_keypair
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result box_curve25519xsalsa20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:199,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:201,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:202,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:207,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:210,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:210,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:211,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:213,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:215,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:216,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:218,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:219,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:221,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:222,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:223,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:225,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:226,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:229,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:230,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:231,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:232,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:233,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:235,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:237,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:240,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:244,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:245,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:246,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:248,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:249,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:250,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:254,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:258,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:259,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:262,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:266,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:269,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:273,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:274,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:278,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - Test::Result::test_sz_eq
    - Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_chacha20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:289,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:291,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:292,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:297,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:301,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:303,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:304,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:305,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:306,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:308,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:309,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:311,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:312,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:313,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:315,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:316,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:319,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:320,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:321,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:322,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:323,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:324,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:325,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:327,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:330,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:334,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:335,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:336,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:337,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:338,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:339,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:340,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:344,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:345,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:345,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:347,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:348,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:349,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:350,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:352,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:353,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:356,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:359,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:360,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:360,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:363,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:364,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:365,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:366,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:367,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:368,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 373
    functionName: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_chacha20poly1305_ietf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:379,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:382,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:387,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:390,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:390,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:391,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:394,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:395,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:396,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:398,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:399,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:401,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:402,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:403,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:405,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:406,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:407,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:407,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:409,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:410,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:411,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:412,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:413,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:414,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:415,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:417,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:420,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:422,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:422,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:425,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:426,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:427,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:428,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:429,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:430,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:434,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:435,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:435,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:437,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:438,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:439,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:440,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:442,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:443,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:446,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:449,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:453,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:454,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:455,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:456,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:457,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:458,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 463
    functionName: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_xchacha20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:469,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:477,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:482,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:486,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 492
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512
    - Botan::Sodium::crypto_auth_hmacsha512_verify
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_auth_hmacsha512_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:498,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:499,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:504,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:506,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:510,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 516
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_auth_hmacsha512256
    - Botan::Sodium::crypto_auth_hmacsha512256_verify
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha512256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:522,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:523,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:528,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:530,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:534,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 540
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_auth_hmacsha256_verify
    - Botan::Sodium::crypto_auth_hmacsha256
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:545,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:550,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:553,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:555,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:560,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 566
    functionName: Botan_Tests::Sodium_API_Tests::auth_poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_rc_fail
    - std::vector::data
    - Botan::Sodium::crypto_onetimeauth_keybytes
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_onetimeauth_poly1305_verify
    - Botan::Sodium::crypto_onetimeauth_poly1305
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:571,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:572,1
    - Dst: Botan::Sodium::crypto_shorthash_siphash24
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 580
    functionName: Botan_Tests::Sodium_API_Tests::shorthash_siphash24
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_shorthash_siphash24
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result shorthash_siphash24()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:590,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:591,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:597,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
      Src: /src/botan/src/tests/test_sodium.cpp:598,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 604
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result secretbox_xsalsa20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:615,1
    - Dst: Botan::Sodium::crypto_secretbox_detached
      Src: /src/botan/src/tests/test_sodium.cpp:616,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:619,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:622,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:624,1
    - Dst: Botan::Sodium::crypto_secretbox_open_detached
      Src: /src/botan/src/tests/test_sodium.cpp:625,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 631
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::crypto_secretbox_open_detached
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_secretbox_detached
    - Test::Result::test_rc_ok
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result secretbox_xsalsa20poly1305_detached()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:640,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:643,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:644,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:652,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_detached
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:655,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:657,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:662,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:667,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 673
    functionName: Botan_Tests::Sodium_API_Tests::sign_ed25519
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    - std::vector::data
    - Botan::Sodium::crypto_sign_ed25519_verify_detached
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_sign_ed25519_detached
    - Test::Result::test_is_true
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sign_ed25519()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:679,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:682,1
    - Dst: Botan::Sodium::crypto_stream_salsa20
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:686,1
    - Dst: Botan::Sodium::crypto_stream_salsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:689,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:691,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 694
    functionName: Botan_Tests::Sodium_API_Tests::stream_salsa20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_salsa20_xor
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Sodium::crypto_stream_salsa20
    - Test::Result::test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_salsa20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:700,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:703,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:707,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:710,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:712,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 715
    functionName: Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Sodium::crypto_stream_xsalsa20
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_xsalsa20_xor
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_xsalsa20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:721,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:724,1
    - Dst: Botan::Sodium::crypto_stream_chacha20
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:728,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:731,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:733,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 736
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::crypto_stream_chacha20_xor
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_chacha20
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_chacha20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:742,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:745,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:749,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf_xor
      Src: /src/botan/src/tests/test_sodium.cpp:752,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:754,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 757
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_chacha20_ietf
    - Botan::Sodium::crypto_stream_chacha20_ietf_xor
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_chacha20_ietf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:763,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:766,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:770,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:773,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:775,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 778
    functionName: Botan_Tests::Sodium_API_Tests::stream_xchacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_xchacha20_xor
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_xchacha20
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_xchacha20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:26,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:27,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:27,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:28,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:28,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:29,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:29,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:30,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
      Src: /src/botan/src/tests/test_sodium.cpp:30,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:31,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
      Src: /src/botan/src/tests/test_sodium.cpp:31,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:32,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:32,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:33,1
    - Dst: Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:33,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:34,1
    - Dst: Botan_Tests::Sodium_API_Tests::hash_sha256
      Src: /src/botan/src/tests/test_sodium.cpp:34,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:35,1
    - Dst: Botan_Tests::Sodium_API_Tests::hash_sha512
      Src: /src/botan/src/tests/test_sodium.cpp:35,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:36,1
    - Dst: Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
      Src: /src/botan/src/tests/test_sodium.cpp:36,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:37,1
    - Dst: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:38,1
    - Dst: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
      Src: /src/botan/src/tests/test_sodium.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:39,1
    - Dst: Botan_Tests::Sodium_API_Tests::shorthash_siphash24
      Src: /src/botan/src/tests/test_sodium.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:40,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_chacha20
      Src: /src/botan/src/tests/test_sodium.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:41,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:42,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_salsa20
      Src: /src/botan/src/tests/test_sodium.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:43,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_xchacha20
      Src: /src/botan/src/tests/test_sodium.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:44,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_xsalsa20
      Src: /src/botan/src/tests/test_sodium.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:45,1
    - Dst: Botan_Tests::Sodium_API_Tests::sign_ed25519
      Src: /src/botan/src/tests/test_sodium.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:46,1
    - Dst: Botan_Tests::Sodium_API_Tests::sodium_malloc
      Src: /src/botan/src/tests/test_sodium.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:47,1
    - Dst: Botan_Tests::Sodium_API_Tests::sodium_utils
      Src: /src/botan/src/tests/test_sodium.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Sodium_API_Tests::run
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    - Botan_Tests::Sodium_API_Tests::stream_chacha20
    - Botan_Tests::Sodium_API_Tests::sign_ed25519
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    - Botan_Tests::Sodium_API_Tests::stream_xchacha20
    - Botan_Tests::Sodium_API_Tests::sodium_utils
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::auth_poly1305
    - Botan_Tests::Sodium_API_Tests::shorthash_siphash24
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    - Botan_Tests::Sodium_API_Tests::stream_salsa20
    - Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    - Botan_Tests::Sodium_API_Tests::hash_sha256
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
    - std::vector::push_back
    - Botan_Tests::Sodium_API_Tests::hash_sha512
    - Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    - Botan_Tests::Sodium_API_Tests::sodium_malloc
    - Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    - Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::sodium_malloc
      Src: /src/botan/src/tests/test_sodium.cpp:56,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_sodium.cpp:57,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:59,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:60,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_sodium.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Sodium_API_Tests::sodium_malloc
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::sodium_malloc
    - Botan::Sodium::sodium_free
    - std::memset
    - Test::Result::test_success
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sodium_malloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:75,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:94,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:96,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:98,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 103
    functionName: Botan_Tests::Sodium_API_Tests::sodium_utils
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::sodium_memcmp
    - std::memset
    - Botan::Sodium::sodium_compare
    - std::vector::data
    - Botan::Sodium::sodium_increment
    - Test::Result::test_bin_eq
    - Botan::Sodium::sodium_is_zero
    - Botan::Sodium::sodium_add
    - Test::Result::test_is_true
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sodium_utils()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf_deterministic
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::randombytes_buf_deterministic
    - std::vector::data
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result randombytes_buf_deterministic()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha512
      Src: /src/botan/src/tests/test_sodium.cpp:122,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:122,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: Botan_Tests::Sodium_API_Tests::hash_sha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_hash_sha512
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_sha512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha256
      Src: /src/botan/src/tests/test_sodium.cpp:136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:136,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: Botan_Tests::Sodium_API_Tests::hash_sha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_hash_sha256
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_sha256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:153,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:159,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:165,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:166,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:169,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:171,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:172,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:176,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:180,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:181,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:184,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:186,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:187,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 193
    functionName: Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_box_easy
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_box_open_easy
    - Botan::Sodium::crypto_box_seed_keypair
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result box_curve25519xsalsa20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:199,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:201,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:202,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:207,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:210,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:210,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:211,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:213,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:215,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:216,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:218,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:219,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:221,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:222,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:223,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:225,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:226,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:229,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:230,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:231,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:232,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:233,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:235,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:237,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:240,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:244,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:245,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:246,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:248,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:249,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:250,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:254,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:258,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:259,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:262,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:266,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:269,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:273,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:274,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:278,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - Test::Result::test_sz_eq
    - Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_chacha20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:289,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:291,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:292,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:297,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:301,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:303,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:304,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:305,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:306,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:308,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:309,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:311,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:312,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:313,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:315,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:316,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:319,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:320,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:321,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:322,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:323,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:324,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:325,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:327,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:330,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:334,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:335,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:336,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:337,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:338,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:339,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:340,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:344,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:345,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:345,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:347,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:348,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:349,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:350,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:352,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:353,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:356,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:359,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:360,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:360,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:363,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:364,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:365,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:366,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:367,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:368,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 373
    functionName: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_chacha20poly1305_ietf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:379,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:382,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:387,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:390,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:390,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:391,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:394,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:395,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:396,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:398,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:399,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:401,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:402,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:403,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:405,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:406,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:407,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:407,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:409,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:410,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:411,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:412,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:413,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:414,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:415,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:417,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:420,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:422,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:422,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:425,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:426,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:427,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:428,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:429,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:430,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:434,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:435,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:435,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:437,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:438,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:439,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:440,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:442,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:443,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:446,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:449,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:453,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:454,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:455,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:456,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:457,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:458,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 463
    functionName: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_xchacha20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:469,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:477,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:482,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:486,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 492
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512
    - Botan::Sodium::crypto_auth_hmacsha512_verify
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_auth_hmacsha512_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:498,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:499,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:504,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:506,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:510,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 516
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_auth_hmacsha512256
    - Botan::Sodium::crypto_auth_hmacsha512256_verify
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha512256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:522,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:523,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:528,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:530,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:534,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 540
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_auth_hmacsha256_verify
    - Botan::Sodium::crypto_auth_hmacsha256
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:545,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:550,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:553,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:555,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:560,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 566
    functionName: Botan_Tests::Sodium_API_Tests::auth_poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_rc_fail
    - std::vector::data
    - Botan::Sodium::crypto_onetimeauth_keybytes
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_onetimeauth_poly1305_verify
    - Botan::Sodium::crypto_onetimeauth_poly1305
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:571,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:572,1
    - Dst: Botan::Sodium::crypto_shorthash_siphash24
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 580
    functionName: Botan_Tests::Sodium_API_Tests::shorthash_siphash24
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_shorthash_siphash24
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result shorthash_siphash24()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:590,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:591,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:597,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
      Src: /src/botan/src/tests/test_sodium.cpp:598,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 604
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result secretbox_xsalsa20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:615,1
    - Dst: Botan::Sodium::crypto_secretbox_detached
      Src: /src/botan/src/tests/test_sodium.cpp:616,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:619,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:622,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:624,1
    - Dst: Botan::Sodium::crypto_secretbox_open_detached
      Src: /src/botan/src/tests/test_sodium.cpp:625,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 631
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_secretbox_open_detached
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_secretbox_detached
    - Test::Result::test_rc_ok
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result secretbox_xsalsa20poly1305_detached()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:640,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:643,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:644,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:652,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_detached
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:655,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:657,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:662,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:667,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 673
    functionName: Botan_Tests::Sodium_API_Tests::sign_ed25519
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    - std::vector::data
    - Botan::Sodium::crypto_sign_ed25519_verify_detached
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_sign_ed25519_detached
    - Test::Result::test_is_true
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sign_ed25519()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:679,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:682,1
    - Dst: Botan::Sodium::crypto_stream_salsa20
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:686,1
    - Dst: Botan::Sodium::crypto_stream_salsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:689,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:691,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 694
    functionName: Botan_Tests::Sodium_API_Tests::stream_salsa20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_salsa20_xor
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Sodium::crypto_stream_salsa20
    - Test::Result::test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_salsa20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:700,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:703,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:707,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:710,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:712,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 715
    functionName: Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Sodium::crypto_stream_xsalsa20
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_xsalsa20_xor
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_xsalsa20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:721,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:724,1
    - Dst: Botan::Sodium::crypto_stream_chacha20
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:728,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:731,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:733,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 736
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_stream_chacha20_xor
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_chacha20
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_chacha20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:742,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:745,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:749,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf_xor
      Src: /src/botan/src/tests/test_sodium.cpp:752,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:754,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 757
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_chacha20_ietf
    - Botan::Sodium::crypto_stream_chacha20_ietf_xor
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_chacha20_ietf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:763,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:766,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:770,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:773,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:775,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 778
    functionName: Botan_Tests::Sodium_API_Tests::stream_xchacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_xchacha20_xor
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_xchacha20
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_xchacha20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:26,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:27,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:27,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:28,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:28,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:29,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:29,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:30,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
      Src: /src/botan/src/tests/test_sodium.cpp:30,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:31,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
      Src: /src/botan/src/tests/test_sodium.cpp:31,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:32,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:32,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:33,1
    - Dst: Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:33,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:34,1
    - Dst: Botan_Tests::Sodium_API_Tests::hash_sha256
      Src: /src/botan/src/tests/test_sodium.cpp:34,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:35,1
    - Dst: Botan_Tests::Sodium_API_Tests::hash_sha512
      Src: /src/botan/src/tests/test_sodium.cpp:35,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:36,1
    - Dst: Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
      Src: /src/botan/src/tests/test_sodium.cpp:36,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:37,1
    - Dst: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:38,1
    - Dst: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
      Src: /src/botan/src/tests/test_sodium.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:39,1
    - Dst: Botan_Tests::Sodium_API_Tests::shorthash_siphash24
      Src: /src/botan/src/tests/test_sodium.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:40,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_chacha20
      Src: /src/botan/src/tests/test_sodium.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:41,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:42,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_salsa20
      Src: /src/botan/src/tests/test_sodium.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:43,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_xchacha20
      Src: /src/botan/src/tests/test_sodium.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:44,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_xsalsa20
      Src: /src/botan/src/tests/test_sodium.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:45,1
    - Dst: Botan_Tests::Sodium_API_Tests::sign_ed25519
      Src: /src/botan/src/tests/test_sodium.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:46,1
    - Dst: Botan_Tests::Sodium_API_Tests::sodium_malloc
      Src: /src/botan/src/tests/test_sodium.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:47,1
    - Dst: Botan_Tests::Sodium_API_Tests::sodium_utils
      Src: /src/botan/src/tests/test_sodium.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Sodium_API_Tests::run
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    - Botan_Tests::Sodium_API_Tests::stream_chacha20
    - Botan_Tests::Sodium_API_Tests::sign_ed25519
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    - Botan_Tests::Sodium_API_Tests::stream_xchacha20
    - Botan_Tests::Sodium_API_Tests::sodium_utils
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::auth_poly1305
    - Botan_Tests::Sodium_API_Tests::shorthash_siphash24
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    - Botan_Tests::Sodium_API_Tests::stream_salsa20
    - Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    - Botan_Tests::Sodium_API_Tests::hash_sha256
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
    - std::vector::push_back
    - Botan_Tests::Sodium_API_Tests::hash_sha512
    - Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    - Botan_Tests::Sodium_API_Tests::sodium_malloc
    - Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    - Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::sodium_malloc
      Src: /src/botan/src/tests/test_sodium.cpp:56,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_sodium.cpp:57,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:59,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:60,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_sodium.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Sodium_API_Tests::sodium_malloc
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::Sodium::sodium_malloc
    - Botan::Sodium::sodium_free
    - std::memset
    - Test::Result::test_success
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sodium_malloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:75,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:94,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:96,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:98,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 103
    functionName: Botan_Tests::Sodium_API_Tests::sodium_utils
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::Sodium::sodium_memcmp
    - std::memset
    - Botan::Sodium::sodium_compare
    - std::vector::data
    - Botan::Sodium::sodium_increment
    - Test::Result::test_bin_eq
    - Botan::Sodium::sodium_is_zero
    - Botan::Sodium::sodium_add
    - Test::Result::test_is_true
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sodium_utils()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf_deterministic
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::randombytes_buf_deterministic
    - std::vector::data
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result randombytes_buf_deterministic()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha512
      Src: /src/botan/src/tests/test_sodium.cpp:122,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:122,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: Botan_Tests::Sodium_API_Tests::hash_sha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_hash_sha512
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_sha512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha256
      Src: /src/botan/src/tests/test_sodium.cpp:136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:136,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: Botan_Tests::Sodium_API_Tests::hash_sha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_hash_sha256
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_sha256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:153,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:159,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:165,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:166,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:169,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:171,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:172,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:176,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:180,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:181,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:184,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:186,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:187,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 193
    functionName: Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::Sodium::crypto_box_easy
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_box_open_easy
    - Botan::Sodium::crypto_box_seed_keypair
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result box_curve25519xsalsa20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:199,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:201,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:202,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:207,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:210,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:210,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:211,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:213,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:215,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:216,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:218,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:219,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:221,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:222,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:223,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:225,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:226,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:229,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:230,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:231,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:232,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:233,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:235,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:237,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:240,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:244,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:245,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:246,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:248,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:249,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:250,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:254,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:258,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:259,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:262,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:266,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:269,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:273,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:274,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:278,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - Test::Result::test_sz_eq
    - Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_chacha20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:289,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:291,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:292,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:297,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:301,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:303,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:304,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:305,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:306,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:308,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:309,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:311,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:312,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:313,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:315,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:316,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:319,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:320,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:321,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:322,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:323,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:324,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:325,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:327,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:330,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:334,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:335,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:336,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:337,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:338,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:339,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:340,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:344,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:345,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:345,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:347,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:348,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:349,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:350,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:352,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:353,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:356,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:359,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:360,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:360,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:363,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:364,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:365,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:366,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:367,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:368,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 373
    functionName: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_chacha20poly1305_ietf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:379,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:382,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:387,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:390,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:390,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:391,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:394,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:395,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:396,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:398,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:399,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:401,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:402,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:403,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:405,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:406,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:407,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:407,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:409,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:410,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:411,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:412,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:413,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:414,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:415,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:417,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:420,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:422,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:422,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:425,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:426,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:427,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:428,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:429,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:430,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:434,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:435,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:435,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:437,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:438,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:439,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:440,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:442,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:443,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:446,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:449,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:453,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:454,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:455,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:456,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:457,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:458,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 463
    functionName: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_xchacha20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:469,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:477,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:482,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:486,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 492
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512
    - Botan::Sodium::crypto_auth_hmacsha512_verify
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_auth_hmacsha512_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:498,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:499,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:504,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:506,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:510,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 516
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_auth_hmacsha512256
    - Botan::Sodium::crypto_auth_hmacsha512256_verify
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha512256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:522,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:523,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:528,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:530,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:534,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 540
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_auth_hmacsha256_verify
    - Botan::Sodium::crypto_auth_hmacsha256
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:545,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:550,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:553,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:555,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:560,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 566
    functionName: Botan_Tests::Sodium_API_Tests::auth_poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_rc_fail
    - std::vector::data
    - Botan::Sodium::crypto_onetimeauth_keybytes
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_onetimeauth_poly1305_verify
    - Botan::Sodium::crypto_onetimeauth_poly1305
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:571,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:572,1
    - Dst: Botan::Sodium::crypto_shorthash_siphash24
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 580
    functionName: Botan_Tests::Sodium_API_Tests::shorthash_siphash24
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_shorthash_siphash24
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result shorthash_siphash24()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:590,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:591,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:597,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
      Src: /src/botan/src/tests/test_sodium.cpp:598,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 604
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result secretbox_xsalsa20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:615,1
    - Dst: Botan::Sodium::crypto_secretbox_detached
      Src: /src/botan/src/tests/test_sodium.cpp:616,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:619,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:622,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:624,1
    - Dst: Botan::Sodium::crypto_secretbox_open_detached
      Src: /src/botan/src/tests/test_sodium.cpp:625,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 631
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::Sodium::crypto_secretbox_open_detached
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_secretbox_detached
    - Test::Result::test_rc_ok
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result secretbox_xsalsa20poly1305_detached()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:640,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:643,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:644,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:652,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_detached
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:655,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:657,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:662,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:667,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 673
    functionName: Botan_Tests::Sodium_API_Tests::sign_ed25519
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    - std::vector::data
    - Botan::Sodium::crypto_sign_ed25519_verify_detached
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_sign_ed25519_detached
    - Test::Result::test_is_true
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sign_ed25519()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:679,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:682,1
    - Dst: Botan::Sodium::crypto_stream_salsa20
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:686,1
    - Dst: Botan::Sodium::crypto_stream_salsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:689,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:691,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 694
    functionName: Botan_Tests::Sodium_API_Tests::stream_salsa20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_salsa20_xor
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Sodium::crypto_stream_salsa20
    - Test::Result::test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_salsa20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:700,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:703,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:707,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:710,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:712,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 715
    functionName: Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Sodium::crypto_stream_xsalsa20
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_xsalsa20_xor
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_xsalsa20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:721,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:724,1
    - Dst: Botan::Sodium::crypto_stream_chacha20
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:728,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:731,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:733,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 736
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::Sodium::crypto_stream_chacha20_xor
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_chacha20
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_chacha20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:742,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:745,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:749,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf_xor
      Src: /src/botan/src/tests/test_sodium.cpp:752,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:754,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 757
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_chacha20_ietf
    - Botan::Sodium::crypto_stream_chacha20_ietf_xor
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_chacha20_ietf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:763,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:766,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:770,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:773,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:775,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 778
    functionName: Botan_Tests::Sodium_API_Tests::stream_xchacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_xchacha20_xor
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_xchacha20
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_xchacha20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:26,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:27,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:27,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:28,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:28,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:29,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:29,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:30,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
      Src: /src/botan/src/tests/test_sodium.cpp:30,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:31,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
      Src: /src/botan/src/tests/test_sodium.cpp:31,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:32,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:32,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:33,1
    - Dst: Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:33,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:34,1
    - Dst: Botan_Tests::Sodium_API_Tests::hash_sha256
      Src: /src/botan/src/tests/test_sodium.cpp:34,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:35,1
    - Dst: Botan_Tests::Sodium_API_Tests::hash_sha512
      Src: /src/botan/src/tests/test_sodium.cpp:35,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:36,1
    - Dst: Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
      Src: /src/botan/src/tests/test_sodium.cpp:36,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:37,1
    - Dst: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:38,1
    - Dst: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
      Src: /src/botan/src/tests/test_sodium.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:39,1
    - Dst: Botan_Tests::Sodium_API_Tests::shorthash_siphash24
      Src: /src/botan/src/tests/test_sodium.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:40,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_chacha20
      Src: /src/botan/src/tests/test_sodium.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:41,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:42,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_salsa20
      Src: /src/botan/src/tests/test_sodium.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:43,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_xchacha20
      Src: /src/botan/src/tests/test_sodium.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:44,1
    - Dst: Botan_Tests::Sodium_API_Tests::stream_xsalsa20
      Src: /src/botan/src/tests/test_sodium.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:45,1
    - Dst: Botan_Tests::Sodium_API_Tests::sign_ed25519
      Src: /src/botan/src/tests/test_sodium.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:46,1
    - Dst: Botan_Tests::Sodium_API_Tests::sodium_malloc
      Src: /src/botan/src/tests/test_sodium.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:47,1
    - Dst: Botan_Tests::Sodium_API_Tests::sodium_utils
      Src: /src/botan/src/tests/test_sodium.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Sodium_API_Tests::run
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    - Botan_Tests::Sodium_API_Tests::stream_chacha20
    - Botan_Tests::Sodium_API_Tests::sign_ed25519
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    - Botan_Tests::Sodium_API_Tests::stream_xchacha20
    - Botan_Tests::Sodium_API_Tests::sodium_utils
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::auth_poly1305
    - Botan_Tests::Sodium_API_Tests::shorthash_siphash24
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    - Botan_Tests::Sodium_API_Tests::stream_salsa20
    - Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    - Botan_Tests::Sodium_API_Tests::hash_sha256
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
    - std::vector::push_back
    - Botan_Tests::Sodium_API_Tests::hash_sha512
    - Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    - Botan_Tests::Sodium_API_Tests::sodium_malloc
    - Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    - Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::sodium_malloc
      Src: /src/botan/src/tests/test_sodium.cpp:56,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_sodium.cpp:57,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:59,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:60,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_sodium.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Sodium_API_Tests::sodium_malloc
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::sodium_malloc
    - Botan::Sodium::sodium_free
    - std::memset
    - Test::Result::test_success
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sodium_malloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:73,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:74,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:75,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:84,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:89,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:91,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:93,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:94,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:95,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:96,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:97,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:98,1
    - Dst: Botan::Sodium::sodium_add
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:99,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 103
    functionName: Botan_Tests::Sodium_API_Tests::sodium_utils
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::sodium_memcmp
    - std::memset
    - Botan::Sodium::sodium_compare
    - std::vector::data
    - Botan::Sodium::sodium_increment
    - Test::Result::test_bin_eq
    - Botan::Sodium::sodium_is_zero
    - Botan::Sodium::sodium_add
    - Test::Result::test_is_true
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sodium_utils()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf_deterministic
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:111,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::randombytes_buf_deterministic
    - std::vector::data
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result randombytes_buf_deterministic()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha512
      Src: /src/botan/src/tests/test_sodium.cpp:122,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:122,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: Botan_Tests::Sodium_API_Tests::hash_sha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_hash_sha512
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_sha512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha256
      Src: /src/botan/src/tests/test_sodium.cpp:136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:136,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: Botan_Tests::Sodium_API_Tests::hash_sha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_hash_sha256
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_sha256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:151,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:153,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:159,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:165,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:166,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:169,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:171,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:172,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:176,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:180,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:181,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:184,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:186,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:187,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:188,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 193
    functionName: Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_box_easy
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_box_open_easy
    - Botan::Sodium::crypto_box_seed_keypair
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result box_curve25519xsalsa20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:199,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:201,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:202,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:204,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:207,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:210,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:210,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:211,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:213,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:215,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:216,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:218,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:219,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:221,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:222,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:223,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:225,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:226,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:229,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:230,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:231,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:232,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:233,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:235,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:237,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:240,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:244,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:245,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:246,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:248,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:249,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:250,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:254,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:258,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:259,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:262,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:266,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:269,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:273,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:274,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:278,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - Test::Result::test_sz_eq
    - Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_chacha20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:289,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:291,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:292,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:294,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:297,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:301,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:303,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:304,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:305,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:306,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:308,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:309,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:311,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:312,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:313,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:315,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:316,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:319,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:320,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:321,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:322,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:323,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:324,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:325,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:327,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:330,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:334,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:335,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:336,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:337,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:338,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:339,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:340,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:344,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:345,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:345,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:347,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:348,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:349,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:350,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:352,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:353,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:356,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:359,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:360,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:360,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:363,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:364,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:365,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:366,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:367,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:368,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 373
    functionName: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_chacha20poly1305_ietf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:379,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:382,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:384,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:387,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:390,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:390,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:391,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:394,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:395,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:396,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:398,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:399,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:401,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:402,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:403,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:405,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:406,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:407,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:407,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:409,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:410,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:411,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:412,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:413,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:414,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:415,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:417,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:420,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:422,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:422,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:425,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:426,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:427,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:428,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:429,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:430,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:434,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:435,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:435,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:437,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:438,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:439,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:440,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:442,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:443,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:446,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:449,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:453,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:454,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:455,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:456,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:457,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:458,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 463
    functionName: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result aead_xchacha20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:469,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:475,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:477,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:482,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:483,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:486,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 492
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512
    - Botan::Sodium::crypto_auth_hmacsha512_verify
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_auth_hmacsha512_keybytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:498,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:499,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:502,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:504,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:506,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:507,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:510,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 516
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_auth_hmacsha512256
    - Botan::Sodium::crypto_auth_hmacsha512256_verify
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha512256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:522,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:523,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:526,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:528,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:530,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:531,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:534,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 540
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_rc_fail
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_auth_hmacsha256_verify
    - Botan::Sodium::crypto_auth_hmacsha256
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_hmacsha256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:545,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:550,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:551,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:553,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:555,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:557,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:560,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 566
    functionName: Botan_Tests::Sodium_API_Tests::auth_poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_rc_fail
    - std::vector::data
    - Botan::Sodium::crypto_onetimeauth_keybytes
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_onetimeauth_poly1305_verify
    - Botan::Sodium::crypto_onetimeauth_poly1305
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auth_poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:571,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:572,1
    - Dst: Botan::Sodium::crypto_shorthash_siphash24
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:575,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 580
    functionName: Botan_Tests::Sodium_API_Tests::shorthash_siphash24
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_shorthash_siphash24
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result shorthash_siphash24()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:590,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:591,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:597,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
      Src: /src/botan/src/tests/test_sodium.cpp:598,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:599,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 604
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result secretbox_xsalsa20poly1305()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:615,1
    - Dst: Botan::Sodium::crypto_secretbox_detached
      Src: /src/botan/src/tests/test_sodium.cpp:616,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:619,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:622,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:624,1
    - Dst: Botan::Sodium::crypto_secretbox_open_detached
      Src: /src/botan/src/tests/test_sodium.cpp:625,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:626,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 631
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_secretbox_open_detached
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_secretbox_detached
    - Test::Result::test_rc_ok
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result secretbox_xsalsa20poly1305_detached()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:640,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:641,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:643,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:644,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:652,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_detached
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:654,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sodium.cpp:655,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:657,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:662,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:664,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:667,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 673
    functionName: Botan_Tests::Sodium_API_Tests::sign_ed25519
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_rc_fail
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    - std::vector::data
    - Botan::Sodium::crypto_sign_ed25519_verify_detached
    - Test::Result::test_bin_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_sign_ed25519_detached
    - Test::Result::test_is_true
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result sign_ed25519()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:679,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:682,1
    - Dst: Botan::Sodium::crypto_stream_salsa20
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:685,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:686,1
    - Dst: Botan::Sodium::crypto_stream_salsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:689,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:690,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:691,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 694
    functionName: Botan_Tests::Sodium_API_Tests::stream_salsa20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_salsa20_xor
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Sodium::crypto_stream_salsa20
    - Test::Result::test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_salsa20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:700,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:703,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:706,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:707,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:710,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:711,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:712,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 715
    functionName: Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Sodium::crypto_stream_xsalsa20
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_xsalsa20_xor
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_xsalsa20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:721,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:724,1
    - Dst: Botan::Sodium::crypto_stream_chacha20
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:727,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:728,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:731,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:732,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:733,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 736
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_stream_chacha20_xor
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_chacha20
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_chacha20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:742,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:745,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:748,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:749,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf_xor
      Src: /src/botan/src/tests/test_sodium.cpp:752,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:753,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:754,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 757
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_chacha20_ietf
    - Botan::Sodium::crypto_stream_chacha20_ietf_xor
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_chacha20_ietf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:763,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:766,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:769,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:770,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:773,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:774,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sodium.cpp:775,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 778
    functionName: Botan_Tests::Sodium_API_Tests::stream_xchacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_xchacha20_xor
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Sodium::crypto_stream_xchacha20
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_xchacha20()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pk_algo
    - keygen_params
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Botan_Tests::ConcurrentPkTestCase::ConcurrentPkTestCase
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConcurrentPkTestCase(std::string_view pk_algo, std::string_view
      keygen_params, std::string_view op_params = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& algo_name() const'
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& op_params() const'
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & op_params() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:45,1
    - Dst: empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:48,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:53,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - operation
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ConcurrentPkTestCase::result
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan::Path_Validation_Result::Path_Validation_Result
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result result(std::string_view operation) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ConcurrentPkTestCase::result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:57,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:58,1
    - Dst: Botan_Tests::ConcurrentPkTestCase::algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - operation
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ConcurrentPkTestCase::skip_missing
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ConcurrentPkTestCase::result
    - auto::test_note
    - Botan_Tests::ConcurrentPkTestCase::algo_name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result skip_missing(std::string_view operation) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: Botan_Tests::ConcurrentPkTestCase::try_create_key
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> try_create_key(Botan::RandomNumberGenerator&
      rng) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:81,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:82,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:82,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:83,1
    - Dst: remaining_operations
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:85,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:88,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:91,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:91,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:93,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:94,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:98,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:102,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:104,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:105,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:107,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:108,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:108,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:115,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:116,1
    - Dst: stateful_operation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:116,1
    - Dst: remaining_operations
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:117,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:119,1
    - Dst: auto::test_u64_lt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:120,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:121,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:121,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:123,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:123,1
    - Dst: auto::test_u64_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:125,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:128,1
    - Dst: auto::test_is_false
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:131,1
    - Dst: stateful_operation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 135
    functionName: Botan_Tests::test_concurrent_signing
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - stateful_operation
    - result
    - op_params
    - get
    - std::async
    - auto::random_vec
    - auto::test_u64_eq
    - Botan::PK_Signer::sign_message
    - auto::test_u64_lt
    - auto::empty
    - auto::test_is_false
    - auto::has_value
    - what
    - auto::who
    - Botan_Tests::Test::new_rng
    - std::vector::push_back
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - auto::test_failure
    - auto::test_is_true
    - auto::value
    - remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_signing(const ConcurrentPkTestCase& tc,\n
      \                                    const Botan::Private_Key& privkey,\n                                     const
      Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:140,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:141,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:141,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:142,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:144,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:145,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:148,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:151,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:151,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:152,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:153,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:159,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:160,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 167
    functionName: Botan_Tests::test_concurrent_verification
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::sign_message
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - std::async
    - result
    - auto::test_is_true
    - auto::random_vec
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_verification(const ConcurrentPkTestCase&
      tc,\n                                          const Botan::Private_Key& privkey,\n
      \                                         const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:172,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:173,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:173,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:174,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:177,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:180,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:180,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:182,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:183,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:187,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:191,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:192,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:193,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:193,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 200
    functionName: Botan_Tests::test_concurrent_encryption
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::PK_Encryptor_EME::encrypt
    - std::async
    - result
    - auto::random_vec
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_encryption(const ConcurrentPkTestCase&
      tc,\n                                        const Botan::Private_Key& privkey,\n
      \                                       const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:205,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:206,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:206,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:207,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:209,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:210,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:213,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:216,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:216,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:218,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:219,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:225,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:226,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:226,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 233
    functionName: Botan_Tests::test_concurrent_decryption
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::PK_Encryptor_EME::encrypt
    - std::async
    - result
    - auto::random_vec
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_decryption(const ConcurrentPkTestCase&
      tc,\n                                        const Botan::Private_Key& privkey,\n
      \                                       const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:238,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:239,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:239,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:242,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:245,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:245,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:247,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:248,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:252,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:256,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:257,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:257,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 265
    functionName: Botan_Tests::test_concurrent_kem_encap
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::shared_key
    - auto::encapsulated_shared_key
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_KEM_Decryptor::decrypt
    - std::async
    - result
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_kem_encap(const ConcurrentPkTestCase&
      tc,\n                                       const Botan::Private_Key& privkey,\n
      \                                      const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:270,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:271,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:271,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:273,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:274,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:277,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:280,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:280,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:282,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:283,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:283,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:289,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 297
    functionName: Botan_Tests::test_concurrent_kem_decap
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::shared_key
    - auto::encapsulated_shared_key
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_KEM_Decryptor::decrypt
    - std::async
    - result
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_kem_decap(const ConcurrentPkTestCase&
      tc,\n                                       const Botan::Private_Key& privkey,\n
      \                                      const Botan::Public_Key& pubkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:300,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:302,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:302,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:303,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:305,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:309,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:311,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:311,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:312,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:312,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:314,1
    - Dst: auto*::public_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:318,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:321,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:322,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:325,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:328,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:328,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:330,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:331,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:331,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:337,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:338,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:338,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ' tc'
    argTypes:
    - ConcurrentPkTestCase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 345
    functionName: Botan_Tests::test_concurrent_key_agreement
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::PK_Key_Agreement::derive_key
    - auto::get
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - result
    - auto*::public_value
    - op_params
    - get
    - std::async
    - auto::test_note
    - what
    - try_create_key
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::unlock
    - std::vector::push_back
    - std::vector::reserve
    - auto::test_failure
    - auto::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_concurrent_key_agreement(const ConcurrentPkTestCase&
      tc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:348,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:350,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:350,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:352,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:353,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:358,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:361,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:361,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:363,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:369,1
    - Dst: auto::test_not_null
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' tc'
    argTypes:
    - ConcurrentPkTestCase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 381
    functionName: Botan_Tests::test_concurrent_key_generation
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::check_key
    - std::vector::push_back
    - auto::get
    - auto::test_failure
    - auto::test_note
    - get
    - what
    - std::vector::reserve
    - std::async
    - result
    - auto::test_is_true
    - auto::test_not_null
    - try_create_key
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_concurrent_key_generation(const ConcurrentPkTestCase&
      tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:388,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:389,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:390,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:391,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::run
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:400,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:401,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:402,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:403,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:404,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:405,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:406,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:407,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:408,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:409,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:410,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:411,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:412,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:413,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:417,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:417,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:419,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:420,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:421,1
    - Dst: test_concurrent_signing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:421,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:422,1
    - Dst: test_concurrent_verification
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:422,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:424,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 427
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 1
    functionsReached:
    - auto::public_key
    - test_concurrent_signing
    - algo_name
    - test_concurrent_verification
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_signing_and_verification_tests(std::vector<Test::Result>&
      results)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:431,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:432,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:436,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:436,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:438,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:439,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:440,1
    - Dst: test_concurrent_encryption
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:440,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:441,1
    - Dst: test_concurrent_decryption
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:441,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:443,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 446
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 1
    functionsReached:
    - auto::public_key
    - algo_name
    - test_concurrent_encryption
    - test_concurrent_decryption
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_encryption_tests(std::vector<Test::Result>& results)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:450,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:451,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:452,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:453,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:454,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:455,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:456,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:457,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:461,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:461,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:462,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:463,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:464,1
    - Dst: test_concurrent_kem_encap
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:464,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:465,1
    - Dst: test_concurrent_kem_decap
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:465,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:467,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 470
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 1
    functionsReached:
    - auto::public_key
    - test_concurrent_kem_decap
    - algo_name
    - test_concurrent_kem_encap
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_kem_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:474,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:475,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:476,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:477,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:481,1
    - Dst: test_concurrent_key_agreement
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 483
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 1
    functionsReached:
    - test_concurrent_key_agreement
    - ConcurrentPkTestCase
    - push_back
    linkageType: ''
    returnType: void
    signature: void concurrent_key_agreement_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:487,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:488,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:489,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:490,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:491,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:492,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:493,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:494,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:495,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:496,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:497,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:498,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:499,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:500,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:501,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:505,1
    - Dst: test_concurrent_key_generation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 507
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 1
    functionsReached:
    - ConcurrentPkTestCase
    - test_concurrent_key_generation
    - push_back
    linkageType: ''
    returnType: void
    signature: void concurrent_key_generation_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pk_algo
    - keygen_params
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Botan_Tests::ConcurrentPkTestCase::ConcurrentPkTestCase
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConcurrentPkTestCase(std::string_view pk_algo, std::string_view
      keygen_params, std::string_view op_params = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& algo_name() const'
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& op_params() const'
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & op_params() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:45,1
    - Dst: empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:48,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:53,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - operation
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ConcurrentPkTestCase::result
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - Botan::Path_Validation_Result::Path_Validation_Result
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result result(std::string_view operation) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ConcurrentPkTestCase::result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:57,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:58,1
    - Dst: Botan_Tests::ConcurrentPkTestCase::algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - operation
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ConcurrentPkTestCase::skip_missing
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ConcurrentPkTestCase::result
    - auto::test_note
    - Botan_Tests::ConcurrentPkTestCase::algo_name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result skip_missing(std::string_view operation) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: Botan_Tests::ConcurrentPkTestCase::try_create_key
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> try_create_key(Botan::RandomNumberGenerator&
      rng) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:81,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:82,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:82,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:83,1
    - Dst: remaining_operations
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:85,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:88,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:91,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:91,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:93,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:94,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:98,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:102,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:104,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:105,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:107,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:108,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:108,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:115,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:116,1
    - Dst: stateful_operation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:116,1
    - Dst: remaining_operations
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:117,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:119,1
    - Dst: auto::test_u64_lt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:120,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:121,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:121,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:123,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:123,1
    - Dst: auto::test_u64_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:125,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:128,1
    - Dst: auto::test_is_false
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:131,1
    - Dst: stateful_operation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 135
    functionName: Botan_Tests::test_concurrent_signing
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - stateful_operation
    - result
    - op_params
    - get
    - std::async
    - auto::random_vec
    - auto::test_u64_eq
    - Botan::PK_Signer::sign_message
    - auto::test_u64_lt
    - auto::empty
    - auto::test_is_false
    - auto::has_value
    - what
    - auto::who
    - Botan_Tests::Test::new_rng
    - std::vector::push_back
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - auto::test_failure
    - auto::test_is_true
    - auto::value
    - remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_signing(const ConcurrentPkTestCase& tc,\n
      \                                    const Botan::Private_Key& privkey,\n                                     const
      Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:140,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:141,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:141,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:142,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:144,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:145,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:148,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:151,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:151,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:152,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:153,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:159,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:160,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 167
    functionName: Botan_Tests::test_concurrent_verification
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::sign_message
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - std::async
    - result
    - auto::test_is_true
    - auto::random_vec
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_verification(const ConcurrentPkTestCase&
      tc,\n                                          const Botan::Private_Key& privkey,\n
      \                                         const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:172,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:173,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:173,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:174,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:177,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:180,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:180,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:182,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:183,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:187,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:191,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:192,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:193,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:193,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 200
    functionName: Botan_Tests::test_concurrent_encryption
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::PK_Encryptor_EME::encrypt
    - std::async
    - result
    - auto::random_vec
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_encryption(const ConcurrentPkTestCase&
      tc,\n                                        const Botan::Private_Key& privkey,\n
      \                                       const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:205,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:206,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:206,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:207,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:209,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:210,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:213,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:216,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:216,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:218,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:219,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:225,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:226,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:226,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 233
    functionName: Botan_Tests::test_concurrent_decryption
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::PK_Encryptor_EME::encrypt
    - std::async
    - result
    - auto::random_vec
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_decryption(const ConcurrentPkTestCase&
      tc,\n                                        const Botan::Private_Key& privkey,\n
      \                                       const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:238,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:239,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:239,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:242,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:245,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:245,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:247,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:248,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:252,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:256,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:257,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:257,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 265
    functionName: Botan_Tests::test_concurrent_kem_encap
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::shared_key
    - auto::encapsulated_shared_key
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_KEM_Decryptor::decrypt
    - std::async
    - result
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_kem_encap(const ConcurrentPkTestCase&
      tc,\n                                       const Botan::Private_Key& privkey,\n
      \                                      const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:270,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:271,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:271,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:273,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:274,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:277,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:280,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:280,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:282,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:283,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:283,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:289,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 297
    functionName: Botan_Tests::test_concurrent_kem_decap
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::shared_key
    - auto::encapsulated_shared_key
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_KEM_Decryptor::decrypt
    - std::async
    - result
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_kem_decap(const ConcurrentPkTestCase&
      tc,\n                                       const Botan::Private_Key& privkey,\n
      \                                      const Botan::Public_Key& pubkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:300,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:302,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:302,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:303,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:305,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:309,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:311,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:311,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:312,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:312,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:314,1
    - Dst: auto*::public_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:318,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:321,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:322,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:325,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:328,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:328,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:330,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:331,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:331,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:337,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:338,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:338,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ' tc'
    argTypes:
    - ConcurrentPkTestCase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 345
    functionName: Botan_Tests::test_concurrent_key_agreement
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::PK_Key_Agreement::derive_key
    - auto::get
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - result
    - auto*::public_value
    - op_params
    - get
    - std::async
    - auto::test_note
    - what
    - try_create_key
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::unlock
    - std::vector::push_back
    - std::vector::reserve
    - auto::test_failure
    - auto::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_concurrent_key_agreement(const ConcurrentPkTestCase&
      tc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:348,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:350,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:350,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:352,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:353,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:358,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:361,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:361,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:363,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:369,1
    - Dst: auto::test_not_null
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' tc'
    argTypes:
    - ConcurrentPkTestCase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 381
    functionName: Botan_Tests::test_concurrent_key_generation
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::check_key
    - std::vector::push_back
    - auto::get
    - auto::test_failure
    - auto::test_note
    - get
    - what
    - std::vector::reserve
    - std::async
    - result
    - auto::test_is_true
    - auto::test_not_null
    - try_create_key
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_concurrent_key_generation(const ConcurrentPkTestCase&
      tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:388,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:389,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:390,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:391,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::run
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:400,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:401,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:402,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:403,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:404,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:405,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:406,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:407,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:408,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:409,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:410,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:411,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:412,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:413,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:417,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:417,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:419,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:420,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:421,1
    - Dst: test_concurrent_signing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:421,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:422,1
    - Dst: test_concurrent_verification
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:422,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:424,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 427
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 2
    functionsReached:
    - auto::public_key
    - test_concurrent_signing
    - algo_name
    - test_concurrent_verification
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_signing_and_verification_tests(std::vector<Test::Result>&
      results)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:431,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:432,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:436,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:436,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:438,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:439,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:440,1
    - Dst: test_concurrent_encryption
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:440,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:441,1
    - Dst: test_concurrent_decryption
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:441,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:443,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 446
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 2
    functionsReached:
    - auto::public_key
    - algo_name
    - test_concurrent_encryption
    - test_concurrent_decryption
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_encryption_tests(std::vector<Test::Result>& results)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:450,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:451,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:452,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:453,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:454,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:455,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:456,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:457,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:461,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:461,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:462,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:463,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:464,1
    - Dst: test_concurrent_kem_encap
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:464,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:465,1
    - Dst: test_concurrent_kem_decap
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:465,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:467,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 470
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 2
    functionsReached:
    - auto::public_key
    - test_concurrent_kem_decap
    - algo_name
    - test_concurrent_kem_encap
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_kem_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:474,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:475,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:476,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:477,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:481,1
    - Dst: test_concurrent_key_agreement
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 483
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 2
    functionsReached:
    - test_concurrent_key_agreement
    - ConcurrentPkTestCase
    - push_back
    linkageType: ''
    returnType: void
    signature: void concurrent_key_agreement_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:487,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:488,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:489,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:490,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:491,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:492,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:493,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:494,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:495,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:496,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:497,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:498,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:499,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:500,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:501,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:505,1
    - Dst: test_concurrent_key_generation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 507
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 2
    functionsReached:
    - ConcurrentPkTestCase
    - test_concurrent_key_generation
    - push_back
    linkageType: ''
    returnType: void
    signature: void concurrent_key_generation_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pk_algo
    - keygen_params
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Botan_Tests::ConcurrentPkTestCase::ConcurrentPkTestCase
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConcurrentPkTestCase(std::string_view pk_algo, std::string_view
      keygen_params, std::string_view op_params = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& algo_name() const'
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& op_params() const'
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & op_params() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:45,1
    - Dst: empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:48,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:53,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - operation
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ConcurrentPkTestCase::result
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 2
    functionsReached:
    - std::ostringstream::str
    - Botan::Path_Validation_Result::Path_Validation_Result
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result result(std::string_view operation) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ConcurrentPkTestCase::result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:57,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:58,1
    - Dst: Botan_Tests::ConcurrentPkTestCase::algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - operation
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ConcurrentPkTestCase::skip_missing
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ConcurrentPkTestCase::result
    - auto::test_note
    - Botan_Tests::ConcurrentPkTestCase::algo_name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result skip_missing(std::string_view operation) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: Botan_Tests::ConcurrentPkTestCase::try_create_key
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> try_create_key(Botan::RandomNumberGenerator&
      rng) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:81,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:82,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:82,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:83,1
    - Dst: remaining_operations
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:85,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:88,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:91,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:91,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:93,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:94,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:98,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:102,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:104,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:105,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:107,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:108,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:108,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:115,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:116,1
    - Dst: stateful_operation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:116,1
    - Dst: remaining_operations
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:117,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:119,1
    - Dst: auto::test_u64_lt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:120,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:121,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:121,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:123,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:123,1
    - Dst: auto::test_u64_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:125,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:128,1
    - Dst: auto::test_is_false
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:131,1
    - Dst: stateful_operation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 135
    functionName: Botan_Tests::test_concurrent_signing
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - stateful_operation
    - result
    - op_params
    - get
    - std::async
    - auto::random_vec
    - auto::test_u64_eq
    - Botan::PK_Signer::sign_message
    - auto::test_u64_lt
    - auto::empty
    - auto::test_is_false
    - auto::has_value
    - what
    - auto::who
    - Botan_Tests::Test::new_rng
    - std::vector::push_back
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - auto::test_failure
    - auto::test_is_true
    - auto::value
    - remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_signing(const ConcurrentPkTestCase& tc,\n
      \                                    const Botan::Private_Key& privkey,\n                                     const
      Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:140,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:141,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:141,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:142,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:144,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:145,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:148,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:151,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:151,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:152,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:153,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:159,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:160,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 167
    functionName: Botan_Tests::test_concurrent_verification
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::sign_message
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - std::async
    - result
    - auto::test_is_true
    - auto::random_vec
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_verification(const ConcurrentPkTestCase&
      tc,\n                                          const Botan::Private_Key& privkey,\n
      \                                         const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:172,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:173,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:173,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:174,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:177,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:180,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:180,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:182,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:183,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:187,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:191,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:192,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:193,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:193,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 200
    functionName: Botan_Tests::test_concurrent_encryption
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::PK_Encryptor_EME::encrypt
    - std::async
    - result
    - auto::random_vec
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_encryption(const ConcurrentPkTestCase&
      tc,\n                                        const Botan::Private_Key& privkey,\n
      \                                       const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:205,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:206,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:206,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:207,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:209,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:210,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:213,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:216,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:216,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:218,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:219,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:225,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:226,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:226,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 233
    functionName: Botan_Tests::test_concurrent_decryption
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::PK_Encryptor_EME::encrypt
    - std::async
    - result
    - auto::random_vec
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_decryption(const ConcurrentPkTestCase&
      tc,\n                                        const Botan::Private_Key& privkey,\n
      \                                       const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:238,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:239,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:239,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:242,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:245,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:245,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:247,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:248,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:252,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:256,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:257,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:257,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 265
    functionName: Botan_Tests::test_concurrent_kem_encap
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::shared_key
    - auto::encapsulated_shared_key
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_KEM_Decryptor::decrypt
    - std::async
    - result
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_kem_encap(const ConcurrentPkTestCase&
      tc,\n                                       const Botan::Private_Key& privkey,\n
      \                                      const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:270,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:271,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:271,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:273,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:274,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:277,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:280,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:280,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:282,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:283,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:283,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:289,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 297
    functionName: Botan_Tests::test_concurrent_kem_decap
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::shared_key
    - auto::encapsulated_shared_key
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_KEM_Decryptor::decrypt
    - std::async
    - result
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_kem_decap(const ConcurrentPkTestCase&
      tc,\n                                       const Botan::Private_Key& privkey,\n
      \                                      const Botan::Public_Key& pubkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:300,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:302,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:302,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:303,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:305,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:309,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:311,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:311,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:312,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:312,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:314,1
    - Dst: auto*::public_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:318,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:321,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:322,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:325,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:328,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:328,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:330,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:331,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:331,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:337,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:338,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:338,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ' tc'
    argTypes:
    - ConcurrentPkTestCase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 345
    functionName: Botan_Tests::test_concurrent_key_agreement
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::PK_Key_Agreement::derive_key
    - auto::get
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - result
    - auto*::public_value
    - op_params
    - get
    - std::async
    - auto::test_note
    - what
    - try_create_key
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::unlock
    - std::vector::push_back
    - std::vector::reserve
    - auto::test_failure
    - auto::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_concurrent_key_agreement(const ConcurrentPkTestCase&
      tc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:348,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:350,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:350,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:352,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:353,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:358,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:361,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:361,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:363,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:369,1
    - Dst: auto::test_not_null
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' tc'
    argTypes:
    - ConcurrentPkTestCase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 381
    functionName: Botan_Tests::test_concurrent_key_generation
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::check_key
    - std::vector::push_back
    - auto::get
    - auto::test_failure
    - auto::test_note
    - get
    - what
    - std::vector::reserve
    - std::async
    - result
    - auto::test_is_true
    - auto::test_not_null
    - try_create_key
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_concurrent_key_generation(const ConcurrentPkTestCase&
      tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:388,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:389,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:390,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:391,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::run
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:400,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:401,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:402,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:403,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:404,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:405,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:406,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:407,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:408,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:409,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:410,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:411,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:412,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:413,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:417,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:417,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:419,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:420,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:421,1
    - Dst: test_concurrent_signing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:421,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:422,1
    - Dst: test_concurrent_verification
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:422,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:424,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 427
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 3
    functionsReached:
    - auto::public_key
    - test_concurrent_signing
    - algo_name
    - test_concurrent_verification
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_signing_and_verification_tests(std::vector<Test::Result>&
      results)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:431,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:432,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:436,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:436,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:438,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:439,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:440,1
    - Dst: test_concurrent_encryption
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:440,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:441,1
    - Dst: test_concurrent_decryption
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:441,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:443,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 446
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 3
    functionsReached:
    - auto::public_key
    - algo_name
    - test_concurrent_encryption
    - test_concurrent_decryption
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_encryption_tests(std::vector<Test::Result>& results)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:450,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:451,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:452,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:453,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:454,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:455,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:456,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:457,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:461,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:461,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:462,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:463,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:464,1
    - Dst: test_concurrent_kem_encap
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:464,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:465,1
    - Dst: test_concurrent_kem_decap
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:465,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:467,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 470
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 3
    functionsReached:
    - auto::public_key
    - test_concurrent_kem_decap
    - algo_name
    - test_concurrent_kem_encap
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_kem_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:474,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:475,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:476,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:477,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:481,1
    - Dst: test_concurrent_key_agreement
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 483
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 3
    functionsReached:
    - test_concurrent_key_agreement
    - ConcurrentPkTestCase
    - push_back
    linkageType: ''
    returnType: void
    signature: void concurrent_key_agreement_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:487,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:488,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:489,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:490,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:491,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:492,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:493,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:494,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:495,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:496,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:497,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:498,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:499,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:500,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:501,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:505,1
    - Dst: test_concurrent_key_generation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 507
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 3
    functionsReached:
    - ConcurrentPkTestCase
    - test_concurrent_key_generation
    - push_back
    linkageType: ''
    returnType: void
    signature: void concurrent_key_generation_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pk_algo
    - keygen_params
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Botan_Tests::ConcurrentPkTestCase::ConcurrentPkTestCase
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConcurrentPkTestCase(std::string_view pk_algo, std::string_view
      keygen_params, std::string_view op_params = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& algo_name() const'
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& op_params() const'
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & op_params() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:45,1
    - Dst: empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:48,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:53,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - operation
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ConcurrentPkTestCase::result
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 3
    functionsReached:
    - std::ostringstream::str
    - Botan::Path_Validation_Result::Path_Validation_Result
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result result(std::string_view operation) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ConcurrentPkTestCase::result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:57,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:58,1
    - Dst: Botan_Tests::ConcurrentPkTestCase::algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - operation
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ConcurrentPkTestCase::skip_missing
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ConcurrentPkTestCase::result
    - auto::test_note
    - Botan_Tests::ConcurrentPkTestCase::algo_name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result skip_missing(std::string_view operation) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: Botan_Tests::ConcurrentPkTestCase::try_create_key
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> try_create_key(Botan::RandomNumberGenerator&
      rng) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:81,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:82,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:82,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:83,1
    - Dst: remaining_operations
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:85,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:88,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:91,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:91,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:92,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:93,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:94,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:98,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:102,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:104,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:105,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:107,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:108,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:108,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:111,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:115,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:116,1
    - Dst: stateful_operation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:116,1
    - Dst: remaining_operations
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:117,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:119,1
    - Dst: auto::test_u64_lt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:120,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:121,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:121,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:123,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:123,1
    - Dst: auto::test_u64_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:125,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:128,1
    - Dst: auto::test_is_false
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:131,1
    - Dst: stateful_operation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 135
    functionName: Botan_Tests::test_concurrent_signing
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - stateful_operation
    - result
    - op_params
    - get
    - std::async
    - auto::random_vec
    - auto::test_u64_eq
    - Botan::PK_Signer::sign_message
    - auto::test_u64_lt
    - auto::empty
    - auto::test_is_false
    - auto::has_value
    - what
    - auto::who
    - Botan_Tests::Test::new_rng
    - std::vector::push_back
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - auto::test_failure
    - auto::test_is_true
    - auto::value
    - remaining_operations
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_signing(const ConcurrentPkTestCase& tc,\n
      \                                    const Botan::Private_Key& privkey,\n                                     const
      Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:140,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:141,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:141,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:142,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:144,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:145,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:148,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:151,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:151,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:152,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:153,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:159,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:160,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 167
    functionName: Botan_Tests::test_concurrent_verification
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::sign_message
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - std::async
    - result
    - auto::test_is_true
    - auto::random_vec
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_verification(const ConcurrentPkTestCase&
      tc,\n                                          const Botan::Private_Key& privkey,\n
      \                                         const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:172,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:173,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:173,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:174,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:177,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:180,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:180,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:181,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:182,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:183,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:187,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:191,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:192,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:193,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:193,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 200
    functionName: Botan_Tests::test_concurrent_encryption
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::PK_Encryptor_EME::encrypt
    - std::async
    - result
    - auto::random_vec
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_encryption(const ConcurrentPkTestCase&
      tc,\n                                        const Botan::Private_Key& privkey,\n
      \                                       const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:205,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:206,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:206,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:207,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:209,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:210,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:213,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:216,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:216,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:217,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:218,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:219,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:225,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:226,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:226,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 233
    functionName: Botan_Tests::test_concurrent_decryption
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::PK_Encryptor_EME::encrypt
    - std::async
    - result
    - auto::random_vec
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_decryption(const ConcurrentPkTestCase&
      tc,\n                                        const Botan::Private_Key& privkey,\n
      \                                       const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:238,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:239,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:239,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:242,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:245,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:245,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:246,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:247,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:248,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:252,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:256,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:257,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:257,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:258,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 265
    functionName: Botan_Tests::test_concurrent_kem_encap
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::shared_key
    - auto::encapsulated_shared_key
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_KEM_Decryptor::decrypt
    - std::async
    - result
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_kem_encap(const ConcurrentPkTestCase&
      tc,\n                                       const Botan::Private_Key& privkey,\n
      \                                      const Botan::Public_Key& pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:270,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:271,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:271,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:273,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:274,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:277,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:280,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:280,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:281,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:282,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:283,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:283,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:289,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:290,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' tc'
    - ' privkey'
    - ' pubkey'
    argTypes:
    - ConcurrentPkTestCase
    - Botan::Private_Key
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 297
    functionName: Botan_Tests::test_concurrent_kem_decap
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::shared_key
    - auto::encapsulated_shared_key
    - std::vector::push_back
    - auto::test_failure
    - op_params
    - get
    - what
    - std::vector::reserve
    - Botan::PK_KEM_Decryptor::decrypt
    - std::async
    - result
    - auto::test_bin_eq
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_concurrent_kem_decap(const ConcurrentPkTestCase&
      tc,\n                                       const Botan::Private_Key& privkey,\n
      \                                      const Botan::Public_Key& pubkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:300,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:302,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:302,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:303,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:305,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:309,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:311,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:311,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:312,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:312,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:314,1
    - Dst: auto*::public_value
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:318,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:321,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:322,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:325,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:328,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:328,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:329,1
    - Dst: op_params
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:330,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:331,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:331,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:337,1
    - Dst: auto::test_bin_eq
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:338,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:338,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ' tc'
    argTypes:
    - ConcurrentPkTestCase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 345
    functionName: Botan_Tests::test_concurrent_key_agreement
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::PK_Key_Agreement::derive_key
    - auto::get
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - result
    - auto*::public_value
    - op_params
    - get
    - std::async
    - auto::test_note
    - what
    - try_create_key
    - auto::who
    - Botan_Tests::Test::new_rng
    - Botan::unlock
    - std::vector::push_back
    - std::vector::reserve
    - auto::test_failure
    - auto::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_concurrent_key_agreement(const ConcurrentPkTestCase&
      tc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: result
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:348,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:350,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:350,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:352,1
    - Dst: auto::test_note
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:353,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:358,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:361,1
    - Dst: std::async
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:361,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: auto::who
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:362,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:363,1
    - Dst: get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:369,1
    - Dst: auto::test_not_null
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:370,1
    - Dst: auto::test_is_true
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:373,1
    - Dst: auto::test_failure
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    - Dst: what
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' tc'
    argTypes:
    - ConcurrentPkTestCase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 381
    functionName: Botan_Tests::test_concurrent_key_generation
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::check_key
    - std::vector::push_back
    - auto::get
    - auto::test_failure
    - auto::test_note
    - get
    - what
    - std::vector::reserve
    - std::async
    - result
    - auto::test_is_true
    - auto::test_not_null
    - try_create_key
    - auto::who
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_concurrent_key_generation(const ConcurrentPkTestCase&
      tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:388,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:389,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:390,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:391,1
    - Dst: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::run
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
    - Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:400,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:401,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:402,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:403,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:404,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:405,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:406,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:407,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:408,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:409,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:410,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:411,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:412,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:413,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:417,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:417,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:419,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:420,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:421,1
    - Dst: test_concurrent_signing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:421,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:422,1
    - Dst: test_concurrent_verification
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:422,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:424,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 427
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_signing_and_verification_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 4
    functionsReached:
    - auto::public_key
    - test_concurrent_signing
    - algo_name
    - test_concurrent_verification
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_signing_and_verification_tests(std::vector<Test::Result>&
      results)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:431,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:432,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:436,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:436,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:438,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:439,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:440,1
    - Dst: test_concurrent_encryption
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:440,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:441,1
    - Dst: test_concurrent_decryption
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:441,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:443,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 446
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_encryption_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 4
    functionsReached:
    - auto::public_key
    - algo_name
    - test_concurrent_encryption
    - test_concurrent_decryption
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_encryption_tests(std::vector<Test::Result>& results)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:450,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:451,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:452,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:453,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:454,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:455,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:456,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:457,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:461,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:461,1
    - Dst: try_create_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:462,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:463,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:464,1
    - Dst: test_concurrent_kem_encap
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:464,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:465,1
    - Dst: test_concurrent_kem_decap
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:465,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:467,1
    - Dst: skip_missing
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 470
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_kem_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 4
    functionsReached:
    - auto::public_key
    - test_concurrent_kem_decap
    - algo_name
    - test_concurrent_kem_encap
    - ConcurrentPkTestCase
    - skip_missing
    - push_back
    - try_create_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: void
    signature: void concurrent_kem_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:474,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:475,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:476,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:477,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:481,1
    - Dst: test_concurrent_key_agreement
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 483
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_agreement_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 4
    functionsReached:
    - test_concurrent_key_agreement
    - ConcurrentPkTestCase
    - push_back
    linkageType: ''
    returnType: void
    signature: void concurrent_key_agreement_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:487,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:488,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:489,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:490,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:491,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:492,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:493,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:494,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:495,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:496,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:497,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:498,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:499,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:500,1
    - Dst: ConcurrentPkTestCase
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:501,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:505,1
    - Dst: test_concurrent_key_generation
      Src: /src/botan/src/tests/test_concurrent_pk.cpp:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 507
    functionName: Botan_Tests::Concurrent_Public_Key_Operations_Test::concurrent_key_generation_tests
    functionSourceFile: /src/botan/src/tests/test_concurrent_pk.cpp
    functionUses: 4
    functionsReached:
    - ConcurrentPkTestCase
    - test_concurrent_key_generation
    - push_back
    linkageType: ''
    returnType: void
    signature: void concurrent_key_generation_tests(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_cmce.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cmce.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: poly_f
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::Classic_McEliece_Polynomial
      Src: /src/botan/src/tests/test_cmce.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bytes
    - ' ring'
    argTypes:
    - std::span<const uint8_t>
    - Botan::Classic_McEliece_Polynomial_Ring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_Tests::create_element_from_bytes
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::CmceGfElem
    - degree
    - std::vector::push_back
    - poly_f
    - Botan::Classic_McEliece_GF
    - std::vector::data
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - Botan::Classic_McEliece_Polynomial
    - std::span<const uint8_t>::size
    - Botan::load_le<uint16_t>
    - std::span<const uint8_t>::data
    - std::vector::size
    linkageType: ''
    returnType: Botan::Classic_McEliece_Polynomial
    signature: "Botan::Classic_McEliece_Polynomial create_element_from_bytes(std::span<const
      uint8_t> bytes,\n                                                             const
      Botan::Classic_McEliece_Polynomial_Ring& ring)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 68
    functionName: Botan_Tests::get_test_instances_all
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> get_test_instances_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: Botan_Tests::get_test_instances_min
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> get_test_instances_min()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_cmce.cpp:77,1
    - Dst: Botan_Tests::get_test_instances_all
      Src: /src/botan/src/tests/test_cmce.cpp:78,1
    - Dst: Botan_Tests::get_test_instances_min
      Src: /src/botan/src/tests/test_cmce.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan_Tests::instances_to_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_test_instances_min
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::get_test_instances_all
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> instances_to_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:85,1
    - Dst: Botan_Tests::instances_to_test
      Src: /src/botan/src/tests/test_cmce.cpp:86,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: Botan_Tests::skip_cmce_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::find
    - Botan::Classic_McEliece_Parameters::create
    - auto::parameter_set
    - Botan_Tests::instances_to_test
    - auto::end
    linkageType: ''
    returnType: bool
    signature: bool skip_cmce_test(const std::string& params_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:96,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_cmce.cpp:99,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:101,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::sigma2
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::q
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::t
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::ell
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::prg
      Src: /src/botan/src/tests/test_cmce.cpp:108,1
    - Dst: auto::erase
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 114
    functionName: Botan_Tests::CMCE_Utility_Tests::expand_seed_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Botan::hex_decode
    - auto::begin
    - Botan::Classic_McEliece_Parameters::create
    - auto::ell
    - auto::prg
    - auto::n
    - Test::Result::test_bin_eq
    - auto::erase
    - auto::sigma1
    - auto::q
    - auto::end
    - auto::t
    - auto::sigma2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result expand_seed_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:120,1
    - Dst: Botan::CmceIrreducibleBits
      Src: /src/botan/src/tests/test_cmce.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:123,1
    - Dst: Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:127,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:128,1
    - Dst: auto::poly_f
      Src: /src/botan/src/tests/test_cmce.cpp:131,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:133,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:134,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_cmce.cpp:134,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 138
    functionName: Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
    - auto::poly_ring
    - auto::coef
    - Botan::Classic_McEliece_Parameters::create
    - Botan::CmceIrreducibleBits
    - auto::has_value
    - auto::value
    - Test::Result::test_is_true
    - auto::poly_f
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result irreducible_poly_gen_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:144,1
    - Dst: auto::gf
      Src: /src/botan/src/tests/test_cmce.cpp:146,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:146,1
    - Dst: auto::inv
      Src: /src/botan/src/tests/test_cmce.cpp:147,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    - Dst: elem
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - elem
    - Botan::CmceGfElem
    - auto::inv
    - Botan::Classic_McEliece_Parameters::create
    - auto::gf
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result gf_inv_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:157,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:159,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:161,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:162,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:167,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:168,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:173,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:174,1
    - Dst: multiply
      Src: /src/botan/src/tests/test_cmce.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 183
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::poly_ring
    - auto::coef
    - Botan::Classic_McEliece_Parameters::create
    - create_element_from_bytes
    - multiply
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result gf_poly_mul_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: begin
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: end
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:204,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cmce.cpp:206,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_cmce.cpp:209,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_cmce.cpp:210,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_cmce.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 213
    functionName: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - begin
    - std::fill
    - auto::encrypt
    - Test::Result::test_failure
    - Botan::create_private_key
    - Test::Result::test_throws
    - static_cast<uint8_t>
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result rigged_rng_encryption_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - static_cast<uint8_t>
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> /* ignored */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::name
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CMCE_Utility_Tests::expand_seed_test
      Src: /src/botan/src/tests/test_cmce.cpp:216,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
      Src: /src/botan/src/tests/test_cmce.cpp:217,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
      Src: /src/botan/src/tests/test_cmce.cpp:218,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
      Src: /src/botan/src/tests/test_cmce.cpp:219,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
      Src: /src/botan/src/tests/test_cmce.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: Botan_Tests::CMCE_Utility_Tests::run
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
    - Botan_Tests::CMCE_Utility_Tests::expand_seed_test
    - Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    - Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
    - Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: Botan_Tests::CMCE_Invalid_Test::CMCE_Invalid_Test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CMCE_Invalid_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:233,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:235,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:236,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:237,1
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_cmce.cpp:239,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:241,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_cmce.cpp:244,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:245,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:247,1
    - Dst: auto::is_pc
      Src: /src/botan/src/tests/test_cmce.cpp:249,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:253,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:254,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:255,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 261
    functionName: Botan_Tests::CMCE_Invalid_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CTR_DRBG_AES256>
    - Botan::Classic_McEliece_Parameters::create
    - get_req_bin
    - auto::decrypt
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::create_private_key
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - auto::is_pc
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params_str, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_test_instances_min
      Src: /src/botan/src/tests/test_cmce.cpp:269,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_cmce.cpp:270,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_cmce.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - get_test_instances_min
    - to_string
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Classic_McEliece_PublicKey>
      Src: /src/botan/src/tests/test_cmce.cpp:278,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_key_bits
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - std::make_unique<Botan::Classic_McEliece_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /*provider*/,\n                                                             std::span<const
      uint8_t> raw_key_bits) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 282
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::Classic_McEliece_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:291,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' header'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameters::create
    - Botan::Classic_McEliece_Parameter_Set::from_string
    linkageType: ''
    returnType: Botan::Classic_McEliece_Parameters
    signature: Botan::Classic_McEliece_Parameters get_params(const std::string& header)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_cmce_test
      Src: /src/botan/src/tests/test_cmce.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - skip_cmce_test
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& alg_name) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_cmce.cpp:300,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:300,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_cmce.cpp:302,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_cmce.cpp:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - value
    - var_type
    argTypes:
    - std::span<const uint8_t>
    - VarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::process
    - std::span<const uint8_t>::begin
    - Botan::HashFunction::create_or_throw
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> map_value(const std::string& /*params*/,\n                                     std::span<const
      uint8_t> value,\n                                     VarType var_type) const
      final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_cmce.cpp:307,1
    - Dst: Botan::seed_len
      Src: /src/botan/src/tests/test_cmce.cpp:307,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Fixed_Output_RNG
    - random_vec
    - Botan::seed_len
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const std::string& /*params*/, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Classic_McEliece_KAT_Tests::get_params
      Src: /src/botan/src/tests/test_cmce.cpp:316,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:318,1
    - Dst: auto::tau
      Src: /src/botan/src/tests/test_cmce.cpp:318,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_cmce.cpp:322,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' alg_name'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 327
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - random_vec
    - Fixed_Output_RNG
    - std::vector::end
    - Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    - std::vector::insert
    - auto::sigma1
    - auto::tau
    - auto::end
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: "Fixed_Output_RNG rng_for_encapsulation(const std::string& alg_name,\n
      \                                            Botan::RandomNumberGenerator& rng)
      const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::inspect_rng_after_encaps
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void inspect_rng_after_encaps(const std::string& /*params*/,\n                                    const
      Fixed_Output_RNG& /*rng*/,\n                                    Test::Result&
      /*result*/) const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_cmce.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cmce.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: poly_f
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::Classic_McEliece_Polynomial
      Src: /src/botan/src/tests/test_cmce.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bytes
    - ' ring'
    argTypes:
    - std::span<const uint8_t>
    - Botan::Classic_McEliece_Polynomial_Ring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_Tests::create_element_from_bytes
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::CmceGfElem
    - degree
    - std::vector::push_back
    - poly_f
    - Botan::Classic_McEliece_GF
    - std::vector::data
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - Botan::Classic_McEliece_Polynomial
    - std::span<const uint8_t>::size
    - Botan::load_le<uint16_t>
    - std::span<const uint8_t>::data
    - std::vector::size
    linkageType: ''
    returnType: Botan::Classic_McEliece_Polynomial
    signature: "Botan::Classic_McEliece_Polynomial create_element_from_bytes(std::span<const
      uint8_t> bytes,\n                                                             const
      Botan::Classic_McEliece_Polynomial_Ring& ring)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 68
    functionName: Botan_Tests::get_test_instances_all
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> get_test_instances_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: Botan_Tests::get_test_instances_min
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> get_test_instances_min()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_cmce.cpp:77,1
    - Dst: Botan_Tests::get_test_instances_all
      Src: /src/botan/src/tests/test_cmce.cpp:78,1
    - Dst: Botan_Tests::get_test_instances_min
      Src: /src/botan/src/tests/test_cmce.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan_Tests::instances_to_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::get_test_instances_min
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::get_test_instances_all
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> instances_to_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:85,1
    - Dst: Botan_Tests::instances_to_test
      Src: /src/botan/src/tests/test_cmce.cpp:86,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: Botan_Tests::skip_cmce_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::find
    - Botan::Classic_McEliece_Parameters::create
    - auto::parameter_set
    - Botan_Tests::instances_to_test
    - auto::end
    linkageType: ''
    returnType: bool
    signature: bool skip_cmce_test(const std::string& params_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:96,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_cmce.cpp:99,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:101,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::sigma2
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::q
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::t
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::ell
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::prg
      Src: /src/botan/src/tests/test_cmce.cpp:108,1
    - Dst: auto::erase
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 114
    functionName: Botan_Tests::CMCE_Utility_Tests::expand_seed_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode_locked
    - Botan::hex_decode
    - auto::begin
    - Botan::Classic_McEliece_Parameters::create
    - auto::ell
    - auto::prg
    - auto::n
    - Test::Result::test_bin_eq
    - auto::erase
    - auto::sigma1
    - auto::q
    - auto::end
    - auto::t
    - auto::sigma2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result expand_seed_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:120,1
    - Dst: Botan::CmceIrreducibleBits
      Src: /src/botan/src/tests/test_cmce.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:123,1
    - Dst: Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:127,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:128,1
    - Dst: auto::poly_f
      Src: /src/botan/src/tests/test_cmce.cpp:131,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:133,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:134,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_cmce.cpp:134,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 138
    functionName: Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
    - auto::poly_ring
    - auto::coef
    - Botan::Classic_McEliece_Parameters::create
    - Botan::CmceIrreducibleBits
    - auto::has_value
    - auto::value
    - Test::Result::test_is_true
    - auto::poly_f
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result irreducible_poly_gen_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:144,1
    - Dst: auto::gf
      Src: /src/botan/src/tests/test_cmce.cpp:146,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:146,1
    - Dst: auto::inv
      Src: /src/botan/src/tests/test_cmce.cpp:147,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    - Dst: elem
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached:
    - elem
    - Botan::CmceGfElem
    - auto::inv
    - Botan::Classic_McEliece_Parameters::create
    - auto::gf
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result gf_inv_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:157,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:159,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:161,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:162,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:167,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:168,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:173,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:174,1
    - Dst: multiply
      Src: /src/botan/src/tests/test_cmce.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 183
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - auto::poly_ring
    - auto::coef
    - Botan::Classic_McEliece_Parameters::create
    - create_element_from_bytes
    - multiply
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result gf_poly_mul_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: begin
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: end
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:204,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cmce.cpp:206,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_cmce.cpp:209,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_cmce.cpp:210,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_cmce.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 213
    functionName: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - begin
    - std::fill
    - auto::encrypt
    - Test::Result::test_failure
    - Botan::create_private_key
    - Test::Result::test_throws
    - static_cast<uint8_t>
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result rigged_rng_encryption_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - static_cast<uint8_t>
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> /* ignored */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::name
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CMCE_Utility_Tests::expand_seed_test
      Src: /src/botan/src/tests/test_cmce.cpp:216,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
      Src: /src/botan/src/tests/test_cmce.cpp:217,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
      Src: /src/botan/src/tests/test_cmce.cpp:218,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
      Src: /src/botan/src/tests/test_cmce.cpp:219,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
      Src: /src/botan/src/tests/test_cmce.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: Botan_Tests::CMCE_Utility_Tests::run
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
    - Botan_Tests::CMCE_Utility_Tests::expand_seed_test
    - Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    - Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
    - Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: Botan_Tests::CMCE_Invalid_Test::CMCE_Invalid_Test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CMCE_Invalid_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:233,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:235,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:236,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:237,1
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_cmce.cpp:239,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:241,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_cmce.cpp:244,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:245,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:247,1
    - Dst: auto::is_pc
      Src: /src/botan/src/tests/test_cmce.cpp:249,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:253,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:254,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:255,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 261
    functionName: Botan_Tests::CMCE_Invalid_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CTR_DRBG_AES256>
    - Botan::Classic_McEliece_Parameters::create
    - get_req_bin
    - auto::decrypt
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::create_private_key
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - auto::is_pc
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params_str, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_test_instances_min
      Src: /src/botan/src/tests/test_cmce.cpp:269,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_cmce.cpp:270,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_cmce.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - get_test_instances_min
    - to_string
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Classic_McEliece_PublicKey>
      Src: /src/botan/src/tests/test_cmce.cpp:278,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_key_bits
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - std::make_unique<Botan::Classic_McEliece_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /*provider*/,\n                                                             std::span<const
      uint8_t> raw_key_bits) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 282
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::Classic_McEliece_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:291,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' header'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached:
    - Botan::Classic_McEliece_Parameters::create
    - Botan::Classic_McEliece_Parameter_Set::from_string
    linkageType: ''
    returnType: Botan::Classic_McEliece_Parameters
    signature: Botan::Classic_McEliece_Parameters get_params(const std::string& header)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_cmce_test
      Src: /src/botan/src/tests/test_cmce.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - skip_cmce_test
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& alg_name) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_cmce.cpp:300,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:300,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_cmce.cpp:302,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_cmce.cpp:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - value
    - var_type
    argTypes:
    - std::span<const uint8_t>
    - VarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::process
    - std::span<const uint8_t>::begin
    - Botan::HashFunction::create_or_throw
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> map_value(const std::string& /*params*/,\n                                     std::span<const
      uint8_t> value,\n                                     VarType var_type) const
      final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_cmce.cpp:307,1
    - Dst: Botan::seed_len
      Src: /src/botan/src/tests/test_cmce.cpp:307,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Fixed_Output_RNG
    - random_vec
    - Botan::seed_len
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const std::string& /*params*/, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Classic_McEliece_KAT_Tests::get_params
      Src: /src/botan/src/tests/test_cmce.cpp:316,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:318,1
    - Dst: auto::tau
      Src: /src/botan/src/tests/test_cmce.cpp:318,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_cmce.cpp:322,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' alg_name'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 327
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - random_vec
    - Fixed_Output_RNG
    - std::vector::end
    - Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    - std::vector::insert
    - auto::sigma1
    - auto::tau
    - auto::end
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: "Fixed_Output_RNG rng_for_encapsulation(const std::string& alg_name,\n
      \                                            Botan::RandomNumberGenerator& rng)
      const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::inspect_rng_after_encaps
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void inspect_rng_after_encaps(const std::string& /*params*/,\n                                    const
      Fixed_Output_RNG& /*rng*/,\n                                    Test::Result&
      /*result*/) const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_cmce.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cmce.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: poly_f
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::Classic_McEliece_Polynomial
      Src: /src/botan/src/tests/test_cmce.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bytes
    - ' ring'
    argTypes:
    - std::span<const uint8_t>
    - Botan::Classic_McEliece_Polynomial_Ring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_Tests::create_element_from_bytes
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::CmceGfElem
    - degree
    - std::vector::push_back
    - poly_f
    - Botan::Classic_McEliece_GF
    - std::vector::data
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - Botan::Classic_McEliece_Polynomial
    - std::span<const uint8_t>::size
    - Botan::load_le<uint16_t>
    - std::span<const uint8_t>::data
    - std::vector::size
    linkageType: ''
    returnType: Botan::Classic_McEliece_Polynomial
    signature: "Botan::Classic_McEliece_Polynomial create_element_from_bytes(std::span<const
      uint8_t> bytes,\n                                                             const
      Botan::Classic_McEliece_Polynomial_Ring& ring)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 68
    functionName: Botan_Tests::get_test_instances_all
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> get_test_instances_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: Botan_Tests::get_test_instances_min
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> get_test_instances_min()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_cmce.cpp:77,1
    - Dst: Botan_Tests::get_test_instances_all
      Src: /src/botan/src/tests/test_cmce.cpp:78,1
    - Dst: Botan_Tests::get_test_instances_min
      Src: /src/botan/src/tests/test_cmce.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan_Tests::instances_to_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::get_test_instances_min
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::get_test_instances_all
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> instances_to_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:85,1
    - Dst: Botan_Tests::instances_to_test
      Src: /src/botan/src/tests/test_cmce.cpp:86,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: Botan_Tests::skip_cmce_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::find
    - Botan::Classic_McEliece_Parameters::create
    - auto::parameter_set
    - Botan_Tests::instances_to_test
    - auto::end
    linkageType: ''
    returnType: bool
    signature: bool skip_cmce_test(const std::string& params_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:96,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_cmce.cpp:99,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:101,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::sigma2
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::q
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::t
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::ell
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::prg
      Src: /src/botan/src/tests/test_cmce.cpp:108,1
    - Dst: auto::erase
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 114
    functionName: Botan_Tests::CMCE_Utility_Tests::expand_seed_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode_locked
    - Botan::hex_decode
    - auto::begin
    - Botan::Classic_McEliece_Parameters::create
    - auto::ell
    - auto::prg
    - auto::n
    - Test::Result::test_bin_eq
    - auto::erase
    - auto::sigma1
    - auto::q
    - auto::end
    - auto::t
    - auto::sigma2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result expand_seed_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:120,1
    - Dst: Botan::CmceIrreducibleBits
      Src: /src/botan/src/tests/test_cmce.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:123,1
    - Dst: Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:127,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:128,1
    - Dst: auto::poly_f
      Src: /src/botan/src/tests/test_cmce.cpp:131,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:133,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:134,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_cmce.cpp:134,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 138
    functionName: Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
    - auto::poly_ring
    - auto::coef
    - Botan::Classic_McEliece_Parameters::create
    - Botan::CmceIrreducibleBits
    - auto::has_value
    - auto::value
    - Test::Result::test_is_true
    - auto::poly_f
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result irreducible_poly_gen_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:144,1
    - Dst: auto::gf
      Src: /src/botan/src/tests/test_cmce.cpp:146,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:146,1
    - Dst: auto::inv
      Src: /src/botan/src/tests/test_cmce.cpp:147,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    - Dst: elem
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 2
    functionsReached:
    - elem
    - Botan::CmceGfElem
    - auto::inv
    - Botan::Classic_McEliece_Parameters::create
    - auto::gf
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result gf_inv_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:157,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:159,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:161,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:162,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:167,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:168,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:173,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:174,1
    - Dst: multiply
      Src: /src/botan/src/tests/test_cmce.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 183
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - auto::poly_ring
    - auto::coef
    - Botan::Classic_McEliece_Parameters::create
    - create_element_from_bytes
    - multiply
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result gf_poly_mul_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: begin
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: end
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:204,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cmce.cpp:206,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_cmce.cpp:209,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_cmce.cpp:210,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_cmce.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 213
    functionName: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - begin
    - std::fill
    - auto::encrypt
    - Test::Result::test_failure
    - Botan::create_private_key
    - Test::Result::test_throws
    - static_cast<uint8_t>
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result rigged_rng_encryption_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - static_cast<uint8_t>
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> /* ignored */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::name
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CMCE_Utility_Tests::expand_seed_test
      Src: /src/botan/src/tests/test_cmce.cpp:216,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
      Src: /src/botan/src/tests/test_cmce.cpp:217,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
      Src: /src/botan/src/tests/test_cmce.cpp:218,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
      Src: /src/botan/src/tests/test_cmce.cpp:219,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
      Src: /src/botan/src/tests/test_cmce.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: Botan_Tests::CMCE_Utility_Tests::run
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
    - Botan_Tests::CMCE_Utility_Tests::expand_seed_test
    - Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    - Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
    - Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: Botan_Tests::CMCE_Invalid_Test::CMCE_Invalid_Test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CMCE_Invalid_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:233,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:235,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:236,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:237,1
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_cmce.cpp:239,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:241,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_cmce.cpp:244,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:245,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:247,1
    - Dst: auto::is_pc
      Src: /src/botan/src/tests/test_cmce.cpp:249,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:253,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:254,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:255,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 261
    functionName: Botan_Tests::CMCE_Invalid_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CTR_DRBG_AES256>
    - Botan::Classic_McEliece_Parameters::create
    - get_req_bin
    - auto::decrypt
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::create_private_key
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - auto::is_pc
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params_str, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_test_instances_min
      Src: /src/botan/src/tests/test_cmce.cpp:269,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_cmce.cpp:270,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_cmce.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - get_test_instances_min
    - to_string
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Classic_McEliece_PublicKey>
      Src: /src/botan/src/tests/test_cmce.cpp:278,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_key_bits
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - std::make_unique<Botan::Classic_McEliece_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /*provider*/,\n                                                             std::span<const
      uint8_t> raw_key_bits) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 282
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::Classic_McEliece_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:291,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' header'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 2
    functionsReached:
    - Botan::Classic_McEliece_Parameters::create
    - Botan::Classic_McEliece_Parameter_Set::from_string
    linkageType: ''
    returnType: Botan::Classic_McEliece_Parameters
    signature: Botan::Classic_McEliece_Parameters get_params(const std::string& header)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_cmce_test
      Src: /src/botan/src/tests/test_cmce.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - skip_cmce_test
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& alg_name) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_cmce.cpp:300,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:300,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_cmce.cpp:302,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_cmce.cpp:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - value
    - var_type
    argTypes:
    - std::span<const uint8_t>
    - VarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::process
    - std::span<const uint8_t>::begin
    - Botan::HashFunction::create_or_throw
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> map_value(const std::string& /*params*/,\n                                     std::span<const
      uint8_t> value,\n                                     VarType var_type) const
      final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_cmce.cpp:307,1
    - Dst: Botan::seed_len
      Src: /src/botan/src/tests/test_cmce.cpp:307,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Fixed_Output_RNG
    - random_vec
    - Botan::seed_len
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const std::string& /*params*/, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Classic_McEliece_KAT_Tests::get_params
      Src: /src/botan/src/tests/test_cmce.cpp:316,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:318,1
    - Dst: auto::tau
      Src: /src/botan/src/tests/test_cmce.cpp:318,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_cmce.cpp:322,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' alg_name'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 327
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - random_vec
    - Fixed_Output_RNG
    - std::vector::end
    - Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    - std::vector::insert
    - auto::sigma1
    - auto::tau
    - auto::end
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: "Fixed_Output_RNG rng_for_encapsulation(const std::string& alg_name,\n
      \                                            Botan::RandomNumberGenerator& rng)
      const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::inspect_rng_after_encaps
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void inspect_rng_after_encaps(const std::string& /*params*/,\n                                    const
      Fixed_Output_RNG& /*rng*/,\n                                    Test::Result&
      /*result*/) const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:34,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_cmce.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cmce.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: poly_f
      Src: /src/botan/src/tests/test_cmce.cpp:41,1
    - Dst: Botan::Classic_McEliece_Polynomial
      Src: /src/botan/src/tests/test_cmce.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bytes
    - ' ring'
    argTypes:
    - std::span<const uint8_t>
    - Botan::Classic_McEliece_Polynomial_Ring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_Tests::create_element_from_bytes
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::CmceGfElem
    - degree
    - std::vector::push_back
    - poly_f
    - Botan::Classic_McEliece_GF
    - std::vector::data
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - Botan::Classic_McEliece_Polynomial
    - std::span<const uint8_t>::size
    - Botan::load_le<uint16_t>
    - std::span<const uint8_t>::data
    - std::vector::size
    linkageType: ''
    returnType: Botan::Classic_McEliece_Polynomial
    signature: "Botan::Classic_McEliece_Polynomial create_element_from_bytes(std::span<const
      uint8_t> bytes,\n                                                             const
      Botan::Classic_McEliece_Polynomial_Ring& ring)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 68
    functionName: Botan_Tests::get_test_instances_all
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> get_test_instances_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: Botan_Tests::get_test_instances_min
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> get_test_instances_min()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_cmce.cpp:77,1
    - Dst: Botan_Tests::get_test_instances_all
      Src: /src/botan/src/tests/test_cmce.cpp:78,1
    - Dst: Botan_Tests::get_test_instances_min
      Src: /src/botan/src/tests/test_cmce.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan_Tests::instances_to_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::get_test_instances_min
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::get_test_instances_all
    linkageType: ''
    returnType: std::vector<Botan::Classic_McEliece_Parameter_Set>
    signature: std::vector<Botan::Classic_McEliece_Parameter_Set> instances_to_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:85,1
    - Dst: Botan_Tests::instances_to_test
      Src: /src/botan/src/tests/test_cmce.cpp:86,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: Botan_Tests::skip_cmce_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::find
    - Botan::Classic_McEliece_Parameters::create
    - auto::parameter_set
    - Botan_Tests::instances_to_test
    - auto::end
    linkageType: ''
    returnType: bool
    signature: bool skip_cmce_test(const std::string& params_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:96,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_cmce.cpp:99,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:101,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::sigma2
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::q
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::t
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::ell
      Src: /src/botan/src/tests/test_cmce.cpp:106,1
    - Dst: auto::prg
      Src: /src/botan/src/tests/test_cmce.cpp:108,1
    - Dst: auto::erase
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 114
    functionName: Botan_Tests::CMCE_Utility_Tests::expand_seed_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode_locked
    - Botan::hex_decode
    - auto::begin
    - Botan::Classic_McEliece_Parameters::create
    - auto::ell
    - auto::prg
    - auto::n
    - Test::Result::test_bin_eq
    - auto::erase
    - auto::sigma1
    - auto::q
    - auto::end
    - auto::t
    - auto::sigma2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result expand_seed_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:120,1
    - Dst: Botan::CmceIrreducibleBits
      Src: /src/botan/src/tests/test_cmce.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:123,1
    - Dst: Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:127,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:128,1
    - Dst: auto::poly_f
      Src: /src/botan/src/tests/test_cmce.cpp:131,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:133,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:134,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_cmce.cpp:134,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 138
    functionName: Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
    - auto::poly_ring
    - auto::coef
    - Botan::Classic_McEliece_Parameters::create
    - Botan::CmceIrreducibleBits
    - auto::has_value
    - auto::value
    - Test::Result::test_is_true
    - auto::poly_f
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result irreducible_poly_gen_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:144,1
    - Dst: auto::gf
      Src: /src/botan/src/tests/test_cmce.cpp:146,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:146,1
    - Dst: auto::inv
      Src: /src/botan/src/tests/test_cmce.cpp:147,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    - Dst: elem
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 3
    functionsReached:
    - elem
    - Botan::CmceGfElem
    - auto::inv
    - Botan::Classic_McEliece_Parameters::create
    - auto::gf
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result gf_inv_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:157,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:159,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:161,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:162,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:167,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:168,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:173,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:174,1
    - Dst: multiply
      Src: /src/botan/src/tests/test_cmce.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 183
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - auto::poly_ring
    - auto::coef
    - Botan::Classic_McEliece_Parameters::create
    - create_element_from_bytes
    - multiply
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result gf_poly_mul_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: begin
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: end
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:204,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cmce.cpp:206,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_cmce.cpp:209,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_cmce.cpp:210,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_cmce.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 213
    functionName: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 3
    functionsReached:
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - begin
    - std::fill
    - auto::encrypt
    - Test::Result::test_failure
    - Botan::create_private_key
    - Test::Result::test_throws
    - static_cast<uint8_t>
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result rigged_rng_encryption_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - static_cast<uint8_t>
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> /* ignored */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::name
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan_Tests::CMCE_Utility_Tests::All_Zero_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CMCE_Utility_Tests::expand_seed_test
      Src: /src/botan/src/tests/test_cmce.cpp:216,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
      Src: /src/botan/src/tests/test_cmce.cpp:217,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
      Src: /src/botan/src/tests/test_cmce.cpp:218,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
      Src: /src/botan/src/tests/test_cmce.cpp:219,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
      Src: /src/botan/src/tests/test_cmce.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: Botan_Tests::CMCE_Utility_Tests::run
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
    - Botan_Tests::CMCE_Utility_Tests::expand_seed_test
    - Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    - Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
    - Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: Botan_Tests::CMCE_Invalid_Test::CMCE_Invalid_Test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CMCE_Invalid_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:233,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:235,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:236,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:237,1
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_cmce.cpp:239,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:241,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_cmce.cpp:244,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:245,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:247,1
    - Dst: auto::is_pc
      Src: /src/botan/src/tests/test_cmce.cpp:249,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:253,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:254,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:255,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cmce.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 261
    functionName: Botan_Tests::CMCE_Invalid_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CTR_DRBG_AES256>
    - Botan::Classic_McEliece_Parameters::create
    - get_req_bin
    - auto::decrypt
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::create_private_key
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - auto::is_pc
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params_str, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_test_instances_min
      Src: /src/botan/src/tests/test_cmce.cpp:269,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_cmce.cpp:270,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_cmce.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - get_test_instances_min
    - to_string
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Classic_McEliece_PublicKey>
      Src: /src/botan/src/tests/test_cmce.cpp:278,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_key_bits
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - std::make_unique<Botan::Classic_McEliece_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /*provider*/,\n                                                             std::span<const
      uint8_t> raw_key_bits) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 282
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::Classic_McEliece_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/tests/test_cmce.cpp:291,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' header'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 3
    functionsReached:
    - Botan::Classic_McEliece_Parameters::create
    - Botan::Classic_McEliece_Parameter_Set::from_string
    linkageType: ''
    returnType: Botan::Classic_McEliece_Parameters
    signature: Botan::Classic_McEliece_Parameters get_params(const std::string& header)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_cmce_test
      Src: /src/botan/src/tests/test_cmce.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - skip_cmce_test
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& alg_name) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_cmce.cpp:300,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:300,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_cmce.cpp:302,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_cmce.cpp:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - value
    - var_type
    argTypes:
    - std::span<const uint8_t>
    - VarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::process
    - std::span<const uint8_t>::begin
    - Botan::HashFunction::create_or_throw
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> map_value(const std::string& /*params*/,\n                                     std::span<const
      uint8_t> value,\n                                     VarType var_type) const
      final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_cmce.cpp:307,1
    - Dst: Botan::seed_len
      Src: /src/botan/src/tests/test_cmce.cpp:307,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Fixed_Output_RNG
    - random_vec
    - Botan::seed_len
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const std::string& /*params*/, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Classic_McEliece_KAT_Tests::get_params
      Src: /src/botan/src/tests/test_cmce.cpp:316,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:318,1
    - Dst: auto::tau
      Src: /src/botan/src/tests/test_cmce.cpp:318,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_cmce.cpp:322,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:323,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' alg_name'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 327
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - random_vec
    - Fixed_Output_RNG
    - std::vector::end
    - Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    - std::vector::insert
    - auto::sigma1
    - auto::tau
    - auto::end
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: "Fixed_Output_RNG rng_for_encapsulation(const std::string& alg_name,\n
      \                                            Botan::RandomNumberGenerator& rng)
      const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::inspect_rng_after_encaps
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void inspect_rng_after_encaps(const std::string& /*params*/,\n                                    const
      Fixed_Output_RNG& /*rng*/,\n                                    Test::Result&
      /*result*/) const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::XMSS_Signature_Tests::XMSS_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: Botan_Tests::XMSS_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::Test::run_long_tests
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_Tests::XMSS_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:51,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    - Dst: std::make_unique<Botan::XMSS_PrivateKey>
      Src: /src/botan/src/tests/test_xmss.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: Botan_Tests::XMSS_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - std::make_unique<Botan::XMSS_PrivateKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::XMSS_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:66,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::XMSS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::XMSS_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:80,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::XMSS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_Tests::XMSS_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::XMSS_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Parameters::xmss_algorithm_t
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:97,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:97,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: Botan_Tests::XMSS_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Parameters::xmss_algorithm_t
    - auto::element_size
    - Botan::BufferSlicer::take
    - std::move
    - Botan::XMSS_Parameters::XMSS_Parameters
    - Botan::load_be
    - std::make_unique<Botan::XMSS_PublicKey>
    - Botan::BufferSlicer::copy_as_secure_vector
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::XMSS_Keygen_Reference_Test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Keygen_Reference_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:115,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: data
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: size
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:122,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:122,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:123,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:123,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: Botan::XMSS_Parameters::xmss_id_from_string
      Src: /src/botan/src/tests/test_xmss.cpp:126,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:126,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    - Dst: Botan::XMSS_PrivateKey::raw_public_key
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - data
    - Botan::XMSS_PrivateKey::raw_public_key
    - Botan::XMSS_Parameters::xmss_id_from_string
    - Fixed_Output_RNG::add_entropy
    - add_entropy
    - Test::Result::test_bin_eq
    - size
    - get_req_bin
    - Botan::XMSS_PrivateKey::raw_private_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:137,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    - Dst: auto::hash_function_name
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::XMSS_Parameters::XMSS_Parameters
    - auto::hash_function_name
    - Botan::HashFunction::create
    - Botan_Tests::Test::run_long_tests
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:145,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:148,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:151,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:154,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:161,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:164,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:165,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:176,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:176,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xmss.cpp:177,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 179
    functionName: Botan_Tests::xmss_statefulness
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::sign_message
    - Botan::hex_decode
    - Botan::XMSS_PrivateKey::remaining_operations
    - Botan_Tests::CHECK
    - sign_something
    - test_throws
    - test_opt_u64_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> xmss_statefulness()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:182,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:188,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:194,1
    - Dst: Botan::XMSS_PrivateKey::XMSS_PrivateKey
      Src: /src/botan/src/tests/test_xmss.cpp:267,1
    - Dst: Botan::XMSS_PrivateKey::public_key
      Src: /src/botan/src/tests/test_xmss.cpp:268,1
    - Dst: Botan::XMSS_PublicKey::XMSS_PublicKey
      Src: /src/botan/src/tests/test_xmss.cpp:269,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:271,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:274,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:277,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:280,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:283,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:284,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:287,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:290,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:291,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:294,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:297,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:300,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 304
    functionName: Botan_Tests::xmss_legacy_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_PublicKey::XMSS_PublicKey
    - Botan::hex_decode
    - Botan::PK_Signer::sign_message
    - Botan_Tests::CHECK
    - Botan::XMSS_PrivateKey::XMSS_PrivateKey
    - test_is_true
    - Botan::XMSS_PrivateKey::public_key
    - Botan::PK_Verifier::verify_message
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> xmss_legacy_private_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::XMSS_Signature_Tests::XMSS_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: Botan_Tests::XMSS_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::Test::run_long_tests
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_Tests::XMSS_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:51,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    - Dst: std::make_unique<Botan::XMSS_PrivateKey>
      Src: /src/botan/src/tests/test_xmss.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: Botan_Tests::XMSS_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - std::make_unique<Botan::XMSS_PrivateKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::XMSS_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:66,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::XMSS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::XMSS_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:80,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::XMSS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_Tests::XMSS_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::XMSS_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Parameters::xmss_algorithm_t
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:97,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:97,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: Botan_Tests::XMSS_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Parameters::xmss_algorithm_t
    - auto::element_size
    - Botan::BufferSlicer::take
    - std::move
    - Botan::XMSS_Parameters::XMSS_Parameters
    - Botan::load_be
    - std::make_unique<Botan::XMSS_PublicKey>
    - Botan::BufferSlicer::copy_as_secure_vector
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::XMSS_Keygen_Reference_Test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Keygen_Reference_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:115,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: data
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: size
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:122,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:122,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:123,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:123,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: Botan::XMSS_Parameters::xmss_id_from_string
      Src: /src/botan/src/tests/test_xmss.cpp:126,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:126,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    - Dst: Botan::XMSS_PrivateKey::raw_public_key
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - data
    - Botan::XMSS_PrivateKey::raw_public_key
    - Botan::XMSS_Parameters::xmss_id_from_string
    - Fixed_Output_RNG::add_entropy
    - add_entropy
    - Test::Result::test_bin_eq
    - size
    - get_req_bin
    - Botan::XMSS_PrivateKey::raw_private_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:137,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    - Dst: auto::hash_function_name
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::XMSS_Parameters::XMSS_Parameters
    - auto::hash_function_name
    - Botan::HashFunction::create
    - Botan_Tests::Test::run_long_tests
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:145,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:148,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:151,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:154,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:161,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:164,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:165,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:176,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:176,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xmss.cpp:177,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 179
    functionName: Botan_Tests::xmss_statefulness
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::sign_message
    - Botan::hex_decode
    - Botan::XMSS_PrivateKey::remaining_operations
    - Botan_Tests::CHECK
    - sign_something
    - test_throws
    - test_opt_u64_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> xmss_statefulness()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:182,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:188,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:194,1
    - Dst: Botan::XMSS_PrivateKey::XMSS_PrivateKey
      Src: /src/botan/src/tests/test_xmss.cpp:267,1
    - Dst: Botan::XMSS_PrivateKey::public_key
      Src: /src/botan/src/tests/test_xmss.cpp:268,1
    - Dst: Botan::XMSS_PublicKey::XMSS_PublicKey
      Src: /src/botan/src/tests/test_xmss.cpp:269,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:271,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:274,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:277,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:280,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:283,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:284,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:287,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:290,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:291,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:294,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:297,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:300,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 304
    functionName: Botan_Tests::xmss_legacy_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_PublicKey::XMSS_PublicKey
    - Botan::hex_decode
    - Botan::PK_Signer::sign_message
    - Botan_Tests::CHECK
    - Botan::XMSS_PrivateKey::XMSS_PrivateKey
    - test_is_true
    - Botan::XMSS_PrivateKey::public_key
    - Botan::PK_Verifier::verify_message
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> xmss_legacy_private_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::XMSS_Signature_Tests::XMSS_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: Botan_Tests::XMSS_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::Test::run_long_tests
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_Tests::XMSS_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:51,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    - Dst: std::make_unique<Botan::XMSS_PrivateKey>
      Src: /src/botan/src/tests/test_xmss.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: Botan_Tests::XMSS_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - std::make_unique<Botan::XMSS_PrivateKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::XMSS_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:66,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::XMSS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::XMSS_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:80,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::XMSS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_Tests::XMSS_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::XMSS_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Parameters::xmss_algorithm_t
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:97,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:97,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: Botan_Tests::XMSS_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Parameters::xmss_algorithm_t
    - auto::element_size
    - Botan::BufferSlicer::take
    - std::move
    - Botan::XMSS_Parameters::XMSS_Parameters
    - Botan::load_be
    - std::make_unique<Botan::XMSS_PublicKey>
    - Botan::BufferSlicer::copy_as_secure_vector
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::XMSS_Keygen_Reference_Test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Keygen_Reference_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:115,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: data
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: size
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:122,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:122,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:123,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:123,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: Botan::XMSS_Parameters::xmss_id_from_string
      Src: /src/botan/src/tests/test_xmss.cpp:126,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:126,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    - Dst: Botan::XMSS_PrivateKey::raw_public_key
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - data
    - Botan::XMSS_PrivateKey::raw_public_key
    - Botan::XMSS_Parameters::xmss_id_from_string
    - Fixed_Output_RNG::add_entropy
    - add_entropy
    - Test::Result::test_bin_eq
    - size
    - get_req_bin
    - Botan::XMSS_PrivateKey::raw_private_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:137,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    - Dst: auto::hash_function_name
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::XMSS_Parameters::XMSS_Parameters
    - auto::hash_function_name
    - Botan::HashFunction::create
    - Botan_Tests::Test::run_long_tests
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:145,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:148,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:151,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:154,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:161,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:164,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:165,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:176,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:176,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xmss.cpp:177,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 179
    functionName: Botan_Tests::xmss_statefulness
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::sign_message
    - Botan::hex_decode
    - Botan::XMSS_PrivateKey::remaining_operations
    - Botan_Tests::CHECK
    - sign_something
    - test_throws
    - test_opt_u64_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> xmss_statefulness()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:182,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:188,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:194,1
    - Dst: Botan::XMSS_PrivateKey::XMSS_PrivateKey
      Src: /src/botan/src/tests/test_xmss.cpp:267,1
    - Dst: Botan::XMSS_PrivateKey::public_key
      Src: /src/botan/src/tests/test_xmss.cpp:268,1
    - Dst: Botan::XMSS_PublicKey::XMSS_PublicKey
      Src: /src/botan/src/tests/test_xmss.cpp:269,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:271,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:274,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:277,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:280,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:283,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:284,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:287,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:290,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:291,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:294,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:297,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:300,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 304
    functionName: Botan_Tests::xmss_legacy_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_PublicKey::XMSS_PublicKey
    - Botan::hex_decode
    - Botan::PK_Signer::sign_message
    - Botan_Tests::CHECK
    - Botan::XMSS_PrivateKey::XMSS_PrivateKey
    - test_is_true
    - Botan::XMSS_PrivateKey::public_key
    - Botan::PK_Verifier::verify_message
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> xmss_legacy_private_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::XMSS_Signature_Tests::XMSS_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: Botan_Tests::XMSS_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::Test::run_long_tests
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_Tests::XMSS_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:51,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    - Dst: std::make_unique<Botan::XMSS_PrivateKey>
      Src: /src/botan/src/tests/test_xmss.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: Botan_Tests::XMSS_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - std::make_unique<Botan::XMSS_PrivateKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::XMSS_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:66,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::XMSS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::XMSS_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:80,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::XMSS_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_Tests::XMSS_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::XMSS_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Parameters::xmss_algorithm_t
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:97,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:97,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: Botan_Tests::XMSS_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Parameters::xmss_algorithm_t
    - auto::element_size
    - Botan::BufferSlicer::take
    - std::move
    - Botan::XMSS_Parameters::XMSS_Parameters
    - Botan::load_be
    - std::make_unique<Botan::XMSS_PublicKey>
    - Botan::BufferSlicer::copy_as_secure_vector
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::XMSS_Keygen_Reference_Test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Keygen_Reference_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:115,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: data
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: size
      Src: /src/botan/src/tests/test_xmss.cpp:118,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:122,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:122,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:123,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:123,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: Botan::XMSS_Parameters::xmss_id_from_string
      Src: /src/botan/src/tests/test_xmss.cpp:126,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:126,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:129,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    - Dst: Botan::XMSS_PrivateKey::raw_public_key
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - data
    - Botan::XMSS_PrivateKey::raw_public_key
    - Botan::XMSS_Parameters::xmss_id_from_string
    - Fixed_Output_RNG::add_entropy
    - add_entropy
    - Test::Result::test_bin_eq
    - size
    - get_req_bin
    - Botan::XMSS_PrivateKey::raw_private_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:137,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    - Dst: auto::hash_function_name
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::XMSS_Parameters::XMSS_Parameters
    - auto::hash_function_name
    - Botan::HashFunction::create
    - Botan_Tests::Test::run_long_tests
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:145,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:148,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:151,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:154,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:161,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:164,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:165,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: test_opt_u64_eq
      Src: /src/botan/src/tests/test_xmss.cpp:176,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:176,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xmss.cpp:177,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 179
    functionName: Botan_Tests::xmss_statefulness
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::sign_message
    - Botan::hex_decode
    - Botan::XMSS_PrivateKey::remaining_operations
    - Botan_Tests::CHECK
    - sign_something
    - test_throws
    - test_opt_u64_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> xmss_statefulness()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:182,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:188,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:194,1
    - Dst: Botan::XMSS_PrivateKey::XMSS_PrivateKey
      Src: /src/botan/src/tests/test_xmss.cpp:267,1
    - Dst: Botan::XMSS_PrivateKey::public_key
      Src: /src/botan/src/tests/test_xmss.cpp:268,1
    - Dst: Botan::XMSS_PublicKey::XMSS_PublicKey
      Src: /src/botan/src/tests/test_xmss.cpp:269,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:271,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:274,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:277,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:280,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:283,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:284,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:287,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:290,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:291,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:294,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:297,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xmss.cpp:300,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 304
    functionName: Botan_Tests::xmss_legacy_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_PublicKey::XMSS_PublicKey
    - Botan::hex_decode
    - Botan::PK_Signer::sign_message
    - Botan_Tests::CHECK
    - Botan::XMSS_PrivateKey::XMSS_PrivateKey
    - test_is_true
    - Botan::XMSS_PrivateKey::public_key
    - Botan::PK_Verifier::verify_message
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> xmss_legacy_private_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::SIV_Tests::SIV_Tests
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SIV_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:26,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_siv.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:28,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_siv.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_siv.cpp:30,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_siv.cpp:36,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_siv.cpp:39,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_siv.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_siv.cpp:45,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_siv.cpp:46,1
    - Dst: auto::set_associated_data_n
      Src: /src/botan/src/tests/test_siv.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_siv.cpp:51,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_siv.cpp:52,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_siv.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 57
    functionName: Botan_Tests::SIV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_decode
    - Test::Result::test_note
    - Botan::split_on
    - auto::set_key
    - std::vector::end
    - get_opt_bin
    - auto::start
    - Botan::AEAD_Mode::create
    - auto::finish
    - std::vector::begin
    - Test::Result::test_bin_eq
    - auto::set_associated_data_n
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::SIV_Tests::SIV_Tests
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SIV_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:26,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_siv.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:28,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_siv.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_siv.cpp:30,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_siv.cpp:36,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_siv.cpp:39,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_siv.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_siv.cpp:45,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_siv.cpp:46,1
    - Dst: auto::set_associated_data_n
      Src: /src/botan/src/tests/test_siv.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_siv.cpp:51,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_siv.cpp:52,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_siv.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 57
    functionName: Botan_Tests::SIV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_decode
    - Test::Result::test_note
    - Botan::split_on
    - auto::set_key
    - std::vector::end
    - get_opt_bin
    - auto::start
    - Botan::AEAD_Mode::create
    - auto::finish
    - std::vector::begin
    - Test::Result::test_bin_eq
    - auto::set_associated_data_n
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::SIV_Tests::SIV_Tests
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SIV_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:26,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_siv.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:28,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_siv.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_siv.cpp:30,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_siv.cpp:36,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_siv.cpp:39,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_siv.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_siv.cpp:45,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_siv.cpp:46,1
    - Dst: auto::set_associated_data_n
      Src: /src/botan/src/tests/test_siv.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_siv.cpp:51,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_siv.cpp:52,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_siv.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 57
    functionName: Botan_Tests::SIV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_decode
    - Test::Result::test_note
    - Botan::split_on
    - auto::set_key
    - std::vector::end
    - get_opt_bin
    - auto::start
    - Botan::AEAD_Mode::create
    - auto::finish
    - std::vector::begin
    - Test::Result::test_bin_eq
    - auto::set_associated_data_n
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::SIV_Tests::SIV_Tests
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SIV_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:26,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_siv.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:28,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_siv.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_siv.cpp:30,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_siv.cpp:36,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_siv.cpp:39,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_siv.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_siv.cpp:45,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_siv.cpp:46,1
    - Dst: auto::set_associated_data_n
      Src: /src/botan/src/tests/test_siv.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_siv.cpp:51,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_siv.cpp:52,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_siv.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 57
    functionName: Botan_Tests::SIV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_decode
    - Test::Result::test_note
    - Botan::split_on
    - auto::set_key
    - std::vector::end
    - get_opt_bin
    - auto::start
    - Botan::AEAD_Mode::create
    - auto::finish
    - std::vector::begin
    - Test::Result::test_bin_eq
    - auto::set_associated_data_n
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_uri.cpp:26,1
    - Dst: Botan::URI::type
      Src: /src/botan/src/tests/test_uri.cpp:26,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:27,1
    - Dst: Botan::URI::host
      Src: /src/botan/src/tests/test_uri.cpp:27,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_uri.cpp:28,1
    - Dst: Botan::URI::port
      Src: /src/botan/src/tests/test_uri.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: Botan_Tests::URI_Tests::test_uri_ctor
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - Botan::URI::host
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::URI::port
    - Test::Result::test_is_true
    - Botan::URI::type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:35,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:36,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:37,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:38,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:39,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:39,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:40,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: Botan_Tests::URI_Tests::test_uri_tostring
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - Botan::URI
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_tostring()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: host
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_uri.cpp:66,1
    - Dst: port
      Src: /src/botan/src/tests/test_uri.cpp:66,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:70,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:70,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:73,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:73,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:76,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:76,1
    - Dst: Botan::URI::from_any
      Src: /src/botan/src/tests/test_uri.cpp:79,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: auto::type
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:81,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:83,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:83,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:85,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:85,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:87,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:87,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:93,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:93,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:94,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 97
    functionName: Botan_Tests::URI_Tests::test_uri_parsing
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - Botan::URI::from_ipv4
    - Botan::URI::from_domain
    - Test::Result::test_u16_eq
    - Botan::URI::from_any
    - Botan::URI::from_ipv6
    - port
    - Test::Result::test_str_eq
    - host
    - test_URI
    - auto::type
    - Test::Result::test_throws
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::URI::from_any
      Src: /src/botan/src/tests/test_uri.cpp:114,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_uri.cpp:115,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_uri.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 121
    functionName: Botan_Tests::URI_Tests::test_uri_parsing_invalid
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Botan::URI::from_any
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_parsing_invalid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:127,1
    - Dst: Botan_Tests::URI_Tests::test_uri_ctor
      Src: /src/botan/src/tests/test_uri.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:128,1
    - Dst: Botan_Tests::URI_Tests::test_uri_tostring
      Src: /src/botan/src/tests/test_uri.cpp:128,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:129,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing
      Src: /src/botan/src/tests/test_uri.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:130,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing_invalid
      Src: /src/botan/src/tests/test_uri.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: Botan_Tests::URI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::URI_Tests::test_uri_tostring
    - Botan_Tests::URI_Tests::test_uri_parsing_invalid
    - Botan_Tests::URI_Tests::test_uri_ctor
    - Botan_Tests::URI_Tests::test_uri_parsing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_uri.cpp:26,1
    - Dst: Botan::URI::type
      Src: /src/botan/src/tests/test_uri.cpp:26,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:27,1
    - Dst: Botan::URI::host
      Src: /src/botan/src/tests/test_uri.cpp:27,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_uri.cpp:28,1
    - Dst: Botan::URI::port
      Src: /src/botan/src/tests/test_uri.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: Botan_Tests::URI_Tests::test_uri_ctor
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 1
    functionsReached:
    - Botan::URI::host
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::URI::port
    - Test::Result::test_is_true
    - Botan::URI::type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:35,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:36,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:37,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:38,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:39,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:39,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:40,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: Botan_Tests::URI_Tests::test_uri_tostring
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 1
    functionsReached:
    - Botan::URI
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_tostring()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: host
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_uri.cpp:66,1
    - Dst: port
      Src: /src/botan/src/tests/test_uri.cpp:66,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:70,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:70,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:73,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:73,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:76,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:76,1
    - Dst: Botan::URI::from_any
      Src: /src/botan/src/tests/test_uri.cpp:79,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: auto::type
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:81,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:83,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:83,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:85,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:85,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:87,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:87,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:93,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:93,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:94,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 97
    functionName: Botan_Tests::URI_Tests::test_uri_parsing
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 1
    functionsReached:
    - Botan::URI::from_ipv4
    - Botan::URI::from_domain
    - Test::Result::test_u16_eq
    - Botan::URI::from_any
    - Botan::URI::from_ipv6
    - port
    - Test::Result::test_str_eq
    - host
    - test_URI
    - auto::type
    - Test::Result::test_throws
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::URI::from_any
      Src: /src/botan/src/tests/test_uri.cpp:114,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_uri.cpp:115,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_uri.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 121
    functionName: Botan_Tests::URI_Tests::test_uri_parsing_invalid
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_success
    - Botan::URI::from_any
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_parsing_invalid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:127,1
    - Dst: Botan_Tests::URI_Tests::test_uri_ctor
      Src: /src/botan/src/tests/test_uri.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:128,1
    - Dst: Botan_Tests::URI_Tests::test_uri_tostring
      Src: /src/botan/src/tests/test_uri.cpp:128,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:129,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing
      Src: /src/botan/src/tests/test_uri.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:130,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing_invalid
      Src: /src/botan/src/tests/test_uri.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: Botan_Tests::URI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::URI_Tests::test_uri_tostring
    - Botan_Tests::URI_Tests::test_uri_parsing_invalid
    - Botan_Tests::URI_Tests::test_uri_ctor
    - Botan_Tests::URI_Tests::test_uri_parsing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_uri.cpp:26,1
    - Dst: Botan::URI::type
      Src: /src/botan/src/tests/test_uri.cpp:26,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:27,1
    - Dst: Botan::URI::host
      Src: /src/botan/src/tests/test_uri.cpp:27,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_uri.cpp:28,1
    - Dst: Botan::URI::port
      Src: /src/botan/src/tests/test_uri.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: Botan_Tests::URI_Tests::test_uri_ctor
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 2
    functionsReached:
    - Botan::URI::host
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::URI::port
    - Test::Result::test_is_true
    - Botan::URI::type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:35,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:36,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:37,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:38,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:39,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:39,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:40,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: Botan_Tests::URI_Tests::test_uri_tostring
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 2
    functionsReached:
    - Botan::URI
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_tostring()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: host
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_uri.cpp:66,1
    - Dst: port
      Src: /src/botan/src/tests/test_uri.cpp:66,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:70,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:70,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:73,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:73,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:76,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:76,1
    - Dst: Botan::URI::from_any
      Src: /src/botan/src/tests/test_uri.cpp:79,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: auto::type
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:81,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:83,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:83,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:85,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:85,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:87,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:87,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:93,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:93,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:94,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 97
    functionName: Botan_Tests::URI_Tests::test_uri_parsing
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 2
    functionsReached:
    - Botan::URI::from_ipv4
    - Botan::URI::from_domain
    - Test::Result::test_u16_eq
    - Botan::URI::from_any
    - Botan::URI::from_ipv6
    - port
    - Test::Result::test_str_eq
    - host
    - test_URI
    - auto::type
    - Test::Result::test_throws
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::URI::from_any
      Src: /src/botan/src/tests/test_uri.cpp:114,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_uri.cpp:115,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_uri.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 121
    functionName: Botan_Tests::URI_Tests::test_uri_parsing_invalid
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_success
    - Botan::URI::from_any
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_parsing_invalid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:127,1
    - Dst: Botan_Tests::URI_Tests::test_uri_ctor
      Src: /src/botan/src/tests/test_uri.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:128,1
    - Dst: Botan_Tests::URI_Tests::test_uri_tostring
      Src: /src/botan/src/tests/test_uri.cpp:128,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:129,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing
      Src: /src/botan/src/tests/test_uri.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:130,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing_invalid
      Src: /src/botan/src/tests/test_uri.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: Botan_Tests::URI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::URI_Tests::test_uri_tostring
    - Botan_Tests::URI_Tests::test_uri_parsing_invalid
    - Botan_Tests::URI_Tests::test_uri_ctor
    - Botan_Tests::URI_Tests::test_uri_parsing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_uri.cpp:26,1
    - Dst: Botan::URI::type
      Src: /src/botan/src/tests/test_uri.cpp:26,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:27,1
    - Dst: Botan::URI::host
      Src: /src/botan/src/tests/test_uri.cpp:27,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_uri.cpp:28,1
    - Dst: Botan::URI::port
      Src: /src/botan/src/tests/test_uri.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: Botan_Tests::URI_Tests::test_uri_ctor
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 3
    functionsReached:
    - Botan::URI::host
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::URI::port
    - Test::Result::test_is_true
    - Botan::URI::type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:35,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:36,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:37,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:38,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:39,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:39,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:40,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: Botan_Tests::URI_Tests::test_uri_tostring
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 3
    functionsReached:
    - Botan::URI
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_tostring()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: host
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_uri.cpp:66,1
    - Dst: port
      Src: /src/botan/src/tests/test_uri.cpp:66,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:70,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:70,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:73,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:73,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:76,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:76,1
    - Dst: Botan::URI::from_any
      Src: /src/botan/src/tests/test_uri.cpp:79,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: auto::type
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:81,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:83,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:83,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:85,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:85,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:87,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:87,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:93,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:93,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:94,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 97
    functionName: Botan_Tests::URI_Tests::test_uri_parsing
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 3
    functionsReached:
    - Botan::URI::from_ipv4
    - Botan::URI::from_domain
    - Test::Result::test_u16_eq
    - Botan::URI::from_any
    - Botan::URI::from_ipv6
    - port
    - Test::Result::test_str_eq
    - host
    - test_URI
    - auto::type
    - Test::Result::test_throws
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::URI::from_any
      Src: /src/botan/src/tests/test_uri.cpp:114,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_uri.cpp:115,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_uri.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 121
    functionName: Botan_Tests::URI_Tests::test_uri_parsing_invalid
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_success
    - Botan::URI::from_any
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_parsing_invalid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:127,1
    - Dst: Botan_Tests::URI_Tests::test_uri_ctor
      Src: /src/botan/src/tests/test_uri.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:128,1
    - Dst: Botan_Tests::URI_Tests::test_uri_tostring
      Src: /src/botan/src/tests/test_uri.cpp:128,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:129,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing
      Src: /src/botan/src/tests/test_uri.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:130,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing_invalid
      Src: /src/botan/src/tests/test_uri.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: Botan_Tests::URI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::URI_Tests::test_uri_tostring
    - Botan_Tests::URI_Tests::test_uri_parsing_invalid
    - Botan_Tests::URI_Tests::test_uri_ctor
    - Botan_Tests::URI_Tests::test_uri_parsing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - what
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_Tests::Test_Aborted::Test_Aborted
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Aborted(std::string_view what)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_Tests::Test_Options::Test_Options
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 22
    argNames:
    - ' requested_tests'
    - ' skip_tests'
    - ' data_dir'
    - ' pkcs11_lib'
    - ' provider'
    - ' tpm2_tcti_name'
    - ' tpm2_tcti_conf'
    - tpm2_persistent_rsa_handle
    - tpm2_persistent_ecc_handle
    - ' tpm2_persistent_auth_value'
    - ' drbg_seed'
    - ' xml_results_dir'
    - ' report_properties'
    - test_runs
    - test_threads
    - verbose
    - log_success
    - run_online_tests
    - run_long_tests
    - run_memory_intensive_tests
    - abort_on_first_fail
    - no_stdout
    argTypes:
    - std::vector<std::string>
    - std::vector<std::string>
    - std::string
    - std::string
    - std::string
    - std::string
    - std::string
    - size_t
    - size_t
    - std::string
    - std::string
    - std::string
    - std::vector<std::string>
    - size_t
    - size_t
    - bool
    - bool
    - bool
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Test_Options::Test_Options
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Options(const std::vector<std::string>& requested_tests,\n
      \                  const std::vector<std::string>& skip_tests,\n                   const
      std::string& data_dir,\n                   const std::string& pkcs11_lib,\n
      \                  const std::string& provider,\n                   const std::string&
      tpm2_tcti_name,\n                   const std::string& tpm2_tcti_conf,\n                   size_t
      tpm2_persistent_rsa_handle,\n                   size_t tpm2_persistent_ecc_handle,\n
      \                  const std::string& tpm2_persistent_auth_value,\n                   const
      std::string& drbg_seed,\n                   const std::string& xml_results_dir,\n
      \                  const std::vector<std::string>& report_properties,\n                   size_t
      test_runs,\n                   size_t test_threads,\n                   bool
      verbose,\n                   bool log_success,\n                   bool run_online_tests,\n
      \                  bool run_long_tests,\n                   bool run_memory_intensive_tests,\n
      \                  bool abort_on_first_fail,\n                   bool no_stdout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: '& requested_tests() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & requested_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& skip_tests() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & skip_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& data_dir() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & data_dir() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: '& pkcs11_lib() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & pkcs11_lib() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: '& provider() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '& tpm2_tcti_name() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> & tpm2_tcti_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: '& tpm2_tcti_conf() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> & tpm2_tcti_conf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/tests.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_Tests::Test_Options::tpm2_persistent_rsa_handle
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tpm2_persistent_rsa_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/tests.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_Tests::Test_Options::tpm2_persistent_ecc_handle
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tpm2_persistent_ecc_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& tpm2_persistent_auth_value() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & tpm2_persistent_auth_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: '& drbg_seed() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & drbg_seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: '& xml_results_dir() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & xml_results_dir() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: '& report_properties() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & report_properties() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan_Tests::Test_Options::test_runs
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t test_runs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_Tests::Test_Options::test_threads
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t test_threads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::Test_Options::log_success
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool log_success() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan_Tests::Test_Options::run_online_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_online_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan_Tests::Test_Options::run_long_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_long_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: Botan_Tests::Test_Options::run_memory_intensive_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_memory_intensive_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan_Tests::Test_Options::abort_on_first_fail
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool abort_on_first_fail() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: Botan_Tests::Test_Options::no_stdout
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_stdout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: Botan_Tests::Test_Options::verbose
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool verbose() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: Botan_Tests::Test::Result::tests_passed
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tests_passed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/tests.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: Botan_Tests::Test::Result::tests_failed
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t tests_failed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::tests_passed
      Src: /src/botan/src/tests/tests.h:206,1
    - Dst: Botan_Tests::Test::Result::tests_failed
      Src: /src/botan/src/tests/tests.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: Botan_Tests::Test::Result::tests_run
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::tests_passed
    - Botan_Tests::Test::Result::tests_failed
    linkageType: ''
    returnType: size_t
    signature: size_t tests_run() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::tests_run
      Src: /src/botan/src/tests/tests.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 208
    functionName: Botan_Tests::Test::Result::any_results
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::tests_run
    linkageType: ''
    returnType: bool
    signature: bool any_results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: '& who() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & who() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: '& failures() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & failures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: '& notes() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & notes() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: Botan_Tests::Test::Result::elapsed_time
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<uint64_t>
    signature: std::optional<uint64_t> elapsed_time() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: Botan_Tests::Test::Result::timestamp
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t timestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/tests.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - who
    - what
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: Botan_Tests::Test::Result::Failure
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Result::test_failure
    linkageType: ''
    returnType: Result
    signature: Result Failure(std::string_view who, std::string_view what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result::test_note
      Src: /src/botan/src/tests/tests.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - who
    - what
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: Botan_Tests::Test::Result::Note
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Result::test_note
    linkageType: ''
    returnType: Result
    signature: Result Note(std::string_view who, std::string_view what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::underlying_type_t<E>>
      Src: /src/botan/src/tests/tests.h:278,1
    - Dst: static_cast<std::underlying_type_t<E>>
      Src: /src/botan/src/tests/tests.h:279,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/tests.h:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - ' produced'
    - ' expected'
    argTypes:
    - std::string_view
    - E
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: Botan_Tests::Test::Result::test_enum_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<E>>
    - test_u64_eq
    linkageType: ''
    returnType: bool
    signature: bool test_enum_eq(std::string_view what, const E& produced, const E&
      expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.h:286,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - what
    - ' ptr'
    argTypes:
    - std::string_view
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: Botan_Tests::Test::Result::test_not_null
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool test_not_null(std::string_view what, const T& ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.h:341,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - what
    - ' val'
    argTypes:
    - std::string_view
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: Botan_Tests::Test::Result::test_opt_not_null
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool test_opt_not_null(std::string_view what, const std::optional<T>&
      val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:350,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.h:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - what
    - ' val'
    argTypes:
    - std::string_view
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: Botan_Tests::Test::Result::test_opt_is_null
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool test_opt_is_null(std::string_view what, const std::optional<T>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_bin_eq
      Src: /src/botan/src/tests/tests.h:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - ' produced'
    - ' expected'
    argTypes:
    - std::string_view
    - std::array<uint8_t, N>
    - std::array<uint8_t, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: Botan_Tests::Test::Result::test_bin_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::Result::test_bin_eq
    linkageType: ''
    returnType: bool
    signature: "bool test_bin_eq(std::string_view what,\n                             const
      std::array<uint8_t, N>& produced,\n                             const std::array<uint8_t,
      N>& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fn
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: Botan_Tests::Test::Result::ThrowExpectations::ThrowExpectations
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ThrowExpectations(std::function<void()> fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: Botan_Tests::Test::Result::ThrowExpectations::ThrowExpectations
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThrowExpectations(const ThrowExpectations&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: '& operator=(const ThrowExpectations&)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & operator=(const ThrowExpectations&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: Botan_Tests::Test::Result::ThrowExpectations::ThrowExpectations
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThrowExpectations(ThrowExpectations&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 396
    functionName: '& operator=(ThrowExpectations&&)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & operator=(ThrowExpectations&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_that_success_is_not_expected
      Src: /src/botan/src/tests/tests.h:406,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/tests.h:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 421
    functionName: Botan_Tests::Test::Result::ThrowExpectations::expect_exception_type
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - assert_that_success_is_not_expected
    - std::rethrow_exception
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & expect_exception_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.h:444,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.h:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - fn
    argTypes:
    - std::string_view
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 445
    functionName: Botan_Tests::Test::Result::test_throws
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::move
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool test_throws(std::string_view what, std::function<void()> fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.h:450,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.h:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - expected
    - fn
    argTypes:
    - std::string_view
    - std::string_view
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: Botan_Tests::Test::Result::test_throws
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::move
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool test_throws(std::string_view what, std::string_view expected,
      std::function<void()> fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ns
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 454
    functionName: Botan_Tests::Test::Result::set_ns_consumed
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_ns_consumed(uint64_t ns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - where
    argTypes:
    - CodeLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: Botan_Tests::Test::Result::set_code_location
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_code_location(CodeLocation where)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 461
    functionName: '& code_location() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<CodeLocation>
    signature: std::optional<CodeLocation> & code_location() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 477
    functionName: Botan_Tests::Test::Test
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test(const Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 478
    functionName: Botan_Tests::Test::Test
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test(Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 479
    functionName: '& operator=(const Test& other)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test
    signature: Test & operator=(const Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 480
    functionName: '& operator=(Test&& other)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test
    signature: Test & operator=(Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 488
    functionName: '& test_name() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & test_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: '& registration_location() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<CodeLocation>
    signature: std::optional<CodeLocation> & registration_location() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 538
    functionName: '& options()'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Options
    signature: Test_Options & options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/botan/src/tests/tests.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 540
    functionName: Botan_Tests::Test::run_long_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 12
    functionsReached:
    - options
    linkageType: ''
    returnType: bool
    signature: bool run_long_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/botan/src/tests/tests.h:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 542
    functionName: Botan_Tests::Test::run_memory_intensive_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - options
    linkageType: ''
    returnType: bool
    signature: bool run_memory_intensive_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/botan/src/tests/tests.h:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 544
    functionName: '& pkcs11_lib()'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - options
    linkageType: ''
    returnType: std::string
    signature: std::string & pkcs11_lib()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::register_test
      Src: /src/botan/src/tests/tests.h:586,1
    - Dst: std::make_unique<Test_Class>
      Src: /src/botan/src/tests/tests.h:587,1
    - Dst: auto::initialize
      Src: /src/botan/src/tests/tests.h:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' category'
    - ' name'
    - smoke_test
    - needs_serialization
    - ' registration_location'
    argTypes:
    - std::string
    - std::string
    - bool
    - bool
    - CodeLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: Botan_Tests::TestClassRegistration::TestClassRegistration
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Test_Class>
    - auto::initialize
    - Botan_Tests::Test::register_test
    linkageType: ''
    returnType: void
    signature: "void TestClassRegistration(const std::string& category,\n                            const
      std::string& name,\n                            bool smoke_test,\n                            bool
      needs_serialization,\n                            const CodeLocation& registration_location)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - Test_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 599
    functionName: BOTAN_REGISTER_TEST
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_TEST(category, name, Test_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - Test_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 602
    functionName: BOTAN_REGISTER_SERIALIZED_TEST
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SERIALIZED_TEST(category, name, Test_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - Test_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 605
    functionName: BOTAN_REGISTER_SMOKE_TEST
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SMOKE_TEST(category, name, Test_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - Test_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 608
    functionName: BOTAN_REGISTER_SERIALIZED_SMOKE_TEST
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SERIALIZED_SMOKE_TEST(category, name, Test_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - TestFn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: Botan_Tests::FnTest::make_variant_vector
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TestFnVariant>
    signature: std::vector<TestFnVariant> make_variant_vector(TestFn fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FnTest::make_variant_vector
      Src: /src/botan/src/tests/tests.h:629,1
    - Dst: auto::emplace_back
      Src: /src/botan/src/tests/tests.h:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - TestFn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: Botan_Tests::FnTest::make_variant_vector
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - Botan_Tests::FnTest::make_variant_vector
    - auto::emplace_back
    linkageType: ''
    returnType: std::vector<TestFnVariant>
    signature: std::vector<TestFnVariant> make_variant_vector(const TestFn& fn, const
      TestFns&... fns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FnTest::make_variant_vector
      Src: /src/botan/src/tests/tests.h:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 636
    functionName: Botan_Tests::FnTest::FnTest
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::FnTest::make_variant_vector
    linkageType: ''
    returnType: void
    signature: void FnTest(TestFns... fns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crbegin
      Src: /src/botan/src/tests/tests.h:643,1
    - Dst: crend
      Src: /src/botan/src/tests/tests.h:643,1
    - Dst: std::visit
      Src: /src/botan/src/tests/tests.h:644,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/tests.h:648,1
    - Dst: fn
      Src: /src/botan/src/tests/tests.h:648,1
    - Dst: fn
      Src: /src/botan/src/tests/tests.h:650,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.h:651,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.h:651,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.h:651,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.h:651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 658
    functionName: Botan_Tests::FnTest::run
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::emplace_back
    - std::vector::end
    - crbegin
    - fn
    - std::vector::insert
    - std::visit
    - crend
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::register_test
      Src: /src/botan/src/tests/tests.h:673,1
    - Dst: std::make_unique<FnTest>
      Src: /src/botan/src/tests/tests.h:674,1
    - Dst: auto::initialize
      Src: /src/botan/src/tests/tests.h:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' category'
    - ' name'
    - smoke_test
    - needs_serialization
    - ' registration_location'
    argTypes:
    - std::string
    - std::string
    - bool
    - bool
    - CodeLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 678
    functionName: Botan_Tests::TestFnRegistration::TestFnRegistration
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - auto::initialize
    - std::make_unique<FnTest>
    - Botan_Tests::Test::register_test
    linkageType: ''
    returnType: void
    signature: "void TestFnRegistration(const std::string& category,\n                         const
      std::string& name,\n                         bool smoke_test,\n                         bool
      needs_serialization,\n                         const CodeLocation& registration_location,\n
      \                        TestFns... fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - smoke_test
    - ','
    - needs_serialization
    - ','
    - fn0
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 687
    functionName: BOTAN_REGISTER_TEST_FN_IMPL
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_TEST_FN_IMPL(category, name, smoke_test, needs_serialization,
      fn0, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 690
    functionName: BOTAN_REGISTER_TEST_FN
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_TEST_FN(category, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 692
    functionName: BOTAN_REGISTER_SMOKE_TEST_FN
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SMOKE_TEST_FN(category, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 694
    functionName: BOTAN_REGISTER_SERIALIZED_TEST_FN
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SERIALIZED_TEST_FN(category, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 696
    functionName: BOTAN_REGISTER_SERIALIZED_SMOKE_TEST_FN
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SERIALIZED_SMOKE_TEST_FN(category, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Text_Based_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 760
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Text_Based_Test(const Text_Based_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Text_Based_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 761
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Text_Based_Test(Text_Based_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Text_Based_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 762
    functionName: '& operator=(const Text_Based_Test& other)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Text_Based_Test
    signature: Text_Based_Test & operator=(const Text_Based_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Text_Based_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 763
    functionName: '& operator=(Text_Based_Test&& other)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Text_Based_Test
    signature: Text_Based_Test & operator=(Text_Based_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 767
    functionName: Botan_Tests::Text_Based_Test::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<Test::Result>
      Src: /src/botan/src/tests/tests.h:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 776
    functionName: Botan_Tests::Text_Based_Test::run_final_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::vector<Test::Result>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_fun
      Src: /src/botan/src/tests/tests.h:815,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:819,1
    - Dst: what
      Src: /src/botan/src/tests/tests.h:819,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - name
    - check_fun
    argTypes:
    - char*
    - FunT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 825
    functionName: Botan_Tests::CHECK
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 40
    functionsReached:
    - Botan_Tests::Test::Result::test_failure
    - check_fun
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result CHECK(const char* name, FunT check_fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - what
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_Tests::Test_Aborted::Test_Aborted
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Aborted(std::string_view what)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_Tests::Test_Options::Test_Options
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 22
    argNames:
    - ' requested_tests'
    - ' skip_tests'
    - ' data_dir'
    - ' pkcs11_lib'
    - ' provider'
    - ' tpm2_tcti_name'
    - ' tpm2_tcti_conf'
    - tpm2_persistent_rsa_handle
    - tpm2_persistent_ecc_handle
    - ' tpm2_persistent_auth_value'
    - ' drbg_seed'
    - ' xml_results_dir'
    - ' report_properties'
    - test_runs
    - test_threads
    - verbose
    - log_success
    - run_online_tests
    - run_long_tests
    - run_memory_intensive_tests
    - abort_on_first_fail
    - no_stdout
    argTypes:
    - std::vector<std::string>
    - std::vector<std::string>
    - std::string
    - std::string
    - std::string
    - std::string
    - std::string
    - size_t
    - size_t
    - std::string
    - std::string
    - std::string
    - std::vector<std::string>
    - size_t
    - size_t
    - bool
    - bool
    - bool
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Test_Options::Test_Options
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Options(const std::vector<std::string>& requested_tests,\n
      \                  const std::vector<std::string>& skip_tests,\n                   const
      std::string& data_dir,\n                   const std::string& pkcs11_lib,\n
      \                  const std::string& provider,\n                   const std::string&
      tpm2_tcti_name,\n                   const std::string& tpm2_tcti_conf,\n                   size_t
      tpm2_persistent_rsa_handle,\n                   size_t tpm2_persistent_ecc_handle,\n
      \                  const std::string& tpm2_persistent_auth_value,\n                   const
      std::string& drbg_seed,\n                   const std::string& xml_results_dir,\n
      \                  const std::vector<std::string>& report_properties,\n                   size_t
      test_runs,\n                   size_t test_threads,\n                   bool
      verbose,\n                   bool log_success,\n                   bool run_online_tests,\n
      \                  bool run_long_tests,\n                   bool run_memory_intensive_tests,\n
      \                  bool abort_on_first_fail,\n                   bool no_stdout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: '& requested_tests() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & requested_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& skip_tests() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & skip_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& data_dir() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & data_dir() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: '& pkcs11_lib() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & pkcs11_lib() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: '& provider() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '& tpm2_tcti_name() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> & tpm2_tcti_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: '& tpm2_tcti_conf() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> & tpm2_tcti_conf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/tests.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_Tests::Test_Options::tpm2_persistent_rsa_handle
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tpm2_persistent_rsa_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/tests.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_Tests::Test_Options::tpm2_persistent_ecc_handle
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tpm2_persistent_ecc_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& tpm2_persistent_auth_value() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & tpm2_persistent_auth_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: '& drbg_seed() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & drbg_seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: '& xml_results_dir() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & xml_results_dir() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: '& report_properties() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & report_properties() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan_Tests::Test_Options::test_runs
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t test_runs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_Tests::Test_Options::test_threads
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t test_threads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::Test_Options::log_success
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool log_success() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan_Tests::Test_Options::run_online_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_online_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan_Tests::Test_Options::run_long_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_long_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: Botan_Tests::Test_Options::run_memory_intensive_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_memory_intensive_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan_Tests::Test_Options::abort_on_first_fail
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool abort_on_first_fail() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: Botan_Tests::Test_Options::no_stdout
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_stdout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: Botan_Tests::Test_Options::verbose
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool verbose() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: Botan_Tests::Test::Result::tests_passed
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tests_passed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/tests.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: Botan_Tests::Test::Result::tests_failed
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t tests_failed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::tests_passed
      Src: /src/botan/src/tests/tests.h:206,1
    - Dst: Botan_Tests::Test::Result::tests_failed
      Src: /src/botan/src/tests/tests.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: Botan_Tests::Test::Result::tests_run
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::Result::tests_passed
    - Botan_Tests::Test::Result::tests_failed
    linkageType: ''
    returnType: size_t
    signature: size_t tests_run() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::tests_run
      Src: /src/botan/src/tests/tests.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 208
    functionName: Botan_Tests::Test::Result::any_results
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::tests_run
    linkageType: ''
    returnType: bool
    signature: bool any_results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: '& who() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & who() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: '& failures() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & failures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: '& notes() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & notes() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: Botan_Tests::Test::Result::elapsed_time
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<uint64_t>
    signature: std::optional<uint64_t> elapsed_time() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: Botan_Tests::Test::Result::timestamp
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t timestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/tests.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - who
    - what
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: Botan_Tests::Test::Result::Failure
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Result::test_failure
    linkageType: ''
    returnType: Result
    signature: Result Failure(std::string_view who, std::string_view what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result::test_note
      Src: /src/botan/src/tests/tests.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - who
    - what
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: Botan_Tests::Test::Result::Note
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Result::test_note
    linkageType: ''
    returnType: Result
    signature: Result Note(std::string_view who, std::string_view what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::underlying_type_t<E>>
      Src: /src/botan/src/tests/tests.h:278,1
    - Dst: static_cast<std::underlying_type_t<E>>
      Src: /src/botan/src/tests/tests.h:279,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/tests.h:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - ' produced'
    - ' expected'
    argTypes:
    - std::string_view
    - E
    - E
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: Botan_Tests::Test::Result::test_enum_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - static_cast<std::underlying_type_t<E>>
    - test_u64_eq
    linkageType: ''
    returnType: bool
    signature: bool test_enum_eq(std::string_view what, const E& produced, const E&
      expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.h:286,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - what
    - ' ptr'
    argTypes:
    - std::string_view
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: Botan_Tests::Test::Result::test_not_null
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool test_not_null(std::string_view what, const T& ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.h:341,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - what
    - ' val'
    argTypes:
    - std::string_view
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: Botan_Tests::Test::Result::test_opt_not_null
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool test_opt_not_null(std::string_view what, const std::optional<T>&
      val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:350,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.h:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - what
    - ' val'
    argTypes:
    - std::string_view
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: Botan_Tests::Test::Result::test_opt_is_null
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool test_opt_is_null(std::string_view what, const std::optional<T>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_bin_eq
      Src: /src/botan/src/tests/tests.h:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - ' produced'
    - ' expected'
    argTypes:
    - std::string_view
    - std::array<uint8_t, N>
    - std::array<uint8_t, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: Botan_Tests::Test::Result::test_bin_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 2
    functionsReached:
    - Botan_Tests::Test::Result::test_bin_eq
    linkageType: ''
    returnType: bool
    signature: "bool test_bin_eq(std::string_view what,\n                             const
      std::array<uint8_t, N>& produced,\n                             const std::array<uint8_t,
      N>& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fn
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: Botan_Tests::Test::Result::ThrowExpectations::ThrowExpectations
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ThrowExpectations(std::function<void()> fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: Botan_Tests::Test::Result::ThrowExpectations::ThrowExpectations
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThrowExpectations(const ThrowExpectations&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: '& operator=(const ThrowExpectations&)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & operator=(const ThrowExpectations&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: Botan_Tests::Test::Result::ThrowExpectations::ThrowExpectations
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThrowExpectations(ThrowExpectations&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 396
    functionName: '& operator=(ThrowExpectations&&)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & operator=(ThrowExpectations&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_that_success_is_not_expected
      Src: /src/botan/src/tests/tests.h:406,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/tests.h:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 421
    functionName: Botan_Tests::Test::Result::ThrowExpectations::expect_exception_type
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - assert_that_success_is_not_expected
    - std::rethrow_exception
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & expect_exception_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.h:444,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.h:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - fn
    argTypes:
    - std::string_view
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 445
    functionName: Botan_Tests::Test::Result::test_throws
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::move
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool test_throws(std::string_view what, std::function<void()> fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.h:450,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.h:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - expected
    - fn
    argTypes:
    - std::string_view
    - std::string_view
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: Botan_Tests::Test::Result::test_throws
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::move
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool test_throws(std::string_view what, std::string_view expected,
      std::function<void()> fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ns
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 454
    functionName: Botan_Tests::Test::Result::set_ns_consumed
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_ns_consumed(uint64_t ns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - where
    argTypes:
    - CodeLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: Botan_Tests::Test::Result::set_code_location
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_code_location(CodeLocation where)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 461
    functionName: '& code_location() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<CodeLocation>
    signature: std::optional<CodeLocation> & code_location() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 477
    functionName: Botan_Tests::Test::Test
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test(const Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 478
    functionName: Botan_Tests::Test::Test
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test(Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 479
    functionName: '& operator=(const Test& other)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test
    signature: Test & operator=(const Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 480
    functionName: '& operator=(Test&& other)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test
    signature: Test & operator=(Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 488
    functionName: '& test_name() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & test_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: '& registration_location() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<CodeLocation>
    signature: std::optional<CodeLocation> & registration_location() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 538
    functionName: '& options()'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Options
    signature: Test_Options & options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/botan/src/tests/tests.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 540
    functionName: Botan_Tests::Test::run_long_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 12
    functionsReached:
    - options
    linkageType: ''
    returnType: bool
    signature: bool run_long_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/botan/src/tests/tests.h:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 542
    functionName: Botan_Tests::Test::run_memory_intensive_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - options
    linkageType: ''
    returnType: bool
    signature: bool run_memory_intensive_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/botan/src/tests/tests.h:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 544
    functionName: '& pkcs11_lib()'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - options
    linkageType: ''
    returnType: std::string
    signature: std::string & pkcs11_lib()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::register_test
      Src: /src/botan/src/tests/tests.h:586,1
    - Dst: std::make_unique<Test_Class>
      Src: /src/botan/src/tests/tests.h:587,1
    - Dst: auto::initialize
      Src: /src/botan/src/tests/tests.h:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' category'
    - ' name'
    - smoke_test
    - needs_serialization
    - ' registration_location'
    argTypes:
    - std::string
    - std::string
    - bool
    - bool
    - CodeLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: Botan_Tests::TestClassRegistration::TestClassRegistration
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Test_Class>
    - auto::initialize
    - Botan_Tests::Test::register_test
    linkageType: ''
    returnType: void
    signature: "void TestClassRegistration(const std::string& category,\n                            const
      std::string& name,\n                            bool smoke_test,\n                            bool
      needs_serialization,\n                            const CodeLocation& registration_location)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - Test_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 599
    functionName: BOTAN_REGISTER_TEST
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_TEST(category, name, Test_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - Test_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 602
    functionName: BOTAN_REGISTER_SERIALIZED_TEST
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SERIALIZED_TEST(category, name, Test_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - Test_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 605
    functionName: BOTAN_REGISTER_SMOKE_TEST
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SMOKE_TEST(category, name, Test_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - Test_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 608
    functionName: BOTAN_REGISTER_SERIALIZED_SMOKE_TEST
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SERIALIZED_SMOKE_TEST(category, name, Test_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - TestFn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: Botan_Tests::FnTest::make_variant_vector
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TestFnVariant>
    signature: std::vector<TestFnVariant> make_variant_vector(TestFn fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FnTest::make_variant_vector
      Src: /src/botan/src/tests/tests.h:629,1
    - Dst: auto::emplace_back
      Src: /src/botan/src/tests/tests.h:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - TestFn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: Botan_Tests::FnTest::make_variant_vector
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 3
    functionsReached:
    - Botan_Tests::FnTest::make_variant_vector
    - auto::emplace_back
    linkageType: ''
    returnType: std::vector<TestFnVariant>
    signature: std::vector<TestFnVariant> make_variant_vector(const TestFn& fn, const
      TestFns&... fns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FnTest::make_variant_vector
      Src: /src/botan/src/tests/tests.h:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 636
    functionName: Botan_Tests::FnTest::FnTest
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::FnTest::make_variant_vector
    linkageType: ''
    returnType: void
    signature: void FnTest(TestFns... fns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crbegin
      Src: /src/botan/src/tests/tests.h:643,1
    - Dst: crend
      Src: /src/botan/src/tests/tests.h:643,1
    - Dst: std::visit
      Src: /src/botan/src/tests/tests.h:644,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/tests.h:648,1
    - Dst: fn
      Src: /src/botan/src/tests/tests.h:648,1
    - Dst: fn
      Src: /src/botan/src/tests/tests.h:650,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.h:651,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.h:651,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.h:651,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.h:651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 658
    functionName: Botan_Tests::FnTest::run
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::emplace_back
    - std::vector::end
    - crbegin
    - fn
    - std::vector::insert
    - std::visit
    - crend
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::register_test
      Src: /src/botan/src/tests/tests.h:673,1
    - Dst: std::make_unique<FnTest>
      Src: /src/botan/src/tests/tests.h:674,1
    - Dst: auto::initialize
      Src: /src/botan/src/tests/tests.h:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' category'
    - ' name'
    - smoke_test
    - needs_serialization
    - ' registration_location'
    argTypes:
    - std::string
    - std::string
    - bool
    - bool
    - CodeLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 678
    functionName: Botan_Tests::TestFnRegistration::TestFnRegistration
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - auto::initialize
    - std::make_unique<FnTest>
    - Botan_Tests::Test::register_test
    linkageType: ''
    returnType: void
    signature: "void TestFnRegistration(const std::string& category,\n                         const
      std::string& name,\n                         bool smoke_test,\n                         bool
      needs_serialization,\n                         const CodeLocation& registration_location,\n
      \                        TestFns... fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - smoke_test
    - ','
    - needs_serialization
    - ','
    - fn0
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 687
    functionName: BOTAN_REGISTER_TEST_FN_IMPL
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_TEST_FN_IMPL(category, name, smoke_test, needs_serialization,
      fn0, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 690
    functionName: BOTAN_REGISTER_TEST_FN
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_TEST_FN(category, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 692
    functionName: BOTAN_REGISTER_SMOKE_TEST_FN
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SMOKE_TEST_FN(category, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 694
    functionName: BOTAN_REGISTER_SERIALIZED_TEST_FN
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SERIALIZED_TEST_FN(category, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 696
    functionName: BOTAN_REGISTER_SERIALIZED_SMOKE_TEST_FN
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_SERIALIZED_SMOKE_TEST_FN(category, name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Text_Based_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 760
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Text_Based_Test(const Text_Based_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Text_Based_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 761
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Text_Based_Test(Text_Based_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Text_Based_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 762
    functionName: '& operator=(const Text_Based_Test& other)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Text_Based_Test
    signature: Text_Based_Test & operator=(const Text_Based_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Text_Based_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 763
    functionName: '& operator=(Text_Based_Test&& other)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Text_Based_Test
    signature: Text_Based_Test & operator=(Text_Based_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 767
    functionName: Botan_Tests::Text_Based_Test::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<Test::Result>
      Src: /src/botan/src/tests/tests.h:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 776
    functionName: Botan_Tests::Text_Based_Test::run_final_tests
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::vector<Test::Result>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_fun
      Src: /src/botan/src/tests/tests.h:815,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:819,1
    - Dst: what
      Src: /src/botan/src/tests/tests.h:819,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - name
    - check_fun
    argTypes:
    - char*
    - FunT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 825
    functionName: Botan_Tests::CHECK
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 40
    functionsReached:
    - Botan_Tests::Test::Result::test_failure
    - check_fun
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result CHECK(const char* name, FunT check_fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:24,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_swap
      Src: /src/botan/src/tests/test_mp.cpp:24,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:25,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_add
      Src: /src/botan/src/tests/test_mp.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:26,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_sub
      Src: /src/botan/src/tests/test_mp.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:27,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_abs
      Src: /src/botan/src/tests/test_mp.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: Botan_Tests::MP_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::MP_Unit_Tests::test_cnd_sub
    - std::vector::push_back
    - Botan_Tests::MP_Unit_Tests::test_cnd_abs
    - Botan_Tests::MP_Unit_Tests::test_cnd_add
    - Botan_Tests::MP_Unit_Tests::test_cnd_swap
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:36,1
    - Dst: Botan::bigint_cnd_add<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:39,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:41,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:42,1
    - Dst: Botan::bigint_cnd_add<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:44,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:46,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_add
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 1
    functionsReached:
    - Result::test_u64_eq
    - static_cast<Botan::word>
    - Botan::bigint_cnd_add<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_add()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_sub<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:59,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:61,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:62,1
    - Dst: Botan::bigint_cnd_sub<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:64,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:66,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:66,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_sub
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 1
    functionsReached:
    - Result::test_u64_eq
    - static_cast<Botan::word>
    - Botan::bigint_cnd_sub<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_sub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:78,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:79,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:82,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:83,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:86,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:87,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:90,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:91,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:95,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:96,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_abs
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 1
    functionsReached:
    - Result::test_u64_eq
    - Botan::bigint_cnd_abs<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_abs()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:106,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:107,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:112,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:113,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:114,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:115,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:121,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:126,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 134
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_swap
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 1
    functionsReached:
    - Botan::bigint_cnd_swap<Botan::word>
    - Result::test_u64_eq
    - static_cast<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_swap()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:24,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_swap
      Src: /src/botan/src/tests/test_mp.cpp:24,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:25,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_add
      Src: /src/botan/src/tests/test_mp.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:26,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_sub
      Src: /src/botan/src/tests/test_mp.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:27,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_abs
      Src: /src/botan/src/tests/test_mp.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: Botan_Tests::MP_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::MP_Unit_Tests::test_cnd_sub
    - std::vector::push_back
    - Botan_Tests::MP_Unit_Tests::test_cnd_abs
    - Botan_Tests::MP_Unit_Tests::test_cnd_add
    - Botan_Tests::MP_Unit_Tests::test_cnd_swap
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:36,1
    - Dst: Botan::bigint_cnd_add<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:39,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:41,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:42,1
    - Dst: Botan::bigint_cnd_add<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:44,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:46,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_add
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 2
    functionsReached:
    - Result::test_u64_eq
    - static_cast<Botan::word>
    - Botan::bigint_cnd_add<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_add()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_sub<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:59,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:61,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:62,1
    - Dst: Botan::bigint_cnd_sub<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:64,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:66,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:66,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_sub
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 2
    functionsReached:
    - Result::test_u64_eq
    - static_cast<Botan::word>
    - Botan::bigint_cnd_sub<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_sub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:78,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:79,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:82,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:83,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:86,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:87,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:90,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:91,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:95,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:96,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_abs
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 2
    functionsReached:
    - Result::test_u64_eq
    - Botan::bigint_cnd_abs<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_abs()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:106,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:107,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:112,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:113,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:114,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:115,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:121,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:126,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 134
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_swap
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 2
    functionsReached:
    - Botan::bigint_cnd_swap<Botan::word>
    - Result::test_u64_eq
    - static_cast<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_swap()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:24,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_swap
      Src: /src/botan/src/tests/test_mp.cpp:24,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:25,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_add
      Src: /src/botan/src/tests/test_mp.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:26,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_sub
      Src: /src/botan/src/tests/test_mp.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:27,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_abs
      Src: /src/botan/src/tests/test_mp.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: Botan_Tests::MP_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::MP_Unit_Tests::test_cnd_sub
    - std::vector::push_back
    - Botan_Tests::MP_Unit_Tests::test_cnd_abs
    - Botan_Tests::MP_Unit_Tests::test_cnd_add
    - Botan_Tests::MP_Unit_Tests::test_cnd_swap
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:36,1
    - Dst: Botan::bigint_cnd_add<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:39,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:41,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:42,1
    - Dst: Botan::bigint_cnd_add<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:44,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:46,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_add
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 3
    functionsReached:
    - Result::test_u64_eq
    - static_cast<Botan::word>
    - Botan::bigint_cnd_add<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_add()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_sub<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:59,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:61,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:62,1
    - Dst: Botan::bigint_cnd_sub<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:64,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:66,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:66,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_sub
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 3
    functionsReached:
    - Result::test_u64_eq
    - static_cast<Botan::word>
    - Botan::bigint_cnd_sub<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_sub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:78,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:79,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:82,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:83,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:86,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:87,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:90,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:91,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:95,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:96,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_abs
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 3
    functionsReached:
    - Result::test_u64_eq
    - Botan::bigint_cnd_abs<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_abs()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:106,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:107,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:112,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:113,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:114,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:115,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:121,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:126,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 134
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_swap
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 3
    functionsReached:
    - Botan::bigint_cnd_swap<Botan::word>
    - Result::test_u64_eq
    - static_cast<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_swap()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:24,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_swap
      Src: /src/botan/src/tests/test_mp.cpp:24,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:25,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_add
      Src: /src/botan/src/tests/test_mp.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:26,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_sub
      Src: /src/botan/src/tests/test_mp.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mp.cpp:27,1
    - Dst: Botan_Tests::MP_Unit_Tests::test_cnd_abs
      Src: /src/botan/src/tests/test_mp.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: Botan_Tests::MP_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::MP_Unit_Tests::test_cnd_sub
    - std::vector::push_back
    - Botan_Tests::MP_Unit_Tests::test_cnd_abs
    - Botan_Tests::MP_Unit_Tests::test_cnd_add
    - Botan_Tests::MP_Unit_Tests::test_cnd_swap
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:36,1
    - Dst: Botan::bigint_cnd_add<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:39,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:41,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:42,1
    - Dst: Botan::bigint_cnd_add<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:44,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:46,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_add
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 4
    functionsReached:
    - Result::test_u64_eq
    - static_cast<Botan::word>
    - Botan::bigint_cnd_add<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_add()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_sub<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:59,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:61,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:62,1
    - Dst: Botan::bigint_cnd_sub<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:64,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:66,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:66,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_sub
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 4
    functionsReached:
    - Result::test_u64_eq
    - static_cast<Botan::word>
    - Botan::bigint_cnd_sub<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_sub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:78,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:79,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:82,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:83,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:86,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:87,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:90,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:91,1
    - Dst: Botan::bigint_cnd_abs<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:95,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:96,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_abs
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 4
    functionsReached:
    - Result::test_u64_eq
    - Botan::bigint_cnd_abs<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_abs()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:106,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:107,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:112,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:113,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:114,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:115,1
    - Dst: Botan::bigint_cnd_swap<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:121,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:126,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: static_cast<Botan::word>
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: Result::test_u64_eq
      Src: /src/botan/src/tests/test_mp.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 134
    functionName: Botan_Tests::MP_Unit_Tests::test_cnd_swap
    functionSourceFile: /src/botan/src/tests/test_mp.cpp
    functionUses: 4
    functionsReached:
    - Botan::bigint_cnd_swap<Botan::word>
    - Result::test_u64_eq
    - static_cast<Botan::word>
    linkageType: ''
    returnType: Result
    signature: Result test_cnd_swap()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Record_Layer
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:32,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: Botan_Tests::record_layer_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Record_Layer
    - auto::disable_sending_compat_mode
    linkageType: ''
    returnType: TLS::Record_Layer
    signature: TLS::Record_Layer record_layer_client(const bool skip_client_hello
      = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Record_Layer
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:43,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: Botan_Tests::record_layer_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Record_Layer
    - auto::disable_receiving_compat_mode
    linkageType: ''
    returnType: TLS::Record_Layer
    signature: TLS::Record_Layer record_layer_server(const bool skip_client_hello
      = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Mocked_Secret_Logger::maybe_log_secret
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void maybe_log_secret(std::string_view /*label*/, std::span<const uint8_t>
      /*secret*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:60,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:63,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:66,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:68,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: Botan_Tests::rfc8448_rtt1_handshake_traffic
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Botan::hex_decode
    - std::move
    - Botan::TLS::Ciphersuite::from_name
    - Botan::TLS::Cipher_State::init_with_server_hello
    linkageType: ''
    returnType: std::unique_ptr<TLS::Cipher_State>
    signature: "std::unique_ptr<TLS::Cipher_State> rfc8448_rtt1_handshake_traffic(\n
      \  Botan::TLS::Connection_Side side = Botan::TLS::Connection_Side::Client)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:72,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:83,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:85,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:87,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:89,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:90,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:93,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:94,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:95,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:100,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:102,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:104,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:106,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:108,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:113,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:115,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:119,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:125,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:127,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:128,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:130,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:133,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:134,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:135,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:143,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:144,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:146,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:147,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:149,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:152,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:153,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:154,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:159,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:162,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:163,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 168
    functionName: Botan_Tests::read_full_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::begin
    - Botan_Tests::CHECK
    - auto::end
    - Botan::concat
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - std::get<TLS::Record>
    - test_is_true
    - test_enum_eq
    - Botan::secure_vector<uint8_t>
    - test_bin_eq
    - auto::next_record
    - std::holds_alternative<TLS::Record>
    - Botan_Tests::record_layer_server
    - auto::copy_data
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_full_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:172,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:172,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:173,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:174,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:177,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:179,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:182,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:185,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:188,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:191,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:192,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:196,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:199,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:202,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:202,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:205,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:208,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:208,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:211,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:214,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:215,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:219,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:222,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:223,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:228,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:233,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:237,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:238,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:240,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:240,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:243,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:246,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:247,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:248,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:252,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:255,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:256,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:260,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:263,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:264,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:268,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:270,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:271,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:274,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:277,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:280,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:283,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:285,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:288,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:292,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:295,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 1
    argNames:
    - side
    argTypes:
    - TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 301
    functionName: Botan_Tests::basic_sanitization_parse_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_no_throw
    - std::vector::resize
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - test_sz_eq
    - test_is_true
    - auto::get
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::disable_receiving_compat_mode
    - auto::next_record
    - Botan_Tests::record_layer_client
    - parse_records
    - Botan_Tests::record_layer_server
    - std::get<TLS::BytesNeeded>
    - auto::copy_data
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records(TLS::Connection_Side
      side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::basic_sanitization_parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: Botan_Tests::basic_sanitization_parse_records_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::basic_sanitization_parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records_client()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::basic_sanitization_parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: Botan_Tests::basic_sanitization_parse_records_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::basic_sanitization_parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records_server()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:312,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:316,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:317,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:323,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:327,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:328,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:329,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:330,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:331,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:333,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:334,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:337,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:338,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:339,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:344,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:345,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:347,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:349,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:352,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:356,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:358,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:359,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:362,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 367
    functionName: Botan_Tests::read_fragmented_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - next_record
    - Botan_Tests::CHECK
    - TLS::Record_Layer::next_record
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - copy_data
    - test_is_true
    - test_sz_eq
    - wait_for_more_bytes
    - std::get<TLS::Record>
    - test_enum_eq
    - test_bin_eq
    - Botan_Tests::record_layer_client
    - TLS::Record_Layer::copy_data
    - std::get<TLS::BytesNeeded>
    - std::holds_alternative<TLS::Record>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_fragmented_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:370,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:372,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:375,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:375,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:377,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:378,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:380,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:382,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:394,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:396,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:397,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:397,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:402,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:406,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:411,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:413,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:414,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:415,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:418,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:420,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:422,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:423,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 426
    functionName: Botan_Tests::write_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - auto::size
    - auto::get
    - require
    - std::vector<uint8_t>
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - test_throws
    - test_bin_eq
    - Botan_Tests::record_layer_client
    - test_sz_gte
    - auto::cbegin
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> write_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:431,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:440,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:476,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:508,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:514,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:516,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:517,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:519,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:519,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: std::holds_alternative<Botan::TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:523,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: auto::fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:529,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:531,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:532,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:534,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:537,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:540,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:543,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:545,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:546,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:547,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:552,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:554,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:556,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:557,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:558,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:563,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:566,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:568,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:570,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:571,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:576,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:578,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:580,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:581,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:582,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:587,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:589,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:590,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:594,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:595,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:596,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:600,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:604,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:605,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:609,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:613,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:614,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:618,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:622,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:623,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:628,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:630,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:631,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:632,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:637,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:639,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:646,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:647,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:648,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:650,1
    - Dst: auto::advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:653,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:654,1
    - Dst: auto::advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:655,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:656,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:658,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:664,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:664,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:669,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:669,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:677,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:684,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:686,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:687,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:687,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:688,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:691,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:695,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:698,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:700,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:701,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:703,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:704,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:704,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:705,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:705,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:708,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:709,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:710,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:710,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:712,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:713,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:713,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:714,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 716
    functionName: Botan_Tests::read_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::fragment::size
    - auto::get
    - test_is_true
    - Botan::hex_decode
    - auto::insert
    - test_no_throw
    - test_bin_eq
    - std::vector::at
    - auto::end
    - std::holds_alternative<TLS::Record>
    - auto::back
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - auto::advance_with_server_finished
    - auto::cend
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::next_record
    - Botan_Tests::record_layer_client
    - auto::cbegin
    - std::holds_alternative<Botan::TLS::BytesNeeded>
    - test_enum_eq
    - auto::copy_data
    - Botan_Tests::CHECK
    - auto::advance_with_client_finished
    - std::get<TLS::Record>
    - test_sz_eq
    - test_throws
    - parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_encrypted_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:719,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:723,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:725,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:728,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:728,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:733,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:736,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:739,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:740,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:741,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:741,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:743,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:746,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:748,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:748,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:749,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:750,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:750,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:753,1
    - Dst: get_byte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:754,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:754,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:755,1
    - Dst: get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:755,1
    - Dst: get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:757,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:758,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:759,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:759,1
    - Dst: read_record_header
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:764,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:765,1
    - Dst: read_record_header
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:767,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:770,1
    - Dst: TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 772
    functionName: Botan_Tests::write_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::discard_next
    - auto::get
    - test_is_true
    - read_record_header
    - Botan::hex_decode
    - auto::size
    - test_bin_eq
    - test_u8_eq
    - test_u16_eq
    - static_cast<uint8_t>
    - TLS::TLS_Data_Reader::has_remaining
    - std::vector::size
    - get_uint16_t
    - require
    - test_sz_lte
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - Botan_Tests::CHECK
    - get_byte
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> write_encrypted_records()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:784,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:785,1
    - Dst: TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:786,1
    - Dst: TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:789,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:790,1
    - Dst: TLS::TLS_Data_Reader::assert_done
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:793,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:798,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:799,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:802,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:804,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:805,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:805,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:806,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:806,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:808,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:810,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:810,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:811,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:811,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:814,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:816,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:817,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:818,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:819,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:819,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:821,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:823,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:824,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:825,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:825,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:828,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:830,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:831,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:831,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:832,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:832,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:835,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:837,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:838,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:839,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:840,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:840,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:841,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:841,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:844,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:846,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:847,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:848,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:849,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:849,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:850,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:850,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:853,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:855,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:856,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:857,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:857,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:860,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:862,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:863,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:864,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:864,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:865,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:866,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:866,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:869,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:871,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:872,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:873,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:873,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:874,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:875,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:875,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:876,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:877,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:877,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:878,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:879,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 883
    functionName: Botan_Tests::legacy_version_handling
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::discard_next
    - TLS::TLS_Data_Reader::get_uint16_t
    - test_is_true
    - auto::prepare_records
    - Botan::hex_decode
    - test_no_throw
    - auto::disable_sending_compat_mode
    - Botan_Tests::record_layer_server
    - TLS::TLS_Data_Reader::has_remaining
    - next_record
    - TLS::TLS_Data_Reader::assert_done
    - parse_record
    - Botan_Tests::record_layer_client
    - Botan_Tests::CHECK
    - copy_data
    - std::vector<uint8_t>
    - auto::disable_receiving_compat_mode
    - test_throws
    - has_version
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> legacy_version_handling()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:890,1
    - Dst: Botan::TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:891,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:892,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:892,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:893,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:900,1
    - Dst: std::holds_alternative<Botan::TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:900,1
    - Dst: std::get<Botan::TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:901,1
    - Dst: fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:902,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:906,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:908,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:909,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:911,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:912,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:912,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:913,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:913,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:915,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:916,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:917,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:918,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:918,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:920,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:921,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:922,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:924,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:929,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:931,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:932,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:934,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:938,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:938,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:942,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:942,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:945,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:948,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:949,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:951,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:952,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:952,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:953,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:953,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:955,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:956,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:956,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:957,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:957,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:959,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:962,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:962,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:965,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:965,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:968,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:970,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:972,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:975,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:975,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:976,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:976,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:978,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:979,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:980,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:980,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:983,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:985,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:987,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:993,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:995,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:996,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:998,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:999,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1000,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1008,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1009,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1015,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1017,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 1020
    functionName: Botan_Tests::record_size_limits
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - std::holds_alternative<Botan::TLS::Record>
    - auto::prepare_records
    - count_records
    - Botan::TLS::TLS_Data_Reader::has_remaining
    - Botan::hex_decode
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::record_layer_server
    - Botan::concat
    - require
    - Botan::TLS::TLS_Data_Reader::get_tls_length_value
    - auto::set_record_size_limits
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::next_record
    - Botan_Tests::record_layer_client
    - auto::copy_data
    - record_length
    - Botan::TLS::TLS_Data_Reader::get_uint16_t
    - Botan_Tests::CHECK
    - std::get<Botan::TLS::Record>
    - std::vector<uint8_t>
    - test_sz_eq
    - Botan::TLS::TLS_Data_Reader::discard_next
    - test_throws
    - fragment::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> record_size_limits()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Record_Layer
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:32,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: Botan_Tests::record_layer_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 7
    functionsReached:
    - Botan::TLS::Record_Layer
    - auto::disable_sending_compat_mode
    linkageType: ''
    returnType: TLS::Record_Layer
    signature: TLS::Record_Layer record_layer_client(const bool skip_client_hello
      = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Record_Layer
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:43,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: Botan_Tests::record_layer_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Record_Layer
    - auto::disable_receiving_compat_mode
    linkageType: ''
    returnType: TLS::Record_Layer
    signature: TLS::Record_Layer record_layer_server(const bool skip_client_hello
      = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Mocked_Secret_Logger::maybe_log_secret
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void maybe_log_secret(std::string_view /*label*/, std::span<const uint8_t>
      /*secret*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:60,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:63,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:66,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:68,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: Botan_Tests::rfc8448_rtt1_handshake_traffic
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 5
    functionsReached:
    - Botan::hex_decode_locked
    - Botan::hex_decode
    - std::move
    - Botan::TLS::Ciphersuite::from_name
    - Botan::TLS::Cipher_State::init_with_server_hello
    linkageType: ''
    returnType: std::unique_ptr<TLS::Cipher_State>
    signature: "std::unique_ptr<TLS::Cipher_State> rfc8448_rtt1_handshake_traffic(\n
      \  Botan::TLS::Connection_Side side = Botan::TLS::Connection_Side::Client)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:72,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:83,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:85,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:87,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:89,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:90,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:93,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:94,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:95,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:100,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:102,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:104,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:106,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:108,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:113,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:115,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:119,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:125,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:127,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:128,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:130,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:133,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:134,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:135,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:143,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:144,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:146,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:147,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:149,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:152,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:153,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:154,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:159,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:162,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:163,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 168
    functionName: Botan_Tests::read_full_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::begin
    - Botan_Tests::CHECK
    - auto::end
    - Botan::concat
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - std::get<TLS::Record>
    - test_is_true
    - test_enum_eq
    - Botan::secure_vector<uint8_t>
    - test_bin_eq
    - auto::next_record
    - std::holds_alternative<TLS::Record>
    - Botan_Tests::record_layer_server
    - auto::copy_data
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_full_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:172,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:172,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:173,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:174,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:177,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:179,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:182,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:185,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:188,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:191,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:192,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:196,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:199,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:202,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:202,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:205,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:208,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:208,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:211,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:214,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:215,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:219,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:222,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:223,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:228,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:233,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:237,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:238,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:240,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:240,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:243,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:246,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:247,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:248,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:252,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:255,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:256,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:260,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:263,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:264,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:268,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:270,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:271,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:274,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:277,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:280,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:283,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:285,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:288,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:292,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:295,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 1
    argNames:
    - side
    argTypes:
    - TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 301
    functionName: Botan_Tests::basic_sanitization_parse_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::CHECK
    - test_no_throw
    - std::vector::resize
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - test_sz_eq
    - test_is_true
    - auto::get
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::disable_receiving_compat_mode
    - auto::next_record
    - Botan_Tests::record_layer_client
    - parse_records
    - Botan_Tests::record_layer_server
    - std::get<TLS::BytesNeeded>
    - auto::copy_data
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records(TLS::Connection_Side
      side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::basic_sanitization_parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: Botan_Tests::basic_sanitization_parse_records_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::basic_sanitization_parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records_client()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::basic_sanitization_parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: Botan_Tests::basic_sanitization_parse_records_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::basic_sanitization_parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records_server()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:312,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:316,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:317,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:323,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:327,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:328,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:329,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:330,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:331,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:333,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:334,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:337,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:338,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:339,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:344,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:345,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:347,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:349,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:352,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:356,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:358,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:359,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:362,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 367
    functionName: Botan_Tests::read_fragmented_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - next_record
    - Botan_Tests::CHECK
    - TLS::Record_Layer::next_record
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - copy_data
    - test_is_true
    - test_sz_eq
    - wait_for_more_bytes
    - std::get<TLS::Record>
    - test_enum_eq
    - test_bin_eq
    - Botan_Tests::record_layer_client
    - TLS::Record_Layer::copy_data
    - std::get<TLS::BytesNeeded>
    - std::holds_alternative<TLS::Record>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_fragmented_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:370,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:372,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:375,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:375,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:377,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:378,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:380,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:382,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:394,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:396,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:397,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:397,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:402,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:406,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:411,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:413,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:414,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:415,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:418,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:420,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:422,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:423,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 426
    functionName: Botan_Tests::write_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - auto::size
    - auto::get
    - require
    - std::vector<uint8_t>
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - test_throws
    - test_bin_eq
    - Botan_Tests::record_layer_client
    - test_sz_gte
    - auto::cbegin
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> write_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:431,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:440,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:476,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:508,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:514,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:516,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:517,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:519,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:519,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: std::holds_alternative<Botan::TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:523,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: auto::fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:529,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:531,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:532,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:534,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:537,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:540,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:543,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:545,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:546,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:547,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:552,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:554,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:556,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:557,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:558,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:563,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:566,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:568,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:570,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:571,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:576,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:578,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:580,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:581,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:582,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:587,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:589,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:590,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:594,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:595,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:596,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:600,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:604,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:605,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:609,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:613,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:614,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:618,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:622,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:623,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:628,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:630,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:631,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:632,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:637,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:639,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:646,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:647,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:648,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:650,1
    - Dst: auto::advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:653,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:654,1
    - Dst: auto::advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:655,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:656,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:658,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:664,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:664,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:669,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:669,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:677,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:684,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:686,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:687,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:687,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:688,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:691,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:695,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:698,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:700,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:701,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:703,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:704,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:704,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:705,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:705,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:708,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:709,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:710,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:710,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:712,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:713,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:713,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:714,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 716
    functionName: Botan_Tests::read_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::fragment::size
    - auto::get
    - test_is_true
    - Botan::hex_decode
    - auto::insert
    - test_no_throw
    - test_bin_eq
    - std::vector::at
    - auto::end
    - std::holds_alternative<TLS::Record>
    - auto::back
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - auto::advance_with_server_finished
    - auto::cend
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::next_record
    - Botan_Tests::record_layer_client
    - auto::cbegin
    - std::holds_alternative<Botan::TLS::BytesNeeded>
    - test_enum_eq
    - auto::copy_data
    - Botan_Tests::CHECK
    - auto::advance_with_client_finished
    - std::get<TLS::Record>
    - test_sz_eq
    - test_throws
    - parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_encrypted_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:719,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:723,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:725,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:728,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:728,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:733,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:736,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:739,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:740,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:741,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:741,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:743,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:746,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:748,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:748,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:749,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:750,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:750,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:753,1
    - Dst: get_byte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:754,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:754,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:755,1
    - Dst: get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:755,1
    - Dst: get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:757,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:758,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:759,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:759,1
    - Dst: read_record_header
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:764,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:765,1
    - Dst: read_record_header
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:767,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:770,1
    - Dst: TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 772
    functionName: Botan_Tests::write_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::discard_next
    - auto::get
    - test_is_true
    - read_record_header
    - Botan::hex_decode
    - auto::size
    - test_bin_eq
    - test_u8_eq
    - test_u16_eq
    - static_cast<uint8_t>
    - TLS::TLS_Data_Reader::has_remaining
    - std::vector::size
    - get_uint16_t
    - require
    - test_sz_lte
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - Botan_Tests::CHECK
    - get_byte
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> write_encrypted_records()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:784,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:785,1
    - Dst: TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:786,1
    - Dst: TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:789,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:790,1
    - Dst: TLS::TLS_Data_Reader::assert_done
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:793,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:798,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:799,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:802,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:804,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:805,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:805,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:806,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:806,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:808,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:810,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:810,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:811,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:811,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:814,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:816,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:817,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:818,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:819,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:819,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:821,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:823,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:824,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:825,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:825,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:828,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:830,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:831,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:831,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:832,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:832,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:835,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:837,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:838,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:839,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:840,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:840,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:841,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:841,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:844,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:846,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:847,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:848,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:849,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:849,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:850,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:850,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:853,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:855,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:856,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:857,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:857,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:860,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:862,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:863,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:864,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:864,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:865,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:866,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:866,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:869,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:871,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:872,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:873,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:873,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:874,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:875,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:875,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:876,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:877,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:877,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:878,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:879,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 883
    functionName: Botan_Tests::legacy_version_handling
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::discard_next
    - TLS::TLS_Data_Reader::get_uint16_t
    - test_is_true
    - auto::prepare_records
    - Botan::hex_decode
    - test_no_throw
    - auto::disable_sending_compat_mode
    - Botan_Tests::record_layer_server
    - TLS::TLS_Data_Reader::has_remaining
    - next_record
    - TLS::TLS_Data_Reader::assert_done
    - parse_record
    - Botan_Tests::record_layer_client
    - Botan_Tests::CHECK
    - copy_data
    - std::vector<uint8_t>
    - auto::disable_receiving_compat_mode
    - test_throws
    - has_version
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> legacy_version_handling()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:890,1
    - Dst: Botan::TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:891,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:892,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:892,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:893,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:900,1
    - Dst: std::holds_alternative<Botan::TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:900,1
    - Dst: std::get<Botan::TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:901,1
    - Dst: fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:902,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:906,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:908,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:909,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:911,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:912,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:912,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:913,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:913,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:915,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:916,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:917,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:918,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:918,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:920,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:921,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:922,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:924,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:929,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:931,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:932,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:934,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:938,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:938,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:942,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:942,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:945,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:948,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:949,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:951,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:952,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:952,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:953,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:953,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:955,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:956,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:956,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:957,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:957,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:959,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:962,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:962,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:965,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:965,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:968,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:970,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:972,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:975,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:975,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:976,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:976,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:978,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:979,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:980,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:980,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:983,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:985,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:987,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:993,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:995,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:996,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:998,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:999,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1000,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1008,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1009,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1015,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1017,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 1020
    functionName: Botan_Tests::record_size_limits
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - std::holds_alternative<Botan::TLS::Record>
    - auto::prepare_records
    - count_records
    - Botan::TLS::TLS_Data_Reader::has_remaining
    - Botan::hex_decode
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::record_layer_server
    - Botan::concat
    - require
    - Botan::TLS::TLS_Data_Reader::get_tls_length_value
    - auto::set_record_size_limits
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::next_record
    - Botan_Tests::record_layer_client
    - auto::copy_data
    - record_length
    - Botan::TLS::TLS_Data_Reader::get_uint16_t
    - Botan_Tests::CHECK
    - std::get<Botan::TLS::Record>
    - std::vector<uint8_t>
    - test_sz_eq
    - Botan::TLS::TLS_Data_Reader::discard_next
    - test_throws
    - fragment::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> record_size_limits()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Record_Layer
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:32,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: Botan_Tests::record_layer_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 14
    functionsReached:
    - Botan::TLS::Record_Layer
    - auto::disable_sending_compat_mode
    linkageType: ''
    returnType: TLS::Record_Layer
    signature: TLS::Record_Layer record_layer_client(const bool skip_client_hello
      = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Record_Layer
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:43,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: Botan_Tests::record_layer_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 8
    functionsReached:
    - Botan::TLS::Record_Layer
    - auto::disable_receiving_compat_mode
    linkageType: ''
    returnType: TLS::Record_Layer
    signature: TLS::Record_Layer record_layer_server(const bool skip_client_hello
      = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Mocked_Secret_Logger::maybe_log_secret
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void maybe_log_secret(std::string_view /*label*/, std::span<const uint8_t>
      /*secret*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:60,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:63,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:66,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:68,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: Botan_Tests::rfc8448_rtt1_handshake_traffic
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 10
    functionsReached:
    - Botan::hex_decode_locked
    - Botan::hex_decode
    - std::move
    - Botan::TLS::Ciphersuite::from_name
    - Botan::TLS::Cipher_State::init_with_server_hello
    linkageType: ''
    returnType: std::unique_ptr<TLS::Cipher_State>
    signature: "std::unique_ptr<TLS::Cipher_State> rfc8448_rtt1_handshake_traffic(\n
      \  Botan::TLS::Connection_Side side = Botan::TLS::Connection_Side::Client)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:72,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:83,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:85,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:87,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:89,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:90,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:93,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:94,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:95,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:100,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:102,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:104,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:106,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:108,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:113,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:115,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:119,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:125,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:127,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:128,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:130,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:133,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:134,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:135,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:143,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:144,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:146,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:147,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:149,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:152,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:153,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:154,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:159,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:162,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:163,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 168
    functionName: Botan_Tests::read_full_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::begin
    - Botan_Tests::CHECK
    - auto::end
    - Botan::concat
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - std::get<TLS::Record>
    - test_is_true
    - test_enum_eq
    - Botan::secure_vector<uint8_t>
    - test_bin_eq
    - auto::next_record
    - std::holds_alternative<TLS::Record>
    - Botan_Tests::record_layer_server
    - auto::copy_data
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_full_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:172,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:172,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:173,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:174,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:177,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:179,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:182,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:185,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:188,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:191,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:192,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:196,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:199,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:202,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:202,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:205,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:208,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:208,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:211,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:214,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:215,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:219,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:222,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:223,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:228,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:233,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:237,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:238,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:240,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:240,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:243,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:246,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:247,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:248,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:252,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:255,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:256,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:260,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:263,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:264,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:268,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:270,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:271,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:274,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:277,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:280,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:283,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:285,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:288,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:292,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:295,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 1
    argNames:
    - side
    argTypes:
    - TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 301
    functionName: Botan_Tests::basic_sanitization_parse_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::CHECK
    - test_no_throw
    - std::vector::resize
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - test_sz_eq
    - test_is_true
    - auto::get
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::disable_receiving_compat_mode
    - auto::next_record
    - Botan_Tests::record_layer_client
    - parse_records
    - Botan_Tests::record_layer_server
    - std::get<TLS::BytesNeeded>
    - auto::copy_data
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records(TLS::Connection_Side
      side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::basic_sanitization_parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: Botan_Tests::basic_sanitization_parse_records_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::basic_sanitization_parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records_client()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::basic_sanitization_parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: Botan_Tests::basic_sanitization_parse_records_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::basic_sanitization_parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records_server()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:312,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:316,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:317,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:323,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:327,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:328,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:329,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:330,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:331,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:333,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:334,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:337,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:338,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:339,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:344,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:345,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:347,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:349,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:352,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:356,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:358,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:359,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:362,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 367
    functionName: Botan_Tests::read_fragmented_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - next_record
    - Botan_Tests::CHECK
    - TLS::Record_Layer::next_record
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - copy_data
    - test_is_true
    - test_sz_eq
    - wait_for_more_bytes
    - std::get<TLS::Record>
    - test_enum_eq
    - test_bin_eq
    - Botan_Tests::record_layer_client
    - TLS::Record_Layer::copy_data
    - std::get<TLS::BytesNeeded>
    - std::holds_alternative<TLS::Record>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_fragmented_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:370,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:372,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:375,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:375,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:377,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:378,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:380,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:382,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:394,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:396,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:397,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:397,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:402,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:406,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:411,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:413,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:414,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:415,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:418,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:420,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:422,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:423,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 426
    functionName: Botan_Tests::write_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - auto::size
    - auto::get
    - require
    - std::vector<uint8_t>
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - test_throws
    - test_bin_eq
    - Botan_Tests::record_layer_client
    - test_sz_gte
    - auto::cbegin
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> write_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:431,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:440,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:476,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:508,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:514,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:516,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:517,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:519,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:519,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: std::holds_alternative<Botan::TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:523,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: auto::fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:529,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:531,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:532,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:534,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:537,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:540,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:543,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:545,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:546,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:547,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:552,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:554,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:556,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:557,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:558,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:563,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:566,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:568,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:570,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:571,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:576,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:578,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:580,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:581,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:582,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:587,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:589,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:590,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:594,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:595,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:596,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:600,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:604,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:605,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:609,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:613,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:614,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:618,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:622,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:623,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:628,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:630,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:631,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:632,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:637,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:639,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:646,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:647,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:648,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:650,1
    - Dst: auto::advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:653,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:654,1
    - Dst: auto::advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:655,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:656,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:658,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:664,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:664,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:669,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:669,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:677,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:684,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:686,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:687,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:687,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:688,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:691,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:695,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:698,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:700,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:701,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:703,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:704,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:704,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:705,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:705,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:708,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:709,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:710,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:710,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:712,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:713,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:713,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:714,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 716
    functionName: Botan_Tests::read_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::fragment::size
    - auto::get
    - test_is_true
    - Botan::hex_decode
    - auto::insert
    - test_no_throw
    - test_bin_eq
    - std::vector::at
    - auto::end
    - std::holds_alternative<TLS::Record>
    - auto::back
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - auto::advance_with_server_finished
    - auto::cend
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::next_record
    - Botan_Tests::record_layer_client
    - auto::cbegin
    - std::holds_alternative<Botan::TLS::BytesNeeded>
    - test_enum_eq
    - auto::copy_data
    - Botan_Tests::CHECK
    - auto::advance_with_client_finished
    - std::get<TLS::Record>
    - test_sz_eq
    - test_throws
    - parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_encrypted_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:719,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:723,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:725,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:728,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:728,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:733,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:736,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:739,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:740,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:741,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:741,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:743,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:746,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:748,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:748,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:749,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:750,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:750,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:753,1
    - Dst: get_byte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:754,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:754,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:755,1
    - Dst: get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:755,1
    - Dst: get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:757,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:758,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:759,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:759,1
    - Dst: read_record_header
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:764,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:765,1
    - Dst: read_record_header
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:767,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:770,1
    - Dst: TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 772
    functionName: Botan_Tests::write_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::discard_next
    - auto::get
    - test_is_true
    - read_record_header
    - Botan::hex_decode
    - auto::size
    - test_bin_eq
    - test_u8_eq
    - test_u16_eq
    - static_cast<uint8_t>
    - TLS::TLS_Data_Reader::has_remaining
    - std::vector::size
    - get_uint16_t
    - require
    - test_sz_lte
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - Botan_Tests::CHECK
    - get_byte
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> write_encrypted_records()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:784,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:785,1
    - Dst: TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:786,1
    - Dst: TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:789,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:790,1
    - Dst: TLS::TLS_Data_Reader::assert_done
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:793,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:798,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:799,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:802,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:804,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:805,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:805,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:806,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:806,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:808,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:810,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:810,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:811,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:811,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:814,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:816,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:817,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:818,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:819,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:819,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:821,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:823,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:824,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:825,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:825,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:828,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:830,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:831,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:831,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:832,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:832,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:835,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:837,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:838,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:839,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:840,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:840,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:841,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:841,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:844,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:846,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:847,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:848,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:849,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:849,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:850,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:850,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:853,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:855,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:856,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:857,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:857,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:860,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:862,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:863,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:864,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:864,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:865,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:866,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:866,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:869,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:871,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:872,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:873,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:873,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:874,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:875,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:875,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:876,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:877,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:877,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:878,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:879,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 883
    functionName: Botan_Tests::legacy_version_handling
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::discard_next
    - TLS::TLS_Data_Reader::get_uint16_t
    - test_is_true
    - auto::prepare_records
    - Botan::hex_decode
    - test_no_throw
    - auto::disable_sending_compat_mode
    - Botan_Tests::record_layer_server
    - TLS::TLS_Data_Reader::has_remaining
    - next_record
    - TLS::TLS_Data_Reader::assert_done
    - parse_record
    - Botan_Tests::record_layer_client
    - Botan_Tests::CHECK
    - copy_data
    - std::vector<uint8_t>
    - auto::disable_receiving_compat_mode
    - test_throws
    - has_version
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> legacy_version_handling()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:890,1
    - Dst: Botan::TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:891,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:892,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:892,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:893,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:900,1
    - Dst: std::holds_alternative<Botan::TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:900,1
    - Dst: std::get<Botan::TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:901,1
    - Dst: fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:902,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:906,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:908,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:909,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:911,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:912,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:912,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:913,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:913,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:915,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:916,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:917,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:918,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:918,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:920,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:921,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:922,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:924,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:929,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:931,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:932,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:934,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:938,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:938,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:942,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:942,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:945,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:948,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:949,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:951,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:952,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:952,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:953,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:953,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:955,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:956,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:956,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:957,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:957,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:959,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:962,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:962,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:965,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:965,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:968,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:970,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:972,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:975,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:975,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:976,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:976,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:978,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:979,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:980,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:980,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:983,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:985,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:987,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:993,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:995,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:996,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:998,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:999,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1000,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1008,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1009,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1015,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1017,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 1020
    functionName: Botan_Tests::record_size_limits
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - std::holds_alternative<Botan::TLS::Record>
    - auto::prepare_records
    - count_records
    - Botan::TLS::TLS_Data_Reader::has_remaining
    - Botan::hex_decode
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::record_layer_server
    - Botan::concat
    - require
    - Botan::TLS::TLS_Data_Reader::get_tls_length_value
    - auto::set_record_size_limits
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::next_record
    - Botan_Tests::record_layer_client
    - auto::copy_data
    - record_length
    - Botan::TLS::TLS_Data_Reader::get_uint16_t
    - Botan_Tests::CHECK
    - std::get<Botan::TLS::Record>
    - std::vector<uint8_t>
    - test_sz_eq
    - Botan::TLS::TLS_Data_Reader::discard_next
    - test_throws
    - fragment::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> record_size_limits()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Record_Layer
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:32,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: Botan_Tests::record_layer_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 21
    functionsReached:
    - Botan::TLS::Record_Layer
    - auto::disable_sending_compat_mode
    linkageType: ''
    returnType: TLS::Record_Layer
    signature: TLS::Record_Layer record_layer_client(const bool skip_client_hello
      = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Record_Layer
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:43,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: Botan_Tests::record_layer_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 12
    functionsReached:
    - Botan::TLS::Record_Layer
    - auto::disable_receiving_compat_mode
    linkageType: ''
    returnType: TLS::Record_Layer
    signature: TLS::Record_Layer record_layer_server(const bool skip_client_hello
      = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Mocked_Secret_Logger::maybe_log_secret
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void maybe_log_secret(std::string_view /*label*/, std::span<const uint8_t>
      /*secret*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:60,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:63,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:66,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:68,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: Botan_Tests::rfc8448_rtt1_handshake_traffic
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 15
    functionsReached:
    - Botan::hex_decode_locked
    - Botan::hex_decode
    - std::move
    - Botan::TLS::Ciphersuite::from_name
    - Botan::TLS::Cipher_State::init_with_server_hello
    linkageType: ''
    returnType: std::unique_ptr<TLS::Cipher_State>
    signature: "std::unique_ptr<TLS::Cipher_State> rfc8448_rtt1_handshake_traffic(\n
      \  Botan::TLS::Connection_Side side = Botan::TLS::Connection_Side::Client)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:72,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:83,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:85,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:87,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:89,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:90,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:93,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:94,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:95,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:97,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:100,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:102,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:104,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:106,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:108,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:113,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:115,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:119,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:122,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:125,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:127,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:128,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:130,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:133,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:134,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:135,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:143,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:144,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:146,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:147,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:149,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:152,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:153,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:154,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:159,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:162,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:163,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 168
    functionName: Botan_Tests::read_full_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::begin
    - Botan_Tests::CHECK
    - auto::end
    - Botan::concat
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - std::get<TLS::Record>
    - test_is_true
    - test_enum_eq
    - Botan::secure_vector<uint8_t>
    - test_bin_eq
    - auto::next_record
    - std::holds_alternative<TLS::Record>
    - Botan_Tests::record_layer_server
    - auto::copy_data
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_full_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:172,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:172,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:173,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:174,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:177,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:179,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:182,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:185,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:188,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:191,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:192,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:196,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:199,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:202,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:202,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:205,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:208,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:208,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:211,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:214,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:215,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:219,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:222,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:223,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:228,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:233,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:237,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:238,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:240,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:240,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:243,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:246,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:247,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:248,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:252,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:255,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:256,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:260,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:263,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:264,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:268,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:270,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:271,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:274,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:277,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:280,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:283,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:285,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:288,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:292,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:295,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 1
    argNames:
    - side
    argTypes:
    - TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 301
    functionName: Botan_Tests::basic_sanitization_parse_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 6
    functionsReached:
    - Botan_Tests::CHECK
    - test_no_throw
    - std::vector::resize
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - test_sz_eq
    - test_is_true
    - auto::get
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::disable_receiving_compat_mode
    - auto::next_record
    - Botan_Tests::record_layer_client
    - parse_records
    - Botan_Tests::record_layer_server
    - std::get<TLS::BytesNeeded>
    - auto::copy_data
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records(TLS::Connection_Side
      side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::basic_sanitization_parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: Botan_Tests::basic_sanitization_parse_records_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::basic_sanitization_parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records_client()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::basic_sanitization_parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: Botan_Tests::basic_sanitization_parse_records_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::basic_sanitization_parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> basic_sanitization_parse_records_server()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:312,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:316,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:317,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:323,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:327,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:328,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:329,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:330,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:331,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:333,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:334,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:337,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:338,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:339,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:341,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:344,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:345,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:347,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:349,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:352,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:356,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:358,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:359,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:362,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 367
    functionName: Botan_Tests::read_fragmented_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - next_record
    - Botan_Tests::CHECK
    - TLS::Record_Layer::next_record
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - copy_data
    - test_is_true
    - test_sz_eq
    - wait_for_more_bytes
    - std::get<TLS::Record>
    - test_enum_eq
    - test_bin_eq
    - Botan_Tests::record_layer_client
    - TLS::Record_Layer::copy_data
    - std::get<TLS::BytesNeeded>
    - std::holds_alternative<TLS::Record>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_fragmented_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:370,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:372,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:375,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:375,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:377,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:378,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:380,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:382,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:394,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:396,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:397,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:397,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:402,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:406,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:411,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:413,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:414,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:415,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:418,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:420,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:422,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:423,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 426
    functionName: Botan_Tests::write_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - auto::size
    - auto::get
    - require
    - std::vector<uint8_t>
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - test_throws
    - test_bin_eq
    - Botan_Tests::record_layer_client
    - test_sz_gte
    - auto::cbegin
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> write_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:431,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:440,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:476,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:508,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:514,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:516,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:517,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:519,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:519,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: std::holds_alternative<Botan::TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:523,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: auto::fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:526,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:529,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:531,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:532,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:534,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:537,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:540,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:543,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:545,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:546,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:547,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:552,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:554,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:556,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:557,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:558,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:563,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:566,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:568,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:570,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:571,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:576,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:578,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:580,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:581,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:582,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:587,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:589,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:590,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:594,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:595,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:596,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:600,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:604,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:605,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:609,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:613,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:614,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:618,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:622,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:623,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:628,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:630,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:631,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:632,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:637,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:639,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:646,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:647,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:648,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:650,1
    - Dst: auto::advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:653,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:654,1
    - Dst: auto::advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:655,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:656,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:658,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:664,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:664,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:669,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:669,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:674,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:677,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:681,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:684,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:686,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:687,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:687,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:688,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:691,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:695,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:698,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:700,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:701,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:703,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:704,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:704,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:705,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:705,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:708,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:709,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:710,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:710,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:712,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:713,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:713,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:714,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 716
    functionName: Botan_Tests::read_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::fragment::size
    - auto::get
    - test_is_true
    - Botan::hex_decode
    - auto::insert
    - test_no_throw
    - test_bin_eq
    - std::vector::at
    - auto::end
    - std::holds_alternative<TLS::Record>
    - auto::back
    - std::holds_alternative<TLS::BytesNeeded>
    - require
    - auto::advance_with_server_finished
    - auto::cend
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::next_record
    - Botan_Tests::record_layer_client
    - auto::cbegin
    - std::holds_alternative<Botan::TLS::BytesNeeded>
    - test_enum_eq
    - auto::copy_data
    - Botan_Tests::CHECK
    - auto::advance_with_client_finished
    - std::get<TLS::Record>
    - test_sz_eq
    - test_throws
    - parse_records
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_encrypted_records()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:719,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:723,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:725,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:728,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:728,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:733,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:736,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:739,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:740,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:741,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:741,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:743,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:746,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:748,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:748,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:749,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:750,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:750,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:753,1
    - Dst: get_byte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:754,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:754,1
    - Dst: test_u16_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:755,1
    - Dst: get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:755,1
    - Dst: get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:757,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:758,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:759,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:759,1
    - Dst: read_record_header
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:764,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:765,1
    - Dst: read_record_header
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:767,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:770,1
    - Dst: TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 772
    functionName: Botan_Tests::write_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::discard_next
    - auto::get
    - test_is_true
    - read_record_header
    - Botan::hex_decode
    - auto::size
    - test_bin_eq
    - test_u8_eq
    - test_u16_eq
    - static_cast<uint8_t>
    - TLS::TLS_Data_Reader::has_remaining
    - std::vector::size
    - get_uint16_t
    - require
    - test_sz_lte
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - Botan_Tests::CHECK
    - get_byte
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> write_encrypted_records()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:784,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:785,1
    - Dst: TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:786,1
    - Dst: TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:789,1
    - Dst: TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:790,1
    - Dst: TLS::TLS_Data_Reader::assert_done
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:793,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:798,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:799,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:802,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:804,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:805,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:805,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:806,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:806,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:808,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:810,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:810,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:811,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:811,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:814,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:816,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:817,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:818,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:819,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:819,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:821,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:823,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:824,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:825,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:825,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:828,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:830,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:831,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:831,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:832,1
    - Dst: has_version
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:832,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:835,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:837,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:838,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:839,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:840,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:840,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:841,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:841,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:844,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:846,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:847,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:848,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:849,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:849,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:850,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:850,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:853,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:855,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:856,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:857,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:857,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:860,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:862,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:863,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:864,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:864,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:865,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:866,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:866,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:869,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:871,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:872,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:873,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:873,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:874,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:875,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:875,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:876,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:877,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:877,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:878,1
    - Dst: parse_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:879,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 883
    functionName: Botan_Tests::legacy_version_handling
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::discard_next
    - TLS::TLS_Data_Reader::get_uint16_t
    - test_is_true
    - auto::prepare_records
    - Botan::hex_decode
    - test_no_throw
    - auto::disable_sending_compat_mode
    - Botan_Tests::record_layer_server
    - TLS::TLS_Data_Reader::has_remaining
    - next_record
    - TLS::TLS_Data_Reader::assert_done
    - parse_record
    - Botan_Tests::record_layer_client
    - Botan_Tests::CHECK
    - copy_data
    - std::vector<uint8_t>
    - auto::disable_receiving_compat_mode
    - test_throws
    - has_version
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> legacy_version_handling()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:890,1
    - Dst: Botan::TLS::TLS_Data_Reader::discard_next
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:891,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:892,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:892,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:893,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:900,1
    - Dst: std::holds_alternative<Botan::TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:900,1
    - Dst: std::get<Botan::TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:901,1
    - Dst: fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:902,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:906,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:908,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:909,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:911,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:912,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:912,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:913,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:913,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:915,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:916,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:917,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:918,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:918,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:920,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:921,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:922,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:924,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:925,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:929,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:931,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:932,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:934,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:937,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:938,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:938,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:941,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:942,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:942,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:945,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:948,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:949,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:951,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:952,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:952,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:953,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:953,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:955,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:956,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:956,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:957,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:957,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:959,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:961,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:962,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:962,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:964,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:965,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:965,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:968,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:970,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:972,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:975,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:975,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:976,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:976,1
    - Dst: auto::prepare_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:978,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:979,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:980,1
    - Dst: count_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:980,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:983,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:985,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:987,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:989,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:990,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:993,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:995,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:996,1
    - Dst: auto::set_record_size_limits
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:998,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:999,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1000,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: record_length
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1006,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1008,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1009,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1015,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1017,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:1017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 1020
    functionName: Botan_Tests::record_size_limits
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - std::holds_alternative<Botan::TLS::Record>
    - auto::prepare_records
    - count_records
    - Botan::TLS::TLS_Data_Reader::has_remaining
    - Botan::hex_decode
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::record_layer_server
    - Botan::concat
    - require
    - Botan::TLS::TLS_Data_Reader::get_tls_length_value
    - auto::set_record_size_limits
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::next_record
    - Botan_Tests::record_layer_client
    - auto::copy_data
    - record_length
    - Botan::TLS::TLS_Data_Reader::get_uint16_t
    - Botan_Tests::CHECK
    - std::get<Botan::TLS::Record>
    - std::vector<uint8_t>
    - test_sz_eq
    - Botan::TLS::TLS_Data_Reader::discard_next
    - test_throws
    - fragment::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> record_size_limits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:28,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::OCSP_Tests::load_test_X509_cert
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate load_test_X509_cert(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_ocsp.cpp:32,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    linkageType: ''
    returnType: Botan::OCSP::Response
    signature: Botan::OCSP::Response load_test_OCSP_resp(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:45,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:46,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:49,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:49,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:54,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:55,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 59
    functionName: Botan_Tests::OCSP_Tests::test_response_parsing
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_enum_eq
    - Test::Result::test_success
    - Botan::OCSP::Response::status
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_parsing()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:65,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:66,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:67,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:67,1
    - Dst: front
      Src: /src/botan/src/tests/test_ocsp.cpp:68,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_ocsp.cpp:70,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_ocsp.cpp:71,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:72,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:75,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:76,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:77,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:77,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:79,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 83
    functionName: Botan_Tests::OCSP_Tests::test_response_certificate_access
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - front
    - subject_dn
    - Botan::OCSP::Response::certificates
    - std::make_pair
    - Test::Result::test_sz_eq
    - size
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_certificate_access()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:88,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:89,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:93,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:95,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:102,1
    - Dst: Botan::OCSP::Request::base64_encode
      Src: /src/botan/src/tests/test_ocsp.cpp:102,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ocsp.cpp:104,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/test_ocsp.cpp:104,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:105,1
    - Dst: Botan::OCSP::Request::base64_encode
      Src: /src/botan/src/tests/test_ocsp.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 108
    functionName: Botan_Tests::OCSP_Tests::test_request_encoding
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_failure
    - Botan::OCSP::Request::base64_encode
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_request_encoding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:114,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:115,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:119,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:120,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:121,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:124,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:124,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:125,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:126,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:126,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:128,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:129,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:129,1
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_ocsp.cpp:134,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:139,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:140,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:142,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:143,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:143,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:145,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:147,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:148,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:149,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:150,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:152,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:154,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:155,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:157,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:159,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_ocsp.cpp:161,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:162,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:164,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ocsp.cpp:164,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 168
    functionName: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - subject_info
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_opt_is_null
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::optional
    - auto::certificates
    - auto::find_signing_certificate
    - auto::get
    - Test::Result::test_str_eq
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - Test::Result::test_sz_eq
    - Botan::X509_Certificate
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_find_signing_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:173,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:174,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:175,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:179,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:181,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:182,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:186,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:187,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:189,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:189,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:190,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:190,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:192,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:195,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:195,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:197,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:197,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:199,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:199,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:201,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 205
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::string
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:210,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:211,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:212,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:216,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:218,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:219,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:222,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:227,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:229,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:229,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:230,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:230,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:232,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:235,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:235,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:237,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:237,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:239,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:239,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:241,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 245
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::string
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:250,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:251,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:252,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:256,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:258,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:259,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:262,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:267,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:269,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:269,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:270,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:270,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:272,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:275,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:275,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:277,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:277,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:279,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 283
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::string
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_without_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:288,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:289,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:290,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:294,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:296,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:297,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:301,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:302,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:304,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:304,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:305,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:305,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:307,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:310,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:310,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:312,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:312,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:314,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 318
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::string
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_without_next_update_without_max_age()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:323,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:324,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:325,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:331,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:332,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:335,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:339,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:339,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:340,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:340,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ocsp.cpp:341,1
    - Dst: count
      Src: /src/botan/src/tests/test_ocsp.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 347
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_softfail
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - count
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_sz_gt
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_softfail()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:353,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:354,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:358,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:359,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_ocsp.cpp:361,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_ocsp.cpp:362,1
    - Dst: Botan::PKIX::check_ocsp_online
      Src: /src/botan/src/tests/test_ocsp.cpp:363,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:364,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:366,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:366,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:367,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:367,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:368,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:370,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 376
    functionName: Botan_Tests::OCSP_Tests::test_online_request
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::PKIX::check_ocsp_online
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - contains
    - Test::Result::test_sz_eq
    - size
    - Botan_CLI::Timer::milliseconds
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_online_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:385,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:386,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:387,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:389,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:392,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:393,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:394,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:395,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:399,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:400,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:402,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:403,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:405,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_ocsp.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 410
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_opt_is_null
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_enum_eq
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::optional
    - auto::find_signing_certificate
    - Botan::Certificate_Store_In_Memory::add_certificate
    - auto::verify_signature
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_additionally_trusted_responder()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:415,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:416,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:417,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:421,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:422,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:424,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:428,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:429,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:430,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:434,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:435,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:441,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_ocsp.cpp:442,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ocsp.cpp:443,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:443,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:445,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:446,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:448,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:448,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:449,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:449,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:450,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 456
    functionName: Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - auto::back
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::data
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_forged_ocsp_signature_is_rejected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:461,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: v3_extensions
      Src: /src/botan/src/tests/test_ocsp.cpp:464,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_ocsp.cpp:464,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:465,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::certificates
    - Botan::OID::from_string
    - std::find_if
    - Test::Result::test_is_true
    - v3_extensions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_responder_cert_with_nocheck_extension()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:476,1
    - Dst: Botan_Tests::OCSP_Tests::test_request_encoding
      Src: /src/botan/src/tests/test_ocsp.cpp:476,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:477,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_parsing
      Src: /src/botan/src/tests/test_ocsp.cpp:477,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:478,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_certificate_access
      Src: /src/botan/src/tests/test_ocsp.cpp:478,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:479,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:479,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:480,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:480,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:481,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:481,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:482,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:482,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:483,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:483,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:484,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_softfail
      Src: /src/botan/src/tests/test_ocsp.cpp:484,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:485,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
      Src: /src/botan/src/tests/test_ocsp.cpp:485,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:486,1
    - Dst: Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
      Src: /src/botan/src/tests/test_ocsp.cpp:486,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:487,1
    - Dst: Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
      Src: /src/botan/src/tests/test_ocsp.cpp:487,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ocsp.cpp:490,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:491,1
    - Dst: Botan_Tests::OCSP_Tests::test_online_request
      Src: /src/botan/src/tests/test_ocsp.cpp:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 496
    functionName: Botan_Tests::OCSP_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
    - Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    - Botan_Tests::OCSP_Tests::test_response_certificate_access
    - std::vector::push_back
    - Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
    - Botan_Tests::OCSP_Tests::test_request_encoding
    - Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
    - Botan_Tests::test_encoding_options
    - Botan_Tests::OCSP_Tests::test_online_request
    - Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
    - Botan_Tests::OCSP_Tests::test_response_parsing
    - Botan_Tests::OCSP_Tests::test_response_verification_softfail
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
    - Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:28,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::OCSP_Tests::load_test_X509_cert
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 9
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate load_test_X509_cert(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_ocsp.cpp:32,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 8
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    linkageType: ''
    returnType: Botan::OCSP::Response
    signature: Botan::OCSP::Response load_test_OCSP_resp(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:45,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:46,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:49,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:49,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:54,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:55,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 59
    functionName: Botan_Tests::OCSP_Tests::test_response_parsing
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_enum_eq
    - Test::Result::test_success
    - Botan::OCSP::Response::status
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_parsing()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:65,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:66,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:67,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:67,1
    - Dst: front
      Src: /src/botan/src/tests/test_ocsp.cpp:68,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_ocsp.cpp:70,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_ocsp.cpp:71,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:72,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:75,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:76,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:77,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:77,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:79,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 83
    functionName: Botan_Tests::OCSP_Tests::test_response_certificate_access
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - front
    - subject_dn
    - Botan::OCSP::Response::certificates
    - std::make_pair
    - Test::Result::test_sz_eq
    - size
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_certificate_access()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:88,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:89,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:93,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:95,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:102,1
    - Dst: Botan::OCSP::Request::base64_encode
      Src: /src/botan/src/tests/test_ocsp.cpp:102,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ocsp.cpp:104,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/test_ocsp.cpp:104,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:105,1
    - Dst: Botan::OCSP::Request::base64_encode
      Src: /src/botan/src/tests/test_ocsp.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 108
    functionName: Botan_Tests::OCSP_Tests::test_request_encoding
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_success
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_failure
    - Botan::OCSP::Request::base64_encode
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_request_encoding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:114,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:115,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:119,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:120,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:121,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:124,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:124,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:125,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:126,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:126,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:128,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:129,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:129,1
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_ocsp.cpp:134,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:139,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:140,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:142,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:143,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:143,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:145,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:147,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:148,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:149,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:150,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:152,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:154,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:155,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:157,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:159,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_ocsp.cpp:161,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:162,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:164,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ocsp.cpp:164,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 168
    functionName: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - subject_info
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_opt_is_null
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::optional
    - auto::certificates
    - auto::find_signing_certificate
    - auto::get
    - Test::Result::test_str_eq
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - Test::Result::test_sz_eq
    - Botan::X509_Certificate
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_find_signing_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:173,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:174,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:175,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:179,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:181,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:182,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:186,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:187,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:189,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:189,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:190,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:190,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:192,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:195,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:195,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:197,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:197,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:199,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:199,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:201,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 205
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::string
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:210,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:211,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:212,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:216,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:218,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:219,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:222,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:227,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:229,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:229,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:230,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:230,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:232,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:235,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:235,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:237,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:237,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:239,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:239,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:241,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 245
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::string
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:250,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:251,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:252,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:256,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:258,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:259,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:262,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:267,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:269,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:269,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:270,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:270,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:272,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:275,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:275,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:277,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:277,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:279,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 283
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::string
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_without_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:288,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:289,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:290,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:294,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:296,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:297,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:301,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:302,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:304,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:304,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:305,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:305,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:307,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:310,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:310,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:312,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:312,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:314,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 318
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::string
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_without_next_update_without_max_age()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:323,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:324,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:325,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:331,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:332,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:335,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:339,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:339,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:340,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:340,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ocsp.cpp:341,1
    - Dst: count
      Src: /src/botan/src/tests/test_ocsp.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 347
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_softfail
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - count
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_sz_gt
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_softfail()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:353,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:354,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:358,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:359,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_ocsp.cpp:361,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_ocsp.cpp:362,1
    - Dst: Botan::PKIX::check_ocsp_online
      Src: /src/botan/src/tests/test_ocsp.cpp:363,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:364,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:366,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:366,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:367,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:367,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:368,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:370,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 376
    functionName: Botan_Tests::OCSP_Tests::test_online_request
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::PKIX::check_ocsp_online
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - contains
    - Test::Result::test_sz_eq
    - size
    - Botan_CLI::Timer::milliseconds
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_online_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:385,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:386,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:387,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:389,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:392,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:393,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:394,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:395,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:399,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:400,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:402,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:403,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:405,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_ocsp.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 410
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_opt_is_null
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_enum_eq
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::optional
    - auto::find_signing_certificate
    - Botan::Certificate_Store_In_Memory::add_certificate
    - auto::verify_signature
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_additionally_trusted_responder()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:415,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:416,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:417,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:421,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:422,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:424,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:428,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:429,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:430,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:434,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:435,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:441,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_ocsp.cpp:442,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ocsp.cpp:443,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:443,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:445,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:446,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:448,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:448,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:449,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:449,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:450,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 456
    functionName: Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - auto::back
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::data
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_forged_ocsp_signature_is_rejected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:461,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: v3_extensions
      Src: /src/botan/src/tests/test_ocsp.cpp:464,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_ocsp.cpp:464,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:465,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::certificates
    - Botan::OID::from_string
    - std::find_if
    - Test::Result::test_is_true
    - v3_extensions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_responder_cert_with_nocheck_extension()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:476,1
    - Dst: Botan_Tests::OCSP_Tests::test_request_encoding
      Src: /src/botan/src/tests/test_ocsp.cpp:476,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:477,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_parsing
      Src: /src/botan/src/tests/test_ocsp.cpp:477,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:478,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_certificate_access
      Src: /src/botan/src/tests/test_ocsp.cpp:478,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:479,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:479,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:480,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:480,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:481,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:481,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:482,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:482,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:483,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:483,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:484,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_softfail
      Src: /src/botan/src/tests/test_ocsp.cpp:484,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:485,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
      Src: /src/botan/src/tests/test_ocsp.cpp:485,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:486,1
    - Dst: Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
      Src: /src/botan/src/tests/test_ocsp.cpp:486,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:487,1
    - Dst: Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
      Src: /src/botan/src/tests/test_ocsp.cpp:487,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ocsp.cpp:490,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:491,1
    - Dst: Botan_Tests::OCSP_Tests::test_online_request
      Src: /src/botan/src/tests/test_ocsp.cpp:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 496
    functionName: Botan_Tests::OCSP_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
    - Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    - Botan_Tests::OCSP_Tests::test_response_certificate_access
    - std::vector::push_back
    - Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
    - Botan_Tests::OCSP_Tests::test_request_encoding
    - Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
    - Botan_Tests::test_encoding_options
    - Botan_Tests::OCSP_Tests::test_online_request
    - Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
    - Botan_Tests::OCSP_Tests::test_response_parsing
    - Botan_Tests::OCSP_Tests::test_response_verification_softfail
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
    - Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:28,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::OCSP_Tests::load_test_X509_cert
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 18
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate load_test_X509_cert(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_ocsp.cpp:32,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 16
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    linkageType: ''
    returnType: Botan::OCSP::Response
    signature: Botan::OCSP::Response load_test_OCSP_resp(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:45,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:46,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:49,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:49,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:54,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:55,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 59
    functionName: Botan_Tests::OCSP_Tests::test_response_parsing
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_enum_eq
    - Test::Result::test_success
    - Botan::OCSP::Response::status
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_parsing()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:65,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:66,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:67,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:67,1
    - Dst: front
      Src: /src/botan/src/tests/test_ocsp.cpp:68,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_ocsp.cpp:70,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_ocsp.cpp:71,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:72,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:75,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:76,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:77,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:77,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:79,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 83
    functionName: Botan_Tests::OCSP_Tests::test_response_certificate_access
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - front
    - subject_dn
    - Botan::OCSP::Response::certificates
    - std::make_pair
    - Test::Result::test_sz_eq
    - size
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_certificate_access()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:88,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:89,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:93,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:95,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:102,1
    - Dst: Botan::OCSP::Request::base64_encode
      Src: /src/botan/src/tests/test_ocsp.cpp:102,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ocsp.cpp:104,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/test_ocsp.cpp:104,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:105,1
    - Dst: Botan::OCSP::Request::base64_encode
      Src: /src/botan/src/tests/test_ocsp.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 108
    functionName: Botan_Tests::OCSP_Tests::test_request_encoding
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_success
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_failure
    - Botan::OCSP::Request::base64_encode
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_request_encoding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:114,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:115,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:119,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:120,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:121,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:124,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:124,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:125,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:126,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:126,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:128,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:129,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:129,1
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_ocsp.cpp:134,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:139,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:140,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:142,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:143,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:143,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:145,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:147,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:148,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:149,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:150,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:152,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:154,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:155,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:157,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:159,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_ocsp.cpp:161,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:162,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:164,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ocsp.cpp:164,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 168
    functionName: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - subject_info
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_opt_is_null
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::optional
    - auto::certificates
    - auto::find_signing_certificate
    - auto::get
    - Test::Result::test_str_eq
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - Test::Result::test_sz_eq
    - Botan::X509_Certificate
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_find_signing_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:173,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:174,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:175,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:179,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:181,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:182,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:186,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:187,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:189,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:189,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:190,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:190,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:192,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:195,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:195,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:197,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:197,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:199,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:199,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:201,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 205
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::string
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:210,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:211,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:212,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:216,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:218,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:219,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:222,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:227,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:229,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:229,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:230,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:230,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:232,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:235,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:235,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:237,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:237,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:239,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:239,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:241,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 245
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::string
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:250,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:251,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:252,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:256,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:258,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:259,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:262,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:267,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:269,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:269,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:270,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:270,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:272,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:275,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:275,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:277,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:277,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:279,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 283
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::string
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_without_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:288,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:289,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:290,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:294,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:296,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:297,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:301,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:302,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:304,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:304,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:305,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:305,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:307,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:310,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:310,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:312,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:312,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:314,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 318
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::string
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_without_next_update_without_max_age()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:323,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:324,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:325,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:331,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:332,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:335,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:339,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:339,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:340,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:340,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ocsp.cpp:341,1
    - Dst: count
      Src: /src/botan/src/tests/test_ocsp.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 347
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_softfail
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - count
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_sz_gt
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_softfail()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:353,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:354,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:358,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:359,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_ocsp.cpp:361,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_ocsp.cpp:362,1
    - Dst: Botan::PKIX::check_ocsp_online
      Src: /src/botan/src/tests/test_ocsp.cpp:363,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:364,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:366,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:366,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:367,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:367,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:368,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:370,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 376
    functionName: Botan_Tests::OCSP_Tests::test_online_request
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::PKIX::check_ocsp_online
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - contains
    - Test::Result::test_sz_eq
    - size
    - Botan_CLI::Timer::milliseconds
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_online_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:385,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:386,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:387,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:389,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:392,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:393,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:394,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:395,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:399,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:400,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:402,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:403,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:405,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_ocsp.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 410
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_opt_is_null
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_enum_eq
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::optional
    - auto::find_signing_certificate
    - Botan::Certificate_Store_In_Memory::add_certificate
    - auto::verify_signature
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_additionally_trusted_responder()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:415,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:416,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:417,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:421,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:422,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:424,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:428,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:429,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:430,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:434,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:435,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:441,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_ocsp.cpp:442,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ocsp.cpp:443,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:443,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:445,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:446,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:448,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:448,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:449,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:449,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:450,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 456
    functionName: Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - auto::back
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::data
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_forged_ocsp_signature_is_rejected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:461,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: v3_extensions
      Src: /src/botan/src/tests/test_ocsp.cpp:464,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_ocsp.cpp:464,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:465,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::certificates
    - Botan::OID::from_string
    - std::find_if
    - Test::Result::test_is_true
    - v3_extensions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_responder_cert_with_nocheck_extension()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:476,1
    - Dst: Botan_Tests::OCSP_Tests::test_request_encoding
      Src: /src/botan/src/tests/test_ocsp.cpp:476,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:477,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_parsing
      Src: /src/botan/src/tests/test_ocsp.cpp:477,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:478,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_certificate_access
      Src: /src/botan/src/tests/test_ocsp.cpp:478,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:479,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:479,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:480,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:480,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:481,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:481,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:482,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:482,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:483,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:483,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:484,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_softfail
      Src: /src/botan/src/tests/test_ocsp.cpp:484,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:485,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
      Src: /src/botan/src/tests/test_ocsp.cpp:485,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:486,1
    - Dst: Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
      Src: /src/botan/src/tests/test_ocsp.cpp:486,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:487,1
    - Dst: Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
      Src: /src/botan/src/tests/test_ocsp.cpp:487,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ocsp.cpp:490,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:491,1
    - Dst: Botan_Tests::OCSP_Tests::test_online_request
      Src: /src/botan/src/tests/test_ocsp.cpp:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 496
    functionName: Botan_Tests::OCSP_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
    - Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    - Botan_Tests::OCSP_Tests::test_response_certificate_access
    - std::vector::push_back
    - Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
    - Botan_Tests::OCSP_Tests::test_request_encoding
    - Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
    - Botan_Tests::test_encoding_options
    - Botan_Tests::OCSP_Tests::test_online_request
    - Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
    - Botan_Tests::OCSP_Tests::test_response_parsing
    - Botan_Tests::OCSP_Tests::test_response_verification_softfail
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
    - Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:28,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::OCSP_Tests::load_test_X509_cert
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 27
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate load_test_X509_cert(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_ocsp.cpp:32,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 24
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    linkageType: ''
    returnType: Botan::OCSP::Response
    signature: Botan::OCSP::Response load_test_OCSP_resp(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:45,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:46,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:49,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:49,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:54,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:55,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 59
    functionName: Botan_Tests::OCSP_Tests::test_response_parsing
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_enum_eq
    - Test::Result::test_success
    - Botan::OCSP::Response::status
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_parsing()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:65,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:66,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:67,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:67,1
    - Dst: front
      Src: /src/botan/src/tests/test_ocsp.cpp:68,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_ocsp.cpp:70,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_ocsp.cpp:71,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:72,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:75,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:76,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:77,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:77,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:79,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 83
    functionName: Botan_Tests::OCSP_Tests::test_response_certificate_access
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - front
    - subject_dn
    - Botan::OCSP::Response::certificates
    - std::make_pair
    - Test::Result::test_sz_eq
    - size
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_certificate_access()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:88,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:89,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:93,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:95,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:102,1
    - Dst: Botan::OCSP::Request::base64_encode
      Src: /src/botan/src/tests/test_ocsp.cpp:102,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ocsp.cpp:104,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/test_ocsp.cpp:104,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:105,1
    - Dst: Botan::OCSP::Request::base64_encode
      Src: /src/botan/src/tests/test_ocsp.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 108
    functionName: Botan_Tests::OCSP_Tests::test_request_encoding
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_success
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_failure
    - Botan::OCSP::Request::base64_encode
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_request_encoding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:114,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:115,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:119,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:120,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:121,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:124,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:124,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:125,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:126,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:126,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:128,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:129,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:129,1
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_ocsp.cpp:134,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:139,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:140,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:142,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:143,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:143,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:145,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:147,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:148,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:149,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:150,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:152,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:154,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:155,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:157,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:159,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_ocsp.cpp:161,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:162,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:164,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ocsp.cpp:164,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 168
    functionName: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - subject_info
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_opt_is_null
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::optional
    - auto::certificates
    - auto::find_signing_certificate
    - auto::get
    - Test::Result::test_str_eq
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - Test::Result::test_sz_eq
    - Botan::X509_Certificate
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_find_signing_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:173,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:174,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:175,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:179,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:181,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:182,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:186,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:187,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:189,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:189,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:190,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:190,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:191,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:192,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:195,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:195,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:197,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:197,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:199,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:199,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:201,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 205
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::string
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:210,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:211,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:212,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:216,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:218,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:219,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:222,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:227,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:229,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:229,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:230,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:230,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:231,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:232,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:235,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:235,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:237,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:237,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:239,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:239,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:241,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 245
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::string
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:250,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:251,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:252,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:256,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:258,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:259,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:262,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:267,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:269,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:269,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:270,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:270,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:271,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:272,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:275,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:275,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:277,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:277,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:279,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 283
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::string
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_without_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:288,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:289,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:290,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:294,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:296,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:297,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:301,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:302,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:304,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:304,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:305,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:305,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:306,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:307,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:310,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:310,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:312,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:312,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:314,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 318
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::string
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Botan::to_string
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - check_ocsp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_without_next_update_without_max_age()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:323,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:324,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:325,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:331,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:332,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:335,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:339,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:339,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:340,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:340,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ocsp.cpp:341,1
    - Dst: count
      Src: /src/botan/src/tests/test_ocsp.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 347
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_softfail
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - count
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_sz_gt
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_softfail()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:353,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:354,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:358,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:359,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_ocsp.cpp:361,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_ocsp.cpp:362,1
    - Dst: Botan::PKIX::check_ocsp_online
      Src: /src/botan/src/tests/test_ocsp.cpp:363,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:364,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:366,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:366,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:367,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:367,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:368,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:370,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 376
    functionName: Botan_Tests::OCSP_Tests::test_online_request
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_is_true
    - Botan::PKIX::check_ocsp_online
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - contains
    - Test::Result::test_sz_eq
    - size
    - Botan_CLI::Timer::milliseconds
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_online_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:385,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:386,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:387,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:389,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:392,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:393,1
    - Dst: Test::Result::test_opt_is_null
      Src: /src/botan/src/tests/test_ocsp.cpp:394,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:395,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:399,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:400,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:402,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:403,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:405,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_ocsp.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 410
    functionName: Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_opt_is_null
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Test::Result::test_enum_eq
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - std::optional
    - auto::find_signing_certificate
    - Botan::Certificate_Store_In_Memory::add_certificate
    - auto::verify_signature
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - test_arb_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_additionally_trusted_responder()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:415,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:416,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:417,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:421,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:422,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:424,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:428,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:429,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:430,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:434,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:435,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:441,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_ocsp.cpp:442,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ocsp.cpp:443,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:443,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:445,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:446,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:448,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:448,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:449,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:449,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:450,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 456
    functionName: Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - auto::back
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_is_true
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::data
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - contains
    - Botan::calendar_point
    - Test::Result::test_sz_eq
    - size
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::PKIX::check_ocsp
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_forged_ocsp_signature_is_rejected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:461,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:463,1
    - Dst: v3_extensions
      Src: /src/botan/src/tests/test_ocsp.cpp:464,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_ocsp.cpp:464,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:465,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ocsp.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - auto::certificates
    - Botan::OID::from_string
    - std::find_if
    - Test::Result::test_is_true
    - v3_extensions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_responder_cert_with_nocheck_extension()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:476,1
    - Dst: Botan_Tests::OCSP_Tests::test_request_encoding
      Src: /src/botan/src/tests/test_ocsp.cpp:476,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:477,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_parsing
      Src: /src/botan/src/tests/test_ocsp.cpp:477,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:478,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_certificate_access
      Src: /src/botan/src/tests/test_ocsp.cpp:478,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:479,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:479,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:480,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:480,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:481,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:481,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:482,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:482,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:483,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:483,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:484,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_softfail
      Src: /src/botan/src/tests/test_ocsp.cpp:484,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:485,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
      Src: /src/botan/src/tests/test_ocsp.cpp:485,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:486,1
    - Dst: Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
      Src: /src/botan/src/tests/test_ocsp.cpp:486,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:487,1
    - Dst: Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
      Src: /src/botan/src/tests/test_ocsp.cpp:487,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ocsp.cpp:490,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:491,1
    - Dst: Botan_Tests::OCSP_Tests::test_online_request
      Src: /src/botan/src/tests/test_ocsp.cpp:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 496
    functionName: Botan_Tests::OCSP_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
    - Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    - Botan_Tests::OCSP_Tests::test_response_certificate_access
    - std::vector::push_back
    - Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
    - Botan_Tests::OCSP_Tests::test_request_encoding
    - Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
    - Botan_Tests::test_encoding_options
    - Botan_Tests::OCSP_Tests::test_online_request
    - Botan_Tests::OCSP_Tests::test_forged_ocsp_signature_is_rejected
    - Botan_Tests::OCSP_Tests::test_response_parsing
    - Botan_Tests::OCSP_Tests::test_response_verification_softfail
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
    - Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:50,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 53
    functionName: Botan_Tests::test_OID_to_string
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_OID_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_oid.cpp:61,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:61,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:63,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:65,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:65,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:67,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: Botan_Tests::test_oid_registration
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_name
    - Botan::OID::register_oid
    - Test::Result::test_str_eq
    - Botan::OID::to_formatted_string
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_oid_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_oid.cpp:80,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:80,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:88,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:94,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:97,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:98,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:98,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:99,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:99,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:101,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:101,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:104,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:105,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_oid.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 111
    functionName: Botan_Tests::test_add_and_lookup
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_name
    - Botan::OID::register_oid
    - Test::Result::test_success
    - Botan::EC_Group::from_OID
    - Test::Result::test_str_eq
    - Botan::OID::to_formatted_string
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_add_and_lookup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_oid.cpp:124,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_oid.cpp:126,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: Botan_Tests::OID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_Tests::OID_Encoding_Tests::OID_Encoding_Tests
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Encoding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_oid.cpp:143,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_oid.cpp:144,1
    - Dst: Botan::DER_Encoder::encode
      Src: /src/botan/src/tests/test_oid.cpp:153,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_oid.cpp:154,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:156,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:156,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/tests/test_oid.cpp:161,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_oid.cpp:162,1
    - Dst: Botan::BER_Decoder::verify_end
      Src: /src/botan/src/tests/test_oid.cpp:163,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:164,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:164,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:166,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 170
    functionName: Botan_Tests::OID_Encoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::BER_Decoder::decode
    - Botan::BER_Decoder::verify_end
    - Botan::OID::OID
    - Botan::OID::to_string
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Botan::DER_Encoder::encode
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: Botan_Tests::OID_Invalid_Encoding_Tests::OID_Invalid_Encoding_Tests
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Invalid_Encoding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_oid.cpp:180,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/tests/test_oid.cpp:186,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_oid.cpp:187,1
    - Dst: Botan::BER_Decoder::verify_end
      Src: /src/botan/src/tests/test_oid.cpp:188,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:189,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:189,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_oid.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: Botan_Tests::OID_Invalid_Encoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::verify_end
    - Botan::BER_Decoder::decode
    - Botan::OID::OID
    - Test::Result::test_success
    - Botan::OID::to_string
    - Test::Result::test_failure
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:50,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 53
    functionName: Botan_Tests::test_OID_to_string
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_OID_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_oid.cpp:61,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:61,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:63,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:65,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:65,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:67,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: Botan_Tests::test_oid_registration
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_name
    - Botan::OID::register_oid
    - Test::Result::test_str_eq
    - Botan::OID::to_formatted_string
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_oid_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_oid.cpp:80,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:80,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:88,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:94,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:97,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:98,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:98,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:99,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:99,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:101,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:101,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:104,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:105,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_oid.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 111
    functionName: Botan_Tests::test_add_and_lookup
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_name
    - Botan::OID::register_oid
    - Test::Result::test_success
    - Botan::EC_Group::from_OID
    - Test::Result::test_str_eq
    - Botan::OID::to_formatted_string
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_add_and_lookup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_oid.cpp:124,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_oid.cpp:126,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: Botan_Tests::OID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_Tests::OID_Encoding_Tests::OID_Encoding_Tests
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Encoding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_oid.cpp:143,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_oid.cpp:144,1
    - Dst: Botan::DER_Encoder::encode
      Src: /src/botan/src/tests/test_oid.cpp:153,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_oid.cpp:154,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:156,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:156,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/tests/test_oid.cpp:161,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_oid.cpp:162,1
    - Dst: Botan::BER_Decoder::verify_end
      Src: /src/botan/src/tests/test_oid.cpp:163,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:164,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:164,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:166,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 170
    functionName: Botan_Tests::OID_Encoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::BER_Decoder::decode
    - Botan::BER_Decoder::verify_end
    - Botan::OID::OID
    - Botan::OID::to_string
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Botan::DER_Encoder::encode
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: Botan_Tests::OID_Invalid_Encoding_Tests::OID_Invalid_Encoding_Tests
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Invalid_Encoding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_oid.cpp:180,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/tests/test_oid.cpp:186,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_oid.cpp:187,1
    - Dst: Botan::BER_Decoder::verify_end
      Src: /src/botan/src/tests/test_oid.cpp:188,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:189,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:189,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_oid.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: Botan_Tests::OID_Invalid_Encoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::verify_end
    - Botan::BER_Decoder::decode
    - Botan::OID::OID
    - Test::Result::test_success
    - Botan::OID::to_string
    - Test::Result::test_failure
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:50,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 53
    functionName: Botan_Tests::test_OID_to_string
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_OID_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_oid.cpp:61,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:61,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:63,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:65,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:65,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:67,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: Botan_Tests::test_oid_registration
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_name
    - Botan::OID::register_oid
    - Test::Result::test_str_eq
    - Botan::OID::to_formatted_string
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_oid_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_oid.cpp:80,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:80,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:88,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:94,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:97,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:98,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:98,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:99,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:99,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:101,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:101,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:104,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:105,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_oid.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 111
    functionName: Botan_Tests::test_add_and_lookup
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_name
    - Botan::OID::register_oid
    - Test::Result::test_success
    - Botan::EC_Group::from_OID
    - Test::Result::test_str_eq
    - Botan::OID::to_formatted_string
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_add_and_lookup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_oid.cpp:124,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_oid.cpp:126,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: Botan_Tests::OID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_Tests::OID_Encoding_Tests::OID_Encoding_Tests
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Encoding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_oid.cpp:143,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_oid.cpp:144,1
    - Dst: Botan::DER_Encoder::encode
      Src: /src/botan/src/tests/test_oid.cpp:153,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_oid.cpp:154,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:156,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:156,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/tests/test_oid.cpp:161,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_oid.cpp:162,1
    - Dst: Botan::BER_Decoder::verify_end
      Src: /src/botan/src/tests/test_oid.cpp:163,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:164,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:164,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:166,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 170
    functionName: Botan_Tests::OID_Encoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::BER_Decoder::decode
    - Botan::BER_Decoder::verify_end
    - Botan::OID::OID
    - Botan::OID::to_string
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Botan::DER_Encoder::encode
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: Botan_Tests::OID_Invalid_Encoding_Tests::OID_Invalid_Encoding_Tests
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Invalid_Encoding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_oid.cpp:180,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/tests/test_oid.cpp:186,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_oid.cpp:187,1
    - Dst: Botan::BER_Decoder::verify_end
      Src: /src/botan/src/tests/test_oid.cpp:188,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:189,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:189,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_oid.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: Botan_Tests::OID_Invalid_Encoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::verify_end
    - Botan::BER_Decoder::decode
    - Botan::OID::OID
    - Test::Result::test_success
    - Botan::OID::to_string
    - Test::Result::test_failure
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:50,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 53
    functionName: Botan_Tests::test_OID_to_string
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_OID_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_oid.cpp:61,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:61,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:63,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:65,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:65,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:67,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: Botan_Tests::test_oid_registration
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_name
    - Botan::OID::register_oid
    - Test::Result::test_str_eq
    - Botan::OID::to_formatted_string
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_oid_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_oid.cpp:80,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:80,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:84,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:88,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:94,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_oid.cpp:97,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:98,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:98,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:99,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:99,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:101,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:101,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:104,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:105,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_oid.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 111
    functionName: Botan_Tests::test_add_and_lookup
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_name
    - Botan::OID::register_oid
    - Test::Result::test_success
    - Botan::EC_Group::from_OID
    - Test::Result::test_str_eq
    - Botan::OID::to_formatted_string
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_add_and_lookup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_oid.cpp:124,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_oid.cpp:126,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: Botan_Tests::OID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_Tests::OID_Encoding_Tests::OID_Encoding_Tests
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Encoding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_oid.cpp:143,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_oid.cpp:144,1
    - Dst: Botan::DER_Encoder::encode
      Src: /src/botan/src/tests/test_oid.cpp:153,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_oid.cpp:154,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:156,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:156,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/tests/test_oid.cpp:161,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_oid.cpp:162,1
    - Dst: Botan::BER_Decoder::verify_end
      Src: /src/botan/src/tests/test_oid.cpp:163,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_oid.cpp:164,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:164,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:166,1
    - Dst: what
      Src: /src/botan/src/tests/test_oid.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 170
    functionName: Botan_Tests::OID_Encoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::BER_Decoder::decode
    - Botan::BER_Decoder::verify_end
    - Botan::OID::OID
    - Botan::OID::to_string
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Botan::DER_Encoder::encode
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: Botan_Tests::OID_Invalid_Encoding_Tests::OID_Invalid_Encoding_Tests
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Invalid_Encoding_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_oid.cpp:180,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/tests/test_oid.cpp:186,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_oid.cpp:187,1
    - Dst: Botan::BER_Decoder::verify_end
      Src: /src/botan/src/tests/test_oid.cpp:188,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_oid.cpp:189,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:189,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_oid.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: Botan_Tests::OID_Invalid_Encoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::verify_end
    - Botan::BER_Decoder::decode
    - Botan::OID::OID
    - Test::Result::test_success
    - Botan::OID::to_string
    - Test::Result::test_failure
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::ECDH_KAT_Tests::ECDH_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDH_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECDH_KAT_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdh.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::ECDH_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdh.cpp:34,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:35,1
    - Dst: Botan_Tests::ECDH_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecdh.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan_Tests::ECDH_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - Botan_Tests::ECDH_KAT_Tests::rng
    - get_req_bn
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      group_id, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecdh.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECDH_KAT_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: Botan_Tests::ECDH_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::ECDH_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_ecdh.cpp:55,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecdh.cpp:56,1
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: Botan_Tests::ECDH_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECDH_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecdh.cpp:66,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:69,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:77,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecdh.cpp:78,1
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:80,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:84,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecdh.cpp:85,1
    - Dst: Botan::ECDH_PublicKey
      Src: /src/botan/src/tests/test_ecdh.cpp:86,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:90,1
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:91,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdh.cpp:91,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:94,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:99,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:102,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:105,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdh.cpp:113,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdh.cpp:113,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecdh.cpp:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 122
    functionName: Botan_Tests::ECDH_AllGroups_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::public_value
    - Botan::EC_Scalar::one
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::PK_Key_Agreement::derive_key
    - rng
    - std::vector::push_back
    - Botan::EC_AffinePoint::identity
    - Botan::ECDH_PublicKey
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - auto::bits_of
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - Test::Result::test_throws
    - Botan::ECDH_PrivateKey
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::ECDH_KAT_Tests::ECDH_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDH_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECDH_KAT_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdh.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::ECDH_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdh.cpp:34,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:35,1
    - Dst: Botan_Tests::ECDH_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecdh.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan_Tests::ECDH_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - Botan_Tests::ECDH_KAT_Tests::rng
    - get_req_bn
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      group_id, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecdh.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECDH_KAT_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: Botan_Tests::ECDH_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::ECDH_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_ecdh.cpp:55,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecdh.cpp:56,1
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: Botan_Tests::ECDH_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECDH_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecdh.cpp:66,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:69,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:77,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecdh.cpp:78,1
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:80,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:84,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecdh.cpp:85,1
    - Dst: Botan::ECDH_PublicKey
      Src: /src/botan/src/tests/test_ecdh.cpp:86,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:90,1
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:91,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdh.cpp:91,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:94,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:99,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:102,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:105,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdh.cpp:113,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdh.cpp:113,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecdh.cpp:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 122
    functionName: Botan_Tests::ECDH_AllGroups_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::public_value
    - Botan::EC_Scalar::one
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::PK_Key_Agreement::derive_key
    - rng
    - std::vector::push_back
    - Botan::EC_AffinePoint::identity
    - Botan::ECDH_PublicKey
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - auto::bits_of
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - Test::Result::test_throws
    - Botan::ECDH_PrivateKey
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::ECDH_KAT_Tests::ECDH_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDH_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECDH_KAT_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdh.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::ECDH_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdh.cpp:34,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:35,1
    - Dst: Botan_Tests::ECDH_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecdh.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan_Tests::ECDH_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - Botan_Tests::ECDH_KAT_Tests::rng
    - get_req_bn
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      group_id, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecdh.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECDH_KAT_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: Botan_Tests::ECDH_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::ECDH_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_ecdh.cpp:55,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecdh.cpp:56,1
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: Botan_Tests::ECDH_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECDH_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecdh.cpp:66,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:69,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:77,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecdh.cpp:78,1
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:80,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:84,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecdh.cpp:85,1
    - Dst: Botan::ECDH_PublicKey
      Src: /src/botan/src/tests/test_ecdh.cpp:86,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:90,1
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:91,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdh.cpp:91,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:94,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:99,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:102,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:105,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdh.cpp:113,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdh.cpp:113,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecdh.cpp:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 122
    functionName: Botan_Tests::ECDH_AllGroups_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::public_value
    - Botan::EC_Scalar::one
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::PK_Key_Agreement::derive_key
    - rng
    - std::vector::push_back
    - Botan::EC_AffinePoint::identity
    - Botan::ECDH_PublicKey
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - auto::bits_of
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - Test::Result::test_throws
    - Botan::ECDH_PrivateKey
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::ECDH_KAT_Tests::ECDH_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDH_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECDH_KAT_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdh.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::ECDH_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdh.cpp:34,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:35,1
    - Dst: Botan_Tests::ECDH_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecdh.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan_Tests::ECDH_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - Botan_Tests::ECDH_KAT_Tests::rng
    - get_req_bn
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      group_id, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecdh.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECDH_KAT_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: Botan_Tests::ECDH_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::ECDH_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_ecdh.cpp:55,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecdh.cpp:56,1
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: Botan_Tests::ECDH_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECDH_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecdh.cpp:66,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:69,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:77,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecdh.cpp:78,1
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:80,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:84,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecdh.cpp:85,1
    - Dst: Botan::ECDH_PublicKey
      Src: /src/botan/src/tests/test_ecdh.cpp:86,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:90,1
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:91,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdh.cpp:91,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:94,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:99,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:102,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:105,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:110,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdh.cpp:113,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdh.cpp:113,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecdh.cpp:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 122
    functionName: Botan_Tests::ECDH_AllGroups_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::public_value
    - Botan::EC_Scalar::one
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::PK_Key_Agreement::derive_key
    - rng
    - std::vector::push_back
    - Botan::EC_AffinePoint::identity
    - Botan::ECDH_PublicKey
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - auto::bits_of
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - Test::Result::test_throws
    - Botan::ECDH_PrivateKey
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:36,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:38,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:40,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:43,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_ecdsa.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Botan::X509_Certificate::authority_key_id
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Botan::X509_Certificate::subject_key_id
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:45,1
    - Dst: Botan::X509_Certificate::fingerprint
      Src: /src/botan/src/tests/unit_ecdsa.cpp:47,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:50,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:51,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:51,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:53,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: Botan_Tests::test_decode_ecdsa_X509
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::authority_key_id
    - Botan::X509_Certificate::check_signature
    - Botan::X509_Certificate::fingerprint
    - Botan::X509_Certificate::signature_algorithm
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    - Botan::X509_Certificate::subject_key_id
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ecdsa_X509()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:63,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:65,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:66,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:69,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:69,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:71,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: Botan_Tests::test_decode_ver_link_SHA256
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::check_signature
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ver_link_SHA256()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:81,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:83,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:84,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:86,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/unit_ecdsa.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:91,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:92,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:95,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:95,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:97,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: Botan_Tests::test_decode_ver_link_SHA1
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::check_signature
    - Botan_Tests::Test::data_file
    - Botan::HashFunction::create
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ver_link_SHA1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_ecdsa.cpp:109,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/unit_ecdsa.cpp:111,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:112,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:115,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:116,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:118,1
    - Dst: Botan::ECDSA_PrivateKey::set_point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:119,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:121,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:121,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:123,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:125,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/unit_ecdsa.cpp:126,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/unit_ecdsa.cpp:126,1
    - Dst: Botan::ECDSA_PrivateKey::set_point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:127,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:128,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:128,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:129,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:133,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 137
    functionName: Botan_Tests::test_encoding_options
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 4
    functionsReached:
    - what
    - Botan::EC_Group::from_name
    - Test::Result::test_sz_lt
    - Test::Result::test_sz_gte
    - Botan::ECDSA_PrivateKey::public_key_bits
    - auto::get_p_bytes
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - Botan::ECDSA_PrivateKey::set_point_encoding
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - Botan::ECDSA_PrivateKey::point_encoding
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_encoding_options()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:145,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:146,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:149,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:150,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: dynamic_cast<Botan::ECDSA_PrivateKey*>
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:154,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: Botan_Tests::test_ecc_key_with_rfc5915_extensions
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - auto::algo_name
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_key_with_rfc5915_extensions()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:164,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:165,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:168,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:169,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:169,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: dynamic_cast<Botan::ECDSA_PrivateKey*>
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:173,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: Botan_Tests::test_ecc_key_with_rfc5915_parameters
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - auto::algo_name
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_key_with_rfc5915_parameters()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:187,1
    - Dst: test_ecc_key_with_rfc5915_extensions
      Src: /src/botan/src/tests/unit_ecdsa.cpp:187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:188,1
    - Dst: test_ecc_key_with_rfc5915_parameters
      Src: /src/botan/src/tests/unit_ecdsa.cpp:188,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:191,1
    - Dst: test_decode_ecdsa_X509
      Src: /src/botan/src/tests/unit_ecdsa.cpp:191,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:192,1
    - Dst: test_decode_ver_link_SHA256
      Src: /src/botan/src/tests/unit_ecdsa.cpp:192,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:193,1
    - Dst: test_decode_ver_link_SHA1
      Src: /src/botan/src/tests/unit_ecdsa.cpp:193,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:198,1
    - Dst: test_encoding_options
      Src: /src/botan/src/tests/unit_ecdsa.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 200
    functionName: Botan_Tests::ECDSA_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - test_decode_ver_link_SHA256
    - std::vector::push_back
    - test_encoding_options
    - test_decode_ecdsa_X509
    - test_ecc_key_with_rfc5915_extensions
    - test_decode_ver_link_SHA1
    - test_ecc_key_with_rfc5915_parameters
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:36,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:38,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:40,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:43,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_ecdsa.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Botan::X509_Certificate::authority_key_id
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Botan::X509_Certificate::subject_key_id
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:45,1
    - Dst: Botan::X509_Certificate::fingerprint
      Src: /src/botan/src/tests/unit_ecdsa.cpp:47,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:50,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:51,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:51,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:53,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: Botan_Tests::test_decode_ecdsa_X509
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::authority_key_id
    - Botan::X509_Certificate::check_signature
    - Botan::X509_Certificate::fingerprint
    - Botan::X509_Certificate::signature_algorithm
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    - Botan::X509_Certificate::subject_key_id
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ecdsa_X509()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:63,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:65,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:66,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:69,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:69,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:71,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: Botan_Tests::test_decode_ver_link_SHA256
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::check_signature
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ver_link_SHA256()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:81,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:83,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:84,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:86,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/unit_ecdsa.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:91,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:92,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:95,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:95,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:97,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: Botan_Tests::test_decode_ver_link_SHA1
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::check_signature
    - Botan_Tests::Test::data_file
    - Botan::HashFunction::create
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ver_link_SHA1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_ecdsa.cpp:109,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/unit_ecdsa.cpp:111,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:112,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:115,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:116,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:118,1
    - Dst: Botan::ECDSA_PrivateKey::set_point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:119,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:121,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:121,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:123,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:125,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/unit_ecdsa.cpp:126,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/unit_ecdsa.cpp:126,1
    - Dst: Botan::ECDSA_PrivateKey::set_point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:127,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:128,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:128,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:129,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:133,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 137
    functionName: Botan_Tests::test_encoding_options
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 4
    functionsReached:
    - what
    - Botan::EC_Group::from_name
    - Test::Result::test_sz_lt
    - Test::Result::test_sz_gte
    - Botan::ECDSA_PrivateKey::public_key_bits
    - auto::get_p_bytes
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - Botan::ECDSA_PrivateKey::set_point_encoding
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - Botan::ECDSA_PrivateKey::point_encoding
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_encoding_options()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:145,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:146,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:149,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:150,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: dynamic_cast<Botan::ECDSA_PrivateKey*>
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:154,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: Botan_Tests::test_ecc_key_with_rfc5915_extensions
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - auto::algo_name
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_key_with_rfc5915_extensions()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:164,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:165,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:168,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:169,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:169,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: dynamic_cast<Botan::ECDSA_PrivateKey*>
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:173,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: Botan_Tests::test_ecc_key_with_rfc5915_parameters
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - auto::algo_name
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_key_with_rfc5915_parameters()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:187,1
    - Dst: test_ecc_key_with_rfc5915_extensions
      Src: /src/botan/src/tests/unit_ecdsa.cpp:187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:188,1
    - Dst: test_ecc_key_with_rfc5915_parameters
      Src: /src/botan/src/tests/unit_ecdsa.cpp:188,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:191,1
    - Dst: test_decode_ecdsa_X509
      Src: /src/botan/src/tests/unit_ecdsa.cpp:191,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:192,1
    - Dst: test_decode_ver_link_SHA256
      Src: /src/botan/src/tests/unit_ecdsa.cpp:192,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:193,1
    - Dst: test_decode_ver_link_SHA1
      Src: /src/botan/src/tests/unit_ecdsa.cpp:193,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:198,1
    - Dst: test_encoding_options
      Src: /src/botan/src/tests/unit_ecdsa.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 200
    functionName: Botan_Tests::ECDSA_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - test_decode_ver_link_SHA256
    - std::vector::push_back
    - test_encoding_options
    - test_decode_ecdsa_X509
    - test_ecc_key_with_rfc5915_extensions
    - test_decode_ver_link_SHA1
    - test_ecc_key_with_rfc5915_parameters
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:36,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:38,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:40,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:43,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_ecdsa.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Botan::X509_Certificate::authority_key_id
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Botan::X509_Certificate::subject_key_id
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:45,1
    - Dst: Botan::X509_Certificate::fingerprint
      Src: /src/botan/src/tests/unit_ecdsa.cpp:47,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:50,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:51,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:51,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:53,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: Botan_Tests::test_decode_ecdsa_X509
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::authority_key_id
    - Botan::X509_Certificate::check_signature
    - Botan::X509_Certificate::fingerprint
    - Botan::X509_Certificate::signature_algorithm
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    - Botan::X509_Certificate::subject_key_id
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ecdsa_X509()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:63,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:65,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:66,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:69,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:69,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:71,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: Botan_Tests::test_decode_ver_link_SHA256
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::check_signature
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ver_link_SHA256()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:81,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:83,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:84,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:86,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/unit_ecdsa.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:91,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:92,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:95,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:95,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:97,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: Botan_Tests::test_decode_ver_link_SHA1
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::check_signature
    - Botan_Tests::Test::data_file
    - Botan::HashFunction::create
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ver_link_SHA1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_ecdsa.cpp:109,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/unit_ecdsa.cpp:111,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:112,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:115,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:116,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:118,1
    - Dst: Botan::ECDSA_PrivateKey::set_point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:119,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:121,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:121,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:123,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:125,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/unit_ecdsa.cpp:126,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/unit_ecdsa.cpp:126,1
    - Dst: Botan::ECDSA_PrivateKey::set_point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:127,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:128,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:128,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:129,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:133,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 137
    functionName: Botan_Tests::test_encoding_options
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 4
    functionsReached:
    - what
    - Botan::EC_Group::from_name
    - Test::Result::test_sz_lt
    - Test::Result::test_sz_gte
    - Botan::ECDSA_PrivateKey::public_key_bits
    - auto::get_p_bytes
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - Botan::ECDSA_PrivateKey::set_point_encoding
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - Botan::ECDSA_PrivateKey::point_encoding
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_encoding_options()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:145,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:146,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:149,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:150,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: dynamic_cast<Botan::ECDSA_PrivateKey*>
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:154,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: Botan_Tests::test_ecc_key_with_rfc5915_extensions
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - auto::algo_name
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_key_with_rfc5915_extensions()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:164,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:165,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:168,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:169,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:169,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: dynamic_cast<Botan::ECDSA_PrivateKey*>
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:173,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: Botan_Tests::test_ecc_key_with_rfc5915_parameters
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - auto::algo_name
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_key_with_rfc5915_parameters()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:187,1
    - Dst: test_ecc_key_with_rfc5915_extensions
      Src: /src/botan/src/tests/unit_ecdsa.cpp:187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:188,1
    - Dst: test_ecc_key_with_rfc5915_parameters
      Src: /src/botan/src/tests/unit_ecdsa.cpp:188,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:191,1
    - Dst: test_decode_ecdsa_X509
      Src: /src/botan/src/tests/unit_ecdsa.cpp:191,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:192,1
    - Dst: test_decode_ver_link_SHA256
      Src: /src/botan/src/tests/unit_ecdsa.cpp:192,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:193,1
    - Dst: test_decode_ver_link_SHA1
      Src: /src/botan/src/tests/unit_ecdsa.cpp:193,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:198,1
    - Dst: test_encoding_options
      Src: /src/botan/src/tests/unit_ecdsa.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 200
    functionName: Botan_Tests::ECDSA_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - test_decode_ver_link_SHA256
    - std::vector::push_back
    - test_encoding_options
    - test_decode_ecdsa_X509
    - test_ecc_key_with_rfc5915_extensions
    - test_decode_ver_link_SHA1
    - test_ecc_key_with_rfc5915_parameters
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:36,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:38,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:40,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:43,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_ecdsa.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Botan::X509_Certificate::authority_key_id
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Botan::X509_Certificate::subject_key_id
      Src: /src/botan/src/tests/unit_ecdsa.cpp:44,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:45,1
    - Dst: Botan::X509_Certificate::fingerprint
      Src: /src/botan/src/tests/unit_ecdsa.cpp:47,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:50,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:51,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:51,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:53,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: Botan_Tests::test_decode_ecdsa_X509
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::authority_key_id
    - Botan::X509_Certificate::check_signature
    - Botan::X509_Certificate::fingerprint
    - Botan::X509_Certificate::signature_algorithm
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    - Botan::X509_Certificate::subject_key_id
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ecdsa_X509()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:63,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:65,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:66,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:69,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:69,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:71,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: Botan_Tests::test_decode_ver_link_SHA256
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::check_signature
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ver_link_SHA256()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:81,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:83,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:84,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:86,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/unit_ecdsa.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:91,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:92,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:95,1
    - Dst: Botan::X509_Certificate::check_signature
      Src: /src/botan/src/tests/unit_ecdsa.cpp:95,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:97,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: Botan_Tests::test_decode_ver_link_SHA1
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::check_signature
    - Botan_Tests::Test::data_file
    - Botan::HashFunction::create
    - Test::Result::test_failure
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decode_ver_link_SHA1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_ecdsa.cpp:109,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/unit_ecdsa.cpp:111,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:112,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:115,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:116,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:118,1
    - Dst: Botan::ECDSA_PrivateKey::set_point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:119,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:121,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:121,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:123,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:125,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/unit_ecdsa.cpp:126,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/unit_ecdsa.cpp:126,1
    - Dst: Botan::ECDSA_PrivateKey::set_point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:127,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:128,1
    - Dst: Botan::ECDSA_PrivateKey::point_encoding
      Src: /src/botan/src/tests/unit_ecdsa.cpp:128,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/unit_ecdsa.cpp:129,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_ecdsa.cpp:130,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:133,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 137
    functionName: Botan_Tests::test_encoding_options
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 4
    functionsReached:
    - what
    - Botan::EC_Group::from_name
    - Test::Result::test_sz_lt
    - Test::Result::test_sz_gte
    - Botan::ECDSA_PrivateKey::public_key_bits
    - auto::get_p_bytes
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - Botan::ECDSA_PrivateKey::set_point_encoding
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - Botan::ECDSA_PrivateKey::point_encoding
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_encoding_options()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:145,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:146,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:149,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:150,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: dynamic_cast<Botan::ECDSA_PrivateKey*>
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_ecdsa.cpp:151,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:154,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: Botan_Tests::test_ecc_key_with_rfc5915_extensions
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - auto::algo_name
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_key_with_rfc5915_extensions()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_ecdsa.cpp:164,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_ecdsa.cpp:165,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_ecdsa.cpp:166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:168,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_ecdsa.cpp:169,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_ecdsa.cpp:169,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: dynamic_cast<Botan::ECDSA_PrivateKey*>
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_ecdsa.cpp:170,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_ecdsa.cpp:173,1
    - Dst: what
      Src: /src/botan/src/tests/unit_ecdsa.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: Botan_Tests::test_ecc_key_with_rfc5915_parameters
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - auto::algo_name
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_key_with_rfc5915_parameters()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:187,1
    - Dst: test_ecc_key_with_rfc5915_extensions
      Src: /src/botan/src/tests/unit_ecdsa.cpp:187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:188,1
    - Dst: test_ecc_key_with_rfc5915_parameters
      Src: /src/botan/src/tests/unit_ecdsa.cpp:188,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:191,1
    - Dst: test_decode_ecdsa_X509
      Src: /src/botan/src/tests/unit_ecdsa.cpp:191,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:192,1
    - Dst: test_decode_ver_link_SHA256
      Src: /src/botan/src/tests/unit_ecdsa.cpp:192,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:193,1
    - Dst: test_decode_ver_link_SHA1
      Src: /src/botan/src/tests/unit_ecdsa.cpp:193,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_ecdsa.cpp:198,1
    - Dst: test_encoding_options
      Src: /src/botan/src/tests/unit_ecdsa.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 200
    functionName: Botan_Tests::ECDSA_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - test_decode_ver_link_SHA256
    - std::vector::push_back
    - test_encoding_options
    - test_decode_ecdsa_X509
    - test_ecc_key_with_rfc5915_extensions
    - test_decode_ver_link_SHA1
    - test_ecc_key_with_rfc5915_parameters
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::Cipher_Mode_Padding_Tests::Cipher_Mode_Padding_Tests
    functionSourceFile: /src/botan/src/tests/test_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_Mode_Padding_Tests()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pad.cpp:24,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pad.cpp:25,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pad.cpp:26,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_pad.cpp:30,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/test_pad.cpp:32,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pad.cpp:33,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_pad.cpp:35,1
    - Dst: Botan::BlockCipherModePaddingMethod::create
      Src: /src/botan/src/tests/test_pad.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:43,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pad.cpp:47,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:49,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:49,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:50,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pad.cpp:52,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_pad.cpp:57,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pad.cpp:58,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:58,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:61,1
    - Dst: auto::add_padding
      Src: /src/botan/src/tests/test_pad.cpp:62,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pad.cpp:63,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:69,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:69,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:70,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:70,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pad.cpp:71,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:74,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:74,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:78,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pad.cpp:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 83
    functionName: Botan_Tests::Cipher_Mode_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pad.cpp
    functionUses: 0
    functionsReached:
    - last
    - std::vector::begin
    - Test::Result::test_sz_eq
    - std::string::find
    - Botan::secure_vector::assign
    - Test::Result::test_success
    - std::vector::end
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - std::vector::empty
    - auto::add_padding
    - get_opt_bin
    - Botan::secure_vector::resize
    - Test::Result::test_bin_eq
    - get_req_sz
    - std::string::substr
    - auto::output_length
    - auto::unpad
    - Botan::BlockCipherModePaddingMethod::create
    - std::string::resize
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::Cipher_Mode_Padding_Tests::Cipher_Mode_Padding_Tests
    functionSourceFile: /src/botan/src/tests/test_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_Mode_Padding_Tests()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pad.cpp:24,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pad.cpp:25,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pad.cpp:26,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_pad.cpp:30,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/test_pad.cpp:32,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pad.cpp:33,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_pad.cpp:35,1
    - Dst: Botan::BlockCipherModePaddingMethod::create
      Src: /src/botan/src/tests/test_pad.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:43,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pad.cpp:47,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:49,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:49,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:50,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pad.cpp:52,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_pad.cpp:57,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pad.cpp:58,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:58,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:61,1
    - Dst: auto::add_padding
      Src: /src/botan/src/tests/test_pad.cpp:62,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pad.cpp:63,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:69,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:69,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:70,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:70,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pad.cpp:71,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:74,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:74,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:78,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pad.cpp:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 83
    functionName: Botan_Tests::Cipher_Mode_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pad.cpp
    functionUses: 0
    functionsReached:
    - last
    - std::vector::begin
    - Test::Result::test_sz_eq
    - std::string::find
    - Botan::secure_vector::assign
    - Test::Result::test_success
    - std::vector::end
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - std::vector::empty
    - auto::add_padding
    - get_opt_bin
    - Botan::secure_vector::resize
    - Test::Result::test_bin_eq
    - get_req_sz
    - std::string::substr
    - auto::output_length
    - auto::unpad
    - Botan::BlockCipherModePaddingMethod::create
    - std::string::resize
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::Cipher_Mode_Padding_Tests::Cipher_Mode_Padding_Tests
    functionSourceFile: /src/botan/src/tests/test_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_Mode_Padding_Tests()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pad.cpp:24,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pad.cpp:25,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pad.cpp:26,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_pad.cpp:30,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/test_pad.cpp:32,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pad.cpp:33,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_pad.cpp:35,1
    - Dst: Botan::BlockCipherModePaddingMethod::create
      Src: /src/botan/src/tests/test_pad.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:43,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pad.cpp:47,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:49,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:49,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:50,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pad.cpp:52,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_pad.cpp:57,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pad.cpp:58,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:58,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:61,1
    - Dst: auto::add_padding
      Src: /src/botan/src/tests/test_pad.cpp:62,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pad.cpp:63,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:69,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:69,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:70,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:70,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pad.cpp:71,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:74,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:74,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:78,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pad.cpp:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 83
    functionName: Botan_Tests::Cipher_Mode_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pad.cpp
    functionUses: 0
    functionsReached:
    - last
    - std::vector::begin
    - Test::Result::test_sz_eq
    - std::string::find
    - Botan::secure_vector::assign
    - Test::Result::test_success
    - std::vector::end
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - std::vector::empty
    - auto::add_padding
    - get_opt_bin
    - Botan::secure_vector::resize
    - Test::Result::test_bin_eq
    - get_req_sz
    - std::string::substr
    - auto::output_length
    - auto::unpad
    - Botan::BlockCipherModePaddingMethod::create
    - std::string::resize
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::Cipher_Mode_Padding_Tests::Cipher_Mode_Padding_Tests
    functionSourceFile: /src/botan/src/tests/test_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_Mode_Padding_Tests()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pad.cpp:24,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pad.cpp:25,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pad.cpp:26,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_pad.cpp:30,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/test_pad.cpp:32,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pad.cpp:33,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_pad.cpp:35,1
    - Dst: Botan::BlockCipherModePaddingMethod::create
      Src: /src/botan/src/tests/test_pad.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:43,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pad.cpp:47,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:49,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:49,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:50,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pad.cpp:52,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_pad.cpp:57,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pad.cpp:58,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:58,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:61,1
    - Dst: auto::add_padding
      Src: /src/botan/src/tests/test_pad.cpp:62,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pad.cpp:63,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:65,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:69,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:69,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:70,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:70,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pad.cpp:71,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:74,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:74,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:78,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pad.cpp:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 83
    functionName: Botan_Tests::Cipher_Mode_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pad.cpp
    functionUses: 0
    functionsReached:
    - last
    - std::vector::begin
    - Test::Result::test_sz_eq
    - std::string::find
    - Botan::secure_vector::assign
    - Test::Result::test_success
    - std::vector::end
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - std::vector::empty
    - auto::add_padding
    - get_opt_bin
    - Botan::secure_vector::resize
    - Test::Result::test_bin_eq
    - get_req_sz
    - std::string::substr
    - auto::output_length
    - auto::unpad
    - Botan::BlockCipherModePaddingMethod::create
    - std::string::resize
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:48,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:49,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:54,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_x509_path.cpp:55,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:56,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_x509_path.cpp:63,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_path.cpp:65,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:66,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' results_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: Botan_Tests::read_results
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::good
    - Botan::split_on
    - std::string::empty
    - Test_Error
    - std::getline
    - std::vector::size
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> read_results(const std::string&
      results_file, const char delim = ':')
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/tests/test_x509_path.cpp:79,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: Botan_Tests::load_cert_file
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::DataSource_Stream::end_of_data
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> load_cert_file(const std::string&
      filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: begin
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: end
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' codes'
    argTypes:
    - Botan::CertificatePathStatusCodes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan_Tests::flatten
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - end
    - begin
    linkageType: ''
    returnType: std::set<Botan::Certificate_Status_Code>
    signature: std::set<Botan::Certificate_Status_Code> flatten(const Botan::CertificatePathStatusCodes&
      codes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan_Tests::get_default_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions
    linkageType: ''
    returnType: Botan::Path_Validation_Restrictions
    signature: Botan::Path_Validation_Restrictions get_default_restrictions(bool req_revocation_info,
      bool ocsp_all_intermediates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:104,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:107,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: Botan_Tests::get_allow_non_self_signed_anchors_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - Botan::Sodium::sodium_memzero
    linkageType: ''
    returnType: Botan::Path_Validation_Restrictions
    signature: "Botan::Path_Validation_Restrictions get_allow_non_self_signed_anchors_restrictions(bool
      req_revocation_info,\n                                                                                   bool
      ocsp_all_intermediates)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Botan_Tests::get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:117,1
    - Dst: Botan_Tests::get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: Botan_Tests::restrictions_to_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - Botan_Tests::get_allow_non_self_signed_anchors_restrictions
    - Botan_Tests::get_default_restrictions
    linkageType: ''
    returnType: std::vector<Botan::Path_Validation_Restrictions>
    signature: "std::vector<Botan::Path_Validation_Restrictions> restrictions_to_test(bool
      req_revocation_info,\n                                                                      bool
      ocsp_all_intermediates)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:126,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:127,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
    - restrictions_to_test
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:138,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:139,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:140,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:142,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:146,1
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:151,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:155,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:158,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:158,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:159,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:162,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:162,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:163,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:163,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:164,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:164,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:165,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:166,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:172,1
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:177,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:177,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:178,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:179,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:183,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:189,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:192,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:192,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:193,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:197,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:197,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:198,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:198,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:201,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:201,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:202,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:202,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:204,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:205,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - ' restrictions'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 209
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::warnings_string
    - Botan::Path_Validation_Result
    - Botan::x509_path_validate
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Result::successful_validation
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::empty
    - Botan::Path_Validation_Result::no_warnings
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test_Error
    - Test::Result::test_is_true
    - load_cert_file
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan::Path_Validation_Result::trust_root
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_with_restrictions(const Botan::Path_Validation_Restrictions&
      restrictions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:225,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - restrictions_to_test
    - std::vector::insert
    - Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> NIST_Path_Validation_Tests::run()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:233,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:234,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:251,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:251,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:253,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:254,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:256,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:260,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:263,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:265,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:266,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:267,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:273,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:274,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:275,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:282,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:285,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:287,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:287,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:290,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:291,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ' restrictions'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 295
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - read_results
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::files_in_data_dir
    - std::vector::push_back
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: "std::vector<Test::Result> NIST_Path_Validation_Tests::run_with_restrictions(\n
      \  const Botan::Path_Validation_Restrictions& restrictions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:305,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:306,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:317,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:319,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:322,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:323,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:323,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:327,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:329,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:331,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 340
    functionName: Botan_Tests::Extended_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::files_in_data_dir
    - Test::Result::start_timer
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - ends_with
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Test::Result::end_timer
    - std::vector::push_back
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Extended_Path_Validation_Tests::run()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:352,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:353,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:358,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:358,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:360,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:366,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:371,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:376,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:379,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:380,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:381,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:382,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:383,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:384,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:385,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:386,1
    - Dst: Botan::PKCS10_Request::PKCS10_Request
      Src: /src/botan/src/tests/test_x509_path.cpp:387,1
    - Dst: Botan::PKIX::check_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:395,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:400,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/test_x509_path.cpp:401,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:401,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:409,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:411,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:411,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:414,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:416,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:416,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:419,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:421,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:421,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:424,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:425,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 429
    functionName: Botan_Tests::PSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::optional::subject_public_key
    - Botan::PKIX::overall_status
    - std::optional::check_signature
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::status_string
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::x509_path_validate
    - Botan::PKCS10_Request::PKCS10_Request
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - Botan::PKIX::check_crl
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::begin
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test::Result::test_bool_eq
    - Botan::to_u32bit
    - Botan_Tests::Test::files_in_data_dir
    - find
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan::X509_CRL
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> PSS_Path_Validation_Tests::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:441,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:442,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:447,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:448,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:449,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:451,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:457,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:458,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:462,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:464,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:467,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:467,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:469,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:474,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:476,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 479
    functionName: Botan_Tests::Validate_V1Cert_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_V1Cert_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:489,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:490,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:495,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:496,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:497,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:499,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:505,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:506,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:510,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:512,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:515,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:515,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:516,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 520
    functionName: Botan_Tests::Validate_V2Uid_in_V1_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_V2Uid_in_V1_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:530,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:531,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:536,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:537,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:538,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:540,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:546,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:547,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:551,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:553,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:556,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:556,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:557,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 561
    functionName: Botan_Tests::Validate_Name_Constraint_SAN_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_SAN_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:571,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:572,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:577,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:578,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:579,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:581,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:588,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:592,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:594,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:597,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 600
    functionName: Botan_Tests::Validate_Name_Constraint_CaseInsensitive::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_CaseInsensitive::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:610,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:611,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:616,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:617,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:618,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:620,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:626,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:627,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:631,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:633,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:636,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 639
    functionName: Botan_Tests::Validate_Name_Constraint_NoCheckSelf::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_NoCheckSelf::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:647,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:650,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:651,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:656,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:657,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:673,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:674,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:678,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:683,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:684,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:687,1
    - Dst: Botan::Path_Validation_Result::result
      Src: /src/botan/src/tests/test_x509_path.cpp:687,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:688,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:689,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:689,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:690,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:690,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:692,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:693,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:693,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:695,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:695,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:702,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:704,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:706,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:708,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:716,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:718,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:723,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:728,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 740
    functionName: Botan_Tests::Root_Cert_Time_Check_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_enum_eq
    - Botan::fmt
    - Test::Result::test_is_true
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::Result::Note
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::at
    - Botan::Sodium::sodium_memzero
    - assert_path_validation_result
    - Botan::Path_Validation_Result::warnings
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::result
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:752,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:752,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:753,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:754,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 757
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - load_cert_file
    - Botan::fmt
    - auto::size
    - Botan_Tests::Test::data_file
    - Test_Error
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> get_valid_cert_chain()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::calendar_point
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point get_validation_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate get_self_signed_ee_cert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:773,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:774,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:778,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:778,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:787,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:791,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:794,1
    - Dst: auto::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:794,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:795,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:798,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:799,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:799,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 804
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Path_Validation_Result
    - auto::at
    - auto::successful_validation
    - to_string
    - auto::trust_root
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - std::vector::push_back
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    - get_allow_non_self_signed_anchors_restrictions
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> path_validate_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:809,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:810,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:814,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:814,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:815,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:815,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:820,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:827,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:827,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:831,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:834,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:839,1
    - Dst: Botan::PKIX::build_all_certificate_paths
      Src: /src/botan/src/tests/test_x509_path.cpp:843,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:843,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:844,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:845,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:846,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:847,1
    - Dst: Botan::PKIX::build_certificate_path
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:852,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:853,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:854,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:857,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:857,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:859,1
    - Dst: at
      Src: /src/botan/src/tests/test_x509_path.cpp:860,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 866
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - at
    - auto::size
    - std::vector::end
    - Botan::PKIX::build_certificate_path
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - get_allow_non_self_signed_anchors_restrictions
    - auto::begin
    - Botan::Certificate_Store_In_Memory::add_certificate
    - store_of
    - test_arb_eq
    - Botan::PKIX::build_all_certificate_paths
    - auto::at
    - to_string
    - std::vector::push_back
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - path_to
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> build_path_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:869,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:870,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:871,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:877,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:881,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_x509_path.cpp:887,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:888,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 892
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result
    - Botan::PKIX::check_chain
    - auto::at
    - to_string
    - Test::Result::test_str_ne
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - get_default_restrictions
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> forbidden_self_signed_trust_anchors_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:900,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:903,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:906,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:907,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:909,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:910,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - test_name
    - ' restrictions'
    - ' standalone_cert'
    - expected_result
    argTypes:
    - std::string_view
    - Botan::Path_Validation_Restrictions
    - Botan::X509_Certificate
    - Botan::Certificate_Status_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 914
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_note
    - to_string
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result stand_alone_root_test(std::string_view test_name,\n                                         const
      Botan::Path_Validation_Restrictions& restrictions,\n                                         const
      Botan::X509_Certificate& standalone_cert,\n                                         Botan::Certificate_Status_Code
      expected_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:918,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:920,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:922,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:926,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:930,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:935,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:939,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:944,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 953
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::at
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
    - get_default_restrictions
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
    - get_allow_non_self_signed_anchors_restrictions
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> stand_alone_root_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
      Src: /src/botan/src/tests/test_x509_path.cpp:959,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
      Src: /src/botan/src/tests/test_x509_path.cpp:962,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
      Src: /src/botan/src/tests/test_x509_path.cpp:968,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 956
    functionDepth: 4
    functionLinenumber: 956
    functionLinenumberEnd: 972
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
    - std::vector::insert
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:989,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:990,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 994
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
    - std::vector::end
    - restrictions_to_test
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> BSI_Path_Validation_Tests::run()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:998,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:999,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:1004,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1004,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1019,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1024,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1031,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1035,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1039,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1041,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1042,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1042,1
    - Dst: minimum_key_strength
      Src: /src/botan/src/tests/test_x509_path.cpp:1048,1
    - Dst: max_ocsp_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:1051,1
    - Dst: ignore_trusted_root_time_range
      Src: /src/botan/src/tests/test_x509_path.cpp:1052,1
    - Dst: require_self_signed_trust_anchors
      Src: /src/botan/src/tests/test_x509_path.cpp:1053,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::rng
      Src: /src/botan/src/tests/test_x509_path.cpp:1081,1
    - Dst: std::shuffle
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1086,1
    - Dst: starts_with
      Src: /src/botan/src/tests/test_x509_path.cpp:1090,1
    - Dst: substr
      Src: /src/botan/src/tests/test_x509_path.cpp:1091,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1091,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:1093,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1097,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1108,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1111,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1112,1
    - Dst: error_type
      Src: /src/botan/src/tests/test_x509_path.cpp:1122,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1123,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:1123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:1125,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:1125,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:1129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:1130,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - ' restriction_template'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1134
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - std::string
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - max_ocsp_age
    - std::vector::begin
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - std::vector::end
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - minimum_key_strength
    - read_results
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - std::shuffle
    - Botan::Path_Validation_Result::warnings
    - ignore_trusted_root_time_range
    - randomize
    - what
    - Botan_Tests::BSI_Path_Validation_Tests::rng
    - substr
    - Botan_Tests::Test::files_in_data_dir
    - starts_with
    - reinterpret_cast<uint8_t*>
    - find
    - std::vector::push_back
    - error_type
    - Test::Result::test_str_eq
    - Botan::X509_CRL
    - require_self_signed_trust_anchors
    - std::vector::insert
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: "std::vector<Test::Result> BSI_Path_Validation_Tests::run_with_restrictions(\n
      \  const Botan::Path_Validation_Restrictions& restriction_template)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1067
    functionName: Botan_Tests::random_bit_generator::min
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_type
    signature: result_type min()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1069
    functionName: Botan_Tests::random_bit_generator::max
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: result_type
    signature: result_type max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1075
    functionName: operator()()
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t*>
    - randomize
    linkageType: ''
    returnType: result_type
    signature: result_type operator()()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1077
    functionName: Botan_Tests::random_bit_generator::random_bit_generator
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void random_bit_generator(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1141,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1142
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate load_test_X509_cert(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_x509_path.cpp:1145,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1146
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    linkageType: ''
    returnType: std::optional<Botan::OCSP::Response>
    signature: std::optional<Botan::OCSP::Response> load_test_OCSP_resp(const std::string&
      path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1150,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1152,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1156,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1157,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1161,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1165,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1171,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1175,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1175,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1176,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1179,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1179,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1185,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1189
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1193,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1197,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1198,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1199,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1200,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1204,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1208,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1218,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1218,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1219,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1222,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1222,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1224,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1224,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1226,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1226,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1228,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1232
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - Botan::minutes
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1236,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1238,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1240,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1241,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1242,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1244,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1248,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1252,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1262,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1262,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1263,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1266,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1266,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1268,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1268,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1270,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1234
    functionDepth: 2
    functionLinenumber: 1234
    functionLinenumberEnd: 1273
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_without_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1277,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1281,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1282,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1283,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1285,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1289,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1293,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1299,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1303,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1303,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1304,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1307,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1307,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1309,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1309,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1311,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1315
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - Botan::minutes
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_without_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1319,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1321,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1325,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1326,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1327,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1333,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1341,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1347,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1352,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1355,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1355,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1357,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1357,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1363
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_authorized_responder()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1370,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1375,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1376,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1377,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1379,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1381,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1383,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1390,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1396,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1399,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1400,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1400,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1401,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1403,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: value
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1408,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1408,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1411,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1411,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1415,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1421
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - flatten
    - Botan_CLI::Timer::milliseconds
    - value
    - auto::all_statuses
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_u32_eq
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_authorized_responder_without_keyusage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1425,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1427,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1431,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1432,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1433,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1434,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1441,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1443,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1448,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1449,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1452,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1453,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1454,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1455,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1455,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1462,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1423
    functionDepth: 2
    functionLinenumber: 1423
    functionLinenumberEnd: 1470
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_enum_eq
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - flatten
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_forged_ocsp_using_self_signed_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1475,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1477,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1482,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1483,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1484,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1487,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1490,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1492,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1496,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1501,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1502,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1504,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1505,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1472
    functionDepth: 2
    functionLinenumber: 1472
    functionLinenumberEnd: 1509
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_self_signed_by_intermediate_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1512,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1513,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1514,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1515,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
      Src: /src/botan/src/tests/test_x509_path.cpp:1516,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
      Src: /src/botan/src/tests/test_x509_path.cpp:1517,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1518,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1511
    functionDepth: 3
    functionLinenumber: 1511
    functionLinenumberEnd: 1520
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1534,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1535,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1539,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1540,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_x509_path.cpp:1544,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_x509_path.cpp:1548,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_x509_path.cpp:1549,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_x509_path.cpp:1550,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1551,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1553,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_x509_path.cpp:1555,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1557,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1557,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1558,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1558,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1559,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1559,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1561,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1562,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1564,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1566,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1568,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1574,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1577,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1577,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1579,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1580,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1582,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1588,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1591,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1591,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1593,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1594,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1597,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1598,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1600,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1606,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1609,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1612
    functionName: Botan_Tests::CVE_2020_0601_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Botan::EC_Group::supports_application_specific_group
    - Botan::x509_path_validate
    - get_a
    - Botan::X509_Certificate
    - Botan_CLI::Timer::milliseconds
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - get_b
    - Botan::Certificate_Store_In_Memory::add_certificate
    - BigInt
    - Botan_Tests::Test::data_file
    - Botan::calendar_point
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - get_order
    - Test::Result::test_note
    - auto::successful_validation
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:1625,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1626,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1630,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1631,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1632,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1635,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1635,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1636,1
    - Dst: auto::this_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1636,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1637,1
    - Dst: auto::next_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1637,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1638,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_x509_path.cpp:1638,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1641,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1642,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1646,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1647,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1648,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1652,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1657,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1659,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1659,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1660,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1660,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1664,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1666,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1666,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1667,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1667,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1669,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1673
    functionName: Botan_Tests::Path_Validation_With_Immortal_CRL::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - auto::get_revoked
    - Test::Result::test_enum_eq
    - Test::Result::test_note
    - auto::next_update
    - Botan::Certificate_Store_In_Memory::add_certificate
    - auto::successful_validation
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::EC_Group::supports_named_group
    - Botan::X509_CRL
    - auto::result_string
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::test_is_true
    - auto::this_update
    - auto::result
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1687,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1688,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1688,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1691,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:1693,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:1694,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1695,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1697
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::to_string
    - Botan::X509_Certificate
    - Botan::PKIX::overall_status
    - Botan::PKIX::check_chain
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_self_signed(const std::string& name, const std::string&
      file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:1700,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:1701,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1705,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1699
    functionDepth: 2
    functionLinenumber: 1699
    functionLinenumberEnd: 1708
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    - Botan::has_filesystem_impl
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1727,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1732,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1734,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1736,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1738,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1738,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1739,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1740,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1741,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1742,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1744,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1745,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1750,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1753,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1756
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_name_constraint_dn_prefix_accepted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1771,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1773,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1775,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1777,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1777,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1778,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1779,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1780,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1781,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1783,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1784,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1789,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:1792,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1795
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_name_constraint_dn_prefix_not_accepted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
      Src: /src/botan/src/tests/test_x509_path.cpp:1798,1
    - Dst: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
      Src: /src/botan/src/tests/test_x509_path.cpp:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1797
    functionDepth: 2
    functionLinenumber: 1797
    functionLinenumberEnd: 1799
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
    - Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:48,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:49,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:54,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_x509_path.cpp:55,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:56,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_x509_path.cpp:63,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_path.cpp:65,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:66,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' results_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: Botan_Tests::read_results
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::good
    - Botan::split_on
    - std::string::empty
    - Test_Error
    - std::getline
    - std::vector::size
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> read_results(const std::string&
      results_file, const char delim = ':')
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/tests/test_x509_path.cpp:79,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: Botan_Tests::load_cert_file
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::DataSource_Stream::end_of_data
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> load_cert_file(const std::string&
      filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: begin
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: end
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' codes'
    argTypes:
    - Botan::CertificatePathStatusCodes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan_Tests::flatten
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - end
    - begin
    linkageType: ''
    returnType: std::set<Botan::Certificate_Status_Code>
    signature: std::set<Botan::Certificate_Status_Code> flatten(const Botan::CertificatePathStatusCodes&
      codes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan_Tests::get_default_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan::Path_Validation_Restrictions
    linkageType: ''
    returnType: Botan::Path_Validation_Restrictions
    signature: Botan::Path_Validation_Restrictions get_default_restrictions(bool req_revocation_info,
      bool ocsp_all_intermediates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:104,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:107,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: Botan_Tests::get_allow_non_self_signed_anchors_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan::Path_Validation_Restrictions
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - Botan::Sodium::sodium_memzero
    linkageType: ''
    returnType: Botan::Path_Validation_Restrictions
    signature: "Botan::Path_Validation_Restrictions get_allow_non_self_signed_anchors_restrictions(bool
      req_revocation_info,\n                                                                                   bool
      ocsp_all_intermediates)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Botan_Tests::get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:117,1
    - Dst: Botan_Tests::get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: Botan_Tests::restrictions_to_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - Botan_Tests::get_allow_non_self_signed_anchors_restrictions
    - Botan_Tests::get_default_restrictions
    linkageType: ''
    returnType: std::vector<Botan::Path_Validation_Restrictions>
    signature: "std::vector<Botan::Path_Validation_Restrictions> restrictions_to_test(bool
      req_revocation_info,\n                                                                      bool
      ocsp_all_intermediates)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:126,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:127,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
    - restrictions_to_test
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:138,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:139,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:140,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:142,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:146,1
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:151,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:155,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:158,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:158,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:159,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:162,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:162,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:163,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:163,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:164,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:164,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:165,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:166,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:172,1
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:177,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:177,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:178,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:179,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:183,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:189,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:192,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:192,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:193,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:197,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:197,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:198,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:198,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:201,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:201,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:202,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:202,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:204,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:205,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - ' restrictions'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 209
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::warnings_string
    - Botan::Path_Validation_Result
    - Botan::x509_path_validate
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Result::successful_validation
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::empty
    - Botan::Path_Validation_Result::no_warnings
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test_Error
    - Test::Result::test_is_true
    - load_cert_file
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan::Path_Validation_Result::trust_root
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_with_restrictions(const Botan::Path_Validation_Restrictions&
      restrictions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:225,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - restrictions_to_test
    - std::vector::insert
    - Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> NIST_Path_Validation_Tests::run()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:233,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:234,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:251,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:251,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:253,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:254,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:256,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:260,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:263,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:265,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:266,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:267,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:273,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:274,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:275,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:282,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:285,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:287,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:287,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:290,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:291,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ' restrictions'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 295
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - read_results
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::files_in_data_dir
    - std::vector::push_back
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: "std::vector<Test::Result> NIST_Path_Validation_Tests::run_with_restrictions(\n
      \  const Botan::Path_Validation_Restrictions& restrictions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:305,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:306,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:317,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:319,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:322,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:323,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:323,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:327,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:329,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:331,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 340
    functionName: Botan_Tests::Extended_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::files_in_data_dir
    - Test::Result::start_timer
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - ends_with
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Test::Result::end_timer
    - std::vector::push_back
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Extended_Path_Validation_Tests::run()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:352,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:353,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:358,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:358,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:360,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:366,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:371,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:376,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:379,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:380,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:381,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:382,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:383,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:384,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:385,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:386,1
    - Dst: Botan::PKCS10_Request::PKCS10_Request
      Src: /src/botan/src/tests/test_x509_path.cpp:387,1
    - Dst: Botan::PKIX::check_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:395,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:400,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/test_x509_path.cpp:401,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:401,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:409,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:411,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:411,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:414,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:416,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:416,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:419,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:421,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:421,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:424,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:425,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 429
    functionName: Botan_Tests::PSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::optional::subject_public_key
    - Botan::PKIX::overall_status
    - std::optional::check_signature
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::status_string
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::x509_path_validate
    - Botan::PKCS10_Request::PKCS10_Request
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - Botan::PKIX::check_crl
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::begin
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test::Result::test_bool_eq
    - Botan::to_u32bit
    - Botan_Tests::Test::files_in_data_dir
    - find
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan::X509_CRL
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> PSS_Path_Validation_Tests::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:441,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:442,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:447,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:448,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:449,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:451,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:457,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:458,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:462,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:464,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:467,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:467,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:469,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:474,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:476,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 479
    functionName: Botan_Tests::Validate_V1Cert_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_V1Cert_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:489,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:490,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:495,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:496,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:497,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:499,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:505,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:506,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:510,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:512,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:515,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:515,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:516,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 520
    functionName: Botan_Tests::Validate_V2Uid_in_V1_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_V2Uid_in_V1_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:530,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:531,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:536,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:537,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:538,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:540,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:546,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:547,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:551,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:553,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:556,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:556,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:557,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 561
    functionName: Botan_Tests::Validate_Name_Constraint_SAN_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_SAN_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:571,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:572,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:577,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:578,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:579,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:581,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:588,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:592,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:594,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:597,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 600
    functionName: Botan_Tests::Validate_Name_Constraint_CaseInsensitive::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_CaseInsensitive::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:610,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:611,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:616,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:617,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:618,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:620,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:626,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:627,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:631,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:633,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:636,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 639
    functionName: Botan_Tests::Validate_Name_Constraint_NoCheckSelf::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_NoCheckSelf::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:647,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:650,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:651,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:656,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:657,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:673,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:674,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:678,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:683,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:684,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:687,1
    - Dst: Botan::Path_Validation_Result::result
      Src: /src/botan/src/tests/test_x509_path.cpp:687,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:688,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:689,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:689,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:690,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:690,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:692,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:693,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:693,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:695,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:695,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:702,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:704,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:706,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:708,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:716,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:718,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:723,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:728,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 740
    functionName: Botan_Tests::Root_Cert_Time_Check_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_enum_eq
    - Botan::fmt
    - Test::Result::test_is_true
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::Result::Note
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::at
    - Botan::Sodium::sodium_memzero
    - assert_path_validation_result
    - Botan::Path_Validation_Result::warnings
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::result
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:752,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:752,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:753,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:754,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 757
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 4
    functionsReached:
    - load_cert_file
    - Botan::fmt
    - auto::size
    - Botan_Tests::Test::data_file
    - Test_Error
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> get_valid_cert_chain()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::calendar_point
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point get_validation_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate get_self_signed_ee_cert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:773,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:774,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:778,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:778,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:787,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:791,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:794,1
    - Dst: auto::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:794,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:795,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:798,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:799,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:799,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 804
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmt
    - Botan::Path_Validation_Result
    - auto::at
    - auto::successful_validation
    - to_string
    - auto::trust_root
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - std::vector::push_back
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    - get_allow_non_self_signed_anchors_restrictions
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> path_validate_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:809,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:810,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:814,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:814,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:815,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:815,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:820,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:827,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:827,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:831,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:834,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:839,1
    - Dst: Botan::PKIX::build_all_certificate_paths
      Src: /src/botan/src/tests/test_x509_path.cpp:843,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:843,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:844,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:845,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:846,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:847,1
    - Dst: Botan::PKIX::build_certificate_path
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:852,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:853,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:854,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:857,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:857,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:859,1
    - Dst: at
      Src: /src/botan/src/tests/test_x509_path.cpp:860,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 866
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmt
    - at
    - auto::size
    - std::vector::end
    - Botan::PKIX::build_certificate_path
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - get_allow_non_self_signed_anchors_restrictions
    - auto::begin
    - Botan::Certificate_Store_In_Memory::add_certificate
    - store_of
    - test_arb_eq
    - Botan::PKIX::build_all_certificate_paths
    - auto::at
    - to_string
    - std::vector::push_back
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - path_to
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> build_path_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:869,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:870,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:871,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:877,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:881,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_x509_path.cpp:887,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:888,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 892
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan::Path_Validation_Result
    - Botan::PKIX::check_chain
    - auto::at
    - to_string
    - Test::Result::test_str_ne
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - get_default_restrictions
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> forbidden_self_signed_trust_anchors_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:900,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:903,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:906,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:907,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:909,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:910,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - test_name
    - ' restrictions'
    - ' standalone_cert'
    - expected_result
    argTypes:
    - std::string_view
    - Botan::Path_Validation_Restrictions
    - Botan::X509_Certificate
    - Botan::Certificate_Status_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 914
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_note
    - to_string
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result stand_alone_root_test(std::string_view test_name,\n                                         const
      Botan::Path_Validation_Restrictions& restrictions,\n                                         const
      Botan::X509_Certificate& standalone_cert,\n                                         Botan::Certificate_Status_Code
      expected_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:918,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:920,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:922,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:926,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:930,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:935,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:939,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:944,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 953
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - auto::at
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
    - get_default_restrictions
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
    - get_allow_non_self_signed_anchors_restrictions
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> stand_alone_root_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
      Src: /src/botan/src/tests/test_x509_path.cpp:959,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
      Src: /src/botan/src/tests/test_x509_path.cpp:962,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
      Src: /src/botan/src/tests/test_x509_path.cpp:968,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 956
    functionDepth: 4
    functionLinenumber: 956
    functionLinenumberEnd: 972
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
    - std::vector::insert
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:989,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:990,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 994
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
    - std::vector::end
    - restrictions_to_test
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> BSI_Path_Validation_Tests::run()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:998,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:999,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:1004,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1004,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1019,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1024,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1031,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1035,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1039,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1041,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1042,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1042,1
    - Dst: minimum_key_strength
      Src: /src/botan/src/tests/test_x509_path.cpp:1048,1
    - Dst: max_ocsp_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:1051,1
    - Dst: ignore_trusted_root_time_range
      Src: /src/botan/src/tests/test_x509_path.cpp:1052,1
    - Dst: require_self_signed_trust_anchors
      Src: /src/botan/src/tests/test_x509_path.cpp:1053,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::rng
      Src: /src/botan/src/tests/test_x509_path.cpp:1081,1
    - Dst: std::shuffle
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1086,1
    - Dst: starts_with
      Src: /src/botan/src/tests/test_x509_path.cpp:1090,1
    - Dst: substr
      Src: /src/botan/src/tests/test_x509_path.cpp:1091,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1091,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:1093,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1097,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1108,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1111,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1112,1
    - Dst: error_type
      Src: /src/botan/src/tests/test_x509_path.cpp:1122,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1123,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:1123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:1125,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:1125,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:1129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:1130,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - ' restriction_template'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1134
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - std::string
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - max_ocsp_age
    - std::vector::begin
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - std::vector::end
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - minimum_key_strength
    - read_results
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - std::shuffle
    - Botan::Path_Validation_Result::warnings
    - ignore_trusted_root_time_range
    - randomize
    - what
    - Botan_Tests::BSI_Path_Validation_Tests::rng
    - substr
    - Botan_Tests::Test::files_in_data_dir
    - starts_with
    - reinterpret_cast<uint8_t*>
    - find
    - std::vector::push_back
    - error_type
    - Test::Result::test_str_eq
    - Botan::X509_CRL
    - require_self_signed_trust_anchors
    - std::vector::insert
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: "std::vector<Test::Result> BSI_Path_Validation_Tests::run_with_restrictions(\n
      \  const Botan::Path_Validation_Restrictions& restriction_template)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1067
    functionName: Botan_Tests::random_bit_generator::min
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_type
    signature: result_type min()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1069
    functionName: Botan_Tests::random_bit_generator::max
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: result_type
    signature: result_type max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1075
    functionName: operator()()
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t*>
    - randomize
    linkageType: ''
    returnType: result_type
    signature: result_type operator()()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1077
    functionName: Botan_Tests::random_bit_generator::random_bit_generator
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void random_bit_generator(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1141,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1142
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 8
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate load_test_X509_cert(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_x509_path.cpp:1145,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1146
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 8
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    linkageType: ''
    returnType: std::optional<Botan::OCSP::Response>
    signature: std::optional<Botan::OCSP::Response> load_test_OCSP_resp(const std::string&
      path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1150,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1152,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1156,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1157,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1161,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1165,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1171,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1175,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1175,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1176,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1179,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1179,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1185,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1189
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1193,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1197,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1198,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1199,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1200,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1204,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1208,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1218,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1218,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1219,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1222,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1222,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1224,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1224,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1226,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1226,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1228,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1232
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_is_true
    - Botan::minutes
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1236,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1238,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1240,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1241,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1242,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1244,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1248,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1252,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1262,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1262,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1263,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1266,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1266,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1268,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1268,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1270,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1234
    functionDepth: 2
    functionLinenumber: 1234
    functionLinenumberEnd: 1273
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_without_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1277,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1281,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1282,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1283,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1285,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1289,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1293,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1299,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1303,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1303,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1304,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1307,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1307,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1309,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1309,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1311,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1315
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_is_true
    - Botan::minutes
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_without_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1319,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1321,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1325,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1326,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1327,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1333,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1341,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1347,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1352,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1355,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1355,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1357,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1357,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1363
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_authorized_responder()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1370,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1375,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1376,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1377,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1379,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1381,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1383,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1390,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1396,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1399,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1400,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1400,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1401,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1403,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: value
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1408,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1408,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1411,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1411,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1415,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1421
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - flatten
    - Botan_CLI::Timer::milliseconds
    - value
    - auto::all_statuses
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_u32_eq
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_authorized_responder_without_keyusage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1425,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1427,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1431,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1432,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1433,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1434,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1441,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1443,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1448,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1449,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1452,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1453,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1454,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1455,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1455,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1462,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1423
    functionDepth: 2
    functionLinenumber: 1423
    functionLinenumberEnd: 1470
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_enum_eq
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - flatten
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_forged_ocsp_using_self_signed_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1475,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1477,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1482,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1483,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1484,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1487,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1490,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1492,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1496,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1501,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1502,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1504,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1505,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1472
    functionDepth: 2
    functionLinenumber: 1472
    functionLinenumberEnd: 1509
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_self_signed_by_intermediate_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1512,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1513,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1514,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1515,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
      Src: /src/botan/src/tests/test_x509_path.cpp:1516,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
      Src: /src/botan/src/tests/test_x509_path.cpp:1517,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1518,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1511
    functionDepth: 3
    functionLinenumber: 1511
    functionLinenumberEnd: 1520
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1534,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1535,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1539,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1540,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_x509_path.cpp:1544,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_x509_path.cpp:1548,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_x509_path.cpp:1549,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_x509_path.cpp:1550,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1551,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1553,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_x509_path.cpp:1555,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1557,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1557,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1558,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1558,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1559,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1559,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1561,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1562,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1564,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1566,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1568,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1574,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1577,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1577,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1579,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1580,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1582,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1588,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1591,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1591,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1593,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1594,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1597,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1598,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1600,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1606,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1609,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1612
    functionName: Botan_Tests::CVE_2020_0601_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Botan::EC_Group::supports_application_specific_group
    - Botan::x509_path_validate
    - get_a
    - Botan::X509_Certificate
    - Botan_CLI::Timer::milliseconds
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - get_b
    - Botan::Certificate_Store_In_Memory::add_certificate
    - BigInt
    - Botan_Tests::Test::data_file
    - Botan::calendar_point
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - get_order
    - Test::Result::test_note
    - auto::successful_validation
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:1625,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1626,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1630,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1631,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1632,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1635,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1635,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1636,1
    - Dst: auto::this_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1636,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1637,1
    - Dst: auto::next_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1637,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1638,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_x509_path.cpp:1638,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1641,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1642,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1646,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1647,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1648,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1652,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1657,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1659,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1659,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1660,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1660,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1664,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1666,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1666,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1667,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1667,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1669,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1673
    functionName: Botan_Tests::Path_Validation_With_Immortal_CRL::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - auto::get_revoked
    - Test::Result::test_enum_eq
    - Test::Result::test_note
    - auto::next_update
    - Botan::Certificate_Store_In_Memory::add_certificate
    - auto::successful_validation
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::EC_Group::supports_named_group
    - Botan::X509_CRL
    - auto::result_string
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::test_is_true
    - auto::this_update
    - auto::result
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1687,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1688,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1688,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1691,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:1693,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:1694,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1695,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1697
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::to_string
    - Botan::X509_Certificate
    - Botan::PKIX::overall_status
    - Botan::PKIX::check_chain
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_self_signed(const std::string& name, const std::string&
      file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:1700,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:1701,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1705,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1699
    functionDepth: 2
    functionLinenumber: 1699
    functionLinenumberEnd: 1708
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    - Botan::has_filesystem_impl
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1727,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1732,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1734,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1736,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1738,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1738,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1739,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1740,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1741,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1742,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1744,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1745,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1750,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1753,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1756
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_name_constraint_dn_prefix_accepted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1771,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1773,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1775,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1777,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1777,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1778,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1779,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1780,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1781,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1783,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1784,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1789,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:1792,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1795
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_name_constraint_dn_prefix_not_accepted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
      Src: /src/botan/src/tests/test_x509_path.cpp:1798,1
    - Dst: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
      Src: /src/botan/src/tests/test_x509_path.cpp:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1797
    functionDepth: 2
    functionLinenumber: 1797
    functionLinenumberEnd: 1799
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
    - Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:48,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:49,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:54,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_x509_path.cpp:55,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:56,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_x509_path.cpp:63,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_path.cpp:65,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:66,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' results_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: Botan_Tests::read_results
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::good
    - Botan::split_on
    - std::string::empty
    - Test_Error
    - std::getline
    - std::vector::size
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> read_results(const std::string&
      results_file, const char delim = ':')
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/tests/test_x509_path.cpp:79,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: Botan_Tests::load_cert_file
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::DataSource_Stream::end_of_data
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> load_cert_file(const std::string&
      filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: begin
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: end
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' codes'
    argTypes:
    - Botan::CertificatePathStatusCodes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan_Tests::flatten
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - end
    - begin
    linkageType: ''
    returnType: std::set<Botan::Certificate_Status_Code>
    signature: std::set<Botan::Certificate_Status_Code> flatten(const Botan::CertificatePathStatusCodes&
      codes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan_Tests::get_default_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan::Path_Validation_Restrictions
    linkageType: ''
    returnType: Botan::Path_Validation_Restrictions
    signature: Botan::Path_Validation_Restrictions get_default_restrictions(bool req_revocation_info,
      bool ocsp_all_intermediates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:104,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:107,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: Botan_Tests::get_allow_non_self_signed_anchors_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan::Path_Validation_Restrictions
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - Botan::Sodium::sodium_memzero
    linkageType: ''
    returnType: Botan::Path_Validation_Restrictions
    signature: "Botan::Path_Validation_Restrictions get_allow_non_self_signed_anchors_restrictions(bool
      req_revocation_info,\n                                                                                   bool
      ocsp_all_intermediates)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Botan_Tests::get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:117,1
    - Dst: Botan_Tests::get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: Botan_Tests::restrictions_to_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - Botan_Tests::get_allow_non_self_signed_anchors_restrictions
    - Botan_Tests::get_default_restrictions
    linkageType: ''
    returnType: std::vector<Botan::Path_Validation_Restrictions>
    signature: "std::vector<Botan::Path_Validation_Restrictions> restrictions_to_test(bool
      req_revocation_info,\n                                                                      bool
      ocsp_all_intermediates)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:126,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:127,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
    - restrictions_to_test
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:138,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:139,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:140,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:142,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:146,1
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:151,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:155,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:158,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:158,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:159,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:162,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:162,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:163,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:163,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:164,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:164,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:165,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:166,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:172,1
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:177,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:177,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:178,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:179,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:183,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:189,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:192,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:192,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:193,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:197,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:197,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:198,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:198,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:201,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:201,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:202,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:202,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:204,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:205,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - ' restrictions'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 209
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::warnings_string
    - Botan::Path_Validation_Result
    - Botan::x509_path_validate
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Result::successful_validation
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::empty
    - Botan::Path_Validation_Result::no_warnings
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test_Error
    - Test::Result::test_is_true
    - load_cert_file
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan::Path_Validation_Result::trust_root
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_with_restrictions(const Botan::Path_Validation_Restrictions&
      restrictions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:225,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - restrictions_to_test
    - std::vector::insert
    - Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> NIST_Path_Validation_Tests::run()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:233,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:234,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:251,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:251,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:253,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:254,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:256,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:260,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:263,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:265,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:266,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:267,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:273,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:274,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:275,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:282,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:285,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:287,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:287,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:290,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:291,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ' restrictions'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 295
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - read_results
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::files_in_data_dir
    - std::vector::push_back
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: "std::vector<Test::Result> NIST_Path_Validation_Tests::run_with_restrictions(\n
      \  const Botan::Path_Validation_Restrictions& restrictions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:305,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:306,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:317,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:319,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:322,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:323,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:323,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:327,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:329,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:331,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 340
    functionName: Botan_Tests::Extended_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::files_in_data_dir
    - Test::Result::start_timer
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - ends_with
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Test::Result::end_timer
    - std::vector::push_back
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Extended_Path_Validation_Tests::run()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:352,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:353,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:358,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:358,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:360,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:366,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:371,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:376,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:379,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:380,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:381,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:382,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:383,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:384,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:385,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:386,1
    - Dst: Botan::PKCS10_Request::PKCS10_Request
      Src: /src/botan/src/tests/test_x509_path.cpp:387,1
    - Dst: Botan::PKIX::check_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:395,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:400,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/test_x509_path.cpp:401,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:401,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:409,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:411,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:411,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:414,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:416,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:416,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:419,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:421,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:421,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:424,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:425,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 429
    functionName: Botan_Tests::PSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::optional::subject_public_key
    - Botan::PKIX::overall_status
    - std::optional::check_signature
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::status_string
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::x509_path_validate
    - Botan::PKCS10_Request::PKCS10_Request
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - Botan::PKIX::check_crl
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::begin
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test::Result::test_bool_eq
    - Botan::to_u32bit
    - Botan_Tests::Test::files_in_data_dir
    - find
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan::X509_CRL
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> PSS_Path_Validation_Tests::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:441,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:442,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:447,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:448,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:449,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:451,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:457,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:458,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:462,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:464,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:467,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:467,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:469,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:474,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:476,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 479
    functionName: Botan_Tests::Validate_V1Cert_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_V1Cert_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:489,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:490,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:495,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:496,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:497,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:499,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:505,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:506,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:510,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:512,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:515,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:515,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:516,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 520
    functionName: Botan_Tests::Validate_V2Uid_in_V1_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_V2Uid_in_V1_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:530,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:531,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:536,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:537,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:538,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:540,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:546,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:547,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:551,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:553,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:556,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:556,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:557,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 561
    functionName: Botan_Tests::Validate_Name_Constraint_SAN_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_SAN_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:571,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:572,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:577,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:578,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:579,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:581,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:588,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:592,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:594,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:597,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 600
    functionName: Botan_Tests::Validate_Name_Constraint_CaseInsensitive::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_CaseInsensitive::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:610,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:611,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:616,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:617,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:618,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:620,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:626,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:627,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:631,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:633,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:636,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 639
    functionName: Botan_Tests::Validate_Name_Constraint_NoCheckSelf::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_NoCheckSelf::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:647,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:650,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:651,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:656,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:657,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:673,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:674,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:678,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:683,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:684,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:687,1
    - Dst: Botan::Path_Validation_Result::result
      Src: /src/botan/src/tests/test_x509_path.cpp:687,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:688,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:689,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:689,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:690,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:690,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:692,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:693,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:693,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:695,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:695,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:702,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:704,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:706,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:708,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:716,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:718,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:723,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:728,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 740
    functionName: Botan_Tests::Root_Cert_Time_Check_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_enum_eq
    - Botan::fmt
    - Test::Result::test_is_true
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::Result::Note
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::at
    - Botan::Sodium::sodium_memzero
    - assert_path_validation_result
    - Botan::Path_Validation_Result::warnings
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::result
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:752,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:752,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:753,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:754,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 757
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 8
    functionsReached:
    - load_cert_file
    - Botan::fmt
    - auto::size
    - Botan_Tests::Test::data_file
    - Test_Error
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> get_valid_cert_chain()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 6
    functionsReached:
    - Botan::calendar_point
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point get_validation_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate get_self_signed_ee_cert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:773,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:774,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:778,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:778,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:787,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:791,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:794,1
    - Dst: auto::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:794,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:795,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:798,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:799,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:799,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 804
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan::fmt
    - Botan::Path_Validation_Result
    - auto::at
    - auto::successful_validation
    - to_string
    - auto::trust_root
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - std::vector::push_back
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    - get_allow_non_self_signed_anchors_restrictions
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> path_validate_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:809,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:810,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:814,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:814,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:815,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:815,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:820,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:827,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:827,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:831,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:834,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:839,1
    - Dst: Botan::PKIX::build_all_certificate_paths
      Src: /src/botan/src/tests/test_x509_path.cpp:843,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:843,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:844,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:845,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:846,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:847,1
    - Dst: Botan::PKIX::build_certificate_path
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:852,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:853,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:854,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:857,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:857,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:859,1
    - Dst: at
      Src: /src/botan/src/tests/test_x509_path.cpp:860,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 866
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan::fmt
    - at
    - auto::size
    - std::vector::end
    - Botan::PKIX::build_certificate_path
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - get_allow_non_self_signed_anchors_restrictions
    - auto::begin
    - Botan::Certificate_Store_In_Memory::add_certificate
    - store_of
    - test_arb_eq
    - Botan::PKIX::build_all_certificate_paths
    - auto::at
    - to_string
    - std::vector::push_back
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - path_to
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> build_path_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:869,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:870,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:871,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:877,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:881,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_x509_path.cpp:887,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:888,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 892
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan::Path_Validation_Result
    - Botan::PKIX::check_chain
    - auto::at
    - to_string
    - Test::Result::test_str_ne
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - get_default_restrictions
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> forbidden_self_signed_trust_anchors_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:900,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:903,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:906,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:907,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:909,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:910,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - test_name
    - ' restrictions'
    - ' standalone_cert'
    - expected_result
    argTypes:
    - std::string_view
    - Botan::Path_Validation_Restrictions
    - Botan::X509_Certificate
    - Botan::Certificate_Status_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 914
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_note
    - to_string
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result stand_alone_root_test(std::string_view test_name,\n                                         const
      Botan::Path_Validation_Restrictions& restrictions,\n                                         const
      Botan::X509_Certificate& standalone_cert,\n                                         Botan::Certificate_Status_Code
      expected_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:918,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:920,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:922,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:926,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:930,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:935,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:939,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:944,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 953
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - auto::at
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
    - get_default_restrictions
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
    - get_allow_non_self_signed_anchors_restrictions
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> stand_alone_root_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
      Src: /src/botan/src/tests/test_x509_path.cpp:959,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
      Src: /src/botan/src/tests/test_x509_path.cpp:962,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
      Src: /src/botan/src/tests/test_x509_path.cpp:968,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 956
    functionDepth: 4
    functionLinenumber: 956
    functionLinenumberEnd: 972
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
    - std::vector::insert
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:989,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:990,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 994
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
    - std::vector::end
    - restrictions_to_test
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> BSI_Path_Validation_Tests::run()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:998,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:999,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:1004,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1004,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1019,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1024,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1031,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1035,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1039,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1041,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1042,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1042,1
    - Dst: minimum_key_strength
      Src: /src/botan/src/tests/test_x509_path.cpp:1048,1
    - Dst: max_ocsp_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:1051,1
    - Dst: ignore_trusted_root_time_range
      Src: /src/botan/src/tests/test_x509_path.cpp:1052,1
    - Dst: require_self_signed_trust_anchors
      Src: /src/botan/src/tests/test_x509_path.cpp:1053,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::rng
      Src: /src/botan/src/tests/test_x509_path.cpp:1081,1
    - Dst: std::shuffle
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1086,1
    - Dst: starts_with
      Src: /src/botan/src/tests/test_x509_path.cpp:1090,1
    - Dst: substr
      Src: /src/botan/src/tests/test_x509_path.cpp:1091,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1091,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:1093,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1097,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1108,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1111,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1112,1
    - Dst: error_type
      Src: /src/botan/src/tests/test_x509_path.cpp:1122,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1123,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:1123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:1125,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:1125,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:1129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:1130,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - ' restriction_template'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1134
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - std::string
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - max_ocsp_age
    - std::vector::begin
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - std::vector::end
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - minimum_key_strength
    - read_results
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - std::shuffle
    - Botan::Path_Validation_Result::warnings
    - ignore_trusted_root_time_range
    - randomize
    - what
    - Botan_Tests::BSI_Path_Validation_Tests::rng
    - substr
    - Botan_Tests::Test::files_in_data_dir
    - starts_with
    - reinterpret_cast<uint8_t*>
    - find
    - std::vector::push_back
    - error_type
    - Test::Result::test_str_eq
    - Botan::X509_CRL
    - require_self_signed_trust_anchors
    - std::vector::insert
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: "std::vector<Test::Result> BSI_Path_Validation_Tests::run_with_restrictions(\n
      \  const Botan::Path_Validation_Restrictions& restriction_template)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1067
    functionName: Botan_Tests::random_bit_generator::min
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_type
    signature: result_type min()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1069
    functionName: Botan_Tests::random_bit_generator::max
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 6
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: result_type
    signature: result_type max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1075
    functionName: operator()()
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t*>
    - randomize
    linkageType: ''
    returnType: result_type
    signature: result_type operator()()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1077
    functionName: Botan_Tests::random_bit_generator::random_bit_generator
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void random_bit_generator(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1141,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1142
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 16
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate load_test_X509_cert(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_x509_path.cpp:1145,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1146
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 16
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    linkageType: ''
    returnType: std::optional<Botan::OCSP::Response>
    signature: std::optional<Botan::OCSP::Response> load_test_OCSP_resp(const std::string&
      path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1150,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1152,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1156,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1157,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1161,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1165,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1171,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1175,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1175,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1176,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1179,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1179,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1185,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1189
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1193,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1197,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1198,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1199,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1200,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1204,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1208,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1218,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1218,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1219,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1222,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1222,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1224,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1224,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1226,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1226,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1228,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1232
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_is_true
    - Botan::minutes
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1236,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1238,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1240,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1241,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1242,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1244,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1248,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1252,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1262,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1262,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1263,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1266,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1266,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1268,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1268,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1270,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1234
    functionDepth: 2
    functionLinenumber: 1234
    functionLinenumberEnd: 1273
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_without_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1277,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1281,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1282,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1283,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1285,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1289,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1293,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1299,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1303,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1303,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1304,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1307,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1307,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1309,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1309,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1311,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1315
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_is_true
    - Botan::minutes
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_without_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1319,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1321,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1325,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1326,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1327,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1333,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1341,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1347,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1352,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1355,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1355,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1357,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1357,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1363
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_authorized_responder()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1370,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1375,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1376,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1377,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1379,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1381,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1383,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1390,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1396,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1399,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1400,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1400,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1401,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1403,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: value
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1408,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1408,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1411,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1411,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1415,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1421
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - flatten
    - Botan_CLI::Timer::milliseconds
    - value
    - auto::all_statuses
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_u32_eq
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_authorized_responder_without_keyusage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1425,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1427,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1431,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1432,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1433,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1434,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1441,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1443,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1448,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1449,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1452,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1453,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1454,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1455,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1455,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1462,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1423
    functionDepth: 2
    functionLinenumber: 1423
    functionLinenumberEnd: 1470
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_enum_eq
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - flatten
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_forged_ocsp_using_self_signed_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1475,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1477,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1482,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1483,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1484,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1487,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1490,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1492,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1496,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1501,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1502,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1504,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1505,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1472
    functionDepth: 2
    functionLinenumber: 1472
    functionLinenumberEnd: 1509
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_self_signed_by_intermediate_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1512,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1513,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1514,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1515,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
      Src: /src/botan/src/tests/test_x509_path.cpp:1516,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
      Src: /src/botan/src/tests/test_x509_path.cpp:1517,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1518,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1511
    functionDepth: 3
    functionLinenumber: 1511
    functionLinenumberEnd: 1520
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1534,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1535,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1539,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1540,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_x509_path.cpp:1544,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_x509_path.cpp:1548,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_x509_path.cpp:1549,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_x509_path.cpp:1550,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1551,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1553,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_x509_path.cpp:1555,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1557,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1557,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1558,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1558,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1559,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1559,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1561,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1562,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1564,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1566,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1568,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1574,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1577,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1577,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1579,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1580,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1582,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1588,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1591,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1591,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1593,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1594,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1597,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1598,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1600,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1606,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1609,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1612
    functionName: Botan_Tests::CVE_2020_0601_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Botan::EC_Group::supports_application_specific_group
    - Botan::x509_path_validate
    - get_a
    - Botan::X509_Certificate
    - Botan_CLI::Timer::milliseconds
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - get_b
    - Botan::Certificate_Store_In_Memory::add_certificate
    - BigInt
    - Botan_Tests::Test::data_file
    - Botan::calendar_point
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - get_order
    - Test::Result::test_note
    - auto::successful_validation
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:1625,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1626,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1630,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1631,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1632,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1635,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1635,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1636,1
    - Dst: auto::this_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1636,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1637,1
    - Dst: auto::next_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1637,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1638,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_x509_path.cpp:1638,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1641,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1642,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1646,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1647,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1648,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1652,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1657,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1659,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1659,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1660,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1660,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1664,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1666,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1666,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1667,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1667,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1669,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1673
    functionName: Botan_Tests::Path_Validation_With_Immortal_CRL::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - auto::get_revoked
    - Test::Result::test_enum_eq
    - Test::Result::test_note
    - auto::next_update
    - Botan::Certificate_Store_In_Memory::add_certificate
    - auto::successful_validation
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::EC_Group::supports_named_group
    - Botan::X509_CRL
    - auto::result_string
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::test_is_true
    - auto::this_update
    - auto::result
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1687,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1688,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1688,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1691,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:1693,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:1694,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1695,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1697
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::to_string
    - Botan::X509_Certificate
    - Botan::PKIX::overall_status
    - Botan::PKIX::check_chain
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_self_signed(const std::string& name, const std::string&
      file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:1700,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:1701,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1705,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1699
    functionDepth: 2
    functionLinenumber: 1699
    functionLinenumberEnd: 1708
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    - Botan::has_filesystem_impl
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1727,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1732,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1734,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1736,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1738,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1738,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1739,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1740,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1741,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1742,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1744,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1745,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1750,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1753,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1756
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_name_constraint_dn_prefix_accepted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1771,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1773,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1775,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1777,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1777,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1778,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1779,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1780,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1781,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1783,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1784,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1789,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:1792,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1795
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_name_constraint_dn_prefix_not_accepted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
      Src: /src/botan/src/tests/test_x509_path.cpp:1798,1
    - Dst: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
      Src: /src/botan/src/tests/test_x509_path.cpp:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1797
    functionDepth: 2
    functionLinenumber: 1797
    functionLinenumberEnd: 1799
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
    - Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:48,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:49,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:54,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_x509_path.cpp:55,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:56,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_x509_path.cpp:63,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_path.cpp:65,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:66,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' results_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: Botan_Tests::read_results
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::good
    - Botan::split_on
    - std::string::empty
    - Test_Error
    - std::getline
    - std::vector::size
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> read_results(const std::string&
      results_file, const char delim = ':')
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/tests/test_x509_path.cpp:79,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: Botan_Tests::load_cert_file
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::DataSource_Stream::end_of_data
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> load_cert_file(const std::string&
      filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: begin
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: end
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' codes'
    argTypes:
    - Botan::CertificatePathStatusCodes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan_Tests::flatten
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - end
    - begin
    linkageType: ''
    returnType: std::set<Botan::Certificate_Status_Code>
    signature: std::set<Botan::Certificate_Status_Code> flatten(const Botan::CertificatePathStatusCodes&
      codes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan_Tests::get_default_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::Path_Validation_Restrictions
    linkageType: ''
    returnType: Botan::Path_Validation_Restrictions
    signature: Botan::Path_Validation_Restrictions get_default_restrictions(bool req_revocation_info,
      bool ocsp_all_intermediates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:104,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:107,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: Botan_Tests::get_allow_non_self_signed_anchors_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::Path_Validation_Restrictions
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - Botan::Sodium::sodium_memzero
    linkageType: ''
    returnType: Botan::Path_Validation_Restrictions
    signature: "Botan::Path_Validation_Restrictions get_allow_non_self_signed_anchors_restrictions(bool
      req_revocation_info,\n                                                                                   bool
      ocsp_all_intermediates)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Botan_Tests::get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:117,1
    - Dst: Botan_Tests::get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - req_revocation_info
    - ocsp_all_intermediates
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: Botan_Tests::restrictions_to_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - Botan_Tests::get_allow_non_self_signed_anchors_restrictions
    - Botan_Tests::get_default_restrictions
    linkageType: ''
    returnType: std::vector<Botan::Path_Validation_Restrictions>
    signature: "std::vector<Botan::Path_Validation_Restrictions> restrictions_to_test(bool
      req_revocation_info,\n                                                                      bool
      ocsp_all_intermediates)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:126,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:127,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
    - restrictions_to_test
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:138,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:139,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:140,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:142,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:146,1
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:151,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:155,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:158,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:158,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:159,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:162,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:162,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:163,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:163,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:164,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:164,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:165,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:166,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:172,1
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:177,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:177,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:178,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:179,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:183,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:189,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:192,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:192,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:193,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:197,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:197,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:198,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:198,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:201,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:201,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:202,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:202,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:204,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:205,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - ' restrictions'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 209
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 4
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::warnings_string
    - Botan::Path_Validation_Result
    - Botan::x509_path_validate
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Result::successful_validation
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::empty
    - Botan::Path_Validation_Result::no_warnings
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test_Error
    - Test::Result::test_is_true
    - load_cert_file
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan::Path_Validation_Result::trust_root
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_with_restrictions(const Botan::Path_Validation_Restrictions&
      restrictions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:225,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - restrictions_to_test
    - std::vector::insert
    - Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> NIST_Path_Validation_Tests::run()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:233,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:234,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:251,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:251,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:253,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:254,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:256,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:260,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:263,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:265,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:266,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:267,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:273,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:274,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:275,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:282,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:285,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:287,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:287,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:290,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:291,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ' restrictions'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 295
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 4
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - read_results
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::files_in_data_dir
    - std::vector::push_back
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: "std::vector<Test::Result> NIST_Path_Validation_Tests::run_with_restrictions(\n
      \  const Botan::Path_Validation_Restrictions& restrictions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:305,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:306,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:317,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:319,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:322,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:323,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:323,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:327,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:329,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:331,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 340
    functionName: Botan_Tests::Extended_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::files_in_data_dir
    - Test::Result::start_timer
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - ends_with
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Test::Result::end_timer
    - std::vector::push_back
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Extended_Path_Validation_Tests::run()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:352,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:353,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:358,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:358,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:360,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:366,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:371,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:376,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:379,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:380,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:381,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:382,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:383,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:384,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:385,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:386,1
    - Dst: Botan::PKCS10_Request::PKCS10_Request
      Src: /src/botan/src/tests/test_x509_path.cpp:387,1
    - Dst: Botan::PKIX::check_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:395,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:400,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/test_x509_path.cpp:401,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:401,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:409,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:411,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:411,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:414,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:416,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:416,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:419,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:421,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:421,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:424,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:425,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 429
    functionName: Botan_Tests::PSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - std::optional::subject_public_key
    - Botan::PKIX::overall_status
    - std::optional::check_signature
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::status_string
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::x509_path_validate
    - Botan::PKCS10_Request::PKCS10_Request
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - Botan::PKIX::check_crl
    - read_results
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::begin
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test::Result::test_bool_eq
    - Botan::to_u32bit
    - Botan_Tests::Test::files_in_data_dir
    - find
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan::X509_CRL
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> PSS_Path_Validation_Tests::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:441,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:442,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:447,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:448,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:449,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:451,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:457,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:458,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:462,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:464,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:467,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:467,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:469,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:474,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:476,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 479
    functionName: Botan_Tests::Validate_V1Cert_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_V1Cert_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:489,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:490,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:495,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:496,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:497,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:499,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:505,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:506,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:510,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:512,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:515,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:515,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:516,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 520
    functionName: Botan_Tests::Validate_V2Uid_in_V1_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_V2Uid_in_V1_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:530,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:531,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:536,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:537,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:538,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:540,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:546,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:547,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:551,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:553,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:556,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:556,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:557,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 561
    functionName: Botan_Tests::Validate_Name_Constraint_SAN_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_SAN_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:571,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:572,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:577,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:578,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:579,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:581,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:588,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:592,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:594,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:597,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 600
    functionName: Botan_Tests::Validate_Name_Constraint_CaseInsensitive::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_CaseInsensitive::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:610,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:611,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:616,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:617,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:618,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:620,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:626,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:627,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:631,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:633,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:636,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 639
    functionName: Botan_Tests::Validate_Name_Constraint_NoCheckSelf::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - Botan_Tests::Test::Result::Note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Validate_Name_Constraint_NoCheckSelf::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:647,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:650,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:651,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:656,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:657,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:673,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:674,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:678,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:683,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:684,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:687,1
    - Dst: Botan::Path_Validation_Result::result
      Src: /src/botan/src/tests/test_x509_path.cpp:687,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:688,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:689,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:689,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:690,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:690,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:692,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:693,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:693,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:695,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:695,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:702,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:704,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:706,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:708,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:716,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:718,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:723,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:728,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 740
    functionName: Botan_Tests::Root_Cert_Time_Check_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_enum_eq
    - Botan::fmt
    - Test::Result::test_is_true
    - auto::size
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::Result::Note
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::at
    - Botan::Sodium::sodium_memzero
    - assert_path_validation_result
    - Botan::Path_Validation_Result::warnings
    - Botan::has_filesystem_impl
    - Botan::Path_Validation_Result::result
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:752,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:752,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:753,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:754,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 757
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 12
    functionsReached:
    - load_cert_file
    - Botan::fmt
    - auto::size
    - Botan_Tests::Test::data_file
    - Test_Error
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> get_valid_cert_chain()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 9
    functionsReached:
    - Botan::calendar_point
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point get_validation_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate get_self_signed_ee_cert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:773,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:774,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:778,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:778,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:779,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:781,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:782,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:787,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:791,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:794,1
    - Dst: auto::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:794,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:795,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:798,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:799,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:799,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 804
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::fmt
    - Botan::Path_Validation_Result
    - auto::at
    - auto::successful_validation
    - to_string
    - auto::trust_root
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - std::vector::push_back
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    - get_allow_non_self_signed_anchors_restrictions
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> path_validate_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:809,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:810,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:814,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:814,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:815,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:815,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:820,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:827,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:827,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:831,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:832,1
    - Dst: store_of
      Src: /src/botan/src/tests/test_x509_path.cpp:834,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:835,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:839,1
    - Dst: Botan::PKIX::build_all_certificate_paths
      Src: /src/botan/src/tests/test_x509_path.cpp:843,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:843,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:844,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:845,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:846,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:847,1
    - Dst: Botan::PKIX::build_certificate_path
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:852,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:853,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:854,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:857,1
    - Dst: path_to
      Src: /src/botan/src/tests/test_x509_path.cpp:857,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:859,1
    - Dst: at
      Src: /src/botan/src/tests/test_x509_path.cpp:860,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 866
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::fmt
    - at
    - auto::size
    - std::vector::end
    - Botan::PKIX::build_certificate_path
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - get_allow_non_self_signed_anchors_restrictions
    - auto::begin
    - Botan::Certificate_Store_In_Memory::add_certificate
    - store_of
    - test_arb_eq
    - Botan::PKIX::build_all_certificate_paths
    - auto::at
    - to_string
    - std::vector::push_back
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - path_to
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> build_path_test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:869,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:870,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:871,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:877,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:881,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:885,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_x509_path.cpp:887,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:888,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 892
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::Path_Validation_Result
    - Botan::PKIX::check_chain
    - auto::at
    - to_string
    - Test::Result::test_str_ne
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - get_default_restrictions
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> forbidden_self_signed_trust_anchors_test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
      Src: /src/botan/src/tests/test_x509_path.cpp:900,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:903,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:906,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:907,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:909,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:910,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - test_name
    - ' restrictions'
    - ' standalone_cert'
    - expected_result
    argTypes:
    - std::string_view
    - Botan::Path_Validation_Restrictions
    - Botan::X509_Certificate
    - Botan::Certificate_Status_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 914
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_note
    - to_string
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_validation_time
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result stand_alone_root_test(std::string_view test_name,\n                                         const
      Botan::Path_Validation_Restrictions& restrictions,\n                                         const
      Botan::X509_Certificate& standalone_cert,\n                                         Botan::Certificate_Status_Code
      expected_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_default_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: get_allow_non_self_signed_anchors_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:918,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:920,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:922,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:926,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:930,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:935,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:939,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:944,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
      Src: /src/botan/src/tests/test_x509_path.cpp:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 953
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - auto::at
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_test
    - get_default_restrictions
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_valid_cert_chain
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::get_self_signed_ee_cert
    - get_allow_non_self_signed_anchors_restrictions
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> stand_alone_root_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
      Src: /src/botan/src/tests/test_x509_path.cpp:959,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
      Src: /src/botan/src/tests/test_x509_path.cpp:962,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:963,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:966,1
    - Dst: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
      Src: /src/botan/src/tests/test_x509_path.cpp:968,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 956
    functionDepth: 4
    functionLinenumber: 956
    functionLinenumberEnd: 972
    functionName: Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::vector::end
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::build_path_test
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::forbidden_self_signed_trust_anchors_test
    - std::vector::insert
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::stand_alone_root_tests
    - Botan_Tests::Non_Self_Signed_Trust_Anchors_Test::path_validate_test
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restrictions_to_test
      Src: /src/botan/src/tests/test_x509_path.cpp:989,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:990,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_x509_path.cpp:991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 994
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
    - std::vector::end
    - restrictions_to_test
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> BSI_Path_Validation_Tests::run()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:998,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:999,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:1004,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1004,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1019,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1024,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1031,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1035,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1036,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1039,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:1041,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1042,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1042,1
    - Dst: minimum_key_strength
      Src: /src/botan/src/tests/test_x509_path.cpp:1048,1
    - Dst: max_ocsp_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:1051,1
    - Dst: ignore_trusted_root_time_range
      Src: /src/botan/src/tests/test_x509_path.cpp:1052,1
    - Dst: require_self_signed_trust_anchors
      Src: /src/botan/src/tests/test_x509_path.cpp:1053,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::rng
      Src: /src/botan/src/tests/test_x509_path.cpp:1081,1
    - Dst: std::shuffle
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:1084,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1086,1
    - Dst: starts_with
      Src: /src/botan/src/tests/test_x509_path.cpp:1090,1
    - Dst: substr
      Src: /src/botan/src/tests/test_x509_path.cpp:1091,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1091,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:1093,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1097,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1108,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1111,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1112,1
    - Dst: error_type
      Src: /src/botan/src/tests/test_x509_path.cpp:1122,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1123,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:1123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:1125,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:1125,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:1129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:1130,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - ' restriction_template'
    argTypes:
    - Botan::Path_Validation_Restrictions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1134
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run_with_restrictions
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 4
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - std::string
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - max_ocsp_age
    - std::vector::begin
    - Botan::Path_Validation_Result::result_string
    - Botan_Tests::Test::Result::Note
    - std::vector::end
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    - Botan::has_filesystem_impl
    - minimum_key_strength
    - read_results
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - std::shuffle
    - Botan::Path_Validation_Result::warnings
    - ignore_trusted_root_time_range
    - randomize
    - what
    - Botan_Tests::BSI_Path_Validation_Tests::rng
    - substr
    - Botan_Tests::Test::files_in_data_dir
    - starts_with
    - reinterpret_cast<uint8_t*>
    - find
    - std::vector::push_back
    - error_type
    - Test::Result::test_str_eq
    - Botan::X509_CRL
    - require_self_signed_trust_anchors
    - std::vector::insert
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: "std::vector<Test::Result> BSI_Path_Validation_Tests::run_with_restrictions(\n
      \  const Botan::Path_Validation_Restrictions& restriction_template)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1067
    functionName: Botan_Tests::random_bit_generator::min
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result_type
    signature: result_type min()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1069
    functionName: Botan_Tests::random_bit_generator::max
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 8
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: result_type
    signature: result_type max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1075
    functionName: operator()()
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t*>
    - randomize
    linkageType: ''
    returnType: result_type
    signature: result_type operator()()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1077
    functionName: Botan_Tests::random_bit_generator::random_bit_generator
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void random_bit_generator(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1141,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1142
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 24
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate load_test_X509_cert(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_x509_path.cpp:1145,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1146
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 24
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    linkageType: ''
    returnType: std::optional<Botan::OCSP::Response>
    signature: std::optional<Botan::OCSP::Response> load_test_OCSP_resp(const std::string&
      path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1150,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1152,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1156,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1157,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1161,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1165,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1171,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1174,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1175,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1175,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1176,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1179,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1179,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1185,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1189
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1193,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1197,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1198,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1199,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1200,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1204,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1208,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1217,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1218,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1218,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1219,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1222,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1222,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1224,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1224,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1226,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1226,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1228,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1232
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_is_true
    - Botan::minutes
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1236,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1238,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1240,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1241,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1242,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1244,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1248,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1252,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1262,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1262,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1263,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1266,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1266,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1268,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1268,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1270,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1234
    functionDepth: 2
    functionLinenumber: 1234
    functionLinenumberEnd: 1273
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_without_next_update_without_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1277,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1281,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1282,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1283,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1285,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1289,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1293,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1299,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1302,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1303,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1303,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1304,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1307,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1307,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1309,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1309,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1311,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1315
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_is_true
    - Botan::minutes
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_without_next_update_with_max_age()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1319,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1321,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1325,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1326,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1327,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1333,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1341,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1347,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1350,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1352,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1355,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1355,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1357,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1357,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1363
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_is_true
    - std::string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_authorized_responder()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1370,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1375,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1376,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1377,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1379,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1381,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1383,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1390,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1396,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1399,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1400,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1400,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1401,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1403,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: value
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1408,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1408,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1411,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1411,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1415,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1421
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - flatten
    - Botan_CLI::Timer::milliseconds
    - value
    - auto::all_statuses
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_u32_eq
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_with_authorized_responder_without_keyusage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1425,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1427,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1431,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1432,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1433,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1434,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1441,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1443,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1448,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1449,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1452,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1453,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1454,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1455,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1455,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1456,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1462,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1423
    functionDepth: 2
    functionLinenumber: 1423
    functionLinenumberEnd: 1470
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_enum_eq
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - flatten
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_forged_ocsp_using_self_signed_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1475,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1477,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1482,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1483,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1484,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1487,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1490,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1492,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1496,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1501,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1502,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1504,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1505,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1472
    functionDepth: 2
    functionLinenumber: 1472
    functionLinenumberEnd: 1509
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan::x509_path_validate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::to_string
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - auto::result
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_with_ocsp_self_signed_by_intermediate_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1512,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1513,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1514,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
      Src: /src/botan/src/tests/test_x509_path.cpp:1515,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
      Src: /src/botan/src/tests/test_x509_path.cpp:1516,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
      Src: /src/botan/src/tests/test_x509_path.cpp:1517,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1518,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1511
    functionDepth: 3
    functionLinenumber: 1511
    functionLinenumberEnd: 1520
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder_without_keyusage
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_self_signed_by_intermediate_cert
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_next_update_without_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_without_next_update_without_max_age
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1534,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1535,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1539,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1540,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_x509_path.cpp:1544,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_x509_path.cpp:1548,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_x509_path.cpp:1549,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_x509_path.cpp:1550,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1551,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1553,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_x509_path.cpp:1555,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1557,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1557,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1558,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1558,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1559,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1559,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1561,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1562,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1564,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1566,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1568,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1574,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1577,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1577,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1579,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1580,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1582,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1588,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1591,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1591,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1593,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1594,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1597,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1598,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1600,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1606,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1609,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1612
    functionName: Botan_Tests::CVE_2020_0601_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Botan::EC_Group::supports_application_specific_group
    - Botan::x509_path_validate
    - get_a
    - Botan::X509_Certificate
    - Botan_CLI::Timer::milliseconds
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - get_b
    - Botan::Certificate_Store_In_Memory::add_certificate
    - BigInt
    - Botan_Tests::Test::data_file
    - Botan::calendar_point
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_is_true
    - get_order
    - Test::Result::test_note
    - auto::successful_validation
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:1625,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1626,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1630,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1631,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1632,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1635,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1635,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1636,1
    - Dst: auto::this_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1636,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1637,1
    - Dst: auto::next_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1637,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1638,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_x509_path.cpp:1638,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1641,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1642,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1646,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1647,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1648,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1652,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1657,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1659,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1659,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1660,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1660,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1664,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1666,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1666,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1667,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1667,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1669,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1673
    functionName: Botan_Tests::Path_Validation_With_Immortal_CRL::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_crl
    - auto::get_revoked
    - Test::Result::test_enum_eq
    - Test::Result::test_note
    - auto::next_update
    - Botan::Certificate_Store_In_Memory::add_certificate
    - auto::successful_validation
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::EC_Group::supports_named_group
    - Botan::X509_CRL
    - auto::result_string
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::test_is_true
    - auto::this_update
    - auto::result
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1687,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1688,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1688,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1691,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:1693,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:1694,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1695,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1697
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Botan::to_string
    - Botan::X509_Certificate
    - Botan::PKIX::overall_status
    - Botan::PKIX::check_chain
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_self_signed(const std::string& name, const std::string&
      file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:1700,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:1701,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1705,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1699
    functionDepth: 2
    functionLinenumber: 1699
    functionLinenumberEnd: 1708
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    - Botan::has_filesystem_impl
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1727,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1732,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1734,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1736,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1738,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1738,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1739,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1740,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1741,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1742,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1744,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1745,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1750,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_path.cpp:1753,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1756
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_name_constraint_dn_prefix_accepted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1771,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1773,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1775,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1777,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1777,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1778,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1779,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1780,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_x509_path.cpp:1781,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1783,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1784,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1789,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_path.cpp:1792,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1795
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_is_false
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result validate_name_constraint_dn_prefix_not_accepted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
      Src: /src/botan/src/tests/test_x509_path.cpp:1798,1
    - Dst: Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
      Src: /src/botan/src/tests/test_x509_path.cpp:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1797
    functionDepth: 2
    functionLinenumber: 1797
    functionLinenumberEnd: 1799
    functionName: Botan_Tests::Name_Constraint_DN_Prefix_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_not_accepted
    - Botan_Tests::Name_Constraint_DN_Prefix_Test::validate_name_constraint_dn_prefix_accepted
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: Botan::BER_Decoder::more_items
      Src: /src/botan/src/tests/test_asn1.cpp:36,1
    - Dst: Botan::BER_Decoder::get_next
      Src: /src/botan/src/tests/test_asn1.cpp:38,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: Botan_Tests::test_ber_stack_recursion
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Botan::BER_Decoder::get_next
    - std::vector::data
    - Botan::BER_Decoder::more_items
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ber_stack_recursion()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_Pretty_Printer::print
      Src: /src/botan/src/tests/test_asn1.cpp:70,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_asn1.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 80
    functionName: Botan_Tests::test_ber_eoc_decoding_limits
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_Pretty_Printer::print
    - Test::Result::test_sz_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ber_eoc_decoding_limits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:95,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:97,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:97,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:99,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: Botan_Tests::test_asn1_utf8_ascii_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_ascii_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:118,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:120,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:120,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 126
    functionName: Botan_Tests::test_asn1_utf8_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:142,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:144,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:146,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 150
    functionName: Botan_Tests::test_asn1_ucs2_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ucs2_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:166,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:168,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:168,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: Botan_Tests::test_asn1_ucs4_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ucs4_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:184,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:186,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:187,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_asn1.cpp:191,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:195,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: Botan_Tests::test_asn1_ascii_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Test::Result::test_success
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::ASN1_String::encode_into
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ascii_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:209,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:211,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:212,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_asn1.cpp:216,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:218,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:220,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 224
    functionName: Botan_Tests::test_asn1_utf8_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Test::Result::test_success
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::ASN1_String::encode_into
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_encoding()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:232,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:235,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 242
    functionName: Botan_Tests::test_asn1_tag_underlying_type
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_tag_underlying_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:252,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_asn1.cpp:255,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_asn1.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: Botan_Tests::test_asn1_negative_int_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::BER_Decoder
    - Botan::DER_Encoder
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_negative_int_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:268,1
    - Dst: test_ber_stack_recursion
      Src: /src/botan/src/tests/test_asn1.cpp:268,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:269,1
    - Dst: test_ber_eoc_decoding_limits
      Src: /src/botan/src/tests/test_asn1.cpp:269,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:270,1
    - Dst: test_asn1_utf8_ascii_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:270,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:271,1
    - Dst: test_asn1_utf8_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:272,1
    - Dst: test_asn1_ucs2_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:272,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:273,1
    - Dst: test_asn1_ucs4_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:273,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:274,1
    - Dst: test_asn1_ascii_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:274,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:275,1
    - Dst: test_asn1_utf8_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:275,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:276,1
    - Dst: test_asn1_tag_underlying_type
      Src: /src/botan/src/tests/test_asn1.cpp:276,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:277,1
    - Dst: test_asn1_negative_int_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 280
    functionName: Botan_Tests::ASN1_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - test_asn1_utf8_encoding
    - std::vector::push_back
    - test_asn1_ascii_encoding
    - test_asn1_ucs4_parsing
    - test_asn1_utf8_parsing
    - test_asn1_tag_underlying_type
    - test_ber_eoc_decoding_limits
    - test_asn1_ucs2_parsing
    - test_asn1_negative_int_encoding
    - test_ber_stack_recursion
    - test_asn1_utf8_ascii_parsing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_Tests::ASN1_Time_Parsing_Tests::ASN1_Time_Parsing_Tests
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_Time_Parsing_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_asn1.cpp:292,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_asn1.cpp:296,1
    - Dst: find
      Src: /src/botan/src/tests/test_asn1.cpp:303,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:307,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_asn1.cpp:309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - ' tag_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 313
    functionName: Botan_Tests::ASN1_Time_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - find
    - Test_Error
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& tag_str, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_asn1.cpp:328,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:329,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:330,1
    - Dst: Botan::ASN1_Pretty_Printer::print
      Src: /src/botan/src/tests/test_asn1.cpp:333,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:334,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 341
    functionName: Botan_Tests::ASN1_Printer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Botan::fmt
    - std::to_string
    - Botan_Tests::Test::read_data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::ASN1_Pretty_Printer::print
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: Botan::BER_Decoder::more_items
      Src: /src/botan/src/tests/test_asn1.cpp:36,1
    - Dst: Botan::BER_Decoder::get_next
      Src: /src/botan/src/tests/test_asn1.cpp:38,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: Botan_Tests::test_ber_stack_recursion
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Botan::BER_Decoder::get_next
    - std::vector::data
    - Botan::BER_Decoder::more_items
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ber_stack_recursion()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_Pretty_Printer::print
      Src: /src/botan/src/tests/test_asn1.cpp:70,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_asn1.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 80
    functionName: Botan_Tests::test_ber_eoc_decoding_limits
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_Pretty_Printer::print
    - Test::Result::test_sz_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ber_eoc_decoding_limits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:95,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:97,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:97,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:99,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: Botan_Tests::test_asn1_utf8_ascii_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_ascii_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:118,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:120,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:120,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 126
    functionName: Botan_Tests::test_asn1_utf8_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:142,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:144,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:146,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 150
    functionName: Botan_Tests::test_asn1_ucs2_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ucs2_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:166,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:168,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:168,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: Botan_Tests::test_asn1_ucs4_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ucs4_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:184,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:186,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:187,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_asn1.cpp:191,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:195,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: Botan_Tests::test_asn1_ascii_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Test::Result::test_success
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::ASN1_String::encode_into
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ascii_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:209,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:211,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:212,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_asn1.cpp:216,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:218,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:220,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 224
    functionName: Botan_Tests::test_asn1_utf8_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Test::Result::test_success
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::ASN1_String::encode_into
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_encoding()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:232,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:235,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 242
    functionName: Botan_Tests::test_asn1_tag_underlying_type
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_tag_underlying_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:252,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_asn1.cpp:255,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_asn1.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: Botan_Tests::test_asn1_negative_int_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::BER_Decoder
    - Botan::DER_Encoder
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_negative_int_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:268,1
    - Dst: test_ber_stack_recursion
      Src: /src/botan/src/tests/test_asn1.cpp:268,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:269,1
    - Dst: test_ber_eoc_decoding_limits
      Src: /src/botan/src/tests/test_asn1.cpp:269,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:270,1
    - Dst: test_asn1_utf8_ascii_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:270,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:271,1
    - Dst: test_asn1_utf8_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:272,1
    - Dst: test_asn1_ucs2_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:272,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:273,1
    - Dst: test_asn1_ucs4_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:273,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:274,1
    - Dst: test_asn1_ascii_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:274,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:275,1
    - Dst: test_asn1_utf8_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:275,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:276,1
    - Dst: test_asn1_tag_underlying_type
      Src: /src/botan/src/tests/test_asn1.cpp:276,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:277,1
    - Dst: test_asn1_negative_int_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 280
    functionName: Botan_Tests::ASN1_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - test_asn1_utf8_encoding
    - std::vector::push_back
    - test_asn1_ascii_encoding
    - test_asn1_ucs4_parsing
    - test_asn1_utf8_parsing
    - test_asn1_tag_underlying_type
    - test_ber_eoc_decoding_limits
    - test_asn1_ucs2_parsing
    - test_asn1_negative_int_encoding
    - test_ber_stack_recursion
    - test_asn1_utf8_ascii_parsing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_Tests::ASN1_Time_Parsing_Tests::ASN1_Time_Parsing_Tests
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_Time_Parsing_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_asn1.cpp:292,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_asn1.cpp:296,1
    - Dst: find
      Src: /src/botan/src/tests/test_asn1.cpp:303,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:307,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_asn1.cpp:309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - ' tag_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 313
    functionName: Botan_Tests::ASN1_Time_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - find
    - Test_Error
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& tag_str, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_asn1.cpp:328,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:329,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:330,1
    - Dst: Botan::ASN1_Pretty_Printer::print
      Src: /src/botan/src/tests/test_asn1.cpp:333,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:334,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 341
    functionName: Botan_Tests::ASN1_Printer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Botan::fmt
    - std::to_string
    - Botan_Tests::Test::read_data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::ASN1_Pretty_Printer::print
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: Botan::BER_Decoder::more_items
      Src: /src/botan/src/tests/test_asn1.cpp:36,1
    - Dst: Botan::BER_Decoder::get_next
      Src: /src/botan/src/tests/test_asn1.cpp:38,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: Botan_Tests::test_ber_stack_recursion
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Botan::BER_Decoder::get_next
    - std::vector::data
    - Botan::BER_Decoder::more_items
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ber_stack_recursion()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_Pretty_Printer::print
      Src: /src/botan/src/tests/test_asn1.cpp:70,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_asn1.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 80
    functionName: Botan_Tests::test_ber_eoc_decoding_limits
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_Pretty_Printer::print
    - Test::Result::test_sz_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ber_eoc_decoding_limits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:95,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:97,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:97,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:99,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: Botan_Tests::test_asn1_utf8_ascii_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_ascii_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:118,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:120,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:120,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 126
    functionName: Botan_Tests::test_asn1_utf8_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:142,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:144,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:146,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 150
    functionName: Botan_Tests::test_asn1_ucs2_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ucs2_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:166,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:168,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:168,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: Botan_Tests::test_asn1_ucs4_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ucs4_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:184,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:186,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:187,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_asn1.cpp:191,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:195,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: Botan_Tests::test_asn1_ascii_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Test::Result::test_success
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::ASN1_String::encode_into
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ascii_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:209,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:211,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:212,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_asn1.cpp:216,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:218,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:220,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 224
    functionName: Botan_Tests::test_asn1_utf8_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Test::Result::test_success
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::ASN1_String::encode_into
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_encoding()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:232,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:235,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 242
    functionName: Botan_Tests::test_asn1_tag_underlying_type
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_tag_underlying_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:252,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_asn1.cpp:255,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_asn1.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: Botan_Tests::test_asn1_negative_int_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::BER_Decoder
    - Botan::DER_Encoder
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_negative_int_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:268,1
    - Dst: test_ber_stack_recursion
      Src: /src/botan/src/tests/test_asn1.cpp:268,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:269,1
    - Dst: test_ber_eoc_decoding_limits
      Src: /src/botan/src/tests/test_asn1.cpp:269,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:270,1
    - Dst: test_asn1_utf8_ascii_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:270,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:271,1
    - Dst: test_asn1_utf8_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:272,1
    - Dst: test_asn1_ucs2_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:272,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:273,1
    - Dst: test_asn1_ucs4_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:273,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:274,1
    - Dst: test_asn1_ascii_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:274,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:275,1
    - Dst: test_asn1_utf8_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:275,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:276,1
    - Dst: test_asn1_tag_underlying_type
      Src: /src/botan/src/tests/test_asn1.cpp:276,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:277,1
    - Dst: test_asn1_negative_int_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 280
    functionName: Botan_Tests::ASN1_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - test_asn1_utf8_encoding
    - std::vector::push_back
    - test_asn1_ascii_encoding
    - test_asn1_ucs4_parsing
    - test_asn1_utf8_parsing
    - test_asn1_tag_underlying_type
    - test_ber_eoc_decoding_limits
    - test_asn1_ucs2_parsing
    - test_asn1_negative_int_encoding
    - test_ber_stack_recursion
    - test_asn1_utf8_ascii_parsing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_Tests::ASN1_Time_Parsing_Tests::ASN1_Time_Parsing_Tests
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_Time_Parsing_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_asn1.cpp:292,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_asn1.cpp:296,1
    - Dst: find
      Src: /src/botan/src/tests/test_asn1.cpp:303,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:307,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_asn1.cpp:309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - ' tag_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 313
    functionName: Botan_Tests::ASN1_Time_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - find
    - Test_Error
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& tag_str, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_asn1.cpp:328,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:329,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:330,1
    - Dst: Botan::ASN1_Pretty_Printer::print
      Src: /src/botan/src/tests/test_asn1.cpp:333,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:334,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 341
    functionName: Botan_Tests::ASN1_Printer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Botan::fmt
    - std::to_string
    - Botan_Tests::Test::read_data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::ASN1_Pretty_Printer::print
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: Botan::BER_Decoder::more_items
      Src: /src/botan/src/tests/test_asn1.cpp:36,1
    - Dst: Botan::BER_Decoder::get_next
      Src: /src/botan/src/tests/test_asn1.cpp:38,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: Botan_Tests::test_ber_stack_recursion
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Botan::BER_Decoder::get_next
    - std::vector::data
    - Botan::BER_Decoder::more_items
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ber_stack_recursion()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_Pretty_Printer::print
      Src: /src/botan/src/tests/test_asn1.cpp:70,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_asn1.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 80
    functionName: Botan_Tests::test_ber_eoc_decoding_limits
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_Pretty_Printer::print
    - Test::Result::test_sz_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ber_eoc_decoding_limits()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:95,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:97,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:97,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:99,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: Botan_Tests::test_asn1_utf8_ascii_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_ascii_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:118,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:120,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:120,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 126
    functionName: Botan_Tests::test_asn1_utf8_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:142,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:144,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:146,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 150
    functionName: Botan_Tests::test_asn1_ucs2_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ucs2_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:166,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:168,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:168,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: Botan_Tests::test_asn1_ucs4_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - what
    - Test::Result::test_str_eq
    - Botan::ASN1_String::value
    - Botan::ASN1_String::decode_from
    - Test::Result::test_failure
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ucs4_parsing()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:184,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:186,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:187,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_asn1.cpp:191,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:195,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: Botan_Tests::test_asn1_ascii_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Test::Result::test_success
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::ASN1_String::encode_into
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_ascii_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:209,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:211,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:212,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_asn1.cpp:216,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:218,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:220,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 224
    functionName: Botan_Tests::test_asn1_utf8_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Test::Result::test_success
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::ASN1_String::encode_into
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_utf8_encoding()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:232,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:235,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 242
    functionName: Botan_Tests::test_asn1_tag_underlying_type
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_tag_underlying_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/tests/test_asn1.cpp:252,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_asn1.cpp:255,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_asn1.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: Botan_Tests::test_asn1_negative_int_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::BER_Decoder
    - Botan::DER_Encoder
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_negative_int_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:268,1
    - Dst: test_ber_stack_recursion
      Src: /src/botan/src/tests/test_asn1.cpp:268,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:269,1
    - Dst: test_ber_eoc_decoding_limits
      Src: /src/botan/src/tests/test_asn1.cpp:269,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:270,1
    - Dst: test_asn1_utf8_ascii_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:270,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:271,1
    - Dst: test_asn1_utf8_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:272,1
    - Dst: test_asn1_ucs2_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:272,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:273,1
    - Dst: test_asn1_ucs4_parsing
      Src: /src/botan/src/tests/test_asn1.cpp:273,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:274,1
    - Dst: test_asn1_ascii_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:274,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:275,1
    - Dst: test_asn1_utf8_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:275,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:276,1
    - Dst: test_asn1_tag_underlying_type
      Src: /src/botan/src/tests/test_asn1.cpp:276,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:277,1
    - Dst: test_asn1_negative_int_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 280
    functionName: Botan_Tests::ASN1_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - test_asn1_utf8_encoding
    - std::vector::push_back
    - test_asn1_ascii_encoding
    - test_asn1_ucs4_parsing
    - test_asn1_utf8_parsing
    - test_asn1_tag_underlying_type
    - test_ber_eoc_decoding_limits
    - test_asn1_ucs2_parsing
    - test_asn1_negative_int_encoding
    - test_ber_stack_recursion
    - test_asn1_utf8_ascii_parsing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_Tests::ASN1_Time_Parsing_Tests::ASN1_Time_Parsing_Tests
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_Time_Parsing_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_asn1.cpp:292,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_asn1.cpp:296,1
    - Dst: find
      Src: /src/botan/src/tests/test_asn1.cpp:303,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:307,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_asn1.cpp:309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - ' tag_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 313
    functionName: Botan_Tests::ASN1_Time_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - find
    - Test_Error
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& tag_str, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_asn1.cpp:328,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:329,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:330,1
    - Dst: Botan::ASN1_Pretty_Printer::print
      Src: /src/botan/src/tests/test_asn1.cpp:333,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_asn1.cpp:334,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 341
    functionName: Botan_Tests::ASN1_Printer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_binary_data_file
    - Botan::fmt
    - std::to_string
    - Botan_Tests::Test::read_data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::ASN1_Pretty_Printer::print
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/unit_x509.cpp:39,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:40,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/unit_x509.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Time
    - static_cast<uint32_t>
    - Botan::calendar_point
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:50,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ca_opts
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options ca_opts(const std::string& sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:63,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/unit_x509.cpp:65,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/unit_x509.cpp:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: Botan_Tests::req_opts1
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::not_before
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts1(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:85,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: Botan_Tests::req_opts2
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::add_ex_constraint
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts2(const std::string& sig_padding =
      "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:98,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:100,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:101,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: Botan_Tests::req_opts3
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::more_dns::push_back
    - Botan::X509_Cert_Options::more_org_units::push_back
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts3(const std::string& sig_padding =
      "")
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_x509.cpp:115,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 138
    functionName: Botan_Tests::make_a_private_key
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::create_private_key
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> make_a_private_key(const std::string&
      algo, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:145,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:146,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:147,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:201,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/unit_x509.cpp:202,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/unit_x509.cpp:202,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:203,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/unit_x509.cpp:203,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/unit_x509.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 208
    functionName: Botan_Tests::test_cert_status_strings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - Test::Result::test_str_eq
    - std::string::size
    - std::set::count
    - Botan::to_string
    - Test::Result::test_sz_eq
    - Test::Result::test_sz_gt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cert_status_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:216,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:221,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:221,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:223,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:223,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:225,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:230,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:230,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::add_new
      Src: /src/botan/src/tests/unit_x509.cpp:235,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:235,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:237,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:237,1
    - Dst: Botan::Extensions::replace
      Src: /src/botan/src/tests/unit_x509.cpp:239,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:239,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:244,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:244,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:245,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:245,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:246,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 249
    functionName: Botan_Tests::test_x509_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Cert_Extension::Basic_Constraints>
    - Botan::Extensions::get_extension_bits
    - Botan::Extensions::add
    - Botan::Extensions::extension_set
    - Test::Result::test_bin_eq
    - Botan::OID::from_string
    - Botan::Extensions::add_new
    - Botan::Extensions::remove
    - Botan::Extensions::critical_extension_set
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::Extensions::replace
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:256,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:258,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:258,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:260,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:261,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:261,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:263,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:264,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:265,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:267,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:268,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:269,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:272,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:273,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:273,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:404,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:416,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 424
    functionName: Botan_Tests::test_x509_dates
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Time::readable_string
    - Botan::X509_Time
    - Test::Result::test_str_eq
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::X509_Time::time_is_set
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_dates()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:430,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:445,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/unit_x509.cpp:446,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:447,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:447,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:453,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:454,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:454,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:456,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:460,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:460,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:464,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:465,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:472,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:473,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:473,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:475,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:479,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:479,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:480,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:480,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: std::string
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:484,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:485,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:485,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:487,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:491,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:491,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:492,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:492,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:495,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:497,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:497,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:499,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:504,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:505,1
    - Dst: auto*::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:507,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:508,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:508,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:509,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:510,1
    - Dst: Botan::X509_Certificate::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:512,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:514,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 521
    functionName: Botan_Tests::test_x509_encode_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - std::string
    - Test::Result::test_sz_eq
    - Botan::X509_Cert_Options::extensions::add
    - auto*::ocsp_responders
    - auto::size
    - std::vector::end
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::ocsp_responder
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - Test::Result::require
    - Test::Result::test_is_true
    - Botan_Tests::req_opts1
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::ca_issuers
    - Botan::X509_Certificate::ocsp_responders
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_encode_authority_info_access_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:535,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:537,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:538,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:541,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:545,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 549
    functionName: Botan_Tests::test_crl_dn_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::subject_dn
    - Botan::X509_CRL::issuer_dn
    - Test::Result::test_is_true
    - Botan::X509_CA::new_crl
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_crl_dn_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:556,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:558,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:558,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 562
    functionName: Botan_Tests::test_rdn_multielement_set_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::issuer_dn
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rdn_multielement_set_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:568,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_x509.cpp:570,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:571,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_x509.cpp:571,1
    - Dst: Botan::X509_Certificate::subject_public_key_algo
      Src: /src/botan/src/tests/unit_x509.cpp:572,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    - Dst: oid
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 578
    functionName: Botan_Tests::test_rsa_oaep
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_not_null
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - oid
    - Botan::X509_Certificate::subject_public_key_algo
    - Botan::OID::from_string
    - Botan::X509_Certificate::subject_public_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rsa_oaep()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:583,1
    - Dst: Botan::BER_Decoder::decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:587,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 595
    functionName: Botan_Tests::test_x509_decode_list
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::decode_list
    - subject_dn
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_decode_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:601,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:615,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:617,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:617,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:618,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:618,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:619,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:619,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:622,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 626
    functionName: Botan_Tests::test_x509_utf8
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_utf8()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:634,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Botan::X509_Certificate::is_CA_cert
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:638,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:638,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:641,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 644
    functionName: Botan_Tests::test_x509_any_key_extended_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::is_CA_cert
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::allowed_usage
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_any_key_extended_usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:650,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:660,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:662,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:662,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:663,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:663,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:666,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 670
    functionName: Botan_Tests::test_x509_bmpstring
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_bmpstring()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:676,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:678,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:682,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:682,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:683,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:683,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:685,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 689
    functionName: Botan_Tests::test_x509_teletex
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_teletex()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:695,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:697,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:697,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:701,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:703,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:705,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:705,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:706,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:710,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:715,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:717,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:719,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:719,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:724,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:726,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:730,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:730,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:734,1
    - Dst: Botan::X509_Certificate::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:736,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:737,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:737,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:738,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:739,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:740,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 744
    functionName: Botan_Tests::test_x509_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::X509_Certificate::ocsp_responder
    - size
    - Test::Result::tests_failed
    - Botan::X509_Certificate::ca_issuers
    - Test::Result::test_is_true
    - Botan::X509_Certificate::ocsp_responders
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_authority_info_access_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:752,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_x509.cpp:753,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 759
    functionName: Botan_Tests::test_parse_rsa_pss_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_parse_rsa_pss_cert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_x509.cpp:766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:767,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:770,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:771,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:775,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:777,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:777,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:780,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 785
    functionName: Botan_Tests::test_verify_gost2012_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::EC_Group::supports_named_group
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_verify_gost2012_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:796,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:798,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:799,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:803,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:805,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:806,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:807,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:811,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:812,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:813,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:814,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:819,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:822,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:823,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:825,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:825,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:826,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:831,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:832,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:835,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:836,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:840,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:841,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:842,1
    - Dst: Botan::PKCS10_Request::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:843,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:848,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:850,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:852,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:859,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:860,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:865,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:866,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:872,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:874,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:877,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:878,1
    - Dst: Botan::X509_CRL::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:878,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:881,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:884,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:885,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 888
    functionName: Botan_Tests::test_padding_config
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Botan::X509_CA::new_crl
    - Botan::X509_CA::ca_certificate
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::X509_Cert_Options::CA_key
    - Botan_Tests::Test::data_file
    - what
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    - Botan::X509_Certificate::signature_algorithm
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::PKCS10_Request::signature_algorithm
    - Botan::X509_CRL::signature_algorithm
    - auto::algo_name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_padding_config()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:899,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:902,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:903,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:907,1
    - Dst: Botan::AlternativeName::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:908,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:911,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:912,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/unit_x509.cpp:913,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:915,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/tests/unit_x509.cpp:915,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:917,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:923,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:926,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:926,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:930,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:930,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - ' key'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 934
    functionName: Botan_Tests::test_pkcs10_ext
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509::create_cert_req
    - Botan::AlternativeName::AlternativeName
    - auto::size
    - auto::at
    - Botan::AlternativeName::add_attribute
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::AlternativeName::add_dn
    - auto::subject_alt_name
    - Test::Result::test_sz_eq
    - Botan::X509_DN::add_attribute
    - Botan::X509_Cert_Options::more_dns::push_back
    - Test::Result::test_is_true
    - Botan::X509_Cert_Options::extensions::add
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_pkcs10_ext(const Botan::Private_Key& key,\n                             const
      std::string& sig_padding,\n                             const std::string& hash_fn,\n
      \                            Botan::RandomNumberGenerator& rng)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:944,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:944,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:947,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:947,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:952,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan::PKCS10_Request::challenge_password
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:960,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: Botan_Tests::req_opts2
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:966,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:981,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:981,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::X509_Certificate::has_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:995,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Botan::X509_Certificate::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1001,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1004,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1009,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1014,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1020,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1022,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:1027,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1028,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1028,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:1032,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1033,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1035,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1038,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:1042,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1045,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1046,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1048,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1049,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1051,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1051,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1053,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1054,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1054,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1058,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1059,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1059,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1064,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1065,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1067,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1069,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1072,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1072,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1075,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1077,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1082,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1090,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1092,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1094,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1095,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1095,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 53
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 1103
    functionName: Botan_Tests::test_x509_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::X509::create_cert_req
    - Botan::X509_Certificate::subject_alt_name
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_sz_eq
    - Botan::PKCS10_Request::challenge_password
    - at
    - Botan::X509_Certificate::x509_version
    - Botan::X509_CA::new_crl
    - Botan::Path_Validation_Result::result_string
    - get_first_attribute
    - Botan::Path_Validation_Result::status_string
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::make_a_private_key
    - Botan::x509_path_validate
    - Botan::X509_CA::update_crl
    - Botan::X509_CA::sign_request
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::X509_Certificate::has_ex_constraint
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::vector::clear
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Botan::X509_Certificate::issuer_dn
    - Botan_Tests::ca_opts
    - Botan_Tests::req_opts1
    - Test::Result::test_is_true
    - Botan_Tests::req_opts2
    - get_attribute
    - Test::Result::test_note
    - std::vector::push_back
    - auto::constraints
    - Test::Result::test_str_eq
    - Botan_Tests::req_opts3
    - Botan::X509_Certificate::constraints
    - Botan::CRL_Entry
    - size
    - Botan::X509_Certificate::subject_dn
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_x509_cert(const Botan::Private_Key& ca_key,\n                            const
      std::string& sig_algo,\n                            const std::string& sig_padding,\n
      \                           const std::string& hash_fn,\n                            Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1115,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1115,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1120,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1125,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1131,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1133,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1133,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1134,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1134,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1137,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1138,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1140,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1142,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1148,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1149,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1150,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1151,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1153,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1153,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1156,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1158,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1164,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1167,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1167,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1171,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1173,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1178,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1179,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1183
    functionName: Botan_Tests::test_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Key_Constraints
    - Test::Result::test_is_true
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::allowed_usage
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_usage(const Botan::Private_Key& ca_key,\n                        const
      std::string& sig_algo,\n                        const std::string& hash_fn,\n
      \                       Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1201,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1205,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1225
    functionName: Botan_Tests::test_self_issued
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Test::Result::test_is_true
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::make_a_private_key
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_self_issued(const Botan::Private_Key& ca_key,\n
      \                             const std::string& sig_algo,\n                              const
      std::string& sig_padding,\n                              const std::string&
      hash_fn,\n                              Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate::X509_Certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1230,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1232,1
    - Dst: Botan::X509_CRL::X509_CRL
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: Botan::X509_CRL::crl_number
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1240
    functionName: Botan_Tests::test_x509_uninit
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_CRL::crl_number
    - Botan::X509_Certificate::X509_Certificate
    - Botan::X509_CRL::X509_CRL
    - Test::Result::test_throws
    - Botan::X509_Certificate::x509_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_uninit()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1257,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1259,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1273,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1273,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1274,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1274,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1275,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1275,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1276,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1276,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1277,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1277,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1278,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1278,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1279,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1279,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1280,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1280,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1281,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1281,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1282,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1282,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1283,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1283,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1286,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1286,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1287,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1287,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1288,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1288,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1289,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1289,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1290,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1290,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1291,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1291,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1292,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1292,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1293,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1293,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1294,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1294,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1297,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1297,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1299,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1299,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1300,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1300,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1301,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1301,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1302,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1303,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1303,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1306,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1306,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1307,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1307,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1308,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1308,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1311,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1311,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1312,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1312,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1313,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1313,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1314,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1314,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1315,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1315,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1316,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1316,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1317,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1317,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1318,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1318,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1319,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1319,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1324,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1324,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1326,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1326,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1327,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1327,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1328,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1328,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1331,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1331,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1332,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1332,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1333,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1333,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - ' key'
    - ' pk_algo'
    argTypes:
    - Botan::Private_Key
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1339
    functionName: Botan_Tests::test_valid_constraints
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_false
    - Key_Constraints
    - Test::Result::test_is_true
    - auto::compatible_with
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_valid_constraints(const Botan::Private_Key& key,
      const std::string& pk_algo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1346
    functionName: Botan_Tests::String_Extension::String_Extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String_Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1348
    functionName: Botan_Tests::String_Extension::String_Extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String_Extension(const std::string& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1350
    functionName: Botan_Tests::String_Extension::value
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1354
    functionName: Botan_Tests::String_Extension::copy
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<String_Extension>
    linkageType: ''
    returnType: std::unique_ptr<Certificate_Extension>
    signature: std::unique_ptr<Certificate_Extension> copy() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1356
    functionName: Botan_Tests::String_Extension::oid_of
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_OID
    linkageType: ''
    returnType: Botan::OID
    signature: Botan::OID oid_of() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1358
    functionName: Botan_Tests::String_Extension::should_encode
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_encode() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1360
    functionName: Botan_Tests::String_Extension::oid_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string oid_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1362
    functionDepth: 1
    functionLinenumber: 1362
    functionLinenumberEnd: 1366
    functionName: Botan_Tests::String_Extension::encode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Botan::DER_Encoder
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> encode_inner() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1369,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/unit_x509.cpp:1370,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/unit_x509.cpp:1371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1372
    functionName: Botan_Tests::String_Extension::decode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::value
    - Botan::BER_Decoder
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: void
    signature: void decode_inner(const std::vector<uint8_t>& in) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1387,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1387,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1392,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1396,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1397,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1401,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1402,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/tests/unit_x509.cpp:1407,1
    - Dst: Botan::PKCS10_Request::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1409,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1413,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1414,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1415,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1416,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1423,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1425,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1429,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1430,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1431,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1432,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1437
    functionName: Botan_Tests::test_custom_dn_attr
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_is_true
    - get_first_attribute
    - Botan::EC_Group::from_OID
    - Botan_Tests::make_a_private_key
    - Botan::PKCS10_Request::subject_dn
    - auto::subject_dn
    - Botan::X509_CA::sign_request
    - Botan::ASN1_String::tagging
    - Test::Result::test_sz_eq
    - Botan::X509_DN::add_attribute
    - dn_info
    - Botan::PKCS10_Request::create
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_custom_dn_attr(const Botan::Private_Key& ca_key,\n
      \                                const std::string& sig_algo,\n                                 const
      std::string& sig_padding,\n                                 const std::string&
      hash_fn,\n                                 Botan::RandomNumberGenerator& rng)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1450,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1450,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:1463,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/unit_x509.cpp:1464,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_x509.cpp:1467,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1470,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:1478,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1482,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1485,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1487,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1488,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1491,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1492,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1493,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1495,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1499,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1500,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1501,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1502,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1507,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1509,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1510,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1511,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1512,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1517,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1527,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1528,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1530,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1535,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1536,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1537,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1538,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1539,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1540,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1544,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1546,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1547,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1548,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1549,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1555
    functionName: Botan_Tests::test_x509_extensions
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::AlternativeName::add_uri
    - Botan::X509::create_cert_req
    - Botan::AlternativeName::AlternativeName
    - Botan::Extensions::add
    - std::make_unique<String_Extension>
    - std::vector::end
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - auto*::crl_distribution_urls
    - point
    - Botan::X509_Certificate::v3_extensions
    - std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
    - std::vector::emplace_back
    - Botan::OID::from_string
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::ca_opts
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - auto*::distribution_points
    - Botan::X509_Cert_Options::set_padding_scheme
    - dynamic_cast<Botan::Cert_Extension::Key_Usage&>
    - auto::value
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_x509_extensions(const Botan::Private_Key& ca_key,\n
      \                                 const std::string& sig_algo,\n                                  const
      std::string& sig_padding,\n                                  const std::string&
      hash_fn,\n                                  Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1591,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1598,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:1598,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' key'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1606
    functionName: Botan_Tests::test_hashes
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::hex_encode
    - Botan::X509::create_cert_req
    - Botan::X509_Certificate::raw_issuer_dn_sha256
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::raw_subject_dn_sha256
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::CA_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_hashes(const Botan::Private_Key& key, const std::string&
      hash_fn, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1628,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:1630,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1634,1
    - Dst: auto*::entries
      Src: /src/botan/src/tests/unit_x509.cpp:1636,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:1638,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1640,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1641,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1642,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1643,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1644,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1645,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1647,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1647,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1648,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1648,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1650,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1650,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1651,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1652,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1652,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1654,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1655,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1655,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1656,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1658,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1658,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1663
    functionName: Botan_Tests::test_x509_tn_auth_list_extension_decode
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_not_null
    - Test::Result::end_timer
    - auto*::entries
    - Botan_Tests::Test::data_file
    - service_provider_code
    - Test::Result::test_str_eq
    - start::value
    - telephone_number
    - type
    - Test::Result::test_sz_eq
    - size
    - telephone_number_range
    - Test::Result::test_throws
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_tn_auth_list_extension_decode()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' sig_algo'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1677
    functionName: Botan_Tests::get_sig_paddings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> get_sig_paddings(const std::string& sig_algo,
      const std::string& hash)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::X509_Cert_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_x509.cpp:1696,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1729,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1735,1
    - Dst: test_hashes
      Src: /src/botan/src/tests/unit_x509.cpp:1735,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: test_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: get_sig_paddings
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: test_x509_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1752,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1752,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1758,1
    - Dst: test_pkcs10_ext
      Src: /src/botan/src/tests/unit_x509.cpp:1758,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1760,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1760,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1762,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1766,1
    - Dst: test_self_issued
      Src: /src/botan/src/tests/unit_x509.cpp:1766,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1768,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1768,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1770,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1774,1
    - Dst: test_x509_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1774,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1776,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1776,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1778,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1782,1
    - Dst: test_custom_dn_attr
      Src: /src/botan/src/tests/unit_x509.cpp:1782,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1784,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1784,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1786,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1797,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1800,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1800,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1808,1
    - Dst: test_padding_config
      Src: /src/botan/src/tests/unit_x509.cpp:1808,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1810,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1810,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1812,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1816,1
    - Dst: test_x509_utf8
      Src: /src/botan/src/tests/unit_x509.cpp:1816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1817,1
    - Dst: test_x509_any_key_extended_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1817,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1818,1
    - Dst: test_x509_bmpstring
      Src: /src/botan/src/tests/unit_x509.cpp:1818,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1819,1
    - Dst: test_x509_teletex
      Src: /src/botan/src/tests/unit_x509.cpp:1819,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1820,1
    - Dst: test_crl_dn_name
      Src: /src/botan/src/tests/unit_x509.cpp:1820,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1821,1
    - Dst: test_rdn_multielement_set_name
      Src: /src/botan/src/tests/unit_x509.cpp:1821,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1822,1
    - Dst: test_x509_decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:1822,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1823,1
    - Dst: test_rsa_oaep
      Src: /src/botan/src/tests/unit_x509.cpp:1823,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1824,1
    - Dst: test_x509_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1824,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1825,1
    - Dst: test_verify_gost2012_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1825,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1826,1
    - Dst: test_parse_rsa_pss_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1826,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1827,1
    - Dst: test_x509_tn_auth_list_extension_decode
      Src: /src/botan/src/tests/unit_x509.cpp:1827,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1830,1
    - Dst: test_x509_encode_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1830,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1831,1
    - Dst: test_x509_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1831,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1832,1
    - Dst: test_x509_dates
      Src: /src/botan/src/tests/unit_x509.cpp:1832,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1833,1
    - Dst: test_cert_status_strings
      Src: /src/botan/src/tests/unit_x509.cpp:1833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1834,1
    - Dst: test_x509_uninit
      Src: /src/botan/src/tests/unit_x509.cpp:1834,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1837
    functionName: Botan_Tests::X509_Cert_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - test_x509_bmpstring
    - test_x509_uninit
    - test_x509_dates
    - test_x509_any_key_extended_usage
    - test_parse_rsa_pss_cert
    - test_x509_utf8
    - test_x509_decode_list
    - test_x509_authority_info_access_extension
    - test_x509_tn_auth_list_extension_decode
    - get_sig_paddings
    - test_rdn_multielement_set_name
    - make_a_private_key
    - test_x509_cert
    - test_x509_extensions
    - test_padding_config
    - Botan_Tests::X509_Cert_Unit_Tests::rng
    - Test::Result::test_failure
    - test_verify_gost2012_cert
    - test_x509_teletex
    - test_x509_encode_authority_info_access_extension
    - test_custom_dn_attr
    - test_rsa_oaep
    - Test::Result::merge
    - what
    - test_cert_status_strings
    - test_self_issued
    - test_pkcs10_ext
    - test_valid_constraints
    - std::vector::push_back
    - test_usage
    - test_crl_dn_name
    - test_hashes
    - test_x509_extension
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/unit_x509.cpp:39,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:40,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/unit_x509.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 7
    functionsReached:
    - Botan::X509_Time
    - static_cast<uint32_t>
    - Botan::calendar_point
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:50,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ca_opts
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 6
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options ca_opts(const std::string& sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:63,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/unit_x509.cpp:65,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/unit_x509.cpp:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: Botan_Tests::req_opts1
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 2
    functionsReached:
    - Botan::X509_Cert_Options::not_before
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts1(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:85,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: Botan_Tests::req_opts2
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 1
    functionsReached:
    - Botan::X509_Cert_Options::add_ex_constraint
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts2(const std::string& sig_padding =
      "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:98,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:100,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:101,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: Botan_Tests::req_opts3
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 1
    functionsReached:
    - Botan::X509_Cert_Options::more_dns::push_back
    - Botan::X509_Cert_Options::more_org_units::push_back
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts3(const std::string& sig_padding =
      "")
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_x509.cpp:115,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 138
    functionName: Botan_Tests::make_a_private_key
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 6
    functionsReached:
    - Botan::create_private_key
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> make_a_private_key(const std::string&
      algo, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:145,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:146,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:147,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:201,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/unit_x509.cpp:202,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/unit_x509.cpp:202,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:203,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/unit_x509.cpp:203,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/unit_x509.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 208
    functionName: Botan_Tests::test_cert_status_strings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - Test::Result::test_str_eq
    - std::string::size
    - std::set::count
    - Botan::to_string
    - Test::Result::test_sz_eq
    - Test::Result::test_sz_gt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cert_status_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:216,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:221,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:221,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:223,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:223,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:225,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:230,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:230,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::add_new
      Src: /src/botan/src/tests/unit_x509.cpp:235,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:235,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:237,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:237,1
    - Dst: Botan::Extensions::replace
      Src: /src/botan/src/tests/unit_x509.cpp:239,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:239,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:244,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:244,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:245,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:245,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:246,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 249
    functionName: Botan_Tests::test_x509_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Cert_Extension::Basic_Constraints>
    - Botan::Extensions::get_extension_bits
    - Botan::Extensions::add
    - Botan::Extensions::extension_set
    - Test::Result::test_bin_eq
    - Botan::OID::from_string
    - Botan::Extensions::add_new
    - Botan::Extensions::remove
    - Botan::Extensions::critical_extension_set
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::Extensions::replace
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:256,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:258,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:258,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:260,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:261,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:261,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:263,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:264,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:265,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:267,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:268,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:269,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:272,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:273,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:273,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:404,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:416,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 424
    functionName: Botan_Tests::test_x509_dates
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Time::readable_string
    - Botan::X509_Time
    - Test::Result::test_str_eq
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::X509_Time::time_is_set
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_dates()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:430,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:445,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/unit_x509.cpp:446,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:447,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:447,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:453,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:454,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:454,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:456,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:460,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:460,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:464,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:465,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:472,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:473,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:473,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:475,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:479,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:479,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:480,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:480,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: std::string
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:484,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:485,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:485,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:487,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:491,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:491,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:492,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:492,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:495,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:497,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:497,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:499,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:504,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:505,1
    - Dst: auto*::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:507,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:508,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:508,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:509,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:510,1
    - Dst: Botan::X509_Certificate::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:512,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:514,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 521
    functionName: Botan_Tests::test_x509_encode_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - std::string
    - Test::Result::test_sz_eq
    - Botan::X509_Cert_Options::extensions::add
    - auto*::ocsp_responders
    - auto::size
    - std::vector::end
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::ocsp_responder
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - Test::Result::require
    - Test::Result::test_is_true
    - Botan_Tests::req_opts1
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::ca_issuers
    - Botan::X509_Certificate::ocsp_responders
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_encode_authority_info_access_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:535,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:537,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:538,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:541,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:545,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 549
    functionName: Botan_Tests::test_crl_dn_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::subject_dn
    - Botan::X509_CRL::issuer_dn
    - Test::Result::test_is_true
    - Botan::X509_CA::new_crl
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_crl_dn_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:556,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:558,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:558,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 562
    functionName: Botan_Tests::test_rdn_multielement_set_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::issuer_dn
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rdn_multielement_set_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:568,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_x509.cpp:570,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:571,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_x509.cpp:571,1
    - Dst: Botan::X509_Certificate::subject_public_key_algo
      Src: /src/botan/src/tests/unit_x509.cpp:572,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    - Dst: oid
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 578
    functionName: Botan_Tests::test_rsa_oaep
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_not_null
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - oid
    - Botan::X509_Certificate::subject_public_key_algo
    - Botan::OID::from_string
    - Botan::X509_Certificate::subject_public_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rsa_oaep()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:583,1
    - Dst: Botan::BER_Decoder::decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:587,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 595
    functionName: Botan_Tests::test_x509_decode_list
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::decode_list
    - subject_dn
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_decode_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:601,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:615,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:617,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:617,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:618,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:618,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:619,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:619,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:622,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 626
    functionName: Botan_Tests::test_x509_utf8
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_utf8()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:634,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Botan::X509_Certificate::is_CA_cert
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:638,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:638,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:641,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 644
    functionName: Botan_Tests::test_x509_any_key_extended_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::is_CA_cert
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::allowed_usage
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_any_key_extended_usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:650,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:660,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:662,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:662,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:663,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:663,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:666,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 670
    functionName: Botan_Tests::test_x509_bmpstring
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_bmpstring()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:676,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:678,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:682,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:682,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:683,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:683,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:685,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 689
    functionName: Botan_Tests::test_x509_teletex
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_teletex()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:695,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:697,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:697,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:701,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:703,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:705,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:705,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:706,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:710,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:715,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:717,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:719,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:719,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:724,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:726,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:730,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:730,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:734,1
    - Dst: Botan::X509_Certificate::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:736,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:737,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:737,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:738,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:739,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:740,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 744
    functionName: Botan_Tests::test_x509_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::X509_Certificate::ocsp_responder
    - size
    - Test::Result::tests_failed
    - Botan::X509_Certificate::ca_issuers
    - Test::Result::test_is_true
    - Botan::X509_Certificate::ocsp_responders
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_authority_info_access_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:752,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_x509.cpp:753,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 759
    functionName: Botan_Tests::test_parse_rsa_pss_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_parse_rsa_pss_cert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_x509.cpp:766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:767,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:770,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:771,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:775,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:777,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:777,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:780,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 785
    functionName: Botan_Tests::test_verify_gost2012_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::EC_Group::supports_named_group
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_verify_gost2012_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:796,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:798,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:799,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:803,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:805,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:806,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:807,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:811,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:812,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:813,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:814,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:819,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:822,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:823,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:825,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:825,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:826,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:831,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:832,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:835,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:836,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:840,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:841,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:842,1
    - Dst: Botan::PKCS10_Request::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:843,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:848,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:850,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:852,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:859,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:860,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:865,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:866,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:872,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:874,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:877,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:878,1
    - Dst: Botan::X509_CRL::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:878,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:881,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:884,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:885,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 888
    functionName: Botan_Tests::test_padding_config
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Botan::X509_CA::new_crl
    - Botan::X509_CA::ca_certificate
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::X509_Cert_Options::CA_key
    - Botan_Tests::Test::data_file
    - what
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    - Botan::X509_Certificate::signature_algorithm
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::PKCS10_Request::signature_algorithm
    - Botan::X509_CRL::signature_algorithm
    - auto::algo_name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_padding_config()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:899,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:902,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:903,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:907,1
    - Dst: Botan::AlternativeName::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:908,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:911,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:912,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/unit_x509.cpp:913,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:915,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/tests/unit_x509.cpp:915,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:917,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:923,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:926,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:926,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:930,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:930,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - ' key'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 934
    functionName: Botan_Tests::test_pkcs10_ext
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509::create_cert_req
    - Botan::AlternativeName::AlternativeName
    - auto::size
    - auto::at
    - Botan::AlternativeName::add_attribute
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::AlternativeName::add_dn
    - auto::subject_alt_name
    - Test::Result::test_sz_eq
    - Botan::X509_DN::add_attribute
    - Botan::X509_Cert_Options::more_dns::push_back
    - Test::Result::test_is_true
    - Botan::X509_Cert_Options::extensions::add
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_pkcs10_ext(const Botan::Private_Key& key,\n                             const
      std::string& sig_padding,\n                             const std::string& hash_fn,\n
      \                            Botan::RandomNumberGenerator& rng)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:944,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:944,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:947,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:947,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:952,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan::PKCS10_Request::challenge_password
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:960,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: Botan_Tests::req_opts2
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:966,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:981,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:981,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::X509_Certificate::has_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:995,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Botan::X509_Certificate::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1001,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1004,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1009,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1014,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1020,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1022,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:1027,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1028,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1028,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:1032,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1033,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1035,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1038,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:1042,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1045,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1046,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1048,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1049,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1051,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1051,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1053,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1054,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1054,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1058,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1059,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1059,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1064,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1065,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1067,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1069,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1072,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1072,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1075,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1077,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1082,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1090,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1092,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1094,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1095,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1095,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 53
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 1103
    functionName: Botan_Tests::test_x509_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::X509::create_cert_req
    - Botan::X509_Certificate::subject_alt_name
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_sz_eq
    - Botan::PKCS10_Request::challenge_password
    - at
    - Botan::X509_Certificate::x509_version
    - Botan::X509_CA::new_crl
    - Botan::Path_Validation_Result::result_string
    - get_first_attribute
    - Botan::Path_Validation_Result::status_string
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::make_a_private_key
    - Botan::x509_path_validate
    - Botan::X509_CA::update_crl
    - Botan::X509_CA::sign_request
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::X509_Certificate::has_ex_constraint
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::vector::clear
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Botan::X509_Certificate::issuer_dn
    - Botan_Tests::ca_opts
    - Botan_Tests::req_opts1
    - Test::Result::test_is_true
    - Botan_Tests::req_opts2
    - get_attribute
    - Test::Result::test_note
    - std::vector::push_back
    - auto::constraints
    - Test::Result::test_str_eq
    - Botan_Tests::req_opts3
    - Botan::X509_Certificate::constraints
    - Botan::CRL_Entry
    - size
    - Botan::X509_Certificate::subject_dn
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_x509_cert(const Botan::Private_Key& ca_key,\n                            const
      std::string& sig_algo,\n                            const std::string& sig_padding,\n
      \                           const std::string& hash_fn,\n                            Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1115,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1115,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1120,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1125,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1131,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1133,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1133,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1134,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1134,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1137,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1138,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1140,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1142,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1148,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1149,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1150,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1151,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1153,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1153,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1156,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1158,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1164,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1167,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1167,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1171,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1173,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1178,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1179,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1183
    functionName: Botan_Tests::test_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Key_Constraints
    - Test::Result::test_is_true
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::allowed_usage
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_usage(const Botan::Private_Key& ca_key,\n                        const
      std::string& sig_algo,\n                        const std::string& hash_fn,\n
      \                       Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1201,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1205,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1225
    functionName: Botan_Tests::test_self_issued
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Test::Result::test_is_true
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::make_a_private_key
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_self_issued(const Botan::Private_Key& ca_key,\n
      \                             const std::string& sig_algo,\n                              const
      std::string& sig_padding,\n                              const std::string&
      hash_fn,\n                              Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate::X509_Certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1230,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1232,1
    - Dst: Botan::X509_CRL::X509_CRL
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: Botan::X509_CRL::crl_number
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1240
    functionName: Botan_Tests::test_x509_uninit
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_CRL::crl_number
    - Botan::X509_Certificate::X509_Certificate
    - Botan::X509_CRL::X509_CRL
    - Test::Result::test_throws
    - Botan::X509_Certificate::x509_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_uninit()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1257,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1259,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1273,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1273,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1274,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1274,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1275,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1275,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1276,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1276,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1277,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1277,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1278,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1278,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1279,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1279,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1280,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1280,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1281,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1281,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1282,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1282,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1283,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1283,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1286,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1286,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1287,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1287,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1288,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1288,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1289,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1289,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1290,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1290,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1291,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1291,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1292,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1292,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1293,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1293,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1294,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1294,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1297,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1297,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1299,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1299,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1300,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1300,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1301,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1301,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1302,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1303,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1303,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1306,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1306,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1307,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1307,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1308,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1308,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1311,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1311,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1312,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1312,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1313,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1313,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1314,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1314,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1315,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1315,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1316,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1316,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1317,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1317,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1318,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1318,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1319,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1319,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1324,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1324,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1326,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1326,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1327,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1327,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1328,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1328,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1331,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1331,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1332,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1332,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1333,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1333,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - ' key'
    - ' pk_algo'
    argTypes:
    - Botan::Private_Key
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1339
    functionName: Botan_Tests::test_valid_constraints
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_false
    - Key_Constraints
    - Test::Result::test_is_true
    - auto::compatible_with
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_valid_constraints(const Botan::Private_Key& key,
      const std::string& pk_algo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1346
    functionName: Botan_Tests::String_Extension::String_Extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String_Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1348
    functionName: Botan_Tests::String_Extension::String_Extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String_Extension(const std::string& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1350
    functionName: Botan_Tests::String_Extension::value
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1354
    functionName: Botan_Tests::String_Extension::copy
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<String_Extension>
    linkageType: ''
    returnType: std::unique_ptr<Certificate_Extension>
    signature: std::unique_ptr<Certificate_Extension> copy() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1356
    functionName: Botan_Tests::String_Extension::oid_of
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_OID
    linkageType: ''
    returnType: Botan::OID
    signature: Botan::OID oid_of() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1358
    functionName: Botan_Tests::String_Extension::should_encode
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_encode() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1360
    functionName: Botan_Tests::String_Extension::oid_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string oid_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1362
    functionDepth: 1
    functionLinenumber: 1362
    functionLinenumberEnd: 1366
    functionName: Botan_Tests::String_Extension::encode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Botan::DER_Encoder
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> encode_inner() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1369,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/unit_x509.cpp:1370,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/unit_x509.cpp:1371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1372
    functionName: Botan_Tests::String_Extension::decode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::value
    - Botan::BER_Decoder
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: void
    signature: void decode_inner(const std::vector<uint8_t>& in) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1387,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1387,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1392,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1396,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1397,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1401,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1402,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/tests/unit_x509.cpp:1407,1
    - Dst: Botan::PKCS10_Request::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1409,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1413,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1414,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1415,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1416,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1423,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1425,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1429,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1430,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1431,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1432,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1437
    functionName: Botan_Tests::test_custom_dn_attr
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_is_true
    - get_first_attribute
    - Botan::EC_Group::from_OID
    - Botan_Tests::make_a_private_key
    - Botan::PKCS10_Request::subject_dn
    - auto::subject_dn
    - Botan::X509_CA::sign_request
    - Botan::ASN1_String::tagging
    - Test::Result::test_sz_eq
    - Botan::X509_DN::add_attribute
    - dn_info
    - Botan::PKCS10_Request::create
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_custom_dn_attr(const Botan::Private_Key& ca_key,\n
      \                                const std::string& sig_algo,\n                                 const
      std::string& sig_padding,\n                                 const std::string&
      hash_fn,\n                                 Botan::RandomNumberGenerator& rng)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1450,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1450,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:1463,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/unit_x509.cpp:1464,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_x509.cpp:1467,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1470,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:1478,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1482,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1485,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1487,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1488,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1491,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1492,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1493,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1495,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1499,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1500,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1501,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1502,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1507,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1509,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1510,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1511,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1512,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1517,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1527,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1528,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1530,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1535,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1536,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1537,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1538,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1539,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1540,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1544,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1546,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1547,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1548,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1549,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1555
    functionName: Botan_Tests::test_x509_extensions
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::AlternativeName::add_uri
    - Botan::X509::create_cert_req
    - Botan::AlternativeName::AlternativeName
    - Botan::Extensions::add
    - std::make_unique<String_Extension>
    - std::vector::end
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - auto*::crl_distribution_urls
    - point
    - Botan::X509_Certificate::v3_extensions
    - std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
    - std::vector::emplace_back
    - Botan::OID::from_string
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::ca_opts
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - auto*::distribution_points
    - Botan::X509_Cert_Options::set_padding_scheme
    - dynamic_cast<Botan::Cert_Extension::Key_Usage&>
    - auto::value
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_x509_extensions(const Botan::Private_Key& ca_key,\n
      \                                 const std::string& sig_algo,\n                                  const
      std::string& sig_padding,\n                                  const std::string&
      hash_fn,\n                                  Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1591,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1598,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:1598,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' key'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1606
    functionName: Botan_Tests::test_hashes
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::hex_encode
    - Botan::X509::create_cert_req
    - Botan::X509_Certificate::raw_issuer_dn_sha256
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::raw_subject_dn_sha256
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::CA_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_hashes(const Botan::Private_Key& key, const std::string&
      hash_fn, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1628,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:1630,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1634,1
    - Dst: auto*::entries
      Src: /src/botan/src/tests/unit_x509.cpp:1636,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:1638,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1640,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1641,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1642,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1643,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1644,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1645,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1647,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1647,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1648,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1648,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1650,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1650,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1651,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1652,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1652,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1654,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1655,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1655,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1656,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1658,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1658,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1663
    functionName: Botan_Tests::test_x509_tn_auth_list_extension_decode
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_not_null
    - Test::Result::end_timer
    - auto*::entries
    - Botan_Tests::Test::data_file
    - service_provider_code
    - Test::Result::test_str_eq
    - start::value
    - telephone_number
    - type
    - Test::Result::test_sz_eq
    - size
    - telephone_number_range
    - Test::Result::test_throws
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_tn_auth_list_extension_decode()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' sig_algo'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1677
    functionName: Botan_Tests::get_sig_paddings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> get_sig_paddings(const std::string& sig_algo,
      const std::string& hash)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::X509_Cert_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_x509.cpp:1696,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1729,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1735,1
    - Dst: test_hashes
      Src: /src/botan/src/tests/unit_x509.cpp:1735,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: test_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: get_sig_paddings
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: test_x509_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1752,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1752,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1758,1
    - Dst: test_pkcs10_ext
      Src: /src/botan/src/tests/unit_x509.cpp:1758,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1760,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1760,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1762,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1766,1
    - Dst: test_self_issued
      Src: /src/botan/src/tests/unit_x509.cpp:1766,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1768,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1768,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1770,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1774,1
    - Dst: test_x509_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1774,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1776,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1776,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1778,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1782,1
    - Dst: test_custom_dn_attr
      Src: /src/botan/src/tests/unit_x509.cpp:1782,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1784,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1784,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1786,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1797,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1800,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1800,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1808,1
    - Dst: test_padding_config
      Src: /src/botan/src/tests/unit_x509.cpp:1808,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1810,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1810,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1812,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1816,1
    - Dst: test_x509_utf8
      Src: /src/botan/src/tests/unit_x509.cpp:1816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1817,1
    - Dst: test_x509_any_key_extended_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1817,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1818,1
    - Dst: test_x509_bmpstring
      Src: /src/botan/src/tests/unit_x509.cpp:1818,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1819,1
    - Dst: test_x509_teletex
      Src: /src/botan/src/tests/unit_x509.cpp:1819,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1820,1
    - Dst: test_crl_dn_name
      Src: /src/botan/src/tests/unit_x509.cpp:1820,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1821,1
    - Dst: test_rdn_multielement_set_name
      Src: /src/botan/src/tests/unit_x509.cpp:1821,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1822,1
    - Dst: test_x509_decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:1822,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1823,1
    - Dst: test_rsa_oaep
      Src: /src/botan/src/tests/unit_x509.cpp:1823,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1824,1
    - Dst: test_x509_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1824,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1825,1
    - Dst: test_verify_gost2012_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1825,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1826,1
    - Dst: test_parse_rsa_pss_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1826,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1827,1
    - Dst: test_x509_tn_auth_list_extension_decode
      Src: /src/botan/src/tests/unit_x509.cpp:1827,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1830,1
    - Dst: test_x509_encode_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1830,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1831,1
    - Dst: test_x509_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1831,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1832,1
    - Dst: test_x509_dates
      Src: /src/botan/src/tests/unit_x509.cpp:1832,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1833,1
    - Dst: test_cert_status_strings
      Src: /src/botan/src/tests/unit_x509.cpp:1833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1834,1
    - Dst: test_x509_uninit
      Src: /src/botan/src/tests/unit_x509.cpp:1834,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1837
    functionName: Botan_Tests::X509_Cert_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - test_x509_bmpstring
    - test_x509_uninit
    - test_x509_dates
    - test_x509_any_key_extended_usage
    - test_parse_rsa_pss_cert
    - test_x509_utf8
    - test_x509_decode_list
    - test_x509_authority_info_access_extension
    - test_x509_tn_auth_list_extension_decode
    - get_sig_paddings
    - test_rdn_multielement_set_name
    - make_a_private_key
    - test_x509_cert
    - test_x509_extensions
    - test_padding_config
    - Botan_Tests::X509_Cert_Unit_Tests::rng
    - Test::Result::test_failure
    - test_verify_gost2012_cert
    - test_x509_teletex
    - test_x509_encode_authority_info_access_extension
    - test_custom_dn_attr
    - test_rsa_oaep
    - Test::Result::merge
    - what
    - test_cert_status_strings
    - test_self_issued
    - test_pkcs10_ext
    - test_valid_constraints
    - std::vector::push_back
    - test_usage
    - test_crl_dn_name
    - test_hashes
    - test_x509_extension
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/unit_x509.cpp:39,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:40,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/unit_x509.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 14
    functionsReached:
    - Botan::X509_Time
    - static_cast<uint32_t>
    - Botan::calendar_point
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:50,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ca_opts
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 12
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options ca_opts(const std::string& sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:63,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/unit_x509.cpp:65,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/unit_x509.cpp:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: Botan_Tests::req_opts1
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 4
    functionsReached:
    - Botan::X509_Cert_Options::not_before
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts1(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:85,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: Botan_Tests::req_opts2
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 2
    functionsReached:
    - Botan::X509_Cert_Options::add_ex_constraint
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts2(const std::string& sig_padding =
      "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:98,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:100,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:101,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: Botan_Tests::req_opts3
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 2
    functionsReached:
    - Botan::X509_Cert_Options::more_dns::push_back
    - Botan::X509_Cert_Options::more_org_units::push_back
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts3(const std::string& sig_padding =
      "")
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_x509.cpp:115,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 138
    functionName: Botan_Tests::make_a_private_key
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 12
    functionsReached:
    - Botan::create_private_key
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> make_a_private_key(const std::string&
      algo, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:145,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:146,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:147,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:201,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/unit_x509.cpp:202,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/unit_x509.cpp:202,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:203,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/unit_x509.cpp:203,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/unit_x509.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 208
    functionName: Botan_Tests::test_cert_status_strings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - Test::Result::test_str_eq
    - std::string::size
    - std::set::count
    - Botan::to_string
    - Test::Result::test_sz_eq
    - Test::Result::test_sz_gt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cert_status_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:216,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:221,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:221,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:223,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:223,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:225,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:230,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:230,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::add_new
      Src: /src/botan/src/tests/unit_x509.cpp:235,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:235,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:237,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:237,1
    - Dst: Botan::Extensions::replace
      Src: /src/botan/src/tests/unit_x509.cpp:239,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:239,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:244,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:244,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:245,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:245,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:246,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 249
    functionName: Botan_Tests::test_x509_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Cert_Extension::Basic_Constraints>
    - Botan::Extensions::get_extension_bits
    - Botan::Extensions::add
    - Botan::Extensions::extension_set
    - Test::Result::test_bin_eq
    - Botan::OID::from_string
    - Botan::Extensions::add_new
    - Botan::Extensions::remove
    - Botan::Extensions::critical_extension_set
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::Extensions::replace
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:256,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:258,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:258,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:260,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:261,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:261,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:263,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:264,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:265,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:267,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:268,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:269,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:272,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:273,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:273,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:404,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:416,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 424
    functionName: Botan_Tests::test_x509_dates
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Time::readable_string
    - Botan::X509_Time
    - Test::Result::test_str_eq
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::X509_Time::time_is_set
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_dates()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:430,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:445,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/unit_x509.cpp:446,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:447,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:447,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:453,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:454,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:454,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:456,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:460,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:460,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:464,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:465,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:472,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:473,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:473,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:475,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:479,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:479,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:480,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:480,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: std::string
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:484,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:485,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:485,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:487,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:491,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:491,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:492,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:492,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:495,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:497,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:497,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:499,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:504,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:505,1
    - Dst: auto*::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:507,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:508,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:508,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:509,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:510,1
    - Dst: Botan::X509_Certificate::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:512,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:514,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 521
    functionName: Botan_Tests::test_x509_encode_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - std::string
    - Test::Result::test_sz_eq
    - Botan::X509_Cert_Options::extensions::add
    - auto*::ocsp_responders
    - auto::size
    - std::vector::end
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::ocsp_responder
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - Test::Result::require
    - Test::Result::test_is_true
    - Botan_Tests::req_opts1
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::ca_issuers
    - Botan::X509_Certificate::ocsp_responders
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_encode_authority_info_access_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:535,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:537,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:538,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:541,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:545,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 549
    functionName: Botan_Tests::test_crl_dn_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::subject_dn
    - Botan::X509_CRL::issuer_dn
    - Test::Result::test_is_true
    - Botan::X509_CA::new_crl
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_crl_dn_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:556,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:558,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:558,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 562
    functionName: Botan_Tests::test_rdn_multielement_set_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::issuer_dn
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rdn_multielement_set_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:568,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_x509.cpp:570,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:571,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_x509.cpp:571,1
    - Dst: Botan::X509_Certificate::subject_public_key_algo
      Src: /src/botan/src/tests/unit_x509.cpp:572,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    - Dst: oid
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 578
    functionName: Botan_Tests::test_rsa_oaep
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_not_null
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - oid
    - Botan::X509_Certificate::subject_public_key_algo
    - Botan::OID::from_string
    - Botan::X509_Certificate::subject_public_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rsa_oaep()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:583,1
    - Dst: Botan::BER_Decoder::decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:587,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 595
    functionName: Botan_Tests::test_x509_decode_list
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::decode_list
    - subject_dn
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_decode_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:601,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:615,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:617,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:617,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:618,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:618,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:619,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:619,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:622,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 626
    functionName: Botan_Tests::test_x509_utf8
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_utf8()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:634,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Botan::X509_Certificate::is_CA_cert
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:638,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:638,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:641,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 644
    functionName: Botan_Tests::test_x509_any_key_extended_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::is_CA_cert
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::allowed_usage
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_any_key_extended_usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:650,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:660,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:662,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:662,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:663,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:663,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:666,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 670
    functionName: Botan_Tests::test_x509_bmpstring
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_bmpstring()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:676,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:678,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:682,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:682,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:683,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:683,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:685,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 689
    functionName: Botan_Tests::test_x509_teletex
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_teletex()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:695,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:697,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:697,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:701,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:703,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:705,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:705,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:706,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:710,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:715,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:717,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:719,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:719,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:724,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:726,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:730,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:730,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:734,1
    - Dst: Botan::X509_Certificate::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:736,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:737,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:737,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:738,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:739,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:740,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 744
    functionName: Botan_Tests::test_x509_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::X509_Certificate::ocsp_responder
    - size
    - Test::Result::tests_failed
    - Botan::X509_Certificate::ca_issuers
    - Test::Result::test_is_true
    - Botan::X509_Certificate::ocsp_responders
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_authority_info_access_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:752,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_x509.cpp:753,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 759
    functionName: Botan_Tests::test_parse_rsa_pss_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_parse_rsa_pss_cert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_x509.cpp:766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:767,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:770,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:771,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:775,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:777,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:777,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:780,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 785
    functionName: Botan_Tests::test_verify_gost2012_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::EC_Group::supports_named_group
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_verify_gost2012_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:796,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:798,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:799,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:803,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:805,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:806,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:807,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:811,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:812,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:813,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:814,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:819,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:822,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:823,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:825,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:825,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:826,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:831,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:832,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:835,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:836,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:840,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:841,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:842,1
    - Dst: Botan::PKCS10_Request::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:843,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:848,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:850,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:852,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:859,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:860,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:865,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:866,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:872,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:874,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:877,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:878,1
    - Dst: Botan::X509_CRL::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:878,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:881,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:884,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:885,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 888
    functionName: Botan_Tests::test_padding_config
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Botan::X509_CA::new_crl
    - Botan::X509_CA::ca_certificate
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::X509_Cert_Options::CA_key
    - Botan_Tests::Test::data_file
    - what
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    - Botan::X509_Certificate::signature_algorithm
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::PKCS10_Request::signature_algorithm
    - Botan::X509_CRL::signature_algorithm
    - auto::algo_name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_padding_config()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:899,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:902,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:903,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:907,1
    - Dst: Botan::AlternativeName::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:908,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:911,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:912,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/unit_x509.cpp:913,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:915,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/tests/unit_x509.cpp:915,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:917,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:923,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:926,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:926,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:930,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:930,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - ' key'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 934
    functionName: Botan_Tests::test_pkcs10_ext
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509::create_cert_req
    - Botan::AlternativeName::AlternativeName
    - auto::size
    - auto::at
    - Botan::AlternativeName::add_attribute
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::AlternativeName::add_dn
    - auto::subject_alt_name
    - Test::Result::test_sz_eq
    - Botan::X509_DN::add_attribute
    - Botan::X509_Cert_Options::more_dns::push_back
    - Test::Result::test_is_true
    - Botan::X509_Cert_Options::extensions::add
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_pkcs10_ext(const Botan::Private_Key& key,\n                             const
      std::string& sig_padding,\n                             const std::string& hash_fn,\n
      \                            Botan::RandomNumberGenerator& rng)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:944,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:944,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:947,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:947,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:952,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan::PKCS10_Request::challenge_password
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:960,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: Botan_Tests::req_opts2
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:966,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:981,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:981,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::X509_Certificate::has_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:995,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Botan::X509_Certificate::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1001,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1004,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1009,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1014,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1020,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1022,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:1027,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1028,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1028,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:1032,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1033,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1035,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1038,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:1042,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1045,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1046,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1048,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1049,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1051,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1051,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1053,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1054,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1054,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1058,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1059,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1059,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1064,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1065,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1067,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1069,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1072,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1072,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1075,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1077,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1082,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1090,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1092,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1094,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1095,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1095,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 53
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 1103
    functionName: Botan_Tests::test_x509_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::X509::create_cert_req
    - Botan::X509_Certificate::subject_alt_name
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_sz_eq
    - Botan::PKCS10_Request::challenge_password
    - at
    - Botan::X509_Certificate::x509_version
    - Botan::X509_CA::new_crl
    - Botan::Path_Validation_Result::result_string
    - get_first_attribute
    - Botan::Path_Validation_Result::status_string
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::make_a_private_key
    - Botan::x509_path_validate
    - Botan::X509_CA::update_crl
    - Botan::X509_CA::sign_request
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::X509_Certificate::has_ex_constraint
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::vector::clear
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Botan::X509_Certificate::issuer_dn
    - Botan_Tests::ca_opts
    - Botan_Tests::req_opts1
    - Test::Result::test_is_true
    - Botan_Tests::req_opts2
    - get_attribute
    - Test::Result::test_note
    - std::vector::push_back
    - auto::constraints
    - Test::Result::test_str_eq
    - Botan_Tests::req_opts3
    - Botan::X509_Certificate::constraints
    - Botan::CRL_Entry
    - size
    - Botan::X509_Certificate::subject_dn
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_x509_cert(const Botan::Private_Key& ca_key,\n                            const
      std::string& sig_algo,\n                            const std::string& sig_padding,\n
      \                           const std::string& hash_fn,\n                            Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1115,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1115,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1120,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1125,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1131,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1133,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1133,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1134,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1134,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1137,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1138,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1140,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1142,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1148,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1149,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1150,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1151,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1153,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1153,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1156,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1158,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1164,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1167,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1167,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1171,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1173,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1178,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1179,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1183
    functionName: Botan_Tests::test_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Key_Constraints
    - Test::Result::test_is_true
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::allowed_usage
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_usage(const Botan::Private_Key& ca_key,\n                        const
      std::string& sig_algo,\n                        const std::string& hash_fn,\n
      \                       Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1201,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1205,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1225
    functionName: Botan_Tests::test_self_issued
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Test::Result::test_is_true
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::make_a_private_key
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_self_issued(const Botan::Private_Key& ca_key,\n
      \                             const std::string& sig_algo,\n                              const
      std::string& sig_padding,\n                              const std::string&
      hash_fn,\n                              Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate::X509_Certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1230,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1232,1
    - Dst: Botan::X509_CRL::X509_CRL
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: Botan::X509_CRL::crl_number
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1240
    functionName: Botan_Tests::test_x509_uninit
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_CRL::crl_number
    - Botan::X509_Certificate::X509_Certificate
    - Botan::X509_CRL::X509_CRL
    - Test::Result::test_throws
    - Botan::X509_Certificate::x509_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_uninit()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1257,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1259,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1273,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1273,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1274,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1274,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1275,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1275,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1276,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1276,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1277,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1277,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1278,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1278,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1279,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1279,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1280,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1280,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1281,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1281,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1282,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1282,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1283,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1283,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1286,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1286,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1287,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1287,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1288,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1288,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1289,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1289,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1290,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1290,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1291,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1291,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1292,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1292,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1293,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1293,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1294,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1294,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1297,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1297,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1299,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1299,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1300,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1300,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1301,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1301,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1302,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1303,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1303,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1306,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1306,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1307,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1307,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1308,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1308,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1311,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1311,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1312,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1312,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1313,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1313,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1314,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1314,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1315,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1315,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1316,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1316,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1317,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1317,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1318,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1318,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1319,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1319,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1324,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1324,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1326,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1326,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1327,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1327,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1328,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1328,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1331,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1331,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1332,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1332,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1333,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1333,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - ' key'
    - ' pk_algo'
    argTypes:
    - Botan::Private_Key
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1339
    functionName: Botan_Tests::test_valid_constraints
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_false
    - Key_Constraints
    - Test::Result::test_is_true
    - auto::compatible_with
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_valid_constraints(const Botan::Private_Key& key,
      const std::string& pk_algo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1346
    functionName: Botan_Tests::String_Extension::String_Extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String_Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1348
    functionName: Botan_Tests::String_Extension::String_Extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String_Extension(const std::string& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1350
    functionName: Botan_Tests::String_Extension::value
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1354
    functionName: Botan_Tests::String_Extension::copy
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<String_Extension>
    linkageType: ''
    returnType: std::unique_ptr<Certificate_Extension>
    signature: std::unique_ptr<Certificate_Extension> copy() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1356
    functionName: Botan_Tests::String_Extension::oid_of
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_OID
    linkageType: ''
    returnType: Botan::OID
    signature: Botan::OID oid_of() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1358
    functionName: Botan_Tests::String_Extension::should_encode
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_encode() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1360
    functionName: Botan_Tests::String_Extension::oid_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string oid_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1362
    functionDepth: 1
    functionLinenumber: 1362
    functionLinenumberEnd: 1366
    functionName: Botan_Tests::String_Extension::encode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Botan::DER_Encoder
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> encode_inner() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1369,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/unit_x509.cpp:1370,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/unit_x509.cpp:1371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1372
    functionName: Botan_Tests::String_Extension::decode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::value
    - Botan::BER_Decoder
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: void
    signature: void decode_inner(const std::vector<uint8_t>& in) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1387,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1387,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1392,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1396,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1397,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1401,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1402,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/tests/unit_x509.cpp:1407,1
    - Dst: Botan::PKCS10_Request::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1409,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1413,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1414,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1415,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1416,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1423,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1425,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1429,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1430,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1431,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1432,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1437
    functionName: Botan_Tests::test_custom_dn_attr
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_is_true
    - get_first_attribute
    - Botan::EC_Group::from_OID
    - Botan_Tests::make_a_private_key
    - Botan::PKCS10_Request::subject_dn
    - auto::subject_dn
    - Botan::X509_CA::sign_request
    - Botan::ASN1_String::tagging
    - Test::Result::test_sz_eq
    - Botan::X509_DN::add_attribute
    - dn_info
    - Botan::PKCS10_Request::create
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_custom_dn_attr(const Botan::Private_Key& ca_key,\n
      \                                const std::string& sig_algo,\n                                 const
      std::string& sig_padding,\n                                 const std::string&
      hash_fn,\n                                 Botan::RandomNumberGenerator& rng)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1450,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1450,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:1463,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/unit_x509.cpp:1464,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_x509.cpp:1467,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1470,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:1478,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1482,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1485,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1487,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1488,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1491,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1492,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1493,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1495,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1499,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1500,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1501,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1502,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1507,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1509,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1510,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1511,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1512,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1517,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1527,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1528,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1530,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1535,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1536,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1537,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1538,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1539,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1540,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1544,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1546,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1547,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1548,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1549,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1555
    functionName: Botan_Tests::test_x509_extensions
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::AlternativeName::add_uri
    - Botan::X509::create_cert_req
    - Botan::AlternativeName::AlternativeName
    - Botan::Extensions::add
    - std::make_unique<String_Extension>
    - std::vector::end
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - auto*::crl_distribution_urls
    - point
    - Botan::X509_Certificate::v3_extensions
    - std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
    - std::vector::emplace_back
    - Botan::OID::from_string
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::ca_opts
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - auto*::distribution_points
    - Botan::X509_Cert_Options::set_padding_scheme
    - dynamic_cast<Botan::Cert_Extension::Key_Usage&>
    - auto::value
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_x509_extensions(const Botan::Private_Key& ca_key,\n
      \                                 const std::string& sig_algo,\n                                  const
      std::string& sig_padding,\n                                  const std::string&
      hash_fn,\n                                  Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1591,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1598,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:1598,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' key'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1606
    functionName: Botan_Tests::test_hashes
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::hex_encode
    - Botan::X509::create_cert_req
    - Botan::X509_Certificate::raw_issuer_dn_sha256
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::raw_subject_dn_sha256
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::CA_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_hashes(const Botan::Private_Key& key, const std::string&
      hash_fn, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1628,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:1630,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1634,1
    - Dst: auto*::entries
      Src: /src/botan/src/tests/unit_x509.cpp:1636,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:1638,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1640,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1641,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1642,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1643,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1644,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1645,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1647,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1647,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1648,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1648,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1650,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1650,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1651,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1652,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1652,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1654,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1655,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1655,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1656,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1658,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1658,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1663
    functionName: Botan_Tests::test_x509_tn_auth_list_extension_decode
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_not_null
    - Test::Result::end_timer
    - auto*::entries
    - Botan_Tests::Test::data_file
    - service_provider_code
    - Test::Result::test_str_eq
    - start::value
    - telephone_number
    - type
    - Test::Result::test_sz_eq
    - size
    - telephone_number_range
    - Test::Result::test_throws
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_tn_auth_list_extension_decode()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' sig_algo'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1677
    functionName: Botan_Tests::get_sig_paddings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> get_sig_paddings(const std::string& sig_algo,
      const std::string& hash)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::X509_Cert_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_x509.cpp:1696,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1729,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1735,1
    - Dst: test_hashes
      Src: /src/botan/src/tests/unit_x509.cpp:1735,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: test_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: get_sig_paddings
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: test_x509_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1752,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1752,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1758,1
    - Dst: test_pkcs10_ext
      Src: /src/botan/src/tests/unit_x509.cpp:1758,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1760,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1760,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1762,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1766,1
    - Dst: test_self_issued
      Src: /src/botan/src/tests/unit_x509.cpp:1766,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1768,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1768,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1770,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1774,1
    - Dst: test_x509_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1774,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1776,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1776,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1778,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1782,1
    - Dst: test_custom_dn_attr
      Src: /src/botan/src/tests/unit_x509.cpp:1782,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1784,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1784,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1786,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1797,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1800,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1800,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1808,1
    - Dst: test_padding_config
      Src: /src/botan/src/tests/unit_x509.cpp:1808,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1810,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1810,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1812,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1816,1
    - Dst: test_x509_utf8
      Src: /src/botan/src/tests/unit_x509.cpp:1816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1817,1
    - Dst: test_x509_any_key_extended_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1817,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1818,1
    - Dst: test_x509_bmpstring
      Src: /src/botan/src/tests/unit_x509.cpp:1818,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1819,1
    - Dst: test_x509_teletex
      Src: /src/botan/src/tests/unit_x509.cpp:1819,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1820,1
    - Dst: test_crl_dn_name
      Src: /src/botan/src/tests/unit_x509.cpp:1820,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1821,1
    - Dst: test_rdn_multielement_set_name
      Src: /src/botan/src/tests/unit_x509.cpp:1821,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1822,1
    - Dst: test_x509_decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:1822,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1823,1
    - Dst: test_rsa_oaep
      Src: /src/botan/src/tests/unit_x509.cpp:1823,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1824,1
    - Dst: test_x509_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1824,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1825,1
    - Dst: test_verify_gost2012_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1825,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1826,1
    - Dst: test_parse_rsa_pss_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1826,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1827,1
    - Dst: test_x509_tn_auth_list_extension_decode
      Src: /src/botan/src/tests/unit_x509.cpp:1827,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1830,1
    - Dst: test_x509_encode_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1830,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1831,1
    - Dst: test_x509_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1831,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1832,1
    - Dst: test_x509_dates
      Src: /src/botan/src/tests/unit_x509.cpp:1832,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1833,1
    - Dst: test_cert_status_strings
      Src: /src/botan/src/tests/unit_x509.cpp:1833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1834,1
    - Dst: test_x509_uninit
      Src: /src/botan/src/tests/unit_x509.cpp:1834,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1837
    functionName: Botan_Tests::X509_Cert_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - test_x509_bmpstring
    - test_x509_uninit
    - test_x509_dates
    - test_x509_any_key_extended_usage
    - test_parse_rsa_pss_cert
    - test_x509_utf8
    - test_x509_decode_list
    - test_x509_authority_info_access_extension
    - test_x509_tn_auth_list_extension_decode
    - get_sig_paddings
    - test_rdn_multielement_set_name
    - make_a_private_key
    - test_x509_cert
    - test_x509_extensions
    - test_padding_config
    - Botan_Tests::X509_Cert_Unit_Tests::rng
    - Test::Result::test_failure
    - test_verify_gost2012_cert
    - test_x509_teletex
    - test_x509_encode_authority_info_access_extension
    - test_custom_dn_attr
    - test_rsa_oaep
    - Test::Result::merge
    - what
    - test_cert_status_strings
    - test_self_issued
    - test_pkcs10_ext
    - test_valid_constraints
    - std::vector::push_back
    - test_usage
    - test_crl_dn_name
    - test_hashes
    - test_x509_extension
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/unit_x509.cpp:39,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:40,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/unit_x509.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 21
    functionsReached:
    - Botan::X509_Time
    - static_cast<uint32_t>
    - Botan::calendar_point
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:50,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ca_opts
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 18
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options ca_opts(const std::string& sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:63,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/unit_x509.cpp:65,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/unit_x509.cpp:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: Botan_Tests::req_opts1
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 6
    functionsReached:
    - Botan::X509_Cert_Options::not_before
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts1(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:85,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: Botan_Tests::req_opts2
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 3
    functionsReached:
    - Botan::X509_Cert_Options::add_ex_constraint
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts2(const std::string& sig_padding =
      "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:98,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:100,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:101,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: Botan_Tests::req_opts3
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 3
    functionsReached:
    - Botan::X509_Cert_Options::more_dns::push_back
    - Botan::X509_Cert_Options::more_org_units::push_back
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts3(const std::string& sig_padding =
      "")
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_x509.cpp:115,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 138
    functionName: Botan_Tests::make_a_private_key
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 18
    functionsReached:
    - Botan::create_private_key
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> make_a_private_key(const std::string&
      algo, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:145,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:146,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:147,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:201,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/unit_x509.cpp:202,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/unit_x509.cpp:202,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:203,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/unit_x509.cpp:203,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/unit_x509.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 208
    functionName: Botan_Tests::test_cert_status_strings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - Test::Result::test_str_eq
    - std::string::size
    - std::set::count
    - Botan::to_string
    - Test::Result::test_sz_eq
    - Test::Result::test_sz_gt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cert_status_strings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:216,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:221,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:221,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:223,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:223,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:225,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:230,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:230,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::add_new
      Src: /src/botan/src/tests/unit_x509.cpp:235,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:235,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:237,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:237,1
    - Dst: Botan::Extensions::replace
      Src: /src/botan/src/tests/unit_x509.cpp:239,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:239,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:244,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:244,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:245,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:245,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:246,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 249
    functionName: Botan_Tests::test_x509_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Cert_Extension::Basic_Constraints>
    - Botan::Extensions::get_extension_bits
    - Botan::Extensions::add
    - Botan::Extensions::extension_set
    - Test::Result::test_bin_eq
    - Botan::OID::from_string
    - Botan::Extensions::add_new
    - Botan::Extensions::remove
    - Botan::Extensions::critical_extension_set
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::Extensions::replace
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:256,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:258,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:258,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:260,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:261,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:261,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:263,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:264,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:265,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:267,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:268,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:269,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:272,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:273,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:273,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:404,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:416,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 424
    functionName: Botan_Tests::test_x509_dates
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Time::readable_string
    - Botan::X509_Time
    - Test::Result::test_str_eq
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::X509_Time::time_is_set
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_dates()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:430,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:445,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/unit_x509.cpp:446,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:447,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:447,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:453,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:454,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:454,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:456,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:458,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:460,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:460,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:464,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:465,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:472,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:473,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:473,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:475,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:479,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:479,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:480,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:480,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: std::string
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:484,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:485,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:485,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:487,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:491,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:491,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:492,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:492,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:495,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:497,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:497,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:499,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:501,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:504,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:505,1
    - Dst: auto*::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:507,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:508,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:508,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:509,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:510,1
    - Dst: Botan::X509_Certificate::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:512,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:514,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 521
    functionName: Botan_Tests::test_x509_encode_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - std::string
    - Test::Result::test_sz_eq
    - Botan::X509_Cert_Options::extensions::add
    - auto*::ocsp_responders
    - auto::size
    - std::vector::end
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::ocsp_responder
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - Test::Result::require
    - Test::Result::test_is_true
    - Botan_Tests::req_opts1
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - Botan::X509_Certificate::ca_issuers
    - Botan::X509_Certificate::ocsp_responders
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_encode_authority_info_access_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:535,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:537,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:538,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:541,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:545,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 549
    functionName: Botan_Tests::test_crl_dn_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::subject_dn
    - Botan::X509_CRL::issuer_dn
    - Test::Result::test_is_true
    - Botan::X509_CA::new_crl
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_crl_dn_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:556,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:558,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:558,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 562
    functionName: Botan_Tests::test_rdn_multielement_set_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::issuer_dn
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rdn_multielement_set_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:568,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_x509.cpp:570,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:571,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_x509.cpp:571,1
    - Dst: Botan::X509_Certificate::subject_public_key_algo
      Src: /src/botan/src/tests/unit_x509.cpp:572,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    - Dst: oid
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 578
    functionName: Botan_Tests::test_rsa_oaep
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_not_null
    - auto::get
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - oid
    - Botan::X509_Certificate::subject_public_key_algo
    - Botan::OID::from_string
    - Botan::X509_Certificate::subject_public_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rsa_oaep()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:583,1
    - Dst: Botan::BER_Decoder::decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:587,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 595
    functionName: Botan_Tests::test_x509_decode_list
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::decode_list
    - subject_dn
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_decode_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:601,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:615,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:617,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:617,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:618,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:618,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:619,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:619,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:622,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 626
    functionName: Botan_Tests::test_x509_utf8
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_utf8()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:634,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Botan::X509_Certificate::is_CA_cert
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:638,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:638,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:641,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 644
    functionName: Botan_Tests::test_x509_any_key_extended_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::is_CA_cert
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::allowed_usage
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_any_key_extended_usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:650,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:660,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:662,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:662,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:663,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:663,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:666,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 670
    functionName: Botan_Tests::test_x509_bmpstring
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_bmpstring()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:676,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:678,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:682,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:682,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:683,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:683,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:685,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 689
    functionName: Botan_Tests::test_x509_teletex
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - get_first_attribute
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_failure
    - Botan::X509_Certificate::issuer_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_teletex()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:695,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:697,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:697,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:701,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:703,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:705,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:705,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:706,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:710,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:715,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:717,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:719,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:719,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:724,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:726,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:730,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:730,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:734,1
    - Dst: Botan::X509_Certificate::ocsp_responders
      Src: /src/botan/src/tests/unit_x509.cpp:736,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:737,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:737,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:738,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:739,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:740,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 744
    functionName: Botan_Tests::test_x509_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - Botan_Tests::Test::data_file
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::X509_Certificate::ocsp_responder
    - size
    - Test::Result::tests_failed
    - Botan::X509_Certificate::ca_issuers
    - Test::Result::test_is_true
    - Botan::X509_Certificate::ocsp_responders
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_authority_info_access_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:752,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_x509.cpp:753,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 759
    functionName: Botan_Tests::test_parse_rsa_pss_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_parse_rsa_pss_cert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_x509.cpp:766,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:767,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:770,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:771,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:775,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:777,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:777,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:780,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 785
    functionName: Botan_Tests::test_verify_gost2012_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Botan::EC_Group::supports_named_group
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_verify_gost2012_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/unit_x509.cpp:796,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:798,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:799,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:803,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:805,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:806,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:807,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:811,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:812,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:813,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:814,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:819,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:822,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:823,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:825,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:825,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:826,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:831,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:832,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:835,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:836,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:840,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:841,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:842,1
    - Dst: Botan::PKCS10_Request::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:843,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:848,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:850,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:852,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:859,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:860,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:865,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:866,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:872,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:874,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:877,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:878,1
    - Dst: Botan::X509_CRL::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:878,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:881,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:884,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:885,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 888
    functionName: Botan_Tests::test_padding_config
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Botan::X509_CA::new_crl
    - Botan::X509_CA::ca_certificate
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::X509_Cert_Options::CA_key
    - Botan_Tests::Test::data_file
    - what
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    - Botan::X509_Certificate::signature_algorithm
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::PKCS10_Request::signature_algorithm
    - Botan::X509_CRL::signature_algorithm
    - auto::algo_name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_padding_config()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:899,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:902,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:903,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:907,1
    - Dst: Botan::AlternativeName::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:908,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:911,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:912,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/unit_x509.cpp:913,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:915,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/tests/unit_x509.cpp:915,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:917,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:923,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:926,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:926,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:930,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:930,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - ' key'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 934
    functionName: Botan_Tests::test_pkcs10_ext
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509::create_cert_req
    - Botan::AlternativeName::AlternativeName
    - auto::size
    - auto::at
    - Botan::AlternativeName::add_attribute
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::AlternativeName::add_dn
    - auto::subject_alt_name
    - Test::Result::test_sz_eq
    - Botan::X509_DN::add_attribute
    - Botan::X509_Cert_Options::more_dns::push_back
    - Test::Result::test_is_true
    - Botan::X509_Cert_Options::extensions::add
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_pkcs10_ext(const Botan::Private_Key& key,\n                             const
      std::string& sig_padding,\n                             const std::string& hash_fn,\n
      \                            Botan::RandomNumberGenerator& rng)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:944,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:944,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:947,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:947,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:952,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan::PKCS10_Request::challenge_password
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:960,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: Botan_Tests::req_opts2
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:966,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:978,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:981,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:981,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::X509_Certificate::has_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:995,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Botan::X509_Certificate::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1001,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1004,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1009,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1014,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1016,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1020,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1022,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:1027,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1028,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1028,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:1032,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1033,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1035,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:1036,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1038,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:1042,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1045,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1046,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1048,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1049,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1051,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1051,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1053,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1054,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1054,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1058,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1059,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1059,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1064,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1065,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1067,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1069,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1072,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1072,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1075,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1077,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1082,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1090,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1092,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1094,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1095,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1095,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 53
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 1103
    functionName: Botan_Tests::test_x509_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::X509::create_cert_req
    - Botan::X509_Certificate::subject_alt_name
    - Botan::X509_Certificate::serial_number
    - Test::Result::test_sz_eq
    - Botan::PKCS10_Request::challenge_password
    - at
    - Botan::X509_Certificate::x509_version
    - Botan::X509_CA::new_crl
    - Botan::Path_Validation_Result::result_string
    - get_first_attribute
    - Botan::Path_Validation_Result::status_string
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::make_a_private_key
    - Botan::x509_path_validate
    - Botan::X509_CA::update_crl
    - Botan::X509_CA::sign_request
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::X509_Certificate::has_ex_constraint
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::vector::clear
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Botan::X509_Certificate::issuer_dn
    - Botan_Tests::ca_opts
    - Botan_Tests::req_opts1
    - Test::Result::test_is_true
    - Botan_Tests::req_opts2
    - get_attribute
    - Test::Result::test_note
    - std::vector::push_back
    - auto::constraints
    - Test::Result::test_str_eq
    - Botan_Tests::req_opts3
    - Botan::X509_Certificate::constraints
    - Botan::CRL_Entry
    - size
    - Botan::X509_Certificate::subject_dn
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_x509_cert(const Botan::Private_Key& ca_key,\n                            const
      std::string& sig_algo,\n                            const std::string& sig_padding,\n
      \                           const std::string& hash_fn,\n                            Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1115,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1115,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1120,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1125,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1128,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1131,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1133,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1133,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1134,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1134,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1137,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1138,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1140,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1142,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1145,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1148,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1149,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1150,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1151,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1153,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1153,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1156,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1158,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1161,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1164,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1167,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1167,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1171,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1173,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1176,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1178,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1179,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1183
    functionName: Botan_Tests::test_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Key_Constraints
    - Test::Result::test_is_true
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::allowed_usage
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_usage(const Botan::Private_Key& ca_key,\n                        const
      std::string& sig_algo,\n                        const std::string& hash_fn,\n
      \                       Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1201,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1205,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1225
    functionName: Botan_Tests::test_self_issued
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - Test::Result::test_is_true
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::make_a_private_key
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_self_issued(const Botan::Private_Key& ca_key,\n
      \                             const std::string& sig_algo,\n                              const
      std::string& sig_padding,\n                              const std::string&
      hash_fn,\n                              Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Certificate::X509_Certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1230,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1232,1
    - Dst: Botan::X509_CRL::X509_CRL
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: Botan::X509_CRL::crl_number
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1240
    functionName: Botan_Tests::test_x509_uninit
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_CRL::crl_number
    - Botan::X509_Certificate::X509_Certificate
    - Botan::X509_CRL::X509_CRL
    - Test::Result::test_throws
    - Botan::X509_Certificate::x509_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_uninit()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1257,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1259,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1273,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1273,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1274,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1274,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1275,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1275,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1276,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1276,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1277,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1277,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1278,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1278,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1279,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1279,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1280,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1280,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1281,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1281,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1282,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1282,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1283,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1283,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1286,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1286,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1287,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1287,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1288,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1288,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1289,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1289,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1290,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1290,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1291,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1291,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1292,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1292,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1293,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1293,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1294,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1294,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1297,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1297,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1299,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1299,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1300,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1300,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1301,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1301,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1302,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1303,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1303,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1306,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1306,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1307,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1307,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1308,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1308,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1311,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1311,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1312,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1312,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1313,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1313,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1314,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1314,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1315,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1315,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1316,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1316,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1317,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1317,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1318,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1318,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1319,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1319,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1324,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1324,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1326,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1326,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1327,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1327,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1328,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1328,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1331,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1331,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1332,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1332,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_x509.cpp:1333,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1333,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - ' key'
    - ' pk_algo'
    argTypes:
    - Botan::Private_Key
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1339
    functionName: Botan_Tests::test_valid_constraints
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_false
    - Key_Constraints
    - Test::Result::test_is_true
    - auto::compatible_with
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_valid_constraints(const Botan::Private_Key& key,
      const std::string& pk_algo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1346
    functionName: Botan_Tests::String_Extension::String_Extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String_Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1348
    functionName: Botan_Tests::String_Extension::String_Extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String_Extension(const std::string& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1350
    functionName: Botan_Tests::String_Extension::value
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1354
    functionName: Botan_Tests::String_Extension::copy
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<String_Extension>
    linkageType: ''
    returnType: std::unique_ptr<Certificate_Extension>
    signature: std::unique_ptr<Certificate_Extension> copy() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1356
    functionName: Botan_Tests::String_Extension::oid_of
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_OID
    linkageType: ''
    returnType: Botan::OID
    signature: Botan::OID oid_of() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1358
    functionName: Botan_Tests::String_Extension::should_encode
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool should_encode() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1360
    functionName: Botan_Tests::String_Extension::oid_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string oid_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1362
    functionDepth: 1
    functionLinenumber: 1362
    functionLinenumberEnd: 1366
    functionName: Botan_Tests::String_Extension::encode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Botan::DER_Encoder
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> encode_inner() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1369,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/unit_x509.cpp:1370,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/unit_x509.cpp:1371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1372
    functionName: Botan_Tests::String_Extension::decode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::value
    - Botan::BER_Decoder
    - Botan::ASN1_String::ASN1_String
    linkageType: ''
    returnType: void
    signature: void decode_inner(const std::vector<uint8_t>& in) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1387,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1387,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1392,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1396,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1397,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1401,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1402,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/tests/unit_x509.cpp:1407,1
    - Dst: Botan::PKCS10_Request::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1409,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1413,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1414,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1415,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1416,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1418,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1423,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1425,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1429,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1430,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1431,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1432,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1437
    functionName: Botan_Tests::test_custom_dn_attr
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_is_true
    - get_first_attribute
    - Botan::EC_Group::from_OID
    - Botan_Tests::make_a_private_key
    - Botan::PKCS10_Request::subject_dn
    - auto::subject_dn
    - Botan::X509_CA::sign_request
    - Botan::ASN1_String::tagging
    - Test::Result::test_sz_eq
    - Botan::X509_DN::add_attribute
    - dn_info
    - Botan::PKCS10_Request::create
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_custom_dn_attr(const Botan::Private_Key& ca_key,\n
      \                                const std::string& sig_algo,\n                                 const
      std::string& sig_padding,\n                                 const std::string&
      hash_fn,\n                                 Botan::RandomNumberGenerator& rng)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1450,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1450,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:1463,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/unit_x509.cpp:1464,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_x509.cpp:1467,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1470,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:1478,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1482,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1485,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1487,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1488,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1491,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1492,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1493,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1495,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1499,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1500,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1501,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1502,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1507,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1509,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1510,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1511,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1512,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1513,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1517,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1521,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1527,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1528,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1530,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1535,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1536,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1537,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1538,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1539,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1540,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1544,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1546,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1547,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1548,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1549,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1550,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - ' ca_key'
    - ' sig_algo'
    - ' sig_padding'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - std::string
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1555
    functionName: Botan_Tests::test_x509_extensions
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::AlternativeName::add_uri
    - Botan::X509::create_cert_req
    - Botan::AlternativeName::AlternativeName
    - Botan::Extensions::add
    - std::make_unique<String_Extension>
    - std::vector::end
    - Botan_Tests::make_a_private_key
    - Botan::X509_CA::sign_request
    - auto*::crl_distribution_urls
    - point
    - Botan::X509_Certificate::v3_extensions
    - std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
    - std::vector::emplace_back
    - Botan::OID::from_string
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::ca_opts
    - Botan::TLS::Session_Manager::find
    - Test::Result::test_str_eq
    - auto*::distribution_points
    - Botan::X509_Cert_Options::set_padding_scheme
    - dynamic_cast<Botan::Cert_Extension::Key_Usage&>
    - auto::value
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_x509_extensions(const Botan::Private_Key& ca_key,\n
      \                                 const std::string& sig_algo,\n                                  const
      std::string& sig_padding,\n                                  const std::string&
      hash_fn,\n                                  Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1591,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1593,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1594,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1598,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:1598,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1600,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1602,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' key'
    - ' hash_fn'
    - ' rng'
    argTypes:
    - Botan::Private_Key
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1606
    functionName: Botan_Tests::test_hashes
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::hex_encode
    - Botan::X509::create_cert_req
    - Botan::X509_Certificate::raw_issuer_dn_sha256
    - Test::Result::test_str_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::X509_CA::sign_request
    - Botan::X509_Certificate::raw_subject_dn_sha256
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::CA_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_hashes(const Botan::Private_Key& key, const std::string&
      hash_fn, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1628,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:1630,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1634,1
    - Dst: auto*::entries
      Src: /src/botan/src/tests/unit_x509.cpp:1636,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:1638,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1640,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1641,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1642,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1643,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1644,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1645,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1647,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1647,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1648,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1648,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1650,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1650,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1651,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1652,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1652,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1654,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1655,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1655,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1656,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_x509.cpp:1658,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1658,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1663
    functionName: Botan_Tests::test_x509_tn_auth_list_extension_decode
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_not_null
    - Test::Result::end_timer
    - auto*::entries
    - Botan_Tests::Test::data_file
    - service_provider_code
    - Test::Result::test_str_eq
    - start::value
    - telephone_number
    - type
    - Test::Result::test_sz_eq
    - size
    - telephone_number_range
    - Test::Result::test_throws
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_tn_auth_list_extension_decode()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' sig_algo'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1677
    functionName: Botan_Tests::get_sig_paddings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> get_sig_paddings(const std::string& sig_algo,
      const std::string& hash)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::X509_Cert_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_x509.cpp:1696,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1729,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1735,1
    - Dst: test_hashes
      Src: /src/botan/src/tests/unit_x509.cpp:1735,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: test_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: get_sig_paddings
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: test_x509_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1752,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1752,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1758,1
    - Dst: test_pkcs10_ext
      Src: /src/botan/src/tests/unit_x509.cpp:1758,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1760,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1760,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1762,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1766,1
    - Dst: test_self_issued
      Src: /src/botan/src/tests/unit_x509.cpp:1766,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1768,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1768,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1770,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1774,1
    - Dst: test_x509_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1774,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1776,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1776,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1778,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1782,1
    - Dst: test_custom_dn_attr
      Src: /src/botan/src/tests/unit_x509.cpp:1782,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1784,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1784,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1786,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1797,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1800,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1800,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1808,1
    - Dst: test_padding_config
      Src: /src/botan/src/tests/unit_x509.cpp:1808,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1810,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1810,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1812,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1816,1
    - Dst: test_x509_utf8
      Src: /src/botan/src/tests/unit_x509.cpp:1816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1817,1
    - Dst: test_x509_any_key_extended_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1817,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1818,1
    - Dst: test_x509_bmpstring
      Src: /src/botan/src/tests/unit_x509.cpp:1818,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1819,1
    - Dst: test_x509_teletex
      Src: /src/botan/src/tests/unit_x509.cpp:1819,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1820,1
    - Dst: test_crl_dn_name
      Src: /src/botan/src/tests/unit_x509.cpp:1820,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1821,1
    - Dst: test_rdn_multielement_set_name
      Src: /src/botan/src/tests/unit_x509.cpp:1821,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1822,1
    - Dst: test_x509_decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:1822,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1823,1
    - Dst: test_rsa_oaep
      Src: /src/botan/src/tests/unit_x509.cpp:1823,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1824,1
    - Dst: test_x509_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1824,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1825,1
    - Dst: test_verify_gost2012_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1825,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1826,1
    - Dst: test_parse_rsa_pss_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1826,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1827,1
    - Dst: test_x509_tn_auth_list_extension_decode
      Src: /src/botan/src/tests/unit_x509.cpp:1827,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1830,1
    - Dst: test_x509_encode_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1830,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1831,1
    - Dst: test_x509_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1831,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1832,1
    - Dst: test_x509_dates
      Src: /src/botan/src/tests/unit_x509.cpp:1832,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1833,1
    - Dst: test_cert_status_strings
      Src: /src/botan/src/tests/unit_x509.cpp:1833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1834,1
    - Dst: test_x509_uninit
      Src: /src/botan/src/tests/unit_x509.cpp:1834,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1837
    functionName: Botan_Tests::X509_Cert_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - test_x509_bmpstring
    - test_x509_uninit
    - test_x509_dates
    - test_x509_any_key_extended_usage
    - test_parse_rsa_pss_cert
    - test_x509_utf8
    - test_x509_decode_list
    - test_x509_authority_info_access_extension
    - test_x509_tn_auth_list_extension_decode
    - get_sig_paddings
    - test_rdn_multielement_set_name
    - make_a_private_key
    - test_x509_cert
    - test_x509_extensions
    - test_padding_config
    - Botan_Tests::X509_Cert_Unit_Tests::rng
    - Test::Result::test_failure
    - test_verify_gost2012_cert
    - test_x509_teletex
    - test_x509_encode_authority_info_access_extension
    - test_custom_dn_attr
    - test_rsa_oaep
    - Test::Result::merge
    - what
    - test_cert_status_strings
    - test_self_issued
    - test_pkcs10_ext
    - test_valid_constraints
    - std::vector::push_back
    - test_usage
    - test_crl_dn_name
    - test_hashes
    - test_x509_extension
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:22,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:26,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:28,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:32,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:36,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:38,1
    - Dst: Botan::Jitter_RNG::clear
      Src: /src/botan/src/tests/test_jitter_rng.cpp:39,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:43,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_jitter_rng.cpp:45,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_jitter_rng.cpp:46,1
    - Dst: Botan::Entropy_Source::create
      Src: /src/botan/src/tests/test_jitter_rng.cpp:46,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 52
    functionName: Botan_Tests::test_jitter_rng
    functionSourceFile: /src/botan/src/tests/test_jitter_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::Entropy_Source::create
    - Botan_Tests::CHECK
    - Botan::Entropy_Sources::add_source
    - Botan::Jitter_RNG::Jitter_RNG
    - Botan::AutoSeeded_RNG::random_vec
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::Jitter_RNG::random_vec
    - Botan::Jitter_RNG::clear
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_jitter_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:22,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:26,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:28,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:32,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:36,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:38,1
    - Dst: Botan::Jitter_RNG::clear
      Src: /src/botan/src/tests/test_jitter_rng.cpp:39,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:43,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_jitter_rng.cpp:45,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_jitter_rng.cpp:46,1
    - Dst: Botan::Entropy_Source::create
      Src: /src/botan/src/tests/test_jitter_rng.cpp:46,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 52
    functionName: Botan_Tests::test_jitter_rng
    functionSourceFile: /src/botan/src/tests/test_jitter_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::Entropy_Source::create
    - Botan_Tests::CHECK
    - Botan::Entropy_Sources::add_source
    - Botan::Jitter_RNG::Jitter_RNG
    - Botan::AutoSeeded_RNG::random_vec
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::Jitter_RNG::random_vec
    - Botan::Jitter_RNG::clear
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_jitter_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:22,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:26,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:28,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:32,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:36,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:38,1
    - Dst: Botan::Jitter_RNG::clear
      Src: /src/botan/src/tests/test_jitter_rng.cpp:39,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:43,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_jitter_rng.cpp:45,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_jitter_rng.cpp:46,1
    - Dst: Botan::Entropy_Source::create
      Src: /src/botan/src/tests/test_jitter_rng.cpp:46,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 52
    functionName: Botan_Tests::test_jitter_rng
    functionSourceFile: /src/botan/src/tests/test_jitter_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::Entropy_Source::create
    - Botan_Tests::CHECK
    - Botan::Entropy_Sources::add_source
    - Botan::Jitter_RNG::Jitter_RNG
    - Botan::AutoSeeded_RNG::random_vec
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::Jitter_RNG::random_vec
    - Botan::Jitter_RNG::clear
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_jitter_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:22,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:26,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:28,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:32,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:36,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:38,1
    - Dst: Botan::Jitter_RNG::clear
      Src: /src/botan/src/tests/test_jitter_rng.cpp:39,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:43,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_jitter_rng.cpp:45,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_jitter_rng.cpp:46,1
    - Dst: Botan::Entropy_Source::create
      Src: /src/botan/src/tests/test_jitter_rng.cpp:46,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 52
    functionName: Botan_Tests::test_jitter_rng
    functionSourceFile: /src/botan/src/tests/test_jitter_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::Entropy_Source::create
    - Botan_Tests::CHECK
    - Botan::Entropy_Sources::add_source
    - Botan::Jitter_RNG::Jitter_RNG
    - Botan::AutoSeeded_RNG::random_vec
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::Jitter_RNG::random_vec
    - Botan::Jitter_RNG::clear
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_jitter_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: Botan_Tests::Ed448_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_Tests::Ed448_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Ed448_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan_Tests::Ed448_Signature_Tests::Ed448_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Ed448_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:47,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:48,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ed448.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ed448.cpp:50,1
    - Dst: std::make_unique<Botan::Ed448_PrivateKey>
      Src: /src/botan/src/tests/test_ed448.cpp:52,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_ed448.cpp:54,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed448.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: Botan_Tests::Ed448_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PrivateKey>
    - auto::public_key_bits
    - std::vector::end
    - std::vector::begin
    - Test_Error
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ed448.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Ed448_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_sz
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: Botan_Tests::Ed448_Verification_Tests::Ed448_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:72,1
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan_Tests::Ed448_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ed448.cpp:81,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_ed448.cpp:81,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sp
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: Botan_Tests::Ed448_General_Test::to_array
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: std::array<uint8_t, S>
    signature: std::array<uint8_t, S> to_array(std::span<const uint8_t> sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: Botan_Tests::Ed448_General_Test::Ed448_General_Test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_General_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Ed448_General_Test::to_array
      Src: /src/botan/src/tests/test_ed448.cpp:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:93,1
    - Dst: Botan_Tests::Ed448_General_Test::to_array
      Src: /src/botan/src/tests/test_ed448.cpp:94,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:94,1
    - Dst: Botan::Ed448Point::decode
      Src: /src/botan/src/tests/test_ed448.cpp:97,1
    - Dst: auto::encode
      Src: /src/botan/src/tests/test_ed448.cpp:98,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:100,1
    - Dst: Botan::create_pk_from_sk
      Src: /src/botan/src/tests/test_ed448.cpp:103,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Ed448_General_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - auto::encode
    - Test::Result::test_bin_eq
    - Botan_Tests::Ed448_General_Test::to_array
    - Botan::create_pk_from_sk
    - get_req_bin
    - Botan::Ed448Point::decode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ed448.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan_Tests::Ed448_General_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_sz
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ed448.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ed448.cpp:119,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::reverse
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    - Dst: std::array::begin
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    - Dst: std::array::end
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::reverse
    - std::span<const uint8_t>::rend
    - std::vector::data
    - auto::serialize_to
    - std::array::end
    - std::span<const uint8_t>::rbegin
    - std::array::begin
    - std::vector::size
    linkageType: ''
    returnType: std::array<uint8_t, 56>
    signature: std::array<uint8_t, 56> reduce_mod_L_ref(std::span<const uint8_t> t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
      Src: /src/botan/src/tests/test_ed448.cpp:138,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 145
    functionName: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    - Botan::Scalar448
    - std::array::size
    - std::memset
    - Test::Result::test_bin_eq
    - Test::Result::test_no_throw
    - std::array::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reduce_mod_L()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
      Src: /src/botan/src/tests/test_ed448.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan_Tests::Ed448_Utils_Test::run
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: Botan_Tests::Ed448_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_Tests::Ed448_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Ed448_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan_Tests::Ed448_Signature_Tests::Ed448_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Ed448_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:47,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:48,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ed448.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ed448.cpp:50,1
    - Dst: std::make_unique<Botan::Ed448_PrivateKey>
      Src: /src/botan/src/tests/test_ed448.cpp:52,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_ed448.cpp:54,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed448.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: Botan_Tests::Ed448_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PrivateKey>
    - auto::public_key_bits
    - std::vector::end
    - std::vector::begin
    - Test_Error
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ed448.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Ed448_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_sz
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: Botan_Tests::Ed448_Verification_Tests::Ed448_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:72,1
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan_Tests::Ed448_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ed448.cpp:81,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_ed448.cpp:81,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sp
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: Botan_Tests::Ed448_General_Test::to_array
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 1
    functionsReached:
    - Botan::copy_mem
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: std::array<uint8_t, S>
    signature: std::array<uint8_t, S> to_array(std::span<const uint8_t> sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: Botan_Tests::Ed448_General_Test::Ed448_General_Test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_General_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Ed448_General_Test::to_array
      Src: /src/botan/src/tests/test_ed448.cpp:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:93,1
    - Dst: Botan_Tests::Ed448_General_Test::to_array
      Src: /src/botan/src/tests/test_ed448.cpp:94,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:94,1
    - Dst: Botan::Ed448Point::decode
      Src: /src/botan/src/tests/test_ed448.cpp:97,1
    - Dst: auto::encode
      Src: /src/botan/src/tests/test_ed448.cpp:98,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:100,1
    - Dst: Botan::create_pk_from_sk
      Src: /src/botan/src/tests/test_ed448.cpp:103,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Ed448_General_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - auto::encode
    - Test::Result::test_bin_eq
    - Botan_Tests::Ed448_General_Test::to_array
    - Botan::create_pk_from_sk
    - get_req_bin
    - Botan::Ed448Point::decode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ed448.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan_Tests::Ed448_General_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_sz
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ed448.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ed448.cpp:119,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::reverse
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    - Dst: std::array::begin
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    - Dst: std::array::end
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 1
    functionsReached:
    - std::reverse
    - std::span<const uint8_t>::rend
    - std::vector::data
    - auto::serialize_to
    - std::array::end
    - std::span<const uint8_t>::rbegin
    - std::array::begin
    - std::vector::size
    linkageType: ''
    returnType: std::array<uint8_t, 56>
    signature: std::array<uint8_t, 56> reduce_mod_L_ref(std::span<const uint8_t> t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
      Src: /src/botan/src/tests/test_ed448.cpp:138,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 145
    functionName: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    - Botan::Scalar448
    - std::array::size
    - std::memset
    - Test::Result::test_bin_eq
    - Test::Result::test_no_throw
    - std::array::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reduce_mod_L()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
      Src: /src/botan/src/tests/test_ed448.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan_Tests::Ed448_Utils_Test::run
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: Botan_Tests::Ed448_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_Tests::Ed448_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Ed448_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan_Tests::Ed448_Signature_Tests::Ed448_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Ed448_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:47,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:48,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ed448.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ed448.cpp:50,1
    - Dst: std::make_unique<Botan::Ed448_PrivateKey>
      Src: /src/botan/src/tests/test_ed448.cpp:52,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_ed448.cpp:54,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed448.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: Botan_Tests::Ed448_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PrivateKey>
    - auto::public_key_bits
    - std::vector::end
    - std::vector::begin
    - Test_Error
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ed448.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Ed448_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_sz
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: Botan_Tests::Ed448_Verification_Tests::Ed448_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:72,1
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan_Tests::Ed448_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ed448.cpp:81,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_ed448.cpp:81,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sp
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: Botan_Tests::Ed448_General_Test::to_array
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 2
    functionsReached:
    - Botan::copy_mem
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: std::array<uint8_t, S>
    signature: std::array<uint8_t, S> to_array(std::span<const uint8_t> sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: Botan_Tests::Ed448_General_Test::Ed448_General_Test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_General_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Ed448_General_Test::to_array
      Src: /src/botan/src/tests/test_ed448.cpp:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:93,1
    - Dst: Botan_Tests::Ed448_General_Test::to_array
      Src: /src/botan/src/tests/test_ed448.cpp:94,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:94,1
    - Dst: Botan::Ed448Point::decode
      Src: /src/botan/src/tests/test_ed448.cpp:97,1
    - Dst: auto::encode
      Src: /src/botan/src/tests/test_ed448.cpp:98,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:100,1
    - Dst: Botan::create_pk_from_sk
      Src: /src/botan/src/tests/test_ed448.cpp:103,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Ed448_General_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - auto::encode
    - Test::Result::test_bin_eq
    - Botan_Tests::Ed448_General_Test::to_array
    - Botan::create_pk_from_sk
    - get_req_bin
    - Botan::Ed448Point::decode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ed448.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan_Tests::Ed448_General_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_sz
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ed448.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ed448.cpp:119,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::reverse
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    - Dst: std::array::begin
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    - Dst: std::array::end
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 2
    functionsReached:
    - std::reverse
    - std::span<const uint8_t>::rend
    - std::vector::data
    - auto::serialize_to
    - std::array::end
    - std::span<const uint8_t>::rbegin
    - std::array::begin
    - std::vector::size
    linkageType: ''
    returnType: std::array<uint8_t, 56>
    signature: std::array<uint8_t, 56> reduce_mod_L_ref(std::span<const uint8_t> t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
      Src: /src/botan/src/tests/test_ed448.cpp:138,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 145
    functionName: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    - Botan::Scalar448
    - std::array::size
    - std::memset
    - Test::Result::test_bin_eq
    - Test::Result::test_no_throw
    - std::array::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reduce_mod_L()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
      Src: /src/botan/src/tests/test_ed448.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan_Tests::Ed448_Utils_Test::run
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: Botan_Tests::Ed448_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_Tests::Ed448_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Ed448_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan_Tests::Ed448_Signature_Tests::Ed448_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Ed448_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:47,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:48,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ed448.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ed448.cpp:50,1
    - Dst: std::make_unique<Botan::Ed448_PrivateKey>
      Src: /src/botan/src/tests/test_ed448.cpp:52,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_ed448.cpp:54,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed448.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: Botan_Tests::Ed448_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PrivateKey>
    - auto::public_key_bits
    - std::vector::end
    - std::vector::begin
    - Test_Error
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ed448.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Ed448_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_sz
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: Botan_Tests::Ed448_Verification_Tests::Ed448_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:72,1
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan_Tests::Ed448_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Ed448_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ed448.cpp:81,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_ed448.cpp:81,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_ed448.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sp
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: Botan_Tests::Ed448_General_Test::to_array
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 3
    functionsReached:
    - Botan::copy_mem
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: std::array<uint8_t, S>
    signature: std::array<uint8_t, S> to_array(std::span<const uint8_t> sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: Botan_Tests::Ed448_General_Test::Ed448_General_Test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_General_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Ed448_General_Test::to_array
      Src: /src/botan/src/tests/test_ed448.cpp:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:93,1
    - Dst: Botan_Tests::Ed448_General_Test::to_array
      Src: /src/botan/src/tests/test_ed448.cpp:94,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:94,1
    - Dst: Botan::Ed448Point::decode
      Src: /src/botan/src/tests/test_ed448.cpp:97,1
    - Dst: auto::encode
      Src: /src/botan/src/tests/test_ed448.cpp:98,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:100,1
    - Dst: Botan::create_pk_from_sk
      Src: /src/botan/src/tests/test_ed448.cpp:103,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Ed448_General_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - auto::encode
    - Test::Result::test_bin_eq
    - Botan_Tests::Ed448_General_Test::to_array
    - Botan::create_pk_from_sk
    - get_req_bin
    - Botan::Ed448Point::decode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ed448.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan_Tests::Ed448_General_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_sz
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ed448.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ed448.cpp:119,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::reverse
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    - Dst: std::array::begin
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    - Dst: std::array::end
      Src: /src/botan/src/tests/test_ed448.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 3
    functionsReached:
    - std::reverse
    - std::span<const uint8_t>::rend
    - std::vector::data
    - auto::serialize_to
    - std::array::end
    - std::span<const uint8_t>::rbegin
    - std::array::begin
    - std::vector::size
    linkageType: ''
    returnType: std::array<uint8_t, 56>
    signature: std::array<uint8_t, 56> reduce_mod_L_ref(std::span<const uint8_t> t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ed448.cpp:132,1
    - Dst: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
      Src: /src/botan/src/tests/test_ed448.cpp:138,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ed448.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 145
    functionName: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    - Botan::Scalar448
    - std::array::size
    - std::memset
    - Test::Result::test_bin_eq
    - Test::Result::test_no_throw
    - std::array::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reduce_mod_L()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
      Src: /src/botan/src/tests/test_ed448.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan_Tests::Ed448_Utils_Test::run
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/tests/test_ecies.cpp:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' format'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: Botan_Tests::get_compression_type
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: Botan::EC_Point_Format
    signature: Botan::EC_Point_Format get_compression_type(const std::string& format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cofactor_mode
    - old_cofactor_mode
    - check_mode
    - single_hash_mode
    argTypes:
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ecies_flags
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Flags
    signature: Flags ecies_flags(bool cofactor_mode, bool old_cofactor_mode, bool
      check_mode, bool single_hash_mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_ecies.cpp:53,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: domain
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:56,1
    - Dst: Botan::ECIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:57,1
    - Dst: Botan::ECIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:58,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:60,1
    - Dst: Botan::ECIES_Encryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:61,1
    - Dst: Botan::ECIES_Decryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:62,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:65,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:66,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:67,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:69,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:70,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:73,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:75,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ecies.cpp:78,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 9
    argNames:
    - ' result'
    - ' private_key'
    - ' other_private_key'
    - ' ecies_params'
    - ' iv'
    - ' label'
    - ' plaintext'
    - ' ciphertext'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::ECDH_PrivateKey
    - Botan::ECDH_PrivateKey
    - Botan::ECIES_System_Params
    - Botan::InitializationVector
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 80
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    - Botan::ECIES_Encryptor::set_label
    - Botan::ECIES_Encryptor::set_other_key
    - Botan::ECIES_Decryptor::set_label
    - Botan::ECIES_Decryptor::decrypt
    - bits_of
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::ECIES_Encryptor::set_initialization_vector
    - test_throws
    - test_bin_eq
    - what
    - domain
    - Botan::ECIES_Encryptor::encrypt
    - test_note
    - Botan::ECIES_Decryptor::set_initialization_vector
    - empty
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void check_encrypt_decrypt(Test::Result& result,\n                           const
      Botan::ECDH_PrivateKey& private_key,\n                           const Botan::ECDH_PrivateKey&
      other_private_key,\n                           const Botan::ECIES_System_Params&
      ecies_params,\n                           const Botan::InitializationVector&
      iv,\n                           const std::string& label,\n                           const
      std::vector<uint8_t>& plaintext,\n                           const std::vector<uint8_t>&
      ciphertext,\n                           Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:89,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:93,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:93,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' result'
    - ' private_key'
    - ' other_private_key'
    - ' ecies_params'
    - iv_length
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::ECDH_PrivateKey
    - Botan::ECDH_PrivateKey
    - Botan::ECIES_System_Params
    - size_t
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 1
    functionsReached:
    - std::vector<uint8_t>
    - Botan::InitializationVector
    - Botan_Tests::check_encrypt_decrypt
    linkageType: ''
    returnType: void
    signature: "void check_encrypt_decrypt(Test::Result& result,\n                                            const
      Botan::ECDH_PrivateKey& private_key,\n                                            const
      Botan::ECDH_PrivateKey& other_private_key,\n                                            const
      Botan::ECIES_System_Params& ecies_params,\n                                            size_t
      iv_length,\n                                            Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_Tests::ECIES_ISO_Tests::ECIES_ISO_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECIES_ISO_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan_Tests::ECIES_ISO_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ecies.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: Botan_Tests::ECIES_ISO_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:116,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:116,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:117,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:118,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:119,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:120,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:121,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:122,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:123,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:124,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:125,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:126,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:127,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:128,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:129,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:134,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecies.cpp:135,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:139,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecies.cpp:140,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:141,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:146,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: Botan::ECIES_KA_Operation::derive_secret
      Src: /src/botan/src/tests/test_ecies.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:149,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:149,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:162,1
    - Dst: ECIES_System_Params::ECIES_System_Params
      Src: /src/botan/src/tests/test_ecies.cpp:166,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:166,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:175,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:179,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:187,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 196
    functionName: Botan_Tests::ECIES_ISO_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    - Test::Result::test_throws
    - Botan_Tests::ECIES_ISO_Tests::rng
    - Botan::SymmetricKey::bits_of
    - Botan::EC_AffinePoint::from_bigint_xy
    - check_encrypt_decrypt
    - Botan::ECIES_KA_Operation::derive_secret
    - ecies_flags
    - Test::Result::test_bin_eq
    - get_req_bn
    - get_compression_type
    - Botan::ECDH_PrivateKey::public_value
    - ECIES_System_Params::ECIES_System_Params
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:212,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:213,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:214,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:215,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:217,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:218,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:219,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_ecies.cpp:220,1
    - Dst: std::make_unique<Botan::EC_Group>
      Src: /src/botan/src/tests/test_ecies.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: Botan_Tests::ECIES_Tests::ECIES_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::EC_Group>
    - Botan::BigInt::from_string
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    - Botan::BigInt::from_u64
    linkageType: ''
    returnType: void
    signature: void ECIES_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:226,1
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:230,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecies.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 234
    functionName: Botan_Tests::ECIES_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:239,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:240,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:241,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:242,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:244,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:246,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:247,1
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:248,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:248,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:249,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:250,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:251,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:252,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:253,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:254,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:255,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:257,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:263,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:267,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:268,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:271,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:272,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 276
    functionName: Botan_Tests::ECIES_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    - check_encrypt_decrypt
    - ecies_flags
    - get_opt_bin
    - Botan::EC_Group::from_name
    - Botan_Tests::ECIES_Tests::rng
    - Botan::InitializationVector
    - get_req_bn
    - get_compression_type
    - get_req_sz
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:289,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:291,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:292,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:300,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:311,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:312,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 315
    functionName: Botan_Tests::test_other_key_not_set
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_other_key_not_set()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:320,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:322,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:323,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:331,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:342,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 346
    functionName: Botan_Tests::test_kdf_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_kdf_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:351,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:353,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:354,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:362,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:373,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 377
    functionName: Botan_Tests::test_mac_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_mac_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:382,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:384,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:385,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:393,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:404,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 408
    functionName: Botan_Tests::test_cipher_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cipher_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:413,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:415,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:430,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:435,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:438,1
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 451
    functionName: Botan_Tests::test_system_params_short_ctor
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - Botan::hex_decode
    - Botan::EC_Group::from_name
    - Botan_Tests::check_encrypt_decrypt
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_system_params_short_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:456,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:467,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:473,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:477,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:478,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 481
    functionName: Botan_Tests::test_ciphertext_too_short
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - Botan::hex_decode
    - Botan::ECIES_Decryptor::decrypt
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ciphertext_too_short()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:495,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 504
    functionName: Botan_Tests::ECIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/tests/test_ecies.cpp:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' format'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: Botan_Tests::get_compression_type
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: Botan::EC_Point_Format
    signature: Botan::EC_Point_Format get_compression_type(const std::string& format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cofactor_mode
    - old_cofactor_mode
    - check_mode
    - single_hash_mode
    argTypes:
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ecies_flags
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Flags
    signature: Flags ecies_flags(bool cofactor_mode, bool old_cofactor_mode, bool
      check_mode, bool single_hash_mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_ecies.cpp:53,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: domain
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:56,1
    - Dst: Botan::ECIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:57,1
    - Dst: Botan::ECIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:58,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:60,1
    - Dst: Botan::ECIES_Encryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:61,1
    - Dst: Botan::ECIES_Decryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:62,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:65,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:66,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:67,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:69,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:70,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:73,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:75,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ecies.cpp:78,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 9
    argNames:
    - ' result'
    - ' private_key'
    - ' other_private_key'
    - ' ecies_params'
    - ' iv'
    - ' label'
    - ' plaintext'
    - ' ciphertext'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::ECDH_PrivateKey
    - Botan::ECDH_PrivateKey
    - Botan::ECIES_System_Params
    - Botan::InitializationVector
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 80
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 2
    functionsReached:
    - raw_public_key_bits
    - Botan::ECIES_Encryptor::set_label
    - Botan::ECIES_Encryptor::set_other_key
    - Botan::ECIES_Decryptor::set_label
    - Botan::ECIES_Decryptor::decrypt
    - bits_of
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::ECIES_Encryptor::set_initialization_vector
    - test_throws
    - test_bin_eq
    - what
    - domain
    - Botan::ECIES_Encryptor::encrypt
    - test_note
    - Botan::ECIES_Decryptor::set_initialization_vector
    - empty
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void check_encrypt_decrypt(Test::Result& result,\n                           const
      Botan::ECDH_PrivateKey& private_key,\n                           const Botan::ECDH_PrivateKey&
      other_private_key,\n                           const Botan::ECIES_System_Params&
      ecies_params,\n                           const Botan::InitializationVector&
      iv,\n                           const std::string& label,\n                           const
      std::vector<uint8_t>& plaintext,\n                           const std::vector<uint8_t>&
      ciphertext,\n                           Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:89,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:93,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:93,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' result'
    - ' private_key'
    - ' other_private_key'
    - ' ecies_params'
    - iv_length
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::ECDH_PrivateKey
    - Botan::ECDH_PrivateKey
    - Botan::ECIES_System_Params
    - size_t
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 3
    functionsReached:
    - std::vector<uint8_t>
    - Botan::InitializationVector
    - Botan_Tests::check_encrypt_decrypt
    linkageType: ''
    returnType: void
    signature: "void check_encrypt_decrypt(Test::Result& result,\n                                            const
      Botan::ECDH_PrivateKey& private_key,\n                                            const
      Botan::ECDH_PrivateKey& other_private_key,\n                                            const
      Botan::ECIES_System_Params& ecies_params,\n                                            size_t
      iv_length,\n                                            Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_Tests::ECIES_ISO_Tests::ECIES_ISO_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECIES_ISO_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan_Tests::ECIES_ISO_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ecies.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: Botan_Tests::ECIES_ISO_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:116,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:116,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:117,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:118,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:119,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:120,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:121,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:122,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:123,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:124,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:125,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:126,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:127,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:128,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:129,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:134,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecies.cpp:135,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:139,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecies.cpp:140,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:141,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:146,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: Botan::ECIES_KA_Operation::derive_secret
      Src: /src/botan/src/tests/test_ecies.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:149,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:149,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:162,1
    - Dst: ECIES_System_Params::ECIES_System_Params
      Src: /src/botan/src/tests/test_ecies.cpp:166,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:166,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:175,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:179,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:187,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 196
    functionName: Botan_Tests::ECIES_ISO_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    - Test::Result::test_throws
    - Botan_Tests::ECIES_ISO_Tests::rng
    - Botan::SymmetricKey::bits_of
    - Botan::EC_AffinePoint::from_bigint_xy
    - check_encrypt_decrypt
    - Botan::ECIES_KA_Operation::derive_secret
    - ecies_flags
    - Test::Result::test_bin_eq
    - get_req_bn
    - get_compression_type
    - Botan::ECDH_PrivateKey::public_value
    - ECIES_System_Params::ECIES_System_Params
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:212,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:213,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:214,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:215,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:217,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:218,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:219,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_ecies.cpp:220,1
    - Dst: std::make_unique<Botan::EC_Group>
      Src: /src/botan/src/tests/test_ecies.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: Botan_Tests::ECIES_Tests::ECIES_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::EC_Group>
    - Botan::BigInt::from_string
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    - Botan::BigInt::from_u64
    linkageType: ''
    returnType: void
    signature: void ECIES_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:226,1
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:230,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecies.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 234
    functionName: Botan_Tests::ECIES_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:239,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:240,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:241,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:242,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:244,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:246,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:247,1
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:248,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:248,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:249,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:250,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:251,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:252,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:253,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:254,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:255,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:257,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:263,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:267,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:268,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:271,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:272,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 276
    functionName: Botan_Tests::ECIES_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    - check_encrypt_decrypt
    - ecies_flags
    - get_opt_bin
    - Botan::EC_Group::from_name
    - Botan_Tests::ECIES_Tests::rng
    - Botan::InitializationVector
    - get_req_bn
    - get_compression_type
    - get_req_sz
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:289,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:291,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:292,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:300,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:311,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:312,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 315
    functionName: Botan_Tests::test_other_key_not_set
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_other_key_not_set()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:320,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:322,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:323,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:331,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:342,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 346
    functionName: Botan_Tests::test_kdf_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_kdf_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:351,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:353,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:354,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:362,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:373,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 377
    functionName: Botan_Tests::test_mac_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_mac_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:382,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:384,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:385,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:393,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:404,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 408
    functionName: Botan_Tests::test_cipher_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cipher_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:413,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:415,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:430,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:435,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:438,1
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 451
    functionName: Botan_Tests::test_system_params_short_ctor
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - Botan::hex_decode
    - Botan::EC_Group::from_name
    - Botan_Tests::check_encrypt_decrypt
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_system_params_short_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:456,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:467,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:473,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:477,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:478,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 481
    functionName: Botan_Tests::test_ciphertext_too_short
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - Botan::hex_decode
    - Botan::ECIES_Decryptor::decrypt
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ciphertext_too_short()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:495,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 504
    functionName: Botan_Tests::ECIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/tests/test_ecies.cpp:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' format'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: Botan_Tests::get_compression_type
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: Botan::EC_Point_Format
    signature: Botan::EC_Point_Format get_compression_type(const std::string& format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cofactor_mode
    - old_cofactor_mode
    - check_mode
    - single_hash_mode
    argTypes:
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ecies_flags
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: Flags
    signature: Flags ecies_flags(bool cofactor_mode, bool old_cofactor_mode, bool
      check_mode, bool single_hash_mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_ecies.cpp:53,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: domain
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:56,1
    - Dst: Botan::ECIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:57,1
    - Dst: Botan::ECIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:58,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:60,1
    - Dst: Botan::ECIES_Encryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:61,1
    - Dst: Botan::ECIES_Decryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:62,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:65,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:66,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:67,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:69,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:70,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:73,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:75,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ecies.cpp:78,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 9
    argNames:
    - ' result'
    - ' private_key'
    - ' other_private_key'
    - ' ecies_params'
    - ' iv'
    - ' label'
    - ' plaintext'
    - ' ciphertext'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::ECDH_PrivateKey
    - Botan::ECDH_PrivateKey
    - Botan::ECIES_System_Params
    - Botan::InitializationVector
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 80
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 4
    functionsReached:
    - raw_public_key_bits
    - Botan::ECIES_Encryptor::set_label
    - Botan::ECIES_Encryptor::set_other_key
    - Botan::ECIES_Decryptor::set_label
    - Botan::ECIES_Decryptor::decrypt
    - bits_of
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::ECIES_Encryptor::set_initialization_vector
    - test_throws
    - test_bin_eq
    - what
    - domain
    - Botan::ECIES_Encryptor::encrypt
    - test_note
    - Botan::ECIES_Decryptor::set_initialization_vector
    - empty
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void check_encrypt_decrypt(Test::Result& result,\n                           const
      Botan::ECDH_PrivateKey& private_key,\n                           const Botan::ECDH_PrivateKey&
      other_private_key,\n                           const Botan::ECIES_System_Params&
      ecies_params,\n                           const Botan::InitializationVector&
      iv,\n                           const std::string& label,\n                           const
      std::vector<uint8_t>& plaintext,\n                           const std::vector<uint8_t>&
      ciphertext,\n                           Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:89,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:93,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:93,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' result'
    - ' private_key'
    - ' other_private_key'
    - ' ecies_params'
    - iv_length
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::ECDH_PrivateKey
    - Botan::ECDH_PrivateKey
    - Botan::ECIES_System_Params
    - size_t
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 5
    functionsReached:
    - std::vector<uint8_t>
    - Botan::InitializationVector
    - Botan_Tests::check_encrypt_decrypt
    linkageType: ''
    returnType: void
    signature: "void check_encrypt_decrypt(Test::Result& result,\n                                            const
      Botan::ECDH_PrivateKey& private_key,\n                                            const
      Botan::ECDH_PrivateKey& other_private_key,\n                                            const
      Botan::ECIES_System_Params& ecies_params,\n                                            size_t
      iv_length,\n                                            Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_Tests::ECIES_ISO_Tests::ECIES_ISO_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECIES_ISO_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan_Tests::ECIES_ISO_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ecies.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: Botan_Tests::ECIES_ISO_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:116,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:116,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:117,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:118,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:119,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:120,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:121,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:122,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:123,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:124,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:125,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:126,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:127,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:128,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:129,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:134,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecies.cpp:135,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:139,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecies.cpp:140,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:141,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:146,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: Botan::ECIES_KA_Operation::derive_secret
      Src: /src/botan/src/tests/test_ecies.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:149,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:149,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:162,1
    - Dst: ECIES_System_Params::ECIES_System_Params
      Src: /src/botan/src/tests/test_ecies.cpp:166,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:166,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:175,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:179,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:187,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 196
    functionName: Botan_Tests::ECIES_ISO_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    - Test::Result::test_throws
    - Botan_Tests::ECIES_ISO_Tests::rng
    - Botan::SymmetricKey::bits_of
    - Botan::EC_AffinePoint::from_bigint_xy
    - check_encrypt_decrypt
    - Botan::ECIES_KA_Operation::derive_secret
    - ecies_flags
    - Test::Result::test_bin_eq
    - get_req_bn
    - get_compression_type
    - Botan::ECDH_PrivateKey::public_value
    - ECIES_System_Params::ECIES_System_Params
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:212,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:213,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:214,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:215,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:217,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:218,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:219,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_ecies.cpp:220,1
    - Dst: std::make_unique<Botan::EC_Group>
      Src: /src/botan/src/tests/test_ecies.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: Botan_Tests::ECIES_Tests::ECIES_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::EC_Group>
    - Botan::BigInt::from_string
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    - Botan::BigInt::from_u64
    linkageType: ''
    returnType: void
    signature: void ECIES_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:226,1
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:230,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecies.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 234
    functionName: Botan_Tests::ECIES_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:239,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:240,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:241,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:242,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:244,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:246,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:247,1
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:248,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:248,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:249,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:250,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:251,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:252,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:253,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:254,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:255,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:257,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:263,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:267,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:268,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:271,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:272,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 276
    functionName: Botan_Tests::ECIES_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    - check_encrypt_decrypt
    - ecies_flags
    - get_opt_bin
    - Botan::EC_Group::from_name
    - Botan_Tests::ECIES_Tests::rng
    - Botan::InitializationVector
    - get_req_bn
    - get_compression_type
    - get_req_sz
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:289,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:291,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:292,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:300,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:311,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:312,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 315
    functionName: Botan_Tests::test_other_key_not_set
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_other_key_not_set()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:320,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:322,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:323,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:331,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:342,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 346
    functionName: Botan_Tests::test_kdf_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_kdf_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:351,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:353,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:354,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:362,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:373,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 377
    functionName: Botan_Tests::test_mac_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_mac_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:382,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:384,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:385,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:393,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:404,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 408
    functionName: Botan_Tests::test_cipher_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cipher_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:413,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:415,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:430,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:435,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:438,1
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 451
    functionName: Botan_Tests::test_system_params_short_ctor
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - Botan::hex_decode
    - Botan::EC_Group::from_name
    - Botan_Tests::check_encrypt_decrypt
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_system_params_short_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:456,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:467,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:473,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:477,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:478,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 481
    functionName: Botan_Tests::test_ciphertext_too_short
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - Botan::hex_decode
    - Botan::ECIES_Decryptor::decrypt
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ciphertext_too_short()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:495,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 504
    functionName: Botan_Tests::ECIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/tests/test_ecies.cpp:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' format'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: Botan_Tests::get_compression_type
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: Botan::EC_Point_Format
    signature: Botan::EC_Point_Format get_compression_type(const std::string& format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cofactor_mode
    - old_cofactor_mode
    - check_mode
    - single_hash_mode
    argTypes:
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ecies_flags
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Flags
    signature: Flags ecies_flags(bool cofactor_mode, bool old_cofactor_mode, bool
      check_mode, bool single_hash_mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_ecies.cpp:53,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: domain
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:56,1
    - Dst: Botan::ECIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:57,1
    - Dst: Botan::ECIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:58,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:60,1
    - Dst: Botan::ECIES_Encryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:61,1
    - Dst: Botan::ECIES_Decryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:62,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:65,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:66,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:67,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:69,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:70,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:73,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:75,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ecies.cpp:78,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 9
    argNames:
    - ' result'
    - ' private_key'
    - ' other_private_key'
    - ' ecies_params'
    - ' iv'
    - ' label'
    - ' plaintext'
    - ' ciphertext'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::ECDH_PrivateKey
    - Botan::ECDH_PrivateKey
    - Botan::ECIES_System_Params
    - Botan::InitializationVector
    - std::string
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 80
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 6
    functionsReached:
    - raw_public_key_bits
    - Botan::ECIES_Encryptor::set_label
    - Botan::ECIES_Encryptor::set_other_key
    - Botan::ECIES_Decryptor::set_label
    - Botan::ECIES_Decryptor::decrypt
    - bits_of
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::ECIES_Encryptor::set_initialization_vector
    - test_throws
    - test_bin_eq
    - what
    - domain
    - Botan::ECIES_Encryptor::encrypt
    - test_note
    - Botan::ECIES_Decryptor::set_initialization_vector
    - empty
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void check_encrypt_decrypt(Test::Result& result,\n                           const
      Botan::ECDH_PrivateKey& private_key,\n                           const Botan::ECDH_PrivateKey&
      other_private_key,\n                           const Botan::ECIES_System_Params&
      ecies_params,\n                           const Botan::InitializationVector&
      iv,\n                           const std::string& label,\n                           const
      std::vector<uint8_t>& plaintext,\n                           const std::vector<uint8_t>&
      ciphertext,\n                           Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:89,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:93,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:93,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' result'
    - ' private_key'
    - ' other_private_key'
    - ' ecies_params'
    - iv_length
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::ECDH_PrivateKey
    - Botan::ECDH_PrivateKey
    - Botan::ECIES_System_Params
    - size_t
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 7
    functionsReached:
    - std::vector<uint8_t>
    - Botan::InitializationVector
    - Botan_Tests::check_encrypt_decrypt
    linkageType: ''
    returnType: void
    signature: "void check_encrypt_decrypt(Test::Result& result,\n                                            const
      Botan::ECDH_PrivateKey& private_key,\n                                            const
      Botan::ECDH_PrivateKey& other_private_key,\n                                            const
      Botan::ECIES_System_Params& ecies_params,\n                                            size_t
      iv_length,\n                                            Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_Tests::ECIES_ISO_Tests::ECIES_ISO_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECIES_ISO_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan_Tests::ECIES_ISO_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ecies.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: Botan_Tests::ECIES_ISO_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:116,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:116,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:117,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:118,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:119,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:120,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:121,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:122,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:123,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:124,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:125,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:126,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:127,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:128,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:129,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:134,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecies.cpp:135,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:139,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecies.cpp:140,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:141,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:146,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: Botan::ECIES_KA_Operation::derive_secret
      Src: /src/botan/src/tests/test_ecies.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecies.cpp:149,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:149,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:162,1
    - Dst: ECIES_System_Params::ECIES_System_Params
      Src: /src/botan/src/tests/test_ecies.cpp:166,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:166,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:175,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:179,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:187,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 196
    functionName: Botan_Tests::ECIES_ISO_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    - Test::Result::test_throws
    - Botan_Tests::ECIES_ISO_Tests::rng
    - Botan::SymmetricKey::bits_of
    - Botan::EC_AffinePoint::from_bigint_xy
    - check_encrypt_decrypt
    - Botan::ECIES_KA_Operation::derive_secret
    - ecies_flags
    - Test::Result::test_bin_eq
    - get_req_bn
    - get_compression_type
    - Botan::ECDH_PrivateKey::public_value
    - ECIES_System_Params::ECIES_System_Params
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:212,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:213,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:214,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:215,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:217,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:218,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:219,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_ecies.cpp:220,1
    - Dst: std::make_unique<Botan::EC_Group>
      Src: /src/botan/src/tests/test_ecies.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: Botan_Tests::ECIES_Tests::ECIES_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::EC_Group>
    - Botan::BigInt::from_string
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    - Botan::BigInt::from_u64
    linkageType: ''
    returnType: void
    signature: void ECIES_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:226,1
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:230,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecies.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 234
    functionName: Botan_Tests::ECIES_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:239,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:240,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:241,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:242,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:244,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:246,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:247,1
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:248,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:248,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:249,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:250,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:251,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:252,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:253,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:254,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:255,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:257,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:263,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:267,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:268,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:271,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:272,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 276
    functionName: Botan_Tests::ECIES_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    - check_encrypt_decrypt
    - ecies_flags
    - get_opt_bin
    - Botan::EC_Group::from_name
    - Botan_Tests::ECIES_Tests::rng
    - Botan::InitializationVector
    - get_req_bn
    - get_compression_type
    - get_req_sz
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:289,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:291,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:292,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:300,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:311,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:312,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 315
    functionName: Botan_Tests::test_other_key_not_set
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_other_key_not_set()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:320,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:322,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:323,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:331,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:342,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 346
    functionName: Botan_Tests::test_kdf_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_kdf_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:351,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:353,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:354,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:362,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:373,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 377
    functionName: Botan_Tests::test_mac_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_mac_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:382,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:384,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:385,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:393,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:404,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 408
    functionName: Botan_Tests::test_cipher_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::Test::new_rng
    - Botan_Tests::ecies_flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cipher_not_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:413,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:415,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:430,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:435,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:438,1
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 451
    functionName: Botan_Tests::test_system_params_short_ctor
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - Botan::hex_decode
    - Botan::EC_Group::from_name
    - Botan_Tests::check_encrypt_decrypt
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_system_params_short_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:456,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:467,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:473,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:477,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:478,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 481
    functionName: Botan_Tests::test_ciphertext_too_short
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey::domain
    - Botan::hex_decode
    - Botan::ECIES_Decryptor::decrypt
    - Botan::EC_Group::from_name
    - Test::Result::test_throws
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ciphertext_too_short()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:495,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 504
    functionName: Botan_Tests::ECIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::emplace_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:36,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:36,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:37,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:38,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:39,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
      Src: /src/botan/src/tests/test_os_utils.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:40,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
      Src: /src/botan/src/tests/test_os_utils.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:41,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_memory_locking
      Src: /src/botan/src/tests/test_os_utils.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:42,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: Botan_Tests::OS_Utils_Tests::run
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    - std::vector::push_back
    - Botan_Tests::OS_Utils_Tests::test_get_process_id
    - Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    - Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    - Botan_Tests::OS_Utils_Tests::test_memory_locking
    - Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:51,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:52,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:57,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_os_utils.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: Botan_Tests::OS_Utils_Tests::test_get_process_id
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_u32_eq
    - Botan::OS::get_process_id
    - Test::Result::test_sz_ne
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_process_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:71,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:74,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:75,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:80,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_os_utils.cpp:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_sz_lt
    - Test::Result::test_u64_eq
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_cycle_counter()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:98,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:99,1
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:102,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_os_utils.cpp:103,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_os_utils.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_success
    - Botan::OS::get_high_resolution_clock
    - Test::Result::test_is_true
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_high_resolution_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/tests/test_os_utils.cpp:116,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_os_utils.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_sz_gte
    - Botan::OS::get_cpu_available
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_numbers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:127,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:128,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:131,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:133,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::OS::get_system_timestamp_ns
    - Botan::OS::get_process_id
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_system_timestamp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: Botan_Tests::OS_Utils_Tests::test_memory_locking
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_memory_locking()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:154,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_os_utils.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:161,1
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:192,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 197
    functionName: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::OS::run_cpu_instruction_probe
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cpu_instruction_probe()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:36,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:36,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:37,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:38,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:39,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
      Src: /src/botan/src/tests/test_os_utils.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:40,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
      Src: /src/botan/src/tests/test_os_utils.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:41,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_memory_locking
      Src: /src/botan/src/tests/test_os_utils.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:42,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: Botan_Tests::OS_Utils_Tests::run
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    - std::vector::push_back
    - Botan_Tests::OS_Utils_Tests::test_get_process_id
    - Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    - Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    - Botan_Tests::OS_Utils_Tests::test_memory_locking
    - Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:51,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:52,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:57,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_os_utils.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: Botan_Tests::OS_Utils_Tests::test_get_process_id
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_u32_eq
    - Botan::OS::get_process_id
    - Test::Result::test_sz_ne
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_process_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:71,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:74,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:75,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:80,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_os_utils.cpp:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_sz_lt
    - Test::Result::test_u64_eq
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_cycle_counter()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:98,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:99,1
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:102,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_os_utils.cpp:103,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_os_utils.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_success
    - Botan::OS::get_high_resolution_clock
    - Test::Result::test_is_true
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_high_resolution_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/tests/test_os_utils.cpp:116,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_os_utils.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_sz_gte
    - Botan::OS::get_cpu_available
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_numbers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:127,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:128,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:131,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:133,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::OS::get_system_timestamp_ns
    - Botan::OS::get_process_id
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_system_timestamp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: Botan_Tests::OS_Utils_Tests::test_memory_locking
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_memory_locking()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:154,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_os_utils.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:161,1
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:192,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 197
    functionName: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::OS::run_cpu_instruction_probe
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cpu_instruction_probe()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:36,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:36,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:37,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:38,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:39,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
      Src: /src/botan/src/tests/test_os_utils.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:40,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
      Src: /src/botan/src/tests/test_os_utils.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:41,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_memory_locking
      Src: /src/botan/src/tests/test_os_utils.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:42,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: Botan_Tests::OS_Utils_Tests::run
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    - std::vector::push_back
    - Botan_Tests::OS_Utils_Tests::test_get_process_id
    - Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    - Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    - Botan_Tests::OS_Utils_Tests::test_memory_locking
    - Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:51,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:52,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:57,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_os_utils.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: Botan_Tests::OS_Utils_Tests::test_get_process_id
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_u32_eq
    - Botan::OS::get_process_id
    - Test::Result::test_sz_ne
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_process_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:71,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:74,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:75,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:80,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_os_utils.cpp:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_sz_lt
    - Test::Result::test_u64_eq
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_cycle_counter()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:98,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:99,1
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:102,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_os_utils.cpp:103,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_os_utils.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_success
    - Botan::OS::get_high_resolution_clock
    - Test::Result::test_is_true
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_high_resolution_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/tests/test_os_utils.cpp:116,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_os_utils.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_sz_gte
    - Botan::OS::get_cpu_available
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_numbers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:127,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:128,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:131,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:133,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::OS::get_system_timestamp_ns
    - Botan::OS::get_process_id
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_system_timestamp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: Botan_Tests::OS_Utils_Tests::test_memory_locking
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_memory_locking()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:154,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_os_utils.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:161,1
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:192,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 197
    functionName: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::OS::run_cpu_instruction_probe
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cpu_instruction_probe()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:36,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:36,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:37,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:38,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:39,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
      Src: /src/botan/src/tests/test_os_utils.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:40,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
      Src: /src/botan/src/tests/test_os_utils.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:41,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_memory_locking
      Src: /src/botan/src/tests/test_os_utils.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_os_utils.cpp:42,1
    - Dst: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: Botan_Tests::OS_Utils_Tests::run
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    - std::vector::push_back
    - Botan_Tests::OS_Utils_Tests::test_get_process_id
    - Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    - Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    - Botan_Tests::OS_Utils_Tests::test_memory_locking
    - Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:51,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:52,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:57,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_os_utils.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: Botan_Tests::OS_Utils_Tests::test_get_process_id
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_u32_eq
    - Botan::OS::get_process_id
    - Test::Result::test_sz_ne
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_process_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:71,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:74,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:75,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/tests/test_os_utils.cpp:80,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_os_utils.cpp:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_sz_lt
    - Test::Result::test_u64_eq
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_cycle_counter()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:98,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:99,1
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:102,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_os_utils.cpp:103,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_os_utils.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_success
    - Botan::OS::get_high_resolution_clock
    - Test::Result::test_is_true
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_high_resolution_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/tests/test_os_utils.cpp:116,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_os_utils.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_sz_gte
    - Botan::OS::get_cpu_available
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_numbers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:127,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:128,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:131,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:133,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::OS::get_system_timestamp_ns
    - Botan::OS::get_process_id
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_system_timestamp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: Botan_Tests::OS_Utils_Tests::test_memory_locking
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_memory_locking()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:154,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_os_utils.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:161,1
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:192,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_os_utils.cpp:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 197
    functionName: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::OS::run_cpu_instruction_probe
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_cpu_instruction_probe()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::ECC_Explicit_Curve_Tests::ECC_Explicit_Curve_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_explicit_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Explicit_Curve_Tests()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:28,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:29,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:32,1
    - Dst: dynamic_cast<const Botan::ECDSA_PublicKey*>
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:34,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:34,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:36,1
    - Dst: auto*::domain
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:38,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:42,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:46,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:48,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:52,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:53,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:54,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:56,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:58,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:60,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:63,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 71
    functionName: Botan_Tests::ECC_Explicit_Curve_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_explicit_params.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - dynamic_cast<const Botan::ECDSA_PublicKey*>
    - auto::get
    - auto*::domain
    - Test::Result::test_failure
    - std::string::find
    - Botan::X509::load_key
    - Test::Result::test_is_true
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*unused*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::ECC_Explicit_Curve_Tests::ECC_Explicit_Curve_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_explicit_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Explicit_Curve_Tests()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:28,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:29,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:32,1
    - Dst: dynamic_cast<const Botan::ECDSA_PublicKey*>
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:34,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:34,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:36,1
    - Dst: auto*::domain
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:38,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:42,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:46,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:48,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:52,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:53,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:54,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:56,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:58,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:60,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:63,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 71
    functionName: Botan_Tests::ECC_Explicit_Curve_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_explicit_params.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - dynamic_cast<const Botan::ECDSA_PublicKey*>
    - auto::get
    - auto*::domain
    - Test::Result::test_failure
    - std::string::find
    - Botan::X509::load_key
    - Test::Result::test_is_true
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*unused*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::ECC_Explicit_Curve_Tests::ECC_Explicit_Curve_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_explicit_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Explicit_Curve_Tests()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:28,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:29,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:32,1
    - Dst: dynamic_cast<const Botan::ECDSA_PublicKey*>
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:34,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:34,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:36,1
    - Dst: auto*::domain
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:38,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:42,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:46,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:48,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:52,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:53,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:54,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:56,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:58,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:60,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:63,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 71
    functionName: Botan_Tests::ECC_Explicit_Curve_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_explicit_params.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - dynamic_cast<const Botan::ECDSA_PublicKey*>
    - auto::get
    - auto*::domain
    - Test::Result::test_failure
    - std::string::find
    - Botan::X509::load_key
    - Test::Result::test_is_true
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*unused*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::ECC_Explicit_Curve_Tests::ECC_Explicit_Curve_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_explicit_params.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Explicit_Curve_Tests()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:28,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:29,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:32,1
    - Dst: dynamic_cast<const Botan::ECDSA_PublicKey*>
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:34,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:34,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:36,1
    - Dst: auto*::domain
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:38,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:42,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:46,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:48,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:52,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:53,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:54,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:56,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:58,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:60,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:63,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_explicit_params.cpp:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 71
    functionName: Botan_Tests::ECC_Explicit_Curve_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_explicit_params.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - dynamic_cast<const Botan::ECDSA_PublicKey*>
    - auto::get
    - auto*::domain
    - Test::Result::test_failure
    - std::string::find
    - Botan::X509::load_key
    - Test::Result::test_is_true
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*unused*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::ZFEC_KAT::ZFEC_KAT
    functionSourceFile: /src/botan/src/tests/test_zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZFEC_KAT()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_zfec.cpp:24,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_zfec.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:28,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:30,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:31,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:36,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:38,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:39,1
    - Dst: std::map::insert
      Src: /src/botan/src/tests/test_zfec.cpp:52,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_zfec.cpp:52,1
    - Dst: Botan::ZFEC::provider
      Src: /src/botan/src/tests/test_zfec.cpp:57,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:62,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:63,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_zfec.cpp:66,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_zfec.cpp:68,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:69,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:74,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:74,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:80,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:81,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_zfec.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_zfec.cpp:86,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:87,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:90,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:92,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:92,1
    - Dst: std::set::clear
      Src: /src/botan/src/tests/test_zfec.cpp:95,1
    - Dst: std::map::size
      Src: /src/botan/src/tests/test_zfec.cpp:97,1
    - Dst: Botan_Tests::ZFEC_KAT::rng
      Src: /src/botan/src/tests/test_zfec.cpp:98,1
    - Dst: std::map::erase
      Src: /src/botan/src/tests/test_zfec.cpp:99,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:102,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:104,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:104,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 107
    functionName: Botan_Tests::ZFEC_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_zfec.cpp
    functionUses: 0
    functionsReached:
    - std::set::clear
    - Test::Result::test_sz_eq
    - Botan::ZFEC::provider
    - std::map::size
    - Botan_Tests::ZFEC_KAT::rng
    - std::to_string
    - std::set::insert
    - std::set::size
    - std::make_pair
    - std::map::insert
    - Botan::ZFEC::decode_shares
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - std::map::erase
    - Test::Result::test_bin_eq
    - get_req_sz
    - Botan::ZFEC::encode
    - std::vector::data
    - Test::Result::test_sz_lt
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::ZFEC_KAT::ZFEC_KAT
    functionSourceFile: /src/botan/src/tests/test_zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZFEC_KAT()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_zfec.cpp:24,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_zfec.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:28,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:30,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:31,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:36,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:38,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:39,1
    - Dst: std::map::insert
      Src: /src/botan/src/tests/test_zfec.cpp:52,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_zfec.cpp:52,1
    - Dst: Botan::ZFEC::provider
      Src: /src/botan/src/tests/test_zfec.cpp:57,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:62,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:63,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_zfec.cpp:66,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_zfec.cpp:68,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:69,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:74,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:74,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:80,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:81,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_zfec.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_zfec.cpp:86,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:87,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:90,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:92,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:92,1
    - Dst: std::set::clear
      Src: /src/botan/src/tests/test_zfec.cpp:95,1
    - Dst: std::map::size
      Src: /src/botan/src/tests/test_zfec.cpp:97,1
    - Dst: Botan_Tests::ZFEC_KAT::rng
      Src: /src/botan/src/tests/test_zfec.cpp:98,1
    - Dst: std::map::erase
      Src: /src/botan/src/tests/test_zfec.cpp:99,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:102,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:104,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:104,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 107
    functionName: Botan_Tests::ZFEC_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_zfec.cpp
    functionUses: 0
    functionsReached:
    - std::set::clear
    - Test::Result::test_sz_eq
    - Botan::ZFEC::provider
    - std::map::size
    - Botan_Tests::ZFEC_KAT::rng
    - std::to_string
    - std::set::insert
    - std::set::size
    - std::make_pair
    - std::map::insert
    - Botan::ZFEC::decode_shares
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - std::map::erase
    - Test::Result::test_bin_eq
    - get_req_sz
    - Botan::ZFEC::encode
    - std::vector::data
    - Test::Result::test_sz_lt
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::ZFEC_KAT::ZFEC_KAT
    functionSourceFile: /src/botan/src/tests/test_zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZFEC_KAT()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_zfec.cpp:24,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_zfec.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:28,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:30,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:31,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:36,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:38,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:39,1
    - Dst: std::map::insert
      Src: /src/botan/src/tests/test_zfec.cpp:52,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_zfec.cpp:52,1
    - Dst: Botan::ZFEC::provider
      Src: /src/botan/src/tests/test_zfec.cpp:57,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:62,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:63,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_zfec.cpp:66,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_zfec.cpp:68,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:69,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:74,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:74,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:80,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:81,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_zfec.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_zfec.cpp:86,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:87,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:90,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:92,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:92,1
    - Dst: std::set::clear
      Src: /src/botan/src/tests/test_zfec.cpp:95,1
    - Dst: std::map::size
      Src: /src/botan/src/tests/test_zfec.cpp:97,1
    - Dst: Botan_Tests::ZFEC_KAT::rng
      Src: /src/botan/src/tests/test_zfec.cpp:98,1
    - Dst: std::map::erase
      Src: /src/botan/src/tests/test_zfec.cpp:99,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:102,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:104,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:104,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 107
    functionName: Botan_Tests::ZFEC_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_zfec.cpp
    functionUses: 0
    functionsReached:
    - std::set::clear
    - Test::Result::test_sz_eq
    - Botan::ZFEC::provider
    - std::map::size
    - Botan_Tests::ZFEC_KAT::rng
    - std::to_string
    - std::set::insert
    - std::set::size
    - std::make_pair
    - std::map::insert
    - Botan::ZFEC::decode_shares
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - std::map::erase
    - Test::Result::test_bin_eq
    - get_req_sz
    - Botan::ZFEC::encode
    - std::vector::data
    - Test::Result::test_sz_lt
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::ZFEC_KAT::ZFEC_KAT
    functionSourceFile: /src/botan/src/tests/test_zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZFEC_KAT()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_zfec.cpp:24,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_zfec.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:28,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:30,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:31,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:36,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:38,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:39,1
    - Dst: std::map::insert
      Src: /src/botan/src/tests/test_zfec.cpp:52,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_zfec.cpp:52,1
    - Dst: Botan::ZFEC::provider
      Src: /src/botan/src/tests/test_zfec.cpp:57,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:62,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:63,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_zfec.cpp:66,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_zfec.cpp:68,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:69,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:72,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:74,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:74,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:80,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:81,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_zfec.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_zfec.cpp:86,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:87,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:90,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:92,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:92,1
    - Dst: std::set::clear
      Src: /src/botan/src/tests/test_zfec.cpp:95,1
    - Dst: std::map::size
      Src: /src/botan/src/tests/test_zfec.cpp:97,1
    - Dst: Botan_Tests::ZFEC_KAT::rng
      Src: /src/botan/src/tests/test_zfec.cpp:98,1
    - Dst: std::map::erase
      Src: /src/botan/src/tests/test_zfec.cpp:99,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:102,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_zfec.cpp:104,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:104,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 107
    functionName: Botan_Tests::ZFEC_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_zfec.cpp
    functionUses: 0
    functionsReached:
    - std::set::clear
    - Test::Result::test_sz_eq
    - Botan::ZFEC::provider
    - std::map::size
    - Botan_Tests::ZFEC_KAT::rng
    - std::to_string
    - std::set::insert
    - std::set::size
    - std::make_pair
    - std::map::insert
    - Botan::ZFEC::decode_shares
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - std::map::erase
    - Test::Result::test_bin_eq
    - get_req_sz
    - Botan::ZFEC::encode
    - std::vector::data
    - Test::Result::test_sz_lt
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::SRP6_KAT_Tests::SRP6_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SRP6_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::SRP6_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:38,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:39,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_srp6.cpp:40,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:40,1
    - Dst: Botan::srp6_group_identifier
      Src: /src/botan/src/tests/test_srp6.cpp:42,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_srp6.cpp:43,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_srp6.cpp:44,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_srp6.cpp:49,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_srp6.cpp:50,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_srp6.cpp:54,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_srp6.cpp:54,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_srp6.cpp:55,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_srp6.cpp:59,1
    - Dst: Botan::srp6_generate_verifier
      Src: /src/botan/src/tests/test_srp6.cpp:61,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:62,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_srp6.cpp:66,1
    - Dst: Botan::SRP6_Server_Session::step1
      Src: /src/botan/src/tests/test_srp6.cpp:68,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:69,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_srp6.cpp:71,1
    - Dst: Botan::srp6_client_agree
      Src: /src/botan/src/tests/test_srp6.cpp:73,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:74,1
    - Dst: Botan::SRP6_Server_Session::step2
      Src: /src/botan/src/tests/test_srp6.cpp:76,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 82
    functionName: Botan_Tests::SRP6_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::SymmetricKey
    - Botan::srp6_group_identifier
    - get_req_bn
    - Botan::BigInt::from_bytes
    - std::string::empty
    - Botan_Tests::Test::run_long_tests
    - get_req_bin
    - Botan::srp6_generate_verifier
    - Botan::srp6_client_agree
    - Test_Error
    - Botan::HashFunction::create
    - Botan::SRP6_Server_Session::step1
    - Test::Result::test_bin_eq
    - get_req_str
    - Test::Result::test_note
    - Botan::DL_Group::from_name
    - BigInt::bits
    - Botan::SRP6_Server_Session::step2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_srp6.cpp:99,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_srp6.cpp:103,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_srp6.cpp:106,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:112,1
    - Dst: Botan::srp6_generate_verifier
      Src: /src/botan/src/tests/test_srp6.cpp:115,1
    - Dst: Botan::SRP6_Server_Session::step1
      Src: /src/botan/src/tests/test_srp6.cpp:119,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:119,1
    - Dst: srp6_client_agree
      Src: /src/botan/src/tests/test_srp6.cpp:121,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:121,1
    - Dst: Botan::SRP6_Server_Session::step2
      Src: /src/botan/src/tests/test_srp6.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: auto::second::bits_of
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_srp6.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_srp6.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 132
    functionName: Botan_Tests::SRP6_RT_Tests::run
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached:
    - Botan::srp6_generate_verifier
    - Test::Result::start_timer
    - std::to_string
    - Botan::SymmetricKey::bits_of
    - Test::Result::end_timer
    - std::vector::push_back
    - srp6_client_agree
    - Botan::SRP6_Server_Session::step1
    - Botan_Tests::SRP6_RT_Tests::rng
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_bin_eq
    - Botan::SRP6_Server_Session::step2
    - auto::second::bits_of
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::SRP6_KAT_Tests::SRP6_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SRP6_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::SRP6_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:38,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:39,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_srp6.cpp:40,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:40,1
    - Dst: Botan::srp6_group_identifier
      Src: /src/botan/src/tests/test_srp6.cpp:42,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_srp6.cpp:43,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_srp6.cpp:44,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_srp6.cpp:49,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_srp6.cpp:50,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_srp6.cpp:54,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_srp6.cpp:54,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_srp6.cpp:55,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_srp6.cpp:59,1
    - Dst: Botan::srp6_generate_verifier
      Src: /src/botan/src/tests/test_srp6.cpp:61,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:62,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_srp6.cpp:66,1
    - Dst: Botan::SRP6_Server_Session::step1
      Src: /src/botan/src/tests/test_srp6.cpp:68,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:69,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_srp6.cpp:71,1
    - Dst: Botan::srp6_client_agree
      Src: /src/botan/src/tests/test_srp6.cpp:73,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:74,1
    - Dst: Botan::SRP6_Server_Session::step2
      Src: /src/botan/src/tests/test_srp6.cpp:76,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 82
    functionName: Botan_Tests::SRP6_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::SymmetricKey
    - Botan::srp6_group_identifier
    - get_req_bn
    - Botan::BigInt::from_bytes
    - std::string::empty
    - Botan_Tests::Test::run_long_tests
    - get_req_bin
    - Botan::srp6_generate_verifier
    - Botan::srp6_client_agree
    - Test_Error
    - Botan::HashFunction::create
    - Botan::SRP6_Server_Session::step1
    - Test::Result::test_bin_eq
    - get_req_str
    - Test::Result::test_note
    - Botan::DL_Group::from_name
    - BigInt::bits
    - Botan::SRP6_Server_Session::step2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_srp6.cpp:99,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_srp6.cpp:103,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_srp6.cpp:106,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:112,1
    - Dst: Botan::srp6_generate_verifier
      Src: /src/botan/src/tests/test_srp6.cpp:115,1
    - Dst: Botan::SRP6_Server_Session::step1
      Src: /src/botan/src/tests/test_srp6.cpp:119,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:119,1
    - Dst: srp6_client_agree
      Src: /src/botan/src/tests/test_srp6.cpp:121,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:121,1
    - Dst: Botan::SRP6_Server_Session::step2
      Src: /src/botan/src/tests/test_srp6.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: auto::second::bits_of
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_srp6.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_srp6.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 132
    functionName: Botan_Tests::SRP6_RT_Tests::run
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached:
    - Botan::srp6_generate_verifier
    - Test::Result::start_timer
    - std::to_string
    - Botan::SymmetricKey::bits_of
    - Test::Result::end_timer
    - std::vector::push_back
    - srp6_client_agree
    - Botan::SRP6_Server_Session::step1
    - Botan_Tests::SRP6_RT_Tests::rng
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_bin_eq
    - Botan::SRP6_Server_Session::step2
    - auto::second::bits_of
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::SRP6_KAT_Tests::SRP6_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SRP6_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::SRP6_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:38,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:39,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_srp6.cpp:40,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:40,1
    - Dst: Botan::srp6_group_identifier
      Src: /src/botan/src/tests/test_srp6.cpp:42,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_srp6.cpp:43,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_srp6.cpp:44,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_srp6.cpp:49,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_srp6.cpp:50,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_srp6.cpp:54,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_srp6.cpp:54,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_srp6.cpp:55,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_srp6.cpp:59,1
    - Dst: Botan::srp6_generate_verifier
      Src: /src/botan/src/tests/test_srp6.cpp:61,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:62,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_srp6.cpp:66,1
    - Dst: Botan::SRP6_Server_Session::step1
      Src: /src/botan/src/tests/test_srp6.cpp:68,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:69,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_srp6.cpp:71,1
    - Dst: Botan::srp6_client_agree
      Src: /src/botan/src/tests/test_srp6.cpp:73,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:74,1
    - Dst: Botan::SRP6_Server_Session::step2
      Src: /src/botan/src/tests/test_srp6.cpp:76,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 82
    functionName: Botan_Tests::SRP6_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::SymmetricKey
    - Botan::srp6_group_identifier
    - get_req_bn
    - Botan::BigInt::from_bytes
    - std::string::empty
    - Botan_Tests::Test::run_long_tests
    - get_req_bin
    - Botan::srp6_generate_verifier
    - Botan::srp6_client_agree
    - Test_Error
    - Botan::HashFunction::create
    - Botan::SRP6_Server_Session::step1
    - Test::Result::test_bin_eq
    - get_req_str
    - Test::Result::test_note
    - Botan::DL_Group::from_name
    - BigInt::bits
    - Botan::SRP6_Server_Session::step2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_srp6.cpp:99,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_srp6.cpp:103,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_srp6.cpp:106,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:112,1
    - Dst: Botan::srp6_generate_verifier
      Src: /src/botan/src/tests/test_srp6.cpp:115,1
    - Dst: Botan::SRP6_Server_Session::step1
      Src: /src/botan/src/tests/test_srp6.cpp:119,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:119,1
    - Dst: srp6_client_agree
      Src: /src/botan/src/tests/test_srp6.cpp:121,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:121,1
    - Dst: Botan::SRP6_Server_Session::step2
      Src: /src/botan/src/tests/test_srp6.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: auto::second::bits_of
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_srp6.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_srp6.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 132
    functionName: Botan_Tests::SRP6_RT_Tests::run
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached:
    - Botan::srp6_generate_verifier
    - Test::Result::start_timer
    - std::to_string
    - Botan::SymmetricKey::bits_of
    - Test::Result::end_timer
    - std::vector::push_back
    - srp6_client_agree
    - Botan::SRP6_Server_Session::step1
    - Botan_Tests::SRP6_RT_Tests::rng
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_bin_eq
    - Botan::SRP6_Server_Session::step2
    - auto::second::bits_of
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::SRP6_KAT_Tests::SRP6_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SRP6_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::SRP6_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_srp6.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:38,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_srp6.cpp:39,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_srp6.cpp:40,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_srp6.cpp:40,1
    - Dst: Botan::srp6_group_identifier
      Src: /src/botan/src/tests/test_srp6.cpp:42,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_srp6.cpp:43,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_srp6.cpp:44,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_srp6.cpp:49,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_srp6.cpp:50,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_srp6.cpp:54,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_srp6.cpp:54,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_srp6.cpp:55,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_srp6.cpp:59,1
    - Dst: Botan::srp6_generate_verifier
      Src: /src/botan/src/tests/test_srp6.cpp:61,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:62,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_srp6.cpp:66,1
    - Dst: Botan::SRP6_Server_Session::step1
      Src: /src/botan/src/tests/test_srp6.cpp:68,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:69,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_srp6.cpp:71,1
    - Dst: Botan::srp6_client_agree
      Src: /src/botan/src/tests/test_srp6.cpp:73,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_srp6.cpp:74,1
    - Dst: Botan::SRP6_Server_Session::step2
      Src: /src/botan/src/tests/test_srp6.cpp:76,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 82
    functionName: Botan_Tests::SRP6_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::SymmetricKey
    - Botan::srp6_group_identifier
    - get_req_bn
    - Botan::BigInt::from_bytes
    - std::string::empty
    - Botan_Tests::Test::run_long_tests
    - get_req_bin
    - Botan::srp6_generate_verifier
    - Botan::srp6_client_agree
    - Test_Error
    - Botan::HashFunction::create
    - Botan::SRP6_Server_Session::step1
    - Test::Result::test_bin_eq
    - get_req_str
    - Test::Result::test_note
    - Botan::DL_Group::from_name
    - BigInt::bits
    - Botan::SRP6_Server_Session::step2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_srp6.cpp:99,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_srp6.cpp:103,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_srp6.cpp:106,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:112,1
    - Dst: Botan::srp6_generate_verifier
      Src: /src/botan/src/tests/test_srp6.cpp:115,1
    - Dst: Botan::SRP6_Server_Session::step1
      Src: /src/botan/src/tests/test_srp6.cpp:119,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:119,1
    - Dst: srp6_client_agree
      Src: /src/botan/src/tests/test_srp6.cpp:121,1
    - Dst: Botan_Tests::SRP6_RT_Tests::rng
      Src: /src/botan/src/tests/test_srp6.cpp:121,1
    - Dst: Botan::SRP6_Server_Session::step2
      Src: /src/botan/src/tests/test_srp6.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: auto::second::bits_of
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_srp6.cpp:125,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_srp6.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_srp6.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 132
    functionName: Botan_Tests::SRP6_RT_Tests::run
    functionSourceFile: /src/botan/src/tests/test_srp6.cpp
    functionUses: 0
    functionsReached:
    - Botan::srp6_generate_verifier
    - Test::Result::start_timer
    - std::to_string
    - Botan::SymmetricKey::bits_of
    - Test::Result::end_timer
    - std::vector::push_back
    - srp6_client_agree
    - Botan::SRP6_Server_Session::step1
    - Botan_Tests::SRP6_RT_Tests::rng
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_bin_eq
    - Botan::SRP6_Server_Session::step2
    - auto::second::bits_of
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/test_simd.cpp:37,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_simd.cpp:38,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
      Src: /src/botan/src/tests/test_simd.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Botan_Tests::SIMD_4X32_Tests::run
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
    - has
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:60,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:60,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:61,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:61,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/tests/test_simd.cpp:63,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:65,1
    - Dst: Botan::SIMD_4x32::rotl
      Src: /src/botan/src/tests/test_simd.cpp:69,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:71,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:74,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:75,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:76,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:77,1
    - Dst: Botan::SIMD_4x32::rotr
      Src: /src/botan/src/tests/test_simd.cpp:79,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:81,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:84,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:85,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:86,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:87,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:90,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:93,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:96,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:98,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:99,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:100,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:104,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:106,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:108,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:111,1
    - Dst: Botan::SIMD_4x32::shr
      Src: /src/botan/src/tests/test_simd.cpp:113,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:114,1
    - Dst: Botan::SIMD_4x32::shl
      Src: /src/botan/src/tests/test_simd.cpp:116,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:117,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:120,1
    - Dst: Botan::SIMD_4x32::andc
      Src: /src/botan/src/tests/test_simd.cpp:122,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:123,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:126,1
    - Dst: Botan::SIMD_4x32::bswap
      Src: /src/botan/src/tests/test_simd.cpp:128,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:129,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:130,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:131,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:132,1
    - Dst: Botan::SIMD_4x32::transpose
      Src: /src/botan/src/tests/test_simd.cpp:139,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:141,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:142,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:143,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:144,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:146,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:146,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:147,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:147,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:148,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:148,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:150,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:150,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:151,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:151,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:152,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:152,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:155,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:156,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:157,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:158,1
    - Dst: Botan::load_le<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:160,1
    - Dst: Botan::load_be<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:161,1
    - Dst: Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:162,1
    - Dst: Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:163,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:165,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:166,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:167,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:170,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:171,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:174,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: Botan::load_le<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:179,1
    - Dst: Botan::load_be<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:180,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:182,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:183,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:184,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 188
    functionName: Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 1
    functionsReached:
    - Botan::store_be
    - Botan::load_be<Botan::SIMD_4x32>
    - Botan::SIMD_4x32::rotl
    - Botan::rotr<9>
    - Botan::load_le<StrongSIMD>
    - Botan_Tests::SIMD_4X32_Tests::test_eq
    - Botan::load_le<Botan::SIMD_4x32>
    - Botan::hex_decode
    - Botan::SIMD_4x32::shift_elems_left
    - std::vector
    - Botan::SIMD_4x32::rotr
    - Botan::SIMD_4x32::shr
    - Botan::SIMD_4x32::shl
    - auto::end
    - Botan::SIMD_4x32::transpose
    - Botan::store_le<std::vector<uint8_t>>
    - auto::begin
    - Botan::concat
    - Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
    - Botan::SIMD_4x32::SIMD_4x32
    - Botan::reverse_bytes
    - Botan::SIMD_4x32::andc
    - Test::Result::test_bin_eq
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
    - Botan::SIMD_4x32::shift_elems_right
    - Botan::rotl<3>
    - Botan::load_be<StrongSIMD>
    - Botan::SIMD_4x32::splat
    - Botan::SIMD_4x32::bswap
    linkageType: ''
    returnType: void
    signature: void test_simd_4x32()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/tests/test_simd.cpp:208,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:210,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:211,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:212,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:213,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:214,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:215,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:216,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:217,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/tests/test_simd.cpp:221,1
    - Dst: Botan::SIMD_4x32::store_be
      Src: /src/botan/src/tests/test_simd.cpp:222,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:223,1
    - Dst: store_le
      Src: /src/botan/src/tests/test_simd.cpp:225,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:227,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:228,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:229,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:230,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:231,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:232,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:233,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:234,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/tests/test_simd.cpp:238,1
    - Dst: Botan::SIMD_4x32::store_le
      Src: /src/botan/src/tests/test_simd.cpp:239,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 7
    argNames:
    - ' result'
    - ' op'
    - ' simd'
    - exp0
    - exp1
    - exp2
    - exp3
    argTypes:
    - Test::Result
    - std::string
    - Botan::SIMD_4x32
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 242
    functionName: Botan_Tests::SIMD_4X32_Tests::test_eq
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 1
    functionsReached:
    - test_u32_eq
    - store_le
    - Botan::SIMD_4x32::store_be
    - Botan::SIMD_4x32::store_le
    - test_bin_eq
    - store_be
    - Botan::SIMD_4x32::load_le
    - Botan::SIMD_4x32::load_be
    - Botan::make_uint32
    linkageType: ''
    returnType: void
    signature: "void test_eq(Test::Result& result,\n                                                 const
      std::string& op,\n                                                 const Botan::SIMD_4x32&
      simd,\n                                                 uint32_t exp0,\n                                                 uint32_t
      exp1,\n                                                 uint32_t exp2,\n                                                 uint32_t
      exp3)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/test_simd.cpp:253,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_simd.cpp:254,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
      Src: /src/botan/src/tests/test_simd.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: Botan_Tests::SIMD_2X64_Tests::run
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
    - has
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: void
    signature: void run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:270,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:270,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:271,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:271,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:273,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:274,1
    - Dst: auto::rotl
      Src: /src/botan/src/tests/test_simd.cpp:276,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:279,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan::rotr<8>
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan::rotr<8>
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan::rotr<16>
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan::rotr<16>
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan::rotr<24>
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan::rotr<24>
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan::rotr<32>
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan::rotr<32>
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:288,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:290,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:292,1
    - Dst: auto::shr
      Src: /src/botan/src/tests/test_simd.cpp:293,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:294,1
    - Dst: auto::shl
      Src: /src/botan/src/tests/test_simd.cpp:296,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:297,1
    - Dst: auto::andc
      Src: /src/botan/src/tests/test_simd.cpp:299,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:300,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: auto::bswap
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:304,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:306,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:310,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:310,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:312,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:313,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:314,1
    - Dst: interleave_high
      Src: /src/botan/src/tests/test_simd.cpp:316,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:320,1
    - Dst: interleave_low
      Src: /src/botan/src/tests/test_simd.cpp:322,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:326,1
    - Dst: all_ones
      Src: /src/botan/src/tests/test_simd.cpp:326,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:329,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:330,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:331,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:332,1
    - Dst: Botan::load_le<Botan::SIMD_2x64>
      Src: /src/botan/src/tests/test_simd.cpp:334,1
    - Dst: Botan::load_be<Botan::SIMD_2x64>
      Src: /src/botan/src/tests/test_simd.cpp:335,1
    - Dst: Botan::load_le<std::array<Botan::SIMD_2x64, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:336,1
    - Dst: Botan::load_be<std::array<Botan::SIMD_2x64, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:337,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:339,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:340,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:341,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:342,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:345,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:347,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:348,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: Botan::load_le<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:353,1
    - Dst: Botan::load_be<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:354,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:356,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:357,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:358,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 362
    functionName: Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 1
    functionsReached:
    - auto::shl
    - Botan::store_be
    - Botan::rotr<9>
    - Botan::load_le<StrongSIMD>
    - Botan::rotr<16>
    - auto::andc
    - Botan::hex_decode
    - Botan::load_be<std::array<Botan::SIMD_2x64, 2>>
    - std::vector
    - Botan::load_le<std::array<Botan::SIMD_2x64, 2>>
    - all_ones
    - auto::end
    - Botan::store_le<std::vector<uint8_t>>
    - auto::begin
    - Botan::concat
    - Botan::rotr<8>
    - Botan::reverse_bytes
    - auto::rotr
    - Test::Result::test_bin_eq
    - interleave_high
    - SIMD_2x64
    - auto::bswap
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::rotr<24>
    - Botan::rotl<3>
    - auto::shr
    - Botan::load_le<Botan::SIMD_2x64>
    - Botan::rotr<32>
    - interleave_low
    - Botan::load_be<StrongSIMD>
    - Botan_Tests::SIMD_2X64_Tests::test_eq
    - Botan::load_be<Botan::SIMD_2x64>
    - auto::rotl
    linkageType: ''
    returnType: void
    signature: void test_simd_2x64()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/tests/test_simd.cpp:378,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:380,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:382,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:385,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:387,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_simd.cpp:392,1
    - Dst: Botan::SIMD_2x64::store_be
      Src: /src/botan/src/tests/test_simd.cpp:393,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:394,1
    - Dst: store_le
      Src: /src/botan/src/tests/test_simd.cpp:396,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:398,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:400,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:403,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:405,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_simd.cpp:410,1
    - Dst: Botan::SIMD_2x64::store_le
      Src: /src/botan/src/tests/test_simd.cpp:411,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ' result'
    - ' op'
    - ' simd'
    - exp0
    - exp1
    argTypes:
    - Test::Result
    - std::string
    - Botan::SIMD_2x64
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 414
    functionName: Botan_Tests::SIMD_2X64_Tests::test_eq
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 1
    functionsReached:
    - Botan::SIMD_2x64::store_le
    - store_le
    - Botan::make_uint64
    - test_u64_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - test_bin_eq
    - store_be
    - Botan::SIMD_2x64::store_be
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    linkageType: ''
    returnType: void
    signature: void test_eq(Test::Result& result, const std::string& op, const Botan::SIMD_2x64&
      simd, uint64_t exp0, uint64_t exp1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/test_simd.cpp:37,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_simd.cpp:38,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
      Src: /src/botan/src/tests/test_simd.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Botan_Tests::SIMD_4X32_Tests::run
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
    - has
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:60,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:60,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:61,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:61,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/tests/test_simd.cpp:63,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:65,1
    - Dst: Botan::SIMD_4x32::rotl
      Src: /src/botan/src/tests/test_simd.cpp:69,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:71,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:74,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:75,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:76,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:77,1
    - Dst: Botan::SIMD_4x32::rotr
      Src: /src/botan/src/tests/test_simd.cpp:79,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:81,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:84,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:85,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:86,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:87,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:90,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:93,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:96,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:98,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:99,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:100,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:104,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:106,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:108,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:111,1
    - Dst: Botan::SIMD_4x32::shr
      Src: /src/botan/src/tests/test_simd.cpp:113,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:114,1
    - Dst: Botan::SIMD_4x32::shl
      Src: /src/botan/src/tests/test_simd.cpp:116,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:117,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:120,1
    - Dst: Botan::SIMD_4x32::andc
      Src: /src/botan/src/tests/test_simd.cpp:122,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:123,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:126,1
    - Dst: Botan::SIMD_4x32::bswap
      Src: /src/botan/src/tests/test_simd.cpp:128,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:129,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:130,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:131,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:132,1
    - Dst: Botan::SIMD_4x32::transpose
      Src: /src/botan/src/tests/test_simd.cpp:139,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:141,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:142,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:143,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:144,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:146,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:146,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:147,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:147,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:148,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:148,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:150,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:150,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:151,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:151,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:152,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:152,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:155,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:156,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:157,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:158,1
    - Dst: Botan::load_le<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:160,1
    - Dst: Botan::load_be<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:161,1
    - Dst: Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:162,1
    - Dst: Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:163,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:165,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:166,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:167,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:170,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:171,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:174,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: Botan::load_le<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:179,1
    - Dst: Botan::load_be<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:180,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:182,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:183,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:184,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 188
    functionName: Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 2
    functionsReached:
    - Botan::store_be
    - Botan::load_be<Botan::SIMD_4x32>
    - Botan::SIMD_4x32::rotl
    - Botan::rotr<9>
    - Botan::load_le<StrongSIMD>
    - Botan_Tests::SIMD_4X32_Tests::test_eq
    - Botan::load_le<Botan::SIMD_4x32>
    - Botan::hex_decode
    - Botan::SIMD_4x32::shift_elems_left
    - std::vector
    - Botan::SIMD_4x32::rotr
    - Botan::SIMD_4x32::shr
    - Botan::SIMD_4x32::shl
    - auto::end
    - Botan::SIMD_4x32::transpose
    - Botan::store_le<std::vector<uint8_t>>
    - auto::begin
    - Botan::concat
    - Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
    - Botan::SIMD_4x32::SIMD_4x32
    - Botan::reverse_bytes
    - Botan::SIMD_4x32::andc
    - Test::Result::test_bin_eq
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
    - Botan::SIMD_4x32::shift_elems_right
    - Botan::rotl<3>
    - Botan::load_be<StrongSIMD>
    - Botan::SIMD_4x32::splat
    - Botan::SIMD_4x32::bswap
    linkageType: ''
    returnType: void
    signature: void test_simd_4x32()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/tests/test_simd.cpp:208,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:210,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:211,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:212,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:213,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:214,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:215,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:216,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:217,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/tests/test_simd.cpp:221,1
    - Dst: Botan::SIMD_4x32::store_be
      Src: /src/botan/src/tests/test_simd.cpp:222,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:223,1
    - Dst: store_le
      Src: /src/botan/src/tests/test_simd.cpp:225,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:227,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:228,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:229,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:230,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:231,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:232,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:233,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:234,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/tests/test_simd.cpp:238,1
    - Dst: Botan::SIMD_4x32::store_le
      Src: /src/botan/src/tests/test_simd.cpp:239,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 7
    argNames:
    - ' result'
    - ' op'
    - ' simd'
    - exp0
    - exp1
    - exp2
    - exp3
    argTypes:
    - Test::Result
    - std::string
    - Botan::SIMD_4x32
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 242
    functionName: Botan_Tests::SIMD_4X32_Tests::test_eq
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 2
    functionsReached:
    - test_u32_eq
    - store_le
    - Botan::SIMD_4x32::store_be
    - Botan::SIMD_4x32::store_le
    - test_bin_eq
    - store_be
    - Botan::SIMD_4x32::load_le
    - Botan::SIMD_4x32::load_be
    - Botan::make_uint32
    linkageType: ''
    returnType: void
    signature: "void test_eq(Test::Result& result,\n                                                 const
      std::string& op,\n                                                 const Botan::SIMD_4x32&
      simd,\n                                                 uint32_t exp0,\n                                                 uint32_t
      exp1,\n                                                 uint32_t exp2,\n                                                 uint32_t
      exp3)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/test_simd.cpp:253,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_simd.cpp:254,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
      Src: /src/botan/src/tests/test_simd.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: Botan_Tests::SIMD_2X64_Tests::run
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
    - has
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: void
    signature: void run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:270,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:270,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:271,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:271,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:273,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:274,1
    - Dst: auto::rotl
      Src: /src/botan/src/tests/test_simd.cpp:276,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:279,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan::rotr<8>
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan::rotr<8>
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan::rotr<16>
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan::rotr<16>
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan::rotr<24>
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan::rotr<24>
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan::rotr<32>
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan::rotr<32>
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:288,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:290,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:292,1
    - Dst: auto::shr
      Src: /src/botan/src/tests/test_simd.cpp:293,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:294,1
    - Dst: auto::shl
      Src: /src/botan/src/tests/test_simd.cpp:296,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:297,1
    - Dst: auto::andc
      Src: /src/botan/src/tests/test_simd.cpp:299,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:300,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: auto::bswap
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:304,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:306,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:310,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:310,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:312,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:313,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:314,1
    - Dst: interleave_high
      Src: /src/botan/src/tests/test_simd.cpp:316,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:320,1
    - Dst: interleave_low
      Src: /src/botan/src/tests/test_simd.cpp:322,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:326,1
    - Dst: all_ones
      Src: /src/botan/src/tests/test_simd.cpp:326,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:329,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:330,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:331,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:332,1
    - Dst: Botan::load_le<Botan::SIMD_2x64>
      Src: /src/botan/src/tests/test_simd.cpp:334,1
    - Dst: Botan::load_be<Botan::SIMD_2x64>
      Src: /src/botan/src/tests/test_simd.cpp:335,1
    - Dst: Botan::load_le<std::array<Botan::SIMD_2x64, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:336,1
    - Dst: Botan::load_be<std::array<Botan::SIMD_2x64, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:337,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:339,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:340,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:341,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:342,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:345,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:347,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:348,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: Botan::load_le<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:353,1
    - Dst: Botan::load_be<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:354,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:356,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:357,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:358,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 362
    functionName: Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 2
    functionsReached:
    - auto::shl
    - Botan::store_be
    - Botan::rotr<9>
    - Botan::load_le<StrongSIMD>
    - Botan::rotr<16>
    - auto::andc
    - Botan::hex_decode
    - Botan::load_be<std::array<Botan::SIMD_2x64, 2>>
    - std::vector
    - Botan::load_le<std::array<Botan::SIMD_2x64, 2>>
    - all_ones
    - auto::end
    - Botan::store_le<std::vector<uint8_t>>
    - auto::begin
    - Botan::concat
    - Botan::rotr<8>
    - Botan::reverse_bytes
    - auto::rotr
    - Test::Result::test_bin_eq
    - interleave_high
    - SIMD_2x64
    - auto::bswap
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::rotr<24>
    - Botan::rotl<3>
    - auto::shr
    - Botan::load_le<Botan::SIMD_2x64>
    - Botan::rotr<32>
    - interleave_low
    - Botan::load_be<StrongSIMD>
    - Botan_Tests::SIMD_2X64_Tests::test_eq
    - Botan::load_be<Botan::SIMD_2x64>
    - auto::rotl
    linkageType: ''
    returnType: void
    signature: void test_simd_2x64()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/tests/test_simd.cpp:378,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:380,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:382,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:385,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:387,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_simd.cpp:392,1
    - Dst: Botan::SIMD_2x64::store_be
      Src: /src/botan/src/tests/test_simd.cpp:393,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:394,1
    - Dst: store_le
      Src: /src/botan/src/tests/test_simd.cpp:396,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:398,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:400,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:403,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:405,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_simd.cpp:410,1
    - Dst: Botan::SIMD_2x64::store_le
      Src: /src/botan/src/tests/test_simd.cpp:411,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ' result'
    - ' op'
    - ' simd'
    - exp0
    - exp1
    argTypes:
    - Test::Result
    - std::string
    - Botan::SIMD_2x64
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 414
    functionName: Botan_Tests::SIMD_2X64_Tests::test_eq
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 2
    functionsReached:
    - Botan::SIMD_2x64::store_le
    - store_le
    - Botan::make_uint64
    - test_u64_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - test_bin_eq
    - store_be
    - Botan::SIMD_2x64::store_be
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    linkageType: ''
    returnType: void
    signature: void test_eq(Test::Result& result, const std::string& op, const Botan::SIMD_2x64&
      simd, uint64_t exp0, uint64_t exp1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/test_simd.cpp:37,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_simd.cpp:38,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
      Src: /src/botan/src/tests/test_simd.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Botan_Tests::SIMD_4X32_Tests::run
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
    - has
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:60,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:60,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:61,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:61,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/tests/test_simd.cpp:63,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:65,1
    - Dst: Botan::SIMD_4x32::rotl
      Src: /src/botan/src/tests/test_simd.cpp:69,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:71,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:74,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:75,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:76,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:77,1
    - Dst: Botan::SIMD_4x32::rotr
      Src: /src/botan/src/tests/test_simd.cpp:79,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:81,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:84,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:85,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:86,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:87,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:90,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:93,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:96,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:98,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:99,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:100,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:104,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:106,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:108,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:111,1
    - Dst: Botan::SIMD_4x32::shr
      Src: /src/botan/src/tests/test_simd.cpp:113,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:114,1
    - Dst: Botan::SIMD_4x32::shl
      Src: /src/botan/src/tests/test_simd.cpp:116,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:117,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:120,1
    - Dst: Botan::SIMD_4x32::andc
      Src: /src/botan/src/tests/test_simd.cpp:122,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:123,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:126,1
    - Dst: Botan::SIMD_4x32::bswap
      Src: /src/botan/src/tests/test_simd.cpp:128,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:129,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:130,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:131,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:132,1
    - Dst: Botan::SIMD_4x32::transpose
      Src: /src/botan/src/tests/test_simd.cpp:139,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:141,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:142,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:143,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:144,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:146,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:146,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:147,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:147,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:148,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:148,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:150,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:150,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:151,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:151,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:152,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:152,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:155,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:156,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:157,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:158,1
    - Dst: Botan::load_le<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:160,1
    - Dst: Botan::load_be<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:161,1
    - Dst: Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:162,1
    - Dst: Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:163,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:165,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:166,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:167,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:170,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:171,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:174,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: Botan::load_le<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:179,1
    - Dst: Botan::load_be<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:180,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:182,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:183,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:184,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 188
    functionName: Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 3
    functionsReached:
    - Botan::store_be
    - Botan::load_be<Botan::SIMD_4x32>
    - Botan::SIMD_4x32::rotl
    - Botan::rotr<9>
    - Botan::load_le<StrongSIMD>
    - Botan_Tests::SIMD_4X32_Tests::test_eq
    - Botan::load_le<Botan::SIMD_4x32>
    - Botan::hex_decode
    - Botan::SIMD_4x32::shift_elems_left
    - std::vector
    - Botan::SIMD_4x32::rotr
    - Botan::SIMD_4x32::shr
    - Botan::SIMD_4x32::shl
    - auto::end
    - Botan::SIMD_4x32::transpose
    - Botan::store_le<std::vector<uint8_t>>
    - auto::begin
    - Botan::concat
    - Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
    - Botan::SIMD_4x32::SIMD_4x32
    - Botan::reverse_bytes
    - Botan::SIMD_4x32::andc
    - Test::Result::test_bin_eq
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
    - Botan::SIMD_4x32::shift_elems_right
    - Botan::rotl<3>
    - Botan::load_be<StrongSIMD>
    - Botan::SIMD_4x32::splat
    - Botan::SIMD_4x32::bswap
    linkageType: ''
    returnType: void
    signature: void test_simd_4x32()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/tests/test_simd.cpp:208,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:210,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:211,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:212,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:213,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:214,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:215,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:216,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:217,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/tests/test_simd.cpp:221,1
    - Dst: Botan::SIMD_4x32::store_be
      Src: /src/botan/src/tests/test_simd.cpp:222,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:223,1
    - Dst: store_le
      Src: /src/botan/src/tests/test_simd.cpp:225,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:227,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:228,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:229,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:230,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:231,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:232,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:233,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:234,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/tests/test_simd.cpp:238,1
    - Dst: Botan::SIMD_4x32::store_le
      Src: /src/botan/src/tests/test_simd.cpp:239,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 7
    argNames:
    - ' result'
    - ' op'
    - ' simd'
    - exp0
    - exp1
    - exp2
    - exp3
    argTypes:
    - Test::Result
    - std::string
    - Botan::SIMD_4x32
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 242
    functionName: Botan_Tests::SIMD_4X32_Tests::test_eq
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 3
    functionsReached:
    - test_u32_eq
    - store_le
    - Botan::SIMD_4x32::store_be
    - Botan::SIMD_4x32::store_le
    - test_bin_eq
    - store_be
    - Botan::SIMD_4x32::load_le
    - Botan::SIMD_4x32::load_be
    - Botan::make_uint32
    linkageType: ''
    returnType: void
    signature: "void test_eq(Test::Result& result,\n                                                 const
      std::string& op,\n                                                 const Botan::SIMD_4x32&
      simd,\n                                                 uint32_t exp0,\n                                                 uint32_t
      exp1,\n                                                 uint32_t exp2,\n                                                 uint32_t
      exp3)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/test_simd.cpp:253,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_simd.cpp:254,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
      Src: /src/botan/src/tests/test_simd.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: Botan_Tests::SIMD_2X64_Tests::run
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
    - has
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: void
    signature: void run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:270,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:270,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:271,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:271,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:273,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:274,1
    - Dst: auto::rotl
      Src: /src/botan/src/tests/test_simd.cpp:276,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:279,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan::rotr<8>
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan::rotr<8>
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan::rotr<16>
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan::rotr<16>
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan::rotr<24>
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan::rotr<24>
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan::rotr<32>
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan::rotr<32>
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:288,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:290,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:292,1
    - Dst: auto::shr
      Src: /src/botan/src/tests/test_simd.cpp:293,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:294,1
    - Dst: auto::shl
      Src: /src/botan/src/tests/test_simd.cpp:296,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:297,1
    - Dst: auto::andc
      Src: /src/botan/src/tests/test_simd.cpp:299,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:300,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: auto::bswap
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:304,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:306,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:310,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:310,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:312,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:313,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:314,1
    - Dst: interleave_high
      Src: /src/botan/src/tests/test_simd.cpp:316,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:320,1
    - Dst: interleave_low
      Src: /src/botan/src/tests/test_simd.cpp:322,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:326,1
    - Dst: all_ones
      Src: /src/botan/src/tests/test_simd.cpp:326,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:329,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:330,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:331,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:332,1
    - Dst: Botan::load_le<Botan::SIMD_2x64>
      Src: /src/botan/src/tests/test_simd.cpp:334,1
    - Dst: Botan::load_be<Botan::SIMD_2x64>
      Src: /src/botan/src/tests/test_simd.cpp:335,1
    - Dst: Botan::load_le<std::array<Botan::SIMD_2x64, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:336,1
    - Dst: Botan::load_be<std::array<Botan::SIMD_2x64, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:337,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:339,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:340,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:341,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:342,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:345,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:347,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:348,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: Botan::load_le<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:353,1
    - Dst: Botan::load_be<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:354,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:356,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:357,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:358,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 362
    functionName: Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 3
    functionsReached:
    - auto::shl
    - Botan::store_be
    - Botan::rotr<9>
    - Botan::load_le<StrongSIMD>
    - Botan::rotr<16>
    - auto::andc
    - Botan::hex_decode
    - Botan::load_be<std::array<Botan::SIMD_2x64, 2>>
    - std::vector
    - Botan::load_le<std::array<Botan::SIMD_2x64, 2>>
    - all_ones
    - auto::end
    - Botan::store_le<std::vector<uint8_t>>
    - auto::begin
    - Botan::concat
    - Botan::rotr<8>
    - Botan::reverse_bytes
    - auto::rotr
    - Test::Result::test_bin_eq
    - interleave_high
    - SIMD_2x64
    - auto::bswap
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::rotr<24>
    - Botan::rotl<3>
    - auto::shr
    - Botan::load_le<Botan::SIMD_2x64>
    - Botan::rotr<32>
    - interleave_low
    - Botan::load_be<StrongSIMD>
    - Botan_Tests::SIMD_2X64_Tests::test_eq
    - Botan::load_be<Botan::SIMD_2x64>
    - auto::rotl
    linkageType: ''
    returnType: void
    signature: void test_simd_2x64()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/tests/test_simd.cpp:378,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:380,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:382,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:385,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:387,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_simd.cpp:392,1
    - Dst: Botan::SIMD_2x64::store_be
      Src: /src/botan/src/tests/test_simd.cpp:393,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:394,1
    - Dst: store_le
      Src: /src/botan/src/tests/test_simd.cpp:396,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:398,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:400,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:403,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:405,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_simd.cpp:410,1
    - Dst: Botan::SIMD_2x64::store_le
      Src: /src/botan/src/tests/test_simd.cpp:411,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ' result'
    - ' op'
    - ' simd'
    - exp0
    - exp1
    argTypes:
    - Test::Result
    - std::string
    - Botan::SIMD_2x64
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 414
    functionName: Botan_Tests::SIMD_2X64_Tests::test_eq
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 3
    functionsReached:
    - Botan::SIMD_2x64::store_le
    - store_le
    - Botan::make_uint64
    - test_u64_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - test_bin_eq
    - store_be
    - Botan::SIMD_2x64::store_be
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    linkageType: ''
    returnType: void
    signature: void test_eq(Test::Result& result, const std::string& op, const Botan::SIMD_2x64&
      simd, uint64_t exp0, uint64_t exp1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/test_simd.cpp:37,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_simd.cpp:38,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
      Src: /src/botan/src/tests/test_simd.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Botan_Tests::SIMD_4X32_Tests::run
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
    - has
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:60,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:60,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:61,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:61,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/tests/test_simd.cpp:63,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:65,1
    - Dst: Botan::SIMD_4x32::rotl
      Src: /src/botan/src/tests/test_simd.cpp:69,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:71,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:74,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:75,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:76,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:77,1
    - Dst: Botan::SIMD_4x32::rotr
      Src: /src/botan/src/tests/test_simd.cpp:79,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:81,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:84,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:85,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:86,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:87,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:90,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:93,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:96,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:98,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:99,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:100,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:104,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:106,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:108,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:111,1
    - Dst: Botan::SIMD_4x32::shr
      Src: /src/botan/src/tests/test_simd.cpp:113,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:114,1
    - Dst: Botan::SIMD_4x32::shl
      Src: /src/botan/src/tests/test_simd.cpp:116,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:117,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:120,1
    - Dst: Botan::SIMD_4x32::andc
      Src: /src/botan/src/tests/test_simd.cpp:122,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:123,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:126,1
    - Dst: Botan::SIMD_4x32::bswap
      Src: /src/botan/src/tests/test_simd.cpp:128,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:129,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:130,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:131,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:132,1
    - Dst: Botan::SIMD_4x32::transpose
      Src: /src/botan/src/tests/test_simd.cpp:139,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:141,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:142,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:143,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:144,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:146,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:146,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:147,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:147,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:148,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:148,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:150,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:150,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:151,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:151,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:152,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:152,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:155,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:156,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:157,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:158,1
    - Dst: Botan::load_le<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:160,1
    - Dst: Botan::load_be<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:161,1
    - Dst: Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:162,1
    - Dst: Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:163,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:165,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:166,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:167,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:170,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:171,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:174,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:175,1
    - Dst: Botan::load_le<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:179,1
    - Dst: Botan::load_be<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:180,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:182,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:183,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:184,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 188
    functionName: Botan_Tests::SIMD_4X32_Tests::test_simd_4x32
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 4
    functionsReached:
    - Botan::store_be
    - Botan::load_be<Botan::SIMD_4x32>
    - Botan::SIMD_4x32::rotl
    - Botan::rotr<9>
    - Botan::load_le<StrongSIMD>
    - Botan_Tests::SIMD_4X32_Tests::test_eq
    - Botan::load_le<Botan::SIMD_4x32>
    - Botan::hex_decode
    - Botan::SIMD_4x32::shift_elems_left
    - std::vector
    - Botan::SIMD_4x32::rotr
    - Botan::SIMD_4x32::shr
    - Botan::SIMD_4x32::shl
    - auto::end
    - Botan::SIMD_4x32::transpose
    - Botan::store_le<std::vector<uint8_t>>
    - auto::begin
    - Botan::concat
    - Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
    - Botan::SIMD_4x32::SIMD_4x32
    - Botan::reverse_bytes
    - Botan::SIMD_4x32::andc
    - Test::Result::test_bin_eq
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
    - Botan::SIMD_4x32::shift_elems_right
    - Botan::rotl<3>
    - Botan::load_be<StrongSIMD>
    - Botan::SIMD_4x32::splat
    - Botan::SIMD_4x32::bswap
    linkageType: ''
    returnType: void
    signature: void test_simd_4x32()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/tests/test_simd.cpp:208,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:210,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:211,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:212,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:213,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:214,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:215,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:216,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:217,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/tests/test_simd.cpp:221,1
    - Dst: Botan::SIMD_4x32::store_be
      Src: /src/botan/src/tests/test_simd.cpp:222,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:223,1
    - Dst: store_le
      Src: /src/botan/src/tests/test_simd.cpp:225,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:227,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:228,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:229,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:230,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:231,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:232,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_simd.cpp:233,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:234,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/tests/test_simd.cpp:238,1
    - Dst: Botan::SIMD_4x32::store_le
      Src: /src/botan/src/tests/test_simd.cpp:239,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 7
    argNames:
    - ' result'
    - ' op'
    - ' simd'
    - exp0
    - exp1
    - exp2
    - exp3
    argTypes:
    - Test::Result
    - std::string
    - Botan::SIMD_4x32
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 242
    functionName: Botan_Tests::SIMD_4X32_Tests::test_eq
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 4
    functionsReached:
    - test_u32_eq
    - store_le
    - Botan::SIMD_4x32::store_be
    - Botan::SIMD_4x32::store_le
    - test_bin_eq
    - store_be
    - Botan::SIMD_4x32::load_le
    - Botan::SIMD_4x32::load_be
    - Botan::make_uint32
    linkageType: ''
    returnType: void
    signature: "void test_eq(Test::Result& result,\n                                                 const
      std::string& op,\n                                                 const Botan::SIMD_4x32&
      simd,\n                                                 uint32_t exp0,\n                                                 uint32_t
      exp1,\n                                                 uint32_t exp2,\n                                                 uint32_t
      exp3)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/test_simd.cpp:253,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_simd.cpp:254,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
      Src: /src/botan/src/tests/test_simd.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: Botan_Tests::SIMD_2X64_Tests::run
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
    - has
    - Botan_Tests::Test::Result::Note
    linkageType: ''
    returnType: void
    signature: void run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:270,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:270,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:271,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:271,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:273,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:274,1
    - Dst: auto::rotl
      Src: /src/botan/src/tests/test_simd.cpp:276,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:277,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:279,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:280,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan::rotr<8>
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan::rotr<8>
      Src: /src/botan/src/tests/test_simd.cpp:282,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan::rotr<16>
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan::rotr<16>
      Src: /src/botan/src/tests/test_simd.cpp:283,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan::rotr<24>
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan::rotr<24>
      Src: /src/botan/src/tests/test_simd.cpp:284,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: auto::rotr
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan::rotr<32>
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan::rotr<32>
      Src: /src/botan/src/tests/test_simd.cpp:285,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:288,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:290,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:292,1
    - Dst: auto::shr
      Src: /src/botan/src/tests/test_simd.cpp:293,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:294,1
    - Dst: auto::shl
      Src: /src/botan/src/tests/test_simd.cpp:296,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:297,1
    - Dst: auto::andc
      Src: /src/botan/src/tests/test_simd.cpp:299,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:300,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: auto::bswap
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:302,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:304,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:306,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:310,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:310,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:312,1
    - Dst: SIMD_2x64
      Src: /src/botan/src/tests/test_simd.cpp:313,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:314,1
    - Dst: interleave_high
      Src: /src/botan/src/tests/test_simd.cpp:316,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:320,1
    - Dst: interleave_low
      Src: /src/botan/src/tests/test_simd.cpp:322,1
    - Dst: Botan_Tests::SIMD_2X64_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:326,1
    - Dst: all_ones
      Src: /src/botan/src/tests/test_simd.cpp:326,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:329,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:330,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:331,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:332,1
    - Dst: Botan::load_le<Botan::SIMD_2x64>
      Src: /src/botan/src/tests/test_simd.cpp:334,1
    - Dst: Botan::load_be<Botan::SIMD_2x64>
      Src: /src/botan/src/tests/test_simd.cpp:335,1
    - Dst: Botan::load_le<std::array<Botan::SIMD_2x64, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:336,1
    - Dst: Botan::load_be<std::array<Botan::SIMD_2x64, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:337,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:339,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:340,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:341,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:342,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:345,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:346,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:347,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:348,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:349,1
    - Dst: Botan::load_le<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:353,1
    - Dst: Botan::load_be<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:354,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:356,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:357,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:358,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 362
    functionName: Botan_Tests::SIMD_2X64_Tests::test_simd_2x64
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 4
    functionsReached:
    - auto::shl
    - Botan::store_be
    - Botan::rotr<9>
    - Botan::load_le<StrongSIMD>
    - Botan::rotr<16>
    - auto::andc
    - Botan::hex_decode
    - Botan::load_be<std::array<Botan::SIMD_2x64, 2>>
    - std::vector
    - Botan::load_le<std::array<Botan::SIMD_2x64, 2>>
    - all_ones
    - auto::end
    - Botan::store_le<std::vector<uint8_t>>
    - auto::begin
    - Botan::concat
    - Botan::rotr<8>
    - Botan::reverse_bytes
    - auto::rotr
    - Test::Result::test_bin_eq
    - interleave_high
    - SIMD_2x64
    - auto::bswap
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::rotr<24>
    - Botan::rotl<3>
    - auto::shr
    - Botan::load_le<Botan::SIMD_2x64>
    - Botan::rotr<32>
    - interleave_low
    - Botan::load_be<StrongSIMD>
    - Botan_Tests::SIMD_2X64_Tests::test_eq
    - Botan::load_be<Botan::SIMD_2x64>
    - auto::rotl
    linkageType: ''
    returnType: void
    signature: void test_simd_2x64()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/tests/test_simd.cpp:378,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:380,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:382,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:385,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:387,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_simd.cpp:392,1
    - Dst: Botan::SIMD_2x64::store_be
      Src: /src/botan/src/tests/test_simd.cpp:393,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:394,1
    - Dst: store_le
      Src: /src/botan/src/tests/test_simd.cpp:396,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:398,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:400,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_simd.cpp:403,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_simd.cpp:405,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_simd.cpp:410,1
    - Dst: Botan::SIMD_2x64::store_le
      Src: /src/botan/src/tests/test_simd.cpp:411,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_simd.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ' result'
    - ' op'
    - ' simd'
    - exp0
    - exp1
    argTypes:
    - Test::Result
    - std::string
    - Botan::SIMD_2x64
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 414
    functionName: Botan_Tests::SIMD_2X64_Tests::test_eq
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 4
    functionsReached:
    - Botan::SIMD_2x64::store_le
    - store_le
    - Botan::make_uint64
    - test_u64_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - test_bin_eq
    - store_be
    - Botan::SIMD_2x64::store_be
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    linkageType: ''
    returnType: void
    signature: void test_eq(Test::Result& result, const std::string& op, const Botan::SIMD_2x64&
      simd, uint64_t exp0, uint64_t exp1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_rpki.cpp:38,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_x509_rpki.cpp:38,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:40,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 28
    functionsReached:
    - Botan::X509_Time
    - static_cast<uint32_t>
    - Botan::calendar_point
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:50,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ca_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 24
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options ca_opts(const std::string& sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:63,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/test_x509_rpki.cpp:65,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/test_x509_rpki.cpp:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: Botan_Tests::req_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::not_before
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:82,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_rpki.cpp:84,1
    - Dst: Botan_Tests::Test::supported_ec_group_name
      Src: /src/botan/src/tests/test_x509_rpki.cpp:91,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:93,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:98,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:100,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_rpki.cpp:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 104
    functionName: Botan_Tests::get_sig_algo_padding_and_generate_key
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::create_private_key
    - Test_Error
    - Botan_Tests::Test::supported_ec_group_name
    - generate_key
    linkageType: ''
    returnType: std::tuple<std::string, std::string, std::string, std::unique_ptr<Botan::Private_Key>>
    signature: std::tuple<std::string, std::string, std::string, std::unique_ptr<Botan::Private_Key>>
      get_sig_algo_padding_and_generate_key(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:107,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:107,1
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:108,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: Botan_Tests::make_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: "Botan::X509_Certificate make_self_signed(std::unique_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                         const Botan::X509_Cert_Options&
      opts = std::move(ca_opts()))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:113,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:113,1
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:114,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:115,1
    - Dst: generate_another
      Src: /src/botan/src/tests/test_x509_rpki.cpp:117,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: Botan_Tests::make_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_self_signed_cert
    - generate_another
    - std::move
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: CA_Creation_Result
    signature: "CA_Creation_Result make_ca(std::unique_ptr<Botan::RandomNumberGenerator>&
      rng,\n                           const Botan::X509_Cert_Options& opts = std::move(ca_opts()))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:126,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:128,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:131,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ext
    - ' parent_ca'
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::Certificate_Extension>
    - Botan::X509_CA
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: Botan_Tests::make_and_sign_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_cert_req
    - std::move
    - sign_request
    - std::make_pair
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    linkageType: ''
    returnType: std::pair<Botan::X509_Certificate, Botan::X509_CA>
    signature: "std::pair<Botan::X509_Certificate, Botan::X509_CA> make_and_sign_ca(\n
      \  std::unique_ptr<Botan::Certificate_Extension> ext,\n   Botan::X509_CA& parent_ca,\n
      \  std::unique_ptr<Botan::RandomNumberGenerator>& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:145,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:150,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:153,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:155,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:155,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:157,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:157,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:158,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:158,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:160,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:168,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:171,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:171,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:179,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:189,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:197,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:199,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:201,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:203,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:205,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:207,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:209,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:211,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:213,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:215,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:217,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:222,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:223,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:235,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:236,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:236,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:238,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:239,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:241,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:241,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:243,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:243,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:245,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:245,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:247,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:247,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:248,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:248,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:251,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:251,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:261,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:263,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:270,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:270,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:277,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:283,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:284,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 289
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - ranges
    - min
    - Test::Result::start_timer
    - safi
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Botan_Tests::Test::data_file
    - max
    - auto*::addr_blocks
    - Test::Result::test_sz_eq
    - size
    - Test::Result::test_bin_eq
    - Test::Result::test_opt_u8_eq
    - addr_choice
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:293,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:298,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:300,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:303,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:305,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:306,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:310,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:310,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:313,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:313,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:320,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:325,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:326,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:326,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:330,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:330,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:334,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:336,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:341,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:341,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:342,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:346,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:346,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:352,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:357,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:357,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:358,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:362,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:362,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 367
    functionName: Botan_Tests::test_x509_as_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - min
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_u32_eq
    - Botan_Tests::Test::data_file
    - max
    - rdi
    - asnum
    - Test::Result::test_is_false
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    - auto*::as_identifiers
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_extension_decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:373,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:376,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:379,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:380,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:381,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:382,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:383,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:384,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:385,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:386,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:388,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:391,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:395,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:400,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:403,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:403,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:405,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:405,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:406,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:406,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:407,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:407,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:410,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:410,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:413,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:413,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:415,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:415,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:416,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:416,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:418,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:418,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:419,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:419,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:431,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:432,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:435,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:438,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:443,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:447,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:450,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:450,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:453,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:453,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:454,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:454,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:457,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:457,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:460,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:464,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:467,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:467,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:469,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:472,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 477
    functionName: Botan_Tests::test_x509_ip_addr_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::Cert_Extension::static_oid
    - Botan::X509_Cert_Options::extensions::add
    - min
    - safi
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::v3_extensions
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - auto*::addr_blocks
    - addr_choice
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::make_self_signed
    - std::unique_ptr::inherit
    - max
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_rfc3779_example()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:481,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:484,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:486,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:489,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:491,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:493,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:495,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:498,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:500,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:502,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:503,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:503,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:505,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:506,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:506,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:509,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 516
    functionName: Botan_Tests::test_x509_ip_addr_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan_Tests::make_self_signed
    - auto::v3_extensions
    - Test::Result::start_timer
    - Botan::Cert_Extension::static_oid
    - std::move
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_encode_builder()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::bit_set
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bit_set(size_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::bit_set
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bit_set(size_t v)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:533,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:537,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:539,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:542,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:543,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:544,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:545,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:546,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:547,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:549,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:552,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:554,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:558,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:560,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:564,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:566,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:569,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:571,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:575,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:578,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:582,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:584,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:586,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:587,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:588,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:589,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:591,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:592,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:593,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:594,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:598,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:599,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:600,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:601,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:606,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:607,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:608,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:609,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:612,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:614,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:617,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:619,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:622,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:623,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:627,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:630,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:633,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:635,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:635,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:637,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:640,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:641,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:643,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:645,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:645,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:653,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:653,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:656,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:675,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:678,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:678,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:680,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 702
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - auto::max
    - Botan::X509::create_cert_req
    - Test::Result::test_u16_eq
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - empty
    - min
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - auto::afi
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::empty
    - auto::ranges
    - Botan_Tests::bit_set
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - auto::min
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - auto::addr_choice
    - size
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_encode_ctor()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:706,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:710,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:716,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:718,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:720,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:721,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:730,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:742,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:743,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:748,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:750,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:752,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:755,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:757,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:761,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:765,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:766,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:767,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:772,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:780,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 782
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - auto::max
    - Botan::X509::create_cert_req
    - Test::Result::test_u16_eq
    - Test::Result::test_not_null
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - std::vector::size
    - auto::afi
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - Botan_Tests::bit_set
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Botan_Tests::from_date
    - Botan_Tests::Test::new_rng
    - auto::min
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:786,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:790,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:792,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:793,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:809,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:810,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:811,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:812,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:815,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:819,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:821,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:825,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:828,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:829,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:830,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:832,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:832,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:833,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:839,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:839,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 845
    functionName: Botan_Tests::test_x509_ip_addr_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Test::Result::test_not_null
    - Botan_Tests::make_ca
    - IPAddressFamily
    - Test::Result::test_sz_eq
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - auto::size
    - std::move
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Botan_Tests::from_date
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - std::vector::push_back
    - max
    - sign_request
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_range_merge()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:849,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:853,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:855,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:856,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:868,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:868,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:870,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:871,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:880,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:880,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:897,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:898,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:899,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:900,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:901,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:902,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:908,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:912,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:915,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:916,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:917,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:926,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:927,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:930,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:933,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:934,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:946,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:948,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:956,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:956,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:959,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:960,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:960,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:963,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:963,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:971,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:974,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:976,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:976,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:980,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:983,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:984,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:986,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:986,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:987,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:988,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:997,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:999,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:999,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1007,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1010,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1012,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1012,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1016,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1019,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1020,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1022,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1022,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1023,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1024,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1030,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 1032
    functionName: Botan_Tests::test_x509_ip_addr_blocks_family_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - Test::Result::test_not_null
    - Botan_Tests::make_ca
    - Test::Result::test_sz_eq
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - safi
    - std::to_string
    - std::move
    - auto::size
    - IPAddressBlocks::IPAddressChoice::ranges
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - std::vector::size
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - addr_choice
    - Botan_Tests::from_date
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - afi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - size
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_family_merge()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1036,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1039,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1050,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1052,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1053,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1055,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1058,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1063,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1065,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1066,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1069,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1071,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1072,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1074,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1078,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1079,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1079,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1080,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1081,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1082,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1082,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1085,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1086,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1089,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1090,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1093,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1095,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1096,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1098,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1102,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1106,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1109,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1109,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1111,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1119,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1119,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1034
    functionDepth: 3
    functionLinenumber: 1034
    functionLinenumberEnd: 1124
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::inherit
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_success_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1131,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1148,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1150,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1153,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1155,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1158,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1160,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1162,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1163,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1164,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1165,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1170,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1171,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1173,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1174,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1177,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1180,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1181,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1183,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1184,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1187,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1191,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1193,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1195,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1197,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1200,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1202,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1204,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1205,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1206,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1213,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1215,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1218,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1220,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1223,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1225,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1227,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1228,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1229,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1234,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1235,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1237,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1238,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1241,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1243,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1245,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1246,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1248,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1248,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1250,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1251,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1254,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1255,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1258,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1258,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1262,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1263,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1266,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1268,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1268,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1270,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1278,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1278,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1283
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_success_ctor()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1290,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1302,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1304,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1306,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1309,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1313,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1316,1
    - Dst: std::unique_ptr::restrict
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1319,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1321,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1324,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1327,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1327,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1330,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1338,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1340,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1342,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1345,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1348,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1351,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1359,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1361,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1365,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1285
    functionDepth: 3
    functionLinenumber: 1285
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::restrict
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::inherit
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_failure_builder()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1374,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1391,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1394,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1394,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1395,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1397,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1399,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1401,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1401,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1407,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1409,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1415,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1419,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1421,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1422,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1422,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1433,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1441,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1443,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1445,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1445,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1446,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1449,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1451,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1462,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1464,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1468,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1369
    functionDepth: 3
    functionLinenumber: 1369
    functionLinenumberEnd: 1470
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::vector::push_back
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_failure_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1477,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1480,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1481,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1482,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1483,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1484,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1486,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1487,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1487,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1489,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1492,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1495,1
    - Dst: auto::asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1472
    functionDepth: 3
    functionLinenumber: 1472
    functionLinenumberEnd: 1502
    functionName: Botan_Tests::test_x509_as_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan_Tests::make_self_signed
    - std::make_unique<ASBlocks>
    - Test::Result::start_timer
    - auto::v3_extensions
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::unique_ptr::inherit_rdi
    - Test::Result::test_u32_eq
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    - auto::asnum
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_rfc3779_example()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1506,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1509,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1511,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1513,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1514,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1515,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1516,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1518,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1519,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1521,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1523,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1526,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1529,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1504
    functionDepth: 3
    functionLinenumber: 1504
    functionLinenumberEnd: 1533
    functionName: Botan_Tests::test_x509_as_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::make_self_signed
    - std::make_unique<ASBlocks>
    - Test::Result::start_timer
    - auto::v3_extensions
    - std::unique_ptr::add_asnum
    - std::unique_ptr::inherit_asnum
    - std::move
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::unique_ptr::restrict_asnum
    - std::unique_ptr::add_rdi
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_encode_builder()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1537,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1541,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1543,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1546,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1547,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1548,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1549,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1554,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1555,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1556,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1558,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1559,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1560,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1564,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1565,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1566,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1571,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1572,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1573,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1576,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1577,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1579,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1579,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1580,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1582,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1584,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1587,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1591,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1592,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1604,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1604,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1616,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1616,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1617,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1617,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1619,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1619,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1620,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1620,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1630,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1535
    functionDepth: 3
    functionLinenumber: 1535
    functionLinenumberEnd: 1632
    functionName: Botan_Tests::test_x509_as_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - empty
    - min
    - std::move
    - ASIdOrRange
    - Botan::X509_Certificate::v3_extensions
    - ASIdentifierChoice
    - Test::Result::test_u32_eq
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - rdi
    - asnum
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto*::as_identifiers
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - max
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_extension_encode_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1636,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1640,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1642,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1643,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1656,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1656,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1658,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1661,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1663,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1663,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1665,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1669,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1673,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1675,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1677,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1680,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1680,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1634
    functionDepth: 3
    functionLinenumber: 1634
    functionLinenumberEnd: 1686
    functionName: Botan_Tests::test_x509_as_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Test::Result::test_sz_eq
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - std::move
    - Botan::X509_Certificate::v3_extensions
    - ASIdentifierChoice
    - Test::Result::test_u32_eq
    - std::vector::size
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector::emplace_back
    - asnum
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto*::as_identifiers
    - std::optional
    - std::make_unique<ASBlocks>
    - max
    - sign_request
    - std::vector::reserve
    - size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_range_merge()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1693,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1705,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1707,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1708,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1709,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1711,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1712,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1713,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1716,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1717,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1718,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1722,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1724,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1725,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1726,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1727,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1728,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1730,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1731,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1732,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1733,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1735,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1737,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1738,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1742,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1743,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1746,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1747,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1751,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1752,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1753,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1755,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1759,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1760,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1762,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1765,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1765,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1767,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1775,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1775,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1688
    functionDepth: 3
    functionLinenumber: 1688
    functionLinenumberEnd: 1780
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - std::unique_ptr::inherit_asnum
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_success_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1787,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1798,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1799,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1800,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1802,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1803,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1804,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1807,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1808,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1809,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1812,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1813,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1814,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1816,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1817,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1818,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1819,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1822,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1823,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1824,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1825,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1828,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1829,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1830,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1832,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1836,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1837,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1838,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1841,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1842,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1845,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1846,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1847,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1848,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1849,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1851,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1852,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1853,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1854,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1857,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1858,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1859,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1860,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1861,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1864,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1865,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1866,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1867,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1869,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1870,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1871,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1872,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1874,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1876,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1877,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1881,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1882,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1885,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1886,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1889,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1889,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1892,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1893,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1897,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1905,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1905,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1782
    functionDepth: 3
    functionLinenumber: 1782
    functionLinenumberEnd: 1910
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_success_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1917,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1919,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1920,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1921,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1922,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1923,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1924,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1926,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1927,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1928,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1929,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1932,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1933,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1934,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1936,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1940,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1941,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1947,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1947,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1912
    functionDepth: 3
    functionLinenumber: 1912
    functionLinenumberEnd: 1951
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_extension_not_present_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_extension_not_present_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1958,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1961,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1962,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1963,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1964,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1965,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1967,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1968,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1969,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1970,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1973,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1974,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1975,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1976,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1977,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1980,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1981,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1982,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1983,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1985,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1986,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1987,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1988,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1991,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1992,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1993,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1995,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1999,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2000,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2005,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1953
    functionDepth: 3
    functionLinenumber: 1953
    functionLinenumberEnd: 2010
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_extension_not_present_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_extension_not_present_ctor()
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2014,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2017,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2066,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2071,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2074,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2075,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2076,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2079,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2080,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2081,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2084,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2090,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2092,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2093,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2094,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2096,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2097,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2098,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2101,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2105,1
    - Dst: std::unique_ptr::restrict_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2106,1
    - Dst: std::unique_ptr::copy
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2112,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2115,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2120,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2123,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2126,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2127,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2128,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2133,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2134,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2135,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2136,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2139,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2140,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2141,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2145,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2146,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2147,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2148,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2150,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2153,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2159,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2161,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2163,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2164,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2165,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2167,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2168,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2169,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2170,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2172,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2173,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2174,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2176,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2177,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2178,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2179,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2182,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2185,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2186,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2186,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2187,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2190,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2191,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2191,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2192,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2196,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2204,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2204,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2208,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2012
    functionDepth: 3
    functionLinenumber: 2012
    functionLinenumberEnd: 2210
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::to_string
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - std::unique_ptr::copy
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - std::unique_ptr::inherit_asnum
    - std::unique_ptr::restrict_rdi
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_failure_builder()
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2214,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2217,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2272,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2272,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2275,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2275,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2276,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2276,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2277,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2277,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2280,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2280,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2281,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2281,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2282,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2282,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2287,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2287,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2289,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2289,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2290,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2290,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2291,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2291,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2293,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2293,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2294,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2294,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2295,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2295,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2311,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2311,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2314,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2314,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2318,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2326,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2326,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2330,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2336,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2336,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2338,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2338,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2343,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2343,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2351,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2352,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2352,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2355,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2358,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2359,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2359,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2367,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2367,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2368,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2372,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2375,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2375,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2377,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2377,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2378,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2379,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2381,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2383,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2384,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2384,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2386,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2388,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2393,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2398,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2401,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2404,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2212
    functionDepth: 3
    functionLinenumber: 2212
    functionLinenumberEnd: 2406
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::to_string
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_failure_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2414,1
    - Dst: test_x509_ip_addr_blocks_extension_decode
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2414,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2415,1
    - Dst: test_x509_as_blocks_extension_decode
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2415,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2417,1
    - Dst: test_x509_ip_addr_blocks_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2417,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2418,1
    - Dst: test_x509_ip_addr_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2418,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2419,1
    - Dst: test_x509_ip_addr_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2419,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2420,1
    - Dst: test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2420,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2421,1
    - Dst: test_x509_ip_addr_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2421,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2422,1
    - Dst: test_x509_ip_addr_blocks_family_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2422,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2423,1
    - Dst: test_x509_ip_addr_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2423,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2424,1
    - Dst: test_x509_ip_addr_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2424,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2425,1
    - Dst: test_x509_ip_addr_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2425,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2426,1
    - Dst: test_x509_ip_addr_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2426,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2427,1
    - Dst: test_x509_as_blocks_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2427,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2428,1
    - Dst: test_x509_as_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2428,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2429,1
    - Dst: test_x509_as_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2429,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2430,1
    - Dst: test_x509_as_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2430,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2431,1
    - Dst: test_x509_as_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2432,1
    - Dst: test_x509_as_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2433,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2433,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2434,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2434,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2435,1
    - Dst: test_x509_as_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2435,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    - Dst: test_x509_as_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2410
    functionDepth: 0
    functionLinenumber: 2410
    functionLinenumberEnd: 2438
    functionName: Botan_Tests::X509_RPKI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - test_x509_as_blocks_extension_decode
    - test_x509_as_blocks_range_merge
    - test_x509_ip_addr_blocks_extension_encode_ctor
    - test_x509_as_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_path_validation_success_ctor
    - test_x509_as_blocks_path_validation_failure_builder
    - test_x509_as_blocks_path_validation_failure_ctor
    - test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    - test_x509_as_blocks_encode_builder
    - test_x509_ip_addr_blocks_extension_decode
    - test_x509_as_blocks_path_validation_extension_not_present_builder
    - test_x509_ip_addr_blocks_path_validation_failure_builder
    - test_x509_ip_addr_blocks_range_merge
    - test_x509_as_blocks_path_validation_success_ctor
    - test_x509_ip_addr_blocks_rfc3779_example
    - test_x509_as_blocks_path_validation_extension_not_present_ctor
    - test_x509_as_blocks_rfc3779_example
    - test_x509_as_blocks_extension_encode_ctor
    - test_x509_ip_addr_blocks_path_validation_failure_ctor
    - std::vector::push_back
    - test_x509_ip_addr_blocks_family_merge
    - test_x509_ip_addr_blocks_encode_builder
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_rpki.cpp:38,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_x509_rpki.cpp:38,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:40,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 45
    functionsReached:
    - Botan::X509_Time
    - static_cast<uint32_t>
    - Botan::calendar_point
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:50,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ca_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 41
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options ca_opts(const std::string& sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:63,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/test_x509_rpki.cpp:65,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/test_x509_rpki.cpp:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: Botan_Tests::req_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 16
    functionsReached:
    - Botan::X509_Cert_Options::not_before
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:82,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_rpki.cpp:84,1
    - Dst: Botan_Tests::Test::supported_ec_group_name
      Src: /src/botan/src/tests/test_x509_rpki.cpp:91,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:93,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:98,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:100,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_rpki.cpp:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 104
    functionName: Botan_Tests::get_sig_algo_padding_and_generate_key
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 3
    functionsReached:
    - Botan::create_private_key
    - Test_Error
    - Botan_Tests::Test::supported_ec_group_name
    - generate_key
    linkageType: ''
    returnType: std::tuple<std::string, std::string, std::string, std::unique_ptr<Botan::Private_Key>>
    signature: std::tuple<std::string, std::string, std::string, std::unique_ptr<Botan::Private_Key>>
      get_sig_algo_padding_and_generate_key(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:107,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:107,1
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:108,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: Botan_Tests::make_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: "Botan::X509_Certificate make_self_signed(std::unique_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                         const Botan::X509_Cert_Options&
      opts = std::move(ca_opts()))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:113,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:113,1
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:114,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:115,1
    - Dst: generate_another
      Src: /src/botan/src/tests/test_x509_rpki.cpp:117,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: Botan_Tests::make_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 16
    functionsReached:
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_self_signed_cert
    - generate_another
    - std::move
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: CA_Creation_Result
    signature: "CA_Creation_Result make_ca(std::unique_ptr<Botan::RandomNumberGenerator>&
      rng,\n                           const Botan::X509_Cert_Options& opts = std::move(ca_opts()))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:126,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:128,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:131,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ext
    - ' parent_ca'
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::Certificate_Extension>
    - Botan::X509_CA
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: Botan_Tests::make_and_sign_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 8
    functionsReached:
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_cert_req
    - std::move
    - sign_request
    - std::make_pair
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    linkageType: ''
    returnType: std::pair<Botan::X509_Certificate, Botan::X509_CA>
    signature: "std::pair<Botan::X509_Certificate, Botan::X509_CA> make_and_sign_ca(\n
      \  std::unique_ptr<Botan::Certificate_Extension> ext,\n   Botan::X509_CA& parent_ca,\n
      \  std::unique_ptr<Botan::RandomNumberGenerator>& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:145,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:150,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:153,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:155,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:155,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:157,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:157,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:158,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:158,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:160,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:168,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:171,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:171,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:179,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:189,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:197,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:199,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:201,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:203,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:205,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:207,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:209,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:211,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:213,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:215,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:217,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:222,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:223,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:235,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:236,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:236,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:238,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:239,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:241,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:241,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:243,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:243,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:245,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:245,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:247,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:247,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:248,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:248,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:251,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:251,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:261,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:263,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:270,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:270,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:277,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:283,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:284,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 289
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - ranges
    - min
    - Test::Result::start_timer
    - safi
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Botan_Tests::Test::data_file
    - max
    - auto*::addr_blocks
    - Test::Result::test_sz_eq
    - size
    - Test::Result::test_bin_eq
    - Test::Result::test_opt_u8_eq
    - addr_choice
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:293,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:298,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:300,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:303,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:305,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:306,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:310,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:310,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:313,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:313,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:320,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:325,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:326,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:326,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:330,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:330,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:334,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:336,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:341,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:341,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:342,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:346,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:346,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:352,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:357,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:357,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:358,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:362,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:362,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 367
    functionName: Botan_Tests::test_x509_as_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - min
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_u32_eq
    - Botan_Tests::Test::data_file
    - max
    - rdi
    - asnum
    - Test::Result::test_is_false
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    - auto*::as_identifiers
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_extension_decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:373,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:376,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:379,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:380,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:381,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:382,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:383,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:384,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:385,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:386,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:388,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:391,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:395,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:400,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:403,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:403,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:405,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:405,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:406,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:406,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:407,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:407,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:410,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:410,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:413,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:413,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:415,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:415,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:416,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:416,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:418,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:418,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:419,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:419,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:431,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:432,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:435,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:438,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:443,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:447,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:450,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:450,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:453,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:453,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:454,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:454,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:457,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:457,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:460,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:464,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:467,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:467,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:469,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:472,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 477
    functionName: Botan_Tests::test_x509_ip_addr_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::Cert_Extension::static_oid
    - Botan::X509_Cert_Options::extensions::add
    - min
    - safi
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::v3_extensions
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - auto*::addr_blocks
    - addr_choice
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::make_self_signed
    - std::unique_ptr::inherit
    - max
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_rfc3779_example()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:481,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:484,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:486,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:489,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:491,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:493,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:495,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:498,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:500,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:502,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:503,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:503,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:505,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:506,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:506,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:509,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 516
    functionName: Botan_Tests::test_x509_ip_addr_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan_Tests::make_self_signed
    - auto::v3_extensions
    - Test::Result::start_timer
    - Botan::Cert_Extension::static_oid
    - std::move
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_encode_builder()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::bit_set
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bit_set(size_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::bit_set
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bit_set(size_t v)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:533,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:537,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:539,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:542,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:543,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:544,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:545,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:546,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:547,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:549,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:552,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:554,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:558,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:560,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:564,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:566,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:569,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:571,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:575,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:578,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:582,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:584,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:586,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:587,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:588,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:589,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:591,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:592,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:593,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:594,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:598,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:599,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:600,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:601,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:606,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:607,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:608,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:609,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:612,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:614,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:617,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:619,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:622,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:623,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:627,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:630,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:633,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:635,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:635,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:637,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:640,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:641,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:643,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:645,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:645,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:653,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:653,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:656,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:675,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:678,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:678,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:680,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 702
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - auto::max
    - Botan::X509::create_cert_req
    - Test::Result::test_u16_eq
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - empty
    - min
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - auto::afi
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::empty
    - auto::ranges
    - Botan_Tests::bit_set
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - auto::min
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - auto::addr_choice
    - size
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_encode_ctor()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:706,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:710,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:716,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:718,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:720,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:721,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:730,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:742,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:743,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:748,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:750,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:752,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:755,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:757,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:761,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:765,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:766,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:767,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:772,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:780,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 782
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - auto::max
    - Botan::X509::create_cert_req
    - Test::Result::test_u16_eq
    - Test::Result::test_not_null
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - std::vector::size
    - auto::afi
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - Botan_Tests::bit_set
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Botan_Tests::from_date
    - Botan_Tests::Test::new_rng
    - auto::min
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:786,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:790,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:792,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:793,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:809,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:810,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:811,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:812,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:815,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:819,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:821,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:825,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:828,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:829,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:830,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:832,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:832,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:833,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:839,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:839,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 845
    functionName: Botan_Tests::test_x509_ip_addr_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Test::Result::test_not_null
    - Botan_Tests::make_ca
    - IPAddressFamily
    - Test::Result::test_sz_eq
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - auto::size
    - std::move
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Botan_Tests::from_date
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - std::vector::push_back
    - max
    - sign_request
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_range_merge()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:849,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:853,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:855,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:856,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:868,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:868,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:870,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:871,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:880,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:880,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:897,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:898,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:899,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:900,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:901,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:902,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:908,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:912,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:915,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:916,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:917,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:926,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:927,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:930,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:933,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:934,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:946,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:948,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:956,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:956,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:959,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:960,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:960,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:963,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:963,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:971,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:974,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:976,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:976,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:980,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:983,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:984,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:986,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:986,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:987,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:988,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:997,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:999,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:999,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1007,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1010,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1012,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1012,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1016,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1019,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1020,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1022,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1022,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1023,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1024,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1030,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 1032
    functionName: Botan_Tests::test_x509_ip_addr_blocks_family_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - Test::Result::test_not_null
    - Botan_Tests::make_ca
    - Test::Result::test_sz_eq
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - safi
    - std::to_string
    - std::move
    - auto::size
    - IPAddressBlocks::IPAddressChoice::ranges
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - std::vector::size
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - addr_choice
    - Botan_Tests::from_date
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - afi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - size
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_family_merge()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1036,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1039,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1050,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1052,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1053,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1055,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1058,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1063,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1065,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1066,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1069,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1071,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1072,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1074,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1078,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1079,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1079,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1080,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1081,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1082,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1082,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1085,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1086,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1089,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1090,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1093,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1095,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1096,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1098,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1102,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1106,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1109,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1109,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1111,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1119,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1119,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1034
    functionDepth: 3
    functionLinenumber: 1034
    functionLinenumberEnd: 1124
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::inherit
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_success_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1131,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1148,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1150,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1153,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1155,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1158,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1160,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1162,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1163,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1164,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1165,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1170,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1171,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1173,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1174,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1177,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1180,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1181,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1183,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1184,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1187,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1191,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1193,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1195,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1197,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1200,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1202,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1204,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1205,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1206,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1213,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1215,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1218,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1220,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1223,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1225,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1227,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1228,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1229,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1234,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1235,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1237,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1238,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1241,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1243,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1245,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1246,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1248,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1248,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1250,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1251,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1254,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1255,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1258,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1258,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1262,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1263,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1266,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1268,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1268,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1270,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1278,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1278,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1283
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_success_ctor()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1290,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1302,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1304,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1306,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1309,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1313,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1316,1
    - Dst: std::unique_ptr::restrict
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1319,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1321,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1324,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1327,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1327,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1330,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1338,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1340,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1342,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1345,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1348,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1351,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1359,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1361,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1365,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1285
    functionDepth: 3
    functionLinenumber: 1285
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::restrict
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::inherit
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_failure_builder()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1374,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1391,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1394,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1394,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1395,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1397,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1399,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1401,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1401,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1407,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1409,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1415,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1419,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1421,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1422,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1422,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1433,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1441,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1443,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1445,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1445,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1446,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1449,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1451,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1462,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1464,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1468,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1369
    functionDepth: 3
    functionLinenumber: 1369
    functionLinenumberEnd: 1470
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::vector::push_back
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_failure_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1477,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1480,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1481,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1482,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1483,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1484,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1486,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1487,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1487,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1489,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1492,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1495,1
    - Dst: auto::asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1472
    functionDepth: 3
    functionLinenumber: 1472
    functionLinenumberEnd: 1502
    functionName: Botan_Tests::test_x509_as_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan_Tests::make_self_signed
    - std::make_unique<ASBlocks>
    - Test::Result::start_timer
    - auto::v3_extensions
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::unique_ptr::inherit_rdi
    - Test::Result::test_u32_eq
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    - auto::asnum
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_rfc3779_example()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1506,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1509,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1511,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1513,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1514,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1515,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1516,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1518,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1519,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1521,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1523,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1526,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1529,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1504
    functionDepth: 3
    functionLinenumber: 1504
    functionLinenumberEnd: 1533
    functionName: Botan_Tests::test_x509_as_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::make_self_signed
    - std::make_unique<ASBlocks>
    - Test::Result::start_timer
    - auto::v3_extensions
    - std::unique_ptr::add_asnum
    - std::unique_ptr::inherit_asnum
    - std::move
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::unique_ptr::restrict_asnum
    - std::unique_ptr::add_rdi
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_encode_builder()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1537,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1541,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1543,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1546,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1547,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1548,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1549,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1554,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1555,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1556,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1558,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1559,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1560,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1564,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1565,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1566,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1571,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1572,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1573,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1576,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1577,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1579,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1579,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1580,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1582,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1584,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1587,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1591,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1592,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1604,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1604,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1616,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1616,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1617,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1617,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1619,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1619,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1620,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1620,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1630,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1535
    functionDepth: 3
    functionLinenumber: 1535
    functionLinenumberEnd: 1632
    functionName: Botan_Tests::test_x509_as_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - empty
    - min
    - std::move
    - ASIdOrRange
    - Botan::X509_Certificate::v3_extensions
    - ASIdentifierChoice
    - Test::Result::test_u32_eq
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - rdi
    - asnum
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto*::as_identifiers
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - max
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_extension_encode_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1636,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1640,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1642,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1643,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1656,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1656,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1658,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1661,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1663,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1663,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1665,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1669,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1673,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1675,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1677,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1680,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1680,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1634
    functionDepth: 3
    functionLinenumber: 1634
    functionLinenumberEnd: 1686
    functionName: Botan_Tests::test_x509_as_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Test::Result::test_sz_eq
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - std::move
    - Botan::X509_Certificate::v3_extensions
    - ASIdentifierChoice
    - Test::Result::test_u32_eq
    - std::vector::size
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector::emplace_back
    - asnum
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto*::as_identifiers
    - std::optional
    - std::make_unique<ASBlocks>
    - max
    - sign_request
    - std::vector::reserve
    - size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_range_merge()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1693,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1705,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1707,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1708,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1709,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1711,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1712,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1713,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1716,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1717,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1718,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1722,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1724,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1725,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1726,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1727,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1728,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1730,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1731,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1732,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1733,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1735,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1737,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1738,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1742,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1743,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1746,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1747,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1751,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1752,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1753,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1755,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1759,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1760,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1762,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1765,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1765,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1767,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1775,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1775,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1688
    functionDepth: 3
    functionLinenumber: 1688
    functionLinenumberEnd: 1780
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - std::unique_ptr::inherit_asnum
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_success_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1787,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1798,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1799,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1800,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1802,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1803,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1804,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1807,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1808,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1809,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1812,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1813,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1814,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1816,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1817,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1818,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1819,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1822,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1823,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1824,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1825,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1828,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1829,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1830,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1832,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1836,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1837,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1838,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1841,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1842,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1845,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1846,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1847,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1848,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1849,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1851,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1852,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1853,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1854,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1857,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1858,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1859,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1860,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1861,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1864,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1865,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1866,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1867,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1869,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1870,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1871,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1872,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1874,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1876,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1877,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1881,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1882,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1885,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1886,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1889,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1889,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1892,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1893,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1897,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1905,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1905,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1782
    functionDepth: 3
    functionLinenumber: 1782
    functionLinenumberEnd: 1910
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_success_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1917,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1919,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1920,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1921,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1922,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1923,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1924,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1926,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1927,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1928,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1929,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1932,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1933,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1934,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1936,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1940,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1941,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1947,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1947,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1912
    functionDepth: 3
    functionLinenumber: 1912
    functionLinenumberEnd: 1951
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_extension_not_present_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_extension_not_present_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1958,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1961,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1962,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1963,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1964,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1965,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1967,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1968,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1969,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1970,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1973,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1974,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1975,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1976,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1977,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1980,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1981,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1982,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1983,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1985,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1986,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1987,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1988,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1991,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1992,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1993,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1995,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1999,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2000,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2005,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1953
    functionDepth: 3
    functionLinenumber: 1953
    functionLinenumberEnd: 2010
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_extension_not_present_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_extension_not_present_ctor()
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2014,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2017,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2066,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2071,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2074,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2075,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2076,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2079,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2080,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2081,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2084,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2090,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2092,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2093,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2094,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2096,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2097,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2098,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2101,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2105,1
    - Dst: std::unique_ptr::restrict_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2106,1
    - Dst: std::unique_ptr::copy
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2112,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2115,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2120,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2123,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2126,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2127,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2128,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2133,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2134,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2135,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2136,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2139,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2140,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2141,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2145,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2146,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2147,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2148,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2150,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2153,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2159,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2161,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2163,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2164,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2165,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2167,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2168,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2169,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2170,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2172,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2173,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2174,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2176,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2177,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2178,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2179,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2182,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2185,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2186,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2186,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2187,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2190,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2191,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2191,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2192,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2196,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2204,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2204,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2208,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2012
    functionDepth: 3
    functionLinenumber: 2012
    functionLinenumberEnd: 2210
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::to_string
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - std::unique_ptr::copy
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - std::unique_ptr::inherit_asnum
    - std::unique_ptr::restrict_rdi
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_failure_builder()
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2214,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2217,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2272,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2272,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2275,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2275,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2276,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2276,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2277,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2277,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2280,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2280,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2281,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2281,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2282,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2282,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2287,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2287,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2289,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2289,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2290,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2290,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2291,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2291,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2293,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2293,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2294,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2294,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2295,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2295,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2311,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2311,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2314,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2314,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2318,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2326,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2326,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2330,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2336,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2336,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2338,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2338,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2343,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2343,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2351,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2352,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2352,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2355,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2358,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2359,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2359,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2367,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2367,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2368,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2372,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2375,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2375,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2377,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2377,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2378,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2379,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2381,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2383,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2384,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2384,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2386,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2388,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2393,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2398,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2401,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2404,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2212
    functionDepth: 3
    functionLinenumber: 2212
    functionLinenumberEnd: 2406
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::to_string
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_failure_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2414,1
    - Dst: test_x509_ip_addr_blocks_extension_decode
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2414,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2415,1
    - Dst: test_x509_as_blocks_extension_decode
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2415,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2417,1
    - Dst: test_x509_ip_addr_blocks_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2417,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2418,1
    - Dst: test_x509_ip_addr_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2418,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2419,1
    - Dst: test_x509_ip_addr_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2419,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2420,1
    - Dst: test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2420,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2421,1
    - Dst: test_x509_ip_addr_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2421,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2422,1
    - Dst: test_x509_ip_addr_blocks_family_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2422,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2423,1
    - Dst: test_x509_ip_addr_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2423,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2424,1
    - Dst: test_x509_ip_addr_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2424,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2425,1
    - Dst: test_x509_ip_addr_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2425,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2426,1
    - Dst: test_x509_ip_addr_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2426,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2427,1
    - Dst: test_x509_as_blocks_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2427,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2428,1
    - Dst: test_x509_as_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2428,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2429,1
    - Dst: test_x509_as_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2429,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2430,1
    - Dst: test_x509_as_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2430,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2431,1
    - Dst: test_x509_as_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2432,1
    - Dst: test_x509_as_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2433,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2433,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2434,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2434,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2435,1
    - Dst: test_x509_as_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2435,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    - Dst: test_x509_as_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2410
    functionDepth: 0
    functionLinenumber: 2410
    functionLinenumberEnd: 2438
    functionName: Botan_Tests::X509_RPKI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - test_x509_as_blocks_extension_decode
    - test_x509_as_blocks_range_merge
    - test_x509_ip_addr_blocks_extension_encode_ctor
    - test_x509_as_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_path_validation_success_ctor
    - test_x509_as_blocks_path_validation_failure_builder
    - test_x509_as_blocks_path_validation_failure_ctor
    - test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    - test_x509_as_blocks_encode_builder
    - test_x509_ip_addr_blocks_extension_decode
    - test_x509_as_blocks_path_validation_extension_not_present_builder
    - test_x509_ip_addr_blocks_path_validation_failure_builder
    - test_x509_ip_addr_blocks_range_merge
    - test_x509_as_blocks_path_validation_success_ctor
    - test_x509_ip_addr_blocks_rfc3779_example
    - test_x509_as_blocks_path_validation_extension_not_present_ctor
    - test_x509_as_blocks_rfc3779_example
    - test_x509_as_blocks_extension_encode_ctor
    - test_x509_ip_addr_blocks_path_validation_failure_ctor
    - std::vector::push_back
    - test_x509_ip_addr_blocks_family_merge
    - test_x509_ip_addr_blocks_encode_builder
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_rpki.cpp:38,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_x509_rpki.cpp:38,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:40,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 62
    functionsReached:
    - Botan::X509_Time
    - static_cast<uint32_t>
    - Botan::calendar_point
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:50,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ca_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 58
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options ca_opts(const std::string& sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:63,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/test_x509_rpki.cpp:65,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/test_x509_rpki.cpp:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: Botan_Tests::req_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 32
    functionsReached:
    - Botan::X509_Cert_Options::not_before
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:82,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_rpki.cpp:84,1
    - Dst: Botan_Tests::Test::supported_ec_group_name
      Src: /src/botan/src/tests/test_x509_rpki.cpp:91,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:93,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:98,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:100,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_rpki.cpp:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 104
    functionName: Botan_Tests::get_sig_algo_padding_and_generate_key
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 6
    functionsReached:
    - Botan::create_private_key
    - Test_Error
    - Botan_Tests::Test::supported_ec_group_name
    - generate_key
    linkageType: ''
    returnType: std::tuple<std::string, std::string, std::string, std::unique_ptr<Botan::Private_Key>>
    signature: std::tuple<std::string, std::string, std::string, std::unique_ptr<Botan::Private_Key>>
      get_sig_algo_padding_and_generate_key(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:107,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:107,1
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:108,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: Botan_Tests::make_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 8
    functionsReached:
    - std::move
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: "Botan::X509_Certificate make_self_signed(std::unique_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                         const Botan::X509_Cert_Options&
      opts = std::move(ca_opts()))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:113,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:113,1
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:114,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:115,1
    - Dst: generate_another
      Src: /src/botan/src/tests/test_x509_rpki.cpp:117,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: Botan_Tests::make_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 32
    functionsReached:
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_self_signed_cert
    - generate_another
    - std::move
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: CA_Creation_Result
    signature: "CA_Creation_Result make_ca(std::unique_ptr<Botan::RandomNumberGenerator>&
      rng,\n                           const Botan::X509_Cert_Options& opts = std::move(ca_opts()))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:126,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:128,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:131,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ext
    - ' parent_ca'
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::Certificate_Extension>
    - Botan::X509_CA
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: Botan_Tests::make_and_sign_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 16
    functionsReached:
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_cert_req
    - std::move
    - sign_request
    - std::make_pair
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    linkageType: ''
    returnType: std::pair<Botan::X509_Certificate, Botan::X509_CA>
    signature: "std::pair<Botan::X509_Certificate, Botan::X509_CA> make_and_sign_ca(\n
      \  std::unique_ptr<Botan::Certificate_Extension> ext,\n   Botan::X509_CA& parent_ca,\n
      \  std::unique_ptr<Botan::RandomNumberGenerator>& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:145,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:150,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:153,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:155,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:155,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:157,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:157,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:158,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:158,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:160,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:168,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:171,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:171,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:179,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:189,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:197,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:199,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:201,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:203,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:205,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:207,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:209,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:211,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:213,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:215,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:217,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:222,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:223,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:235,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:236,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:236,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:238,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:239,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:241,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:241,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:243,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:243,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:245,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:245,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:247,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:247,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:248,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:248,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:251,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:251,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:261,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:263,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:270,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:270,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:277,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:283,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:284,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 289
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - ranges
    - min
    - Test::Result::start_timer
    - safi
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Botan_Tests::Test::data_file
    - max
    - auto*::addr_blocks
    - Test::Result::test_sz_eq
    - size
    - Test::Result::test_bin_eq
    - Test::Result::test_opt_u8_eq
    - addr_choice
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:293,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:298,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:300,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:303,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:305,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:306,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:310,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:310,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:313,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:313,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:320,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:325,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:326,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:326,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:330,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:330,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:334,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:336,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:341,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:341,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:342,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:346,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:346,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:352,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:357,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:357,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:358,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:362,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:362,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 367
    functionName: Botan_Tests::test_x509_as_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - min
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_u32_eq
    - Botan_Tests::Test::data_file
    - max
    - rdi
    - asnum
    - Test::Result::test_is_false
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    - auto*::as_identifiers
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_extension_decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:373,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:376,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:379,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:380,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:381,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:382,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:383,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:384,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:385,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:386,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:388,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:391,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:395,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:400,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:403,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:403,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:405,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:405,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:406,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:406,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:407,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:407,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:410,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:410,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:413,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:413,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:415,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:415,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:416,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:416,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:418,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:418,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:419,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:419,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:431,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:432,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:435,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:438,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:443,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:447,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:450,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:450,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:453,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:453,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:454,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:454,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:457,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:457,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:460,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:464,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:467,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:467,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:469,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:472,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 477
    functionName: Botan_Tests::test_x509_ip_addr_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::Cert_Extension::static_oid
    - Botan::X509_Cert_Options::extensions::add
    - min
    - safi
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::v3_extensions
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - auto*::addr_blocks
    - addr_choice
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::make_self_signed
    - std::unique_ptr::inherit
    - max
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_rfc3779_example()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:481,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:484,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:486,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:489,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:491,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:493,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:495,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:498,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:500,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:502,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:503,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:503,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:505,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:506,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:506,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:509,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 516
    functionName: Botan_Tests::test_x509_ip_addr_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan_Tests::make_self_signed
    - auto::v3_extensions
    - Test::Result::start_timer
    - Botan::Cert_Extension::static_oid
    - std::move
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_encode_builder()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::bit_set
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bit_set(size_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::bit_set
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bit_set(size_t v)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:533,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:537,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:539,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:542,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:543,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:544,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:545,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:546,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:547,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:549,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:552,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:554,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:558,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:560,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:564,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:566,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:569,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:571,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:575,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:578,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:582,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:584,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:586,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:587,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:588,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:589,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:591,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:592,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:593,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:594,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:598,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:599,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:600,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:601,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:606,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:607,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:608,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:609,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:612,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:614,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:617,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:619,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:622,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:623,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:627,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:630,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:633,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:635,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:635,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:637,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:640,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:641,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:643,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:645,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:645,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:653,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:653,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:656,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:675,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:678,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:678,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:680,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 702
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - auto::max
    - Botan::X509::create_cert_req
    - Test::Result::test_u16_eq
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - empty
    - min
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - auto::afi
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::empty
    - auto::ranges
    - Botan_Tests::bit_set
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - auto::min
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - auto::addr_choice
    - size
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_encode_ctor()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:706,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:710,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:716,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:718,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:720,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:721,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:730,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:742,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:743,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:748,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:750,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:752,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:755,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:757,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:761,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:765,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:766,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:767,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:772,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:780,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 782
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - auto::max
    - Botan::X509::create_cert_req
    - Test::Result::test_u16_eq
    - Test::Result::test_not_null
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - std::vector::size
    - auto::afi
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - Botan_Tests::bit_set
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Botan_Tests::from_date
    - Botan_Tests::Test::new_rng
    - auto::min
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:786,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:790,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:792,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:793,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:809,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:810,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:811,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:812,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:815,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:819,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:821,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:825,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:828,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:829,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:830,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:832,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:832,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:833,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:839,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:839,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 845
    functionName: Botan_Tests::test_x509_ip_addr_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Test::Result::test_not_null
    - Botan_Tests::make_ca
    - IPAddressFamily
    - Test::Result::test_sz_eq
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - auto::size
    - std::move
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Botan_Tests::from_date
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - std::vector::push_back
    - max
    - sign_request
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_range_merge()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:849,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:853,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:855,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:856,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:868,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:868,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:870,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:871,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:880,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:880,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:897,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:898,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:899,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:900,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:901,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:902,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:908,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:912,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:915,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:916,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:917,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:926,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:927,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:930,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:933,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:934,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:946,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:948,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:956,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:956,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:959,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:960,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:960,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:963,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:963,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:971,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:974,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:976,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:976,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:980,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:983,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:984,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:986,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:986,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:987,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:988,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:997,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:999,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:999,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1007,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1010,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1012,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1012,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1016,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1019,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1020,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1022,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1022,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1023,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1024,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1030,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 1032
    functionName: Botan_Tests::test_x509_ip_addr_blocks_family_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - Test::Result::test_not_null
    - Botan_Tests::make_ca
    - Test::Result::test_sz_eq
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - safi
    - std::to_string
    - std::move
    - auto::size
    - IPAddressBlocks::IPAddressChoice::ranges
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - std::vector::size
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - addr_choice
    - Botan_Tests::from_date
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - afi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - size
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_family_merge()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1036,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1039,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1050,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1052,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1053,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1055,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1058,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1063,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1065,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1066,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1069,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1071,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1072,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1074,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1078,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1079,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1079,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1080,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1081,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1082,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1082,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1085,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1086,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1089,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1090,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1093,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1095,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1096,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1098,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1102,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1106,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1109,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1109,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1111,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1119,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1119,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1034
    functionDepth: 3
    functionLinenumber: 1034
    functionLinenumberEnd: 1124
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::inherit
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_success_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1131,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1148,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1150,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1153,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1155,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1158,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1160,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1162,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1163,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1164,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1165,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1170,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1171,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1173,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1174,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1177,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1180,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1181,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1183,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1184,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1187,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1191,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1193,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1195,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1197,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1200,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1202,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1204,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1205,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1206,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1213,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1215,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1218,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1220,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1223,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1225,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1227,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1228,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1229,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1234,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1235,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1237,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1238,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1241,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1243,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1245,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1246,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1248,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1248,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1250,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1251,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1254,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1255,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1258,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1258,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1262,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1263,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1266,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1268,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1268,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1270,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1278,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1278,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1283
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_success_ctor()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1290,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1302,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1304,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1306,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1309,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1313,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1316,1
    - Dst: std::unique_ptr::restrict
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1319,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1321,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1324,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1327,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1327,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1330,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1338,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1340,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1342,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1345,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1348,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1351,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1359,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1361,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1365,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1285
    functionDepth: 3
    functionLinenumber: 1285
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::restrict
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::inherit
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_failure_builder()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1374,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1391,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1394,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1394,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1395,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1397,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1399,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1401,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1401,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1407,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1409,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1415,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1419,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1421,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1422,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1422,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1433,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1441,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1443,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1445,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1445,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1446,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1449,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1451,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1462,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1464,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1468,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1369
    functionDepth: 3
    functionLinenumber: 1369
    functionLinenumberEnd: 1470
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::vector::push_back
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_failure_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1477,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1480,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1481,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1482,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1483,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1484,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1486,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1487,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1487,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1489,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1492,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1495,1
    - Dst: auto::asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1472
    functionDepth: 3
    functionLinenumber: 1472
    functionLinenumberEnd: 1502
    functionName: Botan_Tests::test_x509_as_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan_Tests::make_self_signed
    - std::make_unique<ASBlocks>
    - Test::Result::start_timer
    - auto::v3_extensions
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::unique_ptr::inherit_rdi
    - Test::Result::test_u32_eq
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    - auto::asnum
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_rfc3779_example()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1506,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1509,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1511,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1513,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1514,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1515,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1516,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1518,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1519,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1521,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1523,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1526,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1529,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1504
    functionDepth: 3
    functionLinenumber: 1504
    functionLinenumberEnd: 1533
    functionName: Botan_Tests::test_x509_as_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::make_self_signed
    - std::make_unique<ASBlocks>
    - Test::Result::start_timer
    - auto::v3_extensions
    - std::unique_ptr::add_asnum
    - std::unique_ptr::inherit_asnum
    - std::move
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::unique_ptr::restrict_asnum
    - std::unique_ptr::add_rdi
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_encode_builder()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1537,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1541,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1543,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1546,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1547,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1548,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1549,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1554,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1555,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1556,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1558,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1559,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1560,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1564,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1565,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1566,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1571,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1572,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1573,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1576,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1577,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1579,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1579,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1580,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1582,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1584,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1587,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1591,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1592,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1604,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1604,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1616,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1616,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1617,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1617,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1619,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1619,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1620,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1620,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1630,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1535
    functionDepth: 3
    functionLinenumber: 1535
    functionLinenumberEnd: 1632
    functionName: Botan_Tests::test_x509_as_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - empty
    - min
    - std::move
    - ASIdOrRange
    - Botan::X509_Certificate::v3_extensions
    - ASIdentifierChoice
    - Test::Result::test_u32_eq
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - rdi
    - asnum
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto*::as_identifiers
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - max
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_extension_encode_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1636,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1640,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1642,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1643,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1656,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1656,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1658,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1661,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1663,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1663,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1665,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1669,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1673,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1675,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1677,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1680,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1680,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1634
    functionDepth: 3
    functionLinenumber: 1634
    functionLinenumberEnd: 1686
    functionName: Botan_Tests::test_x509_as_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Test::Result::test_sz_eq
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - std::move
    - Botan::X509_Certificate::v3_extensions
    - ASIdentifierChoice
    - Test::Result::test_u32_eq
    - std::vector::size
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector::emplace_back
    - asnum
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto*::as_identifiers
    - std::optional
    - std::make_unique<ASBlocks>
    - max
    - sign_request
    - std::vector::reserve
    - size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_range_merge()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1693,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1705,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1707,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1708,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1709,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1711,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1712,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1713,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1716,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1717,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1718,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1722,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1724,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1725,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1726,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1727,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1728,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1730,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1731,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1732,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1733,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1735,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1737,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1738,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1742,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1743,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1746,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1747,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1751,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1752,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1753,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1755,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1759,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1760,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1762,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1765,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1765,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1767,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1775,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1775,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1688
    functionDepth: 3
    functionLinenumber: 1688
    functionLinenumberEnd: 1780
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - std::unique_ptr::inherit_asnum
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_success_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1787,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1798,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1799,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1800,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1802,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1803,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1804,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1807,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1808,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1809,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1812,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1813,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1814,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1816,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1817,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1818,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1819,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1822,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1823,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1824,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1825,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1828,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1829,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1830,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1832,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1836,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1837,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1838,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1841,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1842,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1845,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1846,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1847,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1848,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1849,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1851,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1852,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1853,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1854,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1857,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1858,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1859,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1860,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1861,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1864,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1865,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1866,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1867,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1869,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1870,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1871,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1872,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1874,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1876,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1877,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1881,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1882,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1885,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1886,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1889,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1889,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1892,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1893,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1897,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1905,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1905,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1782
    functionDepth: 3
    functionLinenumber: 1782
    functionLinenumberEnd: 1910
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_success_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1917,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1919,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1920,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1921,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1922,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1923,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1924,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1926,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1927,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1928,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1929,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1932,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1933,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1934,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1936,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1940,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1941,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1947,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1947,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1912
    functionDepth: 3
    functionLinenumber: 1912
    functionLinenumberEnd: 1951
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_extension_not_present_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_extension_not_present_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1958,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1961,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1962,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1963,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1964,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1965,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1967,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1968,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1969,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1970,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1973,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1974,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1975,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1976,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1977,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1980,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1981,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1982,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1983,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1985,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1986,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1987,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1988,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1991,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1992,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1993,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1995,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1999,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2000,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2005,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1953
    functionDepth: 3
    functionLinenumber: 1953
    functionLinenumberEnd: 2010
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_extension_not_present_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_extension_not_present_ctor()
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2014,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2017,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2066,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2071,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2074,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2075,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2076,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2079,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2080,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2081,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2084,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2090,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2092,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2093,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2094,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2096,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2097,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2098,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2101,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2105,1
    - Dst: std::unique_ptr::restrict_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2106,1
    - Dst: std::unique_ptr::copy
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2112,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2115,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2120,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2123,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2126,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2127,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2128,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2133,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2134,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2135,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2136,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2139,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2140,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2141,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2145,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2146,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2147,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2148,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2150,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2153,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2159,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2161,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2163,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2164,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2165,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2167,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2168,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2169,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2170,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2172,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2173,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2174,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2176,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2177,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2178,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2179,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2182,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2185,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2186,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2186,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2187,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2190,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2191,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2191,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2192,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2196,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2204,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2204,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2208,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2012
    functionDepth: 3
    functionLinenumber: 2012
    functionLinenumberEnd: 2210
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::to_string
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - std::unique_ptr::copy
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - std::unique_ptr::inherit_asnum
    - std::unique_ptr::restrict_rdi
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_failure_builder()
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2214,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2217,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2272,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2272,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2275,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2275,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2276,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2276,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2277,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2277,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2280,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2280,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2281,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2281,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2282,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2282,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2287,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2287,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2289,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2289,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2290,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2290,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2291,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2291,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2293,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2293,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2294,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2294,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2295,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2295,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2311,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2311,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2314,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2314,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2318,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2326,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2326,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2330,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2336,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2336,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2338,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2338,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2343,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2343,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2351,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2352,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2352,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2355,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2358,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2359,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2359,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2367,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2367,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2368,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2372,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2375,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2375,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2377,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2377,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2378,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2379,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2381,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2383,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2384,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2384,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2386,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2388,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2393,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2398,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2401,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2404,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2212
    functionDepth: 3
    functionLinenumber: 2212
    functionLinenumberEnd: 2406
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::to_string
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_failure_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2414,1
    - Dst: test_x509_ip_addr_blocks_extension_decode
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2414,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2415,1
    - Dst: test_x509_as_blocks_extension_decode
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2415,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2417,1
    - Dst: test_x509_ip_addr_blocks_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2417,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2418,1
    - Dst: test_x509_ip_addr_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2418,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2419,1
    - Dst: test_x509_ip_addr_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2419,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2420,1
    - Dst: test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2420,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2421,1
    - Dst: test_x509_ip_addr_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2421,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2422,1
    - Dst: test_x509_ip_addr_blocks_family_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2422,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2423,1
    - Dst: test_x509_ip_addr_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2423,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2424,1
    - Dst: test_x509_ip_addr_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2424,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2425,1
    - Dst: test_x509_ip_addr_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2425,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2426,1
    - Dst: test_x509_ip_addr_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2426,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2427,1
    - Dst: test_x509_as_blocks_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2427,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2428,1
    - Dst: test_x509_as_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2428,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2429,1
    - Dst: test_x509_as_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2429,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2430,1
    - Dst: test_x509_as_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2430,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2431,1
    - Dst: test_x509_as_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2432,1
    - Dst: test_x509_as_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2433,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2433,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2434,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2434,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2435,1
    - Dst: test_x509_as_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2435,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    - Dst: test_x509_as_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2410
    functionDepth: 0
    functionLinenumber: 2410
    functionLinenumberEnd: 2438
    functionName: Botan_Tests::X509_RPKI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - test_x509_as_blocks_extension_decode
    - test_x509_as_blocks_range_merge
    - test_x509_ip_addr_blocks_extension_encode_ctor
    - test_x509_as_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_path_validation_success_ctor
    - test_x509_as_blocks_path_validation_failure_builder
    - test_x509_as_blocks_path_validation_failure_ctor
    - test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    - test_x509_as_blocks_encode_builder
    - test_x509_ip_addr_blocks_extension_decode
    - test_x509_as_blocks_path_validation_extension_not_present_builder
    - test_x509_ip_addr_blocks_path_validation_failure_builder
    - test_x509_ip_addr_blocks_range_merge
    - test_x509_as_blocks_path_validation_success_ctor
    - test_x509_ip_addr_blocks_rfc3779_example
    - test_x509_as_blocks_path_validation_extension_not_present_ctor
    - test_x509_as_blocks_rfc3779_example
    - test_x509_as_blocks_extension_encode_ctor
    - test_x509_ip_addr_blocks_path_validation_failure_ctor
    - std::vector::push_back
    - test_x509_ip_addr_blocks_family_merge
    - test_x509_ip_addr_blocks_encode_builder
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_rpki.cpp:38,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_x509_rpki.cpp:38,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:40,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 79
    functionsReached:
    - Botan::X509_Time
    - static_cast<uint32_t>
    - Botan::calendar_point
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:50,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ca_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 75
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options ca_opts(const std::string& sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:63,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/test_x509_rpki.cpp:65,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/test_x509_rpki.cpp:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: Botan_Tests::req_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 48
    functionsReached:
    - Botan::X509_Cert_Options::not_before
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:82,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_rpki.cpp:84,1
    - Dst: Botan_Tests::Test::supported_ec_group_name
      Src: /src/botan/src/tests/test_x509_rpki.cpp:91,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:93,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:98,1
    - Dst: generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:100,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_rpki.cpp:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 104
    functionName: Botan_Tests::get_sig_algo_padding_and_generate_key
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 9
    functionsReached:
    - Botan::create_private_key
    - Test_Error
    - Botan_Tests::Test::supported_ec_group_name
    - generate_key
    linkageType: ''
    returnType: std::tuple<std::string, std::string, std::string, std::unique_ptr<Botan::Private_Key>>
    signature: std::tuple<std::string, std::string, std::string, std::unique_ptr<Botan::Private_Key>>
      get_sig_algo_padding_and_generate_key(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:107,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:107,1
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:108,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: Botan_Tests::make_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 12
    functionsReached:
    - std::move
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: "Botan::X509_Certificate make_self_signed(std::unique_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                         const Botan::X509_Cert_Options&
      opts = std::move(ca_opts()))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:113,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:113,1
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:114,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:115,1
    - Dst: generate_another
      Src: /src/botan/src/tests/test_x509_rpki.cpp:117,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: Botan_Tests::make_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 48
    functionsReached:
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_self_signed_cert
    - generate_another
    - std::move
    - Botan_Tests::ca_opts
    linkageType: ''
    returnType: CA_Creation_Result
    signature: "CA_Creation_Result make_ca(std::unique_ptr<Botan::RandomNumberGenerator>&
      rng,\n                           const Botan::X509_Cert_Options& opts = std::move(ca_opts()))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_sig_algo_padding_and_generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:126,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:128,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:131,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ext
    - ' parent_ca'
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::Certificate_Extension>
    - Botan::X509_CA
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: Botan_Tests::make_and_sign_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 24
    functionsReached:
    - Botan_Tests::get_sig_algo_padding_and_generate_key
    - Botan::X509::create_cert_req
    - std::move
    - sign_request
    - std::make_pair
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    linkageType: ''
    returnType: std::pair<Botan::X509_Certificate, Botan::X509_CA>
    signature: "std::pair<Botan::X509_Certificate, Botan::X509_CA> make_and_sign_ca(\n
      \  std::unique_ptr<Botan::Certificate_Extension> ext,\n   Botan::X509_CA& parent_ca,\n
      \  std::unique_ptr<Botan::RandomNumberGenerator>& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:145,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:150,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:153,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:155,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:155,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:157,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:157,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:158,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:158,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:160,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:168,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:171,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:171,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:179,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:189,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:197,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:199,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:201,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:203,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:205,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:207,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:209,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:211,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:213,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:215,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:217,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:222,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:223,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:235,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:236,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:236,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:238,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:239,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:241,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:241,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:243,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:243,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:245,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:245,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:247,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:247,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:248,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:248,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:251,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:251,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:261,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:263,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:270,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:270,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:277,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:281,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:283,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:284,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 289
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - ranges
    - min
    - Test::Result::start_timer
    - safi
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Botan_Tests::Test::data_file
    - max
    - auto*::addr_blocks
    - Test::Result::test_sz_eq
    - size
    - Test::Result::test_bin_eq
    - Test::Result::test_opt_u8_eq
    - addr_choice
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:293,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:298,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:300,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:303,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:305,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:306,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:310,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:310,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:313,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:313,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:320,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:325,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:326,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:326,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:330,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:330,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:334,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:336,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:341,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:341,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:342,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:346,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:346,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:352,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:357,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:357,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:358,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:362,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:362,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 367
    functionName: Botan_Tests::test_x509_as_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - min
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_u32_eq
    - Botan_Tests::Test::data_file
    - max
    - rdi
    - asnum
    - Test::Result::test_is_false
    - Botan::X509_Certificate::v3_extensions
    - Test::Result::test_is_true
    - auto*::as_identifiers
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_extension_decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:373,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:376,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:379,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:380,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:381,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:382,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:383,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:384,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:385,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:386,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:388,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:391,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:395,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:400,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:403,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:403,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:405,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:405,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:406,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:406,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:407,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:407,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:410,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:410,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:413,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:413,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:415,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:415,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:416,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:416,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:418,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:418,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:419,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:419,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:431,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:432,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:435,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:438,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:443,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:447,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:450,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:450,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:453,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:453,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:454,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:454,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:457,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:457,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:460,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:464,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:467,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:467,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:469,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:472,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 477
    functionName: Botan_Tests::test_x509_ip_addr_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::Cert_Extension::static_oid
    - Botan::X509_Cert_Options::extensions::add
    - min
    - safi
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::v3_extensions
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - auto*::addr_blocks
    - addr_choice
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::make_self_signed
    - std::unique_ptr::inherit
    - max
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_rfc3779_example()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:481,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:484,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:486,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:489,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:491,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:493,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:495,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:498,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:500,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:502,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:503,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:503,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:505,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:506,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:506,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:509,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 516
    functionName: Botan_Tests::test_x509_ip_addr_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan_Tests::make_self_signed
    - auto::v3_extensions
    - Test::Result::start_timer
    - Botan::Cert_Extension::static_oid
    - std::move
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_encode_builder()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::bit_set
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bit_set(size_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::bit_set
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bit_set(size_t v)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:533,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:537,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:539,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:542,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:543,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:544,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:545,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:546,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:547,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:549,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:552,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:554,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:558,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:560,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:564,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:566,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:569,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:571,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:575,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:578,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:582,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:584,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:586,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:587,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:588,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:589,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:591,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:592,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:593,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:594,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:598,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:599,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:600,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:601,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:606,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:607,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:608,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:609,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:612,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:614,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:617,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:619,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:622,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:623,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:627,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:630,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:633,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:635,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:635,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:637,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:638,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:640,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:641,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:643,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:645,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:645,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:651,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:653,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:653,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:656,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:658,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:659,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:663,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:664,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:675,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:677,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:678,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:678,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:680,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:682,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:683,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:688,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 702
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - auto::max
    - Botan::X509::create_cert_req
    - Test::Result::test_u16_eq
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - empty
    - min
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - auto::afi
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::empty
    - auto::ranges
    - Botan_Tests::bit_set
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - auto::min
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - auto::addr_choice
    - size
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_encode_ctor()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:706,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:710,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:716,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:718,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:720,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:721,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:730,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:742,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:743,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:748,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:750,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:752,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:755,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:757,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:761,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:763,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:765,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:766,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:767,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:769,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:772,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:780,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 782
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - auto::max
    - Botan::X509::create_cert_req
    - Test::Result::test_u16_eq
    - Test::Result::test_not_null
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - std::move
    - auto::safi
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - std::vector::size
    - auto::afi
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - Botan_Tests::bit_set
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Botan_Tests::from_date
    - Botan_Tests::Test::new_rng
    - auto::min
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:786,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:790,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:792,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:793,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:809,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:810,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:811,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:812,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:815,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:819,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:821,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:825,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:826,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:828,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:829,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:830,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:832,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:832,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:833,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:839,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:839,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 845
    functionName: Botan_Tests::test_x509_ip_addr_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Test::Result::test_not_null
    - Botan_Tests::make_ca
    - IPAddressFamily
    - Test::Result::test_sz_eq
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - auto::size
    - std::move
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - Botan_Tests::from_date
    - Botan_Tests::Test::new_rng
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - std::vector::push_back
    - max
    - sign_request
    - auto::addr_choice
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_range_merge()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:849,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:853,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:855,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:856,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:868,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:868,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:870,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:871,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:880,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:880,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:897,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:898,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:899,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:900,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:901,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:902,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:908,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:912,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:913,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:915,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_x509_rpki.cpp:916,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:917,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:926,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:927,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:930,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:933,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:934,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:946,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:948,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:952,1
    - Dst: Test::Result::test_opt_u8_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:953,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:956,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:956,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:959,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:960,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:960,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:963,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:963,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:971,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:974,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:976,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:976,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:980,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:983,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:984,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:986,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:986,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:987,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:988,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:997,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:999,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:999,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1007,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1010,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1012,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1012,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1016,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1019,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1020,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1022,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1022,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1023,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1024,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1030,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 1032
    functionName: Botan_Tests::test_x509_ip_addr_blocks_family_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - Test::Result::test_not_null
    - Botan_Tests::make_ca
    - Test::Result::test_sz_eq
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - safi
    - std::to_string
    - std::move
    - auto::size
    - IPAddressBlocks::IPAddressChoice::ranges
    - Test::Result::test_opt_u8_eq
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan::X509_Certificate::v3_extensions
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - std::vector::size
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::ranges
    - auto*::addr_blocks
    - Test::Result::test_bin_eq
    - addr_choice
    - Botan_Tests::from_date
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - afi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - std::vector::push_back
    - max
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - size
    - std::make_unique<IPAddressBlocks>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_family_merge()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1036,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1039,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1050,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1052,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1053,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1055,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1058,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1063,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1065,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1066,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1069,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1071,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1072,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1074,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1078,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1079,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1079,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1080,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1081,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1082,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1082,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1085,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1086,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1089,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1090,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1093,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1095,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1096,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1098,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1102,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1106,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1109,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1109,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1111,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1113,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1119,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1119,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1034
    functionDepth: 3
    functionLinenumber: 1034
    functionLinenumberEnd: 1124
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::inherit
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_success_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1131,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1148,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1150,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1153,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1155,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1158,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1160,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1162,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1163,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1164,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1165,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1170,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1171,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1173,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1174,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1177,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1180,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1181,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1183,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1184,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1187,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1191,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1193,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1195,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1197,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1200,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1202,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1204,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1205,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1206,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1213,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1215,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1218,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1220,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1223,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1225,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1227,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1228,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1229,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1234,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1235,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1237,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1238,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1241,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1243,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1245,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1246,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1248,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1248,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1250,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1251,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1254,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1255,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1258,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1258,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1262,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1263,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1266,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1268,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1268,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1270,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1278,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1278,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1283
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - sign_request
    - IPAddressBlocks::IPAddress<IPv6>
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_success_ctor()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1290,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1302,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1304,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1306,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1309,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1313,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1316,1
    - Dst: std::unique_ptr::restrict
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1319,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1321,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1324,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1327,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1327,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1330,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1338,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1340,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1342,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1345,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1348,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1351,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1353,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1359,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1361,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1365,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1285
    functionDepth: 3
    functionLinenumber: 1285
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::add_address
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::restrict
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::inherit
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_failure_builder()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1374,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1391,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1394,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1394,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1395,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1397,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1399,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1401,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1401,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1407,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1409,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1415,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1419,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1421,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1422,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1422,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1433,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1441,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1443,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1445,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1445,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1446,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1449,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1451,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1456,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1462,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1464,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1468,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1369
    functionDepth: 3
    functionLinenumber: 1369
    functionLinenumberEnd: 1470
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - IPAddressBlocks::IPAddress<IPv4>
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::vector::push_back
    - sign_request
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_ip_addr_blocks_path_validation_failure_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1477,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1480,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1481,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1482,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1483,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1484,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1486,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1487,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1487,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1489,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1492,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1495,1
    - Dst: auto::asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1472
    functionDepth: 3
    functionLinenumber: 1472
    functionLinenumberEnd: 1502
    functionName: Botan_Tests::test_x509_as_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan_Tests::make_self_signed
    - std::make_unique<ASBlocks>
    - Test::Result::start_timer
    - auto::v3_extensions
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::unique_ptr::inherit_rdi
    - Test::Result::test_u32_eq
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    - auto::asnum
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_rfc3779_example()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1506,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1509,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1511,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1513,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1514,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1515,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1516,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1518,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1519,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1521,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1523,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1526,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1529,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1504
    functionDepth: 3
    functionLinenumber: 1504
    functionLinenumberEnd: 1533
    functionName: Botan_Tests::test_x509_as_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::make_self_signed
    - std::make_unique<ASBlocks>
    - Test::Result::start_timer
    - auto::v3_extensions
    - std::unique_ptr::add_asnum
    - std::unique_ptr::inherit_asnum
    - std::move
    - Botan::Cert_Extension::static_oid
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::unique_ptr::restrict_asnum
    - std::unique_ptr::add_rdi
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_encode_builder()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1537,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1541,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1543,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1546,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1547,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1548,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1549,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1554,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1555,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1556,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1558,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1559,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1560,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1564,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1565,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1566,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1571,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1572,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1573,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1576,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1577,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1579,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1579,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1580,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1582,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1584,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1587,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1591,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1592,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1604,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1604,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1616,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1616,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1617,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1617,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1619,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1619,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1620,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1620,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1630,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1535
    functionDepth: 3
    functionLinenumber: 1535
    functionLinenumberEnd: 1632
    functionName: Botan_Tests::test_x509_as_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - empty
    - min
    - std::move
    - ASIdOrRange
    - Botan::X509_Certificate::v3_extensions
    - ASIdentifierChoice
    - Test::Result::test_u32_eq
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - rdi
    - asnum
    - Test::Result::test_is_false
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto*::as_identifiers
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - max
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_extension_encode_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1636,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1640,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1642,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1643,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1656,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1656,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1658,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1661,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1663,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1663,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1665,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1669,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1673,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1675,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1677,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1680,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1680,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1634
    functionDepth: 3
    functionLinenumber: 1634
    functionLinenumberEnd: 1686
    functionName: Botan_Tests::test_x509_as_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Test::Result::test_sz_eq
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - min
    - std::move
    - Botan::X509_Certificate::v3_extensions
    - ASIdentifierChoice
    - Test::Result::test_u32_eq
    - std::vector::size
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector::emplace_back
    - asnum
    - Botan_Tests::from_date
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto*::as_identifiers
    - std::optional
    - std::make_unique<ASBlocks>
    - max
    - sign_request
    - std::vector::reserve
    - size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_range_merge()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1693,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1705,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1707,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1708,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1709,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1711,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1712,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1713,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1716,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1717,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1718,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1722,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1724,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1725,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1726,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1727,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1728,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1730,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1731,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1732,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1733,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1735,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1737,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1738,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1742,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1743,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1746,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1747,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1751,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1752,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1753,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1755,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1759,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1760,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1762,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1765,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1765,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1767,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1775,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1775,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1688
    functionDepth: 3
    functionLinenumber: 1688
    functionLinenumberEnd: 1780
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - std::unique_ptr::inherit_asnum
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_success_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1787,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1798,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1799,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1800,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1802,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1803,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1804,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1807,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1808,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1809,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1812,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1813,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1814,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1816,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1817,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1818,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1819,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1822,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1823,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1824,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1825,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1828,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1829,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1830,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1832,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1836,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1837,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1838,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1841,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1842,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1845,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1846,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1847,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1848,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1849,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1851,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1852,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1853,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1854,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1857,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1858,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1859,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1860,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1861,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1864,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1865,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1866,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1867,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1869,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1870,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1871,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1872,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1874,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1876,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1877,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1881,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1882,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1885,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1886,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1889,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1889,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1892,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1893,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1897,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1899,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1905,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1905,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1782
    functionDepth: 3
    functionLinenumber: 1782
    functionLinenumberEnd: 1910
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::bit_set
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_success_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1917,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1919,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1920,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1921,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1922,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1923,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1924,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1926,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1927,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1928,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1929,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1932,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1933,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1934,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1936,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1940,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1941,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1947,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1947,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1912
    functionDepth: 3
    functionLinenumber: 1912
    functionLinenumberEnd: 1951
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_extension_not_present_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_extension_not_present_builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1958,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1961,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1962,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1963,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1964,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1965,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1967,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1968,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1969,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1970,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1973,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1974,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1975,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1976,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1977,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1980,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1981,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1982,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1983,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1985,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1986,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1987,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1988,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1991,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1992,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1993,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1995,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1997,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1999,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2000,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2005,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1953
    functionDepth: 3
    functionLinenumber: 1953
    functionLinenumberEnd: 2010
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_extension_not_present_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Test::Result::require
    - Botan_Tests::ca_opts
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_extension_not_present_ctor()
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2014,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2017,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2066,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2071,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2074,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2075,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2076,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2079,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2080,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2081,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2084,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2090,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2092,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2093,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2094,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2096,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2097,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2098,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2101,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2105,1
    - Dst: std::unique_ptr::restrict_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2106,1
    - Dst: std::unique_ptr::copy
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2112,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2115,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2120,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2123,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2126,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2127,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2128,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2133,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2134,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2135,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2136,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2139,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2140,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2141,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2145,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2146,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2147,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2148,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2150,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2153,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2159,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2161,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2163,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2164,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2165,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2167,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2168,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2169,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2170,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2172,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2173,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2174,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2176,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2177,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2178,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2179,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2182,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2185,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2186,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2186,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2187,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2190,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2191,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2191,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2192,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2194,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2196,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2204,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2204,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2208,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2012
    functionDepth: 3
    functionLinenumber: 2012
    functionLinenumberEnd: 2210
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - Botan_Tests::make_ca
    - std::unique_ptr::add_rdi
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::to_string
    - std::unique_ptr::add_asnum
    - std::move
    - Botan::x509_path_validate
    - std::unique_ptr::copy
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - std::unique_ptr::inherit_asnum
    - std::unique_ptr::restrict_rdi
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    - sign_request
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_failure_builder()
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2214,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2217,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2272,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2272,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2275,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2275,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2276,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2276,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2277,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2277,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2280,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2280,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2281,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2281,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2282,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2282,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2287,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2287,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2289,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2289,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2290,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2290,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2291,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2291,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2293,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2293,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2294,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2294,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2295,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2295,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2311,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2311,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2314,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2314,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2318,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2326,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2326,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2330,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2336,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2336,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2338,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2338,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2343,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2343,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2351,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2352,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2352,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2355,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2358,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2359,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2359,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2367,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2367,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2368,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2372,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2375,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2375,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2377,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2377,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2378,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2379,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2381,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2383,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2384,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2384,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2386,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2388,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2390,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2393,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2398,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2401,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2404,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2212
    functionDepth: 3
    functionLinenumber: 2212
    functionLinenumberEnd: 2406
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_cert_req
    - ASIdentifiers
    - Botan_Tests::make_ca
    - Botan_Tests::req_opts
    - Botan::X509_Cert_Options::extensions::add
    - std::to_string
    - std::move
    - ASIdOrRange
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ASIdentifierChoice
    - Test::Result::start_timer
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::end_timer
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::optional
    - std::make_unique<ASBlocks>
    - std::vector::push_back
    - sign_request
    - Botan_Tests::make_and_sign_ca
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_as_blocks_path_validation_failure_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2414,1
    - Dst: test_x509_ip_addr_blocks_extension_decode
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2414,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2415,1
    - Dst: test_x509_as_blocks_extension_decode
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2415,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2417,1
    - Dst: test_x509_ip_addr_blocks_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2417,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2418,1
    - Dst: test_x509_ip_addr_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2418,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2419,1
    - Dst: test_x509_ip_addr_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2419,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2420,1
    - Dst: test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2420,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2421,1
    - Dst: test_x509_ip_addr_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2421,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2422,1
    - Dst: test_x509_ip_addr_blocks_family_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2422,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2423,1
    - Dst: test_x509_ip_addr_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2423,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2424,1
    - Dst: test_x509_ip_addr_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2424,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2425,1
    - Dst: test_x509_ip_addr_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2425,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2426,1
    - Dst: test_x509_ip_addr_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2426,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2427,1
    - Dst: test_x509_as_blocks_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2427,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2428,1
    - Dst: test_x509_as_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2428,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2429,1
    - Dst: test_x509_as_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2429,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2430,1
    - Dst: test_x509_as_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2430,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2431,1
    - Dst: test_x509_as_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2432,1
    - Dst: test_x509_as_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2433,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2433,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2434,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2434,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2435,1
    - Dst: test_x509_as_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2435,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    - Dst: test_x509_as_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2410
    functionDepth: 0
    functionLinenumber: 2410
    functionLinenumberEnd: 2438
    functionName: Botan_Tests::X509_RPKI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - test_x509_as_blocks_extension_decode
    - test_x509_as_blocks_range_merge
    - test_x509_ip_addr_blocks_extension_encode_ctor
    - test_x509_as_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_path_validation_success_ctor
    - test_x509_as_blocks_path_validation_failure_builder
    - test_x509_as_blocks_path_validation_failure_ctor
    - test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    - test_x509_as_blocks_encode_builder
    - test_x509_ip_addr_blocks_extension_decode
    - test_x509_as_blocks_path_validation_extension_not_present_builder
    - test_x509_ip_addr_blocks_path_validation_failure_builder
    - test_x509_ip_addr_blocks_range_merge
    - test_x509_as_blocks_path_validation_success_ctor
    - test_x509_ip_addr_blocks_rfc3779_example
    - test_x509_as_blocks_path_validation_extension_not_present_ctor
    - test_x509_as_blocks_rfc3779_example
    - test_x509_as_blocks_extension_encode_ctor
    - test_x509_ip_addr_blocks_path_validation_failure_ctor
    - std::vector::push_back
    - test_x509_ip_addr_blocks_family_merge
    - test_x509_ip_addr_blocks_encode_builder
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::GOST_3410_2001_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GOST_3410_2001_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:35,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:36,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:38,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:43,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:44,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_gost_3410.cpp:46,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:47,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_gost_3410.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - get_req_bn
    - Test_Error
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::GOST_3410_2001_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GOST_3410_2001_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:67,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:68,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:72,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:73,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    - Dst: std::make_unique<Botan::GOST_3410_PrivateKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:79,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GOST_3410_2001_Signature_Tests::rng
    - get_req_str
    - std::make_unique<Botan::GOST_3410_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_gost_3410.cpp:85,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GOST_3410_2001_Signature_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:94,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gost_3410.cpp:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_gost_3410.cpp:106,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_gost_3410.cpp:107,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::GOST_3410_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::GOST_3410_2001_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GOST_3410_2001_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:35,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:36,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:38,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:43,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:44,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_gost_3410.cpp:46,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:47,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_gost_3410.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - get_req_bn
    - Test_Error
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::GOST_3410_2001_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GOST_3410_2001_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:67,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:68,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:72,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:73,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    - Dst: std::make_unique<Botan::GOST_3410_PrivateKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:79,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GOST_3410_2001_Signature_Tests::rng
    - get_req_str
    - std::make_unique<Botan::GOST_3410_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_gost_3410.cpp:85,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GOST_3410_2001_Signature_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:94,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gost_3410.cpp:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_gost_3410.cpp:106,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_gost_3410.cpp:107,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::GOST_3410_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::GOST_3410_2001_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GOST_3410_2001_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:35,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:36,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:38,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:43,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:44,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_gost_3410.cpp:46,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:47,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_gost_3410.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - get_req_bn
    - Test_Error
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::GOST_3410_2001_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GOST_3410_2001_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:67,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:68,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:72,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:73,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    - Dst: std::make_unique<Botan::GOST_3410_PrivateKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:79,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GOST_3410_2001_Signature_Tests::rng
    - get_req_str
    - std::make_unique<Botan::GOST_3410_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_gost_3410.cpp:85,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GOST_3410_2001_Signature_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:94,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gost_3410.cpp:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_gost_3410.cpp:106,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_gost_3410.cpp:107,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::GOST_3410_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::GOST_3410_2001_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GOST_3410_2001_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:35,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:36,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:38,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:43,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:44,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_gost_3410.cpp:46,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:47,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_gost_3410.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - get_req_bn
    - Test_Error
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::GOST_3410_2001_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GOST_3410_2001_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:67,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:68,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:72,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:73,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    - Dst: std::make_unique<Botan::GOST_3410_PrivateKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:79,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GOST_3410_2001_Signature_Tests::rng
    - get_req_str
    - std::make_unique<Botan::GOST_3410_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_gost_3410.cpp:85,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GOST_3410_2001_Signature_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_gost_3410.cpp:94,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gost_3410.cpp:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_gost_3410.cpp:106,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_gost_3410.cpp:107,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: Botan_Tests::GOST_3410_2001_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::GOST_3410_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::Cryptobox_KAT::Cryptobox_KAT
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cryptobox_KAT()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_cryptobox.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:32,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:34,1
    - Dst: Botan::CryptoBox::encrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:45,1
    - Dst: Botan::CryptoBox::decrypt_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:45,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_cryptobox.cpp:49,1
    - Dst: Botan_Tests::Cryptobox_KAT::rng
      Src: /src/botan/src/tests/test_cryptobox.cpp:49,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan::CryptoBox::decrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:52,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cryptobox.cpp:53,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:55,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Cryptobox_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached:
    - Botan::CryptoBox::decrypt
    - get_req_str
    - Test::Result::test_success
    - Botan::CryptoBox::decrypt_bin
    - Test::Result::test_str_eq
    - Botan::CryptoBox::encrypt
    - std::vector::data
    - Botan::PEM_Code::encode
    - Botan_Tests::Test::mutate_vec
    - Test::Result::test_bin_eq
    - Botan_Tests::Cryptobox_KAT::rng
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::Cryptobox_KAT::Cryptobox_KAT
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cryptobox_KAT()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_cryptobox.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:32,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:34,1
    - Dst: Botan::CryptoBox::encrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:45,1
    - Dst: Botan::CryptoBox::decrypt_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:45,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_cryptobox.cpp:49,1
    - Dst: Botan_Tests::Cryptobox_KAT::rng
      Src: /src/botan/src/tests/test_cryptobox.cpp:49,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan::CryptoBox::decrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:52,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cryptobox.cpp:53,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:55,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Cryptobox_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached:
    - Botan::CryptoBox::decrypt
    - get_req_str
    - Test::Result::test_success
    - Botan::CryptoBox::decrypt_bin
    - Test::Result::test_str_eq
    - Botan::CryptoBox::encrypt
    - std::vector::data
    - Botan::PEM_Code::encode
    - Botan_Tests::Test::mutate_vec
    - Test::Result::test_bin_eq
    - Botan_Tests::Cryptobox_KAT::rng
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::Cryptobox_KAT::Cryptobox_KAT
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cryptobox_KAT()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_cryptobox.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:32,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:34,1
    - Dst: Botan::CryptoBox::encrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:45,1
    - Dst: Botan::CryptoBox::decrypt_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:45,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_cryptobox.cpp:49,1
    - Dst: Botan_Tests::Cryptobox_KAT::rng
      Src: /src/botan/src/tests/test_cryptobox.cpp:49,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan::CryptoBox::decrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:52,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cryptobox.cpp:53,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:55,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Cryptobox_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached:
    - Botan::CryptoBox::decrypt
    - get_req_str
    - Test::Result::test_success
    - Botan::CryptoBox::decrypt_bin
    - Test::Result::test_str_eq
    - Botan::CryptoBox::encrypt
    - std::vector::data
    - Botan::PEM_Code::encode
    - Botan_Tests::Test::mutate_vec
    - Test::Result::test_bin_eq
    - Botan_Tests::Cryptobox_KAT::rng
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::Cryptobox_KAT::Cryptobox_KAT
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cryptobox_KAT()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_cryptobox.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:32,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:34,1
    - Dst: Botan::CryptoBox::encrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cryptobox.cpp:41,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:43,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:45,1
    - Dst: Botan::CryptoBox::decrypt_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:45,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_cryptobox.cpp:49,1
    - Dst: Botan_Tests::Cryptobox_KAT::rng
      Src: /src/botan/src/tests/test_cryptobox.cpp:49,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan::CryptoBox::decrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:52,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cryptobox.cpp:53,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:55,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Cryptobox_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached:
    - Botan::CryptoBox::decrypt
    - get_req_str
    - Test::Result::test_success
    - Botan::CryptoBox::decrypt_bin
    - Test::Result::test_str_eq
    - Botan::CryptoBox::encrypt
    - std::vector::data
    - Botan::PEM_Code::encode
    - Botan_Tests::Test::mutate_vec
    - Test::Result::test_bin_eq
    - Botan_Tests::Cryptobox_KAT::rng
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_add
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:51,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:51,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:52,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_cast
      Src: /src/botan/src/tests/test_utils.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:53,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_round_up
      Src: /src/botan/src/tests/test_utils.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:54,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore
      Src: /src/botan/src/tests/test_utils.cpp:54,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:57,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
      Src: /src/botan/src/tests/test_utils.cpp:57,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils.cpp:58,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
      Src: /src/botan/src/tests/test_utils.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: Botan_Tests::Utility_Function_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan::concat
    - Botan_Tests::Utility_Function_Tests::test_loadstore
    - Botan_Tests::Utility_Function_Tests::test_round_up
    - Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    - Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    - Botan_Tests::Utility_Function_Tests::test_checked_cast
    - Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    - Botan_Tests::Utility_Function_Tests::test_checked_add
    - Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    - Botan_Tests::Utility_Function_Tests::test_checked_mul
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:65,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:69,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:70,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:71,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:73,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:78,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:78,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:82,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:88,1
    - Dst: Botan::checked_add
      Src: /src/botan/src/tests/test_utils.cpp:90,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_add
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - fuzzer_rng
    - Botan::checked_add
    - Botan::checked_add<size_t>
    - Test::Result::test_u32_eq
    - static_cast<size_t>
    - Test::Result::test_sz_eq
    - next_byte
    - auto::has_value
    - Botan::make_uint16
    - auto::value
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_add()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:103,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:109,1
    - Dst: Botan::checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:111,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 119
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_mul
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::checked_mul
    - static_cast<uint32_t>
    - fuzzer_rng
    - auto::value
    - next_byte
    - Botan::make_uint16
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_mul()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:128,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:128,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Botan::checked_cast_to<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:132,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:132,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:133,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_cast
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - Botan::checked_cast_to<uint16_t>
    - Botan::checked_cast_to<uint32_t>
    - Botan::checked_cast_to<uint8_t>
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - Test::Result::test_u8_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_cast()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:156,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:158,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:159,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Utility_Function_Tests::test_round_up
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_throws
    - Botan::fmt
    - Botan::round_up
    - static_cast<size_t>
    - what
    - Test::Result::test_failure
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_round_up()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:189,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:190,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:198,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:198,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:201,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:201,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:204,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:204,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:205,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:205,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:206,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:206,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:209,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:209,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:210,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:210,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:211,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:211,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:214,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:214,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:215,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:215,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:216,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:216,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:219,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:219,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:220,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:220,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:221,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:221,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:224,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:224,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:227,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:227,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:228,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:228,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:231,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:231,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:234,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:234,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:238,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:238,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:239,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:239,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:246,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:247,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:248,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:250,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:251,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:252,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:254,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:255,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:256,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:257,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:258,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:260,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:261,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:262,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:263,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:264,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:266,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:267,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:268,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:269,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:270,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:271,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:272,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:273,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:274,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:276,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:277,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:278,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:279,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:280,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:281,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:282,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:283,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:284,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:292,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:294,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:295,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:296,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:297,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:301,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:302,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:303,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:304,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:306,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:308,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:309,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:310,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:311,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:315,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:316,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:317,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:318,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:324,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:325,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:327,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:328,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:330,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:332,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:333,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:338,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:339,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:340,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:341,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:342,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:343,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:344,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:345,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:349,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:350,1
    - Dst: Botan::store_be<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:353,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:354,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:355,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:356,1
    - Dst: Botan::store_le<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:359,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:374,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:375,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:375,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:376,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:377,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:377,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:378,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:379,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:379,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:380,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:381,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:385,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:386,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:387,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:388,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:389,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:390,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:391,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:392,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:397,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:397,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:398,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:398,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:401,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:401,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:402,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:402,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:405,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:406,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:407,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:408,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:410,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:411,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:412,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:413,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:416,1
    - Dst: Botan::load_be<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:417,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:418,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: Botan::load_be<std::vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:420,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:422,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:423,1
    - Dst: Botan::load_le<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:425,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:426,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: Botan::load_le<Botan::secure_vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:428,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:430,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:431,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:437,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:439,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:444,1
    - Dst: Botan::load_be<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:445,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:445,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::load_le<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::load_be<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:450,1
    - Dst: Botan::load_le<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:451,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:451,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:454,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:455,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:458,1
    - Dst: Botan::load_le<std::array<TestInt64, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:462,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:462,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:463,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Botan::load_be<std::vector<TestInt64>>
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:469,1
    - Dst: Botan::load_le<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Botan::load_be<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:477,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:478,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:478,1
    - Dst: Botan::load_le<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:480,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:480,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:481,1
    - Dst: Botan::load_be<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:482,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:482,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:483,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:484,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:484,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:485,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 195
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 488
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::get_byte<1>
    - Botan::load_le<Botan::secure_vector<uint16_t>>
    - Botan::store_be
    - Test::Result::test_sz_eq
    - Botan::load_be<std::vector<TestInt64>>
    - Botan::load_be<std::vector<uint16_t>>
    - Botan::store_le
    - Botan::hex_decode
    - Botan::get_byte<0>
    - first
    - Botan::load_le<TestInt32>
    - auto::size
    - Botan::load_be<TestInt64>
    - Test::Result::test_enum_eq
    - Botan::load_be<TestEnum64>
    - Botan::load_be<uint32_t>
    - Botan::store_le<TestVectorSink>
    - Botan::load_le<uint32_t>
    - Botan::load_le<TestEnum64>
    - Botan::load_le<uint64_t>
    - Botan::load_be<uint16_t>
    - Test::Result::test_u32_eq
    - Botan::load_le<std::array<TestInt64, 2>>
    - Botan::make_uint32
    - Botan::load_be<std::array<uint16_t, 2>>
    - Botan::store_le<std::vector<uint8_t>>
    - Botan::load_le
    - Botan::load_le<TestEnum32>
    - Test::Result::test_bin_eq
    - Botan::load_le<TestInt64>
    - Test::Result::test_throws
    - Test::Result::test_u8_eq
    - Botan::store_be<std::vector<uint8_t>>
    - Test::Result::test_u64_eq
    - test_arb_eq
    - Botan::get_byte<2>
    - Botan::load_be<TestEnum32>
    - Botan::load_be<uint64_t>
    - Botan::load_le<std::array<uint16_t, 2>>
    - std::vector::data
    - Botan::load_be
    - Botan::store_be<TestVectorSink>
    - Botan::make_uint16
    - Botan::load_be<TestInt32>
    - Botan::load_le<uint16_t>
    - Botan::get_byte<3>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_load_any<std::endian::big, T>
      Src: /src/botan/src/tests/test_utils.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::detail::fallback_load_any<std::endian::big, T>
    linkageType: ''
    returnType: T
    signature: T fb_load_be(std::array<const uint8_t, sizeof(T)> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_load_any<std::endian::little, T>
      Src: /src/botan/src/tests/test_utils.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::detail::fallback_load_any<std::endian::little, T>
    linkageType: ''
    returnType: T
    signature: T fb_load_le(std::array<const uint8_t, sizeof(T)> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_store_any<std::endian::big, T>
      Src: /src/botan/src/tests/test_utils.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: Botan_Tests::Utility_Function_Tests::fb_store_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::detail::fallback_store_any<std::endian::big, T>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) fb_store_be(const T in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_store_any<std::endian::little, T>
      Src: /src/botan/src/tests/test_utils.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: Botan_Tests::Utility_Function_Tests::fb_store_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::detail::fallback_store_any<std::endian::little, T>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) fb_store_le(const T in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:534,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:535,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:537,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:537,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:538,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:538,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:539,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:539,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:540,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:540,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:541,1
    - Dst: Botan::load_be<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:541,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:542,1
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 545
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_be<uint64_t>
    - Botan::load_be<size_t>
    - Botan::load_be<uint32_t>
    - Botan::store_be
    - Botan::load_le<uint32_t>
    - Botan::load_le<size_t>
    - Test::Result::test_sz_eq
    - Botan::load_le<uint64_t>
    - Test::Result::test_u32_eq
    - Botan::store_le
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_ambiguity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:556,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:556,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:560,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:560,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:562,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:562,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:563,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:563,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:564,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:564,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:566,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:566,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:567,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:567,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:568,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 571
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan_Tests::Utility_Function_Tests::fb_store_be
    - Test::Result::test_u32_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - Botan_Tests::Utility_Function_Tests::fb_store_le
    - Test::Result::test_bin_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_fallback()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:587,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:588,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:589,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:590,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:593,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:594,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:595,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:596,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:597,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:598,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:599,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:600,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:603,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:604,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:605,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:606,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:607,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:608,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:609,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:610,1
    - Dst: Botan::get_byte<4>
      Src: /src/botan/src/tests/test_utils.cpp:611,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:612,1
    - Dst: Botan::get_byte<5>
      Src: /src/botan/src/tests/test_utils.cpp:613,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:614,1
    - Dst: Botan::get_byte<6>
      Src: /src/botan/src/tests/test_utils.cpp:615,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:616,1
    - Dst: Botan::get_byte<7>
      Src: /src/botan/src/tests/test_utils.cpp:617,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:618,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:621,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:622,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:623,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:624,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_utils.cpp:625,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:626,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:629,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:630,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:631,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:632,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:633,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:634,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:636,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:637,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:638,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:639,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:640,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:641,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:645,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:647,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:648,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:649,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:650,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:651,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:652,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:653,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:654,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:655,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:656,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:657,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:660,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:662,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:663,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:664,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:665,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:666,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:667,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:668,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:669,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:670,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:671,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:672,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:675,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:676,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:677,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:678,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:679,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:680,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:682,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:683,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:684,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:685,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:686,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:687,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:691,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:695,1
    - Dst: Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:695,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:696,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:699,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:706,1
    - Dst: Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:706,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:707,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:709,1
    - Dst: Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:709,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 713
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::get_byte<1>
    - Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::store_be
    - std::array::size
    - Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::store_le
    - Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<0>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::load_le<uint64_t>
    - Test::Result::test_u32_eq
    - Botan::load_be<uint16_t>
    - Botan::get_byte<7>
    - Botan::make_uint32
    - Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<4>
    - Botan::get_byte<5>
    - Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint64
    - Test::Result::test_bin_eq
    - Test::Result::test_u8_eq
    - test_arb_eq
    - Test::Result::test_u64_eq
    - Botan::get_byte<2>
    - Botan::load_be<uint64_t>
    - Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint16
    - Botan::get_byte<6>
    - Botan::load_le<uint16_t>
    - Botan::get_byte<3>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_constexpr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:721,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:722,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:730,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:737,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:738,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:745,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:746,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:753,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:754,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:761,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:762,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:769,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:770,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:777,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 781
    functionName: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - CHECK
    - Botan::copy_out_le
    - Botan::copy_out_be
    - test_bin_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_copy_out_be_le()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:791,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:791,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:792,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:792,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:793,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:793,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:794,1
    - Dst: Botan_Tests::BitOps_Tests::test_popcount
      Src: /src/botan/src/tests/test_utils.cpp:794,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:795,1
    - Dst: Botan_Tests::BitOps_Tests::test_reverse_bits
      Src: /src/botan/src/tests/test_utils.cpp:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 798
    functionName: Botan_Tests::BitOps_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_reverse_bits
    - std::vector::push_back
    - Botan_Tests::BitOps_Tests::test_popcount
    - Botan_Tests::BitOps_Tests::test_sig_bytes
    - Botan_Tests::BitOps_Tests::test_ctz
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_utils.cpp:803,1
    - Dst: Botan::ctz<T>
      Src: /src/botan/src/tests/test_utils.cpp:804,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_utils.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 807
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::CT::unpoison_all
    - std::to_string
    - test_sz_eq
    - Botan::CT::poison
    - Botan::ctz<T>
    linkageType: ''
    returnType: void
    signature: void test_ctz(Test::Result& result, T val, size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:811,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:812,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:813,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:814,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 819
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_ctz
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ctz()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_utils.cpp:823,1
    - Dst: Botan::significant_bytes<T>
      Src: /src/botan/src/tests/test_utils.cpp:824,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_utils.cpp:825,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 827
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::CT::unpoison_all
    - std::to_string
    - test_sz_eq
    - Botan::significant_bytes<T>
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_sig_bytes(Test::Result& result, T val, size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:831,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:832,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:833,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:834,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:835,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:836,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:837,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:838,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:840,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:842,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:843,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:844,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 848
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_sig_bytes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_sig_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: Botan::is_power_of_2<T>
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 853
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - test_bool_eq
    - Botan::is_power_of_2<T>
    - std::to_string
    linkageType: ''
    returnType: void
    signature: void test_power_of_2(Test::Result& result, T val, bool expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:858,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:859,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:860,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:861,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:862,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:863,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:864,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:866,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:867,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:868,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:869,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:870,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:871,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:872,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 876
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_power_of_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:879,1
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 881
    functionName: Botan_Tests::BitOps_Tests::pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_popcount
    linkageType: ''
    returnType: auto
    signature: auto pc(T val) -> decltype(Botan::ct_popcount(val))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le<T>
      Src: /src/botan/src/tests/test_utils.cpp:885,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:885,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: Botan_Tests::BitOps_Tests::random_pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::load_le<T>
    - fuzzer_rng
    - test_sz_eq
    - std::popcount
    - Botan_Tests::BitOps_Tests::pc
    linkageType: ''
    returnType: auto
    signature: auto random_pc(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:892,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:892,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:893,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:893,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:894,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:894,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:895,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:895,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:897,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:897,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:898,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:898,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:899,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:899,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:900,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:900,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:905,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:905,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:907,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:907,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:908,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:908,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:909,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:909,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:910,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:910,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 889
    functionDepth: 3
    functionLinenumber: 889
    functionLinenumberEnd: 918
    functionName: Botan_Tests::BitOps_Tests::test_popcount
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::BitOps_Tests::pc
    - Test::Result::test_u8_eq
    - Botan_Tests::BitOps_Tests::random_pc
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_popcount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:933,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:933,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:935,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:935,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:936,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:936,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:937,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 940
    functionName: Botan_Tests::BitOps_Tests::test_reverse_bits
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::ct_reverse_bits<uint64_t>
    - Botan::ct_reverse_bits<uint16_t>
    - Botan::ct_reverse_bits<uint32_t>
    - Test::Result::test_u32_eq
    - Botan::ct_reverse_bits<uint8_t>
    - Test::Result::test_u8_eq
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reverse_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 949
    functionName: Botan_Tests::Poly_Double_Tests::Poly_Double_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Poly_Double_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:953,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:954,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 961
    functionName: Botan_Tests::Poly_Double_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_double_n
    - std::vector::data
    - Test::Result::test_bin_eq
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:973,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_utils.cpp:973,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:975,1
    - Dst: Botan::version_string
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:977,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:977,1
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:979,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/test_utils.cpp:980,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:981,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:981,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:984,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:990,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:992,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:992,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:994,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 1002
    functionName: Botan_Tests::Version_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::short_version_cstr
    - std::string
    - Botan::fmt
    - std::string::empty
    - Test::Result::test_u32_eq
    - std::string::starts_with
    - Test::Result::test_str_eq
    - Botan::version_datestamp
    - Botan::short_version_string
    - Botan::version_cstr
    - Botan::runtime_version_check
    - Botan::version_string
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1009
    functionName: Botan_Tests::Date_Format_Tests::Date_Format_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Date_Format_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_utils.cpp:1012,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1014,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils.cpp:1018,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1018,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1020,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_utils.cpp:1020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1023
    functionName: Botan_Tests::Date_Format_Tests::parse_date
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::split_on
    - std::vector::push_back
    - Botan::to_u32bit
    - std::vector::reserve
    - Test_Error
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint32_t>
    signature: std::vector<uint32_t> parse_date(const std::string& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1026,1
    - Dst: Botan_Tests::Date_Format_Tests::parse_date
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1034,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1034,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1035,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1035,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1038,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1038,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1046,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1046,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1047,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1047,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1049,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1049,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1053,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1056,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1060
    functionName: Botan_Tests::Date_Format_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::calendar_point::minutes
    - Test_Error
    - Botan::calendar_point::seconds
    - Botan::calendar_point::hour
    - Botan::calendar_point::month
    - Botan::calendar_point::year
    - Botan_Tests::Date_Format_Tests::parse_date
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - Botan::calendar_point::day
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1066,1
    - Dst: Botan::calendar_point::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1068
    functionName: Botan_Tests::Date_Format_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::calendar_point::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1075
    functionName: Botan_Tests::Charset_Tests::Charset_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Charset_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1081,1
    - Dst: Botan::ucs2_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: Botan::ucs4_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: Botan::latin1_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1092,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:1095,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1099
    functionName: Botan_Tests::Charset_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::ucs2_to_utf8
    - Botan::latin1_to_utf8
    - Botan::ucs4_to_utf8
    - std::string::end
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test_Error
    - std::string::begin
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: Botan_Tests::Hostname_Tests::Hostname_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hostname_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1111,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1112,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:1116,1
    - Dst: Botan::host_wildcard_match
      Src: /src/botan/src/tests/test_utils.cpp:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1119
    functionName: Botan_Tests::Hostname_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_bool_eq
    - Botan::host_wildcard_match
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1126
    functionName: Botan_Tests::DNS_Check_Tests::DNS_Check_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DNS_Check_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1131,1
    - Dst: Botan::check_and_canonicalize_dns_name
      Src: /src/botan/src/tests/test_utils.cpp:1135,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1136,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1145,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1152
    functionName: Botan_Tests::DNS_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - Botan::check_and_canonicalize_dns_name
    - BOTAN_UNUSED
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1159
    functionName: Botan_Tests::IPv4_Parsing_Tests::IPv4_Parsing_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IPv4_Parsing_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1164,1
    - Dst: Botan::string_to_ipv4
      Src: /src/botan/src/tests/test_utils.cpp:1167,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:1169,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:1169,1
    - Dst: Botan::ipv4_to_string
      Src: /src/botan/src/tests/test_utils.cpp:1172,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:1172,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1177
    functionName: Botan_Tests::IPv4_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_bool_eq
    - Botan::string_to_ipv4
    - Test::Result::test_str_eq
    - auto::has_value
    - Botan::ipv4_to_string
    - auto::value
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& status, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1184
    functionName: Botan_Tests::ReadKV_Tests::ReadKV_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadKV_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1191,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    - Dst: Botan_Tests::ReadKV_Tests::confirm_kv
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Botan_Tests::ReadKV_Tests::split_group
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1198,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1201
    functionName: Botan_Tests::ReadKV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::ReadKV_Tests::confirm_kv
    - Botan::read_kv
    - Botan_Tests::ReadKV_Tests::split_group
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& status, const VarMap&
      vars) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_utils.cpp:1206,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1213,1
    - Dst: std::string::clear
      Src: /src/botan/src/tests/test_utils.cpp:1214,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1220,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1225
    functionName: Botan_Tests::ReadKV_Tests::split_group
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - std::string::clear
    - empty
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split_group(const std::string& str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1234,1
    - Dst: find
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1236,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1236,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1237,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' result'
    - ' kv'
    - ' expected'
    argTypes:
    - Test::Result
    - std::map<std::string, std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1242
    functionName: Botan_Tests::ReadKV_Tests::confirm_kv
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - find
    - test_sz_eq
    - test_is_true
    - size
    - test_str_eq
    - end
    linkageType: ''
    returnType: void
    signature: "void confirm_kv(Test::Result& result,\n                             const
      std::map<std::string, std::string>& kv,\n                             const
      std::vector<std::string>& expected)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1254,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: Botan::CPUFeature
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: static_cast<Botan::CPUID::Feature::Bit>
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1263,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/test_utils.cpp:1267,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1268,1
    - Dst: auto::as_u32
      Src: /src/botan/src/tests/test_utils.cpp:1268,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1270,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1271,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1282,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1283,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_utils.cpp:1283,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/test_utils.cpp:1285,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_utils.cpp:1287,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1287,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/test_utils.cpp:1289,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1290,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1290,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1297
    functionName: Botan_Tests::CPUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::fmt
    - std::string::find
    - has
    - Test::Result::test_success
    - std::string::empty
    - Botan::CPUFeature::from_string
    - Test::Result::test_failure
    - Test::Result::test_u32_eq
    - static_cast<Botan::CPUID::Feature::Bit>
    - Botan::CPUID::initialize
    - BOTAN_UNUSED
    - auto::as_u32
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::CPUFeature
    - Botan::CPUID::to_string
    - Botan::clear_cpuid_bit
    - auto::to_string
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::UUID::UUID
      Src: /src/botan/src/tests/test_utils.cpp:1311,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1313,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1316,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_utils.cpp:1319,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1319,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1324,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1324,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1327,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1328,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1330,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1331,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1333,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1334,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1334,1
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1358,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1359,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1363,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::UUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::UUID::is_valid
    - Botan_Tests::UUID_Tests::rng
    - Botan::UUID::UUID
    - Botan::UUID::to_string
    - std::vector<uint8_t>
    - Test::Result::test_str_eq
    - begin
    - end
    - std::fill
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan_CLI::Print_UUID::Print_UUID
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1338
    functionDepth: 0
    functionLinenumber: 1338
    functionLinenumberEnd: 1338
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::AllSame_RNG
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AllSame_RNG(uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1342
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> /* ignored */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1344
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::name
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1346
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1348
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1350
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1385,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1385,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1386,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1386,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1387,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1387,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1388,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1388,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1389,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1389,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1390,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1393
    functionName: Botan_Tests::Formatter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1402,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1406,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1408,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1411,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1416,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1420,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1421,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1422,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1423,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1426,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1432,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_utils.cpp:1434,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1437,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1439,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1445,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1446,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1449,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1453,1
    - Dst: auto::disengage
      Src: /src/botan/src/tests/test_utils.cpp:1454,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1460
    functionName: Botan_Tests::ScopedCleanup_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - CHECK
    - test_is_true
    - auto::disengage
    - Botan::scoped_cleanup::scoped_cleanup
    - fn
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_add
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:51,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:51,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:52,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_cast
      Src: /src/botan/src/tests/test_utils.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:53,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_round_up
      Src: /src/botan/src/tests/test_utils.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:54,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore
      Src: /src/botan/src/tests/test_utils.cpp:54,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:57,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
      Src: /src/botan/src/tests/test_utils.cpp:57,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils.cpp:58,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
      Src: /src/botan/src/tests/test_utils.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: Botan_Tests::Utility_Function_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan::concat
    - Botan_Tests::Utility_Function_Tests::test_loadstore
    - Botan_Tests::Utility_Function_Tests::test_round_up
    - Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    - Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    - Botan_Tests::Utility_Function_Tests::test_checked_cast
    - Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    - Botan_Tests::Utility_Function_Tests::test_checked_add
    - Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    - Botan_Tests::Utility_Function_Tests::test_checked_mul
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:65,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:69,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:70,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:71,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:73,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:78,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:78,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:82,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:88,1
    - Dst: Botan::checked_add
      Src: /src/botan/src/tests/test_utils.cpp:90,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_add
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - fuzzer_rng
    - Botan::checked_add
    - Botan::checked_add<size_t>
    - Test::Result::test_u32_eq
    - static_cast<size_t>
    - Test::Result::test_sz_eq
    - next_byte
    - auto::has_value
    - Botan::make_uint16
    - auto::value
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_add()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:103,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:109,1
    - Dst: Botan::checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:111,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 119
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_mul
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::checked_mul
    - static_cast<uint32_t>
    - fuzzer_rng
    - auto::value
    - next_byte
    - Botan::make_uint16
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_mul()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:128,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:128,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Botan::checked_cast_to<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:132,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:132,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:133,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_cast
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - Botan::checked_cast_to<uint16_t>
    - Botan::checked_cast_to<uint32_t>
    - Botan::checked_cast_to<uint8_t>
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - Test::Result::test_u8_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_cast()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:156,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:158,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:159,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Utility_Function_Tests::test_round_up
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_throws
    - Botan::fmt
    - Botan::round_up
    - static_cast<size_t>
    - what
    - Test::Result::test_failure
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_round_up()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:189,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:190,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:198,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:198,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:201,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:201,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:204,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:204,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:205,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:205,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:206,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:206,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:209,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:209,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:210,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:210,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:211,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:211,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:214,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:214,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:215,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:215,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:216,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:216,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:219,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:219,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:220,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:220,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:221,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:221,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:224,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:224,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:227,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:227,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:228,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:228,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:231,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:231,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:234,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:234,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:238,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:238,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:239,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:239,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:246,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:247,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:248,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:250,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:251,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:252,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:254,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:255,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:256,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:257,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:258,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:260,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:261,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:262,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:263,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:264,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:266,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:267,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:268,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:269,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:270,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:271,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:272,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:273,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:274,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:276,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:277,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:278,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:279,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:280,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:281,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:282,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:283,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:284,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:292,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:294,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:295,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:296,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:297,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:301,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:302,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:303,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:304,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:306,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:308,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:309,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:310,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:311,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:315,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:316,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:317,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:318,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:324,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:325,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:327,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:328,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:330,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:332,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:333,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:338,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:339,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:340,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:341,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:342,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:343,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:344,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:345,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:349,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:350,1
    - Dst: Botan::store_be<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:353,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:354,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:355,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:356,1
    - Dst: Botan::store_le<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:359,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:374,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:375,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:375,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:376,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:377,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:377,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:378,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:379,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:379,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:380,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:381,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:385,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:386,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:387,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:388,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:389,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:390,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:391,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:392,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:397,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:397,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:398,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:398,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:401,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:401,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:402,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:402,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:405,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:406,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:407,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:408,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:410,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:411,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:412,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:413,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:416,1
    - Dst: Botan::load_be<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:417,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:418,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: Botan::load_be<std::vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:420,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:422,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:423,1
    - Dst: Botan::load_le<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:425,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:426,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: Botan::load_le<Botan::secure_vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:428,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:430,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:431,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:437,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:439,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:444,1
    - Dst: Botan::load_be<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:445,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:445,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::load_le<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::load_be<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:450,1
    - Dst: Botan::load_le<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:451,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:451,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:454,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:455,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:458,1
    - Dst: Botan::load_le<std::array<TestInt64, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:462,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:462,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:463,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Botan::load_be<std::vector<TestInt64>>
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:469,1
    - Dst: Botan::load_le<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Botan::load_be<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:477,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:478,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:478,1
    - Dst: Botan::load_le<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:480,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:480,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:481,1
    - Dst: Botan::load_be<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:482,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:482,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:483,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:484,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:484,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:485,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 195
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 488
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::get_byte<1>
    - Botan::load_le<Botan::secure_vector<uint16_t>>
    - Botan::store_be
    - Test::Result::test_sz_eq
    - Botan::load_be<std::vector<TestInt64>>
    - Botan::load_be<std::vector<uint16_t>>
    - Botan::store_le
    - Botan::hex_decode
    - Botan::get_byte<0>
    - first
    - Botan::load_le<TestInt32>
    - auto::size
    - Botan::load_be<TestInt64>
    - Test::Result::test_enum_eq
    - Botan::load_be<TestEnum64>
    - Botan::load_be<uint32_t>
    - Botan::store_le<TestVectorSink>
    - Botan::load_le<uint32_t>
    - Botan::load_le<TestEnum64>
    - Botan::load_le<uint64_t>
    - Botan::load_be<uint16_t>
    - Test::Result::test_u32_eq
    - Botan::load_le<std::array<TestInt64, 2>>
    - Botan::make_uint32
    - Botan::load_be<std::array<uint16_t, 2>>
    - Botan::store_le<std::vector<uint8_t>>
    - Botan::load_le
    - Botan::load_le<TestEnum32>
    - Test::Result::test_bin_eq
    - Botan::load_le<TestInt64>
    - Test::Result::test_throws
    - Test::Result::test_u8_eq
    - Botan::store_be<std::vector<uint8_t>>
    - Test::Result::test_u64_eq
    - test_arb_eq
    - Botan::get_byte<2>
    - Botan::load_be<TestEnum32>
    - Botan::load_be<uint64_t>
    - Botan::load_le<std::array<uint16_t, 2>>
    - std::vector::data
    - Botan::load_be
    - Botan::store_be<TestVectorSink>
    - Botan::make_uint16
    - Botan::load_be<TestInt32>
    - Botan::load_le<uint16_t>
    - Botan::get_byte<3>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_load_any<std::endian::big, T>
      Src: /src/botan/src/tests/test_utils.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 5
    functionsReached:
    - Botan::detail::fallback_load_any<std::endian::big, T>
    linkageType: ''
    returnType: T
    signature: T fb_load_be(std::array<const uint8_t, sizeof(T)> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_load_any<std::endian::little, T>
      Src: /src/botan/src/tests/test_utils.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 5
    functionsReached:
    - Botan::detail::fallback_load_any<std::endian::little, T>
    linkageType: ''
    returnType: T
    signature: T fb_load_le(std::array<const uint8_t, sizeof(T)> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_store_any<std::endian::big, T>
      Src: /src/botan/src/tests/test_utils.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: Botan_Tests::Utility_Function_Tests::fb_store_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::detail::fallback_store_any<std::endian::big, T>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) fb_store_be(const T in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_store_any<std::endian::little, T>
      Src: /src/botan/src/tests/test_utils.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: Botan_Tests::Utility_Function_Tests::fb_store_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::detail::fallback_store_any<std::endian::little, T>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) fb_store_le(const T in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:534,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:535,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:537,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:537,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:538,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:538,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:539,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:539,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:540,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:540,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:541,1
    - Dst: Botan::load_be<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:541,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:542,1
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 545
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::load_be<uint64_t>
    - Botan::load_be<size_t>
    - Botan::load_be<uint32_t>
    - Botan::store_be
    - Botan::load_le<uint32_t>
    - Botan::load_le<size_t>
    - Test::Result::test_sz_eq
    - Botan::load_le<uint64_t>
    - Test::Result::test_u32_eq
    - Botan::store_le
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_ambiguity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:556,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:556,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:560,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:560,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:562,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:562,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:563,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:563,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:564,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:564,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:566,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:566,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:567,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:567,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:568,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 571
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan_Tests::Utility_Function_Tests::fb_store_be
    - Test::Result::test_u32_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - Botan_Tests::Utility_Function_Tests::fb_store_le
    - Test::Result::test_bin_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_fallback()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:587,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:588,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:589,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:590,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:593,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:594,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:595,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:596,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:597,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:598,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:599,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:600,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:603,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:604,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:605,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:606,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:607,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:608,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:609,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:610,1
    - Dst: Botan::get_byte<4>
      Src: /src/botan/src/tests/test_utils.cpp:611,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:612,1
    - Dst: Botan::get_byte<5>
      Src: /src/botan/src/tests/test_utils.cpp:613,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:614,1
    - Dst: Botan::get_byte<6>
      Src: /src/botan/src/tests/test_utils.cpp:615,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:616,1
    - Dst: Botan::get_byte<7>
      Src: /src/botan/src/tests/test_utils.cpp:617,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:618,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:621,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:622,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:623,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:624,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_utils.cpp:625,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:626,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:629,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:630,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:631,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:632,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:633,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:634,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:636,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:637,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:638,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:639,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:640,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:641,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:645,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:647,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:648,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:649,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:650,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:651,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:652,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:653,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:654,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:655,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:656,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:657,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:660,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:662,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:663,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:664,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:665,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:666,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:667,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:668,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:669,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:670,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:671,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:672,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:675,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:676,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:677,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:678,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:679,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:680,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:682,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:683,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:684,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:685,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:686,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:687,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:691,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:695,1
    - Dst: Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:695,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:696,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:699,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:706,1
    - Dst: Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:706,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:707,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:709,1
    - Dst: Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:709,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 713
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::get_byte<1>
    - Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::store_be
    - std::array::size
    - Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::store_le
    - Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<0>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::load_le<uint64_t>
    - Test::Result::test_u32_eq
    - Botan::load_be<uint16_t>
    - Botan::get_byte<7>
    - Botan::make_uint32
    - Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<4>
    - Botan::get_byte<5>
    - Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint64
    - Test::Result::test_bin_eq
    - Test::Result::test_u8_eq
    - test_arb_eq
    - Test::Result::test_u64_eq
    - Botan::get_byte<2>
    - Botan::load_be<uint64_t>
    - Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint16
    - Botan::get_byte<6>
    - Botan::load_le<uint16_t>
    - Botan::get_byte<3>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_constexpr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:721,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:722,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:730,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:737,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:738,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:745,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:746,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:753,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:754,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:761,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:762,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:769,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:770,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:777,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 781
    functionName: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - CHECK
    - Botan::copy_out_le
    - Botan::copy_out_be
    - test_bin_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_copy_out_be_le()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:791,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:791,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:792,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:792,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:793,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:793,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:794,1
    - Dst: Botan_Tests::BitOps_Tests::test_popcount
      Src: /src/botan/src/tests/test_utils.cpp:794,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:795,1
    - Dst: Botan_Tests::BitOps_Tests::test_reverse_bits
      Src: /src/botan/src/tests/test_utils.cpp:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 788
    functionDepth: 4
    functionLinenumber: 788
    functionLinenumberEnd: 798
    functionName: Botan_Tests::BitOps_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_reverse_bits
    - std::vector::push_back
    - Botan_Tests::BitOps_Tests::test_popcount
    - Botan_Tests::BitOps_Tests::test_sig_bytes
    - Botan_Tests::BitOps_Tests::test_ctz
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_utils.cpp:803,1
    - Dst: Botan::ctz<T>
      Src: /src/botan/src/tests/test_utils.cpp:804,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_utils.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 807
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::CT::unpoison_all
    - std::to_string
    - test_sz_eq
    - Botan::CT::poison
    - Botan::ctz<T>
    linkageType: ''
    returnType: void
    signature: void test_ctz(Test::Result& result, T val, size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:811,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:812,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:813,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:814,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 819
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_ctz
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ctz()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_utils.cpp:823,1
    - Dst: Botan::significant_bytes<T>
      Src: /src/botan/src/tests/test_utils.cpp:824,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_utils.cpp:825,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 827
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::CT::unpoison_all
    - std::to_string
    - test_sz_eq
    - Botan::significant_bytes<T>
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_sig_bytes(Test::Result& result, T val, size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:831,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:832,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:833,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:834,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:835,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:836,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:837,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:838,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:840,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:842,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:843,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:844,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 848
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_sig_bytes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_sig_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: Botan::is_power_of_2<T>
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 853
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - test_bool_eq
    - Botan::is_power_of_2<T>
    - std::to_string
    linkageType: ''
    returnType: void
    signature: void test_power_of_2(Test::Result& result, T val, bool expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:858,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:859,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:860,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:861,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:862,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:863,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:864,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:866,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:867,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:868,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:869,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:870,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:871,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:872,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 876
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 5
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_power_of_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:879,1
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 881
    functionName: Botan_Tests::BitOps_Tests::pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::ct_popcount
    linkageType: ''
    returnType: auto
    signature: auto pc(T val) -> decltype(Botan::ct_popcount(val))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le<T>
      Src: /src/botan/src/tests/test_utils.cpp:885,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:885,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: Botan_Tests::BitOps_Tests::random_pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmt
    - Botan::load_le<T>
    - fuzzer_rng
    - test_sz_eq
    - std::popcount
    - Botan_Tests::BitOps_Tests::pc
    linkageType: ''
    returnType: auto
    signature: auto random_pc(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:892,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:892,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:893,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:893,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:894,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:894,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:895,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:895,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:897,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:897,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:898,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:898,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:899,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:899,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:900,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:900,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:905,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:905,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:907,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:907,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:908,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:908,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:909,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:909,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:910,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:910,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 889
    functionDepth: 3
    functionLinenumber: 889
    functionLinenumberEnd: 918
    functionName: Botan_Tests::BitOps_Tests::test_popcount
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::BitOps_Tests::pc
    - Test::Result::test_u8_eq
    - Botan_Tests::BitOps_Tests::random_pc
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_popcount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:933,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:933,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:935,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:935,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:936,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:936,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:937,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 940
    functionName: Botan_Tests::BitOps_Tests::test_reverse_bits
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::ct_reverse_bits<uint64_t>
    - Botan::ct_reverse_bits<uint16_t>
    - Botan::ct_reverse_bits<uint32_t>
    - Test::Result::test_u32_eq
    - Botan::ct_reverse_bits<uint8_t>
    - Test::Result::test_u8_eq
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reverse_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 949
    functionName: Botan_Tests::Poly_Double_Tests::Poly_Double_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Poly_Double_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:953,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:954,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 961
    functionName: Botan_Tests::Poly_Double_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_double_n
    - std::vector::data
    - Test::Result::test_bin_eq
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:973,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_utils.cpp:973,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:975,1
    - Dst: Botan::version_string
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:977,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:977,1
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:979,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/test_utils.cpp:980,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:981,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:981,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:984,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:990,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:992,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:992,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:994,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 1002
    functionName: Botan_Tests::Version_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::short_version_cstr
    - std::string
    - Botan::fmt
    - std::string::empty
    - Test::Result::test_u32_eq
    - std::string::starts_with
    - Test::Result::test_str_eq
    - Botan::version_datestamp
    - Botan::short_version_string
    - Botan::version_cstr
    - Botan::runtime_version_check
    - Botan::version_string
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1009
    functionName: Botan_Tests::Date_Format_Tests::Date_Format_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Date_Format_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_utils.cpp:1012,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1014,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils.cpp:1018,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1018,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1020,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_utils.cpp:1020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1023
    functionName: Botan_Tests::Date_Format_Tests::parse_date
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::split_on
    - std::vector::push_back
    - Botan::to_u32bit
    - std::vector::reserve
    - Test_Error
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint32_t>
    signature: std::vector<uint32_t> parse_date(const std::string& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1026,1
    - Dst: Botan_Tests::Date_Format_Tests::parse_date
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1034,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1034,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1035,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1035,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1038,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1038,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1046,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1046,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1047,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1047,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1049,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1049,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1053,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1056,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1060
    functionName: Botan_Tests::Date_Format_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::calendar_point::minutes
    - Test_Error
    - Botan::calendar_point::seconds
    - Botan::calendar_point::hour
    - Botan::calendar_point::month
    - Botan::calendar_point::year
    - Botan_Tests::Date_Format_Tests::parse_date
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - Botan::calendar_point::day
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1066,1
    - Dst: Botan::calendar_point::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1068
    functionName: Botan_Tests::Date_Format_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::calendar_point::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1075
    functionName: Botan_Tests::Charset_Tests::Charset_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Charset_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1081,1
    - Dst: Botan::ucs2_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: Botan::ucs4_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: Botan::latin1_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1092,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:1095,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1099
    functionName: Botan_Tests::Charset_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::ucs2_to_utf8
    - Botan::latin1_to_utf8
    - Botan::ucs4_to_utf8
    - std::string::end
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test_Error
    - std::string::begin
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: Botan_Tests::Hostname_Tests::Hostname_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hostname_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1111,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1112,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:1116,1
    - Dst: Botan::host_wildcard_match
      Src: /src/botan/src/tests/test_utils.cpp:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1119
    functionName: Botan_Tests::Hostname_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_bool_eq
    - Botan::host_wildcard_match
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1126
    functionName: Botan_Tests::DNS_Check_Tests::DNS_Check_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DNS_Check_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1131,1
    - Dst: Botan::check_and_canonicalize_dns_name
      Src: /src/botan/src/tests/test_utils.cpp:1135,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1136,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1145,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1152
    functionName: Botan_Tests::DNS_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - Botan::check_and_canonicalize_dns_name
    - BOTAN_UNUSED
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1159
    functionName: Botan_Tests::IPv4_Parsing_Tests::IPv4_Parsing_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IPv4_Parsing_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1164,1
    - Dst: Botan::string_to_ipv4
      Src: /src/botan/src/tests/test_utils.cpp:1167,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:1169,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:1169,1
    - Dst: Botan::ipv4_to_string
      Src: /src/botan/src/tests/test_utils.cpp:1172,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:1172,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1177
    functionName: Botan_Tests::IPv4_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_bool_eq
    - Botan::string_to_ipv4
    - Test::Result::test_str_eq
    - auto::has_value
    - Botan::ipv4_to_string
    - auto::value
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& status, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1184
    functionName: Botan_Tests::ReadKV_Tests::ReadKV_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadKV_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1191,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    - Dst: Botan_Tests::ReadKV_Tests::confirm_kv
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Botan_Tests::ReadKV_Tests::split_group
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1198,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1186
    functionDepth: 2
    functionLinenumber: 1186
    functionLinenumberEnd: 1201
    functionName: Botan_Tests::ReadKV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::ReadKV_Tests::confirm_kv
    - Botan::read_kv
    - Botan_Tests::ReadKV_Tests::split_group
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& status, const VarMap&
      vars) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_utils.cpp:1206,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1213,1
    - Dst: std::string::clear
      Src: /src/botan/src/tests/test_utils.cpp:1214,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1220,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1225
    functionName: Botan_Tests::ReadKV_Tests::split_group
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - std::string::empty
    - std::string::clear
    - empty
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split_group(const std::string& str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1234,1
    - Dst: find
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1236,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1236,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1237,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' result'
    - ' kv'
    - ' expected'
    argTypes:
    - Test::Result
    - std::map<std::string, std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1242
    functionName: Botan_Tests::ReadKV_Tests::confirm_kv
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - find
    - test_sz_eq
    - test_is_true
    - size
    - test_str_eq
    - end
    linkageType: ''
    returnType: void
    signature: "void confirm_kv(Test::Result& result,\n                             const
      std::map<std::string, std::string>& kv,\n                             const
      std::vector<std::string>& expected)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1254,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: Botan::CPUFeature
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: static_cast<Botan::CPUID::Feature::Bit>
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1263,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/test_utils.cpp:1267,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1268,1
    - Dst: auto::as_u32
      Src: /src/botan/src/tests/test_utils.cpp:1268,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1270,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1271,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1282,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1283,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_utils.cpp:1283,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/test_utils.cpp:1285,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_utils.cpp:1287,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1287,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/test_utils.cpp:1289,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1290,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1290,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1297
    functionName: Botan_Tests::CPUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::fmt
    - std::string::find
    - has
    - Test::Result::test_success
    - std::string::empty
    - Botan::CPUFeature::from_string
    - Test::Result::test_failure
    - Test::Result::test_u32_eq
    - static_cast<Botan::CPUID::Feature::Bit>
    - Botan::CPUID::initialize
    - BOTAN_UNUSED
    - auto::as_u32
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::CPUFeature
    - Botan::CPUID::to_string
    - Botan::clear_cpuid_bit
    - auto::to_string
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::UUID::UUID
      Src: /src/botan/src/tests/test_utils.cpp:1311,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1313,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1316,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_utils.cpp:1319,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1319,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1324,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1324,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1327,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1328,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1330,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1331,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1333,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1334,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1334,1
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1358,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1359,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1363,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::UUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::UUID::is_valid
    - Botan_Tests::UUID_Tests::rng
    - Botan::UUID::UUID
    - Botan::UUID::to_string
    - std::vector<uint8_t>
    - Test::Result::test_str_eq
    - begin
    - end
    - std::fill
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan_CLI::Print_UUID::Print_UUID
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1338
    functionDepth: 0
    functionLinenumber: 1338
    functionLinenumberEnd: 1338
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::AllSame_RNG
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AllSame_RNG(uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1342
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> /* ignored */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1344
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::name
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1346
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1348
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1350
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1385,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1385,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1386,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1386,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1387,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1387,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1388,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1388,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1389,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1389,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1390,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1393
    functionName: Botan_Tests::Formatter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1402,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1406,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1408,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1411,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1416,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1420,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1421,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1422,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1423,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1426,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1432,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_utils.cpp:1434,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1437,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1439,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1445,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1446,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1449,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1453,1
    - Dst: auto::disengage
      Src: /src/botan/src/tests/test_utils.cpp:1454,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1460
    functionName: Botan_Tests::ScopedCleanup_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - CHECK
    - test_is_true
    - auto::disengage
    - Botan::scoped_cleanup::scoped_cleanup
    - fn
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_add
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:51,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:51,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:52,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_cast
      Src: /src/botan/src/tests/test_utils.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:53,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_round_up
      Src: /src/botan/src/tests/test_utils.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:54,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore
      Src: /src/botan/src/tests/test_utils.cpp:54,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:57,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
      Src: /src/botan/src/tests/test_utils.cpp:57,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils.cpp:58,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
      Src: /src/botan/src/tests/test_utils.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: Botan_Tests::Utility_Function_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan::concat
    - Botan_Tests::Utility_Function_Tests::test_loadstore
    - Botan_Tests::Utility_Function_Tests::test_round_up
    - Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    - Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    - Botan_Tests::Utility_Function_Tests::test_checked_cast
    - Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    - Botan_Tests::Utility_Function_Tests::test_checked_add
    - Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    - Botan_Tests::Utility_Function_Tests::test_checked_mul
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:65,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:69,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:70,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:71,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:73,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:78,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:78,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:82,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:88,1
    - Dst: Botan::checked_add
      Src: /src/botan/src/tests/test_utils.cpp:90,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_add
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint32_t>
    - fuzzer_rng
    - Botan::checked_add
    - Botan::checked_add<size_t>
    - Test::Result::test_u32_eq
    - static_cast<size_t>
    - Test::Result::test_sz_eq
    - next_byte
    - auto::has_value
    - Botan::make_uint16
    - auto::value
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_add()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:103,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:109,1
    - Dst: Botan::checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:111,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 119
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_mul
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::checked_mul
    - static_cast<uint32_t>
    - fuzzer_rng
    - auto::value
    - next_byte
    - Botan::make_uint16
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_mul()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:128,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:128,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Botan::checked_cast_to<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:132,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:132,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:133,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_cast
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - Botan::checked_cast_to<uint16_t>
    - Botan::checked_cast_to<uint32_t>
    - Botan::checked_cast_to<uint8_t>
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - Test::Result::test_u8_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_cast()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:156,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:158,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:159,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Utility_Function_Tests::test_round_up
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_throws
    - Botan::fmt
    - Botan::round_up
    - static_cast<size_t>
    - what
    - Test::Result::test_failure
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_round_up()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:189,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:190,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:198,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:198,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:201,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:201,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:204,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:204,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:205,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:205,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:206,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:206,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:209,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:209,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:210,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:210,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:211,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:211,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:214,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:214,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:215,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:215,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:216,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:216,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:219,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:219,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:220,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:220,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:221,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:221,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:224,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:224,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:227,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:227,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:228,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:228,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:231,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:231,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:234,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:234,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:238,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:238,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:239,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:239,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:246,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:247,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:248,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:250,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:251,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:252,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:254,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:255,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:256,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:257,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:258,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:260,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:261,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:262,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:263,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:264,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:266,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:267,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:268,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:269,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:270,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:271,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:272,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:273,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:274,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:276,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:277,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:278,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:279,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:280,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:281,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:282,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:283,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:284,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:292,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:294,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:295,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:296,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:297,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:301,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:302,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:303,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:304,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:306,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:308,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:309,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:310,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:311,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:315,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:316,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:317,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:318,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:324,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:325,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:327,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:328,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:330,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:332,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:333,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:338,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:339,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:340,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:341,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:342,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:343,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:344,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:345,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:349,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:350,1
    - Dst: Botan::store_be<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:353,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:354,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:355,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:356,1
    - Dst: Botan::store_le<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:359,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:374,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:375,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:375,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:376,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:377,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:377,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:378,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:379,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:379,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:380,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:381,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:385,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:386,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:387,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:388,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:389,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:390,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:391,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:392,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:397,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:397,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:398,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:398,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:401,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:401,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:402,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:402,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:405,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:406,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:407,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:408,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:410,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:411,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:412,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:413,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:416,1
    - Dst: Botan::load_be<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:417,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:418,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: Botan::load_be<std::vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:420,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:422,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:423,1
    - Dst: Botan::load_le<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:425,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:426,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: Botan::load_le<Botan::secure_vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:428,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:430,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:431,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:437,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:439,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:444,1
    - Dst: Botan::load_be<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:445,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:445,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::load_le<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::load_be<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:450,1
    - Dst: Botan::load_le<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:451,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:451,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:454,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:455,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:458,1
    - Dst: Botan::load_le<std::array<TestInt64, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:462,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:462,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:463,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Botan::load_be<std::vector<TestInt64>>
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:469,1
    - Dst: Botan::load_le<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Botan::load_be<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:477,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:478,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:478,1
    - Dst: Botan::load_le<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:480,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:480,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:481,1
    - Dst: Botan::load_be<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:482,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:482,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:483,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:484,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:484,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:485,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 195
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 488
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::get_byte<1>
    - Botan::load_le<Botan::secure_vector<uint16_t>>
    - Botan::store_be
    - Test::Result::test_sz_eq
    - Botan::load_be<std::vector<TestInt64>>
    - Botan::load_be<std::vector<uint16_t>>
    - Botan::store_le
    - Botan::hex_decode
    - Botan::get_byte<0>
    - first
    - Botan::load_le<TestInt32>
    - auto::size
    - Botan::load_be<TestInt64>
    - Test::Result::test_enum_eq
    - Botan::load_be<TestEnum64>
    - Botan::load_be<uint32_t>
    - Botan::store_le<TestVectorSink>
    - Botan::load_le<uint32_t>
    - Botan::load_le<TestEnum64>
    - Botan::load_le<uint64_t>
    - Botan::load_be<uint16_t>
    - Test::Result::test_u32_eq
    - Botan::load_le<std::array<TestInt64, 2>>
    - Botan::make_uint32
    - Botan::load_be<std::array<uint16_t, 2>>
    - Botan::store_le<std::vector<uint8_t>>
    - Botan::load_le
    - Botan::load_le<TestEnum32>
    - Test::Result::test_bin_eq
    - Botan::load_le<TestInt64>
    - Test::Result::test_throws
    - Test::Result::test_u8_eq
    - Botan::store_be<std::vector<uint8_t>>
    - Test::Result::test_u64_eq
    - test_arb_eq
    - Botan::get_byte<2>
    - Botan::load_be<TestEnum32>
    - Botan::load_be<uint64_t>
    - Botan::load_le<std::array<uint16_t, 2>>
    - std::vector::data
    - Botan::load_be
    - Botan::store_be<TestVectorSink>
    - Botan::make_uint16
    - Botan::load_be<TestInt32>
    - Botan::load_le<uint16_t>
    - Botan::get_byte<3>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_load_any<std::endian::big, T>
      Src: /src/botan/src/tests/test_utils.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 6
    functionsReached:
    - Botan::detail::fallback_load_any<std::endian::big, T>
    linkageType: ''
    returnType: T
    signature: T fb_load_be(std::array<const uint8_t, sizeof(T)> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_load_any<std::endian::little, T>
      Src: /src/botan/src/tests/test_utils.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 6
    functionsReached:
    - Botan::detail::fallback_load_any<std::endian::little, T>
    linkageType: ''
    returnType: T
    signature: T fb_load_le(std::array<const uint8_t, sizeof(T)> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_store_any<std::endian::big, T>
      Src: /src/botan/src/tests/test_utils.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: Botan_Tests::Utility_Function_Tests::fb_store_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::detail::fallback_store_any<std::endian::big, T>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) fb_store_be(const T in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_store_any<std::endian::little, T>
      Src: /src/botan/src/tests/test_utils.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: Botan_Tests::Utility_Function_Tests::fb_store_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::detail::fallback_store_any<std::endian::little, T>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) fb_store_le(const T in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:534,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:535,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:537,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:537,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:538,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:538,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:539,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:539,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:540,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:540,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:541,1
    - Dst: Botan::load_be<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:541,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:542,1
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 545
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::load_be<uint64_t>
    - Botan::load_be<size_t>
    - Botan::load_be<uint32_t>
    - Botan::store_be
    - Botan::load_le<uint32_t>
    - Botan::load_le<size_t>
    - Test::Result::test_sz_eq
    - Botan::load_le<uint64_t>
    - Test::Result::test_u32_eq
    - Botan::store_le
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_ambiguity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:556,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:556,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:560,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:560,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:562,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:562,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:563,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:563,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:564,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:564,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:566,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:566,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:567,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:567,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:568,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 571
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan_Tests::Utility_Function_Tests::fb_store_be
    - Test::Result::test_u32_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - Botan_Tests::Utility_Function_Tests::fb_store_le
    - Test::Result::test_bin_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_fallback()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:587,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:588,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:589,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:590,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:593,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:594,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:595,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:596,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:597,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:598,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:599,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:600,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:603,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:604,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:605,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:606,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:607,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:608,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:609,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:610,1
    - Dst: Botan::get_byte<4>
      Src: /src/botan/src/tests/test_utils.cpp:611,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:612,1
    - Dst: Botan::get_byte<5>
      Src: /src/botan/src/tests/test_utils.cpp:613,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:614,1
    - Dst: Botan::get_byte<6>
      Src: /src/botan/src/tests/test_utils.cpp:615,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:616,1
    - Dst: Botan::get_byte<7>
      Src: /src/botan/src/tests/test_utils.cpp:617,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:618,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:621,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:622,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:623,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:624,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_utils.cpp:625,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:626,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:629,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:630,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:631,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:632,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:633,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:634,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:636,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:637,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:638,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:639,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:640,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:641,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:645,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:647,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:648,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:649,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:650,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:651,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:652,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:653,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:654,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:655,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:656,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:657,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:660,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:662,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:663,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:664,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:665,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:666,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:667,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:668,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:669,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:670,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:671,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:672,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:675,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:676,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:677,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:678,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:679,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:680,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:682,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:683,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:684,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:685,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:686,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:687,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:691,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:695,1
    - Dst: Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:695,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:696,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:699,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:706,1
    - Dst: Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:706,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:707,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:709,1
    - Dst: Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:709,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 713
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::get_byte<1>
    - Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::store_be
    - std::array::size
    - Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::store_le
    - Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<0>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::load_le<uint64_t>
    - Test::Result::test_u32_eq
    - Botan::load_be<uint16_t>
    - Botan::get_byte<7>
    - Botan::make_uint32
    - Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<4>
    - Botan::get_byte<5>
    - Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint64
    - Test::Result::test_bin_eq
    - Test::Result::test_u8_eq
    - test_arb_eq
    - Test::Result::test_u64_eq
    - Botan::get_byte<2>
    - Botan::load_be<uint64_t>
    - Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint16
    - Botan::get_byte<6>
    - Botan::load_le<uint16_t>
    - Botan::get_byte<3>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_constexpr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:721,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:722,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:730,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:737,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:738,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:745,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:746,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:753,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:754,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:761,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:762,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:769,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:770,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:777,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 781
    functionName: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - CHECK
    - Botan::copy_out_le
    - Botan::copy_out_be
    - test_bin_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_copy_out_be_le()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:791,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:791,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:792,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:792,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:793,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:793,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:794,1
    - Dst: Botan_Tests::BitOps_Tests::test_popcount
      Src: /src/botan/src/tests/test_utils.cpp:794,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:795,1
    - Dst: Botan_Tests::BitOps_Tests::test_reverse_bits
      Src: /src/botan/src/tests/test_utils.cpp:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 788
    functionDepth: 4
    functionLinenumber: 788
    functionLinenumberEnd: 798
    functionName: Botan_Tests::BitOps_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_reverse_bits
    - std::vector::push_back
    - Botan_Tests::BitOps_Tests::test_popcount
    - Botan_Tests::BitOps_Tests::test_sig_bytes
    - Botan_Tests::BitOps_Tests::test_ctz
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_utils.cpp:803,1
    - Dst: Botan::ctz<T>
      Src: /src/botan/src/tests/test_utils.cpp:804,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_utils.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 807
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 5
    functionsReached:
    - Botan::CT::unpoison_all
    - std::to_string
    - test_sz_eq
    - Botan::CT::poison
    - Botan::ctz<T>
    linkageType: ''
    returnType: void
    signature: void test_ctz(Test::Result& result, T val, size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:811,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:812,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:813,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:814,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 819
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 6
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_ctz
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ctz()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_utils.cpp:823,1
    - Dst: Botan::significant_bytes<T>
      Src: /src/botan/src/tests/test_utils.cpp:824,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_utils.cpp:825,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 827
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 5
    functionsReached:
    - Botan::CT::unpoison_all
    - std::to_string
    - test_sz_eq
    - Botan::significant_bytes<T>
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_sig_bytes(Test::Result& result, T val, size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:831,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:832,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:833,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:834,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:835,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:836,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:837,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:838,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:840,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:842,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:843,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:844,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 848
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 6
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_sig_bytes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_sig_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: Botan::is_power_of_2<T>
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 853
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 6
    functionsReached:
    - test_bool_eq
    - Botan::is_power_of_2<T>
    - std::to_string
    linkageType: ''
    returnType: void
    signature: void test_power_of_2(Test::Result& result, T val, bool expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:858,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:859,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:860,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:861,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:862,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:863,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:864,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:866,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:867,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:868,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:869,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:870,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:871,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:872,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 876
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 7
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_power_of_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:879,1
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 881
    functionName: Botan_Tests::BitOps_Tests::pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::ct_popcount
    linkageType: ''
    returnType: auto
    signature: auto pc(T val) -> decltype(Botan::ct_popcount(val))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le<T>
      Src: /src/botan/src/tests/test_utils.cpp:885,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:885,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: Botan_Tests::BitOps_Tests::random_pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::fmt
    - Botan::load_le<T>
    - fuzzer_rng
    - test_sz_eq
    - std::popcount
    - Botan_Tests::BitOps_Tests::pc
    linkageType: ''
    returnType: auto
    signature: auto random_pc(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:892,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:892,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:893,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:893,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:894,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:894,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:895,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:895,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:897,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:897,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:898,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:898,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:899,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:899,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:900,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:900,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:905,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:905,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:907,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:907,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:908,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:908,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:909,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:909,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:910,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:910,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 889
    functionDepth: 3
    functionLinenumber: 889
    functionLinenumberEnd: 918
    functionName: Botan_Tests::BitOps_Tests::test_popcount
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::BitOps_Tests::pc
    - Test::Result::test_u8_eq
    - Botan_Tests::BitOps_Tests::random_pc
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_popcount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:933,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:933,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:935,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:935,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:936,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:936,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:937,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 940
    functionName: Botan_Tests::BitOps_Tests::test_reverse_bits
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::ct_reverse_bits<uint64_t>
    - Botan::ct_reverse_bits<uint16_t>
    - Botan::ct_reverse_bits<uint32_t>
    - Test::Result::test_u32_eq
    - Botan::ct_reverse_bits<uint8_t>
    - Test::Result::test_u8_eq
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reverse_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 949
    functionName: Botan_Tests::Poly_Double_Tests::Poly_Double_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Poly_Double_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:953,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:954,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 961
    functionName: Botan_Tests::Poly_Double_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_double_n
    - std::vector::data
    - Test::Result::test_bin_eq
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:973,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_utils.cpp:973,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:975,1
    - Dst: Botan::version_string
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:977,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:977,1
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:979,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/test_utils.cpp:980,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:981,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:981,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:984,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:990,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:992,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:992,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:994,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 1002
    functionName: Botan_Tests::Version_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::short_version_cstr
    - std::string
    - Botan::fmt
    - std::string::empty
    - Test::Result::test_u32_eq
    - std::string::starts_with
    - Test::Result::test_str_eq
    - Botan::version_datestamp
    - Botan::short_version_string
    - Botan::version_cstr
    - Botan::runtime_version_check
    - Botan::version_string
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1009
    functionName: Botan_Tests::Date_Format_Tests::Date_Format_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Date_Format_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_utils.cpp:1012,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1014,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils.cpp:1018,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1018,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1020,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_utils.cpp:1020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1023
    functionName: Botan_Tests::Date_Format_Tests::parse_date
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::split_on
    - std::vector::push_back
    - Botan::to_u32bit
    - std::vector::reserve
    - Test_Error
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint32_t>
    signature: std::vector<uint32_t> parse_date(const std::string& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1026,1
    - Dst: Botan_Tests::Date_Format_Tests::parse_date
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1034,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1034,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1035,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1035,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1038,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1038,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1046,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1046,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1047,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1047,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1049,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1049,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1053,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1056,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1060
    functionName: Botan_Tests::Date_Format_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::calendar_point::minutes
    - Test_Error
    - Botan::calendar_point::seconds
    - Botan::calendar_point::hour
    - Botan::calendar_point::month
    - Botan::calendar_point::year
    - Botan_Tests::Date_Format_Tests::parse_date
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - Botan::calendar_point::day
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1066,1
    - Dst: Botan::calendar_point::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1068
    functionName: Botan_Tests::Date_Format_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::calendar_point::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1075
    functionName: Botan_Tests::Charset_Tests::Charset_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Charset_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1081,1
    - Dst: Botan::ucs2_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: Botan::ucs4_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: Botan::latin1_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1092,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:1095,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1099
    functionName: Botan_Tests::Charset_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::ucs2_to_utf8
    - Botan::latin1_to_utf8
    - Botan::ucs4_to_utf8
    - std::string::end
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test_Error
    - std::string::begin
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: Botan_Tests::Hostname_Tests::Hostname_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hostname_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1111,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1112,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:1116,1
    - Dst: Botan::host_wildcard_match
      Src: /src/botan/src/tests/test_utils.cpp:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1119
    functionName: Botan_Tests::Hostname_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_bool_eq
    - Botan::host_wildcard_match
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1126
    functionName: Botan_Tests::DNS_Check_Tests::DNS_Check_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DNS_Check_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1131,1
    - Dst: Botan::check_and_canonicalize_dns_name
      Src: /src/botan/src/tests/test_utils.cpp:1135,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1136,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1145,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1152
    functionName: Botan_Tests::DNS_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - Botan::check_and_canonicalize_dns_name
    - BOTAN_UNUSED
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1159
    functionName: Botan_Tests::IPv4_Parsing_Tests::IPv4_Parsing_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IPv4_Parsing_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1164,1
    - Dst: Botan::string_to_ipv4
      Src: /src/botan/src/tests/test_utils.cpp:1167,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:1169,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:1169,1
    - Dst: Botan::ipv4_to_string
      Src: /src/botan/src/tests/test_utils.cpp:1172,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:1172,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1177
    functionName: Botan_Tests::IPv4_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_bool_eq
    - Botan::string_to_ipv4
    - Test::Result::test_str_eq
    - auto::has_value
    - Botan::ipv4_to_string
    - auto::value
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& status, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1184
    functionName: Botan_Tests::ReadKV_Tests::ReadKV_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadKV_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1191,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    - Dst: Botan_Tests::ReadKV_Tests::confirm_kv
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Botan_Tests::ReadKV_Tests::split_group
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1198,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1186
    functionDepth: 2
    functionLinenumber: 1186
    functionLinenumberEnd: 1201
    functionName: Botan_Tests::ReadKV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::ReadKV_Tests::confirm_kv
    - Botan::read_kv
    - Botan_Tests::ReadKV_Tests::split_group
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& status, const VarMap&
      vars) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_utils.cpp:1206,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1213,1
    - Dst: std::string::clear
      Src: /src/botan/src/tests/test_utils.cpp:1214,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1220,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1225
    functionName: Botan_Tests::ReadKV_Tests::split_group
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - std::string::empty
    - std::string::clear
    - empty
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split_group(const std::string& str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1234,1
    - Dst: find
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1236,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1236,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1237,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' result'
    - ' kv'
    - ' expected'
    argTypes:
    - Test::Result
    - std::map<std::string, std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1242
    functionName: Botan_Tests::ReadKV_Tests::confirm_kv
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - find
    - test_sz_eq
    - test_is_true
    - size
    - test_str_eq
    - end
    linkageType: ''
    returnType: void
    signature: "void confirm_kv(Test::Result& result,\n                             const
      std::map<std::string, std::string>& kv,\n                             const
      std::vector<std::string>& expected)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1254,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: Botan::CPUFeature
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: static_cast<Botan::CPUID::Feature::Bit>
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1263,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/test_utils.cpp:1267,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1268,1
    - Dst: auto::as_u32
      Src: /src/botan/src/tests/test_utils.cpp:1268,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1270,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1271,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1282,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1283,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_utils.cpp:1283,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/test_utils.cpp:1285,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_utils.cpp:1287,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1287,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/test_utils.cpp:1289,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1290,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1290,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1297
    functionName: Botan_Tests::CPUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::fmt
    - std::string::find
    - has
    - Test::Result::test_success
    - std::string::empty
    - Botan::CPUFeature::from_string
    - Test::Result::test_failure
    - Test::Result::test_u32_eq
    - static_cast<Botan::CPUID::Feature::Bit>
    - Botan::CPUID::initialize
    - BOTAN_UNUSED
    - auto::as_u32
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::CPUFeature
    - Botan::CPUID::to_string
    - Botan::clear_cpuid_bit
    - auto::to_string
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::UUID::UUID
      Src: /src/botan/src/tests/test_utils.cpp:1311,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1313,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1316,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_utils.cpp:1319,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1319,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1324,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1324,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1327,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1328,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1330,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1331,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1333,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1334,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1334,1
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1358,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1359,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1363,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::UUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::UUID::is_valid
    - Botan_Tests::UUID_Tests::rng
    - Botan::UUID::UUID
    - Botan::UUID::to_string
    - std::vector<uint8_t>
    - Test::Result::test_str_eq
    - begin
    - end
    - std::fill
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan_CLI::Print_UUID::Print_UUID
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1338
    functionDepth: 0
    functionLinenumber: 1338
    functionLinenumberEnd: 1338
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::AllSame_RNG
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AllSame_RNG(uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1342
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> /* ignored */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1344
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::name
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1346
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1348
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1350
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1385,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1385,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1386,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1386,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1387,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1387,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1388,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1388,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1389,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1389,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1390,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1393
    functionName: Botan_Tests::Formatter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1402,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1406,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1408,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1411,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1416,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1420,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1421,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1422,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1423,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1426,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1432,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_utils.cpp:1434,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1437,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1439,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1445,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1446,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1449,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1453,1
    - Dst: auto::disengage
      Src: /src/botan/src/tests/test_utils.cpp:1454,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1460
    functionName: Botan_Tests::ScopedCleanup_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - CHECK
    - test_is_true
    - auto::disengage
    - Botan::scoped_cleanup::scoped_cleanup
    - fn
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_add
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:51,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:51,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:52,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_cast
      Src: /src/botan/src/tests/test_utils.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:53,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_round_up
      Src: /src/botan/src/tests/test_utils.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:54,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore
      Src: /src/botan/src/tests/test_utils.cpp:54,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:57,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
      Src: /src/botan/src/tests/test_utils.cpp:57,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils.cpp:58,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
      Src: /src/botan/src/tests/test_utils.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: Botan_Tests::Utility_Function_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan::concat
    - Botan_Tests::Utility_Function_Tests::test_loadstore
    - Botan_Tests::Utility_Function_Tests::test_round_up
    - Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    - Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    - Botan_Tests::Utility_Function_Tests::test_checked_cast
    - Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    - Botan_Tests::Utility_Function_Tests::test_checked_add
    - Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    - Botan_Tests::Utility_Function_Tests::test_checked_mul
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:65,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:69,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:70,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:71,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:73,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:78,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:78,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:82,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:85,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:88,1
    - Dst: Botan::checked_add
      Src: /src/botan/src/tests/test_utils.cpp:90,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_add
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint32_t>
    - fuzzer_rng
    - Botan::checked_add
    - Botan::checked_add<size_t>
    - Test::Result::test_u32_eq
    - static_cast<size_t>
    - Test::Result::test_sz_eq
    - next_byte
    - auto::has_value
    - Botan::make_uint16
    - auto::value
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_add()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:103,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:106,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:109,1
    - Dst: Botan::checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:111,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 119
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_mul
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::checked_mul
    - static_cast<uint32_t>
    - fuzzer_rng
    - auto::value
    - next_byte
    - Botan::make_uint16
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_mul()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:128,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:128,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Botan::checked_cast_to<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:132,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:132,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:133,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_cast
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - Botan::checked_cast_to<uint16_t>
    - Botan::checked_cast_to<uint32_t>
    - Botan::checked_cast_to<uint8_t>
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - Test::Result::test_u8_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_checked_cast()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:156,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:158,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:159,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_utils.cpp:162,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Utility_Function_Tests::test_round_up
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_throws
    - Botan::fmt
    - Botan::round_up
    - static_cast<size_t>
    - what
    - Test::Result::test_failure
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_round_up()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:189,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:190,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:198,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:198,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:201,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:201,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:204,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:204,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:205,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:205,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:206,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:206,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:209,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:209,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:210,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:210,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:211,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:211,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:214,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:214,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:215,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:215,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:216,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:216,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:219,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:219,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:220,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:220,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:221,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:221,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:224,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:224,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:227,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:227,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:228,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:228,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:231,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:231,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:234,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:234,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:238,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:238,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:239,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:239,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:246,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:247,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:248,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:250,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:251,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:252,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:254,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:255,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:256,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:257,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:258,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:260,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:261,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:262,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:263,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:264,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:266,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:267,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:268,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:269,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:270,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:271,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:272,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:273,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:274,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:276,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:277,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:278,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:279,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:280,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:281,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:282,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:283,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:284,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:292,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:294,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:295,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:296,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:297,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:301,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:302,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:303,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:304,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:306,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:308,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:309,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:310,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:311,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:315,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:316,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:317,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:318,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:324,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:325,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:327,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:328,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:330,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:332,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:333,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:338,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:339,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:340,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:341,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:342,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:343,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:344,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:345,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:349,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:350,1
    - Dst: Botan::store_be<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:353,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:354,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:355,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:356,1
    - Dst: Botan::store_le<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:359,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:362,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:363,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:366,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:367,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:368,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:374,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:375,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:375,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:376,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:377,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:377,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:378,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:379,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:379,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:380,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:381,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:385,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:386,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:387,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:388,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:389,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:390,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:391,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:392,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:397,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:397,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:398,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:398,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:401,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:401,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:402,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:402,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:405,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:406,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:407,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:408,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:410,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:411,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:412,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:413,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:416,1
    - Dst: Botan::load_be<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:417,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:418,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: Botan::load_be<std::vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:420,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:422,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:423,1
    - Dst: Botan::load_le<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:425,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:426,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: Botan::load_le<Botan::secure_vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:428,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:430,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:431,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:437,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:439,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:444,1
    - Dst: Botan::load_be<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:445,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:445,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::load_le<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::load_be<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:450,1
    - Dst: Botan::load_le<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:451,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:451,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:454,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:455,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:458,1
    - Dst: Botan::load_le<std::array<TestInt64, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:462,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:462,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:463,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Botan::load_be<std::vector<TestInt64>>
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:469,1
    - Dst: Botan::load_le<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Botan::load_be<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:477,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:478,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:478,1
    - Dst: Botan::load_le<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:480,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:480,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:481,1
    - Dst: Botan::load_be<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:482,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:482,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_utils.cpp:483,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:484,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:484,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:485,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 195
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 488
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::get_byte<1>
    - Botan::load_le<Botan::secure_vector<uint16_t>>
    - Botan::store_be
    - Test::Result::test_sz_eq
    - Botan::load_be<std::vector<TestInt64>>
    - Botan::load_be<std::vector<uint16_t>>
    - Botan::store_le
    - Botan::hex_decode
    - Botan::get_byte<0>
    - first
    - Botan::load_le<TestInt32>
    - auto::size
    - Botan::load_be<TestInt64>
    - Test::Result::test_enum_eq
    - Botan::load_be<TestEnum64>
    - Botan::load_be<uint32_t>
    - Botan::store_le<TestVectorSink>
    - Botan::load_le<uint32_t>
    - Botan::load_le<TestEnum64>
    - Botan::load_le<uint64_t>
    - Botan::load_be<uint16_t>
    - Test::Result::test_u32_eq
    - Botan::load_le<std::array<TestInt64, 2>>
    - Botan::make_uint32
    - Botan::load_be<std::array<uint16_t, 2>>
    - Botan::store_le<std::vector<uint8_t>>
    - Botan::load_le
    - Botan::load_le<TestEnum32>
    - Test::Result::test_bin_eq
    - Botan::load_le<TestInt64>
    - Test::Result::test_throws
    - Test::Result::test_u8_eq
    - Botan::store_be<std::vector<uint8_t>>
    - Test::Result::test_u64_eq
    - test_arb_eq
    - Botan::get_byte<2>
    - Botan::load_be<TestEnum32>
    - Botan::load_be<uint64_t>
    - Botan::load_le<std::array<uint16_t, 2>>
    - std::vector::data
    - Botan::load_be
    - Botan::store_be<TestVectorSink>
    - Botan::make_uint16
    - Botan::load_be<TestInt32>
    - Botan::load_le<uint16_t>
    - Botan::get_byte<3>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_load_any<std::endian::big, T>
      Src: /src/botan/src/tests/test_utils.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 7
    functionsReached:
    - Botan::detail::fallback_load_any<std::endian::big, T>
    linkageType: ''
    returnType: T
    signature: T fb_load_be(std::array<const uint8_t, sizeof(T)> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_load_any<std::endian::little, T>
      Src: /src/botan/src/tests/test_utils.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 7
    functionsReached:
    - Botan::detail::fallback_load_any<std::endian::little, T>
    linkageType: ''
    returnType: T
    signature: T fb_load_le(std::array<const uint8_t, sizeof(T)> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_store_any<std::endian::big, T>
      Src: /src/botan/src/tests/test_utils.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: Botan_Tests::Utility_Function_Tests::fb_store_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::detail::fallback_store_any<std::endian::big, T>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) fb_store_be(const T in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::fallback_store_any<std::endian::little, T>
      Src: /src/botan/src/tests/test_utils.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: Botan_Tests::Utility_Function_Tests::fb_store_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::detail::fallback_store_any<std::endian::little, T>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) fb_store_le(const T in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:534,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:535,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:537,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:537,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:538,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:538,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:539,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:539,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:540,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:540,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:541,1
    - Dst: Botan::load_be<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:541,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:542,1
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 545
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::load_be<uint64_t>
    - Botan::load_be<size_t>
    - Botan::load_be<uint32_t>
    - Botan::store_be
    - Botan::load_le<uint32_t>
    - Botan::load_le<size_t>
    - Test::Result::test_sz_eq
    - Botan::load_le<uint64_t>
    - Test::Result::test_u32_eq
    - Botan::store_le
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_ambiguity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:556,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:556,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:560,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:560,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:562,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:562,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:563,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:563,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:564,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:564,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:566,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:566,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:567,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:567,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:568,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 571
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan_Tests::Utility_Function_Tests::fb_store_be
    - Test::Result::test_u32_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - Botan_Tests::Utility_Function_Tests::fb_store_le
    - Test::Result::test_bin_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_fallback()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:587,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:588,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:589,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:590,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:593,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:594,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:595,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:596,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:597,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:598,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:599,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:600,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:603,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:604,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:605,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:606,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:607,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:608,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:609,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:610,1
    - Dst: Botan::get_byte<4>
      Src: /src/botan/src/tests/test_utils.cpp:611,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:612,1
    - Dst: Botan::get_byte<5>
      Src: /src/botan/src/tests/test_utils.cpp:613,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:614,1
    - Dst: Botan::get_byte<6>
      Src: /src/botan/src/tests/test_utils.cpp:615,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:616,1
    - Dst: Botan::get_byte<7>
      Src: /src/botan/src/tests/test_utils.cpp:617,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:618,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:621,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:622,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:623,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:624,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_utils.cpp:625,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:626,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:629,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:630,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:631,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:632,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:633,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:634,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:636,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:637,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:638,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:639,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:640,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:641,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:645,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:647,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:648,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:649,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:650,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:651,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:652,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:653,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:654,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:655,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:656,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:657,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:660,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:662,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:663,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:664,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:665,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:666,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:667,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:668,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:669,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:670,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:671,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:672,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:675,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:676,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:677,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:678,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:679,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:680,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:682,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:683,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:684,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:685,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:686,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:687,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:691,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:695,1
    - Dst: Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:695,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:696,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:699,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:706,1
    - Dst: Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:706,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:707,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:709,1
    - Dst: Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:709,1
    - Dst: test_arb_eq
      Src: /src/botan/src/tests/test_utils.cpp:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 713
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::get_byte<1>
    - Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::store_be
    - std::array::size
    - Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::store_le
    - Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<0>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::load_le<uint64_t>
    - Test::Result::test_u32_eq
    - Botan::load_be<uint16_t>
    - Botan::get_byte<7>
    - Botan::make_uint32
    - Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<4>
    - Botan::get_byte<5>
    - Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint64
    - Test::Result::test_bin_eq
    - Test::Result::test_u8_eq
    - test_arb_eq
    - Test::Result::test_u64_eq
    - Botan::get_byte<2>
    - Botan::load_be<uint64_t>
    - Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint16
    - Botan::get_byte<6>
    - Botan::load_le<uint16_t>
    - Botan::get_byte<3>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_constexpr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:721,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:722,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:730,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:737,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:738,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:745,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:746,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:753,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:754,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:761,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:762,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:769,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:770,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:777,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 781
    functionName: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - CHECK
    - Botan::copy_out_le
    - Botan::copy_out_be
    - test_bin_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_copy_out_be_le()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:791,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:791,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:792,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:792,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:793,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:793,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:794,1
    - Dst: Botan_Tests::BitOps_Tests::test_popcount
      Src: /src/botan/src/tests/test_utils.cpp:794,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:795,1
    - Dst: Botan_Tests::BitOps_Tests::test_reverse_bits
      Src: /src/botan/src/tests/test_utils.cpp:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 788
    functionDepth: 4
    functionLinenumber: 788
    functionLinenumberEnd: 798
    functionName: Botan_Tests::BitOps_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_reverse_bits
    - std::vector::push_back
    - Botan_Tests::BitOps_Tests::test_popcount
    - Botan_Tests::BitOps_Tests::test_sig_bytes
    - Botan_Tests::BitOps_Tests::test_ctz
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_utils.cpp:803,1
    - Dst: Botan::ctz<T>
      Src: /src/botan/src/tests/test_utils.cpp:804,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_utils.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 807
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 7
    functionsReached:
    - Botan::CT::unpoison_all
    - std::to_string
    - test_sz_eq
    - Botan::CT::poison
    - Botan::ctz<T>
    linkageType: ''
    returnType: void
    signature: void test_ctz(Test::Result& result, T val, size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:811,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:812,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:813,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:814,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 819
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 8
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_ctz
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ctz()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_utils.cpp:823,1
    - Dst: Botan::significant_bytes<T>
      Src: /src/botan/src/tests/test_utils.cpp:824,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_utils.cpp:825,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 827
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 7
    functionsReached:
    - Botan::CT::unpoison_all
    - std::to_string
    - test_sz_eq
    - Botan::significant_bytes<T>
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_sig_bytes(Test::Result& result, T val, size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:831,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:832,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:833,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:834,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:835,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:836,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:837,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:838,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:840,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:842,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:843,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:844,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 848
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 8
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_sig_bytes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_sig_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: Botan::is_power_of_2<T>
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 853
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 8
    functionsReached:
    - test_bool_eq
    - Botan::is_power_of_2<T>
    - std::to_string
    linkageType: ''
    returnType: void
    signature: void test_power_of_2(Test::Result& result, T val, bool expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:858,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:859,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:860,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:861,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:862,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:863,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:864,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:866,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:867,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:868,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:869,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:870,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:871,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:872,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 876
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 9
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_power_of_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:879,1
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 881
    functionName: Botan_Tests::BitOps_Tests::pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 6
    functionsReached:
    - Botan::ct_popcount
    linkageType: ''
    returnType: auto
    signature: auto pc(T val) -> decltype(Botan::ct_popcount(val))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le<T>
      Src: /src/botan/src/tests/test_utils.cpp:885,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:885,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: Botan_Tests::BitOps_Tests::random_pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::fmt
    - Botan::load_le<T>
    - fuzzer_rng
    - test_sz_eq
    - std::popcount
    - Botan_Tests::BitOps_Tests::pc
    linkageType: ''
    returnType: auto
    signature: auto random_pc(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:892,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:892,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:893,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:893,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:894,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:894,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:895,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:895,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:897,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:897,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:898,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:898,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:899,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:899,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:900,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:900,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:905,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:905,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:907,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:907,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:908,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:908,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:909,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:909,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:910,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:910,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 889
    functionDepth: 3
    functionLinenumber: 889
    functionLinenumberEnd: 918
    functionName: Botan_Tests::BitOps_Tests::test_popcount
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::BitOps_Tests::pc
    - Test::Result::test_u8_eq
    - Botan_Tests::BitOps_Tests::random_pc
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_popcount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:933,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:933,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:935,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:935,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:936,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:936,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_utils.cpp:937,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 940
    functionName: Botan_Tests::BitOps_Tests::test_reverse_bits
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_u16_eq
    - Botan::ct_reverse_bits<uint64_t>
    - Botan::ct_reverse_bits<uint16_t>
    - Botan::ct_reverse_bits<uint32_t>
    - Test::Result::test_u32_eq
    - Botan::ct_reverse_bits<uint8_t>
    - Test::Result::test_u8_eq
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reverse_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 949
    functionName: Botan_Tests::Poly_Double_Tests::Poly_Double_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Poly_Double_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:953,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:954,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:957,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 961
    functionName: Botan_Tests::Poly_Double_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_double_n
    - std::vector::data
    - Test::Result::test_bin_eq
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:973,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_utils.cpp:973,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:975,1
    - Dst: Botan::version_string
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:977,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:977,1
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:979,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/test_utils.cpp:980,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:981,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:981,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:984,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:990,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:992,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:992,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:994,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 1002
    functionName: Botan_Tests::Version_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::short_version_cstr
    - std::string
    - Botan::fmt
    - std::string::empty
    - Test::Result::test_u32_eq
    - std::string::starts_with
    - Test::Result::test_str_eq
    - Botan::version_datestamp
    - Botan::short_version_string
    - Botan::version_cstr
    - Botan::runtime_version_check
    - Botan::version_string
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1009
    functionName: Botan_Tests::Date_Format_Tests::Date_Format_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Date_Format_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_utils.cpp:1012,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1014,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils.cpp:1018,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1018,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1020,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_utils.cpp:1020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1023
    functionName: Botan_Tests::Date_Format_Tests::parse_date
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::split_on
    - std::vector::push_back
    - Botan::to_u32bit
    - std::vector::reserve
    - Test_Error
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint32_t>
    signature: std::vector<uint32_t> parse_date(const std::string& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1026,1
    - Dst: Botan_Tests::Date_Format_Tests::parse_date
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1034,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1034,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1035,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1035,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1038,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1038,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1046,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1046,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1047,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1047,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1049,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1049,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1053,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1056,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1060
    functionName: Botan_Tests::Date_Format_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::calendar_point::minutes
    - Test_Error
    - Botan::calendar_point::seconds
    - Botan::calendar_point::hour
    - Botan::calendar_point::month
    - Botan::calendar_point::year
    - Botan_Tests::Date_Format_Tests::parse_date
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - Botan::calendar_point::day
    - Botan::calendar_point::to_std_timepoint
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1066,1
    - Dst: Botan::calendar_point::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1068
    functionName: Botan_Tests::Date_Format_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::calendar_point::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1075
    functionName: Botan_Tests::Charset_Tests::Charset_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Charset_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1081,1
    - Dst: Botan::ucs2_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: Botan::ucs4_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1088,1
    - Dst: Botan::latin1_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1092,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_utils.cpp:1095,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_utils.cpp:1096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1099
    functionName: Botan_Tests::Charset_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::ucs2_to_utf8
    - Botan::latin1_to_utf8
    - Botan::ucs4_to_utf8
    - std::string::end
    - std::vector<uint8_t>
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test_Error
    - std::string::begin
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: Botan_Tests::Hostname_Tests::Hostname_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hostname_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1111,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1112,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:1116,1
    - Dst: Botan::host_wildcard_match
      Src: /src/botan/src/tests/test_utils.cpp:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1119
    functionName: Botan_Tests::Hostname_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_bool_eq
    - Botan::host_wildcard_match
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1126
    functionName: Botan_Tests::DNS_Check_Tests::DNS_Check_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DNS_Check_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1131,1
    - Dst: Botan::check_and_canonicalize_dns_name
      Src: /src/botan/src/tests/test_utils.cpp:1135,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1136,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1145,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1152
    functionName: Botan_Tests::DNS_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - Botan::check_and_canonicalize_dns_name
    - BOTAN_UNUSED
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1159
    functionName: Botan_Tests::IPv4_Parsing_Tests::IPv4_Parsing_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IPv4_Parsing_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1164,1
    - Dst: Botan::string_to_ipv4
      Src: /src/botan/src/tests/test_utils.cpp:1167,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_utils.cpp:1169,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:1169,1
    - Dst: Botan::ipv4_to_string
      Src: /src/botan/src/tests/test_utils.cpp:1172,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:1172,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1177
    functionName: Botan_Tests::IPv4_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_bool_eq
    - Botan::string_to_ipv4
    - Test::Result::test_str_eq
    - auto::has_value
    - Botan::ipv4_to_string
    - auto::value
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& status, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1184
    functionName: Botan_Tests::ReadKV_Tests::ReadKV_Tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadKV_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1191,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    - Dst: Botan_Tests::ReadKV_Tests::confirm_kv
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Botan_Tests::ReadKV_Tests::split_group
      Src: /src/botan/src/tests/test_utils.cpp:1195,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1198,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1186
    functionDepth: 2
    functionLinenumber: 1186
    functionLinenumberEnd: 1201
    functionName: Botan_Tests::ReadKV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::ReadKV_Tests::confirm_kv
    - Botan::read_kv
    - Botan_Tests::ReadKV_Tests::split_group
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& status, const VarMap&
      vars) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_utils.cpp:1206,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1213,1
    - Dst: std::string::clear
      Src: /src/botan/src/tests/test_utils.cpp:1214,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1220,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1225
    functionName: Botan_Tests::ReadKV_Tests::split_group
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - std::string::empty
    - std::string::clear
    - empty
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split_group(const std::string& str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1234,1
    - Dst: find
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1236,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1236,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1237,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' result'
    - ' kv'
    - ' expected'
    argTypes:
    - Test::Result
    - std::map<std::string, std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1242
    functionName: Botan_Tests::ReadKV_Tests::confirm_kv
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - find
    - test_sz_eq
    - test_is_true
    - size
    - test_str_eq
    - end
    linkageType: ''
    returnType: void
    signature: "void confirm_kv(Test::Result& result,\n                             const
      std::map<std::string, std::string>& kv,\n                             const
      std::vector<std::string>& expected)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1254,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: Botan::CPUFeature
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: static_cast<Botan::CPUID::Feature::Bit>
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1263,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/test_utils.cpp:1267,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils.cpp:1268,1
    - Dst: auto::as_u32
      Src: /src/botan/src/tests/test_utils.cpp:1268,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1270,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1271,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1282,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1283,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_utils.cpp:1283,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/test_utils.cpp:1285,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_utils.cpp:1287,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1287,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/test_utils.cpp:1289,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1290,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1290,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1297
    functionName: Botan_Tests::CPUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::fmt
    - std::string::find
    - has
    - Test::Result::test_success
    - std::string::empty
    - Botan::CPUFeature::from_string
    - Test::Result::test_failure
    - Test::Result::test_u32_eq
    - static_cast<Botan::CPUID::Feature::Bit>
    - Botan::CPUID::initialize
    - BOTAN_UNUSED
    - auto::as_u32
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::CPUFeature
    - Botan::CPUID::to_string
    - Botan::clear_cpuid_bit
    - auto::to_string
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::UUID::UUID
      Src: /src/botan/src/tests/test_utils.cpp:1311,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1313,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1316,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_utils.cpp:1319,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1319,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1324,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1324,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1327,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1328,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1330,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1331,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1333,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1334,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1334,1
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1358,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1359,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1363,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::UUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::UUID::is_valid
    - Botan_Tests::UUID_Tests::rng
    - Botan::UUID::UUID
    - Botan::UUID::to_string
    - std::vector<uint8_t>
    - Test::Result::test_str_eq
    - begin
    - end
    - std::fill
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan_CLI::Print_UUID::Print_UUID
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1338
    functionDepth: 0
    functionLinenumber: 1338
    functionLinenumberEnd: 1338
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::AllSame_RNG
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AllSame_RNG(uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_utils.cpp:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1342
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> /* ignored */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1344
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::name
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1346
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1348
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1350
    functionName: Botan_Tests::UUID_Tests::AllSame_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1385,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1385,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1386,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1386,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1387,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1387,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1388,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1388,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1389,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1389,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils.cpp:1390,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1393
    functionName: Botan_Tests::Formatter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1402,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1406,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1408,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1411,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1416,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1420,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1421,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1422,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1423,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1426,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1432,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_utils.cpp:1434,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1437,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1439,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1445,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1446,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1449,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1453,1
    - Dst: auto::disengage
      Src: /src/botan/src/tests/test_utils.cpp:1454,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils.cpp:1456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1460
    functionName: Botan_Tests::ScopedCleanup_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - CHECK
    - test_is_true
    - auto::disengage
    - Botan::scoped_cleanup::scoped_cleanup
    - fn
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Fixed_Output_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_Tests::Fixed_Output_RNG::empty
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Fixed_Output_RNG::is_seeded
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_rng.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan_Tests::Fixed_Output_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Fixed_Output_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Fixed_Output_RNG::name
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_Tests::Fixed_Output_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:40,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:40,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:40,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fallback_rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG(RandomNumberGenerator& fallback_rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:56,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:56,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:56,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:56,1
    - Dst: Botan_Tests::Fixed_Output_RNG::random
      Src: /src/botan/src/tests/test_rng.h:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan_Tests::Fixed_Output_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Fixed_Output_RNG::random
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::Fixed_Output_Position_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan_Tests::Fixed_Output_Position_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan_Tests::Fixed_Output_Position_RNG::name
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' in'
    - pos
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - size_t
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: Botan_Tests::Fixed_Output_Position_RNG::Fixed_Output_Position_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_Position_RNG(const std::vector<uint8_t>& in, size_t
      pos, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' in_str'
    - pos
    - ' rng'
    argTypes:
    - std::string
    - size_t
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: Botan_Tests::Fixed_Output_Position_RNG::Fixed_Output_Position_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_Position_RNG(const std::string& in_str, size_t pos,
      Botan::RandomNumberGenerator& rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/test_rng.h:92,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng.h:93,1
    - Dst: Botan_Tests::Fixed_Output_RNG::fill_bytes_with_input
      Src: /src/botan/src/tests/test_rng.h:100,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rng.h:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: Botan_Tests::Fixed_Output_Position_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - Test_Error
    - Botan_Tests::Fixed_Output_RNG::fill_bytes_with_input
    - random_vec
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan_Tests::SeedCapturing_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_Tests::SeedCapturing_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_Tests::SeedCapturing_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_Tests::SeedCapturing_RNG::name
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: Botan_Tests::SeedCapturing_RNG::samples
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: '& seed_material() const'
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & seed_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/tests/test_rng.h:129,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng.h:130,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:134,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:134,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:134,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: Botan_Tests::SeedCapturing_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - std::span<uint8_t>::empty
    - Test_Error
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan_Tests::Request_Counting_RNG::randomize_count
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t randomize_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: Botan_Tests::Request_Counting_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: Botan_Tests::Request_Counting_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan_Tests::Request_Counting_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Request_Counting_RNG::name
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/tests/test_rng.h:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Request_Counting_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::empty
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> /* ignored */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan_Tests::CTR_DRBG_AES256::name
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: Botan_Tests::CTR_DRBG_AES256::accepts_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: Botan_Tests::CTR_DRBG_AES256::is_seeded
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CTR_DRBG_AES256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan_Tests::CTR_DRBG_AES256::CTR_DRBG_AES256
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256(const CTR_DRBG_AES256& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CTR_DRBG_AES256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_Tests::CTR_DRBG_AES256::CTR_DRBG_AES256
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256(CTR_DRBG_AES256&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CTR_DRBG_AES256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: '& operator=(const CTR_DRBG_AES256& other)'
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CTR_DRBG_AES256
    signature: CTR_DRBG_AES256 & operator=(const CTR_DRBG_AES256& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CTR_DRBG_AES256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: '& operator=(CTR_DRBG_AES256&& other)'
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CTR_DRBG_AES256
    signature: CTR_DRBG_AES256 & operator=(CTR_DRBG_AES256&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Fixed_Output_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_Tests::Fixed_Output_RNG::empty
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Fixed_Output_RNG::is_seeded
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_rng.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan_Tests::Fixed_Output_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 2
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Fixed_Output_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Fixed_Output_RNG::name
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_Tests::Fixed_Output_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:40,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:40,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:40,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fallback_rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG(RandomNumberGenerator& fallback_rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:56,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:56,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:56,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:56,1
    - Dst: Botan_Tests::Fixed_Output_RNG::random
      Src: /src/botan/src/tests/test_rng.h:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan_Tests::Fixed_Output_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 1
    functionsReached:
    - Botan_Tests::Fixed_Output_RNG::random
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::Fixed_Output_Position_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan_Tests::Fixed_Output_Position_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan_Tests::Fixed_Output_Position_RNG::name
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' in'
    - pos
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - size_t
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: Botan_Tests::Fixed_Output_Position_RNG::Fixed_Output_Position_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_Position_RNG(const std::vector<uint8_t>& in, size_t
      pos, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' in_str'
    - pos
    - ' rng'
    argTypes:
    - std::string
    - size_t
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: Botan_Tests::Fixed_Output_Position_RNG::Fixed_Output_Position_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_Position_RNG(const std::string& in_str, size_t pos,
      Botan::RandomNumberGenerator& rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/test_rng.h:92,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng.h:93,1
    - Dst: Botan_Tests::Fixed_Output_RNG::fill_bytes_with_input
      Src: /src/botan/src/tests/test_rng.h:100,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rng.h:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: Botan_Tests::Fixed_Output_Position_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - Test_Error
    - Botan_Tests::Fixed_Output_RNG::fill_bytes_with_input
    - random_vec
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan_Tests::SeedCapturing_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_Tests::SeedCapturing_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_Tests::SeedCapturing_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_Tests::SeedCapturing_RNG::name
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: Botan_Tests::SeedCapturing_RNG::samples
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: '& seed_material() const'
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & seed_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/tests/test_rng.h:129,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng.h:130,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:134,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:134,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:134,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: Botan_Tests::SeedCapturing_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - std::span<uint8_t>::empty
    - Test_Error
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan_Tests::Request_Counting_RNG::randomize_count
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t randomize_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: Botan_Tests::Request_Counting_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: Botan_Tests::Request_Counting_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan_Tests::Request_Counting_RNG::clear
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Request_Counting_RNG::name
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/tests/test_rng.h:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Request_Counting_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::empty
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> /* ignored */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan_Tests::CTR_DRBG_AES256::name
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: Botan_Tests::CTR_DRBG_AES256::accepts_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: Botan_Tests::CTR_DRBG_AES256::is_seeded
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CTR_DRBG_AES256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan_Tests::CTR_DRBG_AES256::CTR_DRBG_AES256
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256(const CTR_DRBG_AES256& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CTR_DRBG_AES256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_Tests::CTR_DRBG_AES256::CTR_DRBG_AES256
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256(CTR_DRBG_AES256&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CTR_DRBG_AES256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: '& operator=(const CTR_DRBG_AES256& other)'
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CTR_DRBG_AES256
    signature: CTR_DRBG_AES256 & operator=(const CTR_DRBG_AES256& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CTR_DRBG_AES256
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: '& operator=(CTR_DRBG_AES256&& other)'
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CTR_DRBG_AES256
    signature: CTR_DRBG_AES256 & operator=(CTR_DRBG_AES256&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan_Tests::PK_Test::PK_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Test(const std::string& algo,\n              const std::string&
      test_src,\n              const std::string& required_keys,\n              const
      std::string& optional_keys = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_Tests::PK_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pubkey.h:42,1
    - Dst: Botan_Tests::PK_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: Botan_Tests::PK_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::PK_Test::algo_name
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: Botan_Tests::PK_Signature_Generation_Test::PK_Signature_Generation_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Signature_Generation_Test(const std::string& algo,\n                                   const
      std::string& test_src,\n                                   const std::string&
      required_keys,\n                                   const std::string& optional_keys
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: Botan_Tests::PK_Signature_Verification_Test::PK_Signature_Verification_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Signature_Verification_Test(const std::string& algo,\n                                     const
      std::string& test_src,\n                                     const std::string&
      required_keys,\n                                     const std::string& optional_keys
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::PK_Signature_Verification_Test::test_random_invalid_sigs
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool test_random_invalid_sigs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: Botan_Tests::PK_Signature_NonVerification_Test::PK_Signature_NonVerification_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Signature_NonVerification_Test(const std::string& algo,\n
      \                                       const std::string& test_src,\n                                        const
      std::string& required_keys,\n                                        const std::string&
      optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::PK_Signature_NonVerification_Test::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo'
    - ' padding'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::PK_Sign_Verify_DER_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Sign_Verify_DER_Test(const std::string& algo, const std::string&
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool test_random_invalid_sigs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::PK_Encryption_Decryption_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Encryption_Decryption_Test(const std::string& algo,\n                                    const
      std::string& test_src,\n                                    const std::string&
      required_keys,\n                                    const std::string& optional_keys
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: Botan_Tests::PK_Decryption_Test::PK_Decryption_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Decryption_Test(const std::string& algo,\n                         const
      std::string& test_src,\n                         const std::string& required_keys,\n
      \                        const std::string& optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan_Tests::PK_Decryption_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: Botan_Tests::PK_Key_Agreement_Test::PK_Key_Agreement_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Key_Agreement_Test(const std::string& algo,\n                            const
      std::string& test_src,\n                            const std::string& required_keys,\n
      \                           const std::string& optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool agreement_should_fail(const std::string& /*header*/, const VarMap&
      /*vars*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: Botan_Tests::PK_Key_Agreement_Test::default_kdf
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*vars*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: Botan_Tests::PK_KEM_Test::PK_KEM_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_KEM_Test(const std::string& algo,\n                  const
      std::string& test_src,\n                  const std::string& required_keys,\n
      \                 const std::string& optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::PK_Key_Generation_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 1
    functionsReached:
    - Botan_Tests::PK_Key_Generation_Test::algo_name
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name(std::string_view /*param*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: Botan_Tests::PK_Key_Generation_Stability_Test::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: Botan_Tests::PK_Key_Validity_Test::PK_Key_Validity_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Key_Validity_Test(const std::string& algo,\n                           const
      std::string& test_src,\n                           const std::string& required_keys,\n
      \                          const std::string& optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan_Tests::PK_Test::PK_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Test(const std::string& algo,\n              const std::string&
      test_src,\n              const std::string& required_keys,\n              const
      std::string& optional_keys = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_Tests::PK_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pubkey.h:42,1
    - Dst: Botan_Tests::PK_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: Botan_Tests::PK_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::PK_Test::algo_name
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: Botan_Tests::PK_Signature_Generation_Test::PK_Signature_Generation_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Signature_Generation_Test(const std::string& algo,\n                                   const
      std::string& test_src,\n                                   const std::string&
      required_keys,\n                                   const std::string& optional_keys
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: Botan_Tests::PK_Signature_Verification_Test::PK_Signature_Verification_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Signature_Verification_Test(const std::string& algo,\n                                     const
      std::string& test_src,\n                                     const std::string&
      required_keys,\n                                     const std::string& optional_keys
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::PK_Signature_Verification_Test::test_random_invalid_sigs
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool test_random_invalid_sigs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: Botan_Tests::PK_Signature_NonVerification_Test::PK_Signature_NonVerification_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Signature_NonVerification_Test(const std::string& algo,\n
      \                                       const std::string& test_src,\n                                        const
      std::string& required_keys,\n                                        const std::string&
      optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::PK_Signature_NonVerification_Test::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo'
    - ' padding'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::PK_Sign_Verify_DER_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Sign_Verify_DER_Test(const std::string& algo, const std::string&
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool test_random_invalid_sigs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::PK_Encryption_Decryption_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Encryption_Decryption_Test(const std::string& algo,\n                                    const
      std::string& test_src,\n                                    const std::string&
      required_keys,\n                                    const std::string& optional_keys
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: Botan_Tests::PK_Decryption_Test::PK_Decryption_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Decryption_Test(const std::string& algo,\n                         const
      std::string& test_src,\n                         const std::string& required_keys,\n
      \                        const std::string& optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan_Tests::PK_Decryption_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: Botan_Tests::PK_Key_Agreement_Test::PK_Key_Agreement_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Key_Agreement_Test(const std::string& algo,\n                            const
      std::string& test_src,\n                            const std::string& required_keys,\n
      \                           const std::string& optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool agreement_should_fail(const std::string& /*header*/, const VarMap&
      /*vars*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: Botan_Tests::PK_Key_Agreement_Test::default_kdf
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*vars*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: Botan_Tests::PK_KEM_Test::PK_KEM_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_KEM_Test(const std::string& algo,\n                  const
      std::string& test_src,\n                  const std::string& required_keys,\n
      \                 const std::string& optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::PK_Key_Generation_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 2
    functionsReached:
    - Botan_Tests::PK_Key_Generation_Test::algo_name
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name(std::string_view /*param*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: Botan_Tests::PK_Key_Generation_Stability_Test::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: Botan_Tests::PK_Key_Validity_Test::PK_Key_Validity_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Key_Validity_Test(const std::string& algo,\n                           const
      std::string& test_src,\n                           const std::string& required_keys,\n
      \                          const std::string& optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Message_Auth_Tests::Message_Auth_Tests
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message_Auth_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_mac.cpp:28,1
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/tests/test_mac.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Message_Auth_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_mac.cpp:35,1
    - Dst: Botan_Tests::Message_Auth_Tests::possible_providers
      Src: /src/botan/src/tests/test_mac.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_mac.cpp:42,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_mac.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:50,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_mac.cpp:50,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_mac.cpp:54,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_mac.cpp:56,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mac.cpp:57,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:57,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_mac.cpp:67,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:67,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:71,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:74,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:76,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:79,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:82,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:82,1
    - Dst: auto::fresh_key_required_per_message
      Src: /src/botan/src/tests/test_mac.cpp:85,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:88,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:89,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:89,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:95,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:97,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_mac.cpp:98,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:98,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:101,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:102,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:103,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:110,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: Botan_Tests::Message_Auth_Tests::rng
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:115,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:116,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:120,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:120,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:123,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:123,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:126,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:130,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:136,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:141,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:143,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mac.cpp:147,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:148,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:148,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:149,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 82
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Message_Auth_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached:
    - auto::has_keying_material
    - Botan::fmt
    - auto::get
    - auto::new_object
    - auto::final
    - auto::clear
    - Botan::MessageAuthenticationCode::create
    - Test::Result::test_success
    - auto::fresh_key_required_per_message
    - Botan_Tests::Message_Auth_Tests::possible_providers
    - Test::Result::test_str_not_empty
    - auto::start
    - auto::name
    - auto::update
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Botan_Tests::Message_Auth_Tests::rng
    - Test::Result::test_is_true
    - auto::set_key
    - auto::provider
    - auto::output_length
    - Test::Result::test_str_eq
    - std::vector::data
    - auto::verify_mac
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Message_Auth_Tests::Message_Auth_Tests
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message_Auth_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_mac.cpp:28,1
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/tests/test_mac.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Message_Auth_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 1
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_mac.cpp:35,1
    - Dst: Botan_Tests::Message_Auth_Tests::possible_providers
      Src: /src/botan/src/tests/test_mac.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_mac.cpp:42,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_mac.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:50,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_mac.cpp:50,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_mac.cpp:54,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_mac.cpp:56,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mac.cpp:57,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:57,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_mac.cpp:67,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:67,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:71,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:74,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:76,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:79,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:82,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:82,1
    - Dst: auto::fresh_key_required_per_message
      Src: /src/botan/src/tests/test_mac.cpp:85,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:88,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:89,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:89,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:95,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:97,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_mac.cpp:98,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:98,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:101,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:102,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:103,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:110,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: Botan_Tests::Message_Auth_Tests::rng
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:115,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:116,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:120,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:120,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:123,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:123,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:126,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:130,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:136,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:141,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:143,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mac.cpp:147,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:148,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:148,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:149,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 82
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Message_Auth_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached:
    - auto::has_keying_material
    - Botan::fmt
    - auto::get
    - auto::new_object
    - auto::final
    - auto::clear
    - Botan::MessageAuthenticationCode::create
    - Test::Result::test_success
    - auto::fresh_key_required_per_message
    - Botan_Tests::Message_Auth_Tests::possible_providers
    - Test::Result::test_str_not_empty
    - auto::start
    - auto::name
    - auto::update
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Botan_Tests::Message_Auth_Tests::rng
    - Test::Result::test_is_true
    - auto::set_key
    - auto::provider
    - auto::output_length
    - Test::Result::test_str_eq
    - std::vector::data
    - auto::verify_mac
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Message_Auth_Tests::Message_Auth_Tests
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message_Auth_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_mac.cpp:28,1
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/tests/test_mac.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Message_Auth_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 2
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_mac.cpp:35,1
    - Dst: Botan_Tests::Message_Auth_Tests::possible_providers
      Src: /src/botan/src/tests/test_mac.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_mac.cpp:42,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_mac.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:50,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_mac.cpp:50,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_mac.cpp:54,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_mac.cpp:56,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mac.cpp:57,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:57,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_mac.cpp:67,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:67,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:71,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:74,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:76,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:79,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:82,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:82,1
    - Dst: auto::fresh_key_required_per_message
      Src: /src/botan/src/tests/test_mac.cpp:85,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:88,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:89,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:89,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:95,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:97,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_mac.cpp:98,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:98,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:101,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:102,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:103,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:110,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: Botan_Tests::Message_Auth_Tests::rng
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:115,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:116,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:120,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:120,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:123,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:123,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:126,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:130,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:136,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:141,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:143,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mac.cpp:147,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:148,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:148,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:149,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 82
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Message_Auth_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached:
    - auto::has_keying_material
    - Botan::fmt
    - auto::get
    - auto::new_object
    - auto::final
    - auto::clear
    - Botan::MessageAuthenticationCode::create
    - Test::Result::test_success
    - auto::fresh_key_required_per_message
    - Botan_Tests::Message_Auth_Tests::possible_providers
    - Test::Result::test_str_not_empty
    - auto::start
    - auto::name
    - auto::update
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Botan_Tests::Message_Auth_Tests::rng
    - Test::Result::test_is_true
    - auto::set_key
    - auto::provider
    - auto::output_length
    - Test::Result::test_str_eq
    - std::vector::data
    - auto::verify_mac
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Message_Auth_Tests::Message_Auth_Tests
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message_Auth_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_mac.cpp:28,1
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/tests/test_mac.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Message_Auth_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 3
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_mac.cpp:35,1
    - Dst: Botan_Tests::Message_Auth_Tests::possible_providers
      Src: /src/botan/src/tests/test_mac.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_mac.cpp:42,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_mac.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:50,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_mac.cpp:50,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_mac.cpp:54,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_mac.cpp:56,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mac.cpp:57,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:57,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:61,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_mac.cpp:67,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:67,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:71,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:74,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:76,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:79,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:82,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:82,1
    - Dst: auto::fresh_key_required_per_message
      Src: /src/botan/src/tests/test_mac.cpp:85,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:88,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:89,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:89,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:95,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:97,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_mac.cpp:98,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:98,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:101,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:102,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:103,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:110,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: Botan_Tests::Message_Auth_Tests::rng
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:115,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:116,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:120,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:120,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mac.cpp:123,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:123,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:126,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:130,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:133,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:136,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:141,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:143,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mac.cpp:147,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:148,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:148,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:149,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 82
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Message_Auth_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached:
    - auto::has_keying_material
    - Botan::fmt
    - auto::get
    - auto::new_object
    - auto::final
    - auto::clear
    - Botan::MessageAuthenticationCode::create
    - Test::Result::test_success
    - auto::fresh_key_required_per_message
    - Botan_Tests::Message_Auth_Tests::possible_providers
    - Test::Result::test_str_not_empty
    - auto::start
    - auto::name
    - auto::update
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Botan_Tests::Message_Auth_Tests::rng
    - Test::Result::test_is_true
    - auto::set_key
    - auto::provider
    - auto::output_length
    - Test::Result::test_str_eq
    - std::vector::data
    - auto::verify_mac
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: Botan_Tests::Blowfish_Salted_Tests::Blowfish_Salted_Tests
    functionSourceFile: /src/botan/src/tests/test_blowfish.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Blowfish_Salted_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:24,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:26,1
    - Dst: Botan::Blowfish::salted_set_key
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: Botan::Blowfish::encrypt
      Src: /src/botan/src/tests/test_blowfish.cpp:33,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_blowfish.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: Botan_Tests::Blowfish_Salted_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_blowfish.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Blowfish::salted_set_key
    - Botan::Blowfish::encrypt
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: Botan_Tests::Blowfish_Salted_Tests::Blowfish_Salted_Tests
    functionSourceFile: /src/botan/src/tests/test_blowfish.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Blowfish_Salted_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:24,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:26,1
    - Dst: Botan::Blowfish::salted_set_key
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: Botan::Blowfish::encrypt
      Src: /src/botan/src/tests/test_blowfish.cpp:33,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_blowfish.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: Botan_Tests::Blowfish_Salted_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_blowfish.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Blowfish::salted_set_key
    - Botan::Blowfish::encrypt
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: Botan_Tests::Blowfish_Salted_Tests::Blowfish_Salted_Tests
    functionSourceFile: /src/botan/src/tests/test_blowfish.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Blowfish_Salted_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:24,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:26,1
    - Dst: Botan::Blowfish::salted_set_key
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: Botan::Blowfish::encrypt
      Src: /src/botan/src/tests/test_blowfish.cpp:33,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_blowfish.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: Botan_Tests::Blowfish_Salted_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_blowfish.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Blowfish::salted_set_key
    - Botan::Blowfish::encrypt
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: Botan_Tests::Blowfish_Salted_Tests::Blowfish_Salted_Tests
    functionSourceFile: /src/botan/src/tests/test_blowfish.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Blowfish_Salted_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:24,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:26,1
    - Dst: Botan::Blowfish::salted_set_key
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:30,1
    - Dst: Botan::Blowfish::encrypt
      Src: /src/botan/src/tests/test_blowfish.cpp:33,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_blowfish.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: Botan_Tests::Blowfish_Salted_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_blowfish.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - Test::Result::test_bin_eq
    - Botan::Blowfish::salted_set_key
    - Botan::Blowfish::encrypt
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan_Tests::get_valid_ca_bundle_path
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string get_valid_ca_bundle_path()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::get_ca_bundle_containing_user_cert
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string get_ca_bundle_containing_user_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:32,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:34,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:35,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:35,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: Botan_Tests::open_certificate_store
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::all_subjects
    - Test::Result::test_failure
    - Test::Result::test_sz_gt
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result open_certificate_store()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:49,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:51,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:51,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:52,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:54,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:55,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:60,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:60,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:63,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_throws
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:75,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:77,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:80,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:82,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:83,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:88,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_utf8_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:98,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:100,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:106,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:107,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan_Tests::get_utf8_dn
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_utf8_subject_dn()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:122,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:124,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:127,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:129,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:130,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:135,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 139
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn_and_key_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:145,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:147,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:153,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:153,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:155,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:155,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:159,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 163
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - auto::size
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certs_by_subject_dn_and_key_id()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:169,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:171,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:172,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:175,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:180,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:184,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::all_subjects
    - auto::empty
    - auto::cend
    - auto::cbegin
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - std::find_if
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_subjects()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_unknown_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:194,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:195,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:197,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:200,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:201,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:202,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:203,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:206,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 213
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_unknown_dn
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::end_timer
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::empty
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan_Tests::get_unknown_key_id
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result no_certificate_matches()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:219,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:221,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: Botan_Tests::certstore_contains_user_certificate
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::start_timer
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result certstore_contains_user_certificate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:233,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:236,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:238,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:239,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:245,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Botan_Tests::get_serial_number
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_issuer_dn_and_serial_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:256,1
    - Dst: open_certificate_store
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:256,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:257,1
    - Dst: find_certificate_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:257,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:258,1
    - Dst: find_cert_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:258,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:259,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:259,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:260,1
    - Dst: find_cert_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:260,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:261,1
    - Dst: find_certs_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:261,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:262,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:262,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:263,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:263,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:264,1
    - Dst: certstore_contains_user_certificate
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:264,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: Botan_Tests::Certstor_Flatfile_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - find_certs_by_subject_dn_and_key_id
    - no_certificate_matches
    - std::vector::push_back
    - find_certificate_by_pubkey_sha1
    - find_cert_by_utf8_subject_dn
    - open_certificate_store
    - find_cert_by_subject_dn_and_key_id
    - find_all_subjects
    - find_cert_by_subject_dn
    - certstore_contains_user_certificate
    - find_cert_by_issuer_dn_and_serial_number
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan_Tests::get_valid_ca_bundle_path
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string get_valid_ca_bundle_path()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::get_ca_bundle_containing_user_cert
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string get_ca_bundle_containing_user_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:32,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:34,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:35,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:35,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: Botan_Tests::open_certificate_store
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::all_subjects
    - Test::Result::test_failure
    - Test::Result::test_sz_gt
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result open_certificate_store()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:49,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:51,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:51,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:52,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:54,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:55,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:60,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:60,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:63,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_throws
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:75,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:77,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:80,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:82,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:83,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:88,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_utf8_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:98,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:100,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:106,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:107,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan_Tests::get_utf8_dn
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_utf8_subject_dn()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:122,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:124,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:127,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:129,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:130,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:135,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 139
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn_and_key_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:145,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:147,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:153,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:153,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:155,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:155,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:159,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 163
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - auto::size
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certs_by_subject_dn_and_key_id()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:169,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:171,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:172,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:175,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:180,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:184,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::all_subjects
    - auto::empty
    - auto::cend
    - auto::cbegin
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - std::find_if
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_subjects()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_unknown_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:194,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:195,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:197,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:200,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:201,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:202,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:203,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:206,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 213
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_unknown_dn
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::end_timer
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::empty
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan_Tests::get_unknown_key_id
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result no_certificate_matches()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:219,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:221,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: Botan_Tests::certstore_contains_user_certificate
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::start_timer
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result certstore_contains_user_certificate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:233,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:236,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:238,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:239,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:245,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Botan_Tests::get_serial_number
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_issuer_dn_and_serial_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:256,1
    - Dst: open_certificate_store
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:256,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:257,1
    - Dst: find_certificate_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:257,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:258,1
    - Dst: find_cert_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:258,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:259,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:259,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:260,1
    - Dst: find_cert_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:260,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:261,1
    - Dst: find_certs_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:261,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:262,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:262,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:263,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:263,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:264,1
    - Dst: certstore_contains_user_certificate
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:264,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: Botan_Tests::Certstor_Flatfile_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - find_certs_by_subject_dn_and_key_id
    - no_certificate_matches
    - std::vector::push_back
    - find_certificate_by_pubkey_sha1
    - find_cert_by_utf8_subject_dn
    - open_certificate_store
    - find_cert_by_subject_dn_and_key_id
    - find_all_subjects
    - find_cert_by_subject_dn
    - certstore_contains_user_certificate
    - find_cert_by_issuer_dn_and_serial_number
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan_Tests::get_valid_ca_bundle_path
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string get_valid_ca_bundle_path()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::get_ca_bundle_containing_user_cert
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string get_ca_bundle_containing_user_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:32,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:34,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:35,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:35,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: Botan_Tests::open_certificate_store
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::all_subjects
    - Test::Result::test_failure
    - Test::Result::test_sz_gt
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result open_certificate_store()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:49,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:51,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:51,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:52,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:54,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:55,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:60,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:60,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:63,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_throws
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:75,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:77,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:80,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:82,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:83,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:88,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_utf8_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:98,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:100,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:106,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:107,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan_Tests::get_utf8_dn
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_utf8_subject_dn()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:122,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:124,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:127,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:129,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:130,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:135,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 139
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn_and_key_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:145,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:147,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:153,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:153,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:155,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:155,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:159,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 163
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - auto::size
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certs_by_subject_dn_and_key_id()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:169,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:171,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:172,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:175,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:180,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:184,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::all_subjects
    - auto::empty
    - auto::cend
    - auto::cbegin
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - std::find_if
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_subjects()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_unknown_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:194,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:195,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:197,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:200,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:201,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:202,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:203,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:206,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 213
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_unknown_dn
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::end_timer
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::empty
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan_Tests::get_unknown_key_id
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result no_certificate_matches()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:219,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:221,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: Botan_Tests::certstore_contains_user_certificate
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::start_timer
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result certstore_contains_user_certificate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:233,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:236,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:238,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:239,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:245,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Botan_Tests::get_serial_number
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_issuer_dn_and_serial_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:256,1
    - Dst: open_certificate_store
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:256,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:257,1
    - Dst: find_certificate_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:257,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:258,1
    - Dst: find_cert_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:258,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:259,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:259,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:260,1
    - Dst: find_cert_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:260,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:261,1
    - Dst: find_certs_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:261,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:262,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:262,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:263,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:263,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:264,1
    - Dst: certstore_contains_user_certificate
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:264,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: Botan_Tests::Certstor_Flatfile_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - find_certs_by_subject_dn_and_key_id
    - no_certificate_matches
    - std::vector::push_back
    - find_certificate_by_pubkey_sha1
    - find_cert_by_utf8_subject_dn
    - open_certificate_store
    - find_cert_by_subject_dn_and_key_id
    - find_all_subjects
    - find_cert_by_subject_dn
    - certstore_contains_user_certificate
    - find_cert_by_issuer_dn_and_serial_number
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan_Tests::get_valid_ca_bundle_path
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string get_valid_ca_bundle_path()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::get_ca_bundle_containing_user_cert
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string get_ca_bundle_containing_user_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:32,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:34,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:35,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:35,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: Botan_Tests::open_certificate_store
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::all_subjects
    - Test::Result::test_failure
    - Test::Result::test_sz_gt
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result open_certificate_store()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:49,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:51,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:51,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:52,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:54,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:55,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:60,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:60,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:63,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_throws
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:75,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:77,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:80,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:82,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:83,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:88,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_utf8_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:98,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:100,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:106,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:107,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan_Tests::get_utf8_dn
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_utf8_subject_dn()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:122,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:124,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:127,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:129,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:130,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:135,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 139
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn_and_key_id()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:145,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:147,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:153,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:153,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:155,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:155,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:159,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 163
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - auto::size
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certs_by_subject_dn_and_key_id()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:169,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:171,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:172,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:175,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:180,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:184,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::all_subjects
    - auto::empty
    - auto::cend
    - auto::cbegin
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - std::find_if
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_subjects()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_unknown_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:194,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:195,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:197,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:200,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:201,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:202,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:203,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:206,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 213
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_unknown_dn
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::end_timer
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::empty
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - Botan_Tests::get_unknown_key_id
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result no_certificate_matches()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:219,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:221,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: Botan_Tests::certstore_contains_user_certificate
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Test::Result::start_timer
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result certstore_contains_user_certificate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:233,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:235,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:236,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:238,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:239,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:245,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Botan_Tests::get_serial_number
    - Test::Result::start_timer
    - Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_issuer_dn_and_serial_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:256,1
    - Dst: open_certificate_store
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:256,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:257,1
    - Dst: find_certificate_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:257,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:258,1
    - Dst: find_cert_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:258,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:259,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:259,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:260,1
    - Dst: find_cert_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:260,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:261,1
    - Dst: find_certs_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:261,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:262,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:262,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:263,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:263,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:264,1
    - Dst: certstore_contains_user_certificate
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:264,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: Botan_Tests::Certstor_Flatfile_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - find_certs_by_subject_dn_and_key_id
    - no_certificate_matches
    - std::vector::push_back
    - find_certificate_by_pubkey_sha1
    - find_cert_by_utf8_subject_dn
    - open_certificate_store
    - find_cert_by_subject_dn_and_key_id
    - find_all_subjects
    - find_cert_by_subject_dn
    - certstore_contains_user_certificate
    - find_cert_by_issuer_dn_and_serial_number
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::ECC_H2C_XMD_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2C_XMD_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:35,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:37,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' hash'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::expand_message_xmd
    - get_req_bin
    - Test::Result::test_bin_eq
    - Botan::as_span_of_bytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECC_H2S_Tests::ECC_H2S_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2S_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ECC_H2S_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan_Tests::ECC_H2S_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:64,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:65,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:66,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:67,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:72,1
    - Dst: Botan::EC_Scalar::hash
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:75,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:76,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: Botan_Tests::ECC_H2S_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::hash
    - get_req_str
    - Test::Result::test_note
    - reinterpret_cast<const uint8_t*>
    - std::string::data
    - std::string::size
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_Tests::ECC_H2C_Tests::ECC_H2C_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2C_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan_Tests::ECC_H2C_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:98,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Botan_Tests::ECC_H2C_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:102,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:106,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:107,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:108,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:109,1
    - Dst: find
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:110,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:114,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:119,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:124,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' method'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: Botan_Tests::ECC_H2C_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_note
    - find
    - reinterpret_cast<const uint8_t*>
    - std::string::data
    - std::string::size
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - get_req_bin
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& method, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::ECC_H2C_XMD_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2C_XMD_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:35,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:37,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' hash'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::expand_message_xmd
    - get_req_bin
    - Test::Result::test_bin_eq
    - Botan::as_span_of_bytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECC_H2S_Tests::ECC_H2S_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2S_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ECC_H2S_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan_Tests::ECC_H2S_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:64,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:65,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:66,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:67,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:72,1
    - Dst: Botan::EC_Scalar::hash
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:75,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:76,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: Botan_Tests::ECC_H2S_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::hash
    - get_req_str
    - Test::Result::test_note
    - reinterpret_cast<const uint8_t*>
    - std::string::data
    - std::string::size
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_Tests::ECC_H2C_Tests::ECC_H2C_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2C_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan_Tests::ECC_H2C_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:98,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Botan_Tests::ECC_H2C_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:102,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:106,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:107,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:108,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:109,1
    - Dst: find
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:110,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:114,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:119,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:124,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' method'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: Botan_Tests::ECC_H2C_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_note
    - find
    - reinterpret_cast<const uint8_t*>
    - std::string::data
    - std::string::size
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - get_req_bin
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& method, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::ECC_H2C_XMD_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2C_XMD_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:35,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:37,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' hash'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::expand_message_xmd
    - get_req_bin
    - Test::Result::test_bin_eq
    - Botan::as_span_of_bytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECC_H2S_Tests::ECC_H2S_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2S_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ECC_H2S_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan_Tests::ECC_H2S_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:64,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:65,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:66,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:67,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:72,1
    - Dst: Botan::EC_Scalar::hash
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:75,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:76,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: Botan_Tests::ECC_H2S_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::hash
    - get_req_str
    - Test::Result::test_note
    - reinterpret_cast<const uint8_t*>
    - std::string::data
    - std::string::size
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_Tests::ECC_H2C_Tests::ECC_H2C_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2C_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan_Tests::ECC_H2C_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:98,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Botan_Tests::ECC_H2C_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:102,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:106,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:107,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:108,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:109,1
    - Dst: find
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:110,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:114,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:119,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:124,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' method'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: Botan_Tests::ECC_H2C_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_note
    - find
    - reinterpret_cast<const uint8_t*>
    - std::string::data
    - std::string::size
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - get_req_bin
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& method, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::ECC_H2C_XMD_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2C_XMD_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:35,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:37,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:38,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' hash'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: Botan_Tests::ECC_H2C_XMD_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::expand_message_xmd
    - get_req_bin
    - Test::Result::test_bin_eq
    - Botan::as_span_of_bytes
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECC_H2S_Tests::ECC_H2S_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2S_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ECC_H2S_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan_Tests::ECC_H2S_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group_id, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:64,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:65,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:66,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:67,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:69,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:70,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:72,1
    - Dst: Botan::EC_Scalar::hash
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:75,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:76,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: Botan_Tests::ECC_H2S_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::hash
    - get_req_str
    - Test::Result::test_note
    - reinterpret_cast<const uint8_t*>
    - std::string::data
    - std::string::size
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_id, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_Tests::ECC_H2C_Tests::ECC_H2C_Tests
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_H2C_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan_Tests::ECC_H2C_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:98,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Botan_Tests::ECC_H2C_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:102,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:106,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:107,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:108,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:109,1
    - Dst: find
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:110,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:112,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:114,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:119,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:124,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ecc_h2c.cpp:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' method'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: Botan_Tests::ECC_H2C_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_h2c.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_note
    - find
    - reinterpret_cast<const uint8_t*>
    - std::string::data
    - std::string::size
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - get_req_bin
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& method, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Base32_Tests::Base32_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:43,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/tests/test_codec.cpp:43,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:50,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:50,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Base32_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::base32_encode
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_bin
    - what
    - Botan::base32_decode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_codec.cpp:64,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:66,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:69,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:69,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:73,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:75,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Base32_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::insert
    - std::string::size
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - what
    - Botan::base32_decode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_Tests::Base58_Tests::Base58_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:98,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:102,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:104,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/tests/test_codec.cpp:104,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:106,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 118
    functionName: Botan_Tests::Base58_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::base58_encode
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::base58_decode
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Base58_Check_Tests::Base58_Check_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Check_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:131,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:135,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:137,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/tests/test_codec.cpp:137,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:144,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 151
    functionName: Botan_Tests::Base58_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Botan::base58_check_decode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_bin
    - what
    - Botan::base58_check_encode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan_Tests::Base64_Tests::Base64_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:168,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:174,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/tests/test_codec.cpp:174,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:176,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:181,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:181,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 188
    functionName: Botan_Tests::Base64_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Botan::base64_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Botan::base64_decode
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_codec.cpp:195,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:197,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:200,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:200,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:204,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:204,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:206,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 212
    functionName: Botan_Tests::Base64_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::insert
    - std::string::size
    - Test::Result::test_bin_eq
    - Botan::base64_decode
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Base32_Tests::Base32_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:43,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/tests/test_codec.cpp:43,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:50,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:50,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Base32_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::base32_encode
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_bin
    - what
    - Botan::base32_decode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_codec.cpp:64,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:66,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:69,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:69,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:73,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:75,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Base32_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::insert
    - std::string::size
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - what
    - Botan::base32_decode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_Tests::Base58_Tests::Base58_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:98,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:102,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:104,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/tests/test_codec.cpp:104,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:106,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 118
    functionName: Botan_Tests::Base58_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::base58_encode
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::base58_decode
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Base58_Check_Tests::Base58_Check_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Check_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:131,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:135,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:137,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/tests/test_codec.cpp:137,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:144,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 151
    functionName: Botan_Tests::Base58_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Botan::base58_check_decode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_bin
    - what
    - Botan::base58_check_encode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan_Tests::Base64_Tests::Base64_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:168,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:174,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/tests/test_codec.cpp:174,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:176,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:181,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:181,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 188
    functionName: Botan_Tests::Base64_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Botan::base64_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Botan::base64_decode
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_codec.cpp:195,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:197,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:200,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:200,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:204,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:204,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:206,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 212
    functionName: Botan_Tests::Base64_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::insert
    - std::string::size
    - Test::Result::test_bin_eq
    - Botan::base64_decode
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Base32_Tests::Base32_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:43,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/tests/test_codec.cpp:43,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:50,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:50,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Base32_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::base32_encode
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_bin
    - what
    - Botan::base32_decode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_codec.cpp:64,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:66,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:69,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:69,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:73,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:75,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Base32_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::insert
    - std::string::size
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - what
    - Botan::base32_decode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_Tests::Base58_Tests::Base58_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:98,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:102,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:104,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/tests/test_codec.cpp:104,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:106,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 118
    functionName: Botan_Tests::Base58_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::base58_encode
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::base58_decode
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Base58_Check_Tests::Base58_Check_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Check_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:131,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:135,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:137,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/tests/test_codec.cpp:137,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:144,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 151
    functionName: Botan_Tests::Base58_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Botan::base58_check_decode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_bin
    - what
    - Botan::base58_check_encode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan_Tests::Base64_Tests::Base64_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:168,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:174,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/tests/test_codec.cpp:174,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:176,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:181,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:181,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 188
    functionName: Botan_Tests::Base64_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Botan::base64_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Botan::base64_decode
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_codec.cpp:195,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:197,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:200,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:200,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:204,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:204,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:206,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 212
    functionName: Botan_Tests::Base64_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::insert
    - std::string::size
    - Test::Result::test_bin_eq
    - Botan::base64_decode
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Base32_Tests::Base32_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:43,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/tests/test_codec.cpp:43,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:50,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:50,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Base32_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::base32_encode
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_bin
    - what
    - Botan::base32_decode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_codec.cpp:64,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:66,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:69,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:69,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:73,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:75,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Base32_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::insert
    - std::string::size
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - what
    - Botan::base32_decode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_Tests::Base58_Tests::Base58_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:98,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:102,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:104,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/tests/test_codec.cpp:104,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:106,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 118
    functionName: Botan_Tests::Base58_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::base58_encode
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - Botan::base58_decode
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Base58_Check_Tests::Base58_Check_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Check_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:131,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:135,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:137,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/tests/test_codec.cpp:137,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:144,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 151
    functionName: Botan_Tests::Base58_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Botan::base58_check_decode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_bin
    - what
    - Botan::base58_check_encode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan_Tests::Base64_Tests::Base64_Tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_codec.cpp:168,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:172,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_codec.cpp:174,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/tests/test_codec.cpp:174,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:176,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:181,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:181,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 188
    functionName: Botan_Tests::Base64_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::hex_encode
    - Botan::base64_encode
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Test::Result::test_bin_eq
    - Botan::base64_decode
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_codec.cpp:195,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:197,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:200,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:200,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_codec.cpp:204,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:204,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:206,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 212
    functionName: Botan_Tests::Base64_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::insert
    - std::string::size
    - Test::Result::test_bin_eq
    - Botan::base64_decode
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:37,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:38,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:39,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:39,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_pubkey.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_pubkey.cpp:42,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_pubkey.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - correct_signature
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::generate_specific_false_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector<uint8_t>
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: std::vector<std::vector<uint8_t>> generate_specific_false_signatures(const
      std::span<const uint8_t> correct_signature)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pubkey.cpp:55,1
    - Dst: size
      Src: /src/botan/src/tests/test_pubkey.cpp:57,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_pubkey.cpp:58,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:58,1
    - Dst: Botan_Tests::generate_specific_false_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:64,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:67,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_pubkey.cpp:71,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:71,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:72,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:75,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:76,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:78,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:79,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - ' result'
    - ' verifier'
    - ' message'
    - ' signature'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::PK_Verifier
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 83
    functionName: Botan_Tests::check_invalid_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_is_false
    - auto::size
    - Botan_Tests::generate_specific_false_signatures
    - test_is_true
    - Botan_Tests::Test::mutate_vec
    - size
    - Botan_Tests::Test::run_long_tests
    - test_failure
    - what
    - verify_message
    - test_note
    linkageType: ''
    returnType: void
    signature: "void check_invalid_signatures(Test::Result& result,\n                              Botan::PK_Verifier&
      verifier,\n                              const std::vector<uint8_t>& message,\n
      \                             const std::vector<uint8_t>& signature,\n                              Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:37,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:38,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:39,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:39,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_pubkey.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_pubkey.cpp:42,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_pubkey.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - correct_signature
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::generate_specific_false_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - std::vector<uint8_t>
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: std::vector<std::vector<uint8_t>> generate_specific_false_signatures(const
      std::span<const uint8_t> correct_signature)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pubkey.cpp:55,1
    - Dst: size
      Src: /src/botan/src/tests/test_pubkey.cpp:57,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_pubkey.cpp:58,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:58,1
    - Dst: Botan_Tests::generate_specific_false_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:64,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:67,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_pubkey.cpp:71,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:71,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:72,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:75,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:76,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:78,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:79,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - ' result'
    - ' verifier'
    - ' message'
    - ' signature'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::PK_Verifier
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 83
    functionName: Botan_Tests::check_invalid_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_is_false
    - auto::size
    - Botan_Tests::generate_specific_false_signatures
    - test_is_true
    - Botan_Tests::Test::mutate_vec
    - size
    - Botan_Tests::Test::run_long_tests
    - test_failure
    - what
    - verify_message
    - test_note
    linkageType: ''
    returnType: void
    signature: "void check_invalid_signatures(Test::Result& result,\n                              Botan::PK_Verifier&
      verifier,\n                              const std::vector<uint8_t>& message,\n
      \                             const std::vector<uint8_t>& signature,\n                              Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pubkey.cpp:93,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:99,1
    - Dst: decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:102,1
    - Dst: test_bin_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:105,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:106,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:113,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:114,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:116,1
    - Dst: decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - ' result'
    - ' decryptor'
    - ' plaintext'
    - ' ciphertext'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::PK_Decryptor
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 119
    functionName: Botan_Tests::check_invalid_ciphertexts
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_bin_ne
    - Botan::fmt
    - decrypt
    - Botan_Tests::Test::mutate_vec
    - Botan_Tests::Test::run_long_tests
    - test_bin_eq
    - test_note
    linkageType: ''
    returnType: void
    signature: "void check_invalid_ciphertexts(Test::Result& result,\n                               Botan::PK_Decryptor&
      decryptor,\n                               const std::vector<uint8_t>& plaintext,\n
      \                              const std::vector<uint8_t>& ciphertext,\n                               Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey.cpp:122,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:125,1
    - Dst: Botan_Tests::PK_Test::default_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' vars'
    - ' pad_hdr'
    argTypes:
    - VarMap
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: Botan_Tests::PK_Test::choose_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::PK_Test::default_padding
    - get_opt_str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Test::choose_padding(const VarMap& vars, const std::string&
      pad_hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/test_pubkey.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan_Tests::PK_Test::possible_providers
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PK_Test::possible_providers(const std::string&
      /*params*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: Botan_Tests::PK_Signature_Generation_Test::test_rng
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: "std::unique_ptr<Botan::RandomNumberGenerator> PK_Signature_Generation_Test::test_rng(\n
      \  const std::vector<uint8_t>& nonce) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:138,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:139,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:140,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:143,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:144,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:145,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:149,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:153,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pubkey.cpp:155,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:155,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:159,1
    - Dst: std::unique_ptr::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:160,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:162,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:162,1
    - Dst: std::unique_ptr::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:162,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:164,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:165,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:169,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:169,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:174,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:180,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:180,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:182,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:182,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:184,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:184,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_pubkey.cpp:186,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:189,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:189,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:195,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:196,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:198,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::test_rng
      Src: /src/botan/src/tests/test_pubkey.cpp:199,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:199,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:200,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:202,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:202,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:206,1
    - Dst: std::unique_ptr::signature_length
      Src: /src/botan/src/tests/test_pubkey.cpp:206,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:213,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:216,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:217,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:218,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 225
    functionName: Botan_Tests::PK_Signature_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::BER_encode
    - std::make_unique<Botan::PK_Signer>
    - std::unique_ptr::public_key
    - std::unique_ptr::signature_length
    - algo_name
    - std::move
    - Botan_Tests::PK_Signature_Generation_Test::test_rng
    - has_key
    - Test::Result::test_failure
    - load_private_key
    - check_invalid_signatures
    - get_req_bin
    - std::vector::size
    - auto::supports_operation
    - Botan_Tests::PK_Signature_Generation_Test::rng
    - std::unique_ptr::supports_operation
    - Test::Result::test_bin_eq
    - choose_padding
    - what
    - Test::Result::test_is_true
    - get_req_str
    - Test::Result::test_sz_lte
    - std::vector::push_back
    - possible_providers
    - std::unique_ptr::verify_message
    - std::ostringstream::str
    - std::unique_ptr::sign_message
    - std::make_unique<Botan::PK_Verifier>
    - Botan::X509::load_key
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Signature_Generation_Test::run_one_test(const std::string&
      pad_hdr, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: Botan_Tests::PK_Signature_Verification_Test::sig_format
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::Signature_Format
    signature: Botan::Signature_Format PK_Signature_Verification_Test::sig_format()
      const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:232,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:233,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:234,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_pubkey.cpp:236,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:238,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:241,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:242,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:243,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:245,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:249,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:251,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:252,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:254,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:254,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:258,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::sig_format
      Src: /src/botan/src/tests/test_pubkey.cpp:258,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:265,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:268,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:270,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:271,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:271,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:274,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:277,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 283
    functionName: Botan_Tests::PK_Signature_Verification_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_opt_sz
    - load_public_key
    - std::string::empty
    - algo_name
    - Botan_Tests::PK_Signature_Verification_Test::sig_format
    - has_key
    - Test::Result::test_failure
    - get_req_bin
    - check_invalid_signatures
    - auto::supports_operation
    - Botan_Tests::PK_Signature_Verification_Test::rng
    - choose_padding
    - what
    - Test::Result::test_is_true
    - get_req_str
    - possible_providers
    - Botan_Tests::PK_Signature_Verification_Test::test_random_invalid_sigs
    - std::unique_ptr::verify_message
    - std::ostringstream::str
    - std::make_unique<Botan::PK_Verifier>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Signature_Verification_Test::run_one_test(const std::string&
      pad_hdr, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:286,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:287,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:288,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:290,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:292,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:294,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:294,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:299,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_pubkey.cpp:300,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:300,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 307
    functionName: Botan_Tests::PK_Signature_NonVerification_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - load_public_key
    - Test::Result::test_note
    - algo_name
    - possible_providers
    - std::unique_ptr::verify_message
    - choose_padding
    - Test::Result::test_is_false
    - std::make_unique<Botan::PK_Verifier>
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Signature_NonVerification_Test::run_one_test(const
      std::string& pad_hdr, const VarMap& vars)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/botan/src/tests/test_pubkey.cpp:313,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:317,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:319,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:321,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:321,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:326,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:327,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:329,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:331,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:331,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:336,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:336,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:337,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:339,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:341,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:342,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:342,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:345,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:345,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_pubkey.cpp:354,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:354,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_pubkey.cpp:355,1
    - Dst: auto::set_output_format
      Src: /src/botan/src/tests/test_pubkey.cpp:359,1
    - Dst: auto::set_input_format
      Src: /src/botan/src/tests/test_pubkey.cpp:360,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:362,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:362,1
    - Dst: auto::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:363,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:365,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:366,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:367,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:367,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:370,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:372,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:372,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 376
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::run
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
    - std::make_unique<Botan::PK_Signer>
    - auto::verify_message
    - Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
    - Botan_Tests::PK_Sign_Verify_DER_Test::rng
    - Test::Result::test_failure
    - check_invalid_signatures
    - key
    - Botan::PK_Signer::PK_Signer
    - Botan::PK_Verifier::PK_Verifier
    - auto::set_input_format
    - what
    - Test::Result::test_is_true
    - auto::sign_message
    - Test::Result::test_note
    - auto::public_key
    - Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
    - std::unique_ptr::verify_message
    - std::unique_ptr::sign_message
    - std::make_unique<Botan::PK_Verifier>
    - auto::set_output_format
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> PK_Sign_Verify_DER_Test::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::probe_provider_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:380,1
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/test_pubkey.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 382
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 1
    functionsReached:
    - Botan::probe_provider_private_key
    - Botan_Tests::Test::provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PK_Sign_Verify_DER_Test::possible_providers(const
      std::string& algo_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.cpp:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::test_rng
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: "std::unique_ptr<Botan::RandomNumberGenerator> PK_Encryption_Decryption_Test::test_rng(\n
      \  const std::vector<uint8_t>& nonce) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:390,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:391,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:392,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:394,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:394,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:396,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:398,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:399,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:401,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:405,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:405,1
    - Dst: std::make_unique<Botan::PK_Decryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:409,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:409,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:416,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:418,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:419,1
    - Dst: std::unique_ptr::plaintext_length
      Src: /src/botan/src/tests/test_pubkey.cpp:419,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:419,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:421,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:421,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:424,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_pubkey.cpp:425,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:425,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:426,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_pubkey.cpp:426,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:429,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:429,1
    - Dst: std::make_unique<Botan::PK_Encryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:433,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:433,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:439,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::test_rng
      Src: /src/botan/src/tests/test_pubkey.cpp:440,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:440,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:448,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:448,1
    - Dst: std::unique_ptr::maximum_input_size
      Src: /src/botan/src/tests/test_pubkey.cpp:448,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:450,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:450,1
    - Dst: std::unique_ptr::maximum_input_size
      Src: /src/botan/src/tests/test_pubkey.cpp:450,1
    - Dst: std::unique_ptr::encrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:453,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:453,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:455,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:456,1
    - Dst: std::unique_ptr::ciphertext_length
      Src: /src/botan/src/tests/test_pubkey.cpp:456,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:456,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:459,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:462,1
    - Dst: decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:462,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 468
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::maximum_input_size
    - Botan_Tests::PK_Encryption_Decryption_Test::test_rng
    - std::unique_ptr::decrypt
    - std::unique_ptr::encrypt
    - std::string::empty
    - algo_name
    - std::make_unique<Botan::PK_Decryptor_EME>
    - std::move
    - has_key
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - load_private_key
    - get_req_bin
    - std::make_unique<Botan::PK_Encryptor_EME>
    - std::vector::size
    - check_invalid_ciphertexts
    - auto::supports_operation
    - decrypt
    - Test::Result::test_bin_eq
    - Botan_Tests::PK_Encryption_Decryption_Test::rng
    - choose_padding
    - what
    - Test::Result::test_is_true
    - Test::Result::test_sz_lte
    - auto::public_key
    - std::vector::push_back
    - possible_providers
    - std::unique_ptr::ciphertext_length
    - std::unique_ptr::plaintext_length
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Encryption_Decryption_Test::run_one_test(const std::string&
      pad_hdr, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:471,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:472,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:473,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:475,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:475,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:477,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:479,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:479,1
    - Dst: std::make_unique<Botan::PK_Decryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:483,1
    - Dst: Botan_Tests::PK_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:483,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:490,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:492,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:492,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:495,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_pubkey.cpp:496,1
    - Dst: Botan_Tests::PK_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 500
    functionName: Botan_Tests::PK_Decryption_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - check_invalid_ciphertexts
    - std::string::empty
    - algo_name
    - std::make_unique<Botan::PK_Decryptor_EME>
    - possible_providers
    - Test::Result::test_failure
    - Test::Result::test_bin_eq
    - choose_padding
    - load_private_key
    - Botan_Tests::PK_Decryption_Test::rng
    - get_req_bin
    - what
    - std::unique_ptr::decrypt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Decryption_Test::run_one_test(const std::string& pad_hdr,
      const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:503,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:504,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:505,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:506,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:508,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:510,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:512,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:513,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:515,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:517,1
    - Dst: std::make_unique<Botan::PK_KEM_Encryptor>
      Src: /src/botan/src/tests/test_pubkey.cpp:521,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:523,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:527,1
    - Dst: std::unique_ptr::encrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:529,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:531,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:532,1
    - Dst: std::unique_ptr::encapsulated_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:533,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:535,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:536,1
    - Dst: std::unique_ptr::shared_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:536,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:538,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:538,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:539,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:539,1
    - Dst: std::make_unique<Botan::PK_KEM_Decryptor>
      Src: /src/botan/src/tests/test_pubkey.cpp:543,1
    - Dst: Botan_Tests::PK_KEM_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:543,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:545,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:545,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:549,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:550,1
    - Dst: std::unique_ptr::encapsulated_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:551,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:554,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:554,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:554,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:554,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:554,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:556,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:557,1
    - Dst: std::unique_ptr::shared_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:557,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 562
    functionName: Botan_Tests::PK_KEM_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::shared_key
    - Test::Result::test_sz_eq
    - std::unique_ptr::encrypt
    - std::unique_ptr::decrypt
    - algo_name
    - std::unique_ptr::shared_key_length
    - Botan::secure_vector::size
    - load_private_key
    - get_req_bin
    - std::vector::size
    - auto::supports_operation
    - Botan_Tests::PK_KEM_Test::rng
    - std::make_unique<Botan::PK_KEM_Decryptor>
    - get_opt_bin
    - Test::Result::test_bin_eq
    - what
    - Test::Result::test_is_true
    - get_req_str
    - Test::Result::test_note
    - auto::public_key
    - auto::encapsulated_shared_key
    - std::make_unique<Botan::PK_KEM_Encryptor>
    - std::vector::data
    - std::unique_ptr::encapsulated_key_length
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_KEM_Test::run_one_test(const std::string& /*header*/,
      const VarMap& vars)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:565,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:566,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::default_kdf
      Src: /src/botan/src/tests/test_pubkey.cpp:566,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:568,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey.cpp:568,1
    - Dst: load_our_key
      Src: /src/botan/src/tests/test_pubkey.cpp:570,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:572,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:573,1
    - Dst: load_their_key
      Src: /src/botan/src/tests/test_pubkey.cpp:575,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_pubkey.cpp:577,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:579,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:579,1
    - Dst: std::make_unique<Botan::PK_Key_Agreement>
      Src: /src/botan/src/tests/test_pubkey.cpp:583,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:583,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/tests/test_pubkey.cpp:588,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:589,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:592,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:592,1
    - Dst: std::unique_ptr::agreed_value_size
      Src: /src/botan/src/tests/test_pubkey.cpp:592,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 601
    functionName: Botan_Tests::PK_Key_Agreement_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_opt_sz
    - Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
    - Test::Result::test_sz_eq
    - get_opt_str
    - empty
    - auto::size
    - algo_name
    - Botan_Tests::PK_Key_Agreement_Test::rng
    - load_our_key
    - std::unique_ptr::derive_key
    - get_req_bin
    - Botan_Tests::PK_Key_Agreement_Test::default_kdf
    - auto::supports_operation
    - std::make_unique<Botan::PK_Key_Agreement>
    - Test::Result::test_bin_eq
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - std::unique_ptr::agreed_value_size
    - possible_providers
    - load_their_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Key_Agreement_Test::run_one_test(const std::string&
      header, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::probe_provider_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:605,1
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/test_pubkey.cpp:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 607
    functionName: Botan_Tests::PK_Key_Generation_Test::possible_providers
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::probe_provider_private_key
    - Botan_Tests::Test::provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PK_Key_Generation_Test::possible_providers(const
      std::string& algo_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:617,1
    - Dst: Botan_Tests::Test::random_password
      Src: /src/botan/src/tests/test_pubkey.cpp:619,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:623,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:623,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:625,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:627,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:629,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:629,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:631,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:631,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:636,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:636,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:638,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:640,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:642,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:642,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:644,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ' result'
    - ' key'
    - ' pbe_algo'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::Private_Key
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 646
    functionName: Botan_Tests::test_pbe_roundtrip
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_info
    - Botan::PKCS8::BER_encode
    - algo_name
    - Botan::PKCS8::PEM_encode
    - test_is_true
    - private_key_info
    - auto::algo_name
    - Botan_CLI::Timer::milliseconds
    - test_bin_eq
    - test_str_eq
    - test_failure
    - Botan_Tests::Test::random_password
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: "void test_pbe_roundtrip(Test::Result& result,\n                        const
      Botan::Private_Key& key,\n                        const std::string& pbe_algo,\n
      \                       Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:617,1
    - Dst: Botan_Tests::Test::random_password
      Src: /src/botan/src/tests/test_pubkey.cpp:619,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:623,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:623,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:625,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:627,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:629,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:629,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:631,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:631,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:636,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:636,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:638,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:640,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:642,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:642,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:644,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ' result'
    - ' key'
    - ' pbe_algo'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::Private_Key
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 646
    functionName: Botan_Tests::test_pbe_roundtrip
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_info
    - Botan::PKCS8::BER_encode
    - algo_name
    - Botan::PKCS8::PEM_encode
    - test_is_true
    - private_key_info
    - auto::algo_name
    - Botan_CLI::Timer::milliseconds
    - test_bin_eq
    - test_str_eq
    - test_failure
    - Botan_Tests::Test::random_password
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: "void test_pbe_roundtrip(Test::Result& result,\n                        const
      Botan::Private_Key& key,\n                        const std::string& pbe_algo,\n
      \                       Botan::RandomNumberGenerator& rng)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: keygen_params
      Src: /src/botan/src/tests/test_pubkey.cpp:654,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:655,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:656,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey.cpp:656,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:660,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:662,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pubkey.cpp:663,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:666,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:668,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:668,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:677,1
    - Dst: check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:677,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:677,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:680,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:681,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:681,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_pubkey.cpp:683,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pubkey.cpp:684,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:686,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_pubkey.cpp:687,1
    - Dst: object_identifier
      Src: /src/botan/src/tests/test_pubkey.cpp:688,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:693,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_pubkey.cpp:697,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:697,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_pubkey.cpp:698,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:698,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:700,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:702,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:702,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:702,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:704,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:705,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:705,1
    - Dst: auto::generate_another
      Src: /src/botan/src/tests/test_pubkey.cpp:711,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:711,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:712,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:714,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:714,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:714,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:715,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:715,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:715,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:716,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:717,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:717,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:718,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:719,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:720,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:721,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:721,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:721,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:723,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:724,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:731,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:732,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:732,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:734,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_pubkey.cpp:737,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_pubkey.cpp:738,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:739,1
    - Dst: auto*::public_value
      Src: /src/botan/src/tests/test_pubkey.cpp:739,1
    - Dst: public_key_from_raw
      Src: /src/botan/src/tests/test_pubkey.cpp:742,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:743,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:743,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:743,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:744,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:745,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:745,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_pubkey.cpp:748,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:748,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:749,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:749,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:751,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:751,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:757,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:758,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:760,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:761,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:761,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:761,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:764,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:764,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:764,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:767,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:767,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:772,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:774,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:776,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:777,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:777,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:777,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:778,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:778,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:780,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:780,1
    - Dst: private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:785,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:787,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:789,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:790,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:790,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:790,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:791,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:791,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:793,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:793,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:798,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:800,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:801,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:801,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:801,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:803,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:803,1
    - Dst: test_pbe_roundtrip
      Src: /src/botan/src/tests/test_pubkey.cpp:808,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:808,1
    - Dst: test_pbe_roundtrip
      Src: /src/botan/src/tests/test_pubkey.cpp:813,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:813,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:817,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:819,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 823
    functionName: Botan_Tests::PK_Key_Generation_Test::run
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_name
    - object_identifier
    - Botan::fmt
    - check_key
    - Botan::value_exists
    - Test::Result::test_sz_eq
    - Test::Result::test_sz_ne
    - Botan::create_private_key
    - estimated_strength
    - auto*::public_value
    - empty
    - auto::subject_public_key
    - test_pbe_roundtrip
    - Test::Result::test_success
    - auto::public_key_bits
    - Botan_Tests::PK_Key_Generation_Test::algo_name
    - std::string::empty
    - auto::size
    - public_key_from_raw
    - Test::Result::test_failure
    - Test::Result::test_bin_ne
    - Botan::X509::load_key
    - auto::raw_public_key_bits
    - auto::check_key
    - std::vector::empty
    - keygen_params
    - auto::supports_operation
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::private_key_bits
    - Test::Result::test_sz_gte
    - auto::generate_another
    - Test::Result::test_bin_eq
    - public_key
    - private_key_bits
    - what
    - Test::Result::require
    - Test::Result::test_is_true
    - Botan::X509::PEM_encode
    - Botan::PKCS8::load_key
    - auto::private_key_info
    - Test::Result::test_note
    - Botan_Tests::PK_Key_Generation_Test::rng
    - auto::public_key
    - std::vector::push_back
    - dynamic_cast<const Botan::PK_Key_Agreement_Key*>
    - Test::Result::test_str_eq
    - Botan_Tests::PK_Key_Generation_Test::possible_providers
    - Test::Result::test_sz_lt
    - private_key_info
    - auto::algo_name
    - auto::estimated_strength
    - auto::value
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> PK_Key_Generation_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:826,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pubkey.cpp:829,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:833,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:835,1
    - Dst: Botan_Tests::PK_Key_Validity_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:835,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 840
    functionName: Botan_Tests::PK_Key_Validity_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - load_public_key
    - algo_name
    - Test::Result::test_bool_eq
    - Botan_Tests::PK_Key_Validity_Test::rng
    - Test_Error
    - auto::check_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Key_Validity_Test::run_one_test(const std::string&
      header, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo'
    - ' test_src'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 844
    functionName: Botan_Tests::PK_Key_Generation_Stability_Test::PK_Key_Generation_Stability_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Key_Generation_Stability_Test::PK_Key_Generation_Stability_Test(const
      std::string& algo,\n                                                                   const
      std::string& test_src)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:847,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:848,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:849,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:850,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:851,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:855,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:856,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:861,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:863,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_pubkey.cpp:869,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:874,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pubkey.cpp:875,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.cpp:877,1
    - Dst: std::unique_ptr::add_entropy
      Src: /src/botan/src/tests/test_pubkey.cpp:881,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:881,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:881,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:884,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:884,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:886,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:887,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:890,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:890,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:893,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:896,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 899
    functionName: Botan_Tests::PK_Key_Generation_Stability_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::create_private_key
    - get_opt_str
    - std::string::empty
    - algo_name
    - std::make_unique<Botan::HMAC_DRBG>
    - get_req_bin
    - std::vector::size
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::unique_ptr::add_entropy
    - what
    - get_req_str
    - auto::private_key_info
    - Test::Result::test_note
    - std::vector::data
    - std::ostringstream::str
    - Test_Error
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Key_Generation_Stability_Test::run_one_test(const std::string&
      /*header*/, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 908
    functionName: Botan_Tests::PK_API_Sign_Test::PK_API_Sign_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_API_Sign_Test()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:912,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:913,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:914,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:915,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:919,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:922,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:925,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:929,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:929,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:936,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:936,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:942,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:944,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:945,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:946,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:947,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:948,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:948,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:949,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:950,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:951,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:953,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:954,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_pubkey.cpp:959,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:959,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:960,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:961,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:969,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:969,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:974,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:975,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_pubkey.cpp:977,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:977,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_pubkey.cpp:978,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:978,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:980,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:981,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:981,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:983,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:984,1
    - Dst: sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:986,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:986,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:987,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:987,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:988,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - ' algorithm'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 992
    functionName: Botan_Tests::PK_API_Sign_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::X509::BER_encode
    - std::make_unique<Botan::PK_Signer>
    - auto::stateful_operation
    - Botan::create_private_key
    - auto::reset
    - get_opt_str
    - auto::remaining_operations
    - Botan_Tests::PK_API_Sign_Test::rng
    - std::string::empty
    - auto::size
    - Test::Result::test_str_not_empty
    - std::make_pair
    - verify_message
    - auto::supports_operation
    - hash_function
    - auto::key_length
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_str
    - Test::Result::test_note
    - auto::public_key
    - sign_message
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - std::make_unique<Botan::PK_Verifier>
    - Botan::X509::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algorithm, const VarMap&
      vars) final
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' header'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1001
    functionName: Botan_Tests::PK_API_Sign_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test([[maybe_unused]] const std::string& header, const
      VarMap& /*vars*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1011
    functionName: Botan_Tests::PK_Key_Decoding_Test::PK_Key_Decoding_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Key_Decoding_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:1015,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:1020,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pubkey.cpp:1021,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:1023,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pubkey.cpp:1025,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:1025,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:1026,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:1028,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:1028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1033
    functionName: Botan_Tests::PK_Key_Decoding_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_note
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    - get_req_bin
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 908
    functionName: Botan_Tests::PK_API_Sign_Test::PK_API_Sign_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_API_Sign_Test()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:912,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:913,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:914,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:915,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:919,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:922,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:925,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:929,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:929,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:936,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:936,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:942,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:944,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:945,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:946,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:947,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:948,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:948,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:949,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:950,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:951,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:953,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:954,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_pubkey.cpp:959,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:959,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:960,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:961,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:969,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:969,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:974,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:975,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_pubkey.cpp:977,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:977,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_pubkey.cpp:978,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:978,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:980,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:981,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:981,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:983,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:984,1
    - Dst: sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:986,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:986,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:987,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:987,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:988,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - ' algorithm'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 992
    functionName: Botan_Tests::PK_API_Sign_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::X509::BER_encode
    - std::make_unique<Botan::PK_Signer>
    - auto::stateful_operation
    - Botan::create_private_key
    - auto::reset
    - get_opt_str
    - auto::remaining_operations
    - Botan_Tests::PK_API_Sign_Test::rng
    - std::string::empty
    - auto::size
    - Test::Result::test_str_not_empty
    - std::make_pair
    - verify_message
    - auto::supports_operation
    - hash_function
    - auto::key_length
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_str
    - Test::Result::test_note
    - auto::public_key
    - sign_message
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - std::make_unique<Botan::PK_Verifier>
    - Botan::X509::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algorithm, const VarMap&
      vars) final
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' header'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1001
    functionName: Botan_Tests::PK_API_Sign_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test([[maybe_unused]] const std::string& header, const
      VarMap& /*vars*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1011
    functionName: Botan_Tests::PK_Key_Decoding_Test::PK_Key_Decoding_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Key_Decoding_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:1015,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:1020,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pubkey.cpp:1021,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:1023,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pubkey.cpp:1025,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:1025,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:1026,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:1028,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:1028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1033
    functionName: Botan_Tests::PK_Key_Decoding_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_note
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    - get_req_bin
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:37,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:38,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:39,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:39,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_pubkey.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_pubkey.cpp:42,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_pubkey.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - correct_signature
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::generate_specific_false_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - std::vector<uint8_t>
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: std::vector<std::vector<uint8_t>> generate_specific_false_signatures(const
      std::span<const uint8_t> correct_signature)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pubkey.cpp:55,1
    - Dst: size
      Src: /src/botan/src/tests/test_pubkey.cpp:57,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_pubkey.cpp:58,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:58,1
    - Dst: Botan_Tests::generate_specific_false_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:64,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:67,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_pubkey.cpp:71,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:71,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:72,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:75,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:76,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:78,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:79,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - ' result'
    - ' verifier'
    - ' message'
    - ' signature'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::PK_Verifier
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 83
    functionName: Botan_Tests::check_invalid_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_is_false
    - auto::size
    - Botan_Tests::generate_specific_false_signatures
    - test_is_true
    - Botan_Tests::Test::mutate_vec
    - size
    - Botan_Tests::Test::run_long_tests
    - test_failure
    - what
    - verify_message
    - test_note
    linkageType: ''
    returnType: void
    signature: "void check_invalid_signatures(Test::Result& result,\n                              Botan::PK_Verifier&
      verifier,\n                              const std::vector<uint8_t>& message,\n
      \                             const std::vector<uint8_t>& signature,\n                              Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:37,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:38,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:39,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:39,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_pubkey.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_pubkey.cpp:42,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_pubkey.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - correct_signature
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::generate_specific_false_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 3
    functionsReached:
    - std::vector::push_back
    - std::vector<uint8_t>
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: std::vector<std::vector<uint8_t>> generate_specific_false_signatures(const
      std::span<const uint8_t> correct_signature)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pubkey.cpp:55,1
    - Dst: size
      Src: /src/botan/src/tests/test_pubkey.cpp:57,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_pubkey.cpp:58,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:58,1
    - Dst: Botan_Tests::generate_specific_false_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:64,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:67,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_pubkey.cpp:71,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:71,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:72,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:75,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:76,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:78,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:79,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - ' result'
    - ' verifier'
    - ' message'
    - ' signature'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::PK_Verifier
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 83
    functionName: Botan_Tests::check_invalid_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_is_false
    - auto::size
    - Botan_Tests::generate_specific_false_signatures
    - test_is_true
    - Botan_Tests::Test::mutate_vec
    - size
    - Botan_Tests::Test::run_long_tests
    - test_failure
    - what
    - verify_message
    - test_note
    linkageType: ''
    returnType: void
    signature: "void check_invalid_signatures(Test::Result& result,\n                              Botan::PK_Verifier&
      verifier,\n                              const std::vector<uint8_t>& message,\n
      \                             const std::vector<uint8_t>& signature,\n                              Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pubkey.cpp:93,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:99,1
    - Dst: decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:102,1
    - Dst: test_bin_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:105,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:106,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:113,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:114,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:116,1
    - Dst: decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - ' result'
    - ' decryptor'
    - ' plaintext'
    - ' ciphertext'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::PK_Decryptor
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 119
    functionName: Botan_Tests::check_invalid_ciphertexts
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_bin_ne
    - Botan::fmt
    - decrypt
    - Botan_Tests::Test::mutate_vec
    - Botan_Tests::Test::run_long_tests
    - test_bin_eq
    - test_note
    linkageType: ''
    returnType: void
    signature: "void check_invalid_ciphertexts(Test::Result& result,\n                               Botan::PK_Decryptor&
      decryptor,\n                               const std::vector<uint8_t>& plaintext,\n
      \                              const std::vector<uint8_t>& ciphertext,\n                               Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey.cpp:122,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:125,1
    - Dst: Botan_Tests::PK_Test::default_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' vars'
    - ' pad_hdr'
    argTypes:
    - VarMap
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: Botan_Tests::PK_Test::choose_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::PK_Test::default_padding
    - get_opt_str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Test::choose_padding(const VarMap& vars, const std::string&
      pad_hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/test_pubkey.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan_Tests::PK_Test::possible_providers
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PK_Test::possible_providers(const std::string&
      /*params*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: Botan_Tests::PK_Signature_Generation_Test::test_rng
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: "std::unique_ptr<Botan::RandomNumberGenerator> PK_Signature_Generation_Test::test_rng(\n
      \  const std::vector<uint8_t>& nonce) const"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:138,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:139,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:140,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:143,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:144,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:145,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:149,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:153,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pubkey.cpp:155,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:155,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:159,1
    - Dst: std::unique_ptr::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:160,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:162,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:162,1
    - Dst: std::unique_ptr::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:162,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:164,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:165,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:169,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:169,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:174,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:180,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:180,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:182,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:182,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:184,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:184,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_pubkey.cpp:186,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:189,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:189,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:195,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:196,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:198,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::test_rng
      Src: /src/botan/src/tests/test_pubkey.cpp:199,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:199,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:200,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:202,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:202,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:206,1
    - Dst: std::unique_ptr::signature_length
      Src: /src/botan/src/tests/test_pubkey.cpp:206,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:213,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:216,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:217,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:218,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 225
    functionName: Botan_Tests::PK_Signature_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::BER_encode
    - std::make_unique<Botan::PK_Signer>
    - std::unique_ptr::public_key
    - std::unique_ptr::signature_length
    - algo_name
    - std::move
    - Botan_Tests::PK_Signature_Generation_Test::test_rng
    - has_key
    - Test::Result::test_failure
    - load_private_key
    - check_invalid_signatures
    - get_req_bin
    - std::vector::size
    - auto::supports_operation
    - Botan_Tests::PK_Signature_Generation_Test::rng
    - std::unique_ptr::supports_operation
    - Test::Result::test_bin_eq
    - choose_padding
    - what
    - Test::Result::test_is_true
    - get_req_str
    - Test::Result::test_sz_lte
    - std::vector::push_back
    - possible_providers
    - std::unique_ptr::verify_message
    - std::ostringstream::str
    - std::unique_ptr::sign_message
    - std::make_unique<Botan::PK_Verifier>
    - Botan::X509::load_key
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Signature_Generation_Test::run_one_test(const std::string&
      pad_hdr, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: Botan_Tests::PK_Signature_Verification_Test::sig_format
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Botan::Signature_Format
    signature: Botan::Signature_Format PK_Signature_Verification_Test::sig_format()
      const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:232,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:233,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:234,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_pubkey.cpp:236,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:238,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:241,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:242,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:243,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:245,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:249,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:251,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:252,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:254,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:254,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:258,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::sig_format
      Src: /src/botan/src/tests/test_pubkey.cpp:258,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:265,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:268,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:270,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:271,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:271,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:274,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:277,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 283
    functionName: Botan_Tests::PK_Signature_Verification_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_opt_sz
    - load_public_key
    - std::string::empty
    - algo_name
    - Botan_Tests::PK_Signature_Verification_Test::sig_format
    - has_key
    - Test::Result::test_failure
    - get_req_bin
    - check_invalid_signatures
    - auto::supports_operation
    - Botan_Tests::PK_Signature_Verification_Test::rng
    - choose_padding
    - what
    - Test::Result::test_is_true
    - get_req_str
    - possible_providers
    - Botan_Tests::PK_Signature_Verification_Test::test_random_invalid_sigs
    - std::unique_ptr::verify_message
    - std::ostringstream::str
    - std::make_unique<Botan::PK_Verifier>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Signature_Verification_Test::run_one_test(const std::string&
      pad_hdr, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:286,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:287,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:288,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:290,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:292,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:294,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:294,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:299,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_pubkey.cpp:300,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:300,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 307
    functionName: Botan_Tests::PK_Signature_NonVerification_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - load_public_key
    - Test::Result::test_note
    - algo_name
    - possible_providers
    - std::unique_ptr::verify_message
    - choose_padding
    - Test::Result::test_is_false
    - std::make_unique<Botan::PK_Verifier>
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Signature_NonVerification_Test::run_one_test(const
      std::string& pad_hdr, const VarMap& vars)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/botan/src/tests/test_pubkey.cpp:313,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:317,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:319,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:321,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:321,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:326,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:327,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:329,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:331,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:331,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:336,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:336,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:337,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:339,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:341,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:342,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:342,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:345,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:345,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_pubkey.cpp:354,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:354,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_pubkey.cpp:355,1
    - Dst: auto::set_output_format
      Src: /src/botan/src/tests/test_pubkey.cpp:359,1
    - Dst: auto::set_input_format
      Src: /src/botan/src/tests/test_pubkey.cpp:360,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:362,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:362,1
    - Dst: auto::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:363,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:365,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:366,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:367,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:367,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:370,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:372,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:372,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 376
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::run
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
    - std::make_unique<Botan::PK_Signer>
    - auto::verify_message
    - Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
    - Botan_Tests::PK_Sign_Verify_DER_Test::rng
    - Test::Result::test_failure
    - check_invalid_signatures
    - key
    - Botan::PK_Signer::PK_Signer
    - Botan::PK_Verifier::PK_Verifier
    - auto::set_input_format
    - what
    - Test::Result::test_is_true
    - auto::sign_message
    - Test::Result::test_note
    - auto::public_key
    - Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
    - std::unique_ptr::verify_message
    - std::unique_ptr::sign_message
    - std::make_unique<Botan::PK_Verifier>
    - auto::set_output_format
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> PK_Sign_Verify_DER_Test::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::probe_provider_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:380,1
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/test_pubkey.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 382
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 2
    functionsReached:
    - Botan::probe_provider_private_key
    - Botan_Tests::Test::provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PK_Sign_Verify_DER_Test::possible_providers(const
      std::string& algo_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.cpp:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::test_rng
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: "std::unique_ptr<Botan::RandomNumberGenerator> PK_Encryption_Decryption_Test::test_rng(\n
      \  const std::vector<uint8_t>& nonce) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:390,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:391,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:392,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:394,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:394,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:396,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:398,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:399,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:401,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:405,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:405,1
    - Dst: std::make_unique<Botan::PK_Decryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:409,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:409,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:416,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:418,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:419,1
    - Dst: std::unique_ptr::plaintext_length
      Src: /src/botan/src/tests/test_pubkey.cpp:419,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:419,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:421,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:421,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:424,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_pubkey.cpp:425,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:425,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:426,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_pubkey.cpp:426,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:429,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:429,1
    - Dst: std::make_unique<Botan::PK_Encryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:433,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:433,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:439,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::test_rng
      Src: /src/botan/src/tests/test_pubkey.cpp:440,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:440,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:448,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:448,1
    - Dst: std::unique_ptr::maximum_input_size
      Src: /src/botan/src/tests/test_pubkey.cpp:448,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:450,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:450,1
    - Dst: std::unique_ptr::maximum_input_size
      Src: /src/botan/src/tests/test_pubkey.cpp:450,1
    - Dst: std::unique_ptr::encrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:453,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:453,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:455,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:456,1
    - Dst: std::unique_ptr::ciphertext_length
      Src: /src/botan/src/tests/test_pubkey.cpp:456,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:456,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:459,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:462,1
    - Dst: decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:462,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 468
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::maximum_input_size
    - Botan_Tests::PK_Encryption_Decryption_Test::test_rng
    - std::unique_ptr::decrypt
    - std::unique_ptr::encrypt
    - std::string::empty
    - algo_name
    - std::make_unique<Botan::PK_Decryptor_EME>
    - std::move
    - has_key
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - load_private_key
    - get_req_bin
    - std::make_unique<Botan::PK_Encryptor_EME>
    - std::vector::size
    - check_invalid_ciphertexts
    - auto::supports_operation
    - decrypt
    - Test::Result::test_bin_eq
    - Botan_Tests::PK_Encryption_Decryption_Test::rng
    - choose_padding
    - what
    - Test::Result::test_is_true
    - Test::Result::test_sz_lte
    - auto::public_key
    - std::vector::push_back
    - possible_providers
    - std::unique_ptr::ciphertext_length
    - std::unique_ptr::plaintext_length
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Encryption_Decryption_Test::run_one_test(const std::string&
      pad_hdr, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:471,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:472,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:473,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:475,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:475,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:477,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:479,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:479,1
    - Dst: std::make_unique<Botan::PK_Decryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:483,1
    - Dst: Botan_Tests::PK_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:483,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:490,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:492,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:492,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:495,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_pubkey.cpp:496,1
    - Dst: Botan_Tests::PK_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 500
    functionName: Botan_Tests::PK_Decryption_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - check_invalid_ciphertexts
    - std::string::empty
    - algo_name
    - std::make_unique<Botan::PK_Decryptor_EME>
    - possible_providers
    - Test::Result::test_failure
    - Test::Result::test_bin_eq
    - choose_padding
    - load_private_key
    - Botan_Tests::PK_Decryption_Test::rng
    - get_req_bin
    - what
    - std::unique_ptr::decrypt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Decryption_Test::run_one_test(const std::string& pad_hdr,
      const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:503,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:504,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:505,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:506,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:508,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:510,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:512,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:513,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:515,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:517,1
    - Dst: std::make_unique<Botan::PK_KEM_Encryptor>
      Src: /src/botan/src/tests/test_pubkey.cpp:521,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:523,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:527,1
    - Dst: std::unique_ptr::encrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:529,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:531,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:532,1
    - Dst: std::unique_ptr::encapsulated_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:533,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:535,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:536,1
    - Dst: std::unique_ptr::shared_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:536,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:538,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:538,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:539,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:539,1
    - Dst: std::make_unique<Botan::PK_KEM_Decryptor>
      Src: /src/botan/src/tests/test_pubkey.cpp:543,1
    - Dst: Botan_Tests::PK_KEM_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:543,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:545,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:545,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:549,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:550,1
    - Dst: std::unique_ptr::encapsulated_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:551,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:554,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:554,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:554,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:554,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:554,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:556,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:557,1
    - Dst: std::unique_ptr::shared_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:557,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 562
    functionName: Botan_Tests::PK_KEM_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::shared_key
    - Test::Result::test_sz_eq
    - std::unique_ptr::encrypt
    - std::unique_ptr::decrypt
    - algo_name
    - std::unique_ptr::shared_key_length
    - Botan::secure_vector::size
    - load_private_key
    - get_req_bin
    - std::vector::size
    - auto::supports_operation
    - Botan_Tests::PK_KEM_Test::rng
    - std::make_unique<Botan::PK_KEM_Decryptor>
    - get_opt_bin
    - Test::Result::test_bin_eq
    - what
    - Test::Result::test_is_true
    - get_req_str
    - Test::Result::test_note
    - auto::public_key
    - auto::encapsulated_shared_key
    - std::make_unique<Botan::PK_KEM_Encryptor>
    - std::vector::data
    - std::unique_ptr::encapsulated_key_length
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_KEM_Test::run_one_test(const std::string& /*header*/,
      const VarMap& vars)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:565,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:566,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::default_kdf
      Src: /src/botan/src/tests/test_pubkey.cpp:566,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:568,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey.cpp:568,1
    - Dst: load_our_key
      Src: /src/botan/src/tests/test_pubkey.cpp:570,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:572,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:573,1
    - Dst: load_their_key
      Src: /src/botan/src/tests/test_pubkey.cpp:575,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_pubkey.cpp:577,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:579,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:579,1
    - Dst: std::make_unique<Botan::PK_Key_Agreement>
      Src: /src/botan/src/tests/test_pubkey.cpp:583,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:583,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/tests/test_pubkey.cpp:588,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:589,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:592,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:592,1
    - Dst: std::unique_ptr::agreed_value_size
      Src: /src/botan/src/tests/test_pubkey.cpp:592,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 601
    functionName: Botan_Tests::PK_Key_Agreement_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_opt_sz
    - Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
    - Test::Result::test_sz_eq
    - get_opt_str
    - empty
    - auto::size
    - algo_name
    - Botan_Tests::PK_Key_Agreement_Test::rng
    - load_our_key
    - std::unique_ptr::derive_key
    - get_req_bin
    - Botan_Tests::PK_Key_Agreement_Test::default_kdf
    - auto::supports_operation
    - std::make_unique<Botan::PK_Key_Agreement>
    - Test::Result::test_bin_eq
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - std::unique_ptr::agreed_value_size
    - possible_providers
    - load_their_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Key_Agreement_Test::run_one_test(const std::string&
      header, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::probe_provider_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:605,1
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/test_pubkey.cpp:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 607
    functionName: Botan_Tests::PK_Key_Generation_Test::possible_providers
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 1
    functionsReached:
    - Botan::probe_provider_private_key
    - Botan_Tests::Test::provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PK_Key_Generation_Test::possible_providers(const
      std::string& algo_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:617,1
    - Dst: Botan_Tests::Test::random_password
      Src: /src/botan/src/tests/test_pubkey.cpp:619,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:623,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:623,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:625,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:627,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:629,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:629,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:631,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:631,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:636,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:636,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:638,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:640,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:642,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:642,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:644,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ' result'
    - ' key'
    - ' pbe_algo'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::Private_Key
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 646
    functionName: Botan_Tests::test_pbe_roundtrip
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_info
    - Botan::PKCS8::BER_encode
    - algo_name
    - Botan::PKCS8::PEM_encode
    - test_is_true
    - private_key_info
    - auto::algo_name
    - Botan_CLI::Timer::milliseconds
    - test_bin_eq
    - test_str_eq
    - test_failure
    - Botan_Tests::Test::random_password
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: "void test_pbe_roundtrip(Test::Result& result,\n                        const
      Botan::Private_Key& key,\n                        const std::string& pbe_algo,\n
      \                       Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:617,1
    - Dst: Botan_Tests::Test::random_password
      Src: /src/botan/src/tests/test_pubkey.cpp:619,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:623,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:623,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:625,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:627,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:628,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:629,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:629,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:631,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:631,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:636,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:636,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:638,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:640,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:642,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:642,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:644,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ' result'
    - ' key'
    - ' pbe_algo'
    - ' rng'
    argTypes:
    - Test::Result
    - Botan::Private_Key
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 646
    functionName: Botan_Tests::test_pbe_roundtrip
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_info
    - Botan::PKCS8::BER_encode
    - algo_name
    - Botan::PKCS8::PEM_encode
    - test_is_true
    - private_key_info
    - auto::algo_name
    - Botan_CLI::Timer::milliseconds
    - test_bin_eq
    - test_str_eq
    - test_failure
    - Botan_Tests::Test::random_password
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: "void test_pbe_roundtrip(Test::Result& result,\n                        const
      Botan::Private_Key& key,\n                        const std::string& pbe_algo,\n
      \                       Botan::RandomNumberGenerator& rng)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: keygen_params
      Src: /src/botan/src/tests/test_pubkey.cpp:654,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:655,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:656,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey.cpp:656,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:660,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:662,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pubkey.cpp:663,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:666,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:668,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:668,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:677,1
    - Dst: check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:677,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:677,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:680,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:681,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:681,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_pubkey.cpp:683,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pubkey.cpp:684,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:686,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_pubkey.cpp:687,1
    - Dst: object_identifier
      Src: /src/botan/src/tests/test_pubkey.cpp:688,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:693,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_pubkey.cpp:697,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:697,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_pubkey.cpp:698,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:698,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:700,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:702,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:702,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:702,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:704,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:705,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:705,1
    - Dst: auto::generate_another
      Src: /src/botan/src/tests/test_pubkey.cpp:711,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:711,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:712,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:714,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:714,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:714,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:715,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:715,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:715,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:716,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:717,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:717,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:718,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:719,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:720,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:721,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:721,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:721,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:723,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:724,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:731,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:732,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:732,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:734,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_pubkey.cpp:737,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_pubkey.cpp:738,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:739,1
    - Dst: auto*::public_value
      Src: /src/botan/src/tests/test_pubkey.cpp:739,1
    - Dst: public_key_from_raw
      Src: /src/botan/src/tests/test_pubkey.cpp:742,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:743,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:743,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:743,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:744,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:745,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:745,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_pubkey.cpp:748,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:748,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:749,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:749,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:751,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:751,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:757,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:758,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:760,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:761,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:761,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:761,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:764,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:764,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:764,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:767,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:767,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:772,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:774,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:776,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:777,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:777,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:777,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:778,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:778,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:780,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:780,1
    - Dst: private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:785,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:787,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:789,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:790,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:790,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:790,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:791,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:791,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:793,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:793,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:798,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:800,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:801,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:801,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:801,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:803,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:803,1
    - Dst: test_pbe_roundtrip
      Src: /src/botan/src/tests/test_pubkey.cpp:808,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:808,1
    - Dst: test_pbe_roundtrip
      Src: /src/botan/src/tests/test_pubkey.cpp:813,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:813,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:817,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:819,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 823
    functionName: Botan_Tests::PK_Key_Generation_Test::run
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_name
    - object_identifier
    - Botan::fmt
    - check_key
    - Botan::value_exists
    - Test::Result::test_sz_eq
    - Test::Result::test_sz_ne
    - Botan::create_private_key
    - estimated_strength
    - auto*::public_value
    - empty
    - auto::subject_public_key
    - test_pbe_roundtrip
    - Test::Result::test_success
    - auto::public_key_bits
    - Botan_Tests::PK_Key_Generation_Test::algo_name
    - std::string::empty
    - auto::size
    - public_key_from_raw
    - Test::Result::test_failure
    - Test::Result::test_bin_ne
    - Botan::X509::load_key
    - auto::raw_public_key_bits
    - auto::check_key
    - std::vector::empty
    - keygen_params
    - auto::supports_operation
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::private_key_bits
    - Test::Result::test_sz_gte
    - auto::generate_another
    - Test::Result::test_bin_eq
    - public_key
    - private_key_bits
    - what
    - Test::Result::require
    - Test::Result::test_is_true
    - Botan::X509::PEM_encode
    - Botan::PKCS8::load_key
    - auto::private_key_info
    - Test::Result::test_note
    - Botan_Tests::PK_Key_Generation_Test::rng
    - auto::public_key
    - std::vector::push_back
    - dynamic_cast<const Botan::PK_Key_Agreement_Key*>
    - Test::Result::test_str_eq
    - Botan_Tests::PK_Key_Generation_Test::possible_providers
    - Test::Result::test_sz_lt
    - private_key_info
    - auto::algo_name
    - auto::estimated_strength
    - auto::value
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> PK_Key_Generation_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:826,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pubkey.cpp:829,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:833,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:835,1
    - Dst: Botan_Tests::PK_Key_Validity_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:835,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 840
    functionName: Botan_Tests::PK_Key_Validity_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - load_public_key
    - algo_name
    - Test::Result::test_bool_eq
    - Botan_Tests::PK_Key_Validity_Test::rng
    - Test_Error
    - auto::check_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Key_Validity_Test::run_one_test(const std::string&
      header, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo'
    - ' test_src'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 844
    functionName: Botan_Tests::PK_Key_Generation_Stability_Test::PK_Key_Generation_Stability_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK_Key_Generation_Stability_Test::PK_Key_Generation_Stability_Test(const
      std::string& algo,\n                                                                   const
      std::string& test_src)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:847,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:848,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:849,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:850,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:851,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:855,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:856,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:861,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:863,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_pubkey.cpp:869,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:874,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pubkey.cpp:875,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.cpp:877,1
    - Dst: std::unique_ptr::add_entropy
      Src: /src/botan/src/tests/test_pubkey.cpp:881,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:881,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:881,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:884,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:884,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:886,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:887,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:890,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:890,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:893,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:896,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 899
    functionName: Botan_Tests::PK_Key_Generation_Stability_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::create_private_key
    - get_opt_str
    - std::string::empty
    - algo_name
    - std::make_unique<Botan::HMAC_DRBG>
    - get_req_bin
    - std::vector::size
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_bin_eq
    - std::unique_ptr::add_entropy
    - what
    - get_req_str
    - auto::private_key_info
    - Test::Result::test_note
    - std::vector::data
    - std::ostringstream::str
    - Test_Error
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result PK_Key_Generation_Stability_Test::run_one_test(const std::string&
      /*header*/, const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 908
    functionName: Botan_Tests::PK_API_Sign_Test::PK_API_Sign_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_API_Sign_Test()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:912,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:913,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:914,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:915,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:919,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:922,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:925,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:929,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:929,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:936,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:936,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:942,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:944,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:945,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:946,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:947,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:948,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:948,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:949,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:950,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:951,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:953,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:954,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_pubkey.cpp:959,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:959,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:960,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:961,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:969,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:969,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:974,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:975,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_pubkey.cpp:977,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:977,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_pubkey.cpp:978,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:978,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:980,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:981,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:981,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:983,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:984,1
    - Dst: sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:986,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:986,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:987,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:987,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:988,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - ' algorithm'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 992
    functionName: Botan_Tests::PK_API_Sign_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::X509::BER_encode
    - std::make_unique<Botan::PK_Signer>
    - auto::stateful_operation
    - Botan::create_private_key
    - auto::reset
    - get_opt_str
    - auto::remaining_operations
    - Botan_Tests::PK_API_Sign_Test::rng
    - std::string::empty
    - auto::size
    - Test::Result::test_str_not_empty
    - std::make_pair
    - verify_message
    - auto::supports_operation
    - hash_function
    - auto::key_length
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_str
    - Test::Result::test_note
    - auto::public_key
    - sign_message
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - std::make_unique<Botan::PK_Verifier>
    - Botan::X509::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algorithm, const VarMap&
      vars) final
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' header'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1001
    functionName: Botan_Tests::PK_API_Sign_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test([[maybe_unused]] const std::string& header, const
      VarMap& /*vars*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1011
    functionName: Botan_Tests::PK_Key_Decoding_Test::PK_Key_Decoding_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Key_Decoding_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:1015,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:1020,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pubkey.cpp:1021,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:1023,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pubkey.cpp:1025,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:1025,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:1026,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:1028,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:1028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1033
    functionName: Botan_Tests::PK_Key_Decoding_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_note
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    - get_req_bin
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 908
    functionName: Botan_Tests::PK_API_Sign_Test::PK_API_Sign_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_API_Sign_Test()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:912,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:913,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:914,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:915,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:919,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:922,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:925,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:929,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:929,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:936,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:936,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:941,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:942,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:944,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:945,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:946,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:947,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:948,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:948,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:949,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:950,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:951,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:953,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:954,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_pubkey.cpp:959,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:959,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:960,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:961,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:969,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:969,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:974,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:975,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_pubkey.cpp:977,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:977,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_pubkey.cpp:978,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:978,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:980,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:981,1
    - Dst: hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:981,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:983,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:984,1
    - Dst: sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:986,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:986,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:987,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:987,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey.cpp:988,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - ' algorithm'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 992
    functionName: Botan_Tests::PK_API_Sign_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::X509::BER_encode
    - std::make_unique<Botan::PK_Signer>
    - auto::stateful_operation
    - Botan::create_private_key
    - auto::reset
    - get_opt_str
    - auto::remaining_operations
    - Botan_Tests::PK_API_Sign_Test::rng
    - std::string::empty
    - auto::size
    - Test::Result::test_str_not_empty
    - std::make_pair
    - verify_message
    - auto::supports_operation
    - hash_function
    - auto::key_length
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_str
    - Test::Result::test_note
    - auto::public_key
    - sign_message
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - std::make_unique<Botan::PK_Verifier>
    - Botan::X509::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algorithm, const VarMap&
      vars) final
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' header'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1001
    functionName: Botan_Tests::PK_API_Sign_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test([[maybe_unused]] const std::string& header, const
      VarMap& /*vars*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1011
    functionName: Botan_Tests::PK_Key_Decoding_Test::PK_Key_Decoding_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Key_Decoding_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:1015,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:1020,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pubkey.cpp:1021,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:1023,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pubkey.cpp:1025,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:1025,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:1026,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:1028,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:1028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1033
    functionName: Botan_Tests::PK_Key_Decoding_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_note
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    - get_req_bin
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::KDF_KAT_Tests::KDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KDF_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_kdf.cpp:30,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_kdf.cpp:33,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_kdf.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:38,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_kdf.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:40,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_kdf.cpp:42,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:42,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:45,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_kdf.cpp:51,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' kdf_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 56
    functionName: Botan_Tests::KDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Test::Result::test_is_true
    - auto::get
    - auto::new_object
    - Test::Result::test_str_eq
    - std::vector::size
    - get_opt_bin
    - auto::name
    - Test::Result::test_bin_eq
    - auto::derive_key
    - Botan::KDF::create
    - auto::end
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& kdf_name, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::HKDF_Expand_Label_Tests::HKDF_Expand_Label_Tests
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HKDF_Expand_Label_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:71,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:72,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_kdf.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:74,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_kdf.cpp:76,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_kdf.cpp:79,1
    - Dst: Botan::hkdf_expand_label
      Src: /src/botan/src/tests/test_kdf.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' hash_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 89
    functionName: Botan_Tests::HKDF_Expand_Label_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_note
    - Botan::hkdf_expand_label
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_name, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::KDF_KAT_Tests::KDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KDF_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_kdf.cpp:30,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_kdf.cpp:33,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_kdf.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:38,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_kdf.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:40,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_kdf.cpp:42,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:42,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:45,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_kdf.cpp:51,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' kdf_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 56
    functionName: Botan_Tests::KDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Test::Result::test_is_true
    - auto::get
    - auto::new_object
    - Test::Result::test_str_eq
    - std::vector::size
    - get_opt_bin
    - auto::name
    - Test::Result::test_bin_eq
    - auto::derive_key
    - Botan::KDF::create
    - auto::end
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& kdf_name, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::HKDF_Expand_Label_Tests::HKDF_Expand_Label_Tests
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HKDF_Expand_Label_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:71,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:72,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_kdf.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:74,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_kdf.cpp:76,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_kdf.cpp:79,1
    - Dst: Botan::hkdf_expand_label
      Src: /src/botan/src/tests/test_kdf.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' hash_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 89
    functionName: Botan_Tests::HKDF_Expand_Label_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_note
    - Botan::hkdf_expand_label
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_name, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::KDF_KAT_Tests::KDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KDF_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_kdf.cpp:30,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_kdf.cpp:33,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_kdf.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:38,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_kdf.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:40,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_kdf.cpp:42,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:42,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:45,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_kdf.cpp:51,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' kdf_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 56
    functionName: Botan_Tests::KDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Test::Result::test_is_true
    - auto::get
    - auto::new_object
    - Test::Result::test_str_eq
    - std::vector::size
    - get_opt_bin
    - auto::name
    - Test::Result::test_bin_eq
    - auto::derive_key
    - Botan::KDF::create
    - auto::end
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& kdf_name, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::HKDF_Expand_Label_Tests::HKDF_Expand_Label_Tests
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HKDF_Expand_Label_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:71,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:72,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_kdf.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:74,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_kdf.cpp:76,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_kdf.cpp:79,1
    - Dst: Botan::hkdf_expand_label
      Src: /src/botan/src/tests/test_kdf.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' hash_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 89
    functionName: Botan_Tests::HKDF_Expand_Label_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_note
    - Botan::hkdf_expand_label
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_name, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::KDF_KAT_Tests::KDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KDF_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_kdf.cpp:30,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_kdf.cpp:33,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_kdf.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:38,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_kdf.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:40,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_kdf.cpp:42,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:42,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:45,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_kdf.cpp:47,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_kdf.cpp:51,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_kdf.cpp:52,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_kdf.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' kdf_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 56
    functionName: Botan_Tests::KDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Test::Result::test_is_true
    - auto::get
    - auto::new_object
    - Test::Result::test_str_eq
    - std::vector::size
    - get_opt_bin
    - auto::name
    - Test::Result::test_bin_eq
    - auto::derive_key
    - Botan::KDF::create
    - auto::end
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& kdf_name, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::HKDF_Expand_Label_Tests::HKDF_Expand_Label_Tests
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HKDF_Expand_Label_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:71,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:72,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_kdf.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kdf.cpp:74,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_kdf.cpp:76,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_kdf.cpp:79,1
    - Dst: Botan::hkdf_expand_label
      Src: /src/botan/src/tests/test_kdf.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_kdf.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kdf.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' hash_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 89
    functionName: Botan_Tests::HKDF_Expand_Label_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_kdf.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_note
    - Botan::hkdf_expand_label
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash_name, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan_Tests::TPM_Tests::pin_cb
    functionSourceFile: /src/botan/src/tests/test_tpm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string pin_cb(const std::string&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::reset
      Src: /src/botan/src/tests/test_tpm.cpp:28,1
    - Dst: Botan::TPM_Context::TPM_Context
      Src: /src/botan/src/tests/test_tpm.cpp:28,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tpm.cpp:29,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tpm.cpp:31,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_tpm.cpp:36,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tpm.cpp:36,1
    - Dst: std::unique_ptr::current_counter
      Src: /src/botan/src/tests/test_tpm.cpp:36,1
    - Dst: Botan::TPM_RNG::random_vec
      Src: /src/botan/src/tests/test_tpm.cpp:39,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_tpm.cpp:41,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tpm.cpp:41,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tpm.cpp:44,1
    - Dst: Botan::TPM_PrivateKey::export_blob
      Src: /src/botan/src/tests/test_tpm.cpp:46,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_tpm.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm.cpp:49,1
    - Dst: Botan::TPM_PrivateKey::registered_keys
      Src: /src/botan/src/tests/test_tpm.cpp:51,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_tpm.cpp:54,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tpm.cpp:61,1
    - Dst: what
      Src: /src/botan/src/tests/test_tpm.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 65
    functionName: Botan_Tests::TPM_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tpm.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_note
    - Test::Result::test_success
    - std::to_string
    - Botan::TPM_Context::TPM_Context
    - std::vector<uint8_t>
    - Botan::TPM_PrivateKey::registered_keys
    - Botan::TPM_PrivateKey::export_blob
    - Botan::TPM_RNG::random_vec
    - Test::Result::test_sz_gte
    - std::unique_ptr::reset
    - Test::Result::test_bin_ne
    - Test::Result::test_failure
    - std::unique_ptr::current_counter
    - what
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::UUID::UUID
      Src: /src/botan/src/tests/test_tpm.cpp:75,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tpm.cpp:77,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_tpm.cpp:77,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_tpm.cpp:79,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tpm.cpp:80,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_tpm.cpp:80,1
    - Dst: Botan::UUID::binary_value
      Src: /src/botan/src/tests/test_tpm.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tpm.cpp:83,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_tpm.cpp:85,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tpm.cpp:86,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_tpm.cpp:86,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_tpm.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tpm.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 92
    functionName: Botan_Tests::UUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tpm.cpp
    functionUses: 0
    functionsReached:
    - Botan::UUID::is_valid
    - Botan::UUID::UUID
    - Botan_Tests::UUID_Tests::rng
    - Botan::UUID::to_string
    - std::string::size
    - Test::Result::test_sz_eq
    - Botan::UUID::binary_value
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan_Tests::TPM_Tests::pin_cb
    functionSourceFile: /src/botan/src/tests/test_tpm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string pin_cb(const std::string&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::reset
      Src: /src/botan/src/tests/test_tpm.cpp:28,1
    - Dst: Botan::TPM_Context::TPM_Context
      Src: /src/botan/src/tests/test_tpm.cpp:28,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tpm.cpp:29,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tpm.cpp:31,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_tpm.cpp:36,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tpm.cpp:36,1
    - Dst: std::unique_ptr::current_counter
      Src: /src/botan/src/tests/test_tpm.cpp:36,1
    - Dst: Botan::TPM_RNG::random_vec
      Src: /src/botan/src/tests/test_tpm.cpp:39,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_tpm.cpp:41,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tpm.cpp:41,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tpm.cpp:44,1
    - Dst: Botan::TPM_PrivateKey::export_blob
      Src: /src/botan/src/tests/test_tpm.cpp:46,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_tpm.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm.cpp:49,1
    - Dst: Botan::TPM_PrivateKey::registered_keys
      Src: /src/botan/src/tests/test_tpm.cpp:51,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_tpm.cpp:54,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tpm.cpp:61,1
    - Dst: what
      Src: /src/botan/src/tests/test_tpm.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 65
    functionName: Botan_Tests::TPM_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tpm.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_note
    - Test::Result::test_success
    - std::to_string
    - Botan::TPM_Context::TPM_Context
    - std::vector<uint8_t>
    - Botan::TPM_PrivateKey::registered_keys
    - Botan::TPM_PrivateKey::export_blob
    - Botan::TPM_RNG::random_vec
    - Test::Result::test_sz_gte
    - std::unique_ptr::reset
    - Test::Result::test_bin_ne
    - Test::Result::test_failure
    - std::unique_ptr::current_counter
    - what
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::UUID::UUID
      Src: /src/botan/src/tests/test_tpm.cpp:75,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tpm.cpp:77,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_tpm.cpp:77,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_tpm.cpp:79,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_tpm.cpp:80,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_tpm.cpp:80,1
    - Dst: Botan::UUID::binary_value
      Src: /src/botan/src/tests/test_tpm.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tpm.cpp:83,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_tpm.cpp:85,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tpm.cpp:86,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_tpm.cpp:86,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_tpm.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tpm.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 92
    functionName: Botan_Tests::UUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tpm.cpp
    functionUses: 0
    functionsReached:
    - Botan::UUID::is_valid
    - Botan::UUID::UUID
    - Botan_Tests::UUID_Tests::rng
    - Botan::UUID::to_string
    - std::string::size
    - Test::Result::test_sz_eq
    - Botan::UUID::binary_value
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/test_sphincsplus.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kat_path
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::SPHINCS_Plus_Test_Base
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_Test_Base(std::string_view kat_path)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:35,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus.cpp:37,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:43,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:49,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:63,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/tests/test_sphincsplus.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 66
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - BOTAN_ASSERT_UNREACHABLE
    - auto::is_available
    - Botan_Tests::Test::run_long_tests
    - auto::parameter_set
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:69,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:69,1
    - Dst: auto::is_slh_dsa
      Src: /src/botan/src/tests/test_sphincsplus.cpp:70,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:72,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:74,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:75,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:76,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:78,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:79,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:89,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_sphincsplus.cpp:95,1
    - Dst: CTR_DRBG_AES256
      Src: /src/botan/src/tests/test_sphincsplus.cpp:105,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:111,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:111,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:113,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:114,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:119,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:119,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:120,1
    - Dst: Botan::SphincsPlus_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:120,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:123,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:131,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_sphincsplus.cpp:135,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:136,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:136,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:137,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:144,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:152,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:153,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:159,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:162,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:163,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:166,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:169,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:172,1
    - Dst: Botan_Tests::SPHINCS_Plus_Test_Base::rng
      Src: /src/botan/src/tests/test_sphincsplus.cpp:172,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:175,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:183,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_sphincsplus.cpp:184,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 187
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::algorithm_identifier
    - auto::process
    - auto::size
    - Botan::SphincsPlus_PrivateKey::public_key
    - has_key
    - Botan_Tests::Test::mutate_vec
    - auto::n
    - Botan::SphincsPlus_PrivateKey::public_key_bits
    - auto::parameter_set
    - auto::random_vec
    - get_req_bin
    - std::vector::size
    - run_long_tests
    - Fixed_Output_RNG::add_entropy
    - Botan::PK_Signer::PK_Signer
    - Botan::HashFunction::create_or_throw
    - get_opt_bin
    - Test::Result::test_bin_eq
    - auto::has_value
    - Test::Result::test_is_true
    - auto::sign_message
    - Botan_Tests::SPHINCS_Plus_Test_Base::rng
    - get_req_str
    - auto::is_slh_dsa
    - std::vector::data
    - Botan::PK_Verifier::verify_message
    - CTR_DRBG_AES256
    - Botan::Sphincs_Parameters::create
    - auto::to_string
    - Botan::SphincsPlus_PrivateKey::private_key_bits
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: Botan_Tests::SPHINCS_Plus_Test::SPHINCS_Plus_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::SLH_DSA_Test::SLH_DSA_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SLH_DSA_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:219,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:222,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sphincsplus.cpp:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 227
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - Botan_Tests::Test::run_long_tests
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::SphincsPlus_PublicKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:234,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - std::make_unique<Botan::SphincsPlus_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::Generic_SlhDsa_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generic_SlhDsa_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:248,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:249,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:250,1
    - Dst: std::make_unique<Botan::SphincsPlus_PrivateKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:252,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:252,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:254,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_sphincsplus.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::public_key_bits
    - std::make_unique<Botan::SphincsPlus_PrivateKey>
    - Test_Error
    - Botan::Sphincs_Parameters::create
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - has_key
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:266,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::Generic_SlhDsa_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generic_SlhDsa_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:279,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:280,1
    - Dst: std::make_unique<Botan::SphincsPlus_PublicKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:282,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - get_req_bin
    - std::make_unique<Botan::SphincsPlus_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:288,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/test_sphincsplus.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kat_path
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::SPHINCS_Plus_Test_Base
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_Test_Base(std::string_view kat_path)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:35,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus.cpp:37,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:43,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:49,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:63,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/tests/test_sphincsplus.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 66
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - BOTAN_ASSERT_UNREACHABLE
    - auto::is_available
    - Botan_Tests::Test::run_long_tests
    - auto::parameter_set
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:69,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:69,1
    - Dst: auto::is_slh_dsa
      Src: /src/botan/src/tests/test_sphincsplus.cpp:70,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:72,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:74,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:75,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:76,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:78,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:79,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:89,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_sphincsplus.cpp:95,1
    - Dst: CTR_DRBG_AES256
      Src: /src/botan/src/tests/test_sphincsplus.cpp:105,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:111,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:111,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:113,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:114,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:119,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:119,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:120,1
    - Dst: Botan::SphincsPlus_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:120,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:123,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:131,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_sphincsplus.cpp:135,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:136,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:136,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:137,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:144,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:152,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:153,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:159,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:162,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:163,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:166,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:169,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:172,1
    - Dst: Botan_Tests::SPHINCS_Plus_Test_Base::rng
      Src: /src/botan/src/tests/test_sphincsplus.cpp:172,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:175,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:183,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_sphincsplus.cpp:184,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 187
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::algorithm_identifier
    - auto::process
    - auto::size
    - Botan::SphincsPlus_PrivateKey::public_key
    - has_key
    - Botan_Tests::Test::mutate_vec
    - auto::n
    - Botan::SphincsPlus_PrivateKey::public_key_bits
    - auto::parameter_set
    - auto::random_vec
    - get_req_bin
    - std::vector::size
    - run_long_tests
    - Fixed_Output_RNG::add_entropy
    - Botan::PK_Signer::PK_Signer
    - Botan::HashFunction::create_or_throw
    - get_opt_bin
    - Test::Result::test_bin_eq
    - auto::has_value
    - Test::Result::test_is_true
    - auto::sign_message
    - Botan_Tests::SPHINCS_Plus_Test_Base::rng
    - get_req_str
    - auto::is_slh_dsa
    - std::vector::data
    - Botan::PK_Verifier::verify_message
    - CTR_DRBG_AES256
    - Botan::Sphincs_Parameters::create
    - auto::to_string
    - Botan::SphincsPlus_PrivateKey::private_key_bits
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: Botan_Tests::SPHINCS_Plus_Test::SPHINCS_Plus_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::SLH_DSA_Test::SLH_DSA_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SLH_DSA_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:219,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:222,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sphincsplus.cpp:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 227
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - Botan_Tests::Test::run_long_tests
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::SphincsPlus_PublicKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:234,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - std::make_unique<Botan::SphincsPlus_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::Generic_SlhDsa_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generic_SlhDsa_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:248,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:249,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:250,1
    - Dst: std::make_unique<Botan::SphincsPlus_PrivateKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:252,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:252,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:254,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_sphincsplus.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::public_key_bits
    - std::make_unique<Botan::SphincsPlus_PrivateKey>
    - Test_Error
    - Botan::Sphincs_Parameters::create
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - has_key
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:266,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::Generic_SlhDsa_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generic_SlhDsa_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:279,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:280,1
    - Dst: std::make_unique<Botan::SphincsPlus_PublicKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:282,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - get_req_bin
    - std::make_unique<Botan::SphincsPlus_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:288,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/test_sphincsplus.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kat_path
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::SPHINCS_Plus_Test_Base
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_Test_Base(std::string_view kat_path)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:35,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus.cpp:37,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:43,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:49,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:63,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/tests/test_sphincsplus.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 66
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - BOTAN_ASSERT_UNREACHABLE
    - auto::is_available
    - Botan_Tests::Test::run_long_tests
    - auto::parameter_set
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:69,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:69,1
    - Dst: auto::is_slh_dsa
      Src: /src/botan/src/tests/test_sphincsplus.cpp:70,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:72,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:74,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:75,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:76,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:78,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:79,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:89,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_sphincsplus.cpp:95,1
    - Dst: CTR_DRBG_AES256
      Src: /src/botan/src/tests/test_sphincsplus.cpp:105,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:111,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:111,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:113,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:114,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:119,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:119,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:120,1
    - Dst: Botan::SphincsPlus_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:120,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:123,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:131,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_sphincsplus.cpp:135,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:136,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:136,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:137,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:144,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:152,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:153,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:159,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:162,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:163,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:166,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:169,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:172,1
    - Dst: Botan_Tests::SPHINCS_Plus_Test_Base::rng
      Src: /src/botan/src/tests/test_sphincsplus.cpp:172,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:175,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:183,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_sphincsplus.cpp:184,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 187
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::algorithm_identifier
    - auto::process
    - auto::size
    - Botan::SphincsPlus_PrivateKey::public_key
    - has_key
    - Botan_Tests::Test::mutate_vec
    - auto::n
    - Botan::SphincsPlus_PrivateKey::public_key_bits
    - auto::parameter_set
    - auto::random_vec
    - get_req_bin
    - std::vector::size
    - run_long_tests
    - Fixed_Output_RNG::add_entropy
    - Botan::PK_Signer::PK_Signer
    - Botan::HashFunction::create_or_throw
    - get_opt_bin
    - Test::Result::test_bin_eq
    - auto::has_value
    - Test::Result::test_is_true
    - auto::sign_message
    - Botan_Tests::SPHINCS_Plus_Test_Base::rng
    - get_req_str
    - auto::is_slh_dsa
    - std::vector::data
    - Botan::PK_Verifier::verify_message
    - CTR_DRBG_AES256
    - Botan::Sphincs_Parameters::create
    - auto::to_string
    - Botan::SphincsPlus_PrivateKey::private_key_bits
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: Botan_Tests::SPHINCS_Plus_Test::SPHINCS_Plus_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::SLH_DSA_Test::SLH_DSA_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SLH_DSA_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:219,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:222,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sphincsplus.cpp:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 227
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - Botan_Tests::Test::run_long_tests
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::SphincsPlus_PublicKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:234,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - std::make_unique<Botan::SphincsPlus_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::Generic_SlhDsa_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generic_SlhDsa_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:248,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:249,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:250,1
    - Dst: std::make_unique<Botan::SphincsPlus_PrivateKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:252,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:252,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:254,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_sphincsplus.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::public_key_bits
    - std::make_unique<Botan::SphincsPlus_PrivateKey>
    - Test_Error
    - Botan::Sphincs_Parameters::create
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - has_key
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:266,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::Generic_SlhDsa_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generic_SlhDsa_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:279,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:280,1
    - Dst: std::make_unique<Botan::SphincsPlus_PublicKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:282,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - get_req_bin
    - std::make_unique<Botan::SphincsPlus_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:288,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/test_sphincsplus.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kat_path
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::SPHINCS_Plus_Test_Base
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_Test_Base(std::string_view kat_path)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:35,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus.cpp:37,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:43,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:49,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:63,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/tests/test_sphincsplus.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 66
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - BOTAN_ASSERT_UNREACHABLE
    - auto::is_available
    - Botan_Tests::Test::run_long_tests
    - auto::parameter_set
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:69,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:69,1
    - Dst: auto::is_slh_dsa
      Src: /src/botan/src/tests/test_sphincsplus.cpp:70,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:72,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:73,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:74,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:75,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:76,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:78,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:79,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:89,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_sphincsplus.cpp:95,1
    - Dst: CTR_DRBG_AES256
      Src: /src/botan/src/tests/test_sphincsplus.cpp:105,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:111,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:111,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:113,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:114,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:119,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:119,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:120,1
    - Dst: Botan::SphincsPlus_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:120,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:123,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:124,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:131,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_sphincsplus.cpp:135,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:136,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:136,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:137,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:143,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:144,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:152,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:153,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:159,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:160,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:162,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:163,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:166,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:168,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:169,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:172,1
    - Dst: Botan_Tests::SPHINCS_Plus_Test_Base::rng
      Src: /src/botan/src/tests/test_sphincsplus.cpp:172,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:174,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:175,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_sphincsplus.cpp:183,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_sphincsplus.cpp:184,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 187
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::algorithm_identifier
    - auto::process
    - auto::size
    - Botan::SphincsPlus_PrivateKey::public_key
    - has_key
    - Botan_Tests::Test::mutate_vec
    - auto::n
    - Botan::SphincsPlus_PrivateKey::public_key_bits
    - auto::parameter_set
    - auto::random_vec
    - get_req_bin
    - std::vector::size
    - run_long_tests
    - Fixed_Output_RNG::add_entropy
    - Botan::PK_Signer::PK_Signer
    - Botan::HashFunction::create_or_throw
    - get_opt_bin
    - Test::Result::test_bin_eq
    - auto::has_value
    - Test::Result::test_is_true
    - auto::sign_message
    - Botan_Tests::SPHINCS_Plus_Test_Base::rng
    - get_req_str
    - auto::is_slh_dsa
    - std::vector::data
    - Botan::PK_Verifier::verify_message
    - CTR_DRBG_AES256
    - Botan::Sphincs_Parameters::create
    - auto::to_string
    - Botan::SphincsPlus_PrivateKey::private_key_bits
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: Botan_Tests::SPHINCS_Plus_Test::SPHINCS_Plus_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::SLH_DSA_Test::SLH_DSA_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SLH_DSA_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:219,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:222,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sphincsplus.cpp:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 227
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - Botan_Tests::Test::run_long_tests
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::SphincsPlus_PublicKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:234,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - std::make_unique<Botan::SphincsPlus_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::Generic_SlhDsa_Signature_Tests
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generic_SlhDsa_Signature_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:248,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:249,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:250,1
    - Dst: std::make_unique<Botan::SphincsPlus_PrivateKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:252,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:252,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:254,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_sphincsplus.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::public_key_bits
    - std::make_unique<Botan::SphincsPlus_PrivateKey>
    - Test_Error
    - Botan::Sphincs_Parameters::create
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - has_key
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:266,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::Generic_SlhDsa_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generic_SlhDsa_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:279,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:280,1
    - Dst: std::make_unique<Botan::SphincsPlus_PublicKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:282,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - get_req_bin
    - std::make_unique<Botan::SphincsPlus_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*vars*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:288,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:20,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:23,1
    - Dst: Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:23,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:25,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:26,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:27,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:28,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:31,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:34,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:36,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:37,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:39,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:40,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:42,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:43,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:46,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:49,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:51,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:52,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:55,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:58,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:63,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:64,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:65,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:66,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:68,1
    - Dst: auto::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:69,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:70,1
    - Dst: auto::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:71,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:74,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:77,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:78,1
    - Dst: Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 81
    functionName: Botan_Tests::test_handshake_state_transitions
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Handshake_Transitions::received_handshake_msg
    - auto::received_handshake_msg
    - Botan_Tests::CHECK
    - Botan::TLS::Handshake_Transitions::set_expected_next
    - test_no_throw
    - test_is_true
    - Botan::TLS::Handshake_Transitions::confirm_transition_to
    - test_throws
    - auto::confirm_transition_to
    - Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_handshake_state_transitions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:20,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:23,1
    - Dst: Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:23,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:25,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:26,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:27,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:28,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:31,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:34,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:36,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:37,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:39,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:40,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:42,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:43,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:46,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:49,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:51,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:52,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:55,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:58,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:63,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:64,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:65,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:66,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:68,1
    - Dst: auto::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:69,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:70,1
    - Dst: auto::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:71,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:74,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:77,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:78,1
    - Dst: Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 81
    functionName: Botan_Tests::test_handshake_state_transitions
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Handshake_Transitions::received_handshake_msg
    - auto::received_handshake_msg
    - Botan_Tests::CHECK
    - Botan::TLS::Handshake_Transitions::set_expected_next
    - test_no_throw
    - test_is_true
    - Botan::TLS::Handshake_Transitions::confirm_transition_to
    - test_throws
    - auto::confirm_transition_to
    - Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_handshake_state_transitions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:20,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:23,1
    - Dst: Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:23,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:25,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:26,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:27,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:28,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:31,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:34,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:36,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:37,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:39,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:40,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:42,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:43,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:46,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:49,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:51,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:52,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:55,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:58,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:63,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:64,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:65,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:66,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:68,1
    - Dst: auto::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:69,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:70,1
    - Dst: auto::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:71,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:74,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:77,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:78,1
    - Dst: Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 81
    functionName: Botan_Tests::test_handshake_state_transitions
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Handshake_Transitions::received_handshake_msg
    - auto::received_handshake_msg
    - Botan_Tests::CHECK
    - Botan::TLS::Handshake_Transitions::set_expected_next
    - test_no_throw
    - test_is_true
    - Botan::TLS::Handshake_Transitions::confirm_transition_to
    - test_throws
    - auto::confirm_transition_to
    - Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_handshake_state_transitions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:20,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:23,1
    - Dst: Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:23,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:25,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:26,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:27,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:28,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:31,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:34,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:36,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:37,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:39,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:40,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:42,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:43,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:46,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:49,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:51,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:52,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:55,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:58,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:63,1
    - Dst: Botan::TLS::Handshake_Transitions::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:64,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:65,1
    - Dst: Botan::TLS::Handshake_Transitions::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:66,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:68,1
    - Dst: auto::confirm_transition_to
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:69,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:70,1
    - Dst: auto::received_handshake_msg
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:71,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:74,1
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:77,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:78,1
    - Dst: Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
      Src: /src/botan/src/tests/test_tls_handshake_transitions.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 81
    functionName: Botan_Tests::test_handshake_state_transitions
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Handshake_Transitions::received_handshake_msg
    - auto::received_handshake_msg
    - Botan_Tests::CHECK
    - Botan::TLS::Handshake_Transitions::set_expected_next
    - test_no_throw
    - test_is_true
    - Botan::TLS::Handshake_Transitions::confirm_transition_to
    - test_throws
    - auto::confirm_transition_to
    - Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_handshake_state_transitions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:26,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:27,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:28,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:29,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:30,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::run
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_hash.cpp:39,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:40,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:42,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:44,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:47,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' name'
    argTypes:
    - Result
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 1
    functionsReached:
    - test_str_eq
    - test_failure
    - Botan::HashFunction::create_or_throw
    - what
    linkageType: ''
    returnType: void
    signature: void test_invalid_name(Result& result, const std::string& name, const
      std::string& expected_msg = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan_Tests::Hash_Function_Tests::Hash_Function_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_Function_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:64,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Hash_Function_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:68,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:69,1
    - Dst: Botan_Tests::Hash_Function_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:73,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:75,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:76,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:84,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:84,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_hash.cpp:88,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:92,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:92,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:96,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:97,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:97,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:100,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:101,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:101,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:104,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_hash.cpp:105,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:106,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:109,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:109,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/tests/test_hash.cpp:115,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:115,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:120,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash.cpp:120,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:124,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:128,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:135,1
    - Dst: Botan_Tests::Hash_Function_Tests::rng
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:138,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:142,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:147,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:148,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:148,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_hash.cpp:153,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:153,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 158
    functionName: Botan_Tests::Hash_Function_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::new_object
    - auto::hash_block_size
    - std::vector::begin
    - Botan_Tests::Hash_Function_Tests::possible_providers
    - auto::final
    - auto::copy_state
    - auto::clear
    - Test::Result::test_str_not_empty
    - auto::name
    - auto::update
    - Botan_Tests::Hash_Function_Tests::rng
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - reinterpret_cast<uintptr_t>
    - std::vector::insert
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::Hash_NIST_MonteCarlo_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_NIST_MonteCarlo_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:168,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:172,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:173,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:174,1
    - Dst: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:178,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:180,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:181,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:186,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:189,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:189,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:194,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:195,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:196,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:200,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:201,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: data
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:205,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:206,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:215,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 219
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - Botan::fmt
    - data
    - std::vector::push_back
    - auto::final
    - Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    - swap
    - Botan::HashFunction::create
    - auto::update
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_Tests::Hash_LongRepeat_Tests::Hash_LongRepeat_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_LongRepeat_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:229,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_hash.cpp:235,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:237,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: begin
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: end
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' input'
    - min_len
    argTypes:
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: Botan_Tests::Hash_LongRepeat_Tests::expand_input
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - begin
    - std::vector::reserve
    - std::vector::insert
    - end
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> expand_input(const std::vector<uint8_t>& input,
      size_t min_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::expand_input
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:246,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:247,1
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:251,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_hash.cpp:253,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:257,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:258,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:266,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:266,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:271,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:274,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:278,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:278,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_hash.cpp:281,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:282,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:282,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 287
    functionName: Botan_Tests::Hash_LongRepeat_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::output_length
    - Test::Result::note_missing
    - auto::final
    - std::vector::size
    - std::vector::data
    - Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    - Botan::HashFunction::create
    - auto::update
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_bin_eq
    - Botan_Tests::Hash_LongRepeat_Tests::expand_input
    - get_req_sz
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hash.cpp:297,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:298,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hash.cpp:299,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:300,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:301,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hash.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 304
    functionName: Botan_Tests::hash_truncation_negative_tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::HashFunction::create
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_truncation_negative_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:26,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:27,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:28,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:29,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:30,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::run
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_hash.cpp:39,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:40,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:42,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:44,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:47,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' name'
    argTypes:
    - Result
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 2
    functionsReached:
    - test_str_eq
    - test_failure
    - Botan::HashFunction::create_or_throw
    - what
    linkageType: ''
    returnType: void
    signature: void test_invalid_name(Result& result, const std::string& name, const
      std::string& expected_msg = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan_Tests::Hash_Function_Tests::Hash_Function_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_Function_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:64,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Hash_Function_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 1
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:68,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:69,1
    - Dst: Botan_Tests::Hash_Function_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:73,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:75,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:76,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:84,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:84,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_hash.cpp:88,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:92,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:92,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:96,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:97,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:97,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:100,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:101,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:101,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:104,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_hash.cpp:105,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:106,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:109,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:109,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/tests/test_hash.cpp:115,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:115,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:120,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash.cpp:120,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:124,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:128,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:135,1
    - Dst: Botan_Tests::Hash_Function_Tests::rng
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:138,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:142,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:147,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:148,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:148,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_hash.cpp:153,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:153,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 158
    functionName: Botan_Tests::Hash_Function_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::new_object
    - auto::hash_block_size
    - std::vector::begin
    - Botan_Tests::Hash_Function_Tests::possible_providers
    - auto::final
    - auto::copy_state
    - auto::clear
    - Test::Result::test_str_not_empty
    - auto::name
    - auto::update
    - Botan_Tests::Hash_Function_Tests::rng
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - reinterpret_cast<uintptr_t>
    - std::vector::insert
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::Hash_NIST_MonteCarlo_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_NIST_MonteCarlo_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:168,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 1
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:172,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:173,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:174,1
    - Dst: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:178,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:180,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:181,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:186,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:189,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:189,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:194,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:195,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:196,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:200,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:201,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: data
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:205,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:206,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:215,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 219
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - Botan::fmt
    - data
    - std::vector::push_back
    - auto::final
    - Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    - swap
    - Botan::HashFunction::create
    - auto::update
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_Tests::Hash_LongRepeat_Tests::Hash_LongRepeat_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_LongRepeat_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:229,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 1
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_hash.cpp:235,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:237,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: begin
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: end
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' input'
    - min_len
    argTypes:
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: Botan_Tests::Hash_LongRepeat_Tests::expand_input
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 1
    functionsReached:
    - std::vector::end
    - begin
    - std::vector::reserve
    - std::vector::insert
    - end
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> expand_input(const std::vector<uint8_t>& input,
      size_t min_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::expand_input
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:246,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:247,1
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:251,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_hash.cpp:253,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:257,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:258,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:266,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:266,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:271,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:274,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:278,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:278,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_hash.cpp:281,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:282,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:282,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 287
    functionName: Botan_Tests::Hash_LongRepeat_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::output_length
    - Test::Result::note_missing
    - auto::final
    - std::vector::size
    - std::vector::data
    - Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    - Botan::HashFunction::create
    - auto::update
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_bin_eq
    - Botan_Tests::Hash_LongRepeat_Tests::expand_input
    - get_req_sz
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hash.cpp:297,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:298,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hash.cpp:299,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:300,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:301,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hash.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 304
    functionName: Botan_Tests::hash_truncation_negative_tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::HashFunction::create
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_truncation_negative_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:26,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:27,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:28,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:29,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:30,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::run
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_hash.cpp:39,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:40,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:42,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:44,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:47,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' name'
    argTypes:
    - Result
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 3
    functionsReached:
    - test_str_eq
    - test_failure
    - Botan::HashFunction::create_or_throw
    - what
    linkageType: ''
    returnType: void
    signature: void test_invalid_name(Result& result, const std::string& name, const
      std::string& expected_msg = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan_Tests::Hash_Function_Tests::Hash_Function_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_Function_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:64,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Hash_Function_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 2
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:68,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:69,1
    - Dst: Botan_Tests::Hash_Function_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:73,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:75,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:76,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:84,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:84,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_hash.cpp:88,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:92,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:92,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:96,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:97,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:97,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:100,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:101,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:101,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:104,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_hash.cpp:105,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:106,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:109,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:109,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/tests/test_hash.cpp:115,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:115,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:120,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash.cpp:120,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:124,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:128,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:135,1
    - Dst: Botan_Tests::Hash_Function_Tests::rng
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:138,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:142,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:147,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:148,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:148,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_hash.cpp:153,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:153,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 158
    functionName: Botan_Tests::Hash_Function_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::new_object
    - auto::hash_block_size
    - std::vector::begin
    - Botan_Tests::Hash_Function_Tests::possible_providers
    - auto::final
    - auto::copy_state
    - auto::clear
    - Test::Result::test_str_not_empty
    - auto::name
    - auto::update
    - Botan_Tests::Hash_Function_Tests::rng
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - reinterpret_cast<uintptr_t>
    - std::vector::insert
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::Hash_NIST_MonteCarlo_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_NIST_MonteCarlo_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:168,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 2
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:172,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:173,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:174,1
    - Dst: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:178,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:180,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:181,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:186,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:189,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:189,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:194,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:195,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:196,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:200,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:201,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: data
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:205,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:206,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:215,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 219
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - Botan::fmt
    - data
    - std::vector::push_back
    - auto::final
    - Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    - swap
    - Botan::HashFunction::create
    - auto::update
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_Tests::Hash_LongRepeat_Tests::Hash_LongRepeat_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_LongRepeat_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:229,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 2
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_hash.cpp:235,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:237,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: begin
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: end
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' input'
    - min_len
    argTypes:
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: Botan_Tests::Hash_LongRepeat_Tests::expand_input
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 2
    functionsReached:
    - std::vector::end
    - begin
    - std::vector::reserve
    - std::vector::insert
    - end
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> expand_input(const std::vector<uint8_t>& input,
      size_t min_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::expand_input
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:246,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:247,1
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:251,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_hash.cpp:253,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:257,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:258,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:266,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:266,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:271,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:274,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:278,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:278,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_hash.cpp:281,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:282,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:282,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 287
    functionName: Botan_Tests::Hash_LongRepeat_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::output_length
    - Test::Result::note_missing
    - auto::final
    - std::vector::size
    - std::vector::data
    - Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    - Botan::HashFunction::create
    - auto::update
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_bin_eq
    - Botan_Tests::Hash_LongRepeat_Tests::expand_input
    - get_req_sz
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hash.cpp:297,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:298,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hash.cpp:299,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:300,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:301,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hash.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 304
    functionName: Botan_Tests::hash_truncation_negative_tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::HashFunction::create
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_truncation_negative_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:26,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:27,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:28,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:29,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:30,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::run
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_hash.cpp:39,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:40,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:42,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:44,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:47,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' name'
    argTypes:
    - Result
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 4
    functionsReached:
    - test_str_eq
    - test_failure
    - Botan::HashFunction::create_or_throw
    - what
    linkageType: ''
    returnType: void
    signature: void test_invalid_name(Result& result, const std::string& name, const
      std::string& expected_msg = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan_Tests::Hash_Function_Tests::Hash_Function_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_Function_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:64,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Hash_Function_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 3
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:68,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:69,1
    - Dst: Botan_Tests::Hash_Function_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:73,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:75,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:76,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:84,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:84,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_hash.cpp:88,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:92,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:92,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:93,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:96,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:97,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:97,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:100,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:101,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:101,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:104,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_hash.cpp:105,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:106,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:109,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:109,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/tests/test_hash.cpp:115,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:115,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:120,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash.cpp:120,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:124,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:128,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:135,1
    - Dst: Botan_Tests::Hash_Function_Tests::rng
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:138,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:142,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:147,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:148,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:148,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_hash.cpp:153,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:153,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 158
    functionName: Botan_Tests::Hash_Function_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::new_object
    - auto::hash_block_size
    - std::vector::begin
    - Botan_Tests::Hash_Function_Tests::possible_providers
    - auto::final
    - auto::copy_state
    - auto::clear
    - Test::Result::test_str_not_empty
    - auto::name
    - auto::update
    - Botan_Tests::Hash_Function_Tests::rng
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - reinterpret_cast<uintptr_t>
    - std::vector::insert
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::Hash_NIST_MonteCarlo_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_NIST_MonteCarlo_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:168,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 3
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:172,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:173,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:174,1
    - Dst: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:178,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:180,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:181,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:186,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:189,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:189,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:194,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:195,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:196,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:200,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:201,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: data
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:205,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:206,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:215,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 219
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - Botan::fmt
    - data
    - std::vector::push_back
    - auto::final
    - Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    - swap
    - Botan::HashFunction::create
    - auto::update
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_Tests::Hash_LongRepeat_Tests::Hash_LongRepeat_Tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_LongRepeat_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_hash.cpp:229,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 3
    functionsReached:
    - Botan::HashFunction::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_hash.cpp:235,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:237,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: begin
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    - Dst: end
      Src: /src/botan/src/tests/test_hash.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' input'
    - min_len
    argTypes:
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: Botan_Tests::Hash_LongRepeat_Tests::expand_input
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 3
    functionsReached:
    - std::vector::end
    - begin
    - std::vector::reserve
    - std::vector::insert
    - end
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> expand_input(const std::vector<uint8_t>& input,
      size_t min_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::expand_input
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:246,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:247,1
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:251,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_hash.cpp:253,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:257,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:258,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:266,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:266,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:271,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:274,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:278,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:278,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_hash.cpp:281,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:282,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:282,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash.cpp:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 287
    functionName: Botan_Tests::Hash_LongRepeat_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::output_length
    - Test::Result::note_missing
    - auto::final
    - std::vector::size
    - std::vector::data
    - Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    - Botan::HashFunction::create
    - auto::update
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_bin_eq
    - Botan_Tests::Hash_LongRepeat_Tests::expand_input
    - get_req_sz
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hash.cpp:297,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:298,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hash.cpp:299,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:300,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:301,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_hash.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 304
    functionName: Botan_Tests::hash_truncation_negative_tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::HashFunction::create
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result hash_truncation_negative_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::Stream_Cipher_Tests::Stream_Cipher_Tests
    functionSourceFile: /src/botan/src/tests/test_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Stream_Cipher_Tests()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_stream.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_stream.cpp:28,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:29,1
    - Dst: get_opt_u64
      Src: /src/botan/src/tests/test_stream.cpp:30,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:31,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:33,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_stream.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:34,1
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_stream.cpp:39,1
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/tests/test_stream.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_stream.cpp:42,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/tests/test_stream.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:50,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_stream.cpp:50,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_stream.cpp:54,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_stream.cpp:55,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:60,1
    - Dst: auto::buffer_size
      Src: /src/botan/src/tests/test_stream.cpp:60,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:63,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:63,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:66,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:74,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:78,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:79,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:81,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:83,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:86,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_stream.cpp:87,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:91,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_stream.cpp:102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:102,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_stream.cpp:103,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_stream.cpp:108,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:108,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:109,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:110,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:110,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:116,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:117,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_stream.cpp:119,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:120,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:128,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:133,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_stream.cpp:137,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:144,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:145,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:149,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:150,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:155,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:159,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:162,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:165,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:169,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:173,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:181,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:184,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_stream.cpp:187,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:187,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/tests/test_stream.cpp:188,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:193,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:196,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:199,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:199,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_stream.cpp:200,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:206,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:208,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 112
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 213
    functionName: Botan_Tests::Stream_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_stream.cpp
    functionUses: 0
    functionsReached:
    - auto::valid_keylength
    - auto::has_keying_material
    - Botan::fmt
    - auto::get
    - Botan::StreamCipher::providers
    - auto::new_object
    - auto::valid_iv_length
    - Botan_Tests::Stream_Cipher_Tests::rng
    - auto::write_keystream
    - auto::set_iv
    - auto::clear
    - Test::Result::test_success
    - std::to_string
    - Test::Result::test_str_not_empty
    - auto::maximum_keylength
    - provider_filter
    - auto::name
    - Test::Result::test_failure
    - auto::cipher1
    - auto::buffer_size
    - auto::default_iv_length
    - get_req_bin
    - std::vector::size
    - std::vector::empty
    - std::vector::resize
    - Botan::StreamCipher::create
    - get_opt_bin
    - get_opt_u64
    - Test::Result::test_bin_eq
    - auto::encrypt
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - std::min<size_t>
    - Test::Result::test_note
    - auto::set_key
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - auto::seek
    - Test_Error
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::Stream_Cipher_Tests::Stream_Cipher_Tests
    functionSourceFile: /src/botan/src/tests/test_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Stream_Cipher_Tests()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_stream.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_stream.cpp:28,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:29,1
    - Dst: get_opt_u64
      Src: /src/botan/src/tests/test_stream.cpp:30,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:31,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:33,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_stream.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:34,1
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_stream.cpp:39,1
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/tests/test_stream.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_stream.cpp:42,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/tests/test_stream.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:50,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_stream.cpp:50,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_stream.cpp:54,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_stream.cpp:55,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:60,1
    - Dst: auto::buffer_size
      Src: /src/botan/src/tests/test_stream.cpp:60,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:63,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:63,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:66,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:74,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:78,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:79,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:81,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:83,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:86,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_stream.cpp:87,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:91,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_stream.cpp:102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:102,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_stream.cpp:103,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_stream.cpp:108,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:108,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:109,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:110,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:110,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:116,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:117,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_stream.cpp:119,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:120,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:128,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:133,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_stream.cpp:137,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:144,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:145,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:149,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:150,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:155,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:159,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:162,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:165,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:169,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:173,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:181,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:184,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_stream.cpp:187,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:187,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/tests/test_stream.cpp:188,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:193,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:196,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:199,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:199,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_stream.cpp:200,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:206,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:208,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 112
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 213
    functionName: Botan_Tests::Stream_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_stream.cpp
    functionUses: 0
    functionsReached:
    - auto::valid_keylength
    - auto::has_keying_material
    - Botan::fmt
    - auto::get
    - Botan::StreamCipher::providers
    - auto::new_object
    - auto::valid_iv_length
    - Botan_Tests::Stream_Cipher_Tests::rng
    - auto::write_keystream
    - auto::set_iv
    - auto::clear
    - Test::Result::test_success
    - std::to_string
    - Test::Result::test_str_not_empty
    - auto::maximum_keylength
    - provider_filter
    - auto::name
    - Test::Result::test_failure
    - auto::cipher1
    - auto::buffer_size
    - auto::default_iv_length
    - get_req_bin
    - std::vector::size
    - std::vector::empty
    - std::vector::resize
    - Botan::StreamCipher::create
    - get_opt_bin
    - get_opt_u64
    - Test::Result::test_bin_eq
    - auto::encrypt
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - std::min<size_t>
    - Test::Result::test_note
    - auto::set_key
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - auto::seek
    - Test_Error
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::Stream_Cipher_Tests::Stream_Cipher_Tests
    functionSourceFile: /src/botan/src/tests/test_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Stream_Cipher_Tests()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_stream.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_stream.cpp:28,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:29,1
    - Dst: get_opt_u64
      Src: /src/botan/src/tests/test_stream.cpp:30,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:31,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:33,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_stream.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:34,1
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_stream.cpp:39,1
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/tests/test_stream.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_stream.cpp:42,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/tests/test_stream.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:50,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_stream.cpp:50,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_stream.cpp:54,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_stream.cpp:55,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:60,1
    - Dst: auto::buffer_size
      Src: /src/botan/src/tests/test_stream.cpp:60,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:63,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:63,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:66,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:74,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:78,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:79,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:81,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:83,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:86,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_stream.cpp:87,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:91,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_stream.cpp:102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:102,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_stream.cpp:103,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_stream.cpp:108,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:108,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:109,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:110,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:110,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:116,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:117,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_stream.cpp:119,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:120,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:128,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:133,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_stream.cpp:137,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:144,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:145,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:149,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:150,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:155,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:159,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:162,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:165,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:169,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:173,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:181,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:184,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_stream.cpp:187,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:187,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/tests/test_stream.cpp:188,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:193,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:196,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:199,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:199,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_stream.cpp:200,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:206,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:208,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 112
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 213
    functionName: Botan_Tests::Stream_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_stream.cpp
    functionUses: 0
    functionsReached:
    - auto::valid_keylength
    - auto::has_keying_material
    - Botan::fmt
    - auto::get
    - Botan::StreamCipher::providers
    - auto::new_object
    - auto::valid_iv_length
    - Botan_Tests::Stream_Cipher_Tests::rng
    - auto::write_keystream
    - auto::set_iv
    - auto::clear
    - Test::Result::test_success
    - std::to_string
    - Test::Result::test_str_not_empty
    - auto::maximum_keylength
    - provider_filter
    - auto::name
    - Test::Result::test_failure
    - auto::cipher1
    - auto::buffer_size
    - auto::default_iv_length
    - get_req_bin
    - std::vector::size
    - std::vector::empty
    - std::vector::resize
    - Botan::StreamCipher::create
    - get_opt_bin
    - get_opt_u64
    - Test::Result::test_bin_eq
    - auto::encrypt
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - std::min<size_t>
    - Test::Result::test_note
    - auto::set_key
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - auto::seek
    - Test_Error
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::Stream_Cipher_Tests::Stream_Cipher_Tests
    functionSourceFile: /src/botan/src/tests/test_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Stream_Cipher_Tests()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_stream.cpp:27,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_stream.cpp:28,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:29,1
    - Dst: get_opt_u64
      Src: /src/botan/src/tests/test_stream.cpp:30,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:31,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:33,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_stream.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:34,1
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_stream.cpp:39,1
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/tests/test_stream.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:41,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_stream.cpp:42,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/tests/test_stream.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:50,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_stream.cpp:50,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_stream.cpp:54,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_stream.cpp:55,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:60,1
    - Dst: auto::buffer_size
      Src: /src/botan/src/tests/test_stream.cpp:60,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:63,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:63,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:66,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:74,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:78,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:79,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:81,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:83,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:86,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_stream.cpp:87,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:91,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:93,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_stream.cpp:102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:102,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_stream.cpp:103,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_stream.cpp:108,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:108,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:109,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:110,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:110,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:116,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:117,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_stream.cpp:119,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:120,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:128,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:133,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_stream.cpp:137,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:138,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:139,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:144,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:145,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:149,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:150,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:152,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:155,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:159,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:162,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:163,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:165,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:168,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:169,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:173,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:175,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:181,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:184,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_stream.cpp:187,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:187,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/tests/test_stream.cpp:188,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:193,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_stream.cpp:196,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_stream.cpp:199,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:199,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_stream.cpp:200,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:205,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:206,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:208,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 112
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 213
    functionName: Botan_Tests::Stream_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_stream.cpp
    functionUses: 0
    functionsReached:
    - auto::valid_keylength
    - auto::has_keying_material
    - Botan::fmt
    - auto::get
    - Botan::StreamCipher::providers
    - auto::new_object
    - auto::valid_iv_length
    - Botan_Tests::Stream_Cipher_Tests::rng
    - auto::write_keystream
    - auto::set_iv
    - auto::clear
    - Test::Result::test_success
    - std::to_string
    - Test::Result::test_str_not_empty
    - auto::maximum_keylength
    - provider_filter
    - auto::name
    - Test::Result::test_failure
    - auto::cipher1
    - auto::buffer_size
    - auto::default_iv_length
    - get_req_bin
    - std::vector::size
    - std::vector::empty
    - std::vector::resize
    - Botan::StreamCipher::create
    - get_opt_bin
    - get_opt_u64
    - Test::Result::test_bin_eq
    - auto::encrypt
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - std::min<size_t>
    - Test::Result::test_note
    - auto::set_key
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - auto::seek
    - Test_Error
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - label
    - secret
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Journaling_Secret_Logger::maybe_log_secret
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - std::string
    - std::vector<uint8_t>
    linkageType: ''
    returnType: void
    signature: void maybe_log_secret(std::string_view label, std::span<const uint8_t>
      secret) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:44,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:44,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:45,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:46,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:46,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cs_client
    - sl_client
    - cs_server
    - sl_server
    argTypes:
    - Cipher_State*
    - Journaling_Secret_Logger*
    - Cipher_State*
    - Journaling_Secret_Logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: Botan_Tests::make_CHECK_both
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::string
    - Botan_Tests::CHECK
    linkageType: ''
    returnType: decltype(auto)
    signature: "decltype(auto) make_CHECK_both(Cipher_State* cs_client,\n                               Journaling_Secret_Logger*
      sl_client,\n                               Cipher_State* cs_server,\n                               Journaling_Secret_Logger*
      sl_server)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:66,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:68,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:69,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - n
    - em
    - rh
    - ef
    - pf
    argTypes:
    - std::string
    - Connection_Side
    - std::vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: Botan_Tests::RFC8448_TestData::RFC8448_TestData
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void RFC8448_TestData(std::string n,\n                       Connection_Side
      em,\n                       std::vector<uint8_t> rh,\n                       secure_vector<uint8_t>
      ef,\n                       secure_vector<uint8_t> pf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:74,1
    - Dst: Cipher_State*::encrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: Botan_Tests::RFC8448_TestData::encrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Cipher_State*::encrypt_record_fragment
    - test_bin_eq
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void encrypt(Test::Result& result, Cipher_State* cs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:82,1
    - Dst: Cipher_State*::decrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:83,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: Botan_Tests::RFC8448_TestData::decrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - test_bin_eq
    - Cipher_State*::decrypt_record_fragment
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void decrypt(Test::Result& result, Cipher_State* cs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_TestData::encrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:90,1
    - Dst: Botan_Tests::RFC8448_TestData::decrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' result'
    - cs
    - side
    argTypes:
    - Test::Result
    - Cipher_State*
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: Botan_Tests::RFC8448_TestData::xxcrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_TestData::encrypt
    - Botan_Tests::RFC8448_TestData::decrypt
    linkageType: ''
    returnType: void
    signature: void xxcrypt(Test::Result& result, Cipher_State* cs, Connection_Side
      side) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:99,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:103,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:110,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:113,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:118,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:128,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:133,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:138,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:143,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:148,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:153,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:158,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:164,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:166,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:167,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:200,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:236,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:238,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:239,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:243,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:249,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:251,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:252,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:264,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:279,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:281,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:282,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:286,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:293,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:295,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:296,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:300,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:305,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:310,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:311,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:312,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:317,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:318,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:322,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:322,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:325,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:326,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:328,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:329,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:335,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:336,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:338,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:338,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:339,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:339,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:342,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:345,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:346,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:350,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:352,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:353,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:359,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:363,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:370,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:371,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:373,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:374,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:380,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:385,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:385,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:390,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:390,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:391,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:392,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:400,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:401,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:402,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:403,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:406,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:410,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:411,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:414,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:415,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:420,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:429,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:430,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:431,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:431,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:432,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:433,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:438,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:441,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:445,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:447,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:447,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:448,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:449,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:453,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:455,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:455,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:456,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:456,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:459,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:460,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:464,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:464,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:472,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:475,1
    - Dst: update_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:482,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:483,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:483,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:484,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:484,1
    - Dst: update_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:488,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:488,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:493,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: clear_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:502,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:504,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:504,1
    - Dst: clear_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:508,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:508,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 510
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt1
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - advance_with_server_finished
    - auto::get
    - finished_mac
    - test_is_true
    - CHECK_both
    - auto::xxcrypt
    - Botan::hex_decode
    - advance_with_client_finished
    - can_decrypt_application_traffic
    - test_no_throw
    - secure_vector<uint8_t>
    - next_ticket_nonce
    - psk
    - export_key
    - clear_read_keys
    - can_encrypt_application_traffic
    - test_bin_eq
    - Botan::TLS::Ticket_Nonce
    - Botan::TLS::Cipher_State::init_with_server_hello
    - must_expect_unprotected_alert_traffic
    - require
    - Botan_Tests::Test::flatten_result_lists
    - secrets::size
    - Botan::TLS::Ciphersuite::from_name
    - clear_write_keys
    - update_read_keys
    - update_write_keys
    - secrets::at
    - test_sz_eq
    - Botan_Tests::make_CHECK_both
    - verify_peer_finished_mac
    - test_throws
    - secrets::contains
    - RFC8448_TestData
    - Botan_Tests::random_bit_generator::max
    - is_compatible_with
    - can_export_keys
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_secret_derivation_rfc8448_rtt1()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:514,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:520,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:526,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:531,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:535,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:541,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:545,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:551,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:555,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:559,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:563,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:567,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:571,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:575,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:579,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:583,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:590,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:595,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:599,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:601,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:602,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:608,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:617,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:619,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:620,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:624,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:630,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:632,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:633,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:637,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:644,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:646,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:647,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:651,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:656,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:661,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:664,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:665,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:668,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:672,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:675,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:675,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:680,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:681,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:684,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:686,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:686,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:687,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:689,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:689,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:690,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:690,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:693,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:695,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:695,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:699,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:701,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:702,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:702,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:703,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:708,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:709,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:711,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:713,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:716,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:716,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:717,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:717,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:723,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:724,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:724,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:727,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:736,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:737,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:739,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:740,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:741,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:743,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:744,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:754,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:755,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:756,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:757,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:759,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:762,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:763,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:767,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:767,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:771,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:772,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:776,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:776,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:777,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:782,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:787,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:787,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:788,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:788,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:789,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:789,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:795,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:795,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:798,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:802,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:803,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:806,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:807,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:812,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:815,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:819,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:820,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:822,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:822,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:825,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:828,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:832,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:836,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 838
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt0
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - advance_with_server_finished
    - auto::get
    - finished_mac
    - test_is_true
    - CHECK_both
    - auto::xxcrypt
    - psk_binder_mac
    - advance_with_server_hello
    - Botan::hex_decode
    - advance_with_client_finished
    - can_decrypt_application_traffic
    - test_no_throw
    - secure_vector<uint8_t>
    - export_key
    - can_encrypt_application_traffic
    - test_bin_eq
    - advance_with_client_hello
    - auto::end
    - Botan::TLS::Cipher_State::init_with_psk
    - must_expect_unprotected_alert_traffic
    - auto::begin
    - require
    - Botan_Tests::Test::flatten_result_lists
    - secrets::size
    - Botan::TLS::Ciphersuite::from_name
    - secrets::at
    - test_sz_eq
    - auto::prf_algo
    - Botan_Tests::make_CHECK_both
    - verify_peer_finished_mac
    - secrets::contains
    - RFC8448_TestData
    - is_compatible_with
    - can_export_keys
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_secret_derivation_rfc8448_rtt0()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - label
    - secret
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Journaling_Secret_Logger::maybe_log_secret
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - std::string
    - std::vector<uint8_t>
    linkageType: ''
    returnType: void
    signature: void maybe_log_secret(std::string_view label, std::span<const uint8_t>
      secret) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:44,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:44,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:45,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:46,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:46,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cs_client
    - sl_client
    - cs_server
    - sl_server
    argTypes:
    - Cipher_State*
    - Journaling_Secret_Logger*
    - Cipher_State*
    - Journaling_Secret_Logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: Botan_Tests::make_CHECK_both
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 2
    functionsReached:
    - std::bind
    - std::string
    - Botan_Tests::CHECK
    linkageType: ''
    returnType: decltype(auto)
    signature: "decltype(auto) make_CHECK_both(Cipher_State* cs_client,\n                               Journaling_Secret_Logger*
      sl_client,\n                               Cipher_State* cs_server,\n                               Journaling_Secret_Logger*
      sl_server)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:66,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:68,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:69,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - n
    - em
    - rh
    - ef
    - pf
    argTypes:
    - std::string
    - Connection_Side
    - std::vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: Botan_Tests::RFC8448_TestData::RFC8448_TestData
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void RFC8448_TestData(std::string n,\n                       Connection_Side
      em,\n                       std::vector<uint8_t> rh,\n                       secure_vector<uint8_t>
      ef,\n                       secure_vector<uint8_t> pf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:74,1
    - Dst: Cipher_State*::encrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: Botan_Tests::RFC8448_TestData::encrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 1
    functionsReached:
    - Cipher_State*::encrypt_record_fragment
    - test_bin_eq
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void encrypt(Test::Result& result, Cipher_State* cs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:82,1
    - Dst: Cipher_State*::decrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:83,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: Botan_Tests::RFC8448_TestData::decrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 1
    functionsReached:
    - test_bin_eq
    - Cipher_State*::decrypt_record_fragment
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void decrypt(Test::Result& result, Cipher_State* cs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_TestData::encrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:90,1
    - Dst: Botan_Tests::RFC8448_TestData::decrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' result'
    - cs
    - side
    argTypes:
    - Test::Result
    - Cipher_State*
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: Botan_Tests::RFC8448_TestData::xxcrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_TestData::encrypt
    - Botan_Tests::RFC8448_TestData::decrypt
    linkageType: ''
    returnType: void
    signature: void xxcrypt(Test::Result& result, Cipher_State* cs, Connection_Side
      side) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:99,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:103,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:110,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:113,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:118,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:128,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:133,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:138,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:143,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:148,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:153,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:158,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:164,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:166,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:167,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:200,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:236,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:238,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:239,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:243,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:249,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:251,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:252,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:264,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:279,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:281,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:282,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:286,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:293,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:295,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:296,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:300,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:305,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:310,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:311,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:312,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:317,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:318,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:322,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:322,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:325,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:326,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:328,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:329,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:335,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:336,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:338,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:338,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:339,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:339,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:342,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:345,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:346,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:350,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:352,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:353,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:359,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:363,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:370,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:371,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:373,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:374,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:380,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:385,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:385,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:390,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:390,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:391,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:392,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:400,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:401,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:402,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:403,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:406,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:410,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:411,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:414,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:415,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:420,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:429,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:430,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:431,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:431,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:432,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:433,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:438,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:441,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:445,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:447,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:447,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:448,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:449,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:453,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:455,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:455,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:456,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:456,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:459,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:460,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:464,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:464,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:472,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:475,1
    - Dst: update_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:482,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:483,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:483,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:484,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:484,1
    - Dst: update_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:488,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:488,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:493,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: clear_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:502,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:504,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:504,1
    - Dst: clear_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:508,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:508,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 510
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt1
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - advance_with_server_finished
    - auto::get
    - finished_mac
    - test_is_true
    - CHECK_both
    - auto::xxcrypt
    - Botan::hex_decode
    - advance_with_client_finished
    - can_decrypt_application_traffic
    - test_no_throw
    - secure_vector<uint8_t>
    - next_ticket_nonce
    - psk
    - export_key
    - clear_read_keys
    - can_encrypt_application_traffic
    - test_bin_eq
    - Botan::TLS::Ticket_Nonce
    - Botan::TLS::Cipher_State::init_with_server_hello
    - must_expect_unprotected_alert_traffic
    - require
    - Botan_Tests::Test::flatten_result_lists
    - secrets::size
    - Botan::TLS::Ciphersuite::from_name
    - clear_write_keys
    - update_read_keys
    - update_write_keys
    - secrets::at
    - test_sz_eq
    - Botan_Tests::make_CHECK_both
    - verify_peer_finished_mac
    - test_throws
    - secrets::contains
    - RFC8448_TestData
    - Botan_Tests::random_bit_generator::max
    - is_compatible_with
    - can_export_keys
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_secret_derivation_rfc8448_rtt1()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:514,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:520,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:526,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:531,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:535,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:541,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:545,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:551,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:555,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:559,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:563,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:567,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:571,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:575,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:579,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:583,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:590,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:595,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:599,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:601,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:602,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:608,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:617,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:619,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:620,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:624,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:630,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:632,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:633,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:637,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:644,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:646,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:647,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:651,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:656,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:661,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:664,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:665,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:668,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:672,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:675,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:675,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:680,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:681,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:684,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:686,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:686,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:687,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:689,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:689,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:690,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:690,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:693,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:695,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:695,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:699,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:701,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:702,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:702,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:703,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:708,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:709,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:711,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:713,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:716,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:716,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:717,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:717,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:723,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:724,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:724,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:727,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:736,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:737,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:739,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:740,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:741,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:743,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:744,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:754,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:755,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:756,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:757,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:759,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:762,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:763,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:767,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:767,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:771,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:772,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:776,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:776,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:777,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:782,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:787,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:787,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:788,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:788,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:789,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:789,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:795,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:795,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:798,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:802,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:803,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:806,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:807,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:812,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:815,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:819,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:820,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:822,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:822,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:825,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:828,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:832,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:836,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 838
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt0
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - advance_with_server_finished
    - auto::get
    - finished_mac
    - test_is_true
    - CHECK_both
    - auto::xxcrypt
    - psk_binder_mac
    - advance_with_server_hello
    - Botan::hex_decode
    - advance_with_client_finished
    - can_decrypt_application_traffic
    - test_no_throw
    - secure_vector<uint8_t>
    - export_key
    - can_encrypt_application_traffic
    - test_bin_eq
    - advance_with_client_hello
    - auto::end
    - Botan::TLS::Cipher_State::init_with_psk
    - must_expect_unprotected_alert_traffic
    - auto::begin
    - require
    - Botan_Tests::Test::flatten_result_lists
    - secrets::size
    - Botan::TLS::Ciphersuite::from_name
    - secrets::at
    - test_sz_eq
    - auto::prf_algo
    - Botan_Tests::make_CHECK_both
    - verify_peer_finished_mac
    - secrets::contains
    - RFC8448_TestData
    - is_compatible_with
    - can_export_keys
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_secret_derivation_rfc8448_rtt0()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - label
    - secret
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Journaling_Secret_Logger::maybe_log_secret
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - std::string
    - std::vector<uint8_t>
    linkageType: ''
    returnType: void
    signature: void maybe_log_secret(std::string_view label, std::span<const uint8_t>
      secret) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:44,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:44,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:45,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:46,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:46,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cs_client
    - sl_client
    - cs_server
    - sl_server
    argTypes:
    - Cipher_State*
    - Journaling_Secret_Logger*
    - Cipher_State*
    - Journaling_Secret_Logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: Botan_Tests::make_CHECK_both
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 4
    functionsReached:
    - std::bind
    - std::string
    - Botan_Tests::CHECK
    linkageType: ''
    returnType: decltype(auto)
    signature: "decltype(auto) make_CHECK_both(Cipher_State* cs_client,\n                               Journaling_Secret_Logger*
      sl_client,\n                               Cipher_State* cs_server,\n                               Journaling_Secret_Logger*
      sl_server)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:66,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:68,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:69,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - n
    - em
    - rh
    - ef
    - pf
    argTypes:
    - std::string
    - Connection_Side
    - std::vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: Botan_Tests::RFC8448_TestData::RFC8448_TestData
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void RFC8448_TestData(std::string n,\n                       Connection_Side
      em,\n                       std::vector<uint8_t> rh,\n                       secure_vector<uint8_t>
      ef,\n                       secure_vector<uint8_t> pf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:74,1
    - Dst: Cipher_State*::encrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: Botan_Tests::RFC8448_TestData::encrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 2
    functionsReached:
    - Cipher_State*::encrypt_record_fragment
    - test_bin_eq
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void encrypt(Test::Result& result, Cipher_State* cs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:82,1
    - Dst: Cipher_State*::decrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:83,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: Botan_Tests::RFC8448_TestData::decrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 2
    functionsReached:
    - test_bin_eq
    - Cipher_State*::decrypt_record_fragment
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void decrypt(Test::Result& result, Cipher_State* cs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_TestData::encrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:90,1
    - Dst: Botan_Tests::RFC8448_TestData::decrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' result'
    - cs
    - side
    argTypes:
    - Test::Result
    - Cipher_State*
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: Botan_Tests::RFC8448_TestData::xxcrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_TestData::encrypt
    - Botan_Tests::RFC8448_TestData::decrypt
    linkageType: ''
    returnType: void
    signature: void xxcrypt(Test::Result& result, Cipher_State* cs, Connection_Side
      side) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:99,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:103,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:110,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:113,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:118,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:128,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:133,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:138,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:143,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:148,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:153,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:158,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:164,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:166,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:167,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:200,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:236,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:238,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:239,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:243,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:249,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:251,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:252,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:264,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:279,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:281,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:282,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:286,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:293,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:295,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:296,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:300,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:305,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:310,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:311,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:312,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:317,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:318,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:322,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:322,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:325,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:326,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:328,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:329,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:335,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:336,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:338,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:338,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:339,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:339,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:342,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:345,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:346,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:350,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:352,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:353,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:359,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:363,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:370,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:371,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:373,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:374,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:380,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:385,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:385,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:390,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:390,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:391,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:392,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:400,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:401,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:402,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:403,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:406,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:410,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:411,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:414,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:415,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:420,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:429,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:430,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:431,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:431,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:432,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:433,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:438,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:441,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:445,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:447,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:447,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:448,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:449,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:453,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:455,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:455,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:456,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:456,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:459,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:460,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:464,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:464,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:472,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:475,1
    - Dst: update_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:482,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:483,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:483,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:484,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:484,1
    - Dst: update_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:488,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:488,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:493,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: clear_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:502,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:504,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:504,1
    - Dst: clear_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:508,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:508,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 510
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt1
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - advance_with_server_finished
    - auto::get
    - finished_mac
    - test_is_true
    - CHECK_both
    - auto::xxcrypt
    - Botan::hex_decode
    - advance_with_client_finished
    - can_decrypt_application_traffic
    - test_no_throw
    - secure_vector<uint8_t>
    - next_ticket_nonce
    - psk
    - export_key
    - clear_read_keys
    - can_encrypt_application_traffic
    - test_bin_eq
    - Botan::TLS::Ticket_Nonce
    - Botan::TLS::Cipher_State::init_with_server_hello
    - must_expect_unprotected_alert_traffic
    - require
    - Botan_Tests::Test::flatten_result_lists
    - secrets::size
    - Botan::TLS::Ciphersuite::from_name
    - clear_write_keys
    - update_read_keys
    - update_write_keys
    - secrets::at
    - test_sz_eq
    - Botan_Tests::make_CHECK_both
    - verify_peer_finished_mac
    - test_throws
    - secrets::contains
    - RFC8448_TestData
    - Botan_Tests::random_bit_generator::max
    - is_compatible_with
    - can_export_keys
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_secret_derivation_rfc8448_rtt1()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:514,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:520,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:526,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:531,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:535,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:541,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:545,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:551,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:555,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:559,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:563,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:567,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:571,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:575,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:579,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:583,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:590,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:595,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:599,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:601,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:602,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:608,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:617,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:619,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:620,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:624,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:630,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:632,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:633,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:637,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:644,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:646,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:647,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:651,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:656,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:661,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:664,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:665,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:668,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:672,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:675,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:675,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:680,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:681,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:684,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:686,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:686,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:687,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:689,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:689,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:690,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:690,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:693,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:695,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:695,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:699,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:701,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:702,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:702,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:703,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:708,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:709,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:711,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:713,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:716,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:716,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:717,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:717,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:723,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:724,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:724,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:727,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:736,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:737,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:739,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:740,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:741,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:743,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:744,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:754,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:755,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:756,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:757,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:759,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:762,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:763,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:767,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:767,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:771,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:772,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:776,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:776,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:777,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:782,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:787,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:787,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:788,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:788,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:789,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:789,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:795,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:795,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:798,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:802,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:803,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:806,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:807,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:812,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:815,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:819,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:820,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:822,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:822,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:825,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:828,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:832,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:836,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 838
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt0
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - advance_with_server_finished
    - auto::get
    - finished_mac
    - test_is_true
    - CHECK_both
    - auto::xxcrypt
    - psk_binder_mac
    - advance_with_server_hello
    - Botan::hex_decode
    - advance_with_client_finished
    - can_decrypt_application_traffic
    - test_no_throw
    - secure_vector<uint8_t>
    - export_key
    - can_encrypt_application_traffic
    - test_bin_eq
    - advance_with_client_hello
    - auto::end
    - Botan::TLS::Cipher_State::init_with_psk
    - must_expect_unprotected_alert_traffic
    - auto::begin
    - require
    - Botan_Tests::Test::flatten_result_lists
    - secrets::size
    - Botan::TLS::Ciphersuite::from_name
    - secrets::at
    - test_sz_eq
    - auto::prf_algo
    - Botan_Tests::make_CHECK_both
    - verify_peer_finished_mac
    - secrets::contains
    - RFC8448_TestData
    - is_compatible_with
    - can_export_keys
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_secret_derivation_rfc8448_rtt0()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - label
    - secret
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Journaling_Secret_Logger::maybe_log_secret
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - std::string
    - std::vector<uint8_t>
    linkageType: ''
    returnType: void
    signature: void maybe_log_secret(std::string_view label, std::span<const uint8_t>
      secret) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:44,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:44,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:45,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:46,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:46,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cs_client
    - sl_client
    - cs_server
    - sl_server
    argTypes:
    - Cipher_State*
    - Journaling_Secret_Logger*
    - Cipher_State*
    - Journaling_Secret_Logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: Botan_Tests::make_CHECK_both
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 6
    functionsReached:
    - std::bind
    - std::string
    - Botan_Tests::CHECK
    linkageType: ''
    returnType: decltype(auto)
    signature: "decltype(auto) make_CHECK_both(Cipher_State* cs_client,\n                               Journaling_Secret_Logger*
      sl_client,\n                               Cipher_State* cs_server,\n                               Journaling_Secret_Logger*
      sl_server)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:66,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:68,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:69,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - n
    - em
    - rh
    - ef
    - pf
    argTypes:
    - std::string
    - Connection_Side
    - std::vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: Botan_Tests::RFC8448_TestData::RFC8448_TestData
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void RFC8448_TestData(std::string n,\n                       Connection_Side
      em,\n                       std::vector<uint8_t> rh,\n                       secure_vector<uint8_t>
      ef,\n                       secure_vector<uint8_t> pf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:74,1
    - Dst: Cipher_State*::encrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: Botan_Tests::RFC8448_TestData::encrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 3
    functionsReached:
    - Cipher_State*::encrypt_record_fragment
    - test_bin_eq
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void encrypt(Test::Result& result, Cipher_State* cs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:82,1
    - Dst: Cipher_State*::decrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:83,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: Botan_Tests::RFC8448_TestData::decrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 3
    functionsReached:
    - test_bin_eq
    - Cipher_State*::decrypt_record_fragment
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void decrypt(Test::Result& result, Cipher_State* cs) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_TestData::encrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:90,1
    - Dst: Botan_Tests::RFC8448_TestData::decrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' result'
    - cs
    - side
    argTypes:
    - Test::Result
    - Cipher_State*
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: Botan_Tests::RFC8448_TestData::xxcrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_TestData::encrypt
    - Botan_Tests::RFC8448_TestData::decrypt
    linkageType: ''
    returnType: void
    signature: void xxcrypt(Test::Result& result, Cipher_State* cs, Connection_Side
      side) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:99,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:103,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:110,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:113,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:118,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:128,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:133,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:138,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:143,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:148,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:153,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:158,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:164,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:166,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:167,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:200,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:236,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:238,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:239,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:243,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:249,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:251,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:252,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:264,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:279,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:281,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:282,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:286,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:293,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:295,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:296,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:300,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:305,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:310,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:311,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:312,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:317,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:318,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:322,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:322,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:325,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:326,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:328,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:329,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:335,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:336,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:338,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:338,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:339,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:339,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:342,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:345,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:346,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:350,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:352,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:353,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:359,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:363,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:370,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:371,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:373,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:374,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:380,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:385,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:385,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:390,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:390,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:391,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:392,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:400,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:401,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:402,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:403,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:406,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:410,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:411,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:414,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:415,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:420,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:429,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:430,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:431,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:431,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:432,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:433,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:438,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:441,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:445,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:447,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:447,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:448,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:449,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:453,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:455,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:455,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:456,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:456,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:459,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:460,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:464,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:464,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:472,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:475,1
    - Dst: update_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:482,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:483,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:483,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:484,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:484,1
    - Dst: update_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:488,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:488,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:493,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: clear_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:502,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:504,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:504,1
    - Dst: clear_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:508,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:508,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 510
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt1
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - advance_with_server_finished
    - auto::get
    - finished_mac
    - test_is_true
    - CHECK_both
    - auto::xxcrypt
    - Botan::hex_decode
    - advance_with_client_finished
    - can_decrypt_application_traffic
    - test_no_throw
    - secure_vector<uint8_t>
    - next_ticket_nonce
    - psk
    - export_key
    - clear_read_keys
    - can_encrypt_application_traffic
    - test_bin_eq
    - Botan::TLS::Ticket_Nonce
    - Botan::TLS::Cipher_State::init_with_server_hello
    - must_expect_unprotected_alert_traffic
    - require
    - Botan_Tests::Test::flatten_result_lists
    - secrets::size
    - Botan::TLS::Ciphersuite::from_name
    - clear_write_keys
    - update_read_keys
    - update_write_keys
    - secrets::at
    - test_sz_eq
    - Botan_Tests::make_CHECK_both
    - verify_peer_finished_mac
    - test_throws
    - secrets::contains
    - RFC8448_TestData
    - Botan_Tests::random_bit_generator::max
    - is_compatible_with
    - can_export_keys
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_secret_derivation_rfc8448_rtt1()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:514,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:520,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:526,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:531,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:535,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:541,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:545,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:551,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:555,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:559,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:563,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:567,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:571,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:575,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:579,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:583,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:590,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:595,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:599,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:601,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:602,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:608,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:617,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:619,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:620,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:624,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:630,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:632,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:633,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:637,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:644,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:646,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:647,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:651,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:656,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:661,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:663,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:664,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:665,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:668,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:672,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:675,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:675,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:680,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:681,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:684,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:686,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:686,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:687,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:689,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:689,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:690,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:690,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:693,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:695,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:695,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:699,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:701,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:702,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:702,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:703,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:708,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:709,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:711,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:713,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:716,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:716,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:717,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:717,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:723,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:724,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:724,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:727,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:736,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:737,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:739,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:740,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:741,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:743,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:744,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:754,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:755,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:756,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:757,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:759,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:762,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:763,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:767,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:767,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:771,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:772,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:776,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:776,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:777,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:782,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:787,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:787,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:788,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:788,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:789,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:789,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:795,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:795,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:798,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:802,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:803,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:806,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:807,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:812,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:815,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:819,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:820,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:822,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:822,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:825,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:828,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:832,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:836,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 838
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt0
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - advance_with_server_finished
    - auto::get
    - finished_mac
    - test_is_true
    - CHECK_both
    - auto::xxcrypt
    - psk_binder_mac
    - advance_with_server_hello
    - Botan::hex_decode
    - advance_with_client_finished
    - can_decrypt_application_traffic
    - test_no_throw
    - secure_vector<uint8_t>
    - export_key
    - can_encrypt_application_traffic
    - test_bin_eq
    - advance_with_client_hello
    - auto::end
    - Botan::TLS::Cipher_State::init_with_psk
    - must_expect_unprotected_alert_traffic
    - auto::begin
    - require
    - Botan_Tests::Test::flatten_result_lists
    - secrets::size
    - Botan::TLS::Ciphersuite::from_name
    - secrets::at
    - test_sz_eq
    - auto::prf_algo
    - Botan_Tests::make_CHECK_both
    - verify_peer_finished_mac
    - secrets::contains
    - RFC8448_TestData
    - is_compatible_with
    - can_export_keys
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_secret_derivation_rfc8448_rtt0()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ElGamal_Encrypt_Tests::ElGamal_Encrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ElGamal_Encrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:28,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_elgamal.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_elgamal.cpp:29,1
    - Dst: std::make_unique<Botan::ElGamal_PrivateKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ElGamal_Encrypt_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_str
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_Tests::ElGamal_Decrypt_Tests::ElGamal_Decrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ElGamal_Decrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:40,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:42,1
    - Dst: std::make_unique<Botan::ElGamal_PrivateKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: Botan_Tests::ElGamal_Decrypt_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::ElGamal_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ElGamal_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ElGamal_PublicKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:59,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_elgamal.cpp:59,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_elgamal.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: Botan_Tests::ElGamal_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ElGamal_Encrypt_Tests::ElGamal_Encrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ElGamal_Encrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:28,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_elgamal.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_elgamal.cpp:29,1
    - Dst: std::make_unique<Botan::ElGamal_PrivateKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ElGamal_Encrypt_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_str
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_Tests::ElGamal_Decrypt_Tests::ElGamal_Decrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ElGamal_Decrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:40,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:42,1
    - Dst: std::make_unique<Botan::ElGamal_PrivateKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: Botan_Tests::ElGamal_Decrypt_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::ElGamal_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ElGamal_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ElGamal_PublicKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:59,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_elgamal.cpp:59,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_elgamal.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: Botan_Tests::ElGamal_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ElGamal_Encrypt_Tests::ElGamal_Encrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ElGamal_Encrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:28,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_elgamal.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_elgamal.cpp:29,1
    - Dst: std::make_unique<Botan::ElGamal_PrivateKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ElGamal_Encrypt_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_str
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_Tests::ElGamal_Decrypt_Tests::ElGamal_Decrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ElGamal_Decrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:40,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:42,1
    - Dst: std::make_unique<Botan::ElGamal_PrivateKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: Botan_Tests::ElGamal_Decrypt_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::ElGamal_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ElGamal_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ElGamal_PublicKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:59,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_elgamal.cpp:59,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_elgamal.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: Botan_Tests::ElGamal_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ElGamal_Encrypt_Tests::ElGamal_Encrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ElGamal_Encrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:28,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_elgamal.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_elgamal.cpp:29,1
    - Dst: std::make_unique<Botan::ElGamal_PrivateKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ElGamal_Encrypt_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_str
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_Tests::ElGamal_Decrypt_Tests::ElGamal_Decrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ElGamal_Decrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:40,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_elgamal.cpp:42,1
    - Dst: std::make_unique<Botan::ElGamal_PrivateKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: Botan_Tests::ElGamal_Decrypt_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::ElGamal_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ElGamal_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ElGamal_PublicKey>
      Src: /src/botan/src/tests/test_elgamal.cpp:59,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_elgamal.cpp:59,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_elgamal.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: Botan_Tests::ElGamal_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::OCB_Wide_Test_Block_Cipher
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_Test_Block_Cipher(size_t bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
      Src: /src/botan/src/tests/test_ocb.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<Botan::BlockCipher>
    signature: std::unique_ptr<Botan::BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_ocb.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> key) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_ocb.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:48,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_ocb.cpp:49,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:56,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::poly_double_n
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ocb.cpp:79,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:93,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:94,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan_Tests::OCB_Wide_KAT_Tests::OCB_Wide_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:110,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:111,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:112,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:113,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:116,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:117,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:117,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:119,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:119,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:120,1
    - Dst: Botan::OCB_Encryption::set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:121,1
    - Dst: Botan::OCB_Encryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:122,1
    - Dst: Botan::OCB_Encryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:124,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:126,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:126,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:127,1
    - Dst: Botan::OCB_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:128,1
    - Dst: Botan::OCB_Decryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:129,1
    - Dst: Botan::OCB_Decryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:130,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: Botan_Tests::OCB_Wide_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::set_associated_data
    - Botan::OCB_Decryption::set_key
    - Botan::OCB_Decryption::finish
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - std::vector::end
    - Botan::OCB_Encryption::start
    - std::min<size_t>
    - Botan::OCB_Encryption::set_associated_data
    - std::vector::begin
    - Test::Result::test_bin_eq
    - Botan::OCB_Decryption::start
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::OCB_Wide_Long_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_Long_KAT_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:146,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_ocb.cpp:153,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ocb.cpp:168,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:170,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ocb.cpp:173,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:173,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:197,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:208,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:209,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:214,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:216,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:218,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:223,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:225,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 228
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    - std::move
    - Botan::store_be
    - static_cast<uint8_t>
    - Botan::BlockCipher::create_or_throw
    - static_cast<uint16_t>
    - std::vector::data
    - std::min<size_t>
    - Test::Result::test_bin_eq
    - Test_Error
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: begin
      Src: /src/botan/src/tests/test_ocb.cpp:239,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:239,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:240,1
    - Dst: insert
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' output_to'
    - ' enc'
    - ' nonce'
    - ' pt'
    - ' ad'
    argTypes:
    - std::vector<uint8_t>
    - Botan::OCB_Encryption
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 1
    functionsReached:
    - finish
    - data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - set_associated_data
    - start
    - insert
    - size
    - end
    linkageType: ''
    returnType: void
    signature: "void ocb_encrypt(Test::Result& /*result*/,\n                              std::vector<uint8_t>&
      output_to,\n                              Botan::OCB_Encryption& enc,\n                              const
      std::vector<uint8_t>& nonce,\n                              const std::vector<uint8_t>&
      pt,\n                              const std::vector<uint8_t>& ad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: Botan_Tests::OCB_Long_KAT_Tests::OCB_Long_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Long_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ocb.cpp:254,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ocb.cpp:255,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:256,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ocb.cpp:260,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_ocb.cpp:264,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_ocb.cpp:266,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ocb.cpp:267,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:270,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:272,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:273,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:282,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:282,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:284,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:285,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:285,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:286,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:287,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:287,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:288,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:291,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:291,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:293,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 298
    functionName: Botan_Tests::OCB_Long_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::OCB_Decryption::set_key
    - std::to_string
    - std::move
    - Botan::store_be
    - auto::new_object
    - Botan::BlockCipher::create_or_throw
    - static_cast<uint8_t>
    - Test::Result::test_bin_eq
    - get_req_sz
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: begin
      Src: /src/botan/src/tests/test_ocb.cpp:312,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:312,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:313,1
    - Dst: insert
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:321,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:323,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ocb.cpp:325,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocb.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 7
    argNames:
    - ' result'
    - ' output_to'
    - ' enc'
    - ' dec'
    - ' nonce'
    - ' pt'
    - ' ad'
    argTypes:
    - Test::Result
    - std::vector<uint8_t>
    - Botan::AEAD_Mode
    - Botan::AEAD_Mode
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 327
    functionName: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 1
    functionsReached:
    - finish
    - data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - set_associated_data
    - start
    - insert
    - size
    - test_failure
    - test_bin_eq
    - what
    - end
    linkageType: ''
    returnType: void
    signature: "void ocb_encrypt(Test::Result& result,\n                              std::vector<uint8_t>&
      output_to,\n                              Botan::AEAD_Mode& enc,\n                              Botan::AEAD_Mode&
      dec,\n                              const std::vector<uint8_t>& nonce,\n                              const
      std::vector<uint8_t>& pt,\n                              const std::vector<uint8_t>&
      ad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - bs
    - parallelism
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: Botan_Tests::OCB_Null_Cipher::OCB_Null_Cipher
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Null_Cipher(size_t bs, size_t parallelism)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: Botan_Tests::OCB_Null_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 345
    functionName: Botan_Tests::OCB_Null_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: Botan_Tests::OCB_Null_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OCB_Null_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: Botan_Tests::OCB_Null_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Null_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<Botan::BlockCipher>
    signature: std::unique_ptr<Botan::BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: Botan_Tests::OCB_Null_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    functionName: Botan_Tests::OCB_Null_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /*key*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_ocb.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 357
    functionName: Botan_Tests::OCB_Null_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: Botan_Tests::OCB_Null_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: Botan_Tests::OCB_Null_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: Botan_Tests::OCB_Null_Cipher::parallelism
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:402,1
    - Dst: Botan::OCB_Encryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:403,1
    - Dst: Botan::OCB_Encryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:408,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:412,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ocb.cpp:413,1
    - Dst: Botan::OCB_Encryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:414,1
    - Dst: Botan::OCB_Encryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:418,1
    - Dst: std::make_unique<OCB_Null_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:421,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:422,1
    - Dst: Botan::OCB_Decryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:423,1
    - Dst: Botan::OCB_Decryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:425,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ocb.cpp:428,1
    - Dst: Botan::OCB_Decryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:429,1
    - Dst: Botan::OCB_Decryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 435
    functionName: Botan_Tests::test_ocb_crash_regression
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::set_key
    - Botan::OCB_Decryption::finish
    - std::vector::resize
    - Botan::OCB_Encryption::start
    - std::make_unique<OCB_Null_Cipher>
    - Botan::OCB_Decryption::start
    - Botan::OCB_Encryption::update
    - Botan::OCB_Decryption::update
    - Botan::OCB_Encryption::set_key
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ocb_crash_regression()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::OCB_Wide_Test_Block_Cipher
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_Test_Block_Cipher(size_t bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
      Src: /src/botan/src/tests/test_ocb.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<Botan::BlockCipher>
    signature: std::unique_ptr<Botan::BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_ocb.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> key) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_ocb.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:48,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_ocb.cpp:49,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:56,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::poly_double_n
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ocb.cpp:79,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:93,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:94,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan_Tests::OCB_Wide_KAT_Tests::OCB_Wide_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:110,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:111,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:112,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:113,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:116,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:117,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:117,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:119,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:119,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:120,1
    - Dst: Botan::OCB_Encryption::set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:121,1
    - Dst: Botan::OCB_Encryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:122,1
    - Dst: Botan::OCB_Encryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:124,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:126,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:126,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:127,1
    - Dst: Botan::OCB_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:128,1
    - Dst: Botan::OCB_Decryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:129,1
    - Dst: Botan::OCB_Decryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:130,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: Botan_Tests::OCB_Wide_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::set_associated_data
    - Botan::OCB_Decryption::set_key
    - Botan::OCB_Decryption::finish
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - std::vector::end
    - Botan::OCB_Encryption::start
    - std::min<size_t>
    - Botan::OCB_Encryption::set_associated_data
    - std::vector::begin
    - Test::Result::test_bin_eq
    - Botan::OCB_Decryption::start
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::OCB_Wide_Long_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_Long_KAT_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:146,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_ocb.cpp:153,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ocb.cpp:168,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:170,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ocb.cpp:173,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:173,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:197,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:208,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:209,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:214,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:216,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:218,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:223,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:225,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 228
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    - std::move
    - Botan::store_be
    - static_cast<uint8_t>
    - Botan::BlockCipher::create_or_throw
    - static_cast<uint16_t>
    - std::vector::data
    - std::min<size_t>
    - Test::Result::test_bin_eq
    - Test_Error
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: begin
      Src: /src/botan/src/tests/test_ocb.cpp:239,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:239,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:240,1
    - Dst: insert
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' output_to'
    - ' enc'
    - ' nonce'
    - ' pt'
    - ' ad'
    argTypes:
    - std::vector<uint8_t>
    - Botan::OCB_Encryption
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 2
    functionsReached:
    - finish
    - data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - set_associated_data
    - start
    - insert
    - size
    - end
    linkageType: ''
    returnType: void
    signature: "void ocb_encrypt(Test::Result& /*result*/,\n                              std::vector<uint8_t>&
      output_to,\n                              Botan::OCB_Encryption& enc,\n                              const
      std::vector<uint8_t>& nonce,\n                              const std::vector<uint8_t>&
      pt,\n                              const std::vector<uint8_t>& ad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: Botan_Tests::OCB_Long_KAT_Tests::OCB_Long_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Long_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ocb.cpp:254,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ocb.cpp:255,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:256,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ocb.cpp:260,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_ocb.cpp:264,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_ocb.cpp:266,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ocb.cpp:267,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:270,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:272,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:273,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:282,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:282,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:284,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:285,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:285,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:286,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:287,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:287,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:288,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:291,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:291,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:293,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 298
    functionName: Botan_Tests::OCB_Long_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::OCB_Decryption::set_key
    - std::to_string
    - std::move
    - Botan::store_be
    - auto::new_object
    - Botan::BlockCipher::create_or_throw
    - static_cast<uint8_t>
    - Test::Result::test_bin_eq
    - get_req_sz
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: begin
      Src: /src/botan/src/tests/test_ocb.cpp:312,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:312,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:313,1
    - Dst: insert
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:321,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:323,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ocb.cpp:325,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocb.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 7
    argNames:
    - ' result'
    - ' output_to'
    - ' enc'
    - ' dec'
    - ' nonce'
    - ' pt'
    - ' ad'
    argTypes:
    - Test::Result
    - std::vector<uint8_t>
    - Botan::AEAD_Mode
    - Botan::AEAD_Mode
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 327
    functionName: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 2
    functionsReached:
    - finish
    - data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - set_associated_data
    - start
    - insert
    - size
    - test_failure
    - test_bin_eq
    - what
    - end
    linkageType: ''
    returnType: void
    signature: "void ocb_encrypt(Test::Result& result,\n                              std::vector<uint8_t>&
      output_to,\n                              Botan::AEAD_Mode& enc,\n                              Botan::AEAD_Mode&
      dec,\n                              const std::vector<uint8_t>& nonce,\n                              const
      std::vector<uint8_t>& pt,\n                              const std::vector<uint8_t>&
      ad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - bs
    - parallelism
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: Botan_Tests::OCB_Null_Cipher::OCB_Null_Cipher
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Null_Cipher(size_t bs, size_t parallelism)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: Botan_Tests::OCB_Null_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 345
    functionName: Botan_Tests::OCB_Null_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: Botan_Tests::OCB_Null_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OCB_Null_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: Botan_Tests::OCB_Null_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Null_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<Botan::BlockCipher>
    signature: std::unique_ptr<Botan::BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: Botan_Tests::OCB_Null_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    functionName: Botan_Tests::OCB_Null_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /*key*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_ocb.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 357
    functionName: Botan_Tests::OCB_Null_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: Botan_Tests::OCB_Null_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: Botan_Tests::OCB_Null_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: Botan_Tests::OCB_Null_Cipher::parallelism
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:402,1
    - Dst: Botan::OCB_Encryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:403,1
    - Dst: Botan::OCB_Encryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:408,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:412,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ocb.cpp:413,1
    - Dst: Botan::OCB_Encryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:414,1
    - Dst: Botan::OCB_Encryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:418,1
    - Dst: std::make_unique<OCB_Null_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:421,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:422,1
    - Dst: Botan::OCB_Decryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:423,1
    - Dst: Botan::OCB_Decryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:425,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ocb.cpp:428,1
    - Dst: Botan::OCB_Decryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:429,1
    - Dst: Botan::OCB_Decryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 435
    functionName: Botan_Tests::test_ocb_crash_regression
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::set_key
    - Botan::OCB_Decryption::finish
    - std::vector::resize
    - Botan::OCB_Encryption::start
    - std::make_unique<OCB_Null_Cipher>
    - Botan::OCB_Decryption::start
    - Botan::OCB_Encryption::update
    - Botan::OCB_Decryption::update
    - Botan::OCB_Encryption::set_key
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ocb_crash_regression()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::OCB_Wide_Test_Block_Cipher
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_Test_Block_Cipher(size_t bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
      Src: /src/botan/src/tests/test_ocb.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<Botan::BlockCipher>
    signature: std::unique_ptr<Botan::BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_ocb.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> key) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_ocb.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:48,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_ocb.cpp:49,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:56,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::poly_double_n
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ocb.cpp:79,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:93,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:94,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan_Tests::OCB_Wide_KAT_Tests::OCB_Wide_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:110,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:111,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:112,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:113,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:116,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:117,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:117,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:119,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:119,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:120,1
    - Dst: Botan::OCB_Encryption::set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:121,1
    - Dst: Botan::OCB_Encryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:122,1
    - Dst: Botan::OCB_Encryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:124,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:126,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:126,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:127,1
    - Dst: Botan::OCB_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:128,1
    - Dst: Botan::OCB_Decryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:129,1
    - Dst: Botan::OCB_Decryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:130,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: Botan_Tests::OCB_Wide_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::set_associated_data
    - Botan::OCB_Decryption::set_key
    - Botan::OCB_Decryption::finish
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - std::vector::end
    - Botan::OCB_Encryption::start
    - std::min<size_t>
    - Botan::OCB_Encryption::set_associated_data
    - std::vector::begin
    - Test::Result::test_bin_eq
    - Botan::OCB_Decryption::start
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::OCB_Wide_Long_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_Long_KAT_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:146,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_ocb.cpp:153,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ocb.cpp:168,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:170,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ocb.cpp:173,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:173,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:197,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:208,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:209,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:214,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:216,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:218,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:223,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:225,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 228
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    - std::move
    - Botan::store_be
    - static_cast<uint8_t>
    - Botan::BlockCipher::create_or_throw
    - static_cast<uint16_t>
    - std::vector::data
    - std::min<size_t>
    - Test::Result::test_bin_eq
    - Test_Error
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: begin
      Src: /src/botan/src/tests/test_ocb.cpp:239,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:239,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:240,1
    - Dst: insert
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' output_to'
    - ' enc'
    - ' nonce'
    - ' pt'
    - ' ad'
    argTypes:
    - std::vector<uint8_t>
    - Botan::OCB_Encryption
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 3
    functionsReached:
    - finish
    - data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - set_associated_data
    - start
    - insert
    - size
    - end
    linkageType: ''
    returnType: void
    signature: "void ocb_encrypt(Test::Result& /*result*/,\n                              std::vector<uint8_t>&
      output_to,\n                              Botan::OCB_Encryption& enc,\n                              const
      std::vector<uint8_t>& nonce,\n                              const std::vector<uint8_t>&
      pt,\n                              const std::vector<uint8_t>& ad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: Botan_Tests::OCB_Long_KAT_Tests::OCB_Long_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Long_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ocb.cpp:254,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ocb.cpp:255,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:256,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ocb.cpp:260,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_ocb.cpp:264,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_ocb.cpp:266,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ocb.cpp:267,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:270,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:272,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:273,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:282,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:282,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:284,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:285,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:285,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:286,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:287,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:287,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:288,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:291,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:291,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:293,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 298
    functionName: Botan_Tests::OCB_Long_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::OCB_Decryption::set_key
    - std::to_string
    - std::move
    - Botan::store_be
    - auto::new_object
    - Botan::BlockCipher::create_or_throw
    - static_cast<uint8_t>
    - Test::Result::test_bin_eq
    - get_req_sz
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: begin
      Src: /src/botan/src/tests/test_ocb.cpp:312,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:312,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:313,1
    - Dst: insert
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:321,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:323,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ocb.cpp:325,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocb.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 7
    argNames:
    - ' result'
    - ' output_to'
    - ' enc'
    - ' dec'
    - ' nonce'
    - ' pt'
    - ' ad'
    argTypes:
    - Test::Result
    - std::vector<uint8_t>
    - Botan::AEAD_Mode
    - Botan::AEAD_Mode
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 327
    functionName: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 3
    functionsReached:
    - finish
    - data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - set_associated_data
    - start
    - insert
    - size
    - test_failure
    - test_bin_eq
    - what
    - end
    linkageType: ''
    returnType: void
    signature: "void ocb_encrypt(Test::Result& result,\n                              std::vector<uint8_t>&
      output_to,\n                              Botan::AEAD_Mode& enc,\n                              Botan::AEAD_Mode&
      dec,\n                              const std::vector<uint8_t>& nonce,\n                              const
      std::vector<uint8_t>& pt,\n                              const std::vector<uint8_t>&
      ad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - bs
    - parallelism
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: Botan_Tests::OCB_Null_Cipher::OCB_Null_Cipher
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Null_Cipher(size_t bs, size_t parallelism)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: Botan_Tests::OCB_Null_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 345
    functionName: Botan_Tests::OCB_Null_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: Botan_Tests::OCB_Null_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OCB_Null_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: Botan_Tests::OCB_Null_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Null_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<Botan::BlockCipher>
    signature: std::unique_ptr<Botan::BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: Botan_Tests::OCB_Null_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    functionName: Botan_Tests::OCB_Null_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /*key*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_ocb.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 357
    functionName: Botan_Tests::OCB_Null_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: Botan_Tests::OCB_Null_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: Botan_Tests::OCB_Null_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: Botan_Tests::OCB_Null_Cipher::parallelism
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:402,1
    - Dst: Botan::OCB_Encryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:403,1
    - Dst: Botan::OCB_Encryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:408,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:412,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ocb.cpp:413,1
    - Dst: Botan::OCB_Encryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:414,1
    - Dst: Botan::OCB_Encryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:418,1
    - Dst: std::make_unique<OCB_Null_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:421,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:422,1
    - Dst: Botan::OCB_Decryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:423,1
    - Dst: Botan::OCB_Decryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:425,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ocb.cpp:428,1
    - Dst: Botan::OCB_Decryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:429,1
    - Dst: Botan::OCB_Decryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 435
    functionName: Botan_Tests::test_ocb_crash_regression
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::set_key
    - Botan::OCB_Decryption::finish
    - std::vector::resize
    - Botan::OCB_Encryption::start
    - std::make_unique<OCB_Null_Cipher>
    - Botan::OCB_Decryption::start
    - Botan::OCB_Encryption::update
    - Botan::OCB_Decryption::update
    - Botan::OCB_Encryption::set_key
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ocb_crash_regression()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::OCB_Wide_Test_Block_Cipher
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_Test_Block_Cipher(size_t bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
      Src: /src/botan/src/tests/test_ocb.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<Botan::BlockCipher>
    signature: std::unique_ptr<Botan::BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_ocb.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_ocb.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> key) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_ocb.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:48,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_ocb.cpp:49,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:56,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::poly_double_n
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ocb.cpp:79,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:93,1
    - Dst: Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
      Src: /src/botan/src/tests/test_ocb.cpp:94,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: Botan_Tests::OCB_Wide_Test_Block_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan_Tests::OCB_Wide_KAT_Tests::OCB_Wide_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:110,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:111,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:112,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:113,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:116,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:117,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:117,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:119,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:119,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:120,1
    - Dst: Botan::OCB_Encryption::set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:121,1
    - Dst: Botan::OCB_Encryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:122,1
    - Dst: Botan::OCB_Encryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:124,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:126,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:126,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:127,1
    - Dst: Botan::OCB_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:128,1
    - Dst: Botan::OCB_Decryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:129,1
    - Dst: Botan::OCB_Decryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:130,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: Botan_Tests::OCB_Wide_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::set_associated_data
    - Botan::OCB_Decryption::set_key
    - Botan::OCB_Decryption::finish
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - std::vector::end
    - Botan::OCB_Encryption::start
    - std::min<size_t>
    - Botan::OCB_Encryption::set_associated_data
    - std::vector::begin
    - Test::Result::test_bin_eq
    - Botan::OCB_Decryption::start
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::OCB_Wide_Long_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Wide_Long_KAT_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:146,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_ocb.cpp:153,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ocb.cpp:168,1
    - Dst: std::make_unique<OCB_Wide_Test_Block_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:170,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ocb.cpp:173,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_ocb.cpp:173,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:197,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:208,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:209,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:212,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:214,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:215,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:216,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:217,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:218,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ocb.cpp:221,1
    - Dst: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:223,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:225,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 228
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    - std::move
    - Botan::store_be
    - static_cast<uint8_t>
    - Botan::BlockCipher::create_or_throw
    - static_cast<uint16_t>
    - std::vector::data
    - std::min<size_t>
    - Test::Result::test_bin_eq
    - Test_Error
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:237,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:238,1
    - Dst: begin
      Src: /src/botan/src/tests/test_ocb.cpp:239,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:239,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:240,1
    - Dst: insert
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ' output_to'
    - ' enc'
    - ' nonce'
    - ' pt'
    - ' ad'
    argTypes:
    - std::vector<uint8_t>
    - Botan::OCB_Encryption
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 4
    functionsReached:
    - finish
    - data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - set_associated_data
    - start
    - insert
    - size
    - end
    linkageType: ''
    returnType: void
    signature: "void ocb_encrypt(Test::Result& /*result*/,\n                              std::vector<uint8_t>&
      output_to,\n                              Botan::OCB_Encryption& enc,\n                              const
      std::vector<uint8_t>& nonce,\n                              const std::vector<uint8_t>&
      pt,\n                              const std::vector<uint8_t>& ad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: Botan_Tests::OCB_Long_KAT_Tests::OCB_Long_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Long_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ocb.cpp:254,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ocb.cpp:255,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ocb.cpp:256,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ocb.cpp:260,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_ocb.cpp:264,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_ocb.cpp:266,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ocb.cpp:267,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ocb.cpp:270,1
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:272,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:273,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:282,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:282,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:284,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:285,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:285,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:286,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:287,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:287,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:288,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ocb.cpp:291,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ocb.cpp:291,1
    - Dst: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
      Src: /src/botan/src/tests/test_ocb.cpp:293,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 298
    functionName: Botan_Tests::OCB_Long_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::OCB_Decryption::set_key
    - std::to_string
    - std::move
    - Botan::store_be
    - auto::new_object
    - Botan::BlockCipher::create_or_throw
    - static_cast<uint8_t>
    - Test::Result::test_bin_eq
    - get_req_sz
    - Botan::OCB_Encryption::set_key
    - get_req_bin
    - Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:308,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:310,1
    - Dst: begin
      Src: /src/botan/src/tests/test_ocb.cpp:312,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:312,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:313,1
    - Dst: insert
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: end
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_ocb.cpp:314,1
    - Dst: set_associated_data
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:317,1
    - Dst: start
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: data
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocb.cpp:319,1
    - Dst: finish
      Src: /src/botan/src/tests/test_ocb.cpp:321,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ocb.cpp:323,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ocb.cpp:325,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocb.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 7
    argNames:
    - ' result'
    - ' output_to'
    - ' enc'
    - ' dec'
    - ' nonce'
    - ' pt'
    - ' ad'
    argTypes:
    - Test::Result
    - std::vector<uint8_t>
    - Botan::AEAD_Mode
    - Botan::AEAD_Mode
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 327
    functionName: Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 4
    functionsReached:
    - finish
    - data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - set_associated_data
    - start
    - insert
    - size
    - test_failure
    - test_bin_eq
    - what
    - end
    linkageType: ''
    returnType: void
    signature: "void ocb_encrypt(Test::Result& result,\n                              std::vector<uint8_t>&
      output_to,\n                              Botan::AEAD_Mode& enc,\n                              Botan::AEAD_Mode&
      dec,\n                              const std::vector<uint8_t>& nonce,\n                              const
      std::vector<uint8_t>& pt,\n                              const std::vector<uint8_t>&
      ad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - bs
    - parallelism
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: Botan_Tests::OCB_Null_Cipher::OCB_Null_Cipher
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Null_Cipher(size_t bs, size_t parallelism)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: Botan_Tests::OCB_Null_Cipher::name
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 345
    functionName: Botan_Tests::OCB_Null_Cipher::block_size
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: Botan_Tests::OCB_Null_Cipher::clear
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OCB_Null_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: Botan_Tests::OCB_Null_Cipher::new_object
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<OCB_Null_Cipher>
    linkageType: ''
    returnType: std::unique_ptr<Botan::BlockCipher>
    signature: std::unique_ptr<Botan::BlockCipher> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: Botan_Tests::OCB_Null_Cipher::has_keying_material
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    functionName: Botan_Tests::OCB_Null_Cipher::key_schedule
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> /*key*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Key_Length_Specification
      Src: /src/botan/src/tests/test_ocb.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 357
    functionName: Botan_Tests::OCB_Null_Cipher::key_spec
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::Key_Length_Specification
    linkageType: ''
    returnType: Botan::Key_Length_Specification
    signature: Botan::Key_Length_Specification key_spec() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: Botan_Tests::OCB_Null_Cipher::encrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ocb.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - blocks
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: Botan_Tests::OCB_Null_Cipher::decrypt_n
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    linkageType: ''
    returnType: void
    signature: void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: Botan_Tests::OCB_Null_Cipher::parallelism
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Encryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:402,1
    - Dst: Botan::OCB_Encryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:403,1
    - Dst: Botan::OCB_Encryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:408,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ocb.cpp:412,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ocb.cpp:413,1
    - Dst: Botan::OCB_Encryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:414,1
    - Dst: Botan::OCB_Encryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:418,1
    - Dst: std::make_unique<OCB_Null_Cipher>
      Src: /src/botan/src/tests/test_ocb.cpp:421,1
    - Dst: Botan::OCB_Decryption::set_key
      Src: /src/botan/src/tests/test_ocb.cpp:422,1
    - Dst: Botan::OCB_Decryption::start
      Src: /src/botan/src/tests/test_ocb.cpp:423,1
    - Dst: Botan::OCB_Decryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:425,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ocb.cpp:428,1
    - Dst: Botan::OCB_Decryption::update
      Src: /src/botan/src/tests/test_ocb.cpp:429,1
    - Dst: Botan::OCB_Decryption::finish
      Src: /src/botan/src/tests/test_ocb.cpp:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 435
    functionName: Botan_Tests::test_ocb_crash_regression
    functionSourceFile: /src/botan/src/tests/test_ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::set_key
    - Botan::OCB_Decryption::finish
    - std::vector::resize
    - Botan::OCB_Encryption::start
    - std::make_unique<OCB_Null_Cipher>
    - Botan::OCB_Decryption::start
    - Botan::OCB_Encryption::update
    - Botan::OCB_Decryption::update
    - Botan::OCB_Encryption::set_key
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ocb_crash_regression()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ECDSA_Verification_Tests::ECDSA_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::ECDSA_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:37,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::ECDSA_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:42,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:43,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:44,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:46,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: Botan_Tests::ECDSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_Tests::ECDSA_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::ECDSA_Wycheproof_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Wycheproof_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::sig_format
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::Signature_Format
    signature: Botan::Signature_Format sig_format() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::test_random_invalid_sigs
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool test_random_invalid_sigs() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:67,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:72,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:73,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:74,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:76,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:101,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:105,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:107,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:109,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::rng
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_ecdsa.cpp:118,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: Botan_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ECDSA_Verification_Tests::ECDSA_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::ECDSA_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:37,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::ECDSA_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:42,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:43,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:44,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:46,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: Botan_Tests::ECDSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_Tests::ECDSA_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::ECDSA_Wycheproof_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Wycheproof_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::sig_format
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::Signature_Format
    signature: Botan::Signature_Format sig_format() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::test_random_invalid_sigs
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool test_random_invalid_sigs() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:67,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:72,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:73,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:74,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:76,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:101,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:105,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:107,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:109,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::rng
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_ecdsa.cpp:118,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: Botan_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/botan/src/tests/test_ecdsa.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: Botan_Tests::ECDSA_KAT_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - defined
    linkageType: ''
    returnType: void
    signature: void ECDSA_KAT_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:140,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Botan_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:144,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:145,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:146,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:148,1
    - Dst: Botan::ECDSA_PrivateKey::public_key
      Src: /src/botan/src/tests/test_ecdsa.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: Botan_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::ECDSA_PrivateKey::public_key
    - Botan_Tests::rng
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ECDSA_Verification_Tests::ECDSA_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::ECDSA_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:37,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::ECDSA_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:42,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:43,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:44,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:46,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: Botan_Tests::ECDSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_Tests::ECDSA_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::ECDSA_Wycheproof_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Wycheproof_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::sig_format
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::Signature_Format
    signature: Botan::Signature_Format sig_format() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::test_random_invalid_sigs
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool test_random_invalid_sigs() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:67,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:72,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:73,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:74,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:76,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:101,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:105,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:107,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:109,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::rng
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_ecdsa.cpp:118,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: Botan_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ECDSA_Verification_Tests::ECDSA_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::ECDSA_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:37,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::ECDSA_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:42,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:43,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:44,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:46,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: Botan_Tests::ECDSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_Tests::ECDSA_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::ECDSA_Wycheproof_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Wycheproof_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::sig_format
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::Signature_Format
    signature: Botan::Signature_Format sig_format() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::test_random_invalid_sigs
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool test_random_invalid_sigs() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:67,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:72,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:73,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:74,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:76,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:101,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:105,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:107,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:109,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::rng
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_ecdsa.cpp:118,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: Botan_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/botan/src/tests/test_ecdsa.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: Botan_Tests::ECDSA_KAT_Verification_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - defined
    linkageType: ''
    returnType: void
    signature: void ECDSA_KAT_Verification_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:140,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Botan_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:144,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:145,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:146,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:148,1
    - Dst: Botan::ECDSA_PrivateKey::public_key
      Src: /src/botan/src/tests/test_ecdsa.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: Botan_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::ECDSA_PrivateKey::public_key
    - Botan_Tests::rng
    - Botan::EC_Group::from_name
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: ECDSA_Sign_Verify_DER_Test::ECDSA_Sign_Verify_DER_Test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Sign_Verify_DER_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_ecdsa.cpp:161,1
    - Dst: ECDSA_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: ECDSA_Sign_Verify_DER_Test::key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::create_private_key
    - ECDSA_Sign_Verify_DER_Test::rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecdsa.cpp:168,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/test_ecdsa.cpp:169,1
    - Dst: begin
      Src: /src/botan/src/tests/test_ecdsa.cpp:169,1
    - Dst: end
      Src: /src/botan/src/tests/test_ecdsa.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: ECDSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::known_named_groups
    - end
    - begin
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: ECDSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_ecdsa.cpp:177,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecdsa.cpp:178,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: ECDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECDSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: ECDSA_Keygen_Stability_Tests::ECDSA_Keygen_Stability_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Keygen_Stability_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: ECDSA_Key_Recovery_Tests::ECDSA_Key_Recovery_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Key_Recovery_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:195,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: ECDSA_Key_Recovery_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:201,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:202,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:204,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:205,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_ecdsa.cpp:206,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecdsa.cpp:207,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecdsa.cpp:208,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ecdsa.cpp:212,1
    - Dst: Botan::ECDSA_PublicKey::public_key_bits
      Src: /src/botan/src/tests/test_ecdsa.cpp:212,1
    - Dst: Botan::ECDSA_PublicKey::recovery_param
      Src: /src/botan/src/tests/test_ecdsa.cpp:214,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ecdsa.cpp:215,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ecdsa.cpp:219,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/tests/test_ecdsa.cpp:222,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_ecdsa.cpp:222,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/tests/test_ecdsa.cpp:223,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_ecdsa.cpp:223,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecdsa.cpp:225,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_ecdsa.cpp:225,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdsa.cpp:227,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdsa.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 231
    functionName: ECDSA_Key_Recovery_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferStuffer::next
    - get_req_str
    - Botan::ECDSA_PublicKey::public_key_bits
    - BigInt::serialize_to
    - Botan::EC_Group::from_name
    - get_req_u8
    - Test::Result::test_bin_eq
    - Botan::PK_Verifier::verify_message
    - get_req_bn
    - Botan::ECDSA_PublicKey::recovery_param
    - Test::Result::test_u8_eq
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - get_req_bin
    - what
    - auto::get_order_bytes
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: ECDSA_Invalid_Key_Tests::ECDSA_Invalid_Key_Tests
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_Invalid_Key_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: ECDSA_Invalid_Key_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:245,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: ECDSA_Invalid_Key_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:251,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:252,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:253,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:254,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:256,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdsa.cpp:257,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecdsa.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 263
    functionName: ECDSA_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::EC_Group::from_name
    - get_req_bn
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecdsa.cpp:274,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ecdsa.cpp:277,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:279,1
    - Dst: Botan::ECDSA_PrivateKey::public_key
      Src: /src/botan/src/tests/test_ecdsa.cpp:282,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_ecdsa.cpp:285,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_ecdsa.cpp:294,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:294,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:294,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_ecdsa.cpp:295,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:295,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ecdsa.cpp:296,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecdsa.cpp:296,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ecdsa.cpp:296,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecdsa.cpp:298,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_ecdsa.cpp:298,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_ecdsa.cpp:300,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:300,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecdsa.cpp:301,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_ecdsa.cpp:301,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_ecdsa.cpp:303,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:303,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecdsa.cpp:304,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_ecdsa.cpp:305,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdsa.cpp:308,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdsa.cpp:308,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ecdsa.cpp:312,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecdsa.cpp:313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 317
    functionName: ECDSA_AllGroups_Test::run
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDSA_PrivateKey::public_key
    - Botan::unlock
    - Botan::PK_Signer::sign_message
    - Test::Result::start_timer
    - auto::size
    - Test::Result::end_timer
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Botan::HashFunction::create
    - Test::Result::test_sz_eq
    - Botan::PK_Verifier::verify_message
    - Test::Result::test_failure
    - Botan::EC_Group::known_named_groups
    - rng
    - mutate_vec
    - Test::Result::test_is_true
    - what
    - auto::get_order_bytes
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 322
    functionName: ECDSA_ExplicitCurveKey_Test::ECDSA_ExplicitCurveKey_Test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_ExplicitCurveKey_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 324
    functionName: ECDSA_ExplicitCurveKey_Test::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecdsa.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: ECDSA_ExplicitCurveKey_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& group, const VarMap& /*vars*/)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecdsa.cpp:333,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:336,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_ecdsa.cpp:338,1
    - Dst: dynamic_cast<const Botan::ECDSA_PrivateKey*>
      Src: /src/botan/src/tests/test_ecdsa.cpp:339,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ecdsa.cpp:339,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecdsa.cpp:341,1
    - Dst: auto*::domain
      Src: /src/botan/src/tests/test_ecdsa.cpp:343,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecdsa.cpp:344,1
    - Dst: used_explicit_encoding
      Src: /src/botan/src/tests/test_ecdsa.cpp:344,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ecdsa.cpp:345,1
    - Dst: get_curve_oid
      Src: /src/botan/src/tests/test_ecdsa.cpp:345,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdsa.cpp:347,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdsa.cpp:350,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdsa.cpp:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' group_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 354
    functionName: ECDSA_ExplicitCurveKey_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_name
    - Test::Result::test_success
    - dynamic_cast<const Botan::ECDSA_PrivateKey*>
    - auto::get
    - get_curve_oid
    - used_explicit_encoding
    - auto*::domain
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - get_req_bin
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& group_name, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Strict_Policy_Without_TLS13::allow_tls13
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_tls13() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Strict_Policy_Without_TLS13::allow_tls13
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_tls13() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:79,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:80,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:81,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:82,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:83,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - with_client_certs
    - ' rsa_cert'
    - rsa_key
    - ' rsa_ca'
    - ' rsa_crl'
    - ' ecdsa_cert'
    - ecdsa_key
    - ' ecdsa_ca'
    - ' ecdsa_crl'
    argTypes:
    - bool
    - Botan::X509_Certificate
    - Botan::Private_Key*
    - Botan::X509_Certificate
    - Botan::X509_CRL
    - Botan::X509_Certificate
    - Botan::Private_Key*
    - Botan::X509_Certificate
    - Botan::X509_CRL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Credentials_Manager_Test::Credentials_Manager_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::add_crl
    - std::move
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::add_certificate
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Credentials_Manager_Test(bool with_client_certs,\n                               const
      Botan::X509_Certificate& rsa_cert,\n                               Botan::Private_Key*
      rsa_key,\n                               const Botan::X509_Certificate& rsa_ca,\n
      \                              const Botan::X509_CRL& rsa_crl,\n                               const
      Botan::X509_Certificate& ecdsa_cert,\n                               Botan::Private_Key*
      ecdsa_key,\n                               const Botan::X509_Certificate& ecdsa_ca,\n
      \                              const Botan::X509_CRL& ecdsa_crl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/unit_tls.cpp:91,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:91,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:93,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Credentials_Manager_Test::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Botan::Certificate_Store*>
    signature: "std::vector<Botan::Certificate_Store*> trusted_certificate_authorities(const
      std::string& /*type*/,\n                                                                             const
      std::string& /*context*/) override"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/unit_tls.cpp:103,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:106,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:113,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - ' cert_key_types'
    - ' acceptable_CAs'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::vector<Botan::X509_DN>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Credentials_Manager_Test::find_cert_chain
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - empty
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> find_cert_chain(const std::vector<std::string>&
      cert_key_types,\n                                                           const
      std::vector<Botan::AlgorithmIdentifier>& /*unused*/,\n                                                           const
      std::vector<Botan::X509_DN>& acceptable_CAs,\n                                                           const
      std::string& type,\n                                                           const
      std::string& context) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' crt'
    argTypes:
    - Botan::X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: Botan_Tests::Credentials_Manager_Test::private_key_for
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      crt,\n                                                          const std::string&
      /*type*/,\n                                                          const std::string&
      /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Botan_Tests::Credentials_Manager_Test::session_ticket_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Botan_Tests::Credentials_Manager_Test::dtls_cookie_secret
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> dtls_cookie_secret() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:152,1
    - Dst: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
      Src: /src/botan/src/tests/unit_tls.cpp:153,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:162,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:163,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:167,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - host
    - whoami
    argTypes:
    - std::string_view
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode_locked
    - Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    - std::vector::emplace_back
    - empty
    linkageType: ''
    returnType: std::vector<Botan::TLS::ExternalPSK>
    signature: "std::vector<Botan::TLS::ExternalPSK> find_preshared_keys(\n         std::string_view
      host,\n         Botan::TLS::Connection_Side whoami,\n         const std::vector<std::string>&
      identities = {},\n         const std::optional<std::string>& prf = std::nullopt)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: '& get_acceptable_cas() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::X509_DN>
    signature: std::vector<Botan::X509_DN> & get_acceptable_cas() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::supported_ec_group_name
      Src: /src/botan/src/tests/unit_tls.cpp:193,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:198,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:201,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:202,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:204,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:205,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:209,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:210,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:213,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:215,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:219,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:220,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_tls.cpp:226,1
    - Dst: years
      Src: /src/botan/src/tests/unit_tls.cpp:229,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:231,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:232,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:234,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:235,1
    - Dst: std::make_shared<Credentials_Manager_Test>
      Src: /src/botan/src/tests/unit_tls.cpp:237,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:239,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 246
    functionName: Botan_Tests::create_creds
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - years
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::X509_CA::sign_request
    - Botan_Tests::Test::supported_ec_group_name
    - Botan::EC_Group::from_name
    - std::make_shared<Credentials_Manager_Test>
    - std::make_unique<Botan::RSA_PrivateKey>
    - Botan::X509_Cert_Options::CA_key
    - auto::release
    - Botan::X509_CA::new_crl
    linkageType: ''
    returnType: std::shared_ptr<Credentials_Manager_Test>
    signature: "std::shared_ptr<Credentials_Manager_Test> create_creds(Botan::RandomNumberGenerator&
      rng,\n                                                       bool with_client_certs
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:277,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:278,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:280,1
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/tests/unit_tls.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - ' test_descr'
    - offer_version
    - ' creds'
    - ' client_policy'
    - ' server_policy'
    - ' rng'
    - ' client_sessions'
    - ' server_sessions'
    - expect_client_auth
    argTypes:
    - std::string
    - Botan::TLS::Protocol_Version
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 284
    functionName: Botan_Tests::TLS_Handshake_Test::TLS_Handshake_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::TLS::Server>
    - std::make_shared<Test_Callbacks>
    - Botan::TLS::Protocol_Version::is_datagram_protocol
    linkageType: ''
    returnType: void
    signature: "void TLS_Handshake_Test(const std::string& test_descr,\n                         Botan::TLS::Protocol_Version
      offer_version,\n                         const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                         const std::shared_ptr<const Botan::TLS::Policy>&
      client_policy,\n                         const std::shared_ptr<const Botan::TLS::Policy>&
      server_policy,\n                         const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                         const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_sessions,\n                         const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_sessions,\n                         bool expect_client_auth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    functionName: '& results() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result & results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: '& results()'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result & results()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:294,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:295,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_tls_session_established_callback
    linkageType: ''
    returnType: void
    signature: "void set_custom_client_tls_session_established_callback(\n         std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:300,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:301,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_tls_session_established_callback
    linkageType: ''
    returnType: void
    signature: "void set_custom_server_tls_session_established_callback(\n         std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:305,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:306,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_generate_ephemeral_ecdh_key_callback(generate_ephemeral_ecdh_key_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:310,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:311,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_ephemeral_key_agreement_callback(ephemeral_key_agreement_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:315,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - set_expected_handshake_alert
    linkageType: ''
    returnType: void
    signature: void set_client_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:320,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - set_expected_handshake_alert
    linkageType: ''
    returnType: void
    signature: void set_server_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:325,1
    - Dst: set_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:326,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_kdf_callback
    linkageType: ''
    returnType: void
    signature: void set_client_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:330,1
    - Dst: set_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_kdf_callback
    linkageType: ''
    returnType: void
    signature: void set_server_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Botan::TLS::Extension_Code>
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code static_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/tests/unit_tls.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::type
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 344
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::serialize
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize(Botan::TLS::Connection_Side /*whoami*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 346
    functionName: '& value() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::empty
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::Test_Extension
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - append_tls_length_value
    linkageType: ''
    returnType: void
    signature: void Test_Extension(Botan::TLS::Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' results'
    - expected_version
    - ' outbound'
    - ' recv_buf'
    argTypes:
    - Test::Result
    - Botan::TLS::Protocol_Version
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Callbacks(Test::Result& results,\n                           Botan::TLS::Protocol_Version
      expected_version,\n                           std::vector<uint8_t>& outbound,\n
      \                          std::vector<uint8_t>& recv_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test_Callbacks&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(const Test_Callbacks&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: '& operator=(const Test_Callbacks&)'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Callbacks
    signature: Test_Callbacks & operator=(const Test_Callbacks&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    functionName: '& operator=(Test_Callbacks&&)'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Callbacks
    signature: Test_Callbacks & operator=(Test_Callbacks&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: ~Test_Callbacks() override
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - type_string
    - test_failure
    - has_value
    linkageType: ''
    returnType: void
    signature: void ~Test_Callbacks() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 388
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq*/, std::span<const uint8_t>
      bits) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/unit_tls.cpp:393,1
    - Dst: type
      Src: /src/botan/src/tests/unit_tls.cpp:394,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/tests/unit_tls.cpp:394,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:395,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/unit_tls.cpp:395,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:396,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:399,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:399,1
    - Dst: reset
      Src: /src/botan/src/tests/unit_tls.cpp:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - reset
    - type_string
    - Botan::TLS::Alert::type
    - test_failure
    - Botan::TLS::Alert::type_string
    - type
    - has_value
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:408,1
    - Dst: Test_Extension::Test_Extension
      Src: /src/botan/src/tests/unit_tls.cpp:408,1
    - Dst: take
      Src: /src/botan/src/tests/unit_tls.cpp:411,1
    - Dst: auto::supported_schemes
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    - Dst: Botan::TLS::Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' extn'
    - which_side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 418
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::supported_schemes
    - Test_Extension::Test_Extension
    - add
    - std::vector::begin
    - Botan::TLS::Signature_Algorithms::Signature_Algorithms
    - std::vector::insert
    - take
    linkageType: ''
    returnType: void
    signature: "void tls_modify_extensions(Botan::TLS::Extensions& extn,\n                                       Botan::TLS::Connection_Side
      which_side,\n                                       Botan::TLS::Handshake_Type
      /* unused */) override"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:424,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:425,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: dynamic_cast<Botan::TLS::Unknown_Extension*>
      Src: /src/botan/src/tests/unit_tls.cpp:430,1
    - Dst: Botan::TLS::Unknown_Extension*::value
      Src: /src/botan/src/tests/unit_tls.cpp:433,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:435,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:435,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:439,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' extn'
    - which_side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 446
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Botan::TLS::Unknown_Extension*>
    - test_sz_eq
    - get
    - test_failure
    - test_bin_eq
    - static_cast<Botan::TLS::Extension_Code>
    - Botan::TLS::Unknown_Extension*::value
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void tls_examine_extensions(const Botan::TLS::Extensions& extn,\n
      \                                       Botan::TLS::Connection_Side which_side,\n
      \                                       Botan::TLS::Handshake_Type /*unused*/)
      override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:449,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/unit_tls.cpp:450,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:451,1
    - Dst: session_id
      Src: /src/botan/src/tests/unit_tls.cpp:451,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:453,1
    - Dst: m_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:456,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:459,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:460,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:460,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 463
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - ciphersuite
    - m_session_established_callback
    - to_string
    - version
    - test_failure
    - session_id
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:466,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:466,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:467,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 470
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    - test_str_eq
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      protos) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:475,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:476,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:477,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:478,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/unit_tls.cpp:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - std::variant<Botan::TLS::Group_Params, Botan::DL_Group>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 482
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    - Botan::EC_Group::from_name
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: "std::unique_ptr<Botan::PK_Key_Agreement_Key> tls_generate_ephemeral_key(\n
      \              const std::variant<Botan::TLS::Group_Params, Botan::DL_Group>&
      group,\n               Botan::RandomNumberGenerator& rng) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
      Src: /src/botan/src/tests/unit_tls.cpp:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - group
    - ' rng'
    - tls12_ecc_pubkey_encoding_format
    argTypes:
    - Botan::TLS::Group_Params
    - Botan::RandomNumberGenerator
    - Botan::EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 494
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    - m_generate_ephemeral_ecdh_key_callback
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: "std::unique_ptr<Botan::PK_Key_Agreement_Key> tls12_generate_ephemeral_ecdh_key(\n
      \              Botan::TLS::Group_Params group,\n               Botan::RandomNumberGenerator&
      rng,\n               Botan::EC_Point_Format tls12_ecc_pubkey_encoding_format)
      override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:503,1
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:506,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:507,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:508,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:509,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:512,1
    - Dst: Botan::ECDH_PublicKey::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:512,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - ' group'
    - ' private_key'
    - ' public_value'
    - ' rng'
    - ' policy'
    argTypes:
    - std::variant<Botan::TLS::Group_Params, Botan::DL_Group>
    - Botan::PK_Key_Agreement_Key
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 516
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::ECDH_PublicKey::public_value
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    - Botan::PK_Key_Agreement::derive_key
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::EC_AffinePoint
    - m_ephemeral_key_agreement_callback
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: "Botan::secure_vector<uint8_t> tls_ephemeral_key_agreement(\n               const
      std::variant<Botan::TLS::Group_Params, Botan::DL_Group>& group,\n               const
      Botan::PK_Key_Agreement_Key& private_key,\n               const std::vector<uint8_t>&
      public_value,\n               Botan::RandomNumberGenerator& rng,\n               const
      Botan::TLS::Policy& policy) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:520,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
      Src: /src/botan/src/tests/unit_tls.cpp:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - prf_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
    - m_custom_kdf_callback
    linkageType: ''
    returnType: std::unique_ptr<Botan::KDF>
    signature: std::unique_ptr<Botan::KDF> tls12_protocol_specific_kdf(std::string_view
      prf_algo) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void set_custom_tls_session_established_callback(\n               std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_generate_ephemeral_ecdh_key_callback(generate_ephemeral_ecdh_key_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_client_tls_ephemeral_key_agreement_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_ephemeral_key_agreement_callback(ephemeral_key_agreement_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 541
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/unit_tls.cpp:575,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::make_unique<Botan::TLS::Client>
      Src: /src/botan/src/tests/unit_tls.cpp:591,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:596,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:613,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:617,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:621,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:622,1
    - Dst: std::unique_ptr::application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:622,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:625,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:626,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:628,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::unique_ptr::send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:633,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:637,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:641,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:642,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:644,1
    - Dst: send
      Src: /src/botan/src/tests/unit_tls.cpp:646,1
    - Dst: send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:650,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:654,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:661,1
    - Dst: received_data
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:665,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:672,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:674,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:678,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:685,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:693,1
    - Dst: is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:693,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:697,1
    - Dst: peer_cert_chain
      Src: /src/botan/src/tests/unit_tls.cpp:698,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:700,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:700,1
    - Dst: get_acceptable_cas
      Src: /src/botan/src/tests/unit_tls.cpp:702,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:704,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:704,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:707,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_tls.cpp:707,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:710,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:710,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:714,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:714,1
    - Dst: std::unique_ptr::key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:715,1
    - Dst: key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:716,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/unit_tls.cpp:720,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:720,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/unit_tls.cpp:721,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:721,1
    - Dst: std::unique_ptr::close
      Src: /src/botan/src/tests/unit_tls.cpp:722,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/unit_tls.cpp:723,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/unit_tls.cpp:724,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:724,1
    - Dst: end_timer
      Src: /src/botan/src/tests/unit_tls.cpp:728,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 729
    functionName: Botan_Tests::TLS_Handshake_Test::go
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_acceptable_cas
    - test_is_true
    - next_byte
    - test_failure
    - std::make_unique<Botan::TLS::Client>
    - std::unique_ptr::is_active
    - Botan::TLS::Server_Information
    - Botan::SymmetricKey::bits_of
    - std::unique_ptr::application_protocol
    - empty
    - test_is_false
    - min
    - application_protocol
    - get_first_attribute
    - test_bin_eq
    - end_timer
    - std::vector::size
    - std::unique_ptr::send
    - is_closed
    - std::swap
    - send_warning_alert
    - randomize
    - std::unique_ptr::close
    - key_material_export
    - send
    - std::unique_ptr::received_data
    - std::unique_ptr::send_warning_alert
    - test_sz_eq
    - std::vector::data
    - is_active
    - std::unique_ptr::is_closed
    - std::unique_ptr::key_material_export
    - static_cast<size_t>
    - received_data
    - peer_cert_chain
    - test_str_eq
    - start_timer
    linkageType: ''
    returnType: void
    signature: void TLS_Handshake_Test::go()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: Botan_Tests::Test_Policy::Test_Policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/tests/unit_tls.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 738
    functionName: Botan_Tests::Test_Policy::acceptable_protocol_version
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Protocol_Version::is_pre_tls_13
    linkageType: ''
    returnType: bool
    signature: bool acceptable_protocol_version(Botan::TLS::Protocol_Version version)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 740
    functionName: Botan_Tests::Test_Policy::dtls_initial_timeout
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dtls_initial_timeout() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 742
    functionName: Botan_Tests::Test_Policy::dtls_maximum_timeout
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dtls_maximum_timeout() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 744
    functionName: Botan_Tests::Test_Policy::minimum_rsa_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_rsa_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan_Tests::Test_Policy::minimum_signature_strength
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_signature_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - group
    - public_key_format
    argTypes:
    - Botan::EC_Group
    - Botan::EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 771
    functionName: Botan_Tests::HardwareEcdhKey::HardwareEcdhKey
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void HardwareEcdhKey(Botan::EC_Group group, Botan::EC_Point_Format
      public_key_format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 773
    functionName: Botan_Tests::HardwareEcdhKey::algo_name
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 775
    functionName: Botan_Tests::HardwareEcdhKey::estimated_strength
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_p
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - Botan::PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 779
    functionName: Botan_Tests::HardwareEcdhKey::supports_operation
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(Botan::PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 781
    functionName: Botan_Tests::HardwareEcdhKey::check_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_key(Botan::RandomNumberGenerator& /*rng*/, bool /*strong*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 783
    functionName: Botan_Tests::HardwareEcdhKey::key_length
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_p
    linkageType: ''
    returnType: size_t
    signature: size_t key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 785
    functionName: Botan_Tests::HardwareEcdhKey::algorithm_identifier
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::AlgorithmIdentifier
    signature: Botan::AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:788,1
    - Dst: Invalid_State
      Src: /src/botan/src/tests/unit_tls.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 792
    functionName: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> raw_public_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 794
    functionName: Botan_Tests::HardwareEcdhKey::public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/unit_tls.cpp:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 798
    functionName: Botan_Tests::HardwareEcdhKey::private_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Not_Implemented::Not_Implemented
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> private_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 802
    functionName: Botan_Tests::HardwareEcdhKey::public_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 806
    functionName: Botan_Tests::HardwareEcdhKey::generate_another
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HardwareEcdhKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> generate_another(Botan::RandomNumberGenerator&
      /*rng*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 808
    functionName: Botan_Tests::HardwareEcdhKey::public_value
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/unit_tls.cpp:816,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: auto::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - peer_public_key
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 821
    functionName: Botan_Tests::HardwareEcdhKey::custom_ephemeral_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - Botan::ECDH_PrivateKey
    - auto::public_value
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: "Botan::secure_vector<uint8_t> custom_ephemeral_agreement(std::span<const
      uint8_t> peer_public_key,\n                                                               Botan::RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:842,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:851,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:854,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:863,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:864,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:864,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    - Dst: what
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' versions'
    - ' policy'
    - ' rng'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::vector<Botan::TLS::Protocol_Version>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 869
    functionName: Botan_Tests::TLS_Unit_Tests::test_with_policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - TLS_Handshake_Test::results
    - TLS_Handshake_Test::go
    - to_string
    - what
    - Botan_Tests::Test::Result::Failure
    - push_back
    linkageType: ''
    returnType: void
    signature: "void test_with_policy(const std::string& test_descr,\n                                   std::vector<Test::Result>&
      results,\n                                   const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                   const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                   const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                   const std::vector<Botan::TLS::Protocol_Version>&
      versions,\n                                   const std::shared_ptr<const Botan::TLS::Policy>&
      policy,\n                                   std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                   bool client_auth = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:882,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:883,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:884,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:885,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:886,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:888,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:889,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:891,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:892,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 10
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    - ' mac_policy'
    - ' etm_policy'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 900
    functionName: Botan_Tests::TLS_Unit_Tests::test_all_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Test_Policy>
    - auto::set
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - find
    linkageType: ''
    returnType: void
    signature: "void test_all_versions(const std::string& test_descr,\n                                    std::vector<Test::Result>&
      results,\n                                    const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                    const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                    const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                    std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                    const std::string& kex_policy,\n                                    const
      std::string& cipher_policy,\n                                    const std::string&
      mac_policy,\n                                    const std::string& etm_policy,\n
      \                                   bool client_auth = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 924
    functionName: Botan_Tests::TLS_Unit_Tests::test_modern_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    linkageType: ''
    returnType: void
    signature: "void test_modern_versions(const std::string& test_descr,\n                                       std::vector<Test::Result>&
      results,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                       const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                       std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                       const std::string& kex_policy,\n
      \                                      const std::string& cipher_policy,\n                                       const
      std::string& mac_policy = \"AEAD\",\n                                       bool
      client_auth = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:938,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:939,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:940,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:941,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:942,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:944,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:945,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:949,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 10
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    - ' mac_policy'
    - ' extra_policies'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    - std::string
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 957
    functionName: Botan_Tests::TLS_Unit_Tests::test_modern_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - std::make_shared<Test_Policy>
    - auto::set
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - find
    linkageType: ''
    returnType: void
    signature: "void test_modern_versions(const std::string& test_descr,\n                                       std::vector<Test::Result>&
      results,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                       const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                       std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                       const std::string& kex_policy,\n
      \                                      const std::string& cipher_policy,\n                                       const
      std::string& mac_policy,\n                                       const std::map<std::string,
      std::string>& extra_policies,\n                                       bool client_auth
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:965,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:966,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:980,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: TLS_Handshake_Test::set_server_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:982,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:992,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:992,1
    - Dst: TLS_Handshake_Test::set_custom_server_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1001,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:1002,1
    - Dst: TLS_Handshake_Test::set_client_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:1003,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1005,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1018,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1018,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:1019,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1021,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1021,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:1022,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - ' results'
    - creds
    - rng
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 1026
    functionName: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - TLS_Handshake_Test::results
    - server_aborts
    - TLS_Handshake_Test::go
    - to_string
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - type_string
    - TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    - TLS_Handshake_Test::set_server_expected_handshake_alert
    - std::rethrow_exception
    - TLS_Handshake_Test::set_client_expected_handshake_alert
    - client_aborts
    - TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    - std::make_exception_ptr
    - TLS_Exception
    - Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
    - push_back
    - std::runtime_error
    linkageType: ''
    returnType: void
    signature: "void test_session_established_abort(std::vector<Test::Result>& results,\n
      \                                         std::shared_ptr<Credentials_Manager_Test>
      creds,\n                                          std::shared_ptr<Botan::RandomNumberGenerator>
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1031,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1044,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: wire_code
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1048,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1058,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1063,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1068,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1069,1
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1074,1
    - Dst: std::get_if<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:1082,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1083,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1085,1
    - Dst: auto*::is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1086,1
    - Dst: dynamic_cast<const HardwareEcdhKey*>
      Src: /src/botan/src/tests/unit_tls.cpp:1088,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1089,1
    - Dst: auto*::custom_ephemeral_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:1092,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1095,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1096,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1097,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1098,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - ' results'
    - ' creds'
    - ' rng'
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1100
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::store_be
    - TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - is_ecdh_named_curve
    - TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::get_if<Botan::TLS::Group_Params>
    - TLS_Handshake_Test::go
    - require
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - wire_code
    - auto::set
    - push_back
    - Botan::hex_encode
    - dynamic_cast<const HardwareEcdhKey*>
    - to_string
    - std::make_unique<HardwareEcdhKey>
    - auto*::custom_ephemeral_agreement
    - auto*::is_ecdh_named_curve
    - TLS_Handshake_Test::results
    linkageType: ''
    returnType: void
    signature: "void test_custom_ecdh_provider(std::vector<Test::Result>& results,\n
      \                                    const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                     const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1104
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::name
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::new_object
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CustomKDF>
    linkageType: ''
    returnType: std::unique_ptr<KDF>
    signature: std::unique_ptr<KDF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1114
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::perform_kdf
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: "void perform_kdf(std::span<uint8_t> key,\n                             std::span<const
      uint8_t> /*secret*/,\n                             std::span<const uint8_t>
      /*salt*/,\n                             std::span<const uint8_t> /*label*/)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1120,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1122,1
    - Dst: TLS_Handshake_Test::set_client_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1137,1
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1139,1
    - Dst: TLS_Handshake_Test::set_server_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1142,1
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1144,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1147,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1149,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1150,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1151,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - ' results'
    - ' creds'
    - ' rng'
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1152
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - TLS_Handshake_Test::set_client_custom_kdf_callback
    - std::make_unique<CustomKDF>
    - TLS_Handshake_Test::go
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - TLS_Handshake_Test::set_server_custom_kdf_callback
    - push_back
    - TLS_Handshake_Test::results
    linkageType: ''
    returnType: void
    signature: "void test_custom_kdf_provider(std::vector<Test::Result>& results,\n
      \                                   const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                    const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1164,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1165,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1169,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1173,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1176,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/unit_tls.cpp:1180,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1185,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1195,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1207,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1209,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1213,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1215,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1217,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1222,1
    - Dst: std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
      Src: /src/botan/src/tests/unit_tls.cpp:1225,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1226,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/unit_tls.cpp:1235,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1236,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1246,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1248,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1249,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1251,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1262,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1273,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1276,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1281,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1285,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1295,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1305,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1317,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1329,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1340,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1342,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1343,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1356,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1357,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1361,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1365,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1368,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1372,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1375,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1376,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1380,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/unit_tls.cpp:1399,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1404,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
      Src: /src/botan/src/tests/unit_tls.cpp:1419,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1425,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1155
    functionDepth: 3
    functionLinenumber: 1155
    functionLinenumberEnd: 1432
    functionName: Botan_Tests::TLS_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::new_shared_rng
    - Botan::OID::register_oid
    - Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    - Botan_Tests::Test::Result::Note
    - Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
    - Botan::EC_Group::supports_application_specific_group
    - std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
    - Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - Botan_Tests::TLS_Unit_Tests::test_name
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    - Botan_Tests::TLS_Unit_Tests::test_all_versions
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - std::shared_ptr::remove_all
    - std::make_shared<Botan::TLS::NSA_Suite_B_128>
    - create_creds
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1458,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1477,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1481,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1488,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1494,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1507,1
    - Dst: Botan_Tests::DTLS_Reconnection_Test::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1507,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1509,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1510,1
    - Dst: std::make_shared<Credentials_PSK>
      Src: /src/botan/src/tests/unit_tls.cpp:1511,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1512,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1513,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1522,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1528,1
    - Dst: Botan::TLS::Protocol_Version::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1529,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1542,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1546,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1548,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1553,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1555,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1560,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1561,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1565,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1566,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1569,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1569,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1570,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1571,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1580,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1581,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1585,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1591,1
    - Dst: Botan::TLS::Protocol_Version::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1592,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1606,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1610,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1612,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1617,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1619,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1624,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1625,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1629,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1630,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1633,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1633,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1634,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1635,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1641
    functionName: Botan_Tests::DTLS_Reconnection_Test::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Protocol_Version::latest_dtls_version
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - Botan::SymmetricKey
    - test_success
    - Botan::TLS::Server_Information
    - std::make_shared<Datagram_PSK_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - Test::Result::test_failure
    - Botan::TLS::Server::received_data
    - Botan::TLS::Server::is_active
    - std::vector::empty
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - std::vector<std::string>
    - std::swap
    - std::vector::clear
    - begin
    - Test::Result::test_bin_eq
    - Botan::TLS::Client::received_data
    - Botan::TLS::Server::send
    - std::make_shared<Test_Callbacks>
    - std::make_shared<Credentials_PSK>
    - std::vector::data
    - insert
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Test_Error
    - Botan_Tests::DTLS_Reconnection_Test::test_name
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' results'
    - ' outbound'
    - ' recv_buf'
    argTypes:
    - Test::Result
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1443
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test::Result& results, std::vector<uint8_t>& outbound,
      std::vector<uint8_t>& recv_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1447
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1451
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq*/, std::span<const uint8_t>
      bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1455
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1459
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_success
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*session*/)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1477,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1481,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1488,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1489
    functionName: Botan_Tests::DTLS_Reconnection_Test::Credentials_PSK::psk
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::SymmetricKey
    linkageType: ''
    returnType: Botan::SymmetricKey
    signature: "Botan::SymmetricKey psk(const std::string& type,\n                                       const
      std::string& context,\n                                       const std::string&
      /*identity*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1494
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allowed_macs
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_macs() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1496
    functionDepth: 0
    functionLinenumber: 1496
    functionLinenumberEnd: 1496
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allowed_key_exchange_methods
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_key_exchange_methods() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1498
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_tls12
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_tls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1500
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_dtls12
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1502
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_dtls_epoch0_restart
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls_epoch0_restart() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:79,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:80,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:81,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:82,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:83,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - with_client_certs
    - ' rsa_cert'
    - rsa_key
    - ' rsa_ca'
    - ' rsa_crl'
    - ' ecdsa_cert'
    - ecdsa_key
    - ' ecdsa_ca'
    - ' ecdsa_crl'
    argTypes:
    - bool
    - Botan::X509_Certificate
    - Botan::Private_Key*
    - Botan::X509_Certificate
    - Botan::X509_CRL
    - Botan::X509_Certificate
    - Botan::Private_Key*
    - Botan::X509_Certificate
    - Botan::X509_CRL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Credentials_Manager_Test::Credentials_Manager_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::add_crl
    - std::move
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::add_certificate
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Credentials_Manager_Test(bool with_client_certs,\n                               const
      Botan::X509_Certificate& rsa_cert,\n                               Botan::Private_Key*
      rsa_key,\n                               const Botan::X509_Certificate& rsa_ca,\n
      \                              const Botan::X509_CRL& rsa_crl,\n                               const
      Botan::X509_Certificate& ecdsa_cert,\n                               Botan::Private_Key*
      ecdsa_key,\n                               const Botan::X509_Certificate& ecdsa_ca,\n
      \                              const Botan::X509_CRL& ecdsa_crl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/unit_tls.cpp:91,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:91,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:93,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Credentials_Manager_Test::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Botan::Certificate_Store*>
    signature: "std::vector<Botan::Certificate_Store*> trusted_certificate_authorities(const
      std::string& /*type*/,\n                                                                             const
      std::string& /*context*/) override"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/unit_tls.cpp:103,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:106,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:113,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - ' cert_key_types'
    - ' acceptable_CAs'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::vector<Botan::X509_DN>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Credentials_Manager_Test::find_cert_chain
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - empty
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> find_cert_chain(const std::vector<std::string>&
      cert_key_types,\n                                                           const
      std::vector<Botan::AlgorithmIdentifier>& /*unused*/,\n                                                           const
      std::vector<Botan::X509_DN>& acceptable_CAs,\n                                                           const
      std::string& type,\n                                                           const
      std::string& context) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' crt'
    argTypes:
    - Botan::X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: Botan_Tests::Credentials_Manager_Test::private_key_for
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      crt,\n                                                          const std::string&
      /*type*/,\n                                                          const std::string&
      /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Botan_Tests::Credentials_Manager_Test::session_ticket_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Botan_Tests::Credentials_Manager_Test::dtls_cookie_secret
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> dtls_cookie_secret() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:152,1
    - Dst: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
      Src: /src/botan/src/tests/unit_tls.cpp:153,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:162,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:163,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:167,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - host
    - whoami
    argTypes:
    - std::string_view
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode_locked
    - Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    - std::vector::emplace_back
    - empty
    linkageType: ''
    returnType: std::vector<Botan::TLS::ExternalPSK>
    signature: "std::vector<Botan::TLS::ExternalPSK> find_preshared_keys(\n         std::string_view
      host,\n         Botan::TLS::Connection_Side whoami,\n         const std::vector<std::string>&
      identities = {},\n         const std::optional<std::string>& prf = std::nullopt)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: '& get_acceptable_cas() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::X509_DN>
    signature: std::vector<Botan::X509_DN> & get_acceptable_cas() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::supported_ec_group_name
      Src: /src/botan/src/tests/unit_tls.cpp:193,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:198,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:201,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:202,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:204,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:205,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:209,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:210,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:213,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:215,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:219,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:220,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_tls.cpp:226,1
    - Dst: years
      Src: /src/botan/src/tests/unit_tls.cpp:229,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:231,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:232,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:234,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:235,1
    - Dst: std::make_shared<Credentials_Manager_Test>
      Src: /src/botan/src/tests/unit_tls.cpp:237,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:239,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 246
    functionName: Botan_Tests::create_creds
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - years
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::X509_CA::sign_request
    - Botan_Tests::Test::supported_ec_group_name
    - Botan::EC_Group::from_name
    - std::make_shared<Credentials_Manager_Test>
    - std::make_unique<Botan::RSA_PrivateKey>
    - Botan::X509_Cert_Options::CA_key
    - auto::release
    - Botan::X509_CA::new_crl
    linkageType: ''
    returnType: std::shared_ptr<Credentials_Manager_Test>
    signature: "std::shared_ptr<Credentials_Manager_Test> create_creds(Botan::RandomNumberGenerator&
      rng,\n                                                       bool with_client_certs
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:277,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:278,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:280,1
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/tests/unit_tls.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - ' test_descr'
    - offer_version
    - ' creds'
    - ' client_policy'
    - ' server_policy'
    - ' rng'
    - ' client_sessions'
    - ' server_sessions'
    - expect_client_auth
    argTypes:
    - std::string
    - Botan::TLS::Protocol_Version
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 284
    functionName: Botan_Tests::TLS_Handshake_Test::TLS_Handshake_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::TLS::Server>
    - std::make_shared<Test_Callbacks>
    - Botan::TLS::Protocol_Version::is_datagram_protocol
    linkageType: ''
    returnType: void
    signature: "void TLS_Handshake_Test(const std::string& test_descr,\n                         Botan::TLS::Protocol_Version
      offer_version,\n                         const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                         const std::shared_ptr<const Botan::TLS::Policy>&
      client_policy,\n                         const std::shared_ptr<const Botan::TLS::Policy>&
      server_policy,\n                         const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                         const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_sessions,\n                         const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_sessions,\n                         bool expect_client_auth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    functionName: '& results() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result & results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: '& results()'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result & results()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:294,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:295,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_tls_session_established_callback
    linkageType: ''
    returnType: void
    signature: "void set_custom_client_tls_session_established_callback(\n         std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:300,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:301,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_tls_session_established_callback
    linkageType: ''
    returnType: void
    signature: "void set_custom_server_tls_session_established_callback(\n         std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:305,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:306,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_generate_ephemeral_ecdh_key_callback(generate_ephemeral_ecdh_key_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:310,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:311,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_ephemeral_key_agreement_callback(ephemeral_key_agreement_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:315,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - set_expected_handshake_alert
    linkageType: ''
    returnType: void
    signature: void set_client_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:320,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - set_expected_handshake_alert
    linkageType: ''
    returnType: void
    signature: void set_server_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:325,1
    - Dst: set_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:326,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_kdf_callback
    linkageType: ''
    returnType: void
    signature: void set_client_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:330,1
    - Dst: set_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_kdf_callback
    linkageType: ''
    returnType: void
    signature: void set_server_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - static_cast<Botan::TLS::Extension_Code>
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code static_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/tests/unit_tls.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::type
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 344
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::serialize
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize(Botan::TLS::Connection_Side /*whoami*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 346
    functionName: '& value() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::empty
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::Test_Extension
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - append_tls_length_value
    linkageType: ''
    returnType: void
    signature: void Test_Extension(Botan::TLS::Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' results'
    - expected_version
    - ' outbound'
    - ' recv_buf'
    argTypes:
    - Test::Result
    - Botan::TLS::Protocol_Version
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Callbacks(Test::Result& results,\n                           Botan::TLS::Protocol_Version
      expected_version,\n                           std::vector<uint8_t>& outbound,\n
      \                          std::vector<uint8_t>& recv_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test_Callbacks&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(const Test_Callbacks&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: '& operator=(const Test_Callbacks&)'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Callbacks
    signature: Test_Callbacks & operator=(const Test_Callbacks&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    functionName: '& operator=(Test_Callbacks&&)'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Callbacks
    signature: Test_Callbacks & operator=(Test_Callbacks&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: ~Test_Callbacks() override
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - type_string
    - test_failure
    - has_value
    linkageType: ''
    returnType: void
    signature: void ~Test_Callbacks() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 388
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq*/, std::span<const uint8_t>
      bits) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/unit_tls.cpp:393,1
    - Dst: type
      Src: /src/botan/src/tests/unit_tls.cpp:394,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/tests/unit_tls.cpp:394,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:395,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/unit_tls.cpp:395,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:396,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:399,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:399,1
    - Dst: reset
      Src: /src/botan/src/tests/unit_tls.cpp:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - reset
    - type_string
    - Botan::TLS::Alert::type
    - test_failure
    - Botan::TLS::Alert::type_string
    - type
    - has_value
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:408,1
    - Dst: Test_Extension::Test_Extension
      Src: /src/botan/src/tests/unit_tls.cpp:408,1
    - Dst: take
      Src: /src/botan/src/tests/unit_tls.cpp:411,1
    - Dst: auto::supported_schemes
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    - Dst: Botan::TLS::Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' extn'
    - which_side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 418
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::supported_schemes
    - Test_Extension::Test_Extension
    - add
    - std::vector::begin
    - Botan::TLS::Signature_Algorithms::Signature_Algorithms
    - std::vector::insert
    - take
    linkageType: ''
    returnType: void
    signature: "void tls_modify_extensions(Botan::TLS::Extensions& extn,\n                                       Botan::TLS::Connection_Side
      which_side,\n                                       Botan::TLS::Handshake_Type
      /* unused */) override"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:424,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:425,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: dynamic_cast<Botan::TLS::Unknown_Extension*>
      Src: /src/botan/src/tests/unit_tls.cpp:430,1
    - Dst: Botan::TLS::Unknown_Extension*::value
      Src: /src/botan/src/tests/unit_tls.cpp:433,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:435,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:435,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:439,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' extn'
    - which_side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 446
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Botan::TLS::Unknown_Extension*>
    - test_sz_eq
    - get
    - test_failure
    - test_bin_eq
    - static_cast<Botan::TLS::Extension_Code>
    - Botan::TLS::Unknown_Extension*::value
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void tls_examine_extensions(const Botan::TLS::Extensions& extn,\n
      \                                       Botan::TLS::Connection_Side which_side,\n
      \                                       Botan::TLS::Handshake_Type /*unused*/)
      override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:449,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/unit_tls.cpp:450,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:451,1
    - Dst: session_id
      Src: /src/botan/src/tests/unit_tls.cpp:451,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:453,1
    - Dst: m_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:456,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:459,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:460,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:460,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 463
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - ciphersuite
    - m_session_established_callback
    - to_string
    - version
    - test_failure
    - session_id
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:466,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:466,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:467,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 470
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    - test_str_eq
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      protos) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:475,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:476,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:477,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:478,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/unit_tls.cpp:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - std::variant<Botan::TLS::Group_Params, Botan::DL_Group>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 482
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    - Botan::EC_Group::from_name
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: "std::unique_ptr<Botan::PK_Key_Agreement_Key> tls_generate_ephemeral_key(\n
      \              const std::variant<Botan::TLS::Group_Params, Botan::DL_Group>&
      group,\n               Botan::RandomNumberGenerator& rng) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
      Src: /src/botan/src/tests/unit_tls.cpp:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - group
    - ' rng'
    - tls12_ecc_pubkey_encoding_format
    argTypes:
    - Botan::TLS::Group_Params
    - Botan::RandomNumberGenerator
    - Botan::EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 494
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    - m_generate_ephemeral_ecdh_key_callback
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: "std::unique_ptr<Botan::PK_Key_Agreement_Key> tls12_generate_ephemeral_ecdh_key(\n
      \              Botan::TLS::Group_Params group,\n               Botan::RandomNumberGenerator&
      rng,\n               Botan::EC_Point_Format tls12_ecc_pubkey_encoding_format)
      override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:503,1
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:506,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:507,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:508,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:509,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:512,1
    - Dst: Botan::ECDH_PublicKey::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:512,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - ' group'
    - ' private_key'
    - ' public_value'
    - ' rng'
    - ' policy'
    argTypes:
    - std::variant<Botan::TLS::Group_Params, Botan::DL_Group>
    - Botan::PK_Key_Agreement_Key
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 516
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan::ECDH_PublicKey::public_value
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    - Botan::PK_Key_Agreement::derive_key
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::EC_AffinePoint
    - m_ephemeral_key_agreement_callback
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: "Botan::secure_vector<uint8_t> tls_ephemeral_key_agreement(\n               const
      std::variant<Botan::TLS::Group_Params, Botan::DL_Group>& group,\n               const
      Botan::PK_Key_Agreement_Key& private_key,\n               const std::vector<uint8_t>&
      public_value,\n               Botan::RandomNumberGenerator& rng,\n               const
      Botan::TLS::Policy& policy) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:520,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
      Src: /src/botan/src/tests/unit_tls.cpp:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - prf_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
    - m_custom_kdf_callback
    linkageType: ''
    returnType: std::unique_ptr<Botan::KDF>
    signature: std::unique_ptr<Botan::KDF> tls12_protocol_specific_kdf(std::string_view
      prf_algo) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void set_custom_tls_session_established_callback(\n               std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_generate_ephemeral_ecdh_key_callback(generate_ephemeral_ecdh_key_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_client_tls_ephemeral_key_agreement_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_ephemeral_key_agreement_callback(ephemeral_key_agreement_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 541
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/unit_tls.cpp:575,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::make_unique<Botan::TLS::Client>
      Src: /src/botan/src/tests/unit_tls.cpp:591,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:596,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:613,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:617,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:621,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:622,1
    - Dst: std::unique_ptr::application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:622,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:625,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:626,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:628,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::unique_ptr::send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:633,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:637,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:641,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:642,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:644,1
    - Dst: send
      Src: /src/botan/src/tests/unit_tls.cpp:646,1
    - Dst: send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:650,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:654,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:661,1
    - Dst: received_data
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:665,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:672,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:674,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:678,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:685,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:693,1
    - Dst: is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:693,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:697,1
    - Dst: peer_cert_chain
      Src: /src/botan/src/tests/unit_tls.cpp:698,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:700,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:700,1
    - Dst: get_acceptable_cas
      Src: /src/botan/src/tests/unit_tls.cpp:702,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:704,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:704,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:707,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_tls.cpp:707,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:710,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:710,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:714,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:714,1
    - Dst: std::unique_ptr::key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:715,1
    - Dst: key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:716,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/unit_tls.cpp:720,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:720,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/unit_tls.cpp:721,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:721,1
    - Dst: std::unique_ptr::close
      Src: /src/botan/src/tests/unit_tls.cpp:722,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/unit_tls.cpp:723,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/unit_tls.cpp:724,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:724,1
    - Dst: end_timer
      Src: /src/botan/src/tests/unit_tls.cpp:728,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 729
    functionName: Botan_Tests::TLS_Handshake_Test::go
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_acceptable_cas
    - test_is_true
    - next_byte
    - test_failure
    - std::make_unique<Botan::TLS::Client>
    - std::unique_ptr::is_active
    - Botan::TLS::Server_Information
    - Botan::SymmetricKey::bits_of
    - std::unique_ptr::application_protocol
    - empty
    - test_is_false
    - min
    - application_protocol
    - get_first_attribute
    - test_bin_eq
    - end_timer
    - std::vector::size
    - std::unique_ptr::send
    - is_closed
    - std::swap
    - send_warning_alert
    - randomize
    - std::unique_ptr::close
    - key_material_export
    - send
    - std::unique_ptr::received_data
    - std::unique_ptr::send_warning_alert
    - test_sz_eq
    - std::vector::data
    - is_active
    - std::unique_ptr::is_closed
    - std::unique_ptr::key_material_export
    - static_cast<size_t>
    - received_data
    - peer_cert_chain
    - test_str_eq
    - start_timer
    linkageType: ''
    returnType: void
    signature: void TLS_Handshake_Test::go()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: Botan_Tests::Test_Policy::Test_Policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/tests/unit_tls.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 738
    functionName: Botan_Tests::Test_Policy::acceptable_protocol_version
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Protocol_Version::is_pre_tls_13
    linkageType: ''
    returnType: bool
    signature: bool acceptable_protocol_version(Botan::TLS::Protocol_Version version)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 740
    functionName: Botan_Tests::Test_Policy::dtls_initial_timeout
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dtls_initial_timeout() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 742
    functionName: Botan_Tests::Test_Policy::dtls_maximum_timeout
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dtls_maximum_timeout() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 744
    functionName: Botan_Tests::Test_Policy::minimum_rsa_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_rsa_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan_Tests::Test_Policy::minimum_signature_strength
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_signature_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - group
    - public_key_format
    argTypes:
    - Botan::EC_Group
    - Botan::EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 771
    functionName: Botan_Tests::HardwareEcdhKey::HardwareEcdhKey
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void HardwareEcdhKey(Botan::EC_Group group, Botan::EC_Point_Format
      public_key_format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 773
    functionName: Botan_Tests::HardwareEcdhKey::algo_name
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 775
    functionName: Botan_Tests::HardwareEcdhKey::estimated_strength
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_p
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - Botan::PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 779
    functionName: Botan_Tests::HardwareEcdhKey::supports_operation
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(Botan::PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 781
    functionName: Botan_Tests::HardwareEcdhKey::check_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_key(Botan::RandomNumberGenerator& /*rng*/, bool /*strong*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 783
    functionName: Botan_Tests::HardwareEcdhKey::key_length
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_p
    linkageType: ''
    returnType: size_t
    signature: size_t key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 785
    functionName: Botan_Tests::HardwareEcdhKey::algorithm_identifier
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::AlgorithmIdentifier
    signature: Botan::AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:788,1
    - Dst: Invalid_State
      Src: /src/botan/src/tests/unit_tls.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 792
    functionName: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - Invalid_State
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> raw_public_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 794
    functionName: Botan_Tests::HardwareEcdhKey::public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/unit_tls.cpp:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 798
    functionName: Botan_Tests::HardwareEcdhKey::private_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Not_Implemented::Not_Implemented
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> private_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 802
    functionName: Botan_Tests::HardwareEcdhKey::public_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 806
    functionName: Botan_Tests::HardwareEcdhKey::generate_another
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HardwareEcdhKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> generate_another(Botan::RandomNumberGenerator&
      /*rng*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 808
    functionName: Botan_Tests::HardwareEcdhKey::public_value
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/unit_tls.cpp:816,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: auto::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - peer_public_key
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 821
    functionName: Botan_Tests::HardwareEcdhKey::custom_ephemeral_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - Botan::ECDH_PrivateKey
    - auto::public_value
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: "Botan::secure_vector<uint8_t> custom_ephemeral_agreement(std::span<const
      uint8_t> peer_public_key,\n                                                               Botan::RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:842,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:851,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:854,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:863,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:864,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:864,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    - Dst: what
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' versions'
    - ' policy'
    - ' rng'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::vector<Botan::TLS::Protocol_Version>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 869
    functionName: Botan_Tests::TLS_Unit_Tests::test_with_policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - TLS_Handshake_Test::results
    - TLS_Handshake_Test::go
    - to_string
    - what
    - Botan_Tests::Test::Result::Failure
    - push_back
    linkageType: ''
    returnType: void
    signature: "void test_with_policy(const std::string& test_descr,\n                                   std::vector<Test::Result>&
      results,\n                                   const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                   const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                   const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                   const std::vector<Botan::TLS::Protocol_Version>&
      versions,\n                                   const std::shared_ptr<const Botan::TLS::Policy>&
      policy,\n                                   std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                   bool client_auth = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:882,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:883,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:884,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:885,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:886,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:888,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:889,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:891,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:892,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 10
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    - ' mac_policy'
    - ' etm_policy'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 900
    functionName: Botan_Tests::TLS_Unit_Tests::test_all_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - std::make_shared<Test_Policy>
    - auto::set
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - find
    linkageType: ''
    returnType: void
    signature: "void test_all_versions(const std::string& test_descr,\n                                    std::vector<Test::Result>&
      results,\n                                    const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                    const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                    const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                    std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                    const std::string& kex_policy,\n                                    const
      std::string& cipher_policy,\n                                    const std::string&
      mac_policy,\n                                    const std::string& etm_policy,\n
      \                                   bool client_auth = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 924
    functionName: Botan_Tests::TLS_Unit_Tests::test_modern_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    linkageType: ''
    returnType: void
    signature: "void test_modern_versions(const std::string& test_descr,\n                                       std::vector<Test::Result>&
      results,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                       const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                       std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                       const std::string& kex_policy,\n
      \                                      const std::string& cipher_policy,\n                                       const
      std::string& mac_policy = \"AEAD\",\n                                       bool
      client_auth = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:938,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:939,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:940,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:941,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:942,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:944,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:945,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:949,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 10
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    - ' mac_policy'
    - ' extra_policies'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    - std::string
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 957
    functionName: Botan_Tests::TLS_Unit_Tests::test_modern_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - std::make_shared<Test_Policy>
    - auto::set
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - find
    linkageType: ''
    returnType: void
    signature: "void test_modern_versions(const std::string& test_descr,\n                                       std::vector<Test::Result>&
      results,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                       const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                       std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                       const std::string& kex_policy,\n
      \                                      const std::string& cipher_policy,\n                                       const
      std::string& mac_policy,\n                                       const std::map<std::string,
      std::string>& extra_policies,\n                                       bool client_auth
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:965,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:966,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:980,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: TLS_Handshake_Test::set_server_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:982,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:992,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:992,1
    - Dst: TLS_Handshake_Test::set_custom_server_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1001,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:1002,1
    - Dst: TLS_Handshake_Test::set_client_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:1003,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1005,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1018,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1018,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:1019,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1021,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1021,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:1022,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - ' results'
    - creds
    - rng
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 1026
    functionName: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - TLS_Handshake_Test::results
    - server_aborts
    - TLS_Handshake_Test::go
    - to_string
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - type_string
    - TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    - TLS_Handshake_Test::set_server_expected_handshake_alert
    - std::rethrow_exception
    - TLS_Handshake_Test::set_client_expected_handshake_alert
    - client_aborts
    - TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    - std::make_exception_ptr
    - TLS_Exception
    - Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
    - push_back
    - std::runtime_error
    linkageType: ''
    returnType: void
    signature: "void test_session_established_abort(std::vector<Test::Result>& results,\n
      \                                         std::shared_ptr<Credentials_Manager_Test>
      creds,\n                                          std::shared_ptr<Botan::RandomNumberGenerator>
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1031,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1044,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: wire_code
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1048,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1058,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1063,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1068,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1069,1
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1074,1
    - Dst: std::get_if<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:1082,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1083,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1085,1
    - Dst: auto*::is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1086,1
    - Dst: dynamic_cast<const HardwareEcdhKey*>
      Src: /src/botan/src/tests/unit_tls.cpp:1088,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1089,1
    - Dst: auto*::custom_ephemeral_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:1092,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1095,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1096,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1097,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1098,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - ' results'
    - ' creds'
    - ' rng'
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1100
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::store_be
    - TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - is_ecdh_named_curve
    - TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::get_if<Botan::TLS::Group_Params>
    - TLS_Handshake_Test::go
    - require
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - wire_code
    - auto::set
    - push_back
    - Botan::hex_encode
    - dynamic_cast<const HardwareEcdhKey*>
    - to_string
    - std::make_unique<HardwareEcdhKey>
    - auto*::custom_ephemeral_agreement
    - auto*::is_ecdh_named_curve
    - TLS_Handshake_Test::results
    linkageType: ''
    returnType: void
    signature: "void test_custom_ecdh_provider(std::vector<Test::Result>& results,\n
      \                                    const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                     const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1104
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::name
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::new_object
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CustomKDF>
    linkageType: ''
    returnType: std::unique_ptr<KDF>
    signature: std::unique_ptr<KDF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1114
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::perform_kdf
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: "void perform_kdf(std::span<uint8_t> key,\n                             std::span<const
      uint8_t> /*secret*/,\n                             std::span<const uint8_t>
      /*salt*/,\n                             std::span<const uint8_t> /*label*/)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1120,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1122,1
    - Dst: TLS_Handshake_Test::set_client_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1137,1
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1139,1
    - Dst: TLS_Handshake_Test::set_server_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1142,1
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1144,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1147,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1149,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1150,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1151,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - ' results'
    - ' creds'
    - ' rng'
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1152
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - TLS_Handshake_Test::set_client_custom_kdf_callback
    - std::make_unique<CustomKDF>
    - TLS_Handshake_Test::go
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - TLS_Handshake_Test::set_server_custom_kdf_callback
    - push_back
    - TLS_Handshake_Test::results
    linkageType: ''
    returnType: void
    signature: "void test_custom_kdf_provider(std::vector<Test::Result>& results,\n
      \                                   const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                    const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1164,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1165,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1169,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1173,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1176,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/unit_tls.cpp:1180,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1185,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1195,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1207,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1209,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1213,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1215,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1217,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1222,1
    - Dst: std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
      Src: /src/botan/src/tests/unit_tls.cpp:1225,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1226,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/unit_tls.cpp:1235,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1236,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1246,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1248,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1249,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1251,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1262,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1273,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1276,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1281,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1285,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1295,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1305,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1317,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1329,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1340,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1342,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1343,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1356,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1357,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1361,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1365,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1368,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1372,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1375,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1376,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1380,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/unit_tls.cpp:1399,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1404,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
      Src: /src/botan/src/tests/unit_tls.cpp:1419,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1425,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1155
    functionDepth: 3
    functionLinenumber: 1155
    functionLinenumberEnd: 1432
    functionName: Botan_Tests::TLS_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::new_shared_rng
    - Botan::OID::register_oid
    - Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    - Botan_Tests::Test::Result::Note
    - Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
    - Botan::EC_Group::supports_application_specific_group
    - std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
    - Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - Botan_Tests::TLS_Unit_Tests::test_name
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    - Botan_Tests::TLS_Unit_Tests::test_all_versions
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - std::shared_ptr::remove_all
    - std::make_shared<Botan::TLS::NSA_Suite_B_128>
    - create_creds
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1458,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1477,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1481,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1488,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1494,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1507,1
    - Dst: Botan_Tests::DTLS_Reconnection_Test::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1507,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1509,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1510,1
    - Dst: std::make_shared<Credentials_PSK>
      Src: /src/botan/src/tests/unit_tls.cpp:1511,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1512,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1513,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1522,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1528,1
    - Dst: Botan::TLS::Protocol_Version::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1529,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1542,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1546,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1548,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1553,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1555,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1560,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1561,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1565,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1566,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1569,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1569,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1570,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1571,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1580,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1581,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1585,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1591,1
    - Dst: Botan::TLS::Protocol_Version::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1592,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1606,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1610,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1612,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1617,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1619,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1624,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1625,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1629,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1630,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1633,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1633,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1634,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1635,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1641
    functionName: Botan_Tests::DTLS_Reconnection_Test::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Protocol_Version::latest_dtls_version
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - Botan::SymmetricKey
    - test_success
    - Botan::TLS::Server_Information
    - std::make_shared<Datagram_PSK_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - Test::Result::test_failure
    - Botan::TLS::Server::received_data
    - Botan::TLS::Server::is_active
    - std::vector::empty
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - std::vector<std::string>
    - std::swap
    - std::vector::clear
    - begin
    - Test::Result::test_bin_eq
    - Botan::TLS::Client::received_data
    - Botan::TLS::Server::send
    - std::make_shared<Test_Callbacks>
    - std::make_shared<Credentials_PSK>
    - std::vector::data
    - insert
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Test_Error
    - Botan_Tests::DTLS_Reconnection_Test::test_name
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' results'
    - ' outbound'
    - ' recv_buf'
    argTypes:
    - Test::Result
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1443
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test::Result& results, std::vector<uint8_t>& outbound,
      std::vector<uint8_t>& recv_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1447
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1451
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq*/, std::span<const uint8_t>
      bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1455
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1459
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_success
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*session*/)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1477,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1481,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1488,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1489
    functionName: Botan_Tests::DTLS_Reconnection_Test::Credentials_PSK::psk
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::SymmetricKey
    linkageType: ''
    returnType: Botan::SymmetricKey
    signature: "Botan::SymmetricKey psk(const std::string& type,\n                                       const
      std::string& context,\n                                       const std::string&
      /*identity*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1494
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allowed_macs
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_macs() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1496
    functionDepth: 0
    functionLinenumber: 1496
    functionLinenumberEnd: 1496
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allowed_key_exchange_methods
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_key_exchange_methods() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1498
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_tls12
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_tls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1500
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_dtls12
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1502
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_dtls_epoch0_restart
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls_epoch0_restart() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:79,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:80,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:81,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:82,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:83,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - with_client_certs
    - ' rsa_cert'
    - rsa_key
    - ' rsa_ca'
    - ' rsa_crl'
    - ' ecdsa_cert'
    - ecdsa_key
    - ' ecdsa_ca'
    - ' ecdsa_crl'
    argTypes:
    - bool
    - Botan::X509_Certificate
    - Botan::Private_Key*
    - Botan::X509_Certificate
    - Botan::X509_CRL
    - Botan::X509_Certificate
    - Botan::Private_Key*
    - Botan::X509_Certificate
    - Botan::X509_CRL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Credentials_Manager_Test::Credentials_Manager_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::add_crl
    - std::move
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::add_certificate
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Credentials_Manager_Test(bool with_client_certs,\n                               const
      Botan::X509_Certificate& rsa_cert,\n                               Botan::Private_Key*
      rsa_key,\n                               const Botan::X509_Certificate& rsa_ca,\n
      \                              const Botan::X509_CRL& rsa_crl,\n                               const
      Botan::X509_Certificate& ecdsa_cert,\n                               Botan::Private_Key*
      ecdsa_key,\n                               const Botan::X509_Certificate& ecdsa_ca,\n
      \                              const Botan::X509_CRL& ecdsa_crl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/unit_tls.cpp:91,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:91,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:93,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Credentials_Manager_Test::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Botan::Certificate_Store*>
    signature: "std::vector<Botan::Certificate_Store*> trusted_certificate_authorities(const
      std::string& /*type*/,\n                                                                             const
      std::string& /*context*/) override"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/unit_tls.cpp:103,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:106,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:113,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - ' cert_key_types'
    - ' acceptable_CAs'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::vector<Botan::X509_DN>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Credentials_Manager_Test::find_cert_chain
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - empty
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> find_cert_chain(const std::vector<std::string>&
      cert_key_types,\n                                                           const
      std::vector<Botan::AlgorithmIdentifier>& /*unused*/,\n                                                           const
      std::vector<Botan::X509_DN>& acceptable_CAs,\n                                                           const
      std::string& type,\n                                                           const
      std::string& context) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' crt'
    argTypes:
    - Botan::X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: Botan_Tests::Credentials_Manager_Test::private_key_for
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      crt,\n                                                          const std::string&
      /*type*/,\n                                                          const std::string&
      /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Botan_Tests::Credentials_Manager_Test::session_ticket_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Botan_Tests::Credentials_Manager_Test::dtls_cookie_secret
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> dtls_cookie_secret() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:152,1
    - Dst: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
      Src: /src/botan/src/tests/unit_tls.cpp:153,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:162,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:163,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:167,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - host
    - whoami
    argTypes:
    - std::string_view
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode_locked
    - Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    - std::vector::emplace_back
    - empty
    linkageType: ''
    returnType: std::vector<Botan::TLS::ExternalPSK>
    signature: "std::vector<Botan::TLS::ExternalPSK> find_preshared_keys(\n         std::string_view
      host,\n         Botan::TLS::Connection_Side whoami,\n         const std::vector<std::string>&
      identities = {},\n         const std::optional<std::string>& prf = std::nullopt)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: '& get_acceptable_cas() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::X509_DN>
    signature: std::vector<Botan::X509_DN> & get_acceptable_cas() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::supported_ec_group_name
      Src: /src/botan/src/tests/unit_tls.cpp:193,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:198,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:201,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:202,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:204,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:205,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:209,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:210,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:213,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:215,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:219,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:220,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_tls.cpp:226,1
    - Dst: years
      Src: /src/botan/src/tests/unit_tls.cpp:229,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:231,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:232,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:234,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:235,1
    - Dst: std::make_shared<Credentials_Manager_Test>
      Src: /src/botan/src/tests/unit_tls.cpp:237,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:239,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 246
    functionName: Botan_Tests::create_creds
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - years
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::X509_CA::sign_request
    - Botan_Tests::Test::supported_ec_group_name
    - Botan::EC_Group::from_name
    - std::make_shared<Credentials_Manager_Test>
    - std::make_unique<Botan::RSA_PrivateKey>
    - Botan::X509_Cert_Options::CA_key
    - auto::release
    - Botan::X509_CA::new_crl
    linkageType: ''
    returnType: std::shared_ptr<Credentials_Manager_Test>
    signature: "std::shared_ptr<Credentials_Manager_Test> create_creds(Botan::RandomNumberGenerator&
      rng,\n                                                       bool with_client_certs
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:277,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:278,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:280,1
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/tests/unit_tls.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - ' test_descr'
    - offer_version
    - ' creds'
    - ' client_policy'
    - ' server_policy'
    - ' rng'
    - ' client_sessions'
    - ' server_sessions'
    - expect_client_auth
    argTypes:
    - std::string
    - Botan::TLS::Protocol_Version
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 284
    functionName: Botan_Tests::TLS_Handshake_Test::TLS_Handshake_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::TLS::Server>
    - std::make_shared<Test_Callbacks>
    - Botan::TLS::Protocol_Version::is_datagram_protocol
    linkageType: ''
    returnType: void
    signature: "void TLS_Handshake_Test(const std::string& test_descr,\n                         Botan::TLS::Protocol_Version
      offer_version,\n                         const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                         const std::shared_ptr<const Botan::TLS::Policy>&
      client_policy,\n                         const std::shared_ptr<const Botan::TLS::Policy>&
      server_policy,\n                         const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                         const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_sessions,\n                         const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_sessions,\n                         bool expect_client_auth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    functionName: '& results() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result & results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: '& results()'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result & results()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:294,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:295,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_tls_session_established_callback
    linkageType: ''
    returnType: void
    signature: "void set_custom_client_tls_session_established_callback(\n         std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:300,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:301,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_tls_session_established_callback
    linkageType: ''
    returnType: void
    signature: "void set_custom_server_tls_session_established_callback(\n         std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:305,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:306,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - std::move
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_generate_ephemeral_ecdh_key_callback(generate_ephemeral_ecdh_key_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:310,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:311,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - std::move
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_ephemeral_key_agreement_callback(ephemeral_key_agreement_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:315,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - set_expected_handshake_alert
    linkageType: ''
    returnType: void
    signature: void set_client_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:320,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - set_expected_handshake_alert
    linkageType: ''
    returnType: void
    signature: void set_server_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:325,1
    - Dst: set_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:326,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_kdf_callback
    linkageType: ''
    returnType: void
    signature: void set_client_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:330,1
    - Dst: set_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_kdf_callback
    linkageType: ''
    returnType: void
    signature: void set_server_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - static_cast<Botan::TLS::Extension_Code>
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code static_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/tests/unit_tls.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::type
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 344
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::serialize
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize(Botan::TLS::Connection_Side /*whoami*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 346
    functionName: '& value() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::empty
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::Test_Extension
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - append_tls_length_value
    linkageType: ''
    returnType: void
    signature: void Test_Extension(Botan::TLS::Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' results'
    - expected_version
    - ' outbound'
    - ' recv_buf'
    argTypes:
    - Test::Result
    - Botan::TLS::Protocol_Version
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Callbacks(Test::Result& results,\n                           Botan::TLS::Protocol_Version
      expected_version,\n                           std::vector<uint8_t>& outbound,\n
      \                          std::vector<uint8_t>& recv_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test_Callbacks&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(const Test_Callbacks&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: '& operator=(const Test_Callbacks&)'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Callbacks
    signature: Test_Callbacks & operator=(const Test_Callbacks&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    functionName: '& operator=(Test_Callbacks&&)'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Callbacks
    signature: Test_Callbacks & operator=(Test_Callbacks&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: ~Test_Callbacks() override
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - type_string
    - test_failure
    - has_value
    linkageType: ''
    returnType: void
    signature: void ~Test_Callbacks() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 388
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq*/, std::span<const uint8_t>
      bits) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/unit_tls.cpp:393,1
    - Dst: type
      Src: /src/botan/src/tests/unit_tls.cpp:394,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/tests/unit_tls.cpp:394,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:395,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/unit_tls.cpp:395,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:396,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:399,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:399,1
    - Dst: reset
      Src: /src/botan/src/tests/unit_tls.cpp:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - reset
    - type_string
    - Botan::TLS::Alert::type
    - test_failure
    - Botan::TLS::Alert::type_string
    - type
    - has_value
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:408,1
    - Dst: Test_Extension::Test_Extension
      Src: /src/botan/src/tests/unit_tls.cpp:408,1
    - Dst: take
      Src: /src/botan/src/tests/unit_tls.cpp:411,1
    - Dst: auto::supported_schemes
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    - Dst: Botan::TLS::Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' extn'
    - which_side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 418
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::supported_schemes
    - Test_Extension::Test_Extension
    - add
    - std::vector::begin
    - Botan::TLS::Signature_Algorithms::Signature_Algorithms
    - std::vector::insert
    - take
    linkageType: ''
    returnType: void
    signature: "void tls_modify_extensions(Botan::TLS::Extensions& extn,\n                                       Botan::TLS::Connection_Side
      which_side,\n                                       Botan::TLS::Handshake_Type
      /* unused */) override"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:424,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:425,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: dynamic_cast<Botan::TLS::Unknown_Extension*>
      Src: /src/botan/src/tests/unit_tls.cpp:430,1
    - Dst: Botan::TLS::Unknown_Extension*::value
      Src: /src/botan/src/tests/unit_tls.cpp:433,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:435,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:435,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:439,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' extn'
    - which_side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 446
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Botan::TLS::Unknown_Extension*>
    - test_sz_eq
    - get
    - test_failure
    - test_bin_eq
    - static_cast<Botan::TLS::Extension_Code>
    - Botan::TLS::Unknown_Extension*::value
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void tls_examine_extensions(const Botan::TLS::Extensions& extn,\n
      \                                       Botan::TLS::Connection_Side which_side,\n
      \                                       Botan::TLS::Handshake_Type /*unused*/)
      override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:449,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/unit_tls.cpp:450,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:451,1
    - Dst: session_id
      Src: /src/botan/src/tests/unit_tls.cpp:451,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:453,1
    - Dst: m_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:456,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:459,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:460,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:460,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 463
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - ciphersuite
    - m_session_established_callback
    - to_string
    - version
    - test_failure
    - session_id
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:466,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:466,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:467,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 470
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    - test_str_eq
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      protos) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:475,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:476,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:477,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:478,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/unit_tls.cpp:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - std::variant<Botan::TLS::Group_Params, Botan::DL_Group>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 482
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    - Botan::EC_Group::from_name
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: "std::unique_ptr<Botan::PK_Key_Agreement_Key> tls_generate_ephemeral_key(\n
      \              const std::variant<Botan::TLS::Group_Params, Botan::DL_Group>&
      group,\n               Botan::RandomNumberGenerator& rng) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
      Src: /src/botan/src/tests/unit_tls.cpp:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - group
    - ' rng'
    - tls12_ecc_pubkey_encoding_format
    argTypes:
    - Botan::TLS::Group_Params
    - Botan::RandomNumberGenerator
    - Botan::EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 494
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    - m_generate_ephemeral_ecdh_key_callback
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: "std::unique_ptr<Botan::PK_Key_Agreement_Key> tls12_generate_ephemeral_ecdh_key(\n
      \              Botan::TLS::Group_Params group,\n               Botan::RandomNumberGenerator&
      rng,\n               Botan::EC_Point_Format tls12_ecc_pubkey_encoding_format)
      override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:503,1
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:506,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:507,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:508,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:509,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:512,1
    - Dst: Botan::ECDH_PublicKey::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:512,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - ' group'
    - ' private_key'
    - ' public_value'
    - ' rng'
    - ' policy'
    argTypes:
    - std::variant<Botan::TLS::Group_Params, Botan::DL_Group>
    - Botan::PK_Key_Agreement_Key
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 516
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan::ECDH_PublicKey::public_value
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    - Botan::PK_Key_Agreement::derive_key
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::EC_AffinePoint
    - m_ephemeral_key_agreement_callback
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: "Botan::secure_vector<uint8_t> tls_ephemeral_key_agreement(\n               const
      std::variant<Botan::TLS::Group_Params, Botan::DL_Group>& group,\n               const
      Botan::PK_Key_Agreement_Key& private_key,\n               const std::vector<uint8_t>&
      public_value,\n               Botan::RandomNumberGenerator& rng,\n               const
      Botan::TLS::Policy& policy) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:520,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
      Src: /src/botan/src/tests/unit_tls.cpp:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - prf_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
    - m_custom_kdf_callback
    linkageType: ''
    returnType: std::unique_ptr<Botan::KDF>
    signature: std::unique_ptr<Botan::KDF> tls12_protocol_specific_kdf(std::string_view
      prf_algo) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void set_custom_tls_session_established_callback(\n               std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_generate_ephemeral_ecdh_key_callback(generate_ephemeral_ecdh_key_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_client_tls_ephemeral_key_agreement_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_ephemeral_key_agreement_callback(ephemeral_key_agreement_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 541
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/unit_tls.cpp:575,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::make_unique<Botan::TLS::Client>
      Src: /src/botan/src/tests/unit_tls.cpp:591,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:596,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:613,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:617,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:621,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:622,1
    - Dst: std::unique_ptr::application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:622,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:625,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:626,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:628,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::unique_ptr::send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:633,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:637,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:641,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:642,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:644,1
    - Dst: send
      Src: /src/botan/src/tests/unit_tls.cpp:646,1
    - Dst: send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:650,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:654,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:661,1
    - Dst: received_data
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:665,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:672,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:674,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:678,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:685,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:693,1
    - Dst: is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:693,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:697,1
    - Dst: peer_cert_chain
      Src: /src/botan/src/tests/unit_tls.cpp:698,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:700,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:700,1
    - Dst: get_acceptable_cas
      Src: /src/botan/src/tests/unit_tls.cpp:702,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:704,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:704,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:707,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_tls.cpp:707,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:710,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:710,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:714,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:714,1
    - Dst: std::unique_ptr::key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:715,1
    - Dst: key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:716,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/unit_tls.cpp:720,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:720,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/unit_tls.cpp:721,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:721,1
    - Dst: std::unique_ptr::close
      Src: /src/botan/src/tests/unit_tls.cpp:722,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/unit_tls.cpp:723,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/unit_tls.cpp:724,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:724,1
    - Dst: end_timer
      Src: /src/botan/src/tests/unit_tls.cpp:728,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 729
    functionName: Botan_Tests::TLS_Handshake_Test::go
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_acceptable_cas
    - test_is_true
    - next_byte
    - test_failure
    - std::make_unique<Botan::TLS::Client>
    - std::unique_ptr::is_active
    - Botan::TLS::Server_Information
    - Botan::SymmetricKey::bits_of
    - std::unique_ptr::application_protocol
    - empty
    - test_is_false
    - min
    - application_protocol
    - get_first_attribute
    - test_bin_eq
    - end_timer
    - std::vector::size
    - std::unique_ptr::send
    - is_closed
    - std::swap
    - send_warning_alert
    - randomize
    - std::unique_ptr::close
    - key_material_export
    - send
    - std::unique_ptr::received_data
    - std::unique_ptr::send_warning_alert
    - test_sz_eq
    - std::vector::data
    - is_active
    - std::unique_ptr::is_closed
    - std::unique_ptr::key_material_export
    - static_cast<size_t>
    - received_data
    - peer_cert_chain
    - test_str_eq
    - start_timer
    linkageType: ''
    returnType: void
    signature: void TLS_Handshake_Test::go()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: Botan_Tests::Test_Policy::Test_Policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/tests/unit_tls.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 738
    functionName: Botan_Tests::Test_Policy::acceptable_protocol_version
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Protocol_Version::is_pre_tls_13
    linkageType: ''
    returnType: bool
    signature: bool acceptable_protocol_version(Botan::TLS::Protocol_Version version)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 740
    functionName: Botan_Tests::Test_Policy::dtls_initial_timeout
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dtls_initial_timeout() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 742
    functionName: Botan_Tests::Test_Policy::dtls_maximum_timeout
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dtls_maximum_timeout() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 744
    functionName: Botan_Tests::Test_Policy::minimum_rsa_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_rsa_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan_Tests::Test_Policy::minimum_signature_strength
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_signature_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - group
    - public_key_format
    argTypes:
    - Botan::EC_Group
    - Botan::EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 771
    functionName: Botan_Tests::HardwareEcdhKey::HardwareEcdhKey
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void HardwareEcdhKey(Botan::EC_Group group, Botan::EC_Point_Format
      public_key_format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 773
    functionName: Botan_Tests::HardwareEcdhKey::algo_name
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 775
    functionName: Botan_Tests::HardwareEcdhKey::estimated_strength
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_p
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - Botan::PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 779
    functionName: Botan_Tests::HardwareEcdhKey::supports_operation
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(Botan::PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 781
    functionName: Botan_Tests::HardwareEcdhKey::check_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_key(Botan::RandomNumberGenerator& /*rng*/, bool /*strong*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 783
    functionName: Botan_Tests::HardwareEcdhKey::key_length
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_p
    linkageType: ''
    returnType: size_t
    signature: size_t key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 785
    functionName: Botan_Tests::HardwareEcdhKey::algorithm_identifier
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::AlgorithmIdentifier
    signature: Botan::AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:788,1
    - Dst: Invalid_State
      Src: /src/botan/src/tests/unit_tls.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 792
    functionName: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 6
    functionsReached:
    - Invalid_State
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> raw_public_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 794
    functionName: Botan_Tests::HardwareEcdhKey::public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/unit_tls.cpp:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 798
    functionName: Botan_Tests::HardwareEcdhKey::private_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Not_Implemented::Not_Implemented
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> private_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 802
    functionName: Botan_Tests::HardwareEcdhKey::public_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 806
    functionName: Botan_Tests::HardwareEcdhKey::generate_another
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HardwareEcdhKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> generate_another(Botan::RandomNumberGenerator&
      /*rng*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 808
    functionName: Botan_Tests::HardwareEcdhKey::public_value
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/unit_tls.cpp:816,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: auto::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - peer_public_key
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 821
    functionName: Botan_Tests::HardwareEcdhKey::custom_ephemeral_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - Botan::ECDH_PrivateKey
    - auto::public_value
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: "Botan::secure_vector<uint8_t> custom_ephemeral_agreement(std::span<const
      uint8_t> peer_public_key,\n                                                               Botan::RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:842,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:851,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:854,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:863,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:864,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:864,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    - Dst: what
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' versions'
    - ' policy'
    - ' rng'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::vector<Botan::TLS::Protocol_Version>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 869
    functionName: Botan_Tests::TLS_Unit_Tests::test_with_policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 6
    functionsReached:
    - TLS_Handshake_Test::results
    - TLS_Handshake_Test::go
    - to_string
    - what
    - Botan_Tests::Test::Result::Failure
    - push_back
    linkageType: ''
    returnType: void
    signature: "void test_with_policy(const std::string& test_descr,\n                                   std::vector<Test::Result>&
      results,\n                                   const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                   const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                   const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                   const std::vector<Botan::TLS::Protocol_Version>&
      versions,\n                                   const std::shared_ptr<const Botan::TLS::Policy>&
      policy,\n                                   std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                   bool client_auth = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:882,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:883,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:884,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:885,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:886,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:888,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:889,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:891,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:892,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 10
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    - ' mac_policy'
    - ' etm_policy'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 900
    functionName: Botan_Tests::TLS_Unit_Tests::test_all_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<Test_Policy>
    - auto::set
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - find
    linkageType: ''
    returnType: void
    signature: "void test_all_versions(const std::string& test_descr,\n                                    std::vector<Test::Result>&
      results,\n                                    const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                    const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                    const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                    std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                    const std::string& kex_policy,\n                                    const
      std::string& cipher_policy,\n                                    const std::string&
      mac_policy,\n                                    const std::string& etm_policy,\n
      \                                   bool client_auth = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 924
    functionName: Botan_Tests::TLS_Unit_Tests::test_modern_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 5
    functionsReached:
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    linkageType: ''
    returnType: void
    signature: "void test_modern_versions(const std::string& test_descr,\n                                       std::vector<Test::Result>&
      results,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                       const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                       std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                       const std::string& kex_policy,\n
      \                                      const std::string& cipher_policy,\n                                       const
      std::string& mac_policy = \"AEAD\",\n                                       bool
      client_auth = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:938,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:939,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:940,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:941,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:942,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:944,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:945,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:949,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 10
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    - ' mac_policy'
    - ' extra_policies'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    - std::string
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 957
    functionName: Botan_Tests::TLS_Unit_Tests::test_modern_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 5
    functionsReached:
    - std::make_shared<Test_Policy>
    - auto::set
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - find
    linkageType: ''
    returnType: void
    signature: "void test_modern_versions(const std::string& test_descr,\n                                       std::vector<Test::Result>&
      results,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                       const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                       std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                       const std::string& kex_policy,\n
      \                                      const std::string& cipher_policy,\n                                       const
      std::string& mac_policy,\n                                       const std::map<std::string,
      std::string>& extra_policies,\n                                       bool client_auth
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:965,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:966,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:980,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: TLS_Handshake_Test::set_server_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:982,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:992,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:992,1
    - Dst: TLS_Handshake_Test::set_custom_server_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1001,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:1002,1
    - Dst: TLS_Handshake_Test::set_client_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:1003,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1005,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1018,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1018,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:1019,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1021,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1021,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:1022,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - ' results'
    - creds
    - rng
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 1026
    functionName: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - TLS_Handshake_Test::results
    - server_aborts
    - TLS_Handshake_Test::go
    - to_string
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - type_string
    - TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    - TLS_Handshake_Test::set_server_expected_handshake_alert
    - std::rethrow_exception
    - TLS_Handshake_Test::set_client_expected_handshake_alert
    - client_aborts
    - TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    - std::make_exception_ptr
    - TLS_Exception
    - Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
    - push_back
    - std::runtime_error
    linkageType: ''
    returnType: void
    signature: "void test_session_established_abort(std::vector<Test::Result>& results,\n
      \                                         std::shared_ptr<Credentials_Manager_Test>
      creds,\n                                          std::shared_ptr<Botan::RandomNumberGenerator>
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1031,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1044,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: wire_code
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1048,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1058,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1063,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1068,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1069,1
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1074,1
    - Dst: std::get_if<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:1082,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1083,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1085,1
    - Dst: auto*::is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1086,1
    - Dst: dynamic_cast<const HardwareEcdhKey*>
      Src: /src/botan/src/tests/unit_tls.cpp:1088,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1089,1
    - Dst: auto*::custom_ephemeral_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:1092,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1095,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1096,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1097,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1098,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - ' results'
    - ' creds'
    - ' rng'
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1100
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan::store_be
    - TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - is_ecdh_named_curve
    - TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::get_if<Botan::TLS::Group_Params>
    - TLS_Handshake_Test::go
    - require
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - wire_code
    - auto::set
    - push_back
    - Botan::hex_encode
    - dynamic_cast<const HardwareEcdhKey*>
    - to_string
    - std::make_unique<HardwareEcdhKey>
    - auto*::custom_ephemeral_agreement
    - auto*::is_ecdh_named_curve
    - TLS_Handshake_Test::results
    linkageType: ''
    returnType: void
    signature: "void test_custom_ecdh_provider(std::vector<Test::Result>& results,\n
      \                                    const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                     const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1104
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::name
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::new_object
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CustomKDF>
    linkageType: ''
    returnType: std::unique_ptr<KDF>
    signature: std::unique_ptr<KDF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1114
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::perform_kdf
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: "void perform_kdf(std::span<uint8_t> key,\n                             std::span<const
      uint8_t> /*secret*/,\n                             std::span<const uint8_t>
      /*salt*/,\n                             std::span<const uint8_t> /*label*/)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1120,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1122,1
    - Dst: TLS_Handshake_Test::set_client_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1137,1
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1139,1
    - Dst: TLS_Handshake_Test::set_server_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1142,1
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1144,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1147,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1149,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1150,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1151,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - ' results'
    - ' creds'
    - ' rng'
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1152
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - TLS_Handshake_Test::set_client_custom_kdf_callback
    - std::make_unique<CustomKDF>
    - TLS_Handshake_Test::go
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - TLS_Handshake_Test::set_server_custom_kdf_callback
    - push_back
    - TLS_Handshake_Test::results
    linkageType: ''
    returnType: void
    signature: "void test_custom_kdf_provider(std::vector<Test::Result>& results,\n
      \                                   const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                    const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1164,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1165,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1169,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1173,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1176,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/unit_tls.cpp:1180,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1185,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1195,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1207,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1209,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1213,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1215,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1217,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1222,1
    - Dst: std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
      Src: /src/botan/src/tests/unit_tls.cpp:1225,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1226,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/unit_tls.cpp:1235,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1236,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1246,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1248,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1249,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1251,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1262,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1273,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1276,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1281,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1285,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1295,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1305,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1317,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1329,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1340,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1342,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1343,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1356,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1357,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1361,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1365,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1368,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1372,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1375,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1376,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1380,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/unit_tls.cpp:1399,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1404,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
      Src: /src/botan/src/tests/unit_tls.cpp:1419,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1425,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1155
    functionDepth: 3
    functionLinenumber: 1155
    functionLinenumberEnd: 1432
    functionName: Botan_Tests::TLS_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::new_shared_rng
    - Botan::OID::register_oid
    - Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    - Botan_Tests::Test::Result::Note
    - Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
    - Botan::EC_Group::supports_application_specific_group
    - std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
    - Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - Botan_Tests::TLS_Unit_Tests::test_name
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    - Botan_Tests::TLS_Unit_Tests::test_all_versions
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - std::shared_ptr::remove_all
    - std::make_shared<Botan::TLS::NSA_Suite_B_128>
    - create_creds
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1458,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1477,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1481,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1488,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1494,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1507,1
    - Dst: Botan_Tests::DTLS_Reconnection_Test::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1507,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1509,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1510,1
    - Dst: std::make_shared<Credentials_PSK>
      Src: /src/botan/src/tests/unit_tls.cpp:1511,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1512,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1513,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1522,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1528,1
    - Dst: Botan::TLS::Protocol_Version::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1529,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1542,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1546,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1548,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1553,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1555,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1560,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1561,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1565,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1566,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1569,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1569,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1570,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1571,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1580,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1581,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1585,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1591,1
    - Dst: Botan::TLS::Protocol_Version::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1592,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1606,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1610,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1612,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1617,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1619,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1624,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1625,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1629,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1630,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1633,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1633,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1634,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1635,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1641
    functionName: Botan_Tests::DTLS_Reconnection_Test::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Protocol_Version::latest_dtls_version
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - Botan::SymmetricKey
    - test_success
    - Botan::TLS::Server_Information
    - std::make_shared<Datagram_PSK_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - Test::Result::test_failure
    - Botan::TLS::Server::received_data
    - Botan::TLS::Server::is_active
    - std::vector::empty
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - std::vector<std::string>
    - std::swap
    - std::vector::clear
    - begin
    - Test::Result::test_bin_eq
    - Botan::TLS::Client::received_data
    - Botan::TLS::Server::send
    - std::make_shared<Test_Callbacks>
    - std::make_shared<Credentials_PSK>
    - std::vector::data
    - insert
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Test_Error
    - Botan_Tests::DTLS_Reconnection_Test::test_name
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' results'
    - ' outbound'
    - ' recv_buf'
    argTypes:
    - Test::Result
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1443
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test::Result& results, std::vector<uint8_t>& outbound,
      std::vector<uint8_t>& recv_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1447
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1451
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq*/, std::span<const uint8_t>
      bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1455
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1459
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_success
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*session*/)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1477,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1481,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1488,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1489
    functionName: Botan_Tests::DTLS_Reconnection_Test::Credentials_PSK::psk
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::SymmetricKey
    linkageType: ''
    returnType: Botan::SymmetricKey
    signature: "Botan::SymmetricKey psk(const std::string& type,\n                                       const
      std::string& context,\n                                       const std::string&
      /*identity*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1494
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allowed_macs
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_macs() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1496
    functionDepth: 0
    functionLinenumber: 1496
    functionLinenumberEnd: 1496
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allowed_key_exchange_methods
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_key_exchange_methods() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1498
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_tls12
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_tls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1500
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_dtls12
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1502
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_dtls_epoch0_restart
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls_epoch0_restart() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:79,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:80,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:81,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:82,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:83,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - with_client_certs
    - ' rsa_cert'
    - rsa_key
    - ' rsa_ca'
    - ' rsa_crl'
    - ' ecdsa_cert'
    - ecdsa_key
    - ' ecdsa_ca'
    - ' ecdsa_crl'
    argTypes:
    - bool
    - Botan::X509_Certificate
    - Botan::Private_Key*
    - Botan::X509_Certificate
    - Botan::X509_CRL
    - Botan::X509_Certificate
    - Botan::Private_Key*
    - Botan::X509_Certificate
    - Botan::X509_CRL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Credentials_Manager_Test::Credentials_Manager_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::add_crl
    - std::move
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::add_certificate
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Credentials_Manager_Test(bool with_client_certs,\n                               const
      Botan::X509_Certificate& rsa_cert,\n                               Botan::Private_Key*
      rsa_key,\n                               const Botan::X509_Certificate& rsa_ca,\n
      \                              const Botan::X509_CRL& rsa_crl,\n                               const
      Botan::X509_Certificate& ecdsa_cert,\n                               Botan::Private_Key*
      ecdsa_key,\n                               const Botan::X509_Certificate& ecdsa_ca,\n
      \                              const Botan::X509_CRL& ecdsa_crl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/unit_tls.cpp:91,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:91,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:93,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Credentials_Manager_Test::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - size
    - get
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Botan::Certificate_Store*>
    signature: "std::vector<Botan::Certificate_Store*> trusted_certificate_authorities(const
      std::string& /*type*/,\n                                                                             const
      std::string& /*context*/) override"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/unit_tls.cpp:103,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:106,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:113,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - ' cert_key_types'
    - ' acceptable_CAs'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::vector<Botan::X509_DN>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Credentials_Manager_Test::find_cert_chain
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - empty
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> find_cert_chain(const std::vector<std::string>&
      cert_key_types,\n                                                           const
      std::vector<Botan::AlgorithmIdentifier>& /*unused*/,\n                                                           const
      std::vector<Botan::X509_DN>& acceptable_CAs,\n                                                           const
      std::string& type,\n                                                           const
      std::string& context) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' crt'
    argTypes:
    - Botan::X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: Botan_Tests::Credentials_Manager_Test::private_key_for
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      crt,\n                                                          const std::string&
      /*type*/,\n                                                          const std::string&
      /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Botan_Tests::Credentials_Manager_Test::session_ticket_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Botan_Tests::Credentials_Manager_Test::dtls_cookie_secret
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> dtls_cookie_secret() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:152,1
    - Dst: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
      Src: /src/botan/src/tests/unit_tls.cpp:153,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:162,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:163,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:167,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - host
    - whoami
    argTypes:
    - std::string_view
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode_locked
    - Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    - std::vector::emplace_back
    - empty
    linkageType: ''
    returnType: std::vector<Botan::TLS::ExternalPSK>
    signature: "std::vector<Botan::TLS::ExternalPSK> find_preshared_keys(\n         std::string_view
      host,\n         Botan::TLS::Connection_Side whoami,\n         const std::vector<std::string>&
      identities = {},\n         const std::optional<std::string>& prf = std::nullopt)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: '& get_acceptable_cas() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::X509_DN>
    signature: std::vector<Botan::X509_DN> & get_acceptable_cas() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::supported_ec_group_name
      Src: /src/botan/src/tests/unit_tls.cpp:193,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:198,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:201,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:202,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:204,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:205,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:209,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:210,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:213,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:215,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:219,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:220,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_tls.cpp:226,1
    - Dst: years
      Src: /src/botan/src/tests/unit_tls.cpp:229,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:231,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:232,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:234,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:235,1
    - Dst: std::make_shared<Credentials_Manager_Test>
      Src: /src/botan/src/tests/unit_tls.cpp:237,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:239,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 246
    functionName: Botan_Tests::create_creds
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509::create_cert_req
    - years
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::X509_CA::sign_request
    - Botan_Tests::Test::supported_ec_group_name
    - Botan::EC_Group::from_name
    - std::make_shared<Credentials_Manager_Test>
    - std::make_unique<Botan::RSA_PrivateKey>
    - Botan::X509_Cert_Options::CA_key
    - auto::release
    - Botan::X509_CA::new_crl
    linkageType: ''
    returnType: std::shared_ptr<Credentials_Manager_Test>
    signature: "std::shared_ptr<Credentials_Manager_Test> create_creds(Botan::RandomNumberGenerator&
      rng,\n                                                       bool with_client_certs
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:277,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:278,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:280,1
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/tests/unit_tls.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - ' test_descr'
    - offer_version
    - ' creds'
    - ' client_policy'
    - ' server_policy'
    - ' rng'
    - ' client_sessions'
    - ' server_sessions'
    - expect_client_auth
    argTypes:
    - std::string
    - Botan::TLS::Protocol_Version
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 284
    functionName: Botan_Tests::TLS_Handshake_Test::TLS_Handshake_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::TLS::Server>
    - std::make_shared<Test_Callbacks>
    - Botan::TLS::Protocol_Version::is_datagram_protocol
    linkageType: ''
    returnType: void
    signature: "void TLS_Handshake_Test(const std::string& test_descr,\n                         Botan::TLS::Protocol_Version
      offer_version,\n                         const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                         const std::shared_ptr<const Botan::TLS::Policy>&
      client_policy,\n                         const std::shared_ptr<const Botan::TLS::Policy>&
      server_policy,\n                         const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                         const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_sessions,\n                         const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_sessions,\n                         bool expect_client_auth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    functionName: '& results() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result & results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: '& results()'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result & results()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:294,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:295,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_tls_session_established_callback
    linkageType: ''
    returnType: void
    signature: "void set_custom_client_tls_session_established_callback(\n         std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:300,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:301,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_tls_session_established_callback
    linkageType: ''
    returnType: void
    signature: "void set_custom_server_tls_session_established_callback(\n         std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:305,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:306,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_generate_ephemeral_ecdh_key_callback(generate_ephemeral_ecdh_key_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:310,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:311,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_ephemeral_key_agreement_callback(ephemeral_key_agreement_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:315,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - set_expected_handshake_alert
    linkageType: ''
    returnType: void
    signature: void set_client_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:320,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - set_expected_handshake_alert
    linkageType: ''
    returnType: void
    signature: void set_server_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:325,1
    - Dst: set_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:326,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_kdf_callback
    linkageType: ''
    returnType: void
    signature: void set_client_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/tests/unit_tls.cpp:330,1
    - Dst: set_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - set_custom_kdf_callback
    linkageType: ''
    returnType: void
    signature: void set_server_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - static_cast<Botan::TLS::Extension_Code>
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code static_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/tests/unit_tls.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::type
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 344
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::serialize
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize(Botan::TLS::Connection_Side /*whoami*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 346
    functionName: '& value() const'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::empty
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::Test_Extension
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - append_tls_length_value
    linkageType: ''
    returnType: void
    signature: void Test_Extension(Botan::TLS::Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' results'
    - expected_version
    - ' outbound'
    - ' recv_buf'
    argTypes:
    - Test::Result
    - Botan::TLS::Protocol_Version
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Callbacks(Test::Result& results,\n                           Botan::TLS::Protocol_Version
      expected_version,\n                           std::vector<uint8_t>& outbound,\n
      \                          std::vector<uint8_t>& recv_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test_Callbacks&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(const Test_Callbacks&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: '& operator=(const Test_Callbacks&)'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Callbacks
    signature: Test_Callbacks & operator=(const Test_Callbacks&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    functionName: '& operator=(Test_Callbacks&&)'
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Callbacks
    signature: Test_Callbacks & operator=(Test_Callbacks&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: ~Test_Callbacks() override
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - type_string
    - test_failure
    - has_value
    linkageType: ''
    returnType: void
    signature: void ~Test_Callbacks() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 388
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq*/, std::span<const uint8_t>
      bits) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/unit_tls.cpp:393,1
    - Dst: type
      Src: /src/botan/src/tests/unit_tls.cpp:394,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/tests/unit_tls.cpp:394,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:395,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/unit_tls.cpp:395,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:396,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:399,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:399,1
    - Dst: reset
      Src: /src/botan/src/tests/unit_tls.cpp:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - reset
    - type_string
    - Botan::TLS::Alert::type
    - test_failure
    - Botan::TLS::Alert::type_string
    - type
    - has_value
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:408,1
    - Dst: Test_Extension::Test_Extension
      Src: /src/botan/src/tests/unit_tls.cpp:408,1
    - Dst: take
      Src: /src/botan/src/tests/unit_tls.cpp:411,1
    - Dst: auto::supported_schemes
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    - Dst: Botan::TLS::Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' extn'
    - which_side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 418
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - auto::supported_schemes
    - Test_Extension::Test_Extension
    - add
    - std::vector::begin
    - Botan::TLS::Signature_Algorithms::Signature_Algorithms
    - std::vector::insert
    - take
    linkageType: ''
    returnType: void
    signature: "void tls_modify_extensions(Botan::TLS::Extensions& extn,\n                                       Botan::TLS::Connection_Side
      which_side,\n                                       Botan::TLS::Handshake_Type
      /* unused */) override"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:424,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:425,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: dynamic_cast<Botan::TLS::Unknown_Extension*>
      Src: /src/botan/src/tests/unit_tls.cpp:430,1
    - Dst: Botan::TLS::Unknown_Extension*::value
      Src: /src/botan/src/tests/unit_tls.cpp:433,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:435,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:435,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:439,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' extn'
    - which_side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 446
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Botan::TLS::Unknown_Extension*>
    - test_sz_eq
    - get
    - test_failure
    - test_bin_eq
    - static_cast<Botan::TLS::Extension_Code>
    - Botan::TLS::Unknown_Extension*::value
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void tls_examine_extensions(const Botan::TLS::Extensions& extn,\n
      \                                       Botan::TLS::Connection_Side which_side,\n
      \                                       Botan::TLS::Handshake_Type /*unused*/)
      override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:449,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/unit_tls.cpp:450,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:451,1
    - Dst: session_id
      Src: /src/botan/src/tests/unit_tls.cpp:451,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:453,1
    - Dst: m_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:456,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:459,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:460,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:460,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 463
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - ciphersuite
    - m_session_established_callback
    - to_string
    - version
    - test_failure
    - session_id
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:466,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:466,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:467,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 470
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    - test_str_eq
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      protos) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:475,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:476,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:477,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:478,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/unit_tls.cpp:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - std::variant<Botan::TLS::Group_Params, Botan::DL_Group>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 482
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    - Botan::EC_Group::from_name
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: "std::unique_ptr<Botan::PK_Key_Agreement_Key> tls_generate_ephemeral_key(\n
      \              const std::variant<Botan::TLS::Group_Params, Botan::DL_Group>&
      group,\n               Botan::RandomNumberGenerator& rng) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
      Src: /src/botan/src/tests/unit_tls.cpp:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - group
    - ' rng'
    - tls12_ecc_pubkey_encoding_format
    argTypes:
    - Botan::TLS::Group_Params
    - Botan::RandomNumberGenerator
    - Botan::EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 494
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    - m_generate_ephemeral_ecdh_key_callback
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: "std::unique_ptr<Botan::PK_Key_Agreement_Key> tls12_generate_ephemeral_ecdh_key(\n
      \              Botan::TLS::Group_Params group,\n               Botan::RandomNumberGenerator&
      rng,\n               Botan::EC_Point_Format tls12_ecc_pubkey_encoding_format)
      override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:503,1
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:506,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:507,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:508,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:509,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:512,1
    - Dst: Botan::ECDH_PublicKey::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:512,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - ' group'
    - ' private_key'
    - ' public_value'
    - ' rng'
    - ' policy'
    argTypes:
    - std::variant<Botan::TLS::Group_Params, Botan::DL_Group>
    - Botan::PK_Key_Agreement_Key
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 516
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 4
    functionsReached:
    - Botan::ECDH_PublicKey::public_value
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    - Botan::PK_Key_Agreement::derive_key
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::EC_AffinePoint
    - m_ephemeral_key_agreement_callback
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: "Botan::secure_vector<uint8_t> tls_ephemeral_key_agreement(\n               const
      std::variant<Botan::TLS::Group_Params, Botan::DL_Group>& group,\n               const
      Botan::PK_Key_Agreement_Key& private_key,\n               const std::vector<uint8_t>&
      public_value,\n               Botan::RandomNumberGenerator& rng,\n               const
      Botan::TLS::Policy& policy) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:520,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
      Src: /src/botan/src/tests/unit_tls.cpp:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - prf_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_protocol_specific_kdf
    - m_custom_kdf_callback
    linkageType: ''
    returnType: std::unique_ptr<Botan::KDF>
    signature: std::unique_ptr<Botan::KDF> tls12_protocol_specific_kdf(std::string_view
      prf_algo) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - std::function<void(const Botan::TLS::Session_Summary&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void set_custom_tls_session_established_callback(\n               std::function<void(const
      Botan::TLS::Session_Summary&)> clbk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_generate_ephemeral_ecdh_key_callback(generate_ephemeral_ecdh_key_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_client_tls_ephemeral_key_agreement_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_client_tls_ephemeral_key_agreement_callback(ephemeral_key_agreement_clbk
      clbk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - custom_kdf_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 541
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::set_custom_kdf_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_custom_kdf_callback(custom_kdf_clbk clbk)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/unit_tls.cpp:575,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:580,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:582,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:585,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: std::make_unique<Botan::TLS::Client>
      Src: /src/botan/src/tests/unit_tls.cpp:591,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:596,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:613,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:617,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:621,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:622,1
    - Dst: std::unique_ptr::application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:622,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:625,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:626,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:628,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::unique_ptr::send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:633,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:637,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:641,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:642,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:644,1
    - Dst: send
      Src: /src/botan/src/tests/unit_tls.cpp:646,1
    - Dst: send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:650,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:654,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:661,1
    - Dst: received_data
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:665,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:672,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:674,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:677,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:678,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:685,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:693,1
    - Dst: is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:693,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:697,1
    - Dst: peer_cert_chain
      Src: /src/botan/src/tests/unit_tls.cpp:698,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:700,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:700,1
    - Dst: get_acceptable_cas
      Src: /src/botan/src/tests/unit_tls.cpp:702,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:704,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:704,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/unit_tls.cpp:707,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_tls.cpp:707,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/unit_tls.cpp:710,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:710,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:714,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:714,1
    - Dst: std::unique_ptr::key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:715,1
    - Dst: key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:716,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:718,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/unit_tls.cpp:720,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:720,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/unit_tls.cpp:721,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:721,1
    - Dst: std::unique_ptr::close
      Src: /src/botan/src/tests/unit_tls.cpp:722,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/unit_tls.cpp:723,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/unit_tls.cpp:724,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:724,1
    - Dst: end_timer
      Src: /src/botan/src/tests/unit_tls.cpp:728,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 729
    functionName: Botan_Tests::TLS_Handshake_Test::go
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_acceptable_cas
    - test_is_true
    - next_byte
    - test_failure
    - std::make_unique<Botan::TLS::Client>
    - std::unique_ptr::is_active
    - Botan::TLS::Server_Information
    - Botan::SymmetricKey::bits_of
    - std::unique_ptr::application_protocol
    - empty
    - test_is_false
    - min
    - application_protocol
    - get_first_attribute
    - test_bin_eq
    - end_timer
    - std::vector::size
    - std::unique_ptr::send
    - is_closed
    - std::swap
    - send_warning_alert
    - randomize
    - std::unique_ptr::close
    - key_material_export
    - send
    - std::unique_ptr::received_data
    - std::unique_ptr::send_warning_alert
    - test_sz_eq
    - std::vector::data
    - is_active
    - std::unique_ptr::is_closed
    - std::unique_ptr::key_material_export
    - static_cast<size_t>
    - received_data
    - peer_cert_chain
    - test_str_eq
    - start_timer
    linkageType: ''
    returnType: void
    signature: void TLS_Handshake_Test::go()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: Botan_Tests::Test_Policy::Test_Policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/tests/unit_tls.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 738
    functionName: Botan_Tests::Test_Policy::acceptable_protocol_version
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Protocol_Version::is_pre_tls_13
    linkageType: ''
    returnType: bool
    signature: bool acceptable_protocol_version(Botan::TLS::Protocol_Version version)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 740
    functionName: Botan_Tests::Test_Policy::dtls_initial_timeout
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dtls_initial_timeout() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 742
    functionName: Botan_Tests::Test_Policy::dtls_maximum_timeout
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dtls_maximum_timeout() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 744
    functionName: Botan_Tests::Test_Policy::minimum_rsa_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_rsa_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan_Tests::Test_Policy::minimum_signature_strength
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_signature_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - group
    - public_key_format
    argTypes:
    - Botan::EC_Group
    - Botan::EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 771
    functionName: Botan_Tests::HardwareEcdhKey::HardwareEcdhKey
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void HardwareEcdhKey(Botan::EC_Group group, Botan::EC_Point_Format
      public_key_format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 773
    functionName: Botan_Tests::HardwareEcdhKey::algo_name
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 775
    functionName: Botan_Tests::HardwareEcdhKey::estimated_strength
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_p
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - Botan::PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 779
    functionName: Botan_Tests::HardwareEcdhKey::supports_operation
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(Botan::PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 781
    functionName: Botan_Tests::HardwareEcdhKey::check_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_key(Botan::RandomNumberGenerator& /*rng*/, bool /*strong*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 783
    functionName: Botan_Tests::HardwareEcdhKey::key_length
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - get_p
    linkageType: ''
    returnType: size_t
    signature: size_t key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 785
    functionName: Botan_Tests::HardwareEcdhKey::algorithm_identifier
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::AlgorithmIdentifier
    signature: Botan::AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:788,1
    - Dst: Invalid_State
      Src: /src/botan/src/tests/unit_tls.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 792
    functionName: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 9
    functionsReached:
    - Invalid_State
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> raw_public_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 794
    functionName: Botan_Tests::HardwareEcdhKey::public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/unit_tls.cpp:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 798
    functionName: Botan_Tests::HardwareEcdhKey::private_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::Not_Implemented::Not_Implemented
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> private_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 802
    functionName: Botan_Tests::HardwareEcdhKey::public_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 806
    functionName: Botan_Tests::HardwareEcdhKey::generate_another
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HardwareEcdhKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> generate_another(Botan::RandomNumberGenerator&
      /*rng*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 808
    functionName: Botan_Tests::HardwareEcdhKey::public_value
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/botan/src/tests/unit_tls.cpp:816,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: auto::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - peer_public_key
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 821
    functionName: Botan_Tests::HardwareEcdhKey::custom_ephemeral_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - Botan::ECDH_PrivateKey
    - auto::public_value
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: "Botan::secure_vector<uint8_t> custom_ephemeral_agreement(std::span<const
      uint8_t> peer_public_key,\n                                                               Botan::RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:842,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:851,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:854,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:863,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:864,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:864,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    - Dst: what
      Src: /src/botan/src/tests/unit_tls.cpp:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' versions'
    - ' policy'
    - ' rng'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::vector<Botan::TLS::Protocol_Version>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 869
    functionName: Botan_Tests::TLS_Unit_Tests::test_with_policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 9
    functionsReached:
    - TLS_Handshake_Test::results
    - TLS_Handshake_Test::go
    - to_string
    - what
    - Botan_Tests::Test::Result::Failure
    - push_back
    linkageType: ''
    returnType: void
    signature: "void test_with_policy(const std::string& test_descr,\n                                   std::vector<Test::Result>&
      results,\n                                   const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                   const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                   const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                   const std::vector<Botan::TLS::Protocol_Version>&
      versions,\n                                   const std::shared_ptr<const Botan::TLS::Policy>&
      policy,\n                                   std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                   bool client_auth = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:882,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:883,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:884,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:885,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:886,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:888,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:889,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:891,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:892,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 10
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    - ' mac_policy'
    - ' etm_policy'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 900
    functionName: Botan_Tests::TLS_Unit_Tests::test_all_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - std::make_shared<Test_Policy>
    - auto::set
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - find
    linkageType: ''
    returnType: void
    signature: "void test_all_versions(const std::string& test_descr,\n                                    std::vector<Test::Result>&
      results,\n                                    const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                    const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                    const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                    std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                    const std::string& kex_policy,\n                                    const
      std::string& cipher_policy,\n                                    const std::string&
      mac_policy,\n                                    const std::string& etm_policy,\n
      \                                   bool client_auth = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 924
    functionName: Botan_Tests::TLS_Unit_Tests::test_modern_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 7
    functionsReached:
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    linkageType: ''
    returnType: void
    signature: "void test_modern_versions(const std::string& test_descr,\n                                       std::vector<Test::Result>&
      results,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                       const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                       std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                       const std::string& kex_policy,\n
      \                                      const std::string& cipher_policy,\n                                       const
      std::string& mac_policy = \"AEAD\",\n                                       bool
      client_auth = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:938,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:939,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:940,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:941,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:942,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:944,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:945,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:949,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 10
    argNames:
    - ' test_descr'
    - ' results'
    - ' client_ses'
    - ' server_ses'
    - ' creds'
    - ' rng'
    - ' kex_policy'
    - ' cipher_policy'
    - ' mac_policy'
    - ' extra_policies'
    argTypes:
    - std::string
    - std::vector<Test::Result>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::string
    - std::string
    - std::string
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 957
    functionName: Botan_Tests::TLS_Unit_Tests::test_modern_versions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 7
    functionsReached:
    - std::make_shared<Test_Policy>
    - auto::set
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - find
    linkageType: ''
    returnType: void
    signature: "void test_modern_versions(const std::string& test_descr,\n                                       std::vector<Test::Result>&
      results,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      client_ses,\n                                       const std::shared_ptr<Botan::TLS::Session_Manager>&
      server_ses,\n                                       const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                       std::shared_ptr<Botan::RandomNumberGenerator>&
      rng,\n                                       const std::string& kex_policy,\n
      \                                      const std::string& cipher_policy,\n                                       const
      std::string& mac_policy,\n                                       const std::map<std::string,
      std::string>& extra_policies,\n                                       bool client_auth
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:965,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:966,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:980,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: TLS_Handshake_Test::set_server_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:982,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:992,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:992,1
    - Dst: TLS_Handshake_Test::set_custom_server_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1001,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:1002,1
    - Dst: TLS_Handshake_Test::set_client_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:1003,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1005,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:1013,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:1015,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1018,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1018,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:1019,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1021,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1021,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:1022,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - ' results'
    - creds
    - rng
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 1026
    functionName: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - TLS_Handshake_Test::results
    - server_aborts
    - TLS_Handshake_Test::go
    - to_string
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - type_string
    - TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    - TLS_Handshake_Test::set_server_expected_handshake_alert
    - std::rethrow_exception
    - TLS_Handshake_Test::set_client_expected_handshake_alert
    - client_aborts
    - TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    - std::make_exception_ptr
    - TLS_Exception
    - Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
    - push_back
    - std::runtime_error
    linkageType: ''
    returnType: void
    signature: "void test_session_established_abort(std::vector<Test::Result>& results,\n
      \                                         std::shared_ptr<Credentials_Manager_Test>
      creds,\n                                          std::shared_ptr<Botan::RandomNumberGenerator>
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1031,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1044,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: wire_code
      Src: /src/botan/src/tests/unit_tls.cpp:1045,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1048,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1058,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1063,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1068,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1069,1
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1070,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1074,1
    - Dst: std::get_if<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:1082,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1083,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1085,1
    - Dst: auto*::is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1086,1
    - Dst: dynamic_cast<const HardwareEcdhKey*>
      Src: /src/botan/src/tests/unit_tls.cpp:1088,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1089,1
    - Dst: auto*::custom_ephemeral_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:1092,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1095,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1096,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1097,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1098,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - ' results'
    - ' creds'
    - ' rng'
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1100
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan::store_be
    - TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - is_ecdh_named_curve
    - TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::get_if<Botan::TLS::Group_Params>
    - TLS_Handshake_Test::go
    - require
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - wire_code
    - auto::set
    - push_back
    - Botan::hex_encode
    - dynamic_cast<const HardwareEcdhKey*>
    - to_string
    - std::make_unique<HardwareEcdhKey>
    - auto*::custom_ephemeral_agreement
    - auto*::is_ecdh_named_curve
    - TLS_Handshake_Test::results
    linkageType: ''
    returnType: void
    signature: "void test_custom_ecdh_provider(std::vector<Test::Result>& results,\n
      \                                    const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                     const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1104
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::name
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1106
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::new_object
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CustomKDF>
    linkageType: ''
    returnType: std::unique_ptr<KDF>
    signature: std::unique_ptr<KDF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fill
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1114
    functionName: Botan_Tests::TLS_Unit_Tests::CustomKDF::perform_kdf
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::begin
    - std::fill
    - std::span<uint8_t>::end
    linkageType: ''
    returnType: void
    signature: "void perform_kdf(std::span<uint8_t> key,\n                             std::span<const
      uint8_t> /*secret*/,\n                             std::span<const uint8_t>
      /*salt*/,\n                             std::span<const uint8_t> /*label*/)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1120,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1122,1
    - Dst: TLS_Handshake_Test::set_client_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1137,1
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1139,1
    - Dst: TLS_Handshake_Test::set_server_custom_kdf_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1142,1
    - Dst: std::make_unique<CustomKDF>
      Src: /src/botan/src/tests/unit_tls.cpp:1144,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1147,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1149,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1150,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1151,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - ' results'
    - ' creds'
    - ' rng'
    argTypes:
    - std::vector<Test::Result>
    - std::shared_ptr<Credentials_Manager_Test>
    - std::shared_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1152
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - TLS_Handshake_Test::set_client_custom_kdf_callback
    - std::make_unique<CustomKDF>
    - TLS_Handshake_Test::go
    - std::make_shared<Test_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - TLS_Handshake_Test::set_server_custom_kdf_callback
    - push_back
    - TLS_Handshake_Test::results
    linkageType: ''
    returnType: void
    signature: "void test_custom_kdf_provider(std::vector<Test::Result>& results,\n
      \                                   const std::shared_ptr<Credentials_Manager_Test>&
      creds,\n                                    const std::shared_ptr<Botan::RandomNumberGenerator>&
      rng)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1164,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1165,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1169,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1173,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1176,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/unit_tls.cpp:1180,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1185,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1195,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1207,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1209,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1213,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1215,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1217,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1222,1
    - Dst: std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
      Src: /src/botan/src/tests/unit_tls.cpp:1225,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1226,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/unit_tls.cpp:1235,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1236,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1246,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1248,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1249,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1251,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1262,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1273,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1276,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1281,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1285,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1295,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1305,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1317,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1329,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1340,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1342,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1343,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1356,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1357,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1361,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1365,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1368,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1372,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1375,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1376,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1380,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/unit_tls.cpp:1399,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1404,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
      Src: /src/botan/src/tests/unit_tls.cpp:1419,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1425,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1155
    functionDepth: 3
    functionLinenumber: 1155
    functionLinenumberEnd: 1432
    functionName: Botan_Tests::TLS_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::new_shared_rng
    - Botan::OID::register_oid
    - Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    - Botan_Tests::Test::Result::Note
    - Botan_Tests::TLS_Unit_Tests::test_custom_kdf_provider
    - Botan::EC_Group::supports_application_specific_group
    - std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
    - Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - Botan_Tests::TLS_Unit_Tests::test_name
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    - Botan_Tests::TLS_Unit_Tests::test_all_versions
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    - std::shared_ptr::remove_all
    - std::make_shared<Botan::TLS::NSA_Suite_B_128>
    - create_creds
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1458,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1477,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1481,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1488,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1494,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1507,1
    - Dst: Botan_Tests::DTLS_Reconnection_Test::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1507,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1509,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1510,1
    - Dst: std::make_shared<Credentials_PSK>
      Src: /src/botan/src/tests/unit_tls.cpp:1511,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1512,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1513,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1522,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1528,1
    - Dst: Botan::TLS::Protocol_Version::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1529,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1542,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1546,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1548,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1549,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1553,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1555,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1556,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1560,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1561,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1565,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1566,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1569,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1569,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1570,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1571,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1580,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1581,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1585,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1591,1
    - Dst: Botan::TLS::Protocol_Version::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1592,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1606,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1610,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1612,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1613,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1617,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1619,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1620,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1624,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1625,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1629,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1630,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1633,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1633,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1634,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1635,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1641
    functionName: Botan_Tests::DTLS_Reconnection_Test::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Protocol_Version::latest_dtls_version
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - Botan::SymmetricKey
    - test_success
    - Botan::TLS::Server_Information
    - std::make_shared<Datagram_PSK_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - Test::Result::test_failure
    - Botan::TLS::Server::received_data
    - Botan::TLS::Server::is_active
    - std::vector::empty
    - std::vector::size
    - Botan_Tests::Test::new_shared_rng
    - std::vector<std::string>
    - std::swap
    - std::vector::clear
    - begin
    - Test::Result::test_bin_eq
    - Botan::TLS::Client::received_data
    - Botan::TLS::Server::send
    - std::make_shared<Test_Callbacks>
    - std::make_shared<Credentials_PSK>
    - std::vector::data
    - insert
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Test_Error
    - Botan_Tests::DTLS_Reconnection_Test::test_name
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' results'
    - ' outbound'
    - ' recv_buf'
    argTypes:
    - Test::Result
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1443
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test::Result& results, std::vector<uint8_t>& outbound,
      std::vector<uint8_t>& recv_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1447
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1451
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq*/, std::span<const uint8_t>
      bits) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1455
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1459
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_success
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*session*/)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1477,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1481,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1488,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1489
    functionName: Botan_Tests::DTLS_Reconnection_Test::Credentials_PSK::psk
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::SymmetricKey
    linkageType: ''
    returnType: Botan::SymmetricKey
    signature: "Botan::SymmetricKey psk(const std::string& type,\n                                       const
      std::string& context,\n                                       const std::string&
      /*identity*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1494
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allowed_macs
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_macs() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1496
    functionDepth: 0
    functionLinenumber: 1496
    functionLinenumberEnd: 1496
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allowed_key_exchange_methods
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_key_exchange_methods() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1498
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_tls12
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_tls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1500
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_dtls12
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1502
    functionName: Botan_Tests::DTLS_Reconnection_Test::Datagram_PSK_Policy::allow_dtls_epoch0_restart
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls_epoch0_restart() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:27,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:28,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:29,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:31,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_sm2.cpp:32,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:32,1
    - Dst: std::make_unique<Botan::SM2_PrivateKey>
      Src: /src/botan/src/tests/test_sm2.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: Botan_Tests::load_sm2_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::SM2_PrivateKey>
    - Botan::EC_Group::from_OID
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_sm2_private_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::SM2_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_sm2.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:53,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - get_opt_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_sm2.cpp:57,1
    - Dst: Botan_Tests::SM2_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SM2_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_sm2_private_key
      Src: /src/botan/src/tests/test_sm2.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - load_sm2_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::SM2_Encryption_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Encryption_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_sm2.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_opt_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_sm2.cpp:82,1
    - Dst: Botan_Tests::SM2_Encryption_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SM2_Encryption_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_sm2_private_key
      Src: /src/botan/src/tests/test_sm2.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - load_sm2_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::SM2_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::SM2_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_sm2.cpp:101,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_sm2.cpp:102,1
    - Dst: std::make_unique<Botan::SM2_PublicKey>
      Src: /src/botan/src/tests/test_sm2.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_Tests::SM2_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::SM2_PublicKey>
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::SM2_Invalid_Ciphertexts
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Invalid_Ciphertexts()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sm2.cpp:118,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sm2.cpp:119,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_sm2.cpp:121,1
    - Dst: Botan::SM2_PrivateKey::SM2_PrivateKey
      Src: /src/botan/src/tests/test_sm2.cpp:122,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_sm2.cpp:122,1
    - Dst: rng
      Src: /src/botan/src/tests/test_sm2.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_sm2.cpp:126,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_sm2.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - get_req_bin
    - Botan::SM2_PrivateKey::SM2_PrivateKey
    - Botan::EC_Group::from_name
    - Botan::PK_Decryptor_EME::decrypt
    - rng
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:27,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:28,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:29,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:31,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_sm2.cpp:32,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:32,1
    - Dst: std::make_unique<Botan::SM2_PrivateKey>
      Src: /src/botan/src/tests/test_sm2.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: Botan_Tests::load_sm2_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::SM2_PrivateKey>
    - Botan::EC_Group::from_OID
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_sm2_private_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::SM2_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_sm2.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:53,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - get_opt_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_sm2.cpp:57,1
    - Dst: Botan_Tests::SM2_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SM2_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_sm2_private_key
      Src: /src/botan/src/tests/test_sm2.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - load_sm2_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::SM2_Encryption_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Encryption_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_sm2.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_opt_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_sm2.cpp:82,1
    - Dst: Botan_Tests::SM2_Encryption_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SM2_Encryption_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_sm2_private_key
      Src: /src/botan/src/tests/test_sm2.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - load_sm2_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::SM2_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::SM2_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_sm2.cpp:101,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_sm2.cpp:102,1
    - Dst: std::make_unique<Botan::SM2_PublicKey>
      Src: /src/botan/src/tests/test_sm2.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_Tests::SM2_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::SM2_PublicKey>
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::SM2_Invalid_Ciphertexts
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Invalid_Ciphertexts()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sm2.cpp:118,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sm2.cpp:119,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_sm2.cpp:121,1
    - Dst: Botan::SM2_PrivateKey::SM2_PrivateKey
      Src: /src/botan/src/tests/test_sm2.cpp:122,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_sm2.cpp:122,1
    - Dst: rng
      Src: /src/botan/src/tests/test_sm2.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_sm2.cpp:126,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_sm2.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - get_req_bin
    - Botan::SM2_PrivateKey::SM2_PrivateKey
    - Botan::EC_Group::from_name
    - Botan::PK_Decryptor_EME::decrypt
    - rng
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:27,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:28,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:29,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:31,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_sm2.cpp:32,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:32,1
    - Dst: std::make_unique<Botan::SM2_PrivateKey>
      Src: /src/botan/src/tests/test_sm2.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: Botan_Tests::load_sm2_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::SM2_PrivateKey>
    - Botan::EC_Group::from_OID
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_sm2_private_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::SM2_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_sm2.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:53,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - get_opt_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_sm2.cpp:57,1
    - Dst: Botan_Tests::SM2_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SM2_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_sm2_private_key
      Src: /src/botan/src/tests/test_sm2.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - load_sm2_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::SM2_Encryption_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Encryption_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_sm2.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_opt_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_sm2.cpp:82,1
    - Dst: Botan_Tests::SM2_Encryption_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SM2_Encryption_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_sm2_private_key
      Src: /src/botan/src/tests/test_sm2.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - load_sm2_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::SM2_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::SM2_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_sm2.cpp:101,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_sm2.cpp:102,1
    - Dst: std::make_unique<Botan::SM2_PublicKey>
      Src: /src/botan/src/tests/test_sm2.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_Tests::SM2_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::SM2_PublicKey>
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::SM2_Invalid_Ciphertexts
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Invalid_Ciphertexts()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sm2.cpp:118,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sm2.cpp:119,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_sm2.cpp:121,1
    - Dst: Botan::SM2_PrivateKey::SM2_PrivateKey
      Src: /src/botan/src/tests/test_sm2.cpp:122,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_sm2.cpp:122,1
    - Dst: rng
      Src: /src/botan/src/tests/test_sm2.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_sm2.cpp:126,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_sm2.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - get_req_bin
    - Botan::SM2_PrivateKey::SM2_PrivateKey
    - Botan::EC_Group::from_name
    - Botan::PK_Decryptor_EME::decrypt
    - rng
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:27,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:28,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:29,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:31,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_sm2.cpp:32,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:32,1
    - Dst: std::make_unique<Botan::SM2_PrivateKey>
      Src: /src/botan/src/tests/test_sm2.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: Botan_Tests::load_sm2_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::SM2_PrivateKey>
    - Botan::EC_Group::from_OID
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_sm2_private_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::SM2_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_sm2.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:53,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - get_opt_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_sm2.cpp:57,1
    - Dst: Botan_Tests::SM2_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SM2_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_sm2_private_key
      Src: /src/botan/src/tests/test_sm2.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - load_sm2_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::SM2_Encryption_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Encryption_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_sm2.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_application_specific_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& /*vars*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_opt_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_sm2.cpp:82,1
    - Dst: Botan_Tests::SM2_Encryption_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SM2_Encryption_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_sm2_private_key
      Src: /src/botan/src/tests/test_sm2.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - load_sm2_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::SM2_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::SM2_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_sm2.cpp:101,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_sm2.cpp:102,1
    - Dst: std::make_unique<Botan::SM2_PublicKey>
      Src: /src/botan/src/tests/test_sm2.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_Tests::SM2_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::SM2_PublicKey>
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::SM2_Invalid_Ciphertexts
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_Invalid_Ciphertexts()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sm2.cpp:118,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sm2.cpp:119,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_sm2.cpp:121,1
    - Dst: Botan::SM2_PrivateKey::SM2_PrivateKey
      Src: /src/botan/src/tests/test_sm2.cpp:122,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_sm2.cpp:122,1
    - Dst: rng
      Src: /src/botan/src/tests/test_sm2.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_sm2.cpp:126,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_sm2.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: Botan_Tests::SM2_Invalid_Ciphertexts::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - get_req_bin
    - Botan::SM2_PrivateKey::SM2_PrivateKey
    - Botan::EC_Group::from_name
    - Botan::PK_Decryptor_EME::decrypt
    - rng
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:23,1
    - Dst: Botan::TLS::Signature_Scheme::all_available_schemes
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:27,1
    - Dst: is_set
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:27,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:28,1
    - Dst: is_available
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:28,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: hash_function_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: padding_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: algorithm_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:35,1
    - Dst: Botan_Tests::format
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:35,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:36,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:37,1
    - Dst: key_algorithm_identifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:42,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:42,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:43,1
    - Dst: Botan::TLS::Signature_Scheme::is_set
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:43,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:44,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:44,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: Botan::TLS::Signature_Scheme::to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: Botan::TLS::Signature_Scheme::hash_function_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: Botan::TLS::Signature_Scheme::padding_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: Botan::TLS::Signature_Scheme::algorithm_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:51,1
    - Dst: Botan::TLS::Signature_Scheme::format
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:51,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:52,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:53,1
    - Dst: Botan::TLS::Signature_Scheme::key_algorithm_identifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 57
    functionName: Botan_Tests::test_signature_scheme
    functionSourceFile: /src/botan/src/tests/test_tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Signature_Scheme::key_algorithm_identifier
    - test_is_true
    - padding_string
    - Botan::TLS::Signature_Scheme::format
    - Botan::TLS::Signature_Scheme::is_available
    - hash_function_name
    - Botan::TLS::Signature_Scheme::is_set
    - is_available
    - AlgorithmIdentifier
    - Botan::TLS::Signature_Scheme::all_available_schemes
    - not_unknown
    - Botan::TLS::Signature_Scheme::to_string
    - Botan::TLS::Signature_Scheme::padding_string
    - Botan::TLS::Signature_Scheme::hash_function_name
    - Botan_Tests::CHECK
    - to_string
    - std::vector::push_back
    - find
    - is_set
    - Botan_Tests::format
    - algorithm_name
    - Botan::TLS::Signature_Scheme::algorithm_name
    - key_algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_signature_scheme()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:23,1
    - Dst: Botan::TLS::Signature_Scheme::all_available_schemes
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:27,1
    - Dst: is_set
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:27,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:28,1
    - Dst: is_available
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:28,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: hash_function_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: padding_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: algorithm_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:35,1
    - Dst: Botan_Tests::format
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:35,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:36,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:37,1
    - Dst: key_algorithm_identifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:42,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:42,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:43,1
    - Dst: Botan::TLS::Signature_Scheme::is_set
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:43,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:44,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:44,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: Botan::TLS::Signature_Scheme::to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: Botan::TLS::Signature_Scheme::hash_function_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: Botan::TLS::Signature_Scheme::padding_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: Botan::TLS::Signature_Scheme::algorithm_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:51,1
    - Dst: Botan::TLS::Signature_Scheme::format
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:51,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:52,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:53,1
    - Dst: Botan::TLS::Signature_Scheme::key_algorithm_identifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 57
    functionName: Botan_Tests::test_signature_scheme
    functionSourceFile: /src/botan/src/tests/test_tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Signature_Scheme::key_algorithm_identifier
    - test_is_true
    - padding_string
    - Botan::TLS::Signature_Scheme::format
    - Botan::TLS::Signature_Scheme::is_available
    - hash_function_name
    - Botan::TLS::Signature_Scheme::is_set
    - is_available
    - AlgorithmIdentifier
    - Botan::TLS::Signature_Scheme::all_available_schemes
    - not_unknown
    - Botan::TLS::Signature_Scheme::to_string
    - Botan::TLS::Signature_Scheme::padding_string
    - Botan::TLS::Signature_Scheme::hash_function_name
    - Botan_Tests::CHECK
    - to_string
    - std::vector::push_back
    - find
    - is_set
    - Botan_Tests::format
    - algorithm_name
    - Botan::TLS::Signature_Scheme::algorithm_name
    - key_algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_signature_scheme()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:23,1
    - Dst: Botan::TLS::Signature_Scheme::all_available_schemes
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:27,1
    - Dst: is_set
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:27,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:28,1
    - Dst: is_available
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:28,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: hash_function_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: padding_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: algorithm_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:35,1
    - Dst: Botan_Tests::format
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:35,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:36,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:37,1
    - Dst: key_algorithm_identifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:42,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:42,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:43,1
    - Dst: Botan::TLS::Signature_Scheme::is_set
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:43,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:44,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:44,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: Botan::TLS::Signature_Scheme::to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: Botan::TLS::Signature_Scheme::hash_function_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: Botan::TLS::Signature_Scheme::padding_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: Botan::TLS::Signature_Scheme::algorithm_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:51,1
    - Dst: Botan::TLS::Signature_Scheme::format
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:51,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:52,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:53,1
    - Dst: Botan::TLS::Signature_Scheme::key_algorithm_identifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 57
    functionName: Botan_Tests::test_signature_scheme
    functionSourceFile: /src/botan/src/tests/test_tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Signature_Scheme::key_algorithm_identifier
    - test_is_true
    - padding_string
    - Botan::TLS::Signature_Scheme::format
    - Botan::TLS::Signature_Scheme::is_available
    - hash_function_name
    - Botan::TLS::Signature_Scheme::is_set
    - is_available
    - AlgorithmIdentifier
    - Botan::TLS::Signature_Scheme::all_available_schemes
    - not_unknown
    - Botan::TLS::Signature_Scheme::to_string
    - Botan::TLS::Signature_Scheme::padding_string
    - Botan::TLS::Signature_Scheme::hash_function_name
    - Botan_Tests::CHECK
    - to_string
    - std::vector::push_back
    - find
    - is_set
    - Botan_Tests::format
    - algorithm_name
    - Botan::TLS::Signature_Scheme::algorithm_name
    - key_algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_signature_scheme()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:23,1
    - Dst: Botan::TLS::Signature_Scheme::all_available_schemes
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:26,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:27,1
    - Dst: is_set
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:27,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:28,1
    - Dst: is_available
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:28,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:30,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: hash_function_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:31,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: padding_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:32,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: algorithm_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:33,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:35,1
    - Dst: Botan_Tests::format
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:35,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:36,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:37,1
    - Dst: key_algorithm_identifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:37,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:42,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:42,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:43,1
    - Dst: Botan::TLS::Signature_Scheme::is_set
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:43,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:44,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:44,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: Botan::TLS::Signature_Scheme::to_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:46,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: Botan::TLS::Signature_Scheme::hash_function_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:47,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: Botan::TLS::Signature_Scheme::padding_string
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:48,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: not_unknown
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: Botan::TLS::Signature_Scheme::algorithm_name
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:49,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:51,1
    - Dst: Botan::TLS::Signature_Scheme::format
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:51,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:52,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:53,1
    - Dst: Botan::TLS::Signature_Scheme::key_algorithm_identifier
      Src: /src/botan/src/tests/test_tls_signature_scheme.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 57
    functionName: Botan_Tests::test_signature_scheme
    functionSourceFile: /src/botan/src/tests/test_tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Signature_Scheme::key_algorithm_identifier
    - test_is_true
    - padding_string
    - Botan::TLS::Signature_Scheme::format
    - Botan::TLS::Signature_Scheme::is_available
    - hash_function_name
    - Botan::TLS::Signature_Scheme::is_set
    - is_available
    - AlgorithmIdentifier
    - Botan::TLS::Signature_Scheme::all_available_schemes
    - not_unknown
    - Botan::TLS::Signature_Scheme::to_string
    - Botan::TLS::Signature_Scheme::padding_string
    - Botan::TLS::Signature_Scheme::hash_function_name
    - Botan_Tests::CHECK
    - to_string
    - std::vector::push_back
    - find
    - is_set
    - Botan_Tests::format
    - algorithm_name
    - Botan::TLS::Signature_Scheme::algorithm_name
    - key_algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_signature_scheme()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:25,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:29,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:33,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:34,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:36,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:37,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:46,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:49,1
    - Dst: std::get<0>
      Src: /src/botan/src/tests/test_name_constraint.cpp:49,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:50,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:50,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:54,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:55,1
    - Dst: std::get<2>
      Src: /src/botan/src/tests/test_name_constraint.cpp:56,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_name_constraint.cpp:59,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: std::get<3>
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_name_constraint.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 67
    functionName: Botan_Tests::Name_Constraint_Tests::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result
    - std::get<0>
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - std::make_tuple
    - Test::Result::test_str_eq
    - std::vector::emplace_back
    - std::get<2>
    - std::get<1>
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Path_Validation_Result::trust_root
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::get<3>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:79,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:81,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:83,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:84,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:87,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:89,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:92,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Name_Constraint_Excluded_CN_Case_Test::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:25,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:29,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:33,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:34,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:36,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:37,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:46,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:49,1
    - Dst: std::get<0>
      Src: /src/botan/src/tests/test_name_constraint.cpp:49,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:50,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:50,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:54,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:55,1
    - Dst: std::get<2>
      Src: /src/botan/src/tests/test_name_constraint.cpp:56,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_name_constraint.cpp:59,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: std::get<3>
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_name_constraint.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 67
    functionName: Botan_Tests::Name_Constraint_Tests::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result
    - std::get<0>
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - std::make_tuple
    - Test::Result::test_str_eq
    - std::vector::emplace_back
    - std::get<2>
    - std::get<1>
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Path_Validation_Result::trust_root
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::get<3>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:79,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:81,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:83,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:84,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:87,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:89,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:92,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Name_Constraint_Excluded_CN_Case_Test::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:25,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:29,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:33,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:34,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:36,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:37,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:46,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:49,1
    - Dst: std::get<0>
      Src: /src/botan/src/tests/test_name_constraint.cpp:49,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:50,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:50,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:54,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:55,1
    - Dst: std::get<2>
      Src: /src/botan/src/tests/test_name_constraint.cpp:56,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_name_constraint.cpp:59,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: std::get<3>
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_name_constraint.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 67
    functionName: Botan_Tests::Name_Constraint_Tests::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result
    - std::get<0>
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - std::make_tuple
    - Test::Result::test_str_eq
    - std::vector::emplace_back
    - std::get<2>
    - std::get<1>
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Path_Validation_Result::trust_root
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::get<3>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:79,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:81,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:83,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:84,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:87,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:89,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:92,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Name_Constraint_Excluded_CN_Case_Test::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:25,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:29,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:33,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:34,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:36,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:37,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:46,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:49,1
    - Dst: std::get<0>
      Src: /src/botan/src/tests/test_name_constraint.cpp:49,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:50,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:50,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:54,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:55,1
    - Dst: std::get<2>
      Src: /src/botan/src/tests/test_name_constraint.cpp:56,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_name_constraint.cpp:59,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: std::get<3>
      Src: /src/botan/src/tests/test_name_constraint.cpp:62,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_name_constraint.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 67
    functionName: Botan_Tests::Name_Constraint_Tests::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result
    - std::get<0>
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - std::make_tuple
    - Test::Result::test_str_eq
    - std::vector::emplace_back
    - std::get<2>
    - std::get<1>
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Path_Validation_Result::trust_root
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::get<3>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:79,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:81,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:83,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:84,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:87,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:89,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:92,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Name_Constraint_Excluded_CN_Case_Test::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - Botan::x509_path_validate
    - Test::Result::test_str_eq
    - auto::result_string
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:30,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:58,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:59,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:62,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:64,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:65,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:67,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:68,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:71,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:75,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:77,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:80,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:83,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:83,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:84,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:84,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:85,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:86,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:89,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:89,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:90,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:91,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:94,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:99,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:108,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:113,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:115,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:120,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:124,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:124,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:126,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:131,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:136,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:137,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:139,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:142,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:143,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:148,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:152,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:153,1
    - Dst: Transcript_Hash_State::clone
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:159,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:165,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:169,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:170,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:172,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:175,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:175,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:180,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:186,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:188,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:189,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:192,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:192,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:196,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 199
    functionName: Botan_Tests::transcript_hash
    functionSourceFile: /src/botan/src/tests/test_tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Transcript_Hash_State::update
    - test_no_throw
    - test_bin_eq
    - Botan::HashFunction::create_or_throw
    - Transcript_Hash_State::clone
    - Transcript_Hash_State::set_algorithm
    - Botan::unlock
    - Transcript_Hash_State
    - Botan::hex_encode
    - Botan_Tests::CHECK
    - auto::resize
    - Transcript_Hash_State::current
    - Transcript_Hash_State::previous
    - sha256
    - test_throws
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - auto::current
    - Transcript_Hash_State::truncated
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> transcript_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:30,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:58,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:59,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:62,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:64,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:65,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:67,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:68,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:71,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:75,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:77,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:80,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:83,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:83,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:84,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:84,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:85,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:86,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:89,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:89,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:90,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:91,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:94,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:99,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:108,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:113,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:115,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:120,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:124,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:124,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:126,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:131,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:136,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:137,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:139,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:142,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:143,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:148,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:152,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:153,1
    - Dst: Transcript_Hash_State::clone
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:159,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:165,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:169,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:170,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:172,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:175,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:175,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:180,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:186,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:188,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:189,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:192,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:192,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:196,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 199
    functionName: Botan_Tests::transcript_hash
    functionSourceFile: /src/botan/src/tests/test_tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Transcript_Hash_State::update
    - test_no_throw
    - test_bin_eq
    - Botan::HashFunction::create_or_throw
    - Transcript_Hash_State::clone
    - Transcript_Hash_State::set_algorithm
    - Botan::unlock
    - Transcript_Hash_State
    - Botan::hex_encode
    - Botan_Tests::CHECK
    - auto::resize
    - Transcript_Hash_State::current
    - Transcript_Hash_State::previous
    - sha256
    - test_throws
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - auto::current
    - Transcript_Hash_State::truncated
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> transcript_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:30,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:58,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:59,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:62,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:64,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:65,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:67,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:68,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:71,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:75,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:77,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:80,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:83,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:83,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:84,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:84,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:85,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:86,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:89,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:89,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:90,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:91,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:94,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:99,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:108,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:113,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:115,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:120,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:124,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:124,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:126,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:131,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:136,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:137,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:139,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:142,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:143,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:148,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:152,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:153,1
    - Dst: Transcript_Hash_State::clone
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:159,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:165,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:169,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:170,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:172,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:175,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:175,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:180,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:186,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:188,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:189,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:192,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:192,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:196,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 199
    functionName: Botan_Tests::transcript_hash
    functionSourceFile: /src/botan/src/tests/test_tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Transcript_Hash_State::update
    - test_no_throw
    - test_bin_eq
    - Botan::HashFunction::create_or_throw
    - Transcript_Hash_State::clone
    - Transcript_Hash_State::set_algorithm
    - Botan::unlock
    - Transcript_Hash_State
    - Botan::hex_encode
    - Botan_Tests::CHECK
    - auto::resize
    - Transcript_Hash_State::current
    - Transcript_Hash_State::previous
    - sha256
    - test_throws
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - auto::current
    - Transcript_Hash_State::truncated
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> transcript_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:26,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:30,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:58,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:59,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:62,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:64,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:65,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:67,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:68,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:71,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:75,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:77,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:80,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:83,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:83,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:84,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:84,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:85,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:86,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:89,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:89,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:90,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:91,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:94,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:99,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:101,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:105,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:108,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:113,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:115,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:117,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:120,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:124,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:124,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:126,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:128,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:131,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:136,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:137,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:139,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:142,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:143,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:145,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:148,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:152,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:153,1
    - Dst: Transcript_Hash_State::clone
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:157,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:159,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:162,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:165,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:169,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:170,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:172,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:175,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:175,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:177,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:180,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:186,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:188,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:189,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:192,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:192,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:196,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 199
    functionName: Botan_Tests::transcript_hash
    functionSourceFile: /src/botan/src/tests/test_tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Transcript_Hash_State::update
    - test_no_throw
    - test_bin_eq
    - Botan::HashFunction::create_or_throw
    - Transcript_Hash_State::clone
    - Transcript_Hash_State::set_algorithm
    - Botan::unlock
    - Transcript_Hash_State
    - Botan::hex_encode
    - Botan_Tests::CHECK
    - auto::resize
    - Transcript_Hash_State::current
    - Transcript_Hash_State::previous
    - sha256
    - test_throws
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - auto::current
    - Transcript_Hash_State::truncated
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> transcript_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' master_key'
    argTypes:
    - Botan::secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Test_Map_PSK_Db::Test_Map_PSK_Db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Map_PSK_Db(const Botan::secure_vector<uint8_t>& master_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:29,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:31,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_psk_db.cpp:32,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' result'
    - ' index'
    - ' value'
    argTypes:
    - Test::Result
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Test_Map_PSK_Db::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - test_str_eq
    - test_failure
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void test_entry(Test::Result& result, const std::string& index, const
      std::string& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert_or_assign
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_set
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - insert_or_assign
    linkageType: ''
    returnType: void
    signature: void kv_set(std::string_view index, std::string_view value) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:43,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string kv_get(std::string_view index) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:51,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:52,1
    - Dst: erase
      Src: /src/botan/src/tests/test_psk_db.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_del
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void kv_del(std::string_view index) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_psk_db.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get_all
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> kv_get_all() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_psk_db.cpp:76,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_psk_db
      Src: /src/botan/src/tests/test_psk_db.cpp:76,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_psk_db.cpp:79,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_psk_sql_db
      Src: /src/botan/src/tests/test_psk_db.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: Botan_Tests::PSK_DB_Tests::run
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::PSK_DB_Tests::test_psk_db
    - Botan_Tests::PSK_DB_Tests::test_psk_sql_db
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:92,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:93,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:94,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:94,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:96,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:97,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:98,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:98,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:100,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:101,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:102,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:102,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:104,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:105,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:106,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:106,1
    - Dst: Test_Map_PSK_Db::set_vec
      Src: /src/botan/src/tests/test_psk_db.cpp:108,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:109,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:110,1
    - Dst: Test_Map_PSK_Db::get
      Src: /src/botan/src/tests/test_psk_db.cpp:110,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:113,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:114,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:115,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:115,1
    - Dst: Test_Map_PSK_Db::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:117,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:119,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:119,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:120,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:120,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:121,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:121,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:122,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:122,1
    - Dst: Test_Map_PSK_Db::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:124,1
    - Dst: Test_Map_PSK_Db::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:126,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:128,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:128,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:129,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:129,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:130,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:130,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_psk_db.cpp:132,1
    - Dst: Test_Map_PSK_Db::get
      Src: /src/botan/src/tests/test_psk_db.cpp:133,1
    - Dst: Test_Map_PSK_Db::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 139
    functionName: Botan_Tests::PSK_DB_Tests::test_psk_db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 1
    functionsReached:
    - Test_Map_PSK_Db::set_vec
    - Test::Result::test_str_eq
    - std::set::size
    - std::set::count
    - Test::Result::test_bin_eq
    - Test_Map_PSK_Db::test_entry
    - Test_Map_PSK_Db::get
    - Test_Map_PSK_Db::set_str
    - Test_Map_PSK_Db::list_names
    - Test::Result::test_sz_eq
    - Test_Map_PSK_Db::remove
    - Test::Result::test_throws
    - Test_Map_PSK_Db::get_str
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_psk_db()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/tests/test_psk_db.cpp:148,1
    - Dst: auto::step
      Src: /src/botan/src/tests/test_psk_db.cpp:150,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_psk_db.cpp:151,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:154,1
    - Dst: auto::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' result'
    - ' db'
    - ' table'
    - ' expected_name'
    - ' expected_value'
    argTypes:
    - Test::Result
    - Botan::SQL_Database
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: Botan_Tests::PSK_DB_Tests::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - new_statement
    - auto::get_str
    - auto::step
    - test_is_true
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: "void test_entry(Test::Result& result,\n                      Botan::SQL_Database&
      db,\n                      const std::string& table,\n                      const
      std::string& expected_name,\n                      const std::string& expected_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::PSK_DB_Tests::rng
      Src: /src/botan/src/tests/test_psk_db.cpp:162,1
    - Dst: std::make_shared<Botan::Sqlite3_Database>
      Src: /src/botan/src/tests/test_psk_db.cpp:165,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:168,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:170,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:171,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:171,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:173,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:174,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:175,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:175,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:177,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:178,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:179,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:179,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:181,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:182,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:183,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:183,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_vec
      Src: /src/botan/src/tests/test_psk_db.cpp:185,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:186,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:191,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get
      Src: /src/botan/src/tests/test_psk_db.cpp:191,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:194,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:195,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:197,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:197,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:204,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:205,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:205,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:206,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:206,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:208,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:210,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:210,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:211,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:211,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:212,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:212,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:213,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:213,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:215,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:217,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:219,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:219,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:220,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:220,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:221,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:221,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_psk_db.cpp:223,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get
      Src: /src/botan/src/tests/test_psk_db.cpp:224,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 230
    functionName: Botan_Tests::PSK_DB_Tests::test_psk_sql_db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 1
    functionsReached:
    - Botan::Encrypted_PSK_Database_SQL::set_str
    - Botan_Tests::PSK_DB_Tests::test_entry
    - Botan::Encrypted_PSK_Database_SQL::get_str
    - Test::Result::test_str_eq
    - std::make_shared<Botan::Sqlite3_Database>
    - std::set::size
    - Botan::Encrypted_PSK_Database_SQL::remove
    - std::set::count
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan_Tests::PSK_DB_Tests::rng
    - Test::Result::test_throws
    - Botan::Encrypted_PSK_Database_SQL::get
    - Botan::Encrypted_PSK_Database_SQL::set_vec
    - Botan::Encrypted_PSK_Database_SQL::list_names
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_psk_sql_db()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' master_key'
    argTypes:
    - Botan::secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Test_Map_PSK_Db::Test_Map_PSK_Db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Map_PSK_Db(const Botan::secure_vector<uint8_t>& master_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:29,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:31,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_psk_db.cpp:32,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' result'
    - ' index'
    - ' value'
    argTypes:
    - Test::Result
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Test_Map_PSK_Db::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - test_str_eq
    - test_failure
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void test_entry(Test::Result& result, const std::string& index, const
      std::string& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert_or_assign
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_set
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - insert_or_assign
    linkageType: ''
    returnType: void
    signature: void kv_set(std::string_view index, std::string_view value) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:43,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string kv_get(std::string_view index) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:51,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:52,1
    - Dst: erase
      Src: /src/botan/src/tests/test_psk_db.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_del
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void kv_del(std::string_view index) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_psk_db.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get_all
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> kv_get_all() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_psk_db.cpp:76,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_psk_db
      Src: /src/botan/src/tests/test_psk_db.cpp:76,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_psk_db.cpp:79,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_psk_sql_db
      Src: /src/botan/src/tests/test_psk_db.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: Botan_Tests::PSK_DB_Tests::run
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::PSK_DB_Tests::test_psk_db
    - Botan_Tests::PSK_DB_Tests::test_psk_sql_db
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:92,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:93,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:94,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:94,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:96,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:97,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:98,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:98,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:100,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:101,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:102,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:102,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:104,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:105,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:106,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:106,1
    - Dst: Test_Map_PSK_Db::set_vec
      Src: /src/botan/src/tests/test_psk_db.cpp:108,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:109,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:110,1
    - Dst: Test_Map_PSK_Db::get
      Src: /src/botan/src/tests/test_psk_db.cpp:110,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:113,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:114,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:115,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:115,1
    - Dst: Test_Map_PSK_Db::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:117,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:119,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:119,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:120,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:120,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:121,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:121,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:122,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:122,1
    - Dst: Test_Map_PSK_Db::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:124,1
    - Dst: Test_Map_PSK_Db::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:126,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:128,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:128,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:129,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:129,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:130,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:130,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_psk_db.cpp:132,1
    - Dst: Test_Map_PSK_Db::get
      Src: /src/botan/src/tests/test_psk_db.cpp:133,1
    - Dst: Test_Map_PSK_Db::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 139
    functionName: Botan_Tests::PSK_DB_Tests::test_psk_db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 2
    functionsReached:
    - Test_Map_PSK_Db::set_vec
    - Test::Result::test_str_eq
    - std::set::size
    - std::set::count
    - Test::Result::test_bin_eq
    - Test_Map_PSK_Db::test_entry
    - Test_Map_PSK_Db::get
    - Test_Map_PSK_Db::set_str
    - Test_Map_PSK_Db::list_names
    - Test::Result::test_sz_eq
    - Test_Map_PSK_Db::remove
    - Test::Result::test_throws
    - Test_Map_PSK_Db::get_str
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_psk_db()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/tests/test_psk_db.cpp:148,1
    - Dst: auto::step
      Src: /src/botan/src/tests/test_psk_db.cpp:150,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_psk_db.cpp:151,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:154,1
    - Dst: auto::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' result'
    - ' db'
    - ' table'
    - ' expected_name'
    - ' expected_value'
    argTypes:
    - Test::Result
    - Botan::SQL_Database
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: Botan_Tests::PSK_DB_Tests::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 1
    functionsReached:
    - new_statement
    - auto::get_str
    - auto::step
    - test_is_true
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: "void test_entry(Test::Result& result,\n                      Botan::SQL_Database&
      db,\n                      const std::string& table,\n                      const
      std::string& expected_name,\n                      const std::string& expected_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::PSK_DB_Tests::rng
      Src: /src/botan/src/tests/test_psk_db.cpp:162,1
    - Dst: std::make_shared<Botan::Sqlite3_Database>
      Src: /src/botan/src/tests/test_psk_db.cpp:165,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:168,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:170,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:171,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:171,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:173,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:174,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:175,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:175,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:177,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:178,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:179,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:179,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:181,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:182,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:183,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:183,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_vec
      Src: /src/botan/src/tests/test_psk_db.cpp:185,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:186,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:191,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get
      Src: /src/botan/src/tests/test_psk_db.cpp:191,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:194,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:195,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:197,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:197,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:204,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:205,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:205,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:206,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:206,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:208,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:210,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:210,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:211,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:211,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:212,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:212,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:213,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:213,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:215,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:217,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:219,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:219,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:220,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:220,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:221,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:221,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_psk_db.cpp:223,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get
      Src: /src/botan/src/tests/test_psk_db.cpp:224,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 230
    functionName: Botan_Tests::PSK_DB_Tests::test_psk_sql_db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 2
    functionsReached:
    - Botan::Encrypted_PSK_Database_SQL::set_str
    - Botan_Tests::PSK_DB_Tests::test_entry
    - Botan::Encrypted_PSK_Database_SQL::get_str
    - Test::Result::test_str_eq
    - std::make_shared<Botan::Sqlite3_Database>
    - std::set::size
    - Botan::Encrypted_PSK_Database_SQL::remove
    - std::set::count
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan_Tests::PSK_DB_Tests::rng
    - Test::Result::test_throws
    - Botan::Encrypted_PSK_Database_SQL::get
    - Botan::Encrypted_PSK_Database_SQL::set_vec
    - Botan::Encrypted_PSK_Database_SQL::list_names
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_psk_sql_db()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' master_key'
    argTypes:
    - Botan::secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Test_Map_PSK_Db::Test_Map_PSK_Db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Map_PSK_Db(const Botan::secure_vector<uint8_t>& master_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:29,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:31,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_psk_db.cpp:32,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' result'
    - ' index'
    - ' value'
    argTypes:
    - Test::Result
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Test_Map_PSK_Db::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - test_str_eq
    - test_failure
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void test_entry(Test::Result& result, const std::string& index, const
      std::string& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert_or_assign
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_set
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - insert_or_assign
    linkageType: ''
    returnType: void
    signature: void kv_set(std::string_view index, std::string_view value) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:43,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string kv_get(std::string_view index) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:51,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:52,1
    - Dst: erase
      Src: /src/botan/src/tests/test_psk_db.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_del
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void kv_del(std::string_view index) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_psk_db.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get_all
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> kv_get_all() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_psk_db.cpp:76,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_psk_db
      Src: /src/botan/src/tests/test_psk_db.cpp:76,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_psk_db.cpp:79,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_psk_sql_db
      Src: /src/botan/src/tests/test_psk_db.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: Botan_Tests::PSK_DB_Tests::run
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::PSK_DB_Tests::test_psk_db
    - Botan_Tests::PSK_DB_Tests::test_psk_sql_db
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:92,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:93,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:94,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:94,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:96,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:97,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:98,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:98,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:100,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:101,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:102,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:102,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:104,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:105,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:106,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:106,1
    - Dst: Test_Map_PSK_Db::set_vec
      Src: /src/botan/src/tests/test_psk_db.cpp:108,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:109,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:110,1
    - Dst: Test_Map_PSK_Db::get
      Src: /src/botan/src/tests/test_psk_db.cpp:110,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:113,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:114,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:115,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:115,1
    - Dst: Test_Map_PSK_Db::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:117,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:119,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:119,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:120,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:120,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:121,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:121,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:122,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:122,1
    - Dst: Test_Map_PSK_Db::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:124,1
    - Dst: Test_Map_PSK_Db::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:126,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:128,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:128,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:129,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:129,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:130,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:130,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_psk_db.cpp:132,1
    - Dst: Test_Map_PSK_Db::get
      Src: /src/botan/src/tests/test_psk_db.cpp:133,1
    - Dst: Test_Map_PSK_Db::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 139
    functionName: Botan_Tests::PSK_DB_Tests::test_psk_db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 3
    functionsReached:
    - Test_Map_PSK_Db::set_vec
    - Test::Result::test_str_eq
    - std::set::size
    - std::set::count
    - Test::Result::test_bin_eq
    - Test_Map_PSK_Db::test_entry
    - Test_Map_PSK_Db::get
    - Test_Map_PSK_Db::set_str
    - Test_Map_PSK_Db::list_names
    - Test::Result::test_sz_eq
    - Test_Map_PSK_Db::remove
    - Test::Result::test_throws
    - Test_Map_PSK_Db::get_str
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_psk_db()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/tests/test_psk_db.cpp:148,1
    - Dst: auto::step
      Src: /src/botan/src/tests/test_psk_db.cpp:150,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_psk_db.cpp:151,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:154,1
    - Dst: auto::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' result'
    - ' db'
    - ' table'
    - ' expected_name'
    - ' expected_value'
    argTypes:
    - Test::Result
    - Botan::SQL_Database
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: Botan_Tests::PSK_DB_Tests::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 2
    functionsReached:
    - new_statement
    - auto::get_str
    - auto::step
    - test_is_true
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: "void test_entry(Test::Result& result,\n                      Botan::SQL_Database&
      db,\n                      const std::string& table,\n                      const
      std::string& expected_name,\n                      const std::string& expected_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::PSK_DB_Tests::rng
      Src: /src/botan/src/tests/test_psk_db.cpp:162,1
    - Dst: std::make_shared<Botan::Sqlite3_Database>
      Src: /src/botan/src/tests/test_psk_db.cpp:165,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:168,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:170,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:171,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:171,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:173,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:174,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:175,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:175,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:177,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:178,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:179,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:179,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:181,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:182,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:183,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:183,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_vec
      Src: /src/botan/src/tests/test_psk_db.cpp:185,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:186,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:191,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get
      Src: /src/botan/src/tests/test_psk_db.cpp:191,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:194,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:195,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:197,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:197,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:204,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:205,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:205,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:206,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:206,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:208,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:210,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:210,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:211,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:211,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:212,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:212,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:213,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:213,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:215,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:217,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:219,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:219,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:220,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:220,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:221,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:221,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_psk_db.cpp:223,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get
      Src: /src/botan/src/tests/test_psk_db.cpp:224,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 230
    functionName: Botan_Tests::PSK_DB_Tests::test_psk_sql_db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 3
    functionsReached:
    - Botan::Encrypted_PSK_Database_SQL::set_str
    - Botan_Tests::PSK_DB_Tests::test_entry
    - Botan::Encrypted_PSK_Database_SQL::get_str
    - Test::Result::test_str_eq
    - std::make_shared<Botan::Sqlite3_Database>
    - std::set::size
    - Botan::Encrypted_PSK_Database_SQL::remove
    - std::set::count
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan_Tests::PSK_DB_Tests::rng
    - Test::Result::test_throws
    - Botan::Encrypted_PSK_Database_SQL::get
    - Botan::Encrypted_PSK_Database_SQL::set_vec
    - Botan::Encrypted_PSK_Database_SQL::list_names
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_psk_sql_db()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' master_key'
    argTypes:
    - Botan::secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Test_Map_PSK_Db::Test_Map_PSK_Db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Map_PSK_Db(const Botan::secure_vector<uint8_t>& master_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:29,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:31,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_psk_db.cpp:32,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' result'
    - ' index'
    - ' value'
    argTypes:
    - Test::Result
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Test_Map_PSK_Db::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - test_str_eq
    - test_failure
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void test_entry(Test::Result& result, const std::string& index, const
      std::string& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert_or_assign
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_set
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - insert_or_assign
    linkageType: ''
    returnType: void
    signature: void kv_set(std::string_view index, std::string_view value) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:43,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string kv_get(std::string_view index) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_psk_db.cpp:51,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:52,1
    - Dst: erase
      Src: /src/botan/src/tests/test_psk_db.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_del
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - erase
    - end
    - find
    linkageType: ''
    returnType: void
    signature: void kv_del(std::string_view index) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_psk_db.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get_all
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> kv_get_all() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_psk_db.cpp:76,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_psk_db
      Src: /src/botan/src/tests/test_psk_db.cpp:76,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_psk_db.cpp:79,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_psk_sql_db
      Src: /src/botan/src/tests/test_psk_db.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: Botan_Tests::PSK_DB_Tests::run
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::PSK_DB_Tests::test_psk_db
    - Botan_Tests::PSK_DB_Tests::test_psk_sql_db
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:92,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:93,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:94,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:94,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:96,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:97,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:98,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:98,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:100,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:101,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:102,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:102,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:104,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:105,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:106,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:106,1
    - Dst: Test_Map_PSK_Db::set_vec
      Src: /src/botan/src/tests/test_psk_db.cpp:108,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:109,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:110,1
    - Dst: Test_Map_PSK_Db::get
      Src: /src/botan/src/tests/test_psk_db.cpp:110,1
    - Dst: Test_Map_PSK_Db::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:113,1
    - Dst: Test_Map_PSK_Db::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:114,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:115,1
    - Dst: Test_Map_PSK_Db::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:115,1
    - Dst: Test_Map_PSK_Db::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:117,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:119,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:119,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:120,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:120,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:121,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:121,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:122,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:122,1
    - Dst: Test_Map_PSK_Db::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:124,1
    - Dst: Test_Map_PSK_Db::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:126,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:128,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:128,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:129,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:129,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:130,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:130,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_psk_db.cpp:132,1
    - Dst: Test_Map_PSK_Db::get
      Src: /src/botan/src/tests/test_psk_db.cpp:133,1
    - Dst: Test_Map_PSK_Db::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 139
    functionName: Botan_Tests::PSK_DB_Tests::test_psk_db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 4
    functionsReached:
    - Test_Map_PSK_Db::set_vec
    - Test::Result::test_str_eq
    - std::set::size
    - std::set::count
    - Test::Result::test_bin_eq
    - Test_Map_PSK_Db::test_entry
    - Test_Map_PSK_Db::get
    - Test_Map_PSK_Db::set_str
    - Test_Map_PSK_Db::list_names
    - Test::Result::test_sz_eq
    - Test_Map_PSK_Db::remove
    - Test::Result::test_throws
    - Test_Map_PSK_Db::get_str
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_psk_db()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/tests/test_psk_db.cpp:148,1
    - Dst: auto::step
      Src: /src/botan/src/tests/test_psk_db.cpp:150,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_psk_db.cpp:151,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:154,1
    - Dst: auto::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' result'
    - ' db'
    - ' table'
    - ' expected_name'
    - ' expected_value'
    argTypes:
    - Test::Result
    - Botan::SQL_Database
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: Botan_Tests::PSK_DB_Tests::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 3
    functionsReached:
    - new_statement
    - auto::get_str
    - auto::step
    - test_is_true
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: "void test_entry(Test::Result& result,\n                      Botan::SQL_Database&
      db,\n                      const std::string& table,\n                      const
      std::string& expected_name,\n                      const std::string& expected_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::PSK_DB_Tests::rng
      Src: /src/botan/src/tests/test_psk_db.cpp:162,1
    - Dst: std::make_shared<Botan::Sqlite3_Database>
      Src: /src/botan/src/tests/test_psk_db.cpp:165,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:168,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:170,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:171,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:171,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:173,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:174,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:175,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:175,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:177,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:178,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:179,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:179,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:181,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:182,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:183,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:183,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_vec
      Src: /src/botan/src/tests/test_psk_db.cpp:185,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:186,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:191,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get
      Src: /src/botan/src/tests/test_psk_db.cpp:191,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:194,1
    - Dst: Botan_Tests::PSK_DB_Tests::test_entry
      Src: /src/botan/src/tests/test_psk_db.cpp:195,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:197,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:197,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::set_str
      Src: /src/botan/src/tests/test_psk_db.cpp:204,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:205,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get_str
      Src: /src/botan/src/tests/test_psk_db.cpp:205,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:206,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:206,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:208,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:210,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:210,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:211,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:211,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:212,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:212,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:213,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:213,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:215,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::list_names
      Src: /src/botan/src/tests/test_psk_db.cpp:217,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:219,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_psk_db.cpp:219,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:220,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:220,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:221,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_psk_db.cpp:221,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_psk_db.cpp:223,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::get
      Src: /src/botan/src/tests/test_psk_db.cpp:224,1
    - Dst: Botan::Encrypted_PSK_Database_SQL::remove
      Src: /src/botan/src/tests/test_psk_db.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 230
    functionName: Botan_Tests::PSK_DB_Tests::test_psk_sql_db
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 4
    functionsReached:
    - Botan::Encrypted_PSK_Database_SQL::set_str
    - Botan_Tests::PSK_DB_Tests::test_entry
    - Botan::Encrypted_PSK_Database_SQL::get_str
    - Test::Result::test_str_eq
    - std::make_shared<Botan::Sqlite3_Database>
    - std::set::size
    - Botan::Encrypted_PSK_Database_SQL::remove
    - std::set::count
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan_Tests::PSK_DB_Tests::rng
    - Test::Result::test_throws
    - Botan::Encrypted_PSK_Database_SQL::get
    - Botan::Encrypted_PSK_Database_SQL::set_vec
    - Botan::Encrypted_PSK_Database_SQL::list_names
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_psk_sql_db()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::Diffie_Hellman_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Diffie_Hellman_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:30,1
    - Dst: get_opt_bn
      Src: /src/botan/src/tests/test_dh.cpp:31,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_dh.cpp:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:33,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:37,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:39,1
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/test_dh.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sodium::sodium_memzero
    - std::make_unique<Botan::DH_PrivateKey>
    - get_req_bn
    - get_opt_bn
    - Botan::DL_Group
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:47,1
    - Dst: get_opt_bn
      Src: /src/botan/src/tests/test_dh.cpp:48,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_dh.cpp:48,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:49,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:50,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:54,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:56,1
    - Dst: Botan::DH_PublicKey::public_value
      Src: /src/botan/src/tests/test_dh.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::DH_PublicKey::public_value
    - Botan::Sodium::sodium_memzero
    - get_req_bn
    - get_opt_bn
    - Botan::DL_Group
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/test_dh.cpp:72,1
    - Dst: std::make_unique<Botan::PK_Key_Agreement>
      Src: /src/botan/src/tests/test_dh.cpp:74,1
    - Dst: Botan_Tests::Diffie_Hellman_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dh.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dh.cpp:76,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_dh.cpp:78,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/tests/test_dh.cpp:78,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dh.cpp:81,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_dh.cpp:83,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/tests/test_dh.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Diffie_Hellman_KAT_Tests::rng
    - BigInt::serialize
    - std::make_unique<Botan::PK_Key_Agreement>
    - auto::derive_key
    - std::make_unique<Botan::DH_PrivateKey>
    - Test::Result::test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_Tests::DH_Invalid_Key_Tests::DH_Invalid_Key_Tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_Invalid_Key_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::DH_Invalid_Key_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:99,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:100,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:101,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:102,1
    - Dst: std::make_unique<Botan::DH_PublicKey>
      Src: /src/botan/src/tests/test_dh.cpp:106,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    - Dst: Botan_Tests::DH_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: Botan_Tests::DH_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - auto::check_key
    - Botan_Tests::DH_Invalid_Key_Tests::rng
    - get_req_bn
    - Test::Result::test_is_false
    - std::make_unique<Botan::DH_PublicKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PublicKey>
      Src: /src/botan/src/tests/test_dh.cpp:121,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dh.cpp:121,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dh.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_key_bits
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DH_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /*provider*/,\n                                                             std::span<const
      uint8_t> raw_key_bits) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::Diffie_Hellman_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Diffie_Hellman_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:30,1
    - Dst: get_opt_bn
      Src: /src/botan/src/tests/test_dh.cpp:31,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_dh.cpp:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:33,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:37,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:39,1
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/test_dh.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sodium::sodium_memzero
    - std::make_unique<Botan::DH_PrivateKey>
    - get_req_bn
    - get_opt_bn
    - Botan::DL_Group
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:47,1
    - Dst: get_opt_bn
      Src: /src/botan/src/tests/test_dh.cpp:48,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_dh.cpp:48,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:49,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:50,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:54,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:56,1
    - Dst: Botan::DH_PublicKey::public_value
      Src: /src/botan/src/tests/test_dh.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::DH_PublicKey::public_value
    - Botan::Sodium::sodium_memzero
    - get_req_bn
    - get_opt_bn
    - Botan::DL_Group
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/test_dh.cpp:72,1
    - Dst: std::make_unique<Botan::PK_Key_Agreement>
      Src: /src/botan/src/tests/test_dh.cpp:74,1
    - Dst: Botan_Tests::Diffie_Hellman_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dh.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dh.cpp:76,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_dh.cpp:78,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/tests/test_dh.cpp:78,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dh.cpp:81,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_dh.cpp:83,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/tests/test_dh.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Diffie_Hellman_KAT_Tests::rng
    - BigInt::serialize
    - std::make_unique<Botan::PK_Key_Agreement>
    - auto::derive_key
    - std::make_unique<Botan::DH_PrivateKey>
    - Test::Result::test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_Tests::DH_Invalid_Key_Tests::DH_Invalid_Key_Tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_Invalid_Key_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::DH_Invalid_Key_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:99,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:100,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:101,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:102,1
    - Dst: std::make_unique<Botan::DH_PublicKey>
      Src: /src/botan/src/tests/test_dh.cpp:106,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    - Dst: Botan_Tests::DH_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: Botan_Tests::DH_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - auto::check_key
    - Botan_Tests::DH_Invalid_Key_Tests::rng
    - get_req_bn
    - Test::Result::test_is_false
    - std::make_unique<Botan::DH_PublicKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PublicKey>
      Src: /src/botan/src/tests/test_dh.cpp:121,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dh.cpp:121,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dh.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_key_bits
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DH_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /*provider*/,\n                                                             std::span<const
      uint8_t> raw_key_bits) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::Diffie_Hellman_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Diffie_Hellman_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:30,1
    - Dst: get_opt_bn
      Src: /src/botan/src/tests/test_dh.cpp:31,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_dh.cpp:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:33,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:37,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:39,1
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/test_dh.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sodium::sodium_memzero
    - std::make_unique<Botan::DH_PrivateKey>
    - get_req_bn
    - get_opt_bn
    - Botan::DL_Group
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:47,1
    - Dst: get_opt_bn
      Src: /src/botan/src/tests/test_dh.cpp:48,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_dh.cpp:48,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:49,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:50,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:54,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:56,1
    - Dst: Botan::DH_PublicKey::public_value
      Src: /src/botan/src/tests/test_dh.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::DH_PublicKey::public_value
    - Botan::Sodium::sodium_memzero
    - get_req_bn
    - get_opt_bn
    - Botan::DL_Group
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/test_dh.cpp:72,1
    - Dst: std::make_unique<Botan::PK_Key_Agreement>
      Src: /src/botan/src/tests/test_dh.cpp:74,1
    - Dst: Botan_Tests::Diffie_Hellman_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dh.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dh.cpp:76,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_dh.cpp:78,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/tests/test_dh.cpp:78,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dh.cpp:81,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_dh.cpp:83,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/tests/test_dh.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Diffie_Hellman_KAT_Tests::rng
    - BigInt::serialize
    - std::make_unique<Botan::PK_Key_Agreement>
    - auto::derive_key
    - std::make_unique<Botan::DH_PrivateKey>
    - Test::Result::test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_Tests::DH_Invalid_Key_Tests::DH_Invalid_Key_Tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_Invalid_Key_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::DH_Invalid_Key_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:99,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:100,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:101,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:102,1
    - Dst: std::make_unique<Botan::DH_PublicKey>
      Src: /src/botan/src/tests/test_dh.cpp:106,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    - Dst: Botan_Tests::DH_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: Botan_Tests::DH_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - auto::check_key
    - Botan_Tests::DH_Invalid_Key_Tests::rng
    - get_req_bn
    - Test::Result::test_is_false
    - std::make_unique<Botan::DH_PublicKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PublicKey>
      Src: /src/botan/src/tests/test_dh.cpp:121,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dh.cpp:121,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dh.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_key_bits
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DH_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /*provider*/,\n                                                             std::span<const
      uint8_t> raw_key_bits) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::Diffie_Hellman_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Diffie_Hellman_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:30,1
    - Dst: get_opt_bn
      Src: /src/botan/src/tests/test_dh.cpp:31,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_dh.cpp:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:33,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:37,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:39,1
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/test_dh.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sodium::sodium_memzero
    - std::make_unique<Botan::DH_PrivateKey>
    - get_req_bn
    - get_opt_bn
    - Botan::DL_Group
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:47,1
    - Dst: get_opt_bn
      Src: /src/botan/src/tests/test_dh.cpp:48,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_dh.cpp:48,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:49,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:50,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:54,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/tests/test_dh.cpp:56,1
    - Dst: Botan::DH_PublicKey::public_value
      Src: /src/botan/src/tests/test_dh.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::DH_PublicKey::public_value
    - Botan::Sodium::sodium_memzero
    - get_req_bn
    - get_opt_bn
    - Botan::DL_Group
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/test_dh.cpp:72,1
    - Dst: std::make_unique<Botan::PK_Key_Agreement>
      Src: /src/botan/src/tests/test_dh.cpp:74,1
    - Dst: Botan_Tests::Diffie_Hellman_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dh.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dh.cpp:76,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_dh.cpp:78,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/tests/test_dh.cpp:78,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dh.cpp:81,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_dh.cpp:83,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/tests/test_dh.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: Botan_Tests::Diffie_Hellman_KAT_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Diffie_Hellman_KAT_Tests::rng
    - BigInt::serialize
    - std::make_unique<Botan::PK_Key_Agreement>
    - auto::derive_key
    - std::make_unique<Botan::DH_PrivateKey>
    - Test::Result::test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_Tests::DH_Invalid_Key_Tests::DH_Invalid_Key_Tests
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_Invalid_Key_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_Tests::DH_Invalid_Key_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:99,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:100,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:101,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dh.cpp:102,1
    - Dst: std::make_unique<Botan::DH_PublicKey>
      Src: /src/botan/src/tests/test_dh.cpp:106,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    - Dst: Botan_Tests::DH_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_dh.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: Botan_Tests::DH_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - auto::check_key
    - Botan_Tests::DH_Invalid_Key_Tests::rng
    - get_req_bn
    - Test::Result::test_is_false
    - std::make_unique<Botan::DH_PublicKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PublicKey>
      Src: /src/botan/src/tests/test_dh.cpp:121,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dh.cpp:121,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dh.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_key_bits
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Diffie_Hellman_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DH_PublicKey>
    - Botan::BigInt
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /*provider*/,\n                                                             std::span<const
      uint8_t> raw_key_bits) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gf2m.cpp:24,1
    - Dst: Botan_Tests::GF2m_Tests::test_gf_overflow
      Src: /src/botan/src/tests/test_gf2m.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: Botan_Tests::GF2m_Tests::run
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GF2m_Tests::test_gf_overflow
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:40,1
    - Dst: static_cast<Botan::gf2m>
      Src: /src/botan/src/tests/test_gf2m.cpp:41,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_square
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_mul
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_l_from_n
      Src: /src/botan/src/tests/test_gf2m.cpp:49,1
    - Dst: Botan::GF2m_Field::gf_square_rr
      Src: /src/botan/src/tests/test_gf2m.cpp:50,1
    - Dst: Botan::GF2m_Field::gf_mul_rrr
      Src: /src/botan/src/tests/test_gf2m.cpp:51,1
    - Dst: Botan::GF2m_Field::gf_mul_nrr
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_gf2m.cpp:54,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 59
    functionName: Botan_Tests::GF2m_Tests::test_gf_overflow
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 1
    functionsReached:
    - Botan::GF2m_Field::gf_mul_rrr
    - Test::Result::test_u16_eq
    - Botan::GF2m_Field::gf_square_rr
    - static_cast<Botan::gf2m>
    - Botan::GF2m_Field::gf_square
    - Botan::GF2m_Field::gf_l_from_n
    - Test::Result::test_sz_gte
    - Botan::GF2m_Field::gf_mul_nrr
    - Botan::GF2m_Field::gf_mul
    - Botan::GF2m_Field::gf_ord
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_gf_overflow()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gf2m.cpp:24,1
    - Dst: Botan_Tests::GF2m_Tests::test_gf_overflow
      Src: /src/botan/src/tests/test_gf2m.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: Botan_Tests::GF2m_Tests::run
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GF2m_Tests::test_gf_overflow
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:40,1
    - Dst: static_cast<Botan::gf2m>
      Src: /src/botan/src/tests/test_gf2m.cpp:41,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_square
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_mul
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_l_from_n
      Src: /src/botan/src/tests/test_gf2m.cpp:49,1
    - Dst: Botan::GF2m_Field::gf_square_rr
      Src: /src/botan/src/tests/test_gf2m.cpp:50,1
    - Dst: Botan::GF2m_Field::gf_mul_rrr
      Src: /src/botan/src/tests/test_gf2m.cpp:51,1
    - Dst: Botan::GF2m_Field::gf_mul_nrr
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_gf2m.cpp:54,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 59
    functionName: Botan_Tests::GF2m_Tests::test_gf_overflow
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 2
    functionsReached:
    - Botan::GF2m_Field::gf_mul_rrr
    - Test::Result::test_u16_eq
    - Botan::GF2m_Field::gf_square_rr
    - static_cast<Botan::gf2m>
    - Botan::GF2m_Field::gf_square
    - Botan::GF2m_Field::gf_l_from_n
    - Test::Result::test_sz_gte
    - Botan::GF2m_Field::gf_mul_nrr
    - Botan::GF2m_Field::gf_mul
    - Botan::GF2m_Field::gf_ord
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_gf_overflow()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gf2m.cpp:24,1
    - Dst: Botan_Tests::GF2m_Tests::test_gf_overflow
      Src: /src/botan/src/tests/test_gf2m.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: Botan_Tests::GF2m_Tests::run
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GF2m_Tests::test_gf_overflow
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:40,1
    - Dst: static_cast<Botan::gf2m>
      Src: /src/botan/src/tests/test_gf2m.cpp:41,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_square
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_mul
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_l_from_n
      Src: /src/botan/src/tests/test_gf2m.cpp:49,1
    - Dst: Botan::GF2m_Field::gf_square_rr
      Src: /src/botan/src/tests/test_gf2m.cpp:50,1
    - Dst: Botan::GF2m_Field::gf_mul_rrr
      Src: /src/botan/src/tests/test_gf2m.cpp:51,1
    - Dst: Botan::GF2m_Field::gf_mul_nrr
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_gf2m.cpp:54,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 59
    functionName: Botan_Tests::GF2m_Tests::test_gf_overflow
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 3
    functionsReached:
    - Botan::GF2m_Field::gf_mul_rrr
    - Test::Result::test_u16_eq
    - Botan::GF2m_Field::gf_square_rr
    - static_cast<Botan::gf2m>
    - Botan::GF2m_Field::gf_square
    - Botan::GF2m_Field::gf_l_from_n
    - Test::Result::test_sz_gte
    - Botan::GF2m_Field::gf_mul_nrr
    - Botan::GF2m_Field::gf_mul
    - Botan::GF2m_Field::gf_ord
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_gf_overflow()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gf2m.cpp:24,1
    - Dst: Botan_Tests::GF2m_Tests::test_gf_overflow
      Src: /src/botan/src/tests/test_gf2m.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: Botan_Tests::GF2m_Tests::run
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::GF2m_Tests::test_gf_overflow
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:40,1
    - Dst: static_cast<Botan::gf2m>
      Src: /src/botan/src/tests/test_gf2m.cpp:41,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_square
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_mul
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: Botan::GF2m_Field::gf_l_from_n
      Src: /src/botan/src/tests/test_gf2m.cpp:49,1
    - Dst: Botan::GF2m_Field::gf_square_rr
      Src: /src/botan/src/tests/test_gf2m.cpp:50,1
    - Dst: Botan::GF2m_Field::gf_mul_rrr
      Src: /src/botan/src/tests/test_gf2m.cpp:51,1
    - Dst: Botan::GF2m_Field::gf_mul_nrr
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_gf2m.cpp:54,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 59
    functionName: Botan_Tests::GF2m_Tests::test_gf_overflow
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 4
    functionsReached:
    - Botan::GF2m_Field::gf_mul_rrr
    - Test::Result::test_u16_eq
    - Botan::GF2m_Field::gf_square_rr
    - static_cast<Botan::gf2m>
    - Botan::GF2m_Field::gf_square
    - Botan::GF2m_Field::gf_l_from_n
    - Test::Result::test_sz_gte
    - Botan::GF2m_Field::gf_mul_nrr
    - Botan::GF2m_Field::gf_mul
    - Botan::GF2m_Field::gf_ord
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_gf_overflow()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::McEliece_Keygen_Encrypt_Test
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_Keygen_Encrypt_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:41,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:42,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:43,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:44,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:45,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:46,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_mceliece.cpp:47,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_mceliece.cpp:48,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:51,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:53,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_mceliece.cpp:54,1
    - Dst: Botan::HMAC_DRBG::initialize_with
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Botan::McEliece_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan::McEliece_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_mceliece.cpp:65,1
    - Dst: Botan::HMAC_DRBG::initialize_with
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:70,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:72,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:75,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:75,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:77,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:77,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:78,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:79,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached:
    - auto::shared_key
    - Botan::HMAC_DRBG::initialize_with
    - Botan::McEliece_PrivateKey::private_key_bits
    - Botan_Tests::Test::run_long_tests
    - Botan::HMAC_DRBG::clear
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
    - get_req_bin
    - Botan::PK_KEM_Encryptor::encrypt
    - std::vector::size
    - Test::Result::start_timer
    - Botan::McEliece_PrivateKey::public_key_bits
    - Test::Result::end_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - get_req_sz
    - Test::Result::test_note
    - auto::encapsulated_shared_key
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:88,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:89,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mceliece.cpp:90,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - b
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 1
    functionsReached:
    - auto::output_length
    - std::vector::data
    - Botan::HashFunction::create
    - auto::update
    - auto::final
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hash_bytes(const uint8_t b[], size_t len, const
      std::string& hash_fn = "SHA-256")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    - Dst: data
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    - Dst: size
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<uint8_t, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - size
    - data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hash_bytes(const std::vector<uint8_t, A>& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_mceliece.cpp:111,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:114,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:114,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_mceliece.cpp:115,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Botan::Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: Botan_Tests::McEliece_Tests::fingerprint
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::update
    - private_key_bits
    - auto::final
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string fingerprint(const Botan::Private_Key& key, const std::string&
      hash_algo = "SHA-256")
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:119,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_mceliece.cpp:121,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:124,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:124,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_mceliece.cpp:125,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: Botan_Tests::McEliece_Tests::fingerprint
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::update
    - auto::final
    - Test_Error
    - public_key_bits
    linkageType: ''
    returnType: std::string
    signature: std::string fingerprint(const Botan::Public_Key& key, const std::string&
      hash_algo = "SHA-256")
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:139,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:145,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:147,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:150,1
    - Dst: Botan::McEliece_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:151,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Botan::McEliece_PrivateKey::check_key
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:159,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:161,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mceliece.cpp:163,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    - Dst: Botan_Tests::McEliece_Tests::test_kem
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 172
    functionName: Botan_Tests::McEliece_Tests::run
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::McEliece_Tests::rng
    - Botan::McEliece_PrivateKey::private_key_bits
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan_Tests::McEliece_Tests::test_kem
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::McEliece_Tests::fingerprint
    - Test::Result::test_is_true
    - public_key_bits
    - Botan::McEliece_PrivateKey::check_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:179,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:184,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_mceliece.cpp:186,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:188,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:190,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:190,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:192,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:192,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sk'
    - ' pk'
    - ' rng'
    argTypes:
    - Botan::McEliece_PrivateKey
    - Botan::McEliece_PublicKey
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 196
    functionName: Botan_Tests::McEliece_Tests::test_kem
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 1
    functionsReached:
    - random_vec
    - auto::shared_key
    - Test::Result::start_timer
    - auto::encapsulated_shared_key
    - Test::Result::end_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - Botan_Tests::Test::run_long_tests
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_kem(const Botan::McEliece_PrivateKey& sk,\n                                   const
      Botan::McEliece_PublicKey& pk,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::McEliece_Keygen_Encrypt_Test
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_Keygen_Encrypt_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:41,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:42,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:43,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:44,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:45,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:46,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_mceliece.cpp:47,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_mceliece.cpp:48,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:51,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:53,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_mceliece.cpp:54,1
    - Dst: Botan::HMAC_DRBG::initialize_with
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Botan::McEliece_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan::McEliece_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_mceliece.cpp:65,1
    - Dst: Botan::HMAC_DRBG::initialize_with
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:70,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:72,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:75,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:75,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:77,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:77,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:78,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:79,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached:
    - auto::shared_key
    - Botan::HMAC_DRBG::initialize_with
    - Botan::McEliece_PrivateKey::private_key_bits
    - Botan_Tests::Test::run_long_tests
    - Botan::HMAC_DRBG::clear
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
    - get_req_bin
    - Botan::PK_KEM_Encryptor::encrypt
    - std::vector::size
    - Test::Result::start_timer
    - Botan::McEliece_PrivateKey::public_key_bits
    - Test::Result::end_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - get_req_sz
    - Test::Result::test_note
    - auto::encapsulated_shared_key
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:88,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:89,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mceliece.cpp:90,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - b
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 3
    functionsReached:
    - auto::output_length
    - std::vector::data
    - Botan::HashFunction::create
    - auto::update
    - auto::final
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hash_bytes(const uint8_t b[], size_t len, const
      std::string& hash_fn = "SHA-256")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    - Dst: data
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    - Dst: size
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<uint8_t, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - size
    - data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hash_bytes(const std::vector<uint8_t, A>& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_mceliece.cpp:111,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:114,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:114,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_mceliece.cpp:115,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Botan::Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: Botan_Tests::McEliece_Tests::fingerprint
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::update
    - private_key_bits
    - auto::final
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string fingerprint(const Botan::Private_Key& key, const std::string&
      hash_algo = "SHA-256")
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:119,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_mceliece.cpp:121,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:124,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:124,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_mceliece.cpp:125,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: Botan_Tests::McEliece_Tests::fingerprint
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::update
    - auto::final
    - Test_Error
    - public_key_bits
    linkageType: ''
    returnType: std::string
    signature: std::string fingerprint(const Botan::Public_Key& key, const std::string&
      hash_algo = "SHA-256")
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:139,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:145,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:147,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:150,1
    - Dst: Botan::McEliece_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:151,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Botan::McEliece_PrivateKey::check_key
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:159,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:161,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mceliece.cpp:163,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    - Dst: Botan_Tests::McEliece_Tests::test_kem
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 172
    functionName: Botan_Tests::McEliece_Tests::run
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::McEliece_Tests::rng
    - Botan::McEliece_PrivateKey::private_key_bits
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan_Tests::McEliece_Tests::test_kem
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::McEliece_Tests::fingerprint
    - Test::Result::test_is_true
    - public_key_bits
    - Botan::McEliece_PrivateKey::check_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:179,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:184,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_mceliece.cpp:186,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:188,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:190,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:190,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:192,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:192,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sk'
    - ' pk'
    - ' rng'
    argTypes:
    - Botan::McEliece_PrivateKey
    - Botan::McEliece_PublicKey
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 196
    functionName: Botan_Tests::McEliece_Tests::test_kem
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 2
    functionsReached:
    - random_vec
    - auto::shared_key
    - Test::Result::start_timer
    - auto::encapsulated_shared_key
    - Test::Result::end_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - Botan_Tests::Test::run_long_tests
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_kem(const Botan::McEliece_PrivateKey& sk,\n                                   const
      Botan::McEliece_PublicKey& pk,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::McEliece_Keygen_Encrypt_Test
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_Keygen_Encrypt_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:41,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:42,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:43,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:44,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:45,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:46,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_mceliece.cpp:47,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_mceliece.cpp:48,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:51,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:53,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_mceliece.cpp:54,1
    - Dst: Botan::HMAC_DRBG::initialize_with
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Botan::McEliece_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan::McEliece_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_mceliece.cpp:65,1
    - Dst: Botan::HMAC_DRBG::initialize_with
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:70,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:72,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:75,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:75,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:77,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:77,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:78,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:79,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached:
    - auto::shared_key
    - Botan::HMAC_DRBG::initialize_with
    - Botan::McEliece_PrivateKey::private_key_bits
    - Botan_Tests::Test::run_long_tests
    - Botan::HMAC_DRBG::clear
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
    - get_req_bin
    - Botan::PK_KEM_Encryptor::encrypt
    - std::vector::size
    - Test::Result::start_timer
    - Botan::McEliece_PrivateKey::public_key_bits
    - Test::Result::end_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - get_req_sz
    - Test::Result::test_note
    - auto::encapsulated_shared_key
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:88,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:89,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mceliece.cpp:90,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - b
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 5
    functionsReached:
    - auto::output_length
    - std::vector::data
    - Botan::HashFunction::create
    - auto::update
    - auto::final
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hash_bytes(const uint8_t b[], size_t len, const
      std::string& hash_fn = "SHA-256")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    - Dst: data
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    - Dst: size
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<uint8_t, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 6
    functionsReached:
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - size
    - data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hash_bytes(const std::vector<uint8_t, A>& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_mceliece.cpp:111,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:114,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:114,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_mceliece.cpp:115,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Botan::Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: Botan_Tests::McEliece_Tests::fingerprint
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::update
    - private_key_bits
    - auto::final
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string fingerprint(const Botan::Private_Key& key, const std::string&
      hash_algo = "SHA-256")
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:119,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_mceliece.cpp:121,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:124,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:124,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_mceliece.cpp:125,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: Botan_Tests::McEliece_Tests::fingerprint
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::update
    - auto::final
    - Test_Error
    - public_key_bits
    linkageType: ''
    returnType: std::string
    signature: std::string fingerprint(const Botan::Public_Key& key, const std::string&
      hash_algo = "SHA-256")
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:139,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:145,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:147,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:150,1
    - Dst: Botan::McEliece_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:151,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Botan::McEliece_PrivateKey::check_key
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:159,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:161,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mceliece.cpp:163,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    - Dst: Botan_Tests::McEliece_Tests::test_kem
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 172
    functionName: Botan_Tests::McEliece_Tests::run
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::McEliece_Tests::rng
    - Botan::McEliece_PrivateKey::private_key_bits
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan_Tests::McEliece_Tests::test_kem
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::McEliece_Tests::fingerprint
    - Test::Result::test_is_true
    - public_key_bits
    - Botan::McEliece_PrivateKey::check_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:179,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:184,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_mceliece.cpp:186,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:188,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:190,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:190,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:192,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:192,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sk'
    - ' pk'
    - ' rng'
    argTypes:
    - Botan::McEliece_PrivateKey
    - Botan::McEliece_PublicKey
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 196
    functionName: Botan_Tests::McEliece_Tests::test_kem
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 3
    functionsReached:
    - random_vec
    - auto::shared_key
    - Test::Result::start_timer
    - auto::encapsulated_shared_key
    - Test::Result::end_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - Botan_Tests::Test::run_long_tests
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_kem(const Botan::McEliece_PrivateKey& sk,\n                                   const
      Botan::McEliece_PublicKey& pk,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::McEliece_Keygen_Encrypt_Test
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_Keygen_Encrypt_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:41,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:42,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:43,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:44,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:45,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mceliece.cpp:46,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_mceliece.cpp:47,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_mceliece.cpp:48,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:51,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:53,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_mceliece.cpp:54,1
    - Dst: Botan::HMAC_DRBG::initialize_with
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mceliece.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Botan::McEliece_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:62,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan::McEliece_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:63,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_mceliece.cpp:65,1
    - Dst: Botan::HMAC_DRBG::initialize_with
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mceliece.cpp:66,1
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:70,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:72,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:75,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:75,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:77,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:77,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:78,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:78,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:79,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached:
    - auto::shared_key
    - Botan::HMAC_DRBG::initialize_with
    - Botan::McEliece_PrivateKey::private_key_bits
    - Botan_Tests::Test::run_long_tests
    - Botan::HMAC_DRBG::clear
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
    - get_req_bin
    - Botan::PK_KEM_Encryptor::encrypt
    - std::vector::size
    - Test::Result::start_timer
    - Botan::McEliece_PrivateKey::public_key_bits
    - Test::Result::end_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - get_req_sz
    - Test::Result::test_note
    - auto::encapsulated_shared_key
    - std::vector::data
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:88,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:89,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mceliece.cpp:90,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mceliece.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - b
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 7
    functionsReached:
    - auto::output_length
    - std::vector::data
    - Botan::HashFunction::create
    - auto::update
    - auto::final
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hash_bytes(const uint8_t b[], size_t len, const
      std::string& hash_fn = "SHA-256")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    - Dst: data
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    - Dst: size
      Src: /src/botan/src/tests/test_mceliece.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::vector<uint8_t, A>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 8
    functionsReached:
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - size
    - data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hash_bytes(const std::vector<uint8_t, A>& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_mceliece.cpp:111,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:114,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:114,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_mceliece.cpp:115,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Botan::Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: Botan_Tests::McEliece_Tests::fingerprint
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::update
    - private_key_bits
    - auto::final
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string fingerprint(const Botan::Private_Key& key, const std::string&
      hash_algo = "SHA-256")
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_mceliece.cpp:119,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_mceliece.cpp:121,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mceliece.cpp:124,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:124,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_mceliece.cpp:125,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mceliece.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: Botan_Tests::McEliece_Tests::fingerprint
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::update
    - auto::final
    - Test_Error
    - public_key_bits
    linkageType: ''
    returnType: std::string
    signature: std::string fingerprint(const Botan::Public_Key& key, const std::string&
      hash_algo = "SHA-256")
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:139,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:145,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:147,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:150,1
    - Dst: Botan::McEliece_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_mceliece.cpp:151,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:156,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Botan_Tests::McEliece_Tests::fingerprint
      Src: /src/botan/src/tests/test_mceliece.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Botan::McEliece_PrivateKey::check_key
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:158,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:159,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:161,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mceliece.cpp:163,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    - Dst: Botan_Tests::McEliece_Tests::test_kem
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    - Dst: Botan_Tests::McEliece_Tests::rng
      Src: /src/botan/src/tests/test_mceliece.cpp:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 172
    functionName: Botan_Tests::McEliece_Tests::run
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::McEliece_Tests::rng
    - Botan::McEliece_PrivateKey::private_key_bits
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector::push_back
    - Test::Result::test_str_eq
    - Botan_Tests::McEliece_Tests::test_kem
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::McEliece_Tests::fingerprint
    - Test::Result::test_is_true
    - public_key_bits
    - Botan::McEliece_PrivateKey::check_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:179,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_mceliece.cpp:184,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_mceliece.cpp:186,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:188,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_mceliece.cpp:190,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:190,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_mceliece.cpp:192,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_mceliece.cpp:192,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_mceliece.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sk'
    - ' pk'
    - ' rng'
    argTypes:
    - Botan::McEliece_PrivateKey
    - Botan::McEliece_PublicKey
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 196
    functionName: Botan_Tests::McEliece_Tests::test_kem
    functionSourceFile: /src/botan/src/tests/test_mceliece.cpp
    functionUses: 4
    functionsReached:
    - random_vec
    - auto::shared_key
    - Test::Result::start_timer
    - auto::encapsulated_shared_key
    - Test::Result::end_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - Botan_Tests::Test::run_long_tests
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_kem(const Botan::McEliece_PrivateKey& sk,\n                                   const
      Botan::McEliece_PublicKey& pk,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/botan/src/tests/test_thread_utils.cpp:28,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_thread_utils.cpp:28,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/test_thread_utils.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_thread_utils.cpp:39,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_thread_utils.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_thread_utils.cpp:42,1
    - Dst: get
      Src: /src/botan/src/tests/test_thread_utils.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_thread_utils.cpp:46,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:48,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:51,1
    - Dst: get
      Src: /src/botan/src/tests/test_thread_utils.cpp:51,1
    - Dst: Botan::Thread_Pool::shutdown
      Src: /src/botan/src/tests/test_thread_utils.cpp:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 58
    functionName: Botan_Tests::thread_pool
    functionSourceFile: /src/botan/src/tests/test_thread_utils.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - std::vector::push_back
    - std::move
    - get
    - Botan::Thread_Pool::run
    - Test::Result::test_sz_eq
    - Botan_CLI::Timer::milliseconds
    - Test::Result::test_failure
    - Botan::Thread_Pool::shutdown
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result thread_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/botan/src/tests/test_thread_utils.cpp:28,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_thread_utils.cpp:28,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/test_thread_utils.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_thread_utils.cpp:39,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_thread_utils.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_thread_utils.cpp:42,1
    - Dst: get
      Src: /src/botan/src/tests/test_thread_utils.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_thread_utils.cpp:46,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:48,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:51,1
    - Dst: get
      Src: /src/botan/src/tests/test_thread_utils.cpp:51,1
    - Dst: Botan::Thread_Pool::shutdown
      Src: /src/botan/src/tests/test_thread_utils.cpp:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 58
    functionName: Botan_Tests::thread_pool
    functionSourceFile: /src/botan/src/tests/test_thread_utils.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - std::vector::push_back
    - std::move
    - get
    - Botan::Thread_Pool::run
    - Test::Result::test_sz_eq
    - Botan_CLI::Timer::milliseconds
    - Test::Result::test_failure
    - Botan::Thread_Pool::shutdown
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result thread_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/botan/src/tests/test_thread_utils.cpp:28,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_thread_utils.cpp:28,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/test_thread_utils.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_thread_utils.cpp:39,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_thread_utils.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_thread_utils.cpp:42,1
    - Dst: get
      Src: /src/botan/src/tests/test_thread_utils.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_thread_utils.cpp:46,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:48,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:51,1
    - Dst: get
      Src: /src/botan/src/tests/test_thread_utils.cpp:51,1
    - Dst: Botan::Thread_Pool::shutdown
      Src: /src/botan/src/tests/test_thread_utils.cpp:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 58
    functionName: Botan_Tests::thread_pool
    functionSourceFile: /src/botan/src/tests/test_thread_utils.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - std::vector::push_back
    - std::move
    - get
    - Botan::Thread_Pool::run
    - Test::Result::test_sz_eq
    - Botan_CLI::Timer::milliseconds
    - Test::Result::test_failure
    - Botan::Thread_Pool::shutdown
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result thread_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::this_thread::sleep_for
      Src: /src/botan/src/tests/test_thread_utils.cpp:28,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_thread_utils.cpp:28,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/test_thread_utils.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_thread_utils.cpp:39,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_thread_utils.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_thread_utils.cpp:42,1
    - Dst: get
      Src: /src/botan/src/tests/test_thread_utils.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_thread_utils.cpp:46,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:48,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:51,1
    - Dst: get
      Src: /src/botan/src/tests/test_thread_utils.cpp:51,1
    - Dst: Botan::Thread_Pool::shutdown
      Src: /src/botan/src/tests/test_thread_utils.cpp:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 58
    functionName: Botan_Tests::thread_pool
    functionSourceFile: /src/botan/src/tests/test_thread_utils.cpp
    functionUses: 0
    functionsReached:
    - std::this_thread::sleep_for
    - std::vector::push_back
    - std::move
    - get
    - Botan::Thread_Pool::run
    - Test::Result::test_sz_eq
    - Botan_CLI::Timer::milliseconds
    - Test::Result::test_failure
    - Botan::Thread_Pool::shutdown
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result thread_pool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - what
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_Tests::Test_Error::Test_Error
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void Test_Error::Test_Error(std::string_view what)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan_Tests::Test::Test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test::Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Test::~Test()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test::~Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - who
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Test::Result::Result(std::string_view who)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::timestamp
    linkageType: ''
    returnType: void
    signature: void Test::Result::Result(std::string_view who)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merge
      Src: /src/botan/src/tests/tests.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - who
    - ' downstream_results'
    argTypes:
    - std::string_view
    - std::vector<Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Test::Result::Result(std::string_view who, const std::vector<Result>&
      downstream_results)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - merge
    linkageType: ''
    returnType: void
    signature: void Test::Result::Result(std::string_view who, const std::vector<Result>&
      downstream_results)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:71,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:71,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:73,1
    - Dst: reset
      Src: /src/botan/src/tests/tests.cpp:78,1
    - Dst: min
      Src: /src/botan/src/tests/tests.cpp:83,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:86,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:86,1
    - Dst: m_fail_log::begin
      Src: /src/botan/src/tests/tests.cpp:86,1
    - Dst: m_fail_log::end
      Src: /src/botan/src/tests/tests.cpp:86,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:87,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:87,1
    - Dst: m_log::begin
      Src: /src/botan/src/tests/tests.cpp:87,1
    - Dst: m_log::end
      Src: /src/botan/src/tests/tests.cpp:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' other'
    - ignore_test_name
    argTypes:
    - Result
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 88
    functionName: Test::Result::merge(const Result& other, bool ignore_test_name)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - min
    - reset
    - insert
    - m_fail_log::begin
    - m_fail_log::end
    - who
    - Test_Error
    - m_log::begin
    - m_log::end
    - end
    linkageType: ''
    returnType: void
    signature: void Test::Result::merge(const Result& other, bool ignore_test_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: Test::Result::start_timer()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::timestamp
    linkageType: ''
    returnType: void
    signature: void Test::Result::start_timer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: Test::Result::end_timer()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::timestamp
    linkageType: ''
    returnType: void
    signature: void Test::Result::end_timer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_note
      Src: /src/botan/src/tests/tests.cpp:104,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - note
    - context
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: Test::Result::test_note(std::string_view note, std::span<const uint8_t>
      context)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - test_note
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_note(std::string_view note, std::span<const
      uint8_t> context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/botan/src/tests/tests.cpp:108,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:108,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - note
    - context
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Test::Result::test_note(std::string_view note, std::string_view
      context)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - emplace_back
    - who
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_note(std::string_view note, std::string_view
      context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/botan/src/tests/tests.cpp:112,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:112,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - note
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Test::Result::test_note(std::string_view note)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - emplace_back
    - who
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_note(std::string_view note)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::set::contains
      Src: /src/botan/src/tests/tests.cpp:119,1
    - Dst: test_note
      Src: /src/botan/src/tests/tests.cpp:120,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:120,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - whatever_sv
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: Test::Result::note_missing(std::string_view whatever_sv)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - std::set::contains
    - Botan::fmt
    - test_note
    linkageType: ''
    returnType: void
    signature: void Test::Result::note_missing(std::string_view whatever_sv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_is_true
      Src: /src/botan/src/tests/tests.cpp:126,1
    - Dst: Test_Aborted
      Src: /src/botan/src/tests/tests.cpp:127,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - what
    - expr
    argTypes:
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Test::Result::require(std::string_view what, bool expr)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test_Aborted
    - test_is_true
    linkageType: ''
    returnType: void
    signature: void Test::Result::require(std::string_view what, bool expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Test::Result::ThrowExpectations::~ThrowExpectations()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void Test::Result::ThrowExpectations::~ThrowExpectations()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Test::Result::ThrowExpectations::assert_that_success_is_not_expected()
      const
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void Test::Result::ThrowExpectations::assert_that_success_is_not_expected()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: '& Test::Result::ThrowExpectations::expect_success()'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: Test::Result::ThrowExpectations
    signature: Test::Result::ThrowExpectations & Test::Result::ThrowExpectations::expect_success()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_that_success_is_not_expected
      Src: /src/botan/src/tests/tests.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: '& Test::Result::ThrowExpectations::expect_message(std::string_view
      message)'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - assert_that_success_is_not_expected
    linkageType: ''
    returnType: Test::Result::ThrowExpectations
    signature: Test::Result::ThrowExpectations & Test::Result::ThrowExpectations::expect_message(std::string_view
      message)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: m_fn
      Src: /src/botan/src/tests/tests.cpp:155,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:157,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:157,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:161,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:161,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:161,1
    - Dst: m_expected_exception_check_fn
      Src: /src/botan/src/tests/tests.cpp:163,1
    - Dst: std::current_exception
      Src: /src/botan/src/tests/tests.cpp:163,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:164,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:164,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:164,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.cpp:166,1
    - Dst: value
      Src: /src/botan/src/tests/tests.cpp:166,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:166,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:167,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:167,1
    - Dst: value
      Src: /src/botan/src/tests/tests.cpp:169,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:170,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.cpp:173,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:174,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:174,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:178,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - test_name
    - ' result'
    argTypes:
    - std::string_view
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 179
    functionName: Test::Result::ThrowExpectations::check(std::string_view test_name,
      Test::Result& result)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - m_fn
    - std::current_exception
    - m_expected_exception_check_fn
    - test_failure
    - value
    - what
    - test_success
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::ThrowExpectations::check(std::string_view test_name,
      Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:182,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - fn
    argTypes:
    - std::string_view
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Test::Result::test_throws(std::string_view what, std::function<void()>
      fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_throws(std::string_view what, std::function<void()>
      fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - expected
    - fn
    argTypes:
    - std::string_view
    - std::string_view
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: Test::Result::test_throws(std::string_view what, std::string_view
      expected, std::function<void()> fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_throws(std::string_view what, std::string_view
      expected, std::function<void()> fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - fn
    argTypes:
    - std::string_view
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: Test::Result::test_no_throw(std::string_view what, std::function<void()>
      fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_no_throw(std::string_view what, std::function<void()>
      fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:194,1
    - Dst: test_note
      Src: /src/botan/src/tests/tests.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - note
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: Test::Result::test_success(std::string_view note)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_encoding_options
    - test_note
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_success(std::string_view note)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:202,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:202,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - error
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: Test::Result::test_failure(std::string_view what, std::string_view
      error)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - test_failure
    - who
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(std::string_view what, std::string_view
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - buf
    - buf_len
    argTypes:
    - std::string_view
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: Test::Result::test_failure(std::string_view what, const uint8_t
      buf[], size_t buf_len)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_failure(std::string_view what, const uint8_t
      buf[], size_t buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:210,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:210,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:210,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - context
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: Test::Result::test_failure(std::string_view what, std::span<const
      uint8_t> context)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - test_failure
    - Botan::hex_encode
    - who
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_failure(std::string_view what, std::span<const
      uint8_t> context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:214,1
    - Dst: std::string_view
      Src: /src/botan/src/tests/tests.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: Test::Result::test_failure(const char* err)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string_view
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(const char* err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:218,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: Test::Result::test_failure(std::string_view err)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(std::string_view err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:222,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:222,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:224,1
    - Dst: std::abort
      Src: /src/botan/src/tests/tests.cpp:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: Test::Result::test_failure(std::string err)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan_Tests::test_encoding_options
    - push_back
    - std::abort
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(std::string err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:233,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:233,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/tests.cpp:236,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: Botan_Tests::same_contents
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool same_contents(std::span<const uint8_t> x, std::span<const uint8_t>
      y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:233,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:233,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/tests.cpp:236,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: Botan_Tests::same_contents
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool same_contents(std::span<const uint8_t> x, std::span<const uint8_t>
      y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:248,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:248,1
    - Dst: same_contents
      Src: /src/botan/src/tests/tests.cpp:248,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:249,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:249,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:249,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 252
    functionName: "Test::Result::test_bin_ne(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::span<const uint8_t>
      expected)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - test_failure
    - who
    - same_contents
    - test_success
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_bin_ne(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::span<const uint8_t>
      expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:257,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/tests.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected_hex
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: "Test::Result::test_bin_eq(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::string_view expected_hex)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_bin_eq
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_bin_eq(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::string_view expected_hex)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: same_contents
      Src: /src/botan/src/tests/tests.cpp:264,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:265,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:270,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:274,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:274,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:275,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:275,1
    - Dst: min
      Src: /src/botan/src/tests/tests.cpp:278,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:278,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:278,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:281,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:288,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:288,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:291,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:294,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 295
    functionName: "Test::Result::test_bin_eq(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::span<const uint8_t>
      expected)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - min
    - std::ostringstream::str
    - test_failure
    - who
    - same_contents
    - test_success
    - std::span<const uint8_t>::size
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_bin_eq(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::span<const uint8_t>
      expected)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/tests/tests.cpp:298,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:299,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - what
    - produced
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: Test::Result::test_str_not_empty(std::string_view what, std::string_view
      produced)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_str_not_empty(std::string_view what, std::string_view
      produced)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:307,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:309,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:309,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: Test::Result::test_str_eq(std::string_view what, std::string_view
      produced, std::string_view expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_str_eq(std::string_view what, std::string_view
      produced, std::string_view expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:315,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:315,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:317,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:317,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - str1
    - str2
    argTypes:
    - std::string_view
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: Test::Result::test_str_ne(std::string_view what, std::string_view
      str1, std::string_view str2)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - test_failure
    - Botan::fmt
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_str_ne(std::string_view what, std::string_view
      str1, std::string_view str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_i32_eq
      Src: /src/botan/src/tests/tests.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - int16_t
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: Test::Result::test_i16_eq(std::string_view what, int16_t produced,
      int16_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_i32_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_i16_eq(std::string_view what, int16_t produced,
      int16_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:327,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:329,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:329,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: Test::Result::test_i32_eq(std::string_view what, int32_t produced,
      int32_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_i32_eq(std::string_view what, int32_t produced,
      int32_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - produced
    - expected
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: Test::Result::test_u8_eq(uint8_t produced, uint8_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u8_eq(uint8_t produced, uint8_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: Test::Result::test_u8_eq(std::string_view what, uint8_t produced,
      uint8_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u8_eq(std::string_view what, uint8_t produced,
      uint8_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - produced
    - expected
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 343
    functionName: Test::Result::test_u16_eq(uint16_t produced, uint16_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u16_eq(uint16_t produced, uint16_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 347
    functionName: Test::Result::test_u16_eq(std::string_view what, uint16_t produced,
      uint16_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u16_eq(std::string_view what, uint16_t produced,
      uint16_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - produced
    - expected
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: Test::Result::test_u32_eq(uint32_t produced, uint32_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u32_eq(uint32_t produced, uint32_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 355
    functionName: Test::Result::test_u32_eq(std::string_view what, uint32_t produced,
      uint32_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u32_eq(std::string_view what, uint32_t produced,
      uint32_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/tests.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - produced
    - expected
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: Test::Result::test_u64_eq(uint64_t produced, uint64_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_u64_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u64_eq(uint64_t produced, uint64_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:363,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:365,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:365,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: Test::Result::test_u64_eq(std::string_view what, uint64_t produced,
      uint64_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u64_eq(std::string_view what, uint64_t produced,
      uint64_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:371,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:373,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:373,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: Test::Result::test_u64_lt(std::string_view what, uint64_t produced,
      uint64_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u64_lt(std::string_view what, uint64_t produced,
      uint64_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:379,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:381,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:381,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 383
    functionName: Test::Result::test_sz_eq(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_eq(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:387,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:389,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:389,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: Test::Result::test_sz_ne(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_ne(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:395,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:397,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:397,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: Test::Result::test_sz_lt(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_lt(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:403,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:405,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:405,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 407
    functionName: Test::Result::test_sz_lte(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_lte(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:411,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:413,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:413,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: Test::Result::test_sz_gt(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_gt(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:419,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:421,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:421,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: Test::Result::test_sz_gte(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_gte(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:428,1
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:428,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:429,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:429,1
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:430,1
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:430,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:431,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:431,1
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:432,1
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:432,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/tests.cpp:433,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::optional<uint8_t>
    - std::optional<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 437
    functionName: "Test::Result::test_opt_u8_eq(std::string_view what,\n                                  std::optional<uint8_t>
      produced,\n                                  std::optional<uint8_t> expected)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::optional<uint8_t>::has_value
    - test_failure
    - test_success
    - test_u8_eq
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_opt_u8_eq(std::string_view what,\n                                  std::optional<uint8_t>
      produced,\n                                  std::optional<uint8_t> expected)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:442,1
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:442,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:443,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:443,1
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:444,1
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:444,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:445,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:445,1
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:446,1
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:446,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/tests.cpp:447,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:449,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::optional<uint64_t>
    - std::optional<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 451
    functionName: "Test::Result::test_opt_u64_eq(std::string_view what,\n                                   std::optional<uint64_t>
      produced,\n                                   std::optional<uint64_t> expected)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::optional<uint64_t>::has_value
    - test_u64_eq
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_opt_u64_eq(std::string_view what,\n                                   std::optional<uint64_t>
      produced,\n                                   std::optional<uint64_t> expected)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:456,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:459,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:460,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - what
    - ' produced'
    - ' expected'
    argTypes:
    - std::string_view
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 462
    functionName: Test::Result::test_bn_eq(std::string_view what, const BigInt& produced,
      const BigInt& expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - std::ostringstream::str
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_bn_eq(std::string_view what, const BigInt&
      produced, const BigInt& expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:466,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:469,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:470,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - what
    - ' produced'
    - ' expected'
    argTypes:
    - std::string_view
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 472
    functionName: Test::Result::test_bn_ne(std::string_view what, const BigInt& produced,
      const BigInt& expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - std::ostringstream::str
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_bn_ne(std::string_view what, const BigInt&
      produced, const BigInt& expected)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:477,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:480,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:480,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:480,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:482,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:482,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 485
    functionName: Test::Result::test_bool_eq(std::string_view what, bool produced,
      bool expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_bool_eq(std::string_view what, bool produced,
      bool expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/tests.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - produced
    argTypes:
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: Test::Result::test_is_true(std::string_view what, bool produced)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_bool_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_is_true(std::string_view what, bool produced)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/tests.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - produced
    argTypes:
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: Test::Result::test_is_false(std::string_view what, bool produced)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_bool_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_is_false(std::string_view what, bool produced)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:499,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:499,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - func
    - rc
    argTypes:
    - std::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 503
    functionName: Test::Result::test_rc_ok(std::string_view func, int rc)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc_ok(std::string_view func, int rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:509,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:509,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - func
    - why
    - rc
    argTypes:
    - std::string_view
    - std::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: Test::Result::test_rc_fail(std::string_view func, std::string_view
      why, int rc)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc_fail(std::string_view func, std::string_view
      why, int rc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:517,1
    - Dst: Test::Result::test_rc_init(std::test_note
      Src: /src/botan/src/tests/tests.cpp:531,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:531,1
    - Dst: Test::Result::test_rc_init(std::test_failure
      Src: /src/botan/src/tests/tests.cpp:533,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - func
    - rc
    argTypes:
    - std::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 537
    functionName: Test::Result::test_rc_init(std::string_view func, int rc)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_rc_init(std::test_note
    - Test::Result::test_rc_init(std::test_failure
    - test_success
    - std::ostringstream::str
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc_init(std::string_view func, int rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:545,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:545,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - func
    - rc
    - expected
    argTypes:
    - std::string_view
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 549
    functionName: Test::Result::test_rc(std::string_view func, int rc, int expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc(std::string_view func, int rc, int expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - test_name
    - location
    argTypes:
    - std::string
    - CodeLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: Botan_Tests::Test::initialize
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Test::initialize(std::string test_name, CodeLocation location)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/tests.cpp:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 562
    functionName: '& Test::rng() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & Test::rng() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::string>::empty
      Src: /src/botan/src/tests/tests.cpp:566,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/tests.cpp:578,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - preferred_groups
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 587
    functionName: Botan_Tests::Test::supported_ec_group_name
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 8
    functionsReached:
    - BOTAN_UNUSED
    - Botan::EC_Group::supports_named_group
    - std::vector<std::string>::empty
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Test::supported_ec_group_name(std::vector<std::string>
      preferred_groups)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.cpp:595,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.cpp:595,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.cpp:597,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/tests.cpp:598,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:598,1
    - Dst: randomize
      Src: /src/botan/src/tests/tests.cpp:599,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:599,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:602,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/tests/tests.cpp:603,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.cpp:603,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:603,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/tests.cpp:604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - ' v'
    - ' rng'
    - maybe_resize
    - min_offset
    argTypes:
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 609
    functionName: Botan_Tests::Test::mutate_vec
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 14
    functionsReached:
    - std::vector::empty
    - std::vector::resize
    - next_nonzero_byte
    - next_byte
    - randomize
    - std::max<size_t>
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Test::mutate_vec(const std::vector<uint8_t>&
      v,\n                                      Botan::RandomNumberGenerator& rng,\n
      \                                     bool maybe_resize,\n                                      size_t
      min_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/tests.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 613
    functionName: Botan_Tests::Test::possible_providers
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Test::possible_providers(const std::string&
      /*alg*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::setprecision
      Src: /src/botan/src/tests/tests.cpp:620,1
    - Dst: std::setprecision
      Src: /src/botan/src/tests/tests.cpp:622,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - nanoseconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 626
    functionName: Botan_Tests::Test::format_time
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::setprecision
    linkageType: ''
    returnType: std::string
    signature: std::string Test::format_time(uint64_t nanoseconds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:630,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:632,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:638,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:640,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:643,1
    - Dst: format_time
      Src: /src/botan/src/tests/tests.cpp:648,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/tests.cpp:651,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/tests.cpp:652,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:659,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:667,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:667,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:668,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:673,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 674
    functionName: Test::Result::result_string() const
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - tests_run
    - tests_failed
    - Botan_Tests::test_encoding_options
    - format_time
    - size
    - std::ostringstream::str
    - who
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string Test::Result::result_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: '& instance()'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Registry
    signature: Test_Registry & instance()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:690,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:691,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:694,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:695,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:698,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:699,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:703,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:707,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:710,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:710,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:711,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - ' category'
    - ' name'
    - smoke_test
    - needs_serialization
    - maker_fn
    argTypes:
    - std::string
    - std::string
    - bool
    - bool
    - std::function<std::unique_ptr<Test>()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 712
    functionName: Botan_Tests::Test_Registry::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - emplace
    - contains
    - std::move
    - Test_Error
    - push_back
    linkageType: ''
    returnType: void
    signature: "void register_test(const std::string& category,\n                         const
      std::string& name,\n                         bool smoke_test,\n                         bool
      needs_serialization,\n                         std::function<std::unique_ptr<Test>()>
      maker_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:715,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:716,1
    - Dst: auto::second
      Src: /src/botan/src/tests/tests.cpp:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 720
    functionName: Botan_Tests::Test_Registry::get_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - auto::second
    - end
    - find
    linkageType: ''
    returnType: std::unique_ptr<Test>
    signature: std::unique_ptr<Test> get_test(const std::string& test_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/tests.cpp:724,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:724,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 729
    functionName: Botan_Tests::Test_Registry::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> registered_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:734,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/tests.cpp:736,1
    - Dst: std::set::begin
      Src: /src/botan/src/tests/tests.cpp:736,1
    - Dst: std::set::end
      Src: /src/botan/src/tests/tests.cpp:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 737
    functionName: Botan_Tests::Test_Registry::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - std::set::begin
    - std::set::end
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> registered_test_categories() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:743,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:743,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:746,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/tests.cpp:746,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:747,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:751,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:759,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:763,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:764,1
    - Dst: equal_range
      Src: /src/botan/src/tests/tests.cpp:765,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:765,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:767,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:770,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 776
    functionName: Botan_Tests::Test_Registry::filter_registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - contains
    - std::set::contains
    - begin
    - equal_range
    - Botan::value_exists
    - empty
    - Test_Error
    - insert_if_not_exists_and_not_skipped
    - end
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> filter_registered_tests(const std::vector<std::string>&
      requested,\n                                                       const std::vector<std::string>&
      to_be_skipped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 780
    functionName: Botan_Tests::Test_Registry::needs_serialization
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::value_exists
    linkageType: ''
    returnType: bool
    signature: bool needs_serialization(const std::string& test_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 783
    functionName: Botan_Tests::Test_Registry::Test_Registry
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Registry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: '& instance()'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Registry
    signature: Test_Registry & instance()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:690,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:691,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:694,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:695,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:698,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:699,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:703,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:707,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:710,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:710,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:711,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - ' category'
    - ' name'
    - smoke_test
    - needs_serialization
    - maker_fn
    argTypes:
    - std::string
    - std::string
    - bool
    - bool
    - std::function<std::unique_ptr<Test>()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 712
    functionName: Botan_Tests::Test_Registry::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - emplace
    - contains
    - std::move
    - Test_Error
    - push_back
    linkageType: ''
    returnType: void
    signature: "void register_test(const std::string& category,\n                         const
      std::string& name,\n                         bool smoke_test,\n                         bool
      needs_serialization,\n                         std::function<std::unique_ptr<Test>()>
      maker_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:715,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:716,1
    - Dst: auto::second
      Src: /src/botan/src/tests/tests.cpp:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 720
    functionName: Botan_Tests::Test_Registry::get_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - auto::second
    - end
    - find
    linkageType: ''
    returnType: std::unique_ptr<Test>
    signature: std::unique_ptr<Test> get_test(const std::string& test_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/tests.cpp:724,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:724,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 729
    functionName: Botan_Tests::Test_Registry::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> registered_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:734,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/tests.cpp:736,1
    - Dst: std::set::begin
      Src: /src/botan/src/tests/tests.cpp:736,1
    - Dst: std::set::end
      Src: /src/botan/src/tests/tests.cpp:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 737
    functionName: Botan_Tests::Test_Registry::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - std::set::begin
    - std::set::end
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> registered_test_categories() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:743,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:743,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:746,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/tests.cpp:746,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:747,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:751,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:759,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:763,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:764,1
    - Dst: equal_range
      Src: /src/botan/src/tests/tests.cpp:765,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:765,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:767,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:770,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 776
    functionName: Botan_Tests::Test_Registry::filter_registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - contains
    - std::set::contains
    - begin
    - equal_range
    - Botan::value_exists
    - empty
    - Test_Error
    - insert_if_not_exists_and_not_skipped
    - end
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> filter_registered_tests(const std::vector<std::string>&
      requested,\n                                                       const std::vector<std::string>&
      to_be_skipped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 780
    functionName: Botan_Tests::Test_Registry::needs_serialization
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::value_exists
    linkageType: ''
    returnType: bool
    signature: bool needs_serialization(const std::string& test_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 783
    functionName: Botan_Tests::Test_Registry::Test_Registry
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Registry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:802,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' category'
    - ' name'
    - smoke_test
    - needs_serialization
    - maker_fn
    argTypes:
    - std::string
    - std::string
    - bool
    - bool
    - std::function<std::unique_ptr<Test>()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 803
    functionName: Botan_Tests::Test::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: void
    signature: "void Test::register_test(const std::string& category,\n                         const
      std::string& name,\n                         bool smoke_test,\n                         bool
      needs_serialization,\n                         std::function<std::unique_ptr<Test>()>
      maker_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/tests.cpp:807,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/tests/tests.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 809
    functionName: Botan_Tests::Test::timestamp
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 3
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Test::timestamp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/tests.cpp:816,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - result_lists
    argTypes:
    - std::vector<std::vector<Test::Result>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 820
    functionName: Botan_Tests::Test::flatten_result_lists
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 16
    functionsReached:
    - std::move
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Test::flatten_result_lists(std::vector<std::vector<Test::Result>>
      result_lists)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 825
    functionName: Botan_Tests::Test::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Test::registered_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 830
    functionName: Botan_Tests::Test::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Test::registered_test_categories()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 835
    functionName: Botan_Tests::Test::get_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::unique_ptr<Test>
    signature: std::unique_ptr<Test> Test::get_test(const std::string& test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 840
    functionName: Botan_Tests::Test::test_needs_serialization
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: bool
    signature: bool Test::test_needs_serialization(const std::string& test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: Botan_Tests::Test::filter_registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> Test::filter_registered_tests(const std::vector<std::string>&
      requested,\n                                                       const std::vector<std::string>&
      to_be_skipped)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::mkstemp
      Src: /src/botan/src/tests/tests.cpp:857,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/tests.cpp:857,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/tests.cpp:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' basename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 871
    functionName: Botan_Tests::Test::temp_file_name
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 12
    functionsReached:
    - ::mkstemp
    - Botan::TLS::Channel_Impl::close
    - std::string::data
    linkageType: ''
    returnType: std::string
    signature: std::string Test::temp_file_name(const std::string& basename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::copy_file
      Src: /src/botan/src/tests/tests.cpp:876,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:880,1
    - Dst: Botan::No_Filesystem_Access::No_Filesystem_Access
      Src: /src/botan/src/tests/tests.cpp:881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' from'
    - ' to'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 883
    functionName: Botan_Tests::Test::copy_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_UNUSED
    - Botan::No_Filesystem_Access::No_Filesystem_Access
    - Botan_Tests::Test::copy_file
    linkageType: ''
    returnType: bool
    signature: bool Test::copy_file(const std::string& from, const std::string& to)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:886,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/tests.cpp:887,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:888,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:889,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:892,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/botan/src/tests/tests.cpp:892,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/botan/src/tests/tests.cpp:892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 893
    functionName: Botan_Tests::Test::read_data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - std::ifstream::good
    - std::string
    - std::istreambuf_iterator<char>
    - Botan_Tests::Test::data_file
    - Test_Error
    - std::string::c_str
    linkageType: ''
    returnType: std::string
    signature: std::string Test::read_data_file(const std::string& path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:896,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/tests.cpp:897,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:898,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:899,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:904,1
    - Dst: std::ifstream::read
      Src: /src/botan/src/tests/tests.cpp:906,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/tests.cpp:906,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:906,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:906,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.cpp:907,1
    - Dst: std::ifstream::gcount
      Src: /src/botan/src/tests/tests.cpp:907,1
    - Dst: std::ifstream::eof
      Src: /src/botan/src/tests/tests.cpp:909,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.cpp:913,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:913,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:913,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:913,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 917
    functionName: Botan_Tests::Test::read_binary_data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 24
    functionsReached:
    - std::ifstream::eof
    - std::ifstream::good
    - std::vector::end
    - Botan_Tests::Test::data_file
    - std::vector::data
    - reinterpret_cast<char*>
    - std::ifstream::gcount
    - static_cast<size_t>
    - std::vector::insert
    - Test_Error
    - std::string::c_str
    - std::ifstream::read
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Test::read_binary_data_file(const std::string&
      path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opts'
    argTypes:
    - Test_Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 929
    functionName: Botan_Tests::Test::set_test_options
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test::set_test_options(const Test_Options& opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 939
    functionName: Botan_Tests::Testsuite_RNG::name
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 941
    functionName: Botan_Tests::Testsuite_RNG::clear
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 943
    functionName: Botan_Tests::Testsuite_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 945
    functionName: Botan_Tests::Testsuite_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:949,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 955
    functionName: Botan_Tests::Testsuite_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Testsuite_RNG::mix
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:959,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:959,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:962,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - test_name
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 964
    functionName: Botan_Tests::Testsuite_RNG::Testsuite_RNG
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - Botan_Tests::Testsuite_RNG::mix
    linkageType: ''
    returnType: void
    signature: void Testsuite_RNG(std::string_view seed, std::string_view test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 972
    functionName: Botan_Tests::Testsuite_RNG::mix
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t mix(uint8_t input = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 939
    functionName: Botan_Tests::Testsuite_RNG::name
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 941
    functionName: Botan_Tests::Testsuite_RNG::clear
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 943
    functionName: Botan_Tests::Testsuite_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 945
    functionName: Botan_Tests::Testsuite_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:949,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 955
    functionName: Botan_Tests::Testsuite_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Testsuite_RNG::mix
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:959,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:959,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:962,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - test_name
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 964
    functionName: Botan_Tests::Testsuite_RNG::Testsuite_RNG
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - Botan_Tests::Testsuite_RNG::mix
    linkageType: ''
    returnType: void
    signature: void Testsuite_RNG(std::string_view seed, std::string_view test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 972
    functionName: Botan_Tests::Testsuite_RNG::mix
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t mix(uint8_t input = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:981,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - epoch
    argTypes:
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 982
    functionName: Botan_Tests::Test::set_test_rng_seed
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::fmt
    linkageType: ''
    returnType: void
    signature: void Test::set_test_rng_seed(std::span<const uint8_t> seed, size_t
      epoch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Testsuite_RNG>
      Src: /src/botan/src/tests/tests.cpp:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 987
    functionName: Botan_Tests::Test::new_rng
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 177
    functionsReached:
    - std::make_unique<Testsuite_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> Test::new_rng(std::string_view
      test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Testsuite_RNG>
      Src: /src/botan/src/tests/tests.cpp:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 992
    functionName: Botan_Tests::Test::new_shared_rng
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 32
    functionsReached:
    - std::make_shared<Testsuite_RNG>
    linkageType: ''
    returnType: std::shared_ptr<Botan::RandomNumberGenerator>
    signature: std::shared_ptr<Botan::RandomNumberGenerator> Test::new_shared_rng(std::string_view
      test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/botan/src/tests/tests.cpp:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 997
    functionName: Botan_Tests::Test::data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 186
    functionsReached:
    - options
    linkageType: ''
    returnType: std::string
    signature: std::string Test::data_file(const std::string& file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/botan/src/tests/tests.cpp:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subdir'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1002
    functionName: Botan_Tests::Test::data_dir
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - options
    linkageType: ''
    returnType: std::string
    signature: std::string Test::data_dir(const std::string& subdir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_files_recursive
      Src: /src/botan/src/tests/tests.cpp:1006,1
    - Dst: options
      Src: /src/botan/src/tests/tests.cpp:1006,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/tests.cpp:1007,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' subdir'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1011
    functionName: Botan_Tests::Test::files_in_data_dir
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 16
    functionsReached:
    - options
    - Botan::get_files_recursive
    - auto::empty
    - Test_Error
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Test::files_in_data_dir(const std::string&
      subdir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::replace
      Src: /src/botan/src/tests/tests.cpp:1016,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.cpp:1016,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.cpp:1016,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/tests.cpp:1017,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/tests.cpp:1018,1
    - Dst: Botan_Tests::Test::copy_file
      Src: /src/botan/src/tests/tests.cpp:1021,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1025
    functionName: Botan_Tests::Test::data_file_as_temporary_copy
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - auto::begin
    - Botan_Tests::Test::data_file
    - auto::empty
    - Botan_Tests::Test::temp_file_name
    - Botan_Tests::Test::copy_file
    - std::replace
    - auto::end
    linkageType: ''
    returnType: std::string
    signature: std::string Test::data_file_as_temporary_copy(const std::string& what)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: provider
      Src: /src/botan/src/tests/tests.cpp:1029,1
    - Dst: provider
      Src: /src/botan/src/tests/tests.cpp:1033,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' providers'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1038
    functionName: Botan_Tests::Test::provider_filter
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 7
    functionsReached:
    - provider
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Test::provider_filter(const std::vector<std::string>&
      providers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.cpp:1041,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:1042,1
    - Dst: random_vec
      Src: /src/botan/src/tests/tests.cpp:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1043
    functionName: Botan_Tests::Test::random_password
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_encode
    - next_byte
    - random_vec
    linkageType: ''
    returnType: std::string
    signature: std::string Test::random_password(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/tests.cpp:1046,1
    - Dst: random_array
      Src: /src/botan/src/tests/tests.cpp:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - max
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1047
    functionName: Botan_Tests::Test::random_index
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - random_array
    - Botan::load_be
    linkageType: ''
    returnType: size_t
    signature: size_t Test::random_index(Botan::RandomNumberGenerator& rng, size_t
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::clear
      Src: /src/botan/src/tests/tests.cpp:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1051
    functionName: Botan_Tests::VarMap::clear
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::VarMap::clear
    linkageType: ''
    returnType: void
    signature: void VarMap::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' kv'
    - k
    argTypes:
    - std::pair<std::string, std::string>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1057
    functionName: Botan_Tests::varmap_pair_lt
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool varmap_pair_lt(const std::pair<std::string, std::string>& kv,
      std::string_view k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' kv'
    - k
    argTypes:
    - std::pair<std::string, std::string>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1057
    functionName: Botan_Tests::varmap_pair_lt
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool varmap_pair_lt(const std::pair<std::string, std::string>& kv,
      std::string_view k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1063
    functionName: Botan_Tests::VarMap::has_key
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::VarMap::get_opt_var
    linkageType: ''
    returnType: bool
    signature: bool VarMap::has_key(std::string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/botan/src/tests/tests.cpp:1066,1
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:1066,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1066,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1068,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:1071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1073
    functionName: Botan_Tests::VarMap::add
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - end
    - emplace
    - begin
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: void VarMap::add(std::string_view key, std::string_view value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/botan/src/tests/tests.cpp:1076,1
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:1076,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1076,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1083
    functionName: Botan_Tests::VarMap::get_opt_var
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 1
    functionsReached:
    - end
    - begin
    - std::lower_bound
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> VarMap::get_opt_var(std::string_view key)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/botan/src/tests/tests.cpp:1086,1
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:1086,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1086,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1088,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1091,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1091,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1093
    functionName: '& VarMap::get_req_var(std::string_view key) const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - begin
    - std::lower_bound
    - Test_Error
    - end
    linkageType: ''
    returnType: std::string
    signature: std::string & VarMap::get_req_var(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1096,1
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1097
    functionName: Botan_Tests::VarMap::get_req_str
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - get_req_var
    linkageType: ''
    returnType: std::string
    signature: std::string VarMap::get_req_str(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1100,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1104,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:1106,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1110,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1111,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:1111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1116
    functionName: Botan_Tests::VarMap::get_req_bin_list
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::split_on
    - std::vector::push_back
    - std::ostringstream::str
    - what
    - Test_Error
    - get_req_var
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: std::vector<std::vector<uint8_t>> VarMap::get_req_bin_list(std::string_view
      key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1119,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:1122,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1126
    functionName: Botan_Tests::VarMap::get_req_bin
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::fmt
    - what
    - Test_Error
    - get_req_var
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> VarMap::get_req_bin(std::string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1129,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - def_value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1134
    functionName: Botan_Tests::VarMap::get_opt_str
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Botan_Tests::VarMap::get_opt_var
    linkageType: ''
    returnType: std::string
    signature: std::string VarMap::get_opt_str(std::string_view key, std::string_view
      def_value) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1137,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1144,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1146
    functionName: Botan_Tests::VarMap::get_req_bool
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::fmt
    - get_req_var
    linkageType: ''
    returnType: bool
    signature: bool VarMap::get_req_bool(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/tests.cpp:1149,1
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1150
    functionName: Botan_Tests::VarMap::get_req_sz
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - get_req_var
    linkageType: ''
    returnType: size_t
    signature: size_t VarMap::get_req_sz(std::string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_req_sz
      Src: /src/botan/src/tests/tests.cpp:1153,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1155,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1155,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:1157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1158
    functionName: Botan_Tests::VarMap::get_req_u8
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::VarMap::get_req_sz
    - static_cast<uint8_t>
    - Botan::fmt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t VarMap::get_req_u8(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/tests.cpp:1161,1
    - Dst: Botan_Tests::VarMap::get_req_sz
      Src: /src/botan/src/tests/tests.cpp:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1162
    functionName: Botan_Tests::VarMap::get_req_u32
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan_Tests::VarMap::get_req_sz
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VarMap::get_req_u32(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1165,1
    - Dst: std::stoull
      Src: /src/botan/src/tests/tests.cpp:1167,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1171
    functionName: Botan_Tests::VarMap::get_req_u64
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Test_Error
    - get_req_var
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t VarMap::get_req_u64(std::string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1174,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/tests.cpp:1175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - def_value
    argTypes:
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1179
    functionName: Botan_Tests::VarMap::get_opt_sz
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - Botan_Tests::VarMap::get_opt_var
    linkageType: ''
    returnType: size_t
    signature: size_t VarMap::get_opt_sz(std::string_view key, const size_t def_value)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1182,1
    - Dst: std::stoull
      Src: /src/botan/src/tests/tests.cpp:1184,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - key
    - def_value
    argTypes:
    - std::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1191
    functionName: Botan_Tests::VarMap::get_opt_u64
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Botan_Tests::VarMap::get_opt_var
    - Test_Error
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t VarMap::get_opt_u64(std::string_view key, const uint64_t def_value)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1194,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:1196,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1198,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1203
    functionName: Botan_Tests::VarMap::get_opt_bin
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::hex_decode
    - Botan::fmt
    - Botan_Tests::VarMap::get_opt_var
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> VarMap::get_opt_bin(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1207,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/tests.cpp:1210,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1212,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1214
    functionName: Botan_Tests::VarMap::get_req_bn
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::fmt
    - Botan::BigInt
    - get_req_var
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt VarMap::get_req_bn(std::string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1217,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/tests.cpp:1219,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1221,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - key
    - ' def_value'
    argTypes:
    - std::string_view
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1226
    functionName: Botan_Tests::VarMap::get_opt_bn
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::fmt
    - Botan_Tests::VarMap::get_opt_var
    - Botan::BigInt
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt VarMap::get_opt_bn(std::string_view key, const Botan::BigInt&
      def_value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1235,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1236,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1239,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1240,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:1242,1
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:1242,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1242,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:1243,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/tests.cpp:1243,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1243,1
    - Dst: at
      Src: /src/botan/src/tests/tests.cpp:1244,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:1244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' data_src'
    - ' required_keys_str'
    - ' optional_keys_str'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1245
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test_Data::Text_Based_Test_Data
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::split_on
    - std::vector::end
    - begin
    - insert
    - end
    - std::vector::begin
    - at
    - size
    - Test_Error
    - empty
    linkageType: ''
    returnType: void
    signature: "void Text_Based_Test_Data(const std::string& data_src,\n                           const
      std::string& required_keys_str,\n                           const std::string&
      optional_keys_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1249
    functionName: '& current_source_name() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & current_source_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1253
    functionName: '& required_keys() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & required_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1255
    functionName: '& output_key() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & output_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1257
    functionName: '& cpu_flags() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & cpu_flags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1259
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test_Data::set_cpu_flags
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_cpu_flags(std::vector<std::string> flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1261
    functionName: '& initial_data_src_name() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & initial_data_src_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Text_Based_Test_Data>
      Src: /src/botan/src/tests/tests.cpp:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' data_src'
    - ' required_keys'
    - ' optional_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1276
    functionDepth: 0
    functionLinenumber: 1276
    functionLinenumberEnd: 1279
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Text_Based_Test_Data>
    linkageType: ''
    returnType: void
    signature: "void Text_Based_Test::Text_Based_Test(const std::string& data_src,\n
      \                                const std::string& required_keys,\n                                 const
      std::string& optional_keys)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1281
    functionName: Text_Based_Test::~Text_Based_Test()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Text_Based_Test::~Text_Based_Test()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1285,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1286,1
    - Dst: ends_with
      Src: /src/botan/src/tests/tests.cpp:1288,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:1289,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:1289,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/tests.cpp:1291,1
    - Dst: assign
      Src: /src/botan/src/tests/tests.cpp:1292,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.cpp:1292,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.cpp:1292,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1293,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1294,1
    - Dst: std::make_unique<std::ifstream>
      Src: /src/botan/src/tests/tests.cpp:1304,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1309,1
    - Dst: clear
      Src: /src/botan/src/tests/tests.cpp:1310,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/tests.cpp:1311,1
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1315,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1316,1
    - Dst: pop_front
      Src: /src/botan/src/tests/tests.cpp:1319,1
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1322,1
    - Dst: std::getline
      Src: /src/botan/src/tests/tests.cpp:1324,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1326,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/tests.cpp:1331,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1341
    functionName: Text_Based_Test::Text_Based_Test_Data::get_next_line()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Botan_Tests::Test::files_in_data_dir
    - std::string::empty
    - Botan::CPUID::initialize
    - Test_Error
    - Botan_Tests::Test::data_file
    - ends_with
    - std::string::starts_with
    - std::make_unique<std::ifstream>
    - clear
    - pop_front
    - empty
    - good
    - assign
    - auto::end
    - std::getline
    - push_back
    linkageType: ''
    returnType: std::string
    signature: std::string Text_Based_Test::Text_Based_Test_Data::get_next_line()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1345
    functionName: Text_Based_Test::Text_Based_Test_Data::known_key(const std::string&
      key) const
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool Text_Based_Test::Text_Based_Test_Data::known_key(const std::string&
      key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_first_not_of
      Src: /src/botan/src/tests/tests.cpp:1353,1
    - Dst: find_last_not_of
      Src: /src/botan/src/tests/tests.cpp:1358,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1361
    functionName: Botan_Tests::strip_ws
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find_first_not_of
    - find_last_not_of
    linkageType: ''
    returnType: std::string
    signature: std::string strip_ws(const std::string& in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:1367,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/tests/tests.cpp:1368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1369,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/tests.cpp:1369,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:1373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' tok'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1377
    functionName: Botan_Tests::parse_cpuid_bits
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::CPUID::bit_from_string
    - std::vector::push_back
    - BOTAN_UNUSED
    - size
    - auto::to_string
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> parse_cpuid_bits(const std::vector<std::string>&
      tok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_first_not_of
      Src: /src/botan/src/tests/tests.cpp:1353,1
    - Dst: find_last_not_of
      Src: /src/botan/src/tests/tests.cpp:1358,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1361
    functionName: Botan_Tests::strip_ws
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find_first_not_of
    - find_last_not_of
    linkageType: ''
    returnType: std::string
    signature: std::string strip_ws(const std::string& in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:1367,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/tests/tests.cpp:1368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1369,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/tests.cpp:1369,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:1373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' tok'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1377
    functionName: Botan_Tests::parse_cpuid_bits
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::CPUID::bit_from_string
    - std::vector::push_back
    - BOTAN_UNUSED
    - size
    - auto::to_string
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> parse_cpuid_bits(const std::vector<std::string>&
      tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1381
    functionDepth: 0
    functionLinenumber: 1381
    functionLinenumberEnd: 1383
    functionName: Botan_Tests::Text_Based_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Text_Based_Test::skip_this_test(const std::string& /*header*/,
      const VarMap& /*vars*/)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: initial_data_src_name
      Src: /src/botan/src/tests/tests.cpp:1389,1
    - Dst: get_next_line
      Src: /src/botan/src/tests/tests.cpp:1394,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1395,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/tests.cpp:1400,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1401,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/tests.cpp:1401,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.cpp:1403,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1404,1
    - Dst: current_source_name
      Src: /src/botan/src/tests/tests.cpp:1404,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1408,1
    - Dst: current_source_name
      Src: /src/botan/src/tests/tests.cpp:1408,1
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:1411,1
    - Dst: Botan_Tests::Text_Based_Test::test_name
      Src: /src/botan/src/tests/tests.cpp:1411,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1412,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1412,1
    - Dst: Botan_Tests::Text_Based_Test::test_name
      Src: /src/botan/src/tests/tests.cpp:1412,1
    - Dst: set_cpu_flags
      Src: /src/botan/src/tests/tests.cpp:1415,1
    - Dst: parse_cpuid_bits
      Src: /src/botan/src/tests/tests.cpp:1415,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1419,1
    - Dst: current_source_name
      Src: /src/botan/src/tests/tests.cpp:1419,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/tests.cpp:1422,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/tests.cpp:1423,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/tests.cpp:1423,1
    - Dst: VarMap::clear
      Src: /src/botan/src/tests/tests.cpp:1426,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/tests.cpp:1430,1
    - Dst: std::string::find_first_of
      Src: /src/botan/src/tests/tests.cpp:1432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1435,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1435,1
    - Dst: strip_ws
      Src: /src/botan/src/tests/tests.cpp:1439,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1439,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1439,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1439,1
    - Dst: strip_ws
      Src: /src/botan/src/tests/tests.cpp:1440,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1440,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1440,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/tests.cpp:1440,1
    - Dst: known_key
      Src: /src/botan/src/tests/tests.cpp:1442,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1443,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1443,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1444,1
    - Dst: VarMap::add
      Src: /src/botan/src/tests/tests.cpp:1447,1
    - Dst: output_key
      Src: /src/botan/src/tests/tests.cpp:1449,1
    - Dst: required_keys
      Src: /src/botan/src/tests/tests.cpp:1451,1
    - Dst: VarMap::has_key
      Src: /src/botan/src/tests/tests.cpp:1452,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1454,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1454,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1455,1
    - Dst: Botan_Tests::Text_Based_Test::skip_this_test
      Src: /src/botan/src/tests/tests.cpp:1459,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:1465,1
    - Dst: run_one_test
      Src: /src/botan/src/tests/tests.cpp:1467,1
    - Dst: cpu_flags
      Src: /src/botan/src/tests/tests.cpp:1469,1
    - Dst: cpu_flags
      Src: /src/botan/src/tests/tests.cpp:1470,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/tests.cpp:1471,1
    - Dst: has
      Src: /src/botan/src/tests/tests.cpp:1472,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/tests.cpp:1473,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/tests.cpp:1475,1
    - Dst: run_one_test
      Src: /src/botan/src/tests/tests.cpp:1475,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/tests.cpp:1479,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/tests.cpp:1482,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:1482,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/tests.cpp:1484,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1487,1
    - Dst: required_keys
      Src: /src/botan/src/tests/tests.cpp:1492,1
    - Dst: VarMap::get_req_str
      Src: /src/botan/src/tests/tests.cpp:1493,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/tests.cpp:1496,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:1496,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1498,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1502,1
    - Dst: required_keys
      Src: /src/botan/src/tests/tests.cpp:1506,1
    - Dst: VarMap::get_req_str
      Src: /src/botan/src/tests/tests.cpp:1507,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1510,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1512,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1512,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:1512,1
    - Dst: Botan_Tests::Text_Based_Test::clear_between_callbacks
      Src: /src/botan/src/tests/tests.cpp:1515,1
    - Dst: VarMap::clear
      Src: /src/botan/src/tests/tests.cpp:1516,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.cpp:1521,1
    - Dst: Botan_Tests::Text_Based_Test::run_final_tests
      Src: /src/botan/src/tests/tests.cpp:1526,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.cpp:1527,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1527,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/tests.cpp:1527,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1527,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1529,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1529,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1529,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1529,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1385
    functionDepth: 2
    functionLinenumber: 1385
    functionLinenumberEnd: 1533
    functionName: Botan_Tests::Text_Based_Test::run
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Botan::fmt
    - Botan::clear_cpuid_bit
    - Botan_Tests::Text_Based_Test::skip_this_test
    - cpu_flags
    - std::vector::begin
    - required_keys
    - has
    - Botan_Tests::Text_Based_Test::run_final_tests
    - VarMap::add
    - VarMap::clear
    - std::string::empty
    - std::to_string
    - Botan_Tests::Test::timestamp
    - std::vector::end
    - std::string::starts_with
    - Botan::CPUFeature::from_string
    - VarMap::has_key
    - Botan_Tests::Text_Based_Test::clear_between_callbacks
    - strip_ws
    - VarMap::get_req_str
    - std::vector::empty
    - get_next_line
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    - Botan_Tests::Text_Based_Test::test_name
    - Botan::CPUID::initialize
    - std::string::size
    - std::string::find_first_of
    - Test::Result::merge
    - Test::Result::tests_failed
    - what
    - Botan_Tests::Test::Result::Failure
    - Test::Result::set_ns_consumed
    - known_key
    - Test::Result::test_note
    - set_cpu_flags
    - Botan::split_on
    - std::vector::push_back
    - std::string::end
    - std::string::substr
    - initial_data_src_name
    - current_source_name
    - std::ostringstream::str
    - output_key
    - std::vector::insert
    - run_one_test
    - Test_Error
    - std::string::begin
    - parse_cpuid_bits
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Text_Based_Test::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - what
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_Tests::Test_Error::Test_Error
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void Test_Error::Test_Error(std::string_view what)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan_Tests::Test::Test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test::Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Test::~Test()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test::~Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - who
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Test::Result::Result(std::string_view who)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::timestamp
    linkageType: ''
    returnType: void
    signature: void Test::Result::Result(std::string_view who)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merge
      Src: /src/botan/src/tests/tests.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - who
    - ' downstream_results'
    argTypes:
    - std::string_view
    - std::vector<Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Test::Result::Result(std::string_view who, const std::vector<Result>&
      downstream_results)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - merge
    linkageType: ''
    returnType: void
    signature: void Test::Result::Result(std::string_view who, const std::vector<Result>&
      downstream_results)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:71,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:71,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:73,1
    - Dst: reset
      Src: /src/botan/src/tests/tests.cpp:78,1
    - Dst: min
      Src: /src/botan/src/tests/tests.cpp:83,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:86,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:86,1
    - Dst: m_fail_log::begin
      Src: /src/botan/src/tests/tests.cpp:86,1
    - Dst: m_fail_log::end
      Src: /src/botan/src/tests/tests.cpp:86,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:87,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:87,1
    - Dst: m_log::begin
      Src: /src/botan/src/tests/tests.cpp:87,1
    - Dst: m_log::end
      Src: /src/botan/src/tests/tests.cpp:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' other'
    - ignore_test_name
    argTypes:
    - Result
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 88
    functionName: Test::Result::merge(const Result& other, bool ignore_test_name)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - min
    - reset
    - insert
    - m_fail_log::begin
    - m_fail_log::end
    - who
    - Test_Error
    - m_log::begin
    - m_log::end
    - end
    linkageType: ''
    returnType: void
    signature: void Test::Result::merge(const Result& other, bool ignore_test_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: Test::Result::start_timer()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::timestamp
    linkageType: ''
    returnType: void
    signature: void Test::Result::start_timer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: Test::Result::end_timer()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::timestamp
    linkageType: ''
    returnType: void
    signature: void Test::Result::end_timer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_note
      Src: /src/botan/src/tests/tests.cpp:104,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - note
    - context
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: Test::Result::test_note(std::string_view note, std::span<const uint8_t>
      context)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - test_note
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_note(std::string_view note, std::span<const
      uint8_t> context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/botan/src/tests/tests.cpp:108,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:108,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - note
    - context
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Test::Result::test_note(std::string_view note, std::string_view
      context)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - emplace_back
    - who
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_note(std::string_view note, std::string_view
      context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/botan/src/tests/tests.cpp:112,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:112,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - note
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Test::Result::test_note(std::string_view note)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - emplace_back
    - who
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_note(std::string_view note)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::set::contains
      Src: /src/botan/src/tests/tests.cpp:119,1
    - Dst: test_note
      Src: /src/botan/src/tests/tests.cpp:120,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:120,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - whatever_sv
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: Test::Result::note_missing(std::string_view whatever_sv)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - std::set::contains
    - Botan::fmt
    - test_note
    linkageType: ''
    returnType: void
    signature: void Test::Result::note_missing(std::string_view whatever_sv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_is_true
      Src: /src/botan/src/tests/tests.cpp:126,1
    - Dst: Test_Aborted
      Src: /src/botan/src/tests/tests.cpp:127,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - what
    - expr
    argTypes:
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Test::Result::require(std::string_view what, bool expr)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test_Aborted
    - test_is_true
    linkageType: ''
    returnType: void
    signature: void Test::Result::require(std::string_view what, bool expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Test::Result::ThrowExpectations::~ThrowExpectations()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void Test::Result::ThrowExpectations::~ThrowExpectations()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Test::Result::ThrowExpectations::assert_that_success_is_not_expected()
      const
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void Test::Result::ThrowExpectations::assert_that_success_is_not_expected()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: '& Test::Result::ThrowExpectations::expect_success()'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: Test::Result::ThrowExpectations
    signature: Test::Result::ThrowExpectations & Test::Result::ThrowExpectations::expect_success()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_that_success_is_not_expected
      Src: /src/botan/src/tests/tests.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: '& Test::Result::ThrowExpectations::expect_message(std::string_view
      message)'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - assert_that_success_is_not_expected
    linkageType: ''
    returnType: Test::Result::ThrowExpectations
    signature: Test::Result::ThrowExpectations & Test::Result::ThrowExpectations::expect_message(std::string_view
      message)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: m_fn
      Src: /src/botan/src/tests/tests.cpp:155,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:157,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:157,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:161,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:161,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:161,1
    - Dst: m_expected_exception_check_fn
      Src: /src/botan/src/tests/tests.cpp:163,1
    - Dst: std::current_exception
      Src: /src/botan/src/tests/tests.cpp:163,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:164,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:164,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:164,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.cpp:166,1
    - Dst: value
      Src: /src/botan/src/tests/tests.cpp:166,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:166,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:167,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:167,1
    - Dst: value
      Src: /src/botan/src/tests/tests.cpp:169,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:170,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.cpp:173,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:174,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:174,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:178,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - test_name
    - ' result'
    argTypes:
    - std::string_view
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 179
    functionName: Test::Result::ThrowExpectations::check(std::string_view test_name,
      Test::Result& result)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - m_fn
    - std::current_exception
    - m_expected_exception_check_fn
    - test_failure
    - value
    - what
    - test_success
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::ThrowExpectations::check(std::string_view test_name,
      Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:182,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - fn
    argTypes:
    - std::string_view
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Test::Result::test_throws(std::string_view what, std::function<void()>
      fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_throws(std::string_view what, std::function<void()>
      fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - expected
    - fn
    argTypes:
    - std::string_view
    - std::string_view
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: Test::Result::test_throws(std::string_view what, std::string_view
      expected, std::function<void()> fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_throws(std::string_view what, std::string_view
      expected, std::function<void()> fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - fn
    argTypes:
    - std::string_view
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: Test::Result::test_no_throw(std::string_view what, std::function<void()>
      fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_no_throw(std::string_view what, std::function<void()>
      fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:194,1
    - Dst: test_note
      Src: /src/botan/src/tests/tests.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - note
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: Test::Result::test_success(std::string_view note)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_encoding_options
    - test_note
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_success(std::string_view note)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:202,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:202,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - error
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: Test::Result::test_failure(std::string_view what, std::string_view
      error)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - test_failure
    - who
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(std::string_view what, std::string_view
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - buf
    - buf_len
    argTypes:
    - std::string_view
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: Test::Result::test_failure(std::string_view what, const uint8_t
      buf[], size_t buf_len)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_failure(std::string_view what, const uint8_t
      buf[], size_t buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:210,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:210,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:210,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - context
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: Test::Result::test_failure(std::string_view what, std::span<const
      uint8_t> context)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - test_failure
    - Botan::hex_encode
    - who
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_failure(std::string_view what, std::span<const
      uint8_t> context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:214,1
    - Dst: std::string_view
      Src: /src/botan/src/tests/tests.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: Test::Result::test_failure(const char* err)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string_view
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(const char* err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:218,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: Test::Result::test_failure(std::string_view err)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(std::string_view err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:222,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:222,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:224,1
    - Dst: std::abort
      Src: /src/botan/src/tests/tests.cpp:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: Test::Result::test_failure(std::string err)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan_Tests::test_encoding_options
    - push_back
    - std::abort
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(std::string err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:233,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:233,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/tests.cpp:236,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: Botan_Tests::same_contents
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool same_contents(std::span<const uint8_t> x, std::span<const uint8_t>
      y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:233,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:233,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/tests.cpp:236,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: Botan_Tests::same_contents
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool same_contents(std::span<const uint8_t> x, std::span<const uint8_t>
      y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:248,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:248,1
    - Dst: same_contents
      Src: /src/botan/src/tests/tests.cpp:248,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:249,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:249,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:249,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 252
    functionName: "Test::Result::test_bin_ne(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::span<const uint8_t>
      expected)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - test_failure
    - who
    - same_contents
    - test_success
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_bin_ne(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::span<const uint8_t>
      expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:257,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/tests.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected_hex
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: "Test::Result::test_bin_eq(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::string_view expected_hex)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_bin_eq
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_bin_eq(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::string_view expected_hex)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: same_contents
      Src: /src/botan/src/tests/tests.cpp:264,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:265,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:270,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:274,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:274,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:275,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:275,1
    - Dst: min
      Src: /src/botan/src/tests/tests.cpp:278,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:278,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.cpp:278,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:281,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:288,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:288,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:291,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:294,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 295
    functionName: "Test::Result::test_bin_eq(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::span<const uint8_t>
      expected)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - min
    - std::ostringstream::str
    - test_failure
    - who
    - same_contents
    - test_success
    - std::span<const uint8_t>::size
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_bin_eq(std::string_view what,\n                               std::span<const
      uint8_t> produced,\n                               std::span<const uint8_t>
      expected)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/tests/tests.cpp:298,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:299,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - what
    - produced
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: Test::Result::test_str_not_empty(std::string_view what, std::string_view
      produced)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_str_not_empty(std::string_view what, std::string_view
      produced)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:307,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:309,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:309,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: Test::Result::test_str_eq(std::string_view what, std::string_view
      produced, std::string_view expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_str_eq(std::string_view what, std::string_view
      produced, std::string_view expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:315,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:315,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:317,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:317,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - str1
    - str2
    argTypes:
    - std::string_view
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: Test::Result::test_str_ne(std::string_view what, std::string_view
      str1, std::string_view str2)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - test_failure
    - Botan::fmt
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_str_ne(std::string_view what, std::string_view
      str1, std::string_view str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_i32_eq
      Src: /src/botan/src/tests/tests.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - int16_t
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: Test::Result::test_i16_eq(std::string_view what, int16_t produced,
      int16_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_i32_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_i16_eq(std::string_view what, int16_t produced,
      int16_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:327,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:329,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:329,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: Test::Result::test_i32_eq(std::string_view what, int32_t produced,
      int32_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_i32_eq(std::string_view what, int32_t produced,
      int32_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - produced
    - expected
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: Test::Result::test_u8_eq(uint8_t produced, uint8_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u8_eq(uint8_t produced, uint8_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: Test::Result::test_u8_eq(std::string_view what, uint8_t produced,
      uint8_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u8_eq(std::string_view what, uint8_t produced,
      uint8_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - produced
    - expected
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 343
    functionName: Test::Result::test_u16_eq(uint16_t produced, uint16_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u16_eq(uint16_t produced, uint16_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 347
    functionName: Test::Result::test_u16_eq(std::string_view what, uint16_t produced,
      uint16_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u16_eq(std::string_view what, uint16_t produced,
      uint16_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - produced
    - expected
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: Test::Result::test_u32_eq(uint32_t produced, uint32_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u32_eq(uint32_t produced, uint32_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/tests.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 355
    functionName: Test::Result::test_u32_eq(std::string_view what, uint32_t produced,
      uint32_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u32_eq(std::string_view what, uint32_t produced,
      uint32_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/tests.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - produced
    - expected
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: Test::Result::test_u64_eq(uint64_t produced, uint64_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_u64_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u64_eq(uint64_t produced, uint64_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:363,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:365,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:365,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: Test::Result::test_u64_eq(std::string_view what, uint64_t produced,
      uint64_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u64_eq(std::string_view what, uint64_t produced,
      uint64_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:371,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:373,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:373,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: Test::Result::test_u64_lt(std::string_view what, uint64_t produced,
      uint64_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_u64_lt(std::string_view what, uint64_t produced,
      uint64_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:379,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:381,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:381,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 383
    functionName: Test::Result::test_sz_eq(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_eq(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:387,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:389,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:389,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: Test::Result::test_sz_ne(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_ne(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:395,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:397,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:397,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: Test::Result::test_sz_lt(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_lt(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:403,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:405,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:405,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 407
    functionName: Test::Result::test_sz_lte(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_lte(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:411,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:413,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:413,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: Test::Result::test_sz_gt(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_gt(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:419,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:421,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:421,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: Test::Result::test_sz_gte(std::string_view what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_sz_gte(std::string_view what, size_t produced,
      size_t expected)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:428,1
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:428,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:429,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:429,1
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:430,1
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:430,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:431,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:431,1
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:432,1
    - Dst: std::optional<uint8_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:432,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/tests.cpp:433,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::optional<uint8_t>
    - std::optional<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 437
    functionName: "Test::Result::test_opt_u8_eq(std::string_view what,\n                                  std::optional<uint8_t>
      produced,\n                                  std::optional<uint8_t> expected)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::optional<uint8_t>::has_value
    - test_failure
    - test_success
    - test_u8_eq
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_opt_u8_eq(std::string_view what,\n                                  std::optional<uint8_t>
      produced,\n                                  std::optional<uint8_t> expected)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:442,1
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:442,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:443,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:443,1
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:444,1
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:444,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:445,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:445,1
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:446,1
    - Dst: std::optional<uint64_t>::has_value
      Src: /src/botan/src/tests/tests.cpp:446,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/tests.cpp:447,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:449,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::optional<uint64_t>
    - std::optional<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 451
    functionName: "Test::Result::test_opt_u64_eq(std::string_view what,\n                                   std::optional<uint64_t>
      produced,\n                                   std::optional<uint64_t> expected)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::optional<uint64_t>::has_value
    - test_u64_eq
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_opt_u64_eq(std::string_view what,\n                                   std::optional<uint64_t>
      produced,\n                                   std::optional<uint64_t> expected)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:456,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:459,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:460,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - what
    - ' produced'
    - ' expected'
    argTypes:
    - std::string_view
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 462
    functionName: Test::Result::test_bn_eq(std::string_view what, const BigInt& produced,
      const BigInt& expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - std::ostringstream::str
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_bn_eq(std::string_view what, const BigInt&
      produced, const BigInt& expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:466,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:469,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:470,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - what
    - ' produced'
    - ' expected'
    argTypes:
    - std::string_view
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 472
    functionName: Test::Result::test_bn_ne(std::string_view what, const BigInt& produced,
      const BigInt& expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - std::ostringstream::str
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_bn_ne(std::string_view what, const BigInt&
      produced, const BigInt& expected)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:477,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:480,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:480,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:480,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:482,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:482,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 485
    functionName: Test::Result::test_bool_eq(std::string_view what, bool produced,
      bool expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - Botan::fmt
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_bool_eq(std::string_view what, bool produced,
      bool expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/tests.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - produced
    argTypes:
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: Test::Result::test_is_true(std::string_view what, bool produced)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_bool_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_is_true(std::string_view what, bool produced)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/tests.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - what
    - produced
    argTypes:
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: Test::Result::test_is_false(std::string_view what, bool produced)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_bool_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_is_false(std::string_view what, bool produced)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:499,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:499,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - func
    - rc
    argTypes:
    - std::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 503
    functionName: Test::Result::test_rc_ok(std::string_view func, int rc)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc_ok(std::string_view func, int rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:509,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:509,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - func
    - why
    - rc
    argTypes:
    - std::string_view
    - std::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: Test::Result::test_rc_fail(std::string_view func, std::string_view
      why, int rc)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc_fail(std::string_view func, std::string_view
      why, int rc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:517,1
    - Dst: Test::Result::test_rc_init(std::test_note
      Src: /src/botan/src/tests/tests.cpp:531,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:531,1
    - Dst: Test::Result::test_rc_init(std::test_failure
      Src: /src/botan/src/tests/tests.cpp:533,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - func
    - rc
    argTypes:
    - std::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 537
    functionName: Test::Result::test_rc_init(std::string_view func, int rc)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_rc_init(std::test_note
    - Test::Result::test_rc_init(std::test_failure
    - test_success
    - std::ostringstream::str
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc_init(std::string_view func, int rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:545,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:545,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - func
    - rc
    - expected
    argTypes:
    - std::string_view
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 549
    functionName: Test::Result::test_rc(std::string_view func, int rc, int expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_failure
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc(std::string_view func, int rc, int expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - test_name
    - location
    argTypes:
    - std::string
    - CodeLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: Botan_Tests::Test::initialize
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Test::initialize(std::string test_name, CodeLocation location)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/tests.cpp:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 562
    functionName: '& Test::rng() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & Test::rng() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::string>::empty
      Src: /src/botan/src/tests/tests.cpp:566,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/tests.cpp:578,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - preferred_groups
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 587
    functionName: Botan_Tests::Test::supported_ec_group_name
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 8
    functionsReached:
    - BOTAN_UNUSED
    - Botan::EC_Group::supports_named_group
    - std::vector<std::string>::empty
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Test::supported_ec_group_name(std::vector<std::string>
      preferred_groups)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.cpp:595,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.cpp:595,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.cpp:597,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/tests.cpp:598,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:598,1
    - Dst: randomize
      Src: /src/botan/src/tests/tests.cpp:599,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:599,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:602,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/tests/tests.cpp:603,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.cpp:603,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:603,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/tests.cpp:604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - ' v'
    - ' rng'
    - maybe_resize
    - min_offset
    argTypes:
    - std::vector<uint8_t>
    - Botan::RandomNumberGenerator
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 609
    functionName: Botan_Tests::Test::mutate_vec
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 14
    functionsReached:
    - std::vector::empty
    - std::vector::resize
    - next_nonzero_byte
    - next_byte
    - randomize
    - std::max<size_t>
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Test::mutate_vec(const std::vector<uint8_t>&
      v,\n                                      Botan::RandomNumberGenerator& rng,\n
      \                                     bool maybe_resize,\n                                      size_t
      min_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/tests.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 613
    functionName: Botan_Tests::Test::possible_providers
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Test::possible_providers(const std::string&
      /*alg*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::setprecision
      Src: /src/botan/src/tests/tests.cpp:620,1
    - Dst: std::setprecision
      Src: /src/botan/src/tests/tests.cpp:622,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - nanoseconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 626
    functionName: Botan_Tests::Test::format_time
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::setprecision
    linkageType: ''
    returnType: std::string
    signature: std::string Test::format_time(uint64_t nanoseconds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:630,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:632,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:638,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:640,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:643,1
    - Dst: format_time
      Src: /src/botan/src/tests/tests.cpp:648,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/tests.cpp:651,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/tests.cpp:652,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:659,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:667,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:667,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:668,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:673,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 674
    functionName: Test::Result::result_string() const
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - tests_run
    - tests_failed
    - Botan_Tests::test_encoding_options
    - format_time
    - size
    - std::ostringstream::str
    - who
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string Test::Result::result_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: '& instance()'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Registry
    signature: Test_Registry & instance()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:690,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:691,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:694,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:695,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:698,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:699,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:703,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:707,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:710,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:710,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:711,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - ' category'
    - ' name'
    - smoke_test
    - needs_serialization
    - maker_fn
    argTypes:
    - std::string
    - std::string
    - bool
    - bool
    - std::function<std::unique_ptr<Test>()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 712
    functionName: Botan_Tests::Test_Registry::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - emplace
    - contains
    - std::move
    - Test_Error
    - push_back
    linkageType: ''
    returnType: void
    signature: "void register_test(const std::string& category,\n                         const
      std::string& name,\n                         bool smoke_test,\n                         bool
      needs_serialization,\n                         std::function<std::unique_ptr<Test>()>
      maker_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:715,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:716,1
    - Dst: auto::second
      Src: /src/botan/src/tests/tests.cpp:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 720
    functionName: Botan_Tests::Test_Registry::get_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - auto::second
    - end
    - find
    linkageType: ''
    returnType: std::unique_ptr<Test>
    signature: std::unique_ptr<Test> get_test(const std::string& test_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/tests.cpp:724,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:724,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 729
    functionName: Botan_Tests::Test_Registry::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> registered_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:734,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/tests.cpp:736,1
    - Dst: std::set::begin
      Src: /src/botan/src/tests/tests.cpp:736,1
    - Dst: std::set::end
      Src: /src/botan/src/tests/tests.cpp:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 737
    functionName: Botan_Tests::Test_Registry::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - std::set::begin
    - std::set::end
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> registered_test_categories() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:743,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:743,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:746,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/tests.cpp:746,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:747,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:751,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:759,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:763,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:764,1
    - Dst: equal_range
      Src: /src/botan/src/tests/tests.cpp:765,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:765,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:767,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:770,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 776
    functionName: Botan_Tests::Test_Registry::filter_registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - contains
    - std::set::contains
    - begin
    - equal_range
    - Botan::value_exists
    - empty
    - Test_Error
    - insert_if_not_exists_and_not_skipped
    - end
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> filter_registered_tests(const std::vector<std::string>&
      requested,\n                                                       const std::vector<std::string>&
      to_be_skipped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 780
    functionName: Botan_Tests::Test_Registry::needs_serialization
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::value_exists
    linkageType: ''
    returnType: bool
    signature: bool needs_serialization(const std::string& test_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 783
    functionName: Botan_Tests::Test_Registry::Test_Registry
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Registry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: '& instance()'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test_Registry
    signature: Test_Registry & instance()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:690,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:691,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:694,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:695,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:698,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:699,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:703,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:707,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:710,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:710,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:711,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - ' category'
    - ' name'
    - smoke_test
    - needs_serialization
    - maker_fn
    argTypes:
    - std::string
    - std::string
    - bool
    - bool
    - std::function<std::unique_ptr<Test>()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 712
    functionName: Botan_Tests::Test_Registry::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - emplace
    - contains
    - std::move
    - Test_Error
    - push_back
    linkageType: ''
    returnType: void
    signature: "void register_test(const std::string& category,\n                         const
      std::string& name,\n                         bool smoke_test,\n                         bool
      needs_serialization,\n                         std::function<std::unique_ptr<Test>()>
      maker_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:715,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:716,1
    - Dst: auto::second
      Src: /src/botan/src/tests/tests.cpp:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 720
    functionName: Botan_Tests::Test_Registry::get_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - auto::second
    - end
    - find
    linkageType: ''
    returnType: std::unique_ptr<Test>
    signature: std::unique_ptr<Test> get_test(const std::string& test_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/tests.cpp:724,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:724,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 729
    functionName: Botan_Tests::Test_Registry::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> registered_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:734,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/tests.cpp:736,1
    - Dst: std::set::begin
      Src: /src/botan/src/tests/tests.cpp:736,1
    - Dst: std::set::end
      Src: /src/botan/src/tests/tests.cpp:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 737
    functionName: Botan_Tests::Test_Registry::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    - std::set::begin
    - std::set::end
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> registered_test_categories() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:743,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:743,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:746,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/tests.cpp:746,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:747,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:751,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:759,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:763,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:764,1
    - Dst: equal_range
      Src: /src/botan/src/tests/tests.cpp:765,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:765,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:767,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:770,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 776
    functionName: Botan_Tests::Test_Registry::filter_registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - contains
    - std::set::contains
    - begin
    - equal_range
    - Botan::value_exists
    - empty
    - Test_Error
    - insert_if_not_exists_and_not_skipped
    - end
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> filter_registered_tests(const std::vector<std::string>&
      requested,\n                                                       const std::vector<std::string>&
      to_be_skipped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 780
    functionName: Botan_Tests::Test_Registry::needs_serialization
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::value_exists
    linkageType: ''
    returnType: bool
    signature: bool needs_serialization(const std::string& test_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 783
    functionName: Botan_Tests::Test_Registry::Test_Registry
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Registry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:802,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' category'
    - ' name'
    - smoke_test
    - needs_serialization
    - maker_fn
    argTypes:
    - std::string
    - std::string
    - bool
    - bool
    - std::function<std::unique_ptr<Test>()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 803
    functionName: Botan_Tests::Test::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: void
    signature: "void Test::register_test(const std::string& category,\n                         const
      std::string& name,\n                         bool smoke_test,\n                         bool
      needs_serialization,\n                         std::function<std::unique_ptr<Test>()>
      maker_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/tests.cpp:807,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/tests/tests.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 809
    functionName: Botan_Tests::Test::timestamp
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 7
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Test::timestamp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/tests.cpp:816,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - result_lists
    argTypes:
    - std::vector<std::vector<Test::Result>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 820
    functionName: Botan_Tests::Test::flatten_result_lists
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 16
    functionsReached:
    - std::move
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Test::flatten_result_lists(std::vector<std::vector<Test::Result>>
      result_lists)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 825
    functionName: Botan_Tests::Test::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Test::registered_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 830
    functionName: Botan_Tests::Test::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Test::registered_test_categories()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 835
    functionName: Botan_Tests::Test::get_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::unique_ptr<Test>
    signature: std::unique_ptr<Test> Test::get_test(const std::string& test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 840
    functionName: Botan_Tests::Test::test_needs_serialization
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: bool
    signature: bool Test::test_needs_serialization(const std::string& test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: Botan_Tests::Test::filter_registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> Test::filter_registered_tests(const std::vector<std::string>&
      requested,\n                                                       const std::vector<std::string>&
      to_be_skipped)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::mkstemp
      Src: /src/botan/src/tests/tests.cpp:857,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/tests.cpp:857,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/tests.cpp:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' basename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 871
    functionName: Botan_Tests::Test::temp_file_name
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 13
    functionsReached:
    - ::mkstemp
    - Botan::TLS::Channel_Impl::close
    - std::string::data
    linkageType: ''
    returnType: std::string
    signature: std::string Test::temp_file_name(const std::string& basename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::copy_file
      Src: /src/botan/src/tests/tests.cpp:876,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:880,1
    - Dst: Botan::No_Filesystem_Access::No_Filesystem_Access
      Src: /src/botan/src/tests/tests.cpp:881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' from'
    - ' to'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 883
    functionName: Botan_Tests::Test::copy_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_UNUSED
    - Botan::No_Filesystem_Access::No_Filesystem_Access
    - Botan_Tests::Test::copy_file
    linkageType: ''
    returnType: bool
    signature: bool Test::copy_file(const std::string& from, const std::string& to)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:886,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/tests.cpp:887,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:888,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:889,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:892,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/botan/src/tests/tests.cpp:892,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/botan/src/tests/tests.cpp:892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 893
    functionName: Botan_Tests::Test::read_data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - std::ifstream::good
    - std::string
    - std::istreambuf_iterator<char>
    - Botan_Tests::Test::data_file
    - Test_Error
    - std::string::c_str
    linkageType: ''
    returnType: std::string
    signature: std::string Test::read_data_file(const std::string& path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:896,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/tests.cpp:897,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:898,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:899,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:904,1
    - Dst: std::ifstream::read
      Src: /src/botan/src/tests/tests.cpp:906,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/tests.cpp:906,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:906,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:906,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.cpp:907,1
    - Dst: std::ifstream::gcount
      Src: /src/botan/src/tests/tests.cpp:907,1
    - Dst: std::ifstream::eof
      Src: /src/botan/src/tests/tests.cpp:909,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.cpp:913,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:913,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:913,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:913,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 917
    functionName: Botan_Tests::Test::read_binary_data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 24
    functionsReached:
    - std::ifstream::eof
    - std::ifstream::good
    - std::vector::end
    - Botan_Tests::Test::data_file
    - std::vector::data
    - reinterpret_cast<char*>
    - std::ifstream::gcount
    - static_cast<size_t>
    - std::vector::insert
    - Test_Error
    - std::string::c_str
    - std::ifstream::read
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Test::read_binary_data_file(const std::string&
      path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opts'
    argTypes:
    - Test_Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 929
    functionName: Botan_Tests::Test::set_test_options
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test::set_test_options(const Test_Options& opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 939
    functionName: Botan_Tests::Testsuite_RNG::name
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 941
    functionName: Botan_Tests::Testsuite_RNG::clear
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 943
    functionName: Botan_Tests::Testsuite_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 945
    functionName: Botan_Tests::Testsuite_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:949,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 955
    functionName: Botan_Tests::Testsuite_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Testsuite_RNG::mix
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:959,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:959,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:962,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - test_name
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 964
    functionName: Botan_Tests::Testsuite_RNG::Testsuite_RNG
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - Botan_Tests::Testsuite_RNG::mix
    linkageType: ''
    returnType: void
    signature: void Testsuite_RNG(std::string_view seed, std::string_view test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 972
    functionName: Botan_Tests::Testsuite_RNG::mix
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 6
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t mix(uint8_t input = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 939
    functionName: Botan_Tests::Testsuite_RNG::name
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 941
    functionName: Botan_Tests::Testsuite_RNG::clear
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 943
    functionName: Botan_Tests::Testsuite_RNG::accepts_input
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 945
    functionName: Botan_Tests::Testsuite_RNG::is_seeded
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:949,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 955
    functionName: Botan_Tests::Testsuite_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Testsuite_RNG::mix
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:959,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:959,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:962,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - test_name
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 964
    functionName: Botan_Tests::Testsuite_RNG::Testsuite_RNG
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - Botan_Tests::Testsuite_RNG::mix
    linkageType: ''
    returnType: void
    signature: void Testsuite_RNG(std::string_view seed, std::string_view test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 972
    functionName: Botan_Tests::Testsuite_RNG::mix
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t mix(uint8_t input = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:981,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - epoch
    argTypes:
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 982
    functionName: Botan_Tests::Test::set_test_rng_seed
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::fmt
    linkageType: ''
    returnType: void
    signature: void Test::set_test_rng_seed(std::span<const uint8_t> seed, size_t
      epoch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Testsuite_RNG>
      Src: /src/botan/src/tests/tests.cpp:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 987
    functionName: Botan_Tests::Test::new_rng
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 178
    functionsReached:
    - std::make_unique<Testsuite_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> Test::new_rng(std::string_view
      test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Testsuite_RNG>
      Src: /src/botan/src/tests/tests.cpp:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 992
    functionName: Botan_Tests::Test::new_shared_rng
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 32
    functionsReached:
    - std::make_shared<Testsuite_RNG>
    linkageType: ''
    returnType: std::shared_ptr<Botan::RandomNumberGenerator>
    signature: std::shared_ptr<Botan::RandomNumberGenerator> Test::new_shared_rng(std::string_view
      test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/botan/src/tests/tests.cpp:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 997
    functionName: Botan_Tests::Test::data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 190
    functionsReached:
    - options
    linkageType: ''
    returnType: std::string
    signature: std::string Test::data_file(const std::string& file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options
      Src: /src/botan/src/tests/tests.cpp:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subdir'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1002
    functionName: Botan_Tests::Test::data_dir
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - options
    linkageType: ''
    returnType: std::string
    signature: std::string Test::data_dir(const std::string& subdir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_files_recursive
      Src: /src/botan/src/tests/tests.cpp:1006,1
    - Dst: options
      Src: /src/botan/src/tests/tests.cpp:1006,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/tests.cpp:1007,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' subdir'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1011
    functionName: Botan_Tests::Test::files_in_data_dir
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 17
    functionsReached:
    - options
    - Botan::get_files_recursive
    - auto::empty
    - Test_Error
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Test::files_in_data_dir(const std::string&
      subdir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::replace
      Src: /src/botan/src/tests/tests.cpp:1016,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.cpp:1016,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.cpp:1016,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/tests.cpp:1017,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/tests.cpp:1018,1
    - Dst: Botan_Tests::Test::copy_file
      Src: /src/botan/src/tests/tests.cpp:1021,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1025
    functionName: Botan_Tests::Test::data_file_as_temporary_copy
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - auto::begin
    - Botan_Tests::Test::data_file
    - auto::empty
    - Botan_Tests::Test::temp_file_name
    - Botan_Tests::Test::copy_file
    - std::replace
    - auto::end
    linkageType: ''
    returnType: std::string
    signature: std::string Test::data_file_as_temporary_copy(const std::string& what)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: provider
      Src: /src/botan/src/tests/tests.cpp:1029,1
    - Dst: provider
      Src: /src/botan/src/tests/tests.cpp:1033,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' providers'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1038
    functionName: Botan_Tests::Test::provider_filter
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 8
    functionsReached:
    - provider
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Test::provider_filter(const std::vector<std::string>&
      providers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.cpp:1041,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:1042,1
    - Dst: random_vec
      Src: /src/botan/src/tests/tests.cpp:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1043
    functionName: Botan_Tests::Test::random_password
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_encode
    - next_byte
    - random_vec
    linkageType: ''
    returnType: std::string
    signature: std::string Test::random_password(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/tests.cpp:1046,1
    - Dst: random_array
      Src: /src/botan/src/tests/tests.cpp:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - max
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1047
    functionName: Botan_Tests::Test::random_index
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - random_array
    - Botan::load_be
    linkageType: ''
    returnType: size_t
    signature: size_t Test::random_index(Botan::RandomNumberGenerator& rng, size_t
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::clear
      Src: /src/botan/src/tests/tests.cpp:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1051
    functionName: Botan_Tests::VarMap::clear
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::VarMap::clear
    linkageType: ''
    returnType: void
    signature: void VarMap::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' kv'
    - k
    argTypes:
    - std::pair<std::string, std::string>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1057
    functionName: Botan_Tests::varmap_pair_lt
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool varmap_pair_lt(const std::pair<std::string, std::string>& kv,
      std::string_view k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' kv'
    - k
    argTypes:
    - std::pair<std::string, std::string>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1057
    functionName: Botan_Tests::varmap_pair_lt
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool varmap_pair_lt(const std::pair<std::string, std::string>& kv,
      std::string_view k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1063
    functionName: Botan_Tests::VarMap::has_key
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::VarMap::get_opt_var
    linkageType: ''
    returnType: bool
    signature: bool VarMap::has_key(std::string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/botan/src/tests/tests.cpp:1066,1
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:1066,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1066,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1068,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:1071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1073
    functionName: Botan_Tests::VarMap::add
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - end
    - emplace
    - begin
    - std::lower_bound
    linkageType: ''
    returnType: void
    signature: void VarMap::add(std::string_view key, std::string_view value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/botan/src/tests/tests.cpp:1076,1
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:1076,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1076,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1083
    functionName: Botan_Tests::VarMap::get_opt_var
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 7
    functionsReached:
    - end
    - begin
    - std::lower_bound
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> VarMap::get_opt_var(std::string_view key)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/botan/src/tests/tests.cpp:1086,1
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:1086,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1086,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1088,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1091,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1091,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1093
    functionName: '& VarMap::get_req_var(std::string_view key) const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - begin
    - std::lower_bound
    - Test_Error
    - end
    linkageType: ''
    returnType: std::string
    signature: std::string & VarMap::get_req_var(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1096,1
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1097
    functionName: Botan_Tests::VarMap::get_req_str
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - get_req_var
    linkageType: ''
    returnType: std::string
    signature: std::string VarMap::get_req_str(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1100,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1104,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:1106,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1110,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1111,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:1111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1116
    functionName: Botan_Tests::VarMap::get_req_bin_list
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::split_on
    - std::vector::push_back
    - std::ostringstream::str
    - what
    - Test_Error
    - get_req_var
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: std::vector<std::vector<uint8_t>> VarMap::get_req_bin_list(std::string_view
      key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1119,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:1122,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1126
    functionName: Botan_Tests::VarMap::get_req_bin
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::fmt
    - what
    - Test_Error
    - get_req_var
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> VarMap::get_req_bin(std::string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1129,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - def_value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1134
    functionName: Botan_Tests::VarMap::get_opt_str
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Botan_Tests::VarMap::get_opt_var
    linkageType: ''
    returnType: std::string
    signature: std::string VarMap::get_opt_str(std::string_view key, std::string_view
      def_value) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1137,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1144,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1146
    functionName: Botan_Tests::VarMap::get_req_bool
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::fmt
    - get_req_var
    linkageType: ''
    returnType: bool
    signature: bool VarMap::get_req_bool(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/tests.cpp:1149,1
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1150
    functionName: Botan_Tests::VarMap::get_req_sz
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 2
    functionsReached:
    - Botan::to_u32bit
    - get_req_var
    linkageType: ''
    returnType: size_t
    signature: size_t VarMap::get_req_sz(std::string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_req_sz
      Src: /src/botan/src/tests/tests.cpp:1153,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1155,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1155,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:1157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1158
    functionName: Botan_Tests::VarMap::get_req_u8
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::VarMap::get_req_sz
    - static_cast<uint8_t>
    - Botan::fmt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t VarMap::get_req_u8(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/tests.cpp:1161,1
    - Dst: Botan_Tests::VarMap::get_req_sz
      Src: /src/botan/src/tests/tests.cpp:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1162
    functionName: Botan_Tests::VarMap::get_req_u32
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan_Tests::VarMap::get_req_sz
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VarMap::get_req_u32(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1165,1
    - Dst: std::stoull
      Src: /src/botan/src/tests/tests.cpp:1167,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1171
    functionName: Botan_Tests::VarMap::get_req_u64
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Test_Error
    - get_req_var
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t VarMap::get_req_u64(std::string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1174,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/tests.cpp:1175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - def_value
    argTypes:
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1179
    functionName: Botan_Tests::VarMap::get_opt_sz
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - Botan_Tests::VarMap::get_opt_var
    linkageType: ''
    returnType: size_t
    signature: size_t VarMap::get_opt_sz(std::string_view key, const size_t def_value)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1182,1
    - Dst: std::stoull
      Src: /src/botan/src/tests/tests.cpp:1184,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - key
    - def_value
    argTypes:
    - std::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1191
    functionName: Botan_Tests::VarMap::get_opt_u64
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Botan_Tests::VarMap::get_opt_var
    - Test_Error
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t VarMap::get_opt_u64(std::string_view key, const uint64_t def_value)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1194,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:1196,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1198,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1203
    functionName: Botan_Tests::VarMap::get_opt_bin
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::hex_decode
    - Botan::fmt
    - Botan_Tests::VarMap::get_opt_var
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> VarMap::get_opt_bin(std::string_view key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_var
      Src: /src/botan/src/tests/tests.cpp:1207,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/tests.cpp:1210,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1212,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1214
    functionName: Botan_Tests::VarMap::get_req_bn
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::fmt
    - Botan::BigInt
    - get_req_var
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt VarMap::get_req_bn(std::string_view key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_opt_var
      Src: /src/botan/src/tests/tests.cpp:1217,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/tests.cpp:1219,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1221,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - key
    - ' def_value'
    argTypes:
    - std::string_view
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1226
    functionName: Botan_Tests::VarMap::get_opt_bn
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan::fmt
    - Botan_Tests::VarMap::get_opt_var
    - Botan::BigInt
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt VarMap::get_opt_bn(std::string_view key, const Botan::BigInt&
      def_value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1235,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1236,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1239,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1240,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:1242,1
    - Dst: begin
      Src: /src/botan/src/tests/tests.cpp:1242,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1242,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:1243,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/tests.cpp:1243,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1243,1
    - Dst: at
      Src: /src/botan/src/tests/tests.cpp:1244,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:1244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' data_src'
    - ' required_keys_str'
    - ' optional_keys_str'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1245
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test_Data::Text_Based_Test_Data
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::split_on
    - std::vector::end
    - begin
    - insert
    - end
    - std::vector::begin
    - at
    - size
    - Test_Error
    - empty
    linkageType: ''
    returnType: void
    signature: "void Text_Based_Test_Data(const std::string& data_src,\n                           const
      std::string& required_keys_str,\n                           const std::string&
      optional_keys_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1249
    functionName: '& current_source_name() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & current_source_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1253
    functionName: '& required_keys() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & required_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1255
    functionName: '& output_key() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & output_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1257
    functionName: '& cpu_flags() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & cpu_flags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1259
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test_Data::set_cpu_flags
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_cpu_flags(std::vector<std::string> flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1261
    functionName: '& initial_data_src_name() const'
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & initial_data_src_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Text_Based_Test_Data>
      Src: /src/botan/src/tests/tests.cpp:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' data_src'
    - ' required_keys'
    - ' optional_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1276
    functionDepth: 0
    functionLinenumber: 1276
    functionLinenumberEnd: 1279
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Text_Based_Test_Data>
    linkageType: ''
    returnType: void
    signature: "void Text_Based_Test::Text_Based_Test(const std::string& data_src,\n
      \                                const std::string& required_keys,\n                                 const
      std::string& optional_keys)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1281
    functionName: Text_Based_Test::~Text_Based_Test()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Text_Based_Test::~Text_Based_Test()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1285,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1286,1
    - Dst: ends_with
      Src: /src/botan/src/tests/tests.cpp:1288,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:1289,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:1289,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/tests.cpp:1291,1
    - Dst: assign
      Src: /src/botan/src/tests/tests.cpp:1292,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.cpp:1292,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.cpp:1292,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1293,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1294,1
    - Dst: std::make_unique<std::ifstream>
      Src: /src/botan/src/tests/tests.cpp:1304,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1309,1
    - Dst: clear
      Src: /src/botan/src/tests/tests.cpp:1310,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/tests.cpp:1311,1
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1315,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1316,1
    - Dst: pop_front
      Src: /src/botan/src/tests/tests.cpp:1319,1
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1322,1
    - Dst: std::getline
      Src: /src/botan/src/tests/tests.cpp:1324,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1326,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/tests.cpp:1331,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1341
    functionName: Text_Based_Test::Text_Based_Test_Data::get_next_line()
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Botan_Tests::Test::files_in_data_dir
    - std::string::empty
    - Botan::CPUID::initialize
    - Test_Error
    - Botan_Tests::Test::data_file
    - ends_with
    - std::string::starts_with
    - std::make_unique<std::ifstream>
    - clear
    - pop_front
    - empty
    - good
    - assign
    - auto::end
    - std::getline
    - push_back
    linkageType: ''
    returnType: std::string
    signature: std::string Text_Based_Test::Text_Based_Test_Data::get_next_line()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1345
    functionName: Text_Based_Test::Text_Based_Test_Data::known_key(const std::string&
      key) const
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool Text_Based_Test::Text_Based_Test_Data::known_key(const std::string&
      key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_first_not_of
      Src: /src/botan/src/tests/tests.cpp:1353,1
    - Dst: find_last_not_of
      Src: /src/botan/src/tests/tests.cpp:1358,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1361
    functionName: Botan_Tests::strip_ws
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find_first_not_of
    - find_last_not_of
    linkageType: ''
    returnType: std::string
    signature: std::string strip_ws(const std::string& in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:1367,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/tests/tests.cpp:1368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1369,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/tests.cpp:1369,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:1373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' tok'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1377
    functionName: Botan_Tests::parse_cpuid_bits
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::CPUID::bit_from_string
    - std::vector::push_back
    - BOTAN_UNUSED
    - size
    - auto::to_string
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> parse_cpuid_bits(const std::vector<std::string>&
      tok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_first_not_of
      Src: /src/botan/src/tests/tests.cpp:1353,1
    - Dst: find_last_not_of
      Src: /src/botan/src/tests/tests.cpp:1358,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1361
    functionName: Botan_Tests::strip_ws
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find_first_not_of
    - find_last_not_of
    linkageType: ''
    returnType: std::string
    signature: std::string strip_ws(const std::string& in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:1367,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/tests/tests.cpp:1368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1369,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/tests.cpp:1369,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:1373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' tok'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1377
    functionName: Botan_Tests::parse_cpuid_bits
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::CPUID::bit_from_string
    - std::vector::push_back
    - BOTAN_UNUSED
    - size
    - auto::to_string
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> parse_cpuid_bits(const std::vector<std::string>&
      tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1381
    functionDepth: 0
    functionLinenumber: 1381
    functionLinenumberEnd: 1383
    functionName: Botan_Tests::Text_Based_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Text_Based_Test::skip_this_test(const std::string& /*header*/,
      const VarMap& /*vars*/)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: initial_data_src_name
      Src: /src/botan/src/tests/tests.cpp:1389,1
    - Dst: get_next_line
      Src: /src/botan/src/tests/tests.cpp:1394,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1395,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/tests.cpp:1400,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1401,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/tests.cpp:1401,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.cpp:1403,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1404,1
    - Dst: current_source_name
      Src: /src/botan/src/tests/tests.cpp:1404,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1408,1
    - Dst: current_source_name
      Src: /src/botan/src/tests/tests.cpp:1408,1
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:1411,1
    - Dst: Botan_Tests::Text_Based_Test::test_name
      Src: /src/botan/src/tests/tests.cpp:1411,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1412,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1412,1
    - Dst: Botan_Tests::Text_Based_Test::test_name
      Src: /src/botan/src/tests/tests.cpp:1412,1
    - Dst: set_cpu_flags
      Src: /src/botan/src/tests/tests.cpp:1415,1
    - Dst: parse_cpuid_bits
      Src: /src/botan/src/tests/tests.cpp:1415,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1419,1
    - Dst: current_source_name
      Src: /src/botan/src/tests/tests.cpp:1419,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/tests.cpp:1422,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/tests.cpp:1423,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/tests.cpp:1423,1
    - Dst: VarMap::clear
      Src: /src/botan/src/tests/tests.cpp:1426,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/tests.cpp:1430,1
    - Dst: std::string::find_first_of
      Src: /src/botan/src/tests/tests.cpp:1432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1435,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1435,1
    - Dst: strip_ws
      Src: /src/botan/src/tests/tests.cpp:1439,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1439,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1439,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1439,1
    - Dst: strip_ws
      Src: /src/botan/src/tests/tests.cpp:1440,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1440,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1440,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/tests.cpp:1440,1
    - Dst: known_key
      Src: /src/botan/src/tests/tests.cpp:1442,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1443,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1443,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1444,1
    - Dst: VarMap::add
      Src: /src/botan/src/tests/tests.cpp:1447,1
    - Dst: output_key
      Src: /src/botan/src/tests/tests.cpp:1449,1
    - Dst: required_keys
      Src: /src/botan/src/tests/tests.cpp:1451,1
    - Dst: VarMap::has_key
      Src: /src/botan/src/tests/tests.cpp:1452,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1454,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1454,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1455,1
    - Dst: Botan_Tests::Text_Based_Test::skip_this_test
      Src: /src/botan/src/tests/tests.cpp:1459,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:1465,1
    - Dst: run_one_test
      Src: /src/botan/src/tests/tests.cpp:1467,1
    - Dst: cpu_flags
      Src: /src/botan/src/tests/tests.cpp:1469,1
    - Dst: cpu_flags
      Src: /src/botan/src/tests/tests.cpp:1470,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/tests.cpp:1471,1
    - Dst: has
      Src: /src/botan/src/tests/tests.cpp:1472,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/tests.cpp:1473,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/tests.cpp:1475,1
    - Dst: run_one_test
      Src: /src/botan/src/tests/tests.cpp:1475,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/tests.cpp:1479,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/tests.cpp:1482,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:1482,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/tests.cpp:1484,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1487,1
    - Dst: required_keys
      Src: /src/botan/src/tests/tests.cpp:1492,1
    - Dst: VarMap::get_req_str
      Src: /src/botan/src/tests/tests.cpp:1493,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/tests.cpp:1496,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:1496,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1498,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1502,1
    - Dst: required_keys
      Src: /src/botan/src/tests/tests.cpp:1506,1
    - Dst: VarMap::get_req_str
      Src: /src/botan/src/tests/tests.cpp:1507,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1510,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1512,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1512,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:1512,1
    - Dst: Botan_Tests::Text_Based_Test::clear_between_callbacks
      Src: /src/botan/src/tests/tests.cpp:1515,1
    - Dst: VarMap::clear
      Src: /src/botan/src/tests/tests.cpp:1516,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.cpp:1521,1
    - Dst: Botan_Tests::Text_Based_Test::run_final_tests
      Src: /src/botan/src/tests/tests.cpp:1526,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.cpp:1527,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1527,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/tests.cpp:1527,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1527,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1529,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1529,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1529,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1529,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1385
    functionDepth: 2
    functionLinenumber: 1385
    functionLinenumberEnd: 1533
    functionName: Botan_Tests::Text_Based_Test::run
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Botan::fmt
    - Botan::clear_cpuid_bit
    - Botan_Tests::Text_Based_Test::skip_this_test
    - cpu_flags
    - std::vector::begin
    - required_keys
    - has
    - Botan_Tests::Text_Based_Test::run_final_tests
    - VarMap::add
    - VarMap::clear
    - std::string::empty
    - std::to_string
    - Botan_Tests::Test::timestamp
    - std::vector::end
    - std::string::starts_with
    - Botan::CPUFeature::from_string
    - VarMap::has_key
    - Botan_Tests::Text_Based_Test::clear_between_callbacks
    - strip_ws
    - VarMap::get_req_str
    - std::vector::empty
    - get_next_line
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    - Botan_Tests::Text_Based_Test::test_name
    - Botan::CPUID::initialize
    - std::string::size
    - std::string::find_first_of
    - Test::Result::merge
    - Test::Result::tests_failed
    - what
    - Botan_Tests::Test::Result::Failure
    - Test::Result::set_ns_consumed
    - known_key
    - Test::Result::test_note
    - set_cpu_flags
    - Botan::split_on
    - std::vector::push_back
    - std::string::end
    - std::string::substr
    - initial_data_src_name
    - current_source_name
    - std::ostringstream::str
    - output_key
    - std::vector::insert
    - run_one_test
    - Test_Error
    - std::string::begin
    - parse_cpuid_bits
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Text_Based_Test::run()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: value
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: size
      Src: /src/botan/src/tests/test_arb_eq.h:83,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:87,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_arb_eq.h:90,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:92,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_arb_eq.h:96,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: Botan_Tests::detail::to_string
    functionSourceFile: /src/botan/src/tests/test_arb_eq.h
    functionUses: 1
    functionsReached:
    - std::string
    - Botan_Tests::detail::to_string
    - std::ostringstream::str
    - size
    - value
    - has_value
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(const T& v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: value
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: size
      Src: /src/botan/src/tests/test_arb_eq.h:83,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:87,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_arb_eq.h:90,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:92,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_arb_eq.h:96,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: Botan_Tests::detail::to_string
    functionSourceFile: /src/botan/src/tests/test_arb_eq.h
    functionUses: 2
    functionsReached:
    - std::string
    - Botan_Tests::detail::to_string
    - std::ostringstream::str
    - size
    - value
    - has_value
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(const T& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/test_arb_eq.h:115,1
    - Dst: who
      Src: /src/botan/src/tests/test_arb_eq.h:119,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:119,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:120,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_arb_eq.h:122,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_arb_eq.h:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' result'
    - what
    - ' produced'
    - ' expected'
    argTypes:
    - Test::Result
    - std::string_view
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: Botan_Tests::test_arb_eq
    functionSourceFile: /src/botan/src/tests/test_arb_eq.h
    functionUses: 4
    functionsReached:
    - Botan_Tests::detail::to_string
    - std::ostringstream::str
    - test_failure
    - who
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool test_arb_eq(Test::Result& result, std::string_view what, const
      T& produced, const T& expected)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: value
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: size
      Src: /src/botan/src/tests/test_arb_eq.h:83,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:87,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_arb_eq.h:90,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:92,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_arb_eq.h:96,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: Botan_Tests::detail::to_string
    functionSourceFile: /src/botan/src/tests/test_arb_eq.h
    functionUses: 4
    functionsReached:
    - std::string
    - Botan_Tests::detail::to_string
    - std::ostringstream::str
    - size
    - value
    - has_value
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(const T& v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: value
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_arb_eq.h:79,1
    - Dst: size
      Src: /src/botan/src/tests/test_arb_eq.h:83,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:87,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_arb_eq.h:90,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:92,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_arb_eq.h:96,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: Botan_Tests::detail::to_string
    functionSourceFile: /src/botan/src/tests/test_arb_eq.h
    functionUses: 5
    functionsReached:
    - std::string
    - Botan_Tests::detail::to_string
    - std::ostringstream::str
    - size
    - value
    - has_value
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(const T& v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/test_arb_eq.h:115,1
    - Dst: who
      Src: /src/botan/src/tests/test_arb_eq.h:119,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:119,1
    - Dst: Botan_Tests::detail::to_string
      Src: /src/botan/src/tests/test_arb_eq.h:120,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_arb_eq.h:122,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_arb_eq.h:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' result'
    - what
    - ' produced'
    - ' expected'
    argTypes:
    - Test::Result
    - std::string_view
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: Botan_Tests::test_arb_eq
    functionSourceFile: /src/botan/src/tests/test_arb_eq.h
    functionUses: 4
    functionsReached:
    - Botan_Tests::detail::to_string
    - std::ostringstream::str
    - test_failure
    - who
    - test_success
    linkageType: ''
    returnType: bool
    signature: bool test_arb_eq(Test::Result& result, std::string_view what, const
      T& produced, const T& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:28,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:28,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:32,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:32,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - address_buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached:
    - Botan::TreeNodeIndex
    - Botan::load_be<uint32_t>
    - std::make_pair
    - Botan::Sphincs_Address
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: std::pair<Botan::Sphincs_Address, Botan::TreeNodeIndex>
    signature: "std::pair<Botan::Sphincs_Address, Botan::TreeNodeIndex> read_address_and_leaf_idx(\n
      \        std::span<const uint8_t> address_buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::SPHINCS_Plus_WOTS_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_WOTS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:44,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:44,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - auto::is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:51,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:51,1
    - Dst: Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:53,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:53,1
    - Dst: Botan::SphincsSecretSeed
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:54,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:54,1
    - Dst: Botan::SphincsPublicSeed
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:55,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:56,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:56,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:57,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:57,1
    - Dst: Botan::WotsSignature
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:58,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:58,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:60,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:66,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:72,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:75,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:80,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:81,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:85,1
    - Dst: auto::set_keypair_address
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:87,1
    - Dst: Botan::chain_lengths
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:90,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:93,1
    - Dst: auto::wots_len
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:93,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:94,1
    - Dst: wots_sign_and_pkgen
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:95,1
    - Dst: Botan::StrongSpan<Botan::WotsSignature>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:95,1
    - Dst: Botan::StrongSpan<Botan::SphincsTreeNode>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:96,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:107,1
    - Dst: Botan::wots_public_key_from_signature
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:111,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:114,1
    - Dst: auto::T
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 119
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
    - auto::get
    - Botan::StrongSpan<Botan::WotsSignature>
    - Botan::as_subtree_from
    - auto::process
    - wots_sign_and_pkgen
    - Botan::SphincsTreeNode
    - Botan::SphincsSecretSeed
    - auto::n
    - auto::set_keypair_address
    - Botan::chain_lengths
    - get_req_bin
    - Botan::StrongSpan<Botan::SphincsTreeNode>
    - auto::T
    - Botan::SphincsPublicSeed
    - Botan::HashFunction::create
    - auto::wots_len
    - Test::Result::test_bin_eq
    - get_req_str
    - Test::Result::test_note
    - Botan::Sphincs_Hash_Functions::create
    - Botan::WotsSignature
    - Botan::wots_public_key_from_signature
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:28,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:28,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:32,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:32,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - address_buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 1
    functionsReached:
    - Botan::TreeNodeIndex
    - Botan::load_be<uint32_t>
    - std::make_pair
    - Botan::Sphincs_Address
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: std::pair<Botan::Sphincs_Address, Botan::TreeNodeIndex>
    signature: "std::pair<Botan::Sphincs_Address, Botan::TreeNodeIndex> read_address_and_leaf_idx(\n
      \        std::span<const uint8_t> address_buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::SPHINCS_Plus_WOTS_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_WOTS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:44,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:44,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - auto::is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:51,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:51,1
    - Dst: Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:53,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:53,1
    - Dst: Botan::SphincsSecretSeed
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:54,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:54,1
    - Dst: Botan::SphincsPublicSeed
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:55,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:56,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:56,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:57,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:57,1
    - Dst: Botan::WotsSignature
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:58,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:58,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:60,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:66,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:72,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:75,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:80,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:81,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:85,1
    - Dst: auto::set_keypair_address
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:87,1
    - Dst: Botan::chain_lengths
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:90,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:93,1
    - Dst: auto::wots_len
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:93,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:94,1
    - Dst: wots_sign_and_pkgen
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:95,1
    - Dst: Botan::StrongSpan<Botan::WotsSignature>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:95,1
    - Dst: Botan::StrongSpan<Botan::SphincsTreeNode>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:96,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:107,1
    - Dst: Botan::wots_public_key_from_signature
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:111,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:114,1
    - Dst: auto::T
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 119
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
    - auto::get
    - Botan::StrongSpan<Botan::WotsSignature>
    - Botan::as_subtree_from
    - auto::process
    - wots_sign_and_pkgen
    - Botan::SphincsTreeNode
    - Botan::SphincsSecretSeed
    - auto::n
    - auto::set_keypair_address
    - Botan::chain_lengths
    - get_req_bin
    - Botan::StrongSpan<Botan::SphincsTreeNode>
    - auto::T
    - Botan::SphincsPublicSeed
    - Botan::HashFunction::create
    - auto::wots_len
    - Test::Result::test_bin_eq
    - get_req_str
    - Test::Result::test_note
    - Botan::Sphincs_Hash_Functions::create
    - Botan::WotsSignature
    - Botan::wots_public_key_from_signature
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:28,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:28,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:32,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:32,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - address_buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 2
    functionsReached:
    - Botan::TreeNodeIndex
    - Botan::load_be<uint32_t>
    - std::make_pair
    - Botan::Sphincs_Address
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: std::pair<Botan::Sphincs_Address, Botan::TreeNodeIndex>
    signature: "std::pair<Botan::Sphincs_Address, Botan::TreeNodeIndex> read_address_and_leaf_idx(\n
      \        std::span<const uint8_t> address_buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::SPHINCS_Plus_WOTS_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_WOTS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:44,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:44,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - auto::is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:51,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:51,1
    - Dst: Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:53,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:53,1
    - Dst: Botan::SphincsSecretSeed
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:54,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:54,1
    - Dst: Botan::SphincsPublicSeed
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:55,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:56,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:56,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:57,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:57,1
    - Dst: Botan::WotsSignature
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:58,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:58,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:60,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:66,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:72,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:75,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:80,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:81,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:85,1
    - Dst: auto::set_keypair_address
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:87,1
    - Dst: Botan::chain_lengths
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:90,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:93,1
    - Dst: auto::wots_len
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:93,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:94,1
    - Dst: wots_sign_and_pkgen
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:95,1
    - Dst: Botan::StrongSpan<Botan::WotsSignature>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:95,1
    - Dst: Botan::StrongSpan<Botan::SphincsTreeNode>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:96,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:107,1
    - Dst: Botan::wots_public_key_from_signature
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:111,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:114,1
    - Dst: auto::T
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 119
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
    - auto::get
    - Botan::StrongSpan<Botan::WotsSignature>
    - Botan::as_subtree_from
    - auto::process
    - wots_sign_and_pkgen
    - Botan::SphincsTreeNode
    - Botan::SphincsSecretSeed
    - auto::n
    - auto::set_keypair_address
    - Botan::chain_lengths
    - get_req_bin
    - Botan::StrongSpan<Botan::SphincsTreeNode>
    - auto::T
    - Botan::SphincsPublicSeed
    - Botan::HashFunction::create
    - auto::wots_len
    - Test::Result::test_bin_eq
    - get_req_str
    - Test::Result::test_note
    - Botan::Sphincs_Hash_Functions::create
    - Botan::WotsSignature
    - Botan::wots_public_key_from_signature
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:28,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:28,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:32,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:32,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - address_buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 3
    functionsReached:
    - Botan::TreeNodeIndex
    - Botan::load_be<uint32_t>
    - std::make_pair
    - Botan::Sphincs_Address
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: std::pair<Botan::Sphincs_Address, Botan::TreeNodeIndex>
    signature: "std::pair<Botan::Sphincs_Address, Botan::TreeNodeIndex> read_address_and_leaf_idx(\n
      \        std::span<const uint8_t> address_buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::SPHINCS_Plus_WOTS_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_WOTS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:44,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:44,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - auto::is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:51,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:51,1
    - Dst: Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:53,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:53,1
    - Dst: Botan::SphincsSecretSeed
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:54,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:54,1
    - Dst: Botan::SphincsPublicSeed
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:55,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:56,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:56,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:57,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:57,1
    - Dst: Botan::WotsSignature
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:58,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:58,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:60,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:66,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:72,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:75,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:80,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:81,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:85,1
    - Dst: auto::set_keypair_address
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:87,1
    - Dst: Botan::chain_lengths
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:90,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:93,1
    - Dst: auto::wots_len
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:93,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:94,1
    - Dst: wots_sign_and_pkgen
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:95,1
    - Dst: Botan::StrongSpan<Botan::WotsSignature>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:95,1
    - Dst: Botan::StrongSpan<Botan::SphincsTreeNode>
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:96,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:106,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:107,1
    - Dst: Botan::wots_public_key_from_signature
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:111,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:114,1
    - Dst: auto::T
      Src: /src/botan/src/tests/test_sphincsplus_wots.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 119
    functionName: Botan_Tests::SPHINCS_Plus_WOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_wots.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
    - auto::get
    - Botan::StrongSpan<Botan::WotsSignature>
    - Botan::as_subtree_from
    - auto::process
    - wots_sign_and_pkgen
    - Botan::SphincsTreeNode
    - Botan::SphincsSecretSeed
    - auto::n
    - auto::set_keypair_address
    - Botan::chain_lengths
    - get_req_bin
    - Botan::StrongSpan<Botan::SphincsTreeNode>
    - auto::T
    - Botan::SphincsPublicSeed
    - Botan::HashFunction::create
    - auto::wots_len
    - Test::Result::test_bin_eq
    - get_req_str
    - Test::Result::test_note
    - Botan::Sphincs_Hash_Functions::create
    - Botan::WotsSignature
    - Botan::wots_public_key_from_signature
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:28,1
    - Dst: has_value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:28,1
    - Dst: std::holds_alternative<T>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:29,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' test_result'
    - ' read_result'
    argTypes:
    - Test::Result
    - std::optional<Handshake_Message_13>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: Botan_Tests::has_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - require
    - std::holds_alternative<T>
    - has_value
    - value
    linkageType: ''
    returnType: bool
    signature: bool has_message(Test::Result& test_result, const std::optional<Handshake_Message_13>&
      read_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:35,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:35,1
    - Dst: std::get<T>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:36,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' test_result'
    - ' read_result'
    argTypes:
    - Test::Result
    - std::optional<Handshake_Message_13>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: Botan_Tests::get_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - require
    - std::get<T>
    - Botan_Tests::has_message
    - value
    linkageType: ''
    returnType: Handshake_Message_13
    signature: "Handshake_Message_13 & get_message(Test::Result& test_result,\n                                        const
      std::optional<Handshake_Message_13>& read_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:147,1
    - Dst: current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' result'
    - ' transcript_hash'
    argTypes:
    - Test::Result
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan_Tests::check_transcript_hash_empty
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - test_throws
    - current
    linkageType: ''
    returnType: void
    signature: void check_transcript_hash_empty(Test::Result& result, const Transcript_Hash_State&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:151,1
    - Dst: current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' result'
    - ' transcript_hash'
    argTypes:
    - Test::Result
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan_Tests::check_transcript_hash_filled
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - current
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void check_transcript_hash_filled(Test::Result& result, const Transcript_Hash_State&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:156,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:164,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:168,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:170,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:173,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:180,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:183,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:188,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:190,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:193,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:198,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:200,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:203,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:208,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:212,1
    - Dst: Handshake_Layer::has_pending_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:212,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:214,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:217,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:220,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:223,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:228,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:230,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:235,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:241,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:242,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:244,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:244,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:246,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:250,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:257,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:262,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:263,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:264,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 267
    functionName: Botan_Tests::read_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Handshake_Layer::copy_data
    - Botan_Tests::CHECK
    - cend
    - Botan_Tests::has_message
    - cbegin
    - Botan::concat
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Policy
    - Botan_Tests::check_transcript_hash_filled
    - Handshake_Layer::has_pending_data
    - template test_throws<TLS_Exception>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_handshake_messages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:271,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:278,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:281,1
    - Dst: std::get<Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:287,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:287,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 291
    functionName: Botan_Tests::prepare_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Server_Hello_13::parse
    - std::get<Server_Hello_13>
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> prepare_message()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:300,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:302,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:304,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:305,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:308,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:310,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:312,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:313,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:313,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:316,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:318,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:320,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:323,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:324,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:327,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:330,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:332,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:333,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:333,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:336,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:336,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:341,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:342,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:342,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:349,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:349,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:358,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:358,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:359,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:360,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 364
    functionName: Botan_Tests::full_client_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Handshake_Layer::copy_data
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::has_message
    - Transcript_Hash_State::current
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Botan_Tests::check_transcript_hash_filled
    - Transcript_Hash_State::previous
    - Transcript_Hash_State::set_algorithm
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> full_client_handshake()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:373,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:375,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:377,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:378,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:379,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:382,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:384,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:386,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:391,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:393,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:396,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:398,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 405
    functionName: Botan_Tests::hello_retry_request_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Handshake_Layer::copy_data
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::has_message
    - Transcript_Hash_State::current
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request_handshake()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:28,1
    - Dst: has_value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:28,1
    - Dst: std::holds_alternative<T>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:29,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' test_result'
    - ' read_result'
    argTypes:
    - Test::Result
    - std::optional<Handshake_Message_13>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: Botan_Tests::has_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 4
    functionsReached:
    - require
    - std::holds_alternative<T>
    - has_value
    - value
    linkageType: ''
    returnType: bool
    signature: bool has_message(Test::Result& test_result, const std::optional<Handshake_Message_13>&
      read_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:35,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:35,1
    - Dst: std::get<T>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:36,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' test_result'
    - ' read_result'
    argTypes:
    - Test::Result
    - std::optional<Handshake_Message_13>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: Botan_Tests::get_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - require
    - std::get<T>
    - Botan_Tests::has_message
    - value
    linkageType: ''
    returnType: Handshake_Message_13
    signature: "Handshake_Message_13 & get_message(Test::Result& test_result,\n                                        const
      std::optional<Handshake_Message_13>& read_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:147,1
    - Dst: current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' result'
    - ' transcript_hash'
    argTypes:
    - Test::Result
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan_Tests::check_transcript_hash_empty
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 3
    functionsReached:
    - test_throws
    - current
    linkageType: ''
    returnType: void
    signature: void check_transcript_hash_empty(Test::Result& result, const Transcript_Hash_State&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:151,1
    - Dst: current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' result'
    - ' transcript_hash'
    argTypes:
    - Test::Result
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan_Tests::check_transcript_hash_filled
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 4
    functionsReached:
    - current
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void check_transcript_hash_filled(Test::Result& result, const Transcript_Hash_State&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:156,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:164,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:168,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:170,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:173,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:180,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:183,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:188,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:190,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:193,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:198,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:200,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:203,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:208,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:212,1
    - Dst: Handshake_Layer::has_pending_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:212,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:214,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:217,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:220,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:223,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:228,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:230,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:235,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:241,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:242,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:244,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:244,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:246,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:250,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:257,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:262,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:263,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:264,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 267
    functionName: Botan_Tests::read_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Handshake_Layer::copy_data
    - Botan_Tests::CHECK
    - cend
    - Botan_Tests::has_message
    - cbegin
    - Botan::concat
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Policy
    - Botan_Tests::check_transcript_hash_filled
    - Handshake_Layer::has_pending_data
    - template test_throws<TLS_Exception>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_handshake_messages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:271,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:278,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:281,1
    - Dst: std::get<Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:287,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:287,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 291
    functionName: Botan_Tests::prepare_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Server_Hello_13::parse
    - std::get<Server_Hello_13>
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> prepare_message()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:300,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:302,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:304,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:305,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:308,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:310,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:312,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:313,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:313,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:316,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:318,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:320,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:323,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:324,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:327,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:330,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:332,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:333,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:333,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:336,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:336,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:341,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:342,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:342,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:349,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:349,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:358,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:358,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:359,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:360,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 364
    functionName: Botan_Tests::full_client_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Handshake_Layer::copy_data
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::has_message
    - Transcript_Hash_State::current
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Botan_Tests::check_transcript_hash_filled
    - Transcript_Hash_State::previous
    - Transcript_Hash_State::set_algorithm
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> full_client_handshake()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:373,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:375,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:377,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:378,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:379,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:382,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:384,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:386,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:391,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:393,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:396,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:398,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 405
    functionName: Botan_Tests::hello_retry_request_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Handshake_Layer::copy_data
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::has_message
    - Transcript_Hash_State::current
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request_handshake()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:28,1
    - Dst: has_value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:28,1
    - Dst: std::holds_alternative<T>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:29,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' test_result'
    - ' read_result'
    argTypes:
    - Test::Result
    - std::optional<Handshake_Message_13>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: Botan_Tests::has_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 8
    functionsReached:
    - require
    - std::holds_alternative<T>
    - has_value
    - value
    linkageType: ''
    returnType: bool
    signature: bool has_message(Test::Result& test_result, const std::optional<Handshake_Message_13>&
      read_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:35,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:35,1
    - Dst: std::get<T>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:36,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' test_result'
    - ' read_result'
    argTypes:
    - Test::Result
    - std::optional<Handshake_Message_13>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: Botan_Tests::get_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - require
    - std::get<T>
    - Botan_Tests::has_message
    - value
    linkageType: ''
    returnType: Handshake_Message_13
    signature: "Handshake_Message_13 & get_message(Test::Result& test_result,\n                                        const
      std::optional<Handshake_Message_13>& read_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:147,1
    - Dst: current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' result'
    - ' transcript_hash'
    argTypes:
    - Test::Result
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan_Tests::check_transcript_hash_empty
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 6
    functionsReached:
    - test_throws
    - current
    linkageType: ''
    returnType: void
    signature: void check_transcript_hash_empty(Test::Result& result, const Transcript_Hash_State&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:151,1
    - Dst: current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' result'
    - ' transcript_hash'
    argTypes:
    - Test::Result
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan_Tests::check_transcript_hash_filled
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 8
    functionsReached:
    - current
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void check_transcript_hash_filled(Test::Result& result, const Transcript_Hash_State&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:156,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:164,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:168,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:170,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:173,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:180,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:183,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:188,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:190,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:193,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:198,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:200,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:203,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:208,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:212,1
    - Dst: Handshake_Layer::has_pending_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:212,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:214,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:217,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:220,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:223,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:228,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:230,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:235,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:241,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:242,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:244,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:244,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:246,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:250,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:257,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:262,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:263,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:264,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 267
    functionName: Botan_Tests::read_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Handshake_Layer::copy_data
    - Botan_Tests::CHECK
    - cend
    - Botan_Tests::has_message
    - cbegin
    - Botan::concat
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Policy
    - Botan_Tests::check_transcript_hash_filled
    - Handshake_Layer::has_pending_data
    - template test_throws<TLS_Exception>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_handshake_messages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:271,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:278,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:281,1
    - Dst: std::get<Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:287,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:287,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 291
    functionName: Botan_Tests::prepare_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Server_Hello_13::parse
    - std::get<Server_Hello_13>
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> prepare_message()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:300,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:302,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:304,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:305,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:308,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:310,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:312,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:313,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:313,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:316,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:318,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:320,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:323,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:324,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:327,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:330,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:332,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:333,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:333,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:336,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:336,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:341,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:342,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:342,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:349,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:349,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:358,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:358,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:359,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:360,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 364
    functionName: Botan_Tests::full_client_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Handshake_Layer::copy_data
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::has_message
    - Transcript_Hash_State::current
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Botan_Tests::check_transcript_hash_filled
    - Transcript_Hash_State::previous
    - Transcript_Hash_State::set_algorithm
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> full_client_handshake()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:373,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:375,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:377,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:378,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:379,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:382,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:384,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:386,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:391,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:393,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:396,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:398,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 405
    functionName: Botan_Tests::hello_retry_request_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Handshake_Layer::copy_data
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::has_message
    - Transcript_Hash_State::current
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request_handshake()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:28,1
    - Dst: has_value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:28,1
    - Dst: std::holds_alternative<T>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:29,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' test_result'
    - ' read_result'
    argTypes:
    - Test::Result
    - std::optional<Handshake_Message_13>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: Botan_Tests::has_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 12
    functionsReached:
    - require
    - std::holds_alternative<T>
    - has_value
    - value
    linkageType: ''
    returnType: bool
    signature: bool has_message(Test::Result& test_result, const std::optional<Handshake_Message_13>&
      read_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:35,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:35,1
    - Dst: std::get<T>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:36,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' test_result'
    - ' read_result'
    argTypes:
    - Test::Result
    - std::optional<Handshake_Message_13>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: Botan_Tests::get_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - require
    - std::get<T>
    - Botan_Tests::has_message
    - value
    linkageType: ''
    returnType: Handshake_Message_13
    signature: "Handshake_Message_13 & get_message(Test::Result& test_result,\n                                        const
      std::optional<Handshake_Message_13>& read_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:147,1
    - Dst: current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' result'
    - ' transcript_hash'
    argTypes:
    - Test::Result
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan_Tests::check_transcript_hash_empty
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 9
    functionsReached:
    - test_throws
    - current
    linkageType: ''
    returnType: void
    signature: void check_transcript_hash_empty(Test::Result& result, const Transcript_Hash_State&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:151,1
    - Dst: current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' result'
    - ' transcript_hash'
    argTypes:
    - Test::Result
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan_Tests::check_transcript_hash_filled
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 12
    functionsReached:
    - current
    - test_no_throw
    linkageType: ''
    returnType: void
    signature: void check_transcript_hash_filled(Test::Result& result, const Transcript_Hash_State&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:156,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:160,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:164,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:168,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:169,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:170,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:173,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:180,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:183,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:188,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:189,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:190,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:193,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:198,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:199,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:200,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:203,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:208,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:212,1
    - Dst: Handshake_Layer::has_pending_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:212,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:214,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:217,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:218,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:220,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:223,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:228,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:229,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:230,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:235,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:241,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:242,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:244,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:244,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:246,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:250,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:257,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:262,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:263,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:264,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 267
    functionName: Botan_Tests::read_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Handshake_Layer::copy_data
    - Botan_Tests::CHECK
    - cend
    - Botan_Tests::has_message
    - cbegin
    - Botan::concat
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Policy
    - Botan_Tests::check_transcript_hash_filled
    - Handshake_Layer::has_pending_data
    - template test_throws<TLS_Exception>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> read_handshake_messages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:271,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:278,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:281,1
    - Dst: std::get<Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:287,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:287,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 291
    functionName: Botan_Tests::prepare_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Server_Hello_13::parse
    - std::get<Server_Hello_13>
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> prepare_message()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:300,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:302,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:303,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:304,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:305,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:308,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:310,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:312,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:313,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:313,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:316,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:318,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:320,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:323,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:324,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:327,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:330,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:332,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:333,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:333,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:336,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:336,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:341,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:342,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:342,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:349,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:349,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:358,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:358,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:359,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:360,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 364
    functionName: Botan_Tests::full_client_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Handshake_Layer::copy_data
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::has_message
    - Transcript_Hash_State::current
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Botan_Tests::check_transcript_hash_filled
    - Transcript_Hash_State::previous
    - Transcript_Hash_State::set_algorithm
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> full_client_handshake()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:373,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:375,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:377,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:378,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:379,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:382,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:384,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:386,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:391,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:393,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:396,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:398,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 405
    functionName: Botan_Tests::hello_retry_request_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Handshake_Layer::copy_data
    - cend
    - Botan_Tests::CHECK
    - cbegin
    - Botan_Tests::has_message
    - Transcript_Hash_State::current
    - Handshake_Layer::next_message
    - test_is_true
    - Botan_Tests::check_transcript_hash_empty
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    - Handshake_Layer::prepare_message
    - std::get<Client_Hello_13>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request_handshake()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::PK_PQC_KEM_KAT_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: "void PK_PQC_KEM_KAT_Test(const std::string& algo_name,\n                          const
      std::string& input_file,\n                          const std::string& further_optional_keys
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:67,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng_keygen'
    - ' result'
    argTypes:
    - Fixed_Output_RNG
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_keygen
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - test_is_true
    - empty
    linkageType: ''
    returnType: void
    signature: "void inspect_rng_after_keygen(const std::string& /*params*/,\n                                            const
      Fixed_Output_RNG& rng_keygen,\n                                            Test::Result&
      result) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:74,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng_encaps'
    - ' result'
    argTypes:
    - Fixed_Output_RNG
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - test_is_true
    - empty
    linkageType: ''
    returnType: void
    signature: "void inspect_rng_after_encaps(const std::string& /*params*/,\n                                            const
      Fixed_Output_RNG& rng_encaps,\n                                            Test::Result&
      result) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/tests/test_pubkey_pqc.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test([[maybe_unused]] const std::string& params, const
      VarMap& /*vars*/) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_pubkey_pqc.h:88,1
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_pubkey_pqc.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - std::make_unique<CTR_DRBG_AES256>
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> create_drbg([[maybe_unused]]
      std::span<const uint8_t> seed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:95,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:95,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
      Src: /src/botan/src/tests/test_pubkey_pqc.h:101,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:101,1
    - Dst: rng_for_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:102,1
    - Dst: rng_for_encapsulation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:103,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:106,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:106,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:107,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:110,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:111,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:111,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:112,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:113,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:116,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:116,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:116,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:117,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:118,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_pubkey_pqc.h:119,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:119,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:120,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:120,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:124,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:125,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:125,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:126,1
    - Dst: Botan::load_public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:129,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_pubkey_pqc.h:129,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:129,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:130,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:135,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:136,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:137,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:138,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:138,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:139,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:140,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:140,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:141,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
      Src: /src/botan/src/tests/test_pubkey_pqc.h:142,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:145,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_pubkey_pqc.h:145,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:145,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:146,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:151,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:152,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:152,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:153,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:153,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:155,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:157,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:157,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:158,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 162
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::shared_key
    - Test::Result::test_not_null
    - map_value
    - Botan::create_private_key
    - auto::public_key_bits
    - rng_for_encapsulation
    - algo_name
    - has_key
    - get_req_bin
    - Botan::load_private_key
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
    - auto::supports_operation
    - auto::private_key_bits
    - Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_keygen
    - auto::decrypt
    - Botan::load_public_key
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - auto::encrypt
    - Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
    - Test::Result::test_is_true
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - auto::public_key
    - auto::encapsulated_shared_key
    - Test::Result::test_str_eq
    - rng_for_keygen
    - Test::Result::test_sz_lt
    - auto::raw_private_key_bits
    - auto::algo_name
    - auto::estimated_strength
    - auto::algorithm_identifier
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::PK_PQC_KEM_ACVP_KAT_KeyGen_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: "void PK_PQC_KEM_ACVP_KAT_KeyGen_Test(const std::string& algo_name,\n
      \                                     const std::string& input_file,\n                                      const
      std::string& further_optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_pubkey_pqc.h:185,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_pubkey_pqc.h:186,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:187,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - auto::process
    - auto::begin
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> compress_value(std::span<const uint8_t> value)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/tests/test_pubkey_pqc.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& params, const VarMap& /*vars*/)
      final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:194,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:194,1
    - Dst: rng_for_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:196,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:199,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:199,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:200,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:203,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:204,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:204,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:204,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:208,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:209,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_pubkey_pqc.h:210,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:210,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:211,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:211,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:214,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:215,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:215,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:215,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:215,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:217,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 220
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test::Result::test_not_null
    - Botan::create_private_key
    - auto::public_key_bits
    - algo_name
    - get_req_bin
    - auto::supports_operation
    - auto::empty
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_is_true
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
    - auto::public_key
    - Test::Result::test_str_eq
    - rng_for_keygen
    - Test::Result::test_sz_lt
    - auto::raw_private_key_bits
    - auto::algo_name
    - auto::estimated_strength
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::PK_PQC_KEM_ACVP_KAT_Encap_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_PQC_KEM_ACVP_KAT_Encap_Test(const std::string& algo_name, const
      std::string& input_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_pubkey_pqc.h:230,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::rng_for_encap
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_encap(const VarMap& vars) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/tests/test_pubkey_pqc.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& params, const VarMap& /*vars*/)
      final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_pubkey_pqc.h:244,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_pubkey_pqc.h:245,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:246,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - auto::process
    - auto::begin
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> compress_value(std::span<const uint8_t> value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:250,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:250,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::rng_for_encap
      Src: /src/botan/src/tests/test_pubkey_pqc.h:252,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:253,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:255,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:256,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:257,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:257,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:257,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:258,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:258,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:258,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:258,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 263
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - load_public_key
    - Botan::fmt
    - auto::shared_key
    - auto::encapsulated_shared_key
    - algo_name
    - get_req_bin
    - auto::empty
    - Test::Result::test_bin_eq
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
    - auto::encrypt
    - Test::Result::test_is_true
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::rng_for_encap
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Decap_Test::PK_PQC_KEM_ACVP_KAT_Decap_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_PQC_KEM_ACVP_KAT_Decap_Test(const std::string& algo_name, const
      std::string& input_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/tests/test_pubkey_pqc.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Decap_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& params, const VarMap& /*vars*/)
      final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:281,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:281,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:283,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:286,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:287,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:287,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:288,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 291
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Decap_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - algo_name
    - auto::decrypt
    - get_req_bin
    - Test::Result::test_bin_eq
    - load_private_key
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::PK_PQC_KEM_KAT_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: "void PK_PQC_KEM_KAT_Test(const std::string& algo_name,\n                          const
      std::string& input_file,\n                          const std::string& further_optional_keys
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:67,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng_keygen'
    - ' result'
    argTypes:
    - Fixed_Output_RNG
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_keygen
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 1
    functionsReached:
    - test_is_true
    - empty
    linkageType: ''
    returnType: void
    signature: "void inspect_rng_after_keygen(const std::string& /*params*/,\n                                            const
      Fixed_Output_RNG& rng_keygen,\n                                            Test::Result&
      result) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:74,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng_encaps'
    - ' result'
    argTypes:
    - Fixed_Output_RNG
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 1
    functionsReached:
    - test_is_true
    - empty
    linkageType: ''
    returnType: void
    signature: "void inspect_rng_after_encaps(const std::string& /*params*/,\n                                            const
      Fixed_Output_RNG& rng_encaps,\n                                            Test::Result&
      result) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/tests/test_pubkey_pqc.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test([[maybe_unused]] const std::string& params, const
      VarMap& /*vars*/) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_pubkey_pqc.h:88,1
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_pubkey_pqc.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 1
    functionsReached:
    - std::make_unique<CTR_DRBG_AES256>
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> create_drbg([[maybe_unused]]
      std::span<const uint8_t> seed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:95,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:95,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
      Src: /src/botan/src/tests/test_pubkey_pqc.h:101,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:101,1
    - Dst: rng_for_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:102,1
    - Dst: rng_for_encapsulation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:103,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:106,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:106,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:107,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:110,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:111,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:111,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:112,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:113,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:116,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:116,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:116,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:117,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:118,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_pubkey_pqc.h:119,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:119,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:120,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:120,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:124,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:125,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:125,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:126,1
    - Dst: Botan::load_public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:129,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_pubkey_pqc.h:129,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:129,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:130,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:135,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:136,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:137,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:138,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:138,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:139,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:140,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:140,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:141,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
      Src: /src/botan/src/tests/test_pubkey_pqc.h:142,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:145,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_pubkey_pqc.h:145,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:145,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:146,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:151,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:152,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:152,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:153,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:153,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:155,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:157,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:157,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:158,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 162
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::shared_key
    - Test::Result::test_not_null
    - map_value
    - Botan::create_private_key
    - auto::public_key_bits
    - rng_for_encapsulation
    - algo_name
    - has_key
    - get_req_bin
    - Botan::load_private_key
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
    - auto::supports_operation
    - auto::private_key_bits
    - Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_keygen
    - auto::decrypt
    - Botan::load_public_key
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - auto::encrypt
    - Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
    - Test::Result::test_is_true
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - auto::public_key
    - auto::encapsulated_shared_key
    - Test::Result::test_str_eq
    - rng_for_keygen
    - Test::Result::test_sz_lt
    - auto::raw_private_key_bits
    - auto::algo_name
    - auto::estimated_strength
    - auto::algorithm_identifier
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::PK_PQC_KEM_ACVP_KAT_KeyGen_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: "void PK_PQC_KEM_ACVP_KAT_KeyGen_Test(const std::string& algo_name,\n
      \                                     const std::string& input_file,\n                                      const
      std::string& further_optional_keys = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_pubkey_pqc.h:185,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_pubkey_pqc.h:186,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:187,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 1
    functionsReached:
    - auto::process
    - auto::begin
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> compress_value(std::span<const uint8_t> value)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/tests/test_pubkey_pqc.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& params, const VarMap& /*vars*/)
      final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:194,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:194,1
    - Dst: rng_for_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:196,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:199,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:199,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:200,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:203,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:204,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:204,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:204,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:208,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:209,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_pubkey_pqc.h:210,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:210,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:211,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:211,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:214,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:215,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:215,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:215,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:215,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:217,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 220
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test::Result::test_not_null
    - Botan::create_private_key
    - auto::public_key_bits
    - algo_name
    - get_req_bin
    - auto::supports_operation
    - auto::empty
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_is_true
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
    - auto::public_key
    - Test::Result::test_str_eq
    - rng_for_keygen
    - Test::Result::test_sz_lt
    - auto::raw_private_key_bits
    - auto::algo_name
    - auto::estimated_strength
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::PK_PQC_KEM_ACVP_KAT_Encap_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_PQC_KEM_ACVP_KAT_Encap_Test(const std::string& algo_name, const
      std::string& input_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_pubkey_pqc.h:230,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::rng_for_encap
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 1
    functionsReached:
    - get_req_bin
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_encap(const VarMap& vars) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/tests/test_pubkey_pqc.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& params, const VarMap& /*vars*/)
      final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_pubkey_pqc.h:244,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_pubkey_pqc.h:245,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:246,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 1
    functionsReached:
    - auto::process
    - auto::begin
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> compress_value(std::span<const uint8_t> value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:250,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:250,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::rng_for_encap
      Src: /src/botan/src/tests/test_pubkey_pqc.h:252,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:253,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:255,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:256,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:257,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:257,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:257,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:258,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:258,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:258,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:258,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 263
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - load_public_key
    - Botan::fmt
    - auto::shared_key
    - auto::encapsulated_shared_key
    - algo_name
    - get_req_bin
    - auto::empty
    - Test::Result::test_bin_eq
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
    - auto::encrypt
    - Test::Result::test_is_true
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::rng_for_encap
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Decap_Test::PK_PQC_KEM_ACVP_KAT_Decap_Test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_PQC_KEM_ACVP_KAT_Decap_Test(const std::string& algo_name, const
      std::string& input_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/tests/test_pubkey_pqc.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Decap_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& params, const VarMap& /*vars*/)
      final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:281,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:281,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:283,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:286,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:287,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:287,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:288,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 291
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Decap_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - algo_name
    - auto::decrypt
    - get_req_bin
    - Test::Result::test_bin_eq
    - load_private_key
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& params, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan_Tests::foo
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string foo(Test_Size /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan_Tests::foo
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string foo(Test_Length /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:43,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:52,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:55,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:60,1
    - Dst: Test_Size::get
      Src: /src/botan/src/tests/test_strong_type.cpp:60,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:61,1
    - Dst: Test_Size::get
      Src: /src/botan/src/tests/test_strong_type.cpp:61,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:64,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:69,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:70,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:70,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:71,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:71,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:74,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: Botan_Tests::foo
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Botan_Tests::foo
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:80,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:82,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:83,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:84,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:85,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:86,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 91
    functionName: Botan_Tests::test_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_sz_eq
    - test_is_true
    - Test_Size::get
    - Test_Size
    - Test_Length
    - Botan_Tests::foo
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:95,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:98,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:101,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:103,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:105,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:109,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:109,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:112,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:122,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:123,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:124,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:125,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:127,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:129,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:131,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:133,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:136,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:137,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:139,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:144,1
    - Dst: size
      Src: /src/botan/src/tests/test_strong_type.cpp:146,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:148,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:148,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: get_size
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:153,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:162,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: std::ranges::sort
      Src: /src/botan/src/tests/test_strong_type.cpp:168,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:170,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:170,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:171,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:171,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:172,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:172,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:173,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:173,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:176,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:183,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:184,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:185,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:190,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:193,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:196,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:196,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Test_Fixed_Array::begin
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Test_Fixed_Array::end
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:200,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 216
    functionName: Botan_Tests::test_container_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - auto::data
    - Test_Fixed_Array::end
    - auto::get
    - test_is_true
    - Test_Length_List::get
    - std::stringstream::str
    - Botan::hex_decode
    - get_size
    - auto::size
    - std::move
    - std::vector
    - Fixed_Output_RNG::random_vec
    - Test_Fixed_Array::begin
    - test_bin_eq
    - test_u8_eq
    - Test_Nonce
    - auto::empty
    - Fixed_Output_RNG::add_entropy
    - std::ranges::sort
    - Botan_Tests::CHECK
    - test_sz_eq
    - size
    - Test_Length
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_container_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:223,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:228,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:229,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:230,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:231,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:232,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:233,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:236,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:237,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:238,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:240,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:241,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:243,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:246,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:250,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:251,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:252,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:253,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:255,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:256,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:257,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:258,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:269,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:271,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:272,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:273,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:275,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:276,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:279,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:286,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:287,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:288,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:289,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:290,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:291,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:292,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:293,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:294,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:296,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:297,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:299,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:300,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:301,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:302,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:304,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:312,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:313,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:314,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:315,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:317,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:318,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:319,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:322,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:323,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:324,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:325,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:326,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:328,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:329,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:332,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:333,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:334,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:336,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:337,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:338,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:339,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:340,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:349,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:354,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:355,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:358,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:360,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:364,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:365,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:368,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:369,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:370,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:371,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:372,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:373,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:374,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:375,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 379
    functionName: Botan_Tests::test_integer_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_integer_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<Test_Foo>& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<const Test_Foo>&
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<Test_Bar>& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:399,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:400,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:402,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:403,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:403,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:407,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:408,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:409,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:411,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 417
    functionName: Botan_Tests::test_strong_span
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_strong_helper
    - Botan::hex_decode
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_strong_span()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:426,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:430,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:431,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:432,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:432,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:433,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:435,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:435,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:436,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:436,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:437,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:437,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:438,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:438,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:442,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: std::string::string
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:448,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:448,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:449,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:449,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:452,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:457,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:461,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:461,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:462,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:462,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:463,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:463,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:465,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:467,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:467,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:469,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:469,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:478,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:479,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:486,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:487,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:489,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:491,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:495,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:495,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:496,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:498,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:500,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:502,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:504,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:504,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:505,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:508,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:513,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:518,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:519,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:521,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:523,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:527,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:528,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:530,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:532,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:536,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:536,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:537,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:539,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:541,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:543,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:545,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:545,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:548,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:550,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:555,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:561,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:562,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:563,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:563,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:564,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:564,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:566,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:567,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:568,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:569,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:574,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:577,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:577,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:579,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:580,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:581,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:584,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:590,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:591,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:592,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:592,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:593,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:593,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:595,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:596,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:597,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:598,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:603,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:606,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:606,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:608,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:609,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 613
    functionName: Botan_Tests::test_wrapping_unwrapping
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<std::string>
    - Botan_Tests::CHECK
    - std::string
    - std::move
    - auto::get
    - std::string::string
    - Botan::unwrap_strong_type
    - test_is_true
    - Botan::wrap_strong_type<Strong_Unique>
    - test_str_eq
    - Botan::wrap_strong_type<Strong_String>
    - Strong_String
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_wrapping_unwrapping()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan_Tests::foo
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string foo(Test_Size /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan_Tests::foo
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string foo(Test_Length /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:43,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:52,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:55,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:60,1
    - Dst: Test_Size::get
      Src: /src/botan/src/tests/test_strong_type.cpp:60,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:61,1
    - Dst: Test_Size::get
      Src: /src/botan/src/tests/test_strong_type.cpp:61,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:64,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:69,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:70,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:70,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:71,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:71,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:74,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: Botan_Tests::foo
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Botan_Tests::foo
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:80,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:82,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:83,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:84,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:85,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:86,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 91
    functionName: Botan_Tests::test_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_sz_eq
    - test_is_true
    - Test_Size::get
    - Test_Size
    - Test_Length
    - Botan_Tests::foo
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:95,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:98,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:101,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:103,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:105,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:109,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:109,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:112,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:122,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:123,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:124,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:125,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:127,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:129,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:131,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:133,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:136,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:137,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:139,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:144,1
    - Dst: size
      Src: /src/botan/src/tests/test_strong_type.cpp:146,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:148,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:148,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: get_size
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:153,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:162,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: std::ranges::sort
      Src: /src/botan/src/tests/test_strong_type.cpp:168,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:170,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:170,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:171,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:171,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:172,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:172,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:173,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:173,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:176,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:183,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:184,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:185,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:190,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:193,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:196,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:196,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Test_Fixed_Array::begin
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Test_Fixed_Array::end
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:200,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 216
    functionName: Botan_Tests::test_container_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - auto::data
    - Test_Fixed_Array::end
    - auto::get
    - test_is_true
    - Test_Length_List::get
    - std::stringstream::str
    - Botan::hex_decode
    - get_size
    - auto::size
    - std::move
    - std::vector
    - Fixed_Output_RNG::random_vec
    - Test_Fixed_Array::begin
    - test_bin_eq
    - test_u8_eq
    - Test_Nonce
    - auto::empty
    - Fixed_Output_RNG::add_entropy
    - std::ranges::sort
    - Botan_Tests::CHECK
    - test_sz_eq
    - size
    - Test_Length
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_container_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:223,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:228,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:229,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:230,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:231,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:232,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:233,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:236,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:237,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:238,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:240,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:241,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:243,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:246,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:250,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:251,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:252,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:253,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:255,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:256,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:257,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:258,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:269,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:271,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:272,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:273,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:275,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:276,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:279,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:286,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:287,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:288,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:289,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:290,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:291,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:292,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:293,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:294,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:296,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:297,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:299,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:300,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:301,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:302,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:304,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:312,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:313,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:314,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:315,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:317,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:318,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:319,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:322,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:323,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:324,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:325,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:326,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:328,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:329,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:332,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:333,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:334,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:336,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:337,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:338,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:339,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:340,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:349,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:354,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:355,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:358,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:360,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:364,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:365,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:368,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:369,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:370,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:371,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:372,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:373,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:374,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:375,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 379
    functionName: Botan_Tests::test_integer_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_integer_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<Test_Foo>& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<const Test_Foo>&
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<Test_Bar>& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:399,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:400,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:402,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:403,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:403,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:407,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:408,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:409,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:411,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 417
    functionName: Botan_Tests::test_strong_span
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_strong_helper
    - Botan::hex_decode
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_strong_span()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:426,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:430,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:431,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:432,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:432,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:433,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:435,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:435,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:436,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:436,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:437,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:437,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:438,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:438,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:442,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: std::string::string
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:448,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:448,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:449,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:449,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:452,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:457,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:461,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:461,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:462,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:462,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:463,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:463,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:465,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:467,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:467,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:469,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:469,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:478,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:479,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:486,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:487,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:489,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:491,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:495,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:495,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:496,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:498,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:500,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:502,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:504,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:504,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:505,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:508,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:513,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:518,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:519,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:521,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:523,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:527,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:528,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:530,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:532,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:536,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:536,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:537,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:539,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:541,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:543,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:545,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:545,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:548,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:550,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:555,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:561,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:562,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:563,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:563,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:564,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:564,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:566,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:567,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:568,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:569,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:574,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:577,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:577,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:579,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:580,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:581,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:584,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:590,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:591,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:592,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:592,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:593,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:593,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:595,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:596,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:597,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:598,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:603,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:606,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:606,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:608,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:609,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 613
    functionName: Botan_Tests::test_wrapping_unwrapping
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<std::string>
    - Botan_Tests::CHECK
    - std::string
    - std::move
    - auto::get
    - std::string::string
    - Botan::unwrap_strong_type
    - test_is_true
    - Botan::wrap_strong_type<Strong_Unique>
    - test_str_eq
    - Botan::wrap_strong_type<Strong_String>
    - Strong_String
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_wrapping_unwrapping()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan_Tests::foo
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string foo(Test_Size /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan_Tests::foo
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string foo(Test_Length /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:43,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:52,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:55,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:60,1
    - Dst: Test_Size::get
      Src: /src/botan/src/tests/test_strong_type.cpp:60,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:61,1
    - Dst: Test_Size::get
      Src: /src/botan/src/tests/test_strong_type.cpp:61,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:64,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:69,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:70,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:70,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:71,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:71,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:74,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: Botan_Tests::foo
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Botan_Tests::foo
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:80,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:82,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:83,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:84,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:85,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:86,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 91
    functionName: Botan_Tests::test_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_sz_eq
    - test_is_true
    - Test_Size::get
    - Test_Size
    - Test_Length
    - Botan_Tests::foo
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:95,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:98,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:101,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:103,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:105,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:109,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:109,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:112,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:122,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:123,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:124,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:125,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:127,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:129,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:131,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:133,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:136,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:137,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:139,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:144,1
    - Dst: size
      Src: /src/botan/src/tests/test_strong_type.cpp:146,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:148,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:148,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: get_size
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:153,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:162,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: std::ranges::sort
      Src: /src/botan/src/tests/test_strong_type.cpp:168,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:170,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:170,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:171,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:171,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:172,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:172,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:173,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:173,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:176,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:183,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:184,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:185,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:190,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:193,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:196,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:196,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Test_Fixed_Array::begin
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Test_Fixed_Array::end
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:200,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 216
    functionName: Botan_Tests::test_container_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - auto::data
    - Test_Fixed_Array::end
    - auto::get
    - test_is_true
    - Test_Length_List::get
    - std::stringstream::str
    - Botan::hex_decode
    - get_size
    - auto::size
    - std::move
    - std::vector
    - Fixed_Output_RNG::random_vec
    - Test_Fixed_Array::begin
    - test_bin_eq
    - test_u8_eq
    - Test_Nonce
    - auto::empty
    - Fixed_Output_RNG::add_entropy
    - std::ranges::sort
    - Botan_Tests::CHECK
    - test_sz_eq
    - size
    - Test_Length
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_container_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:223,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:228,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:229,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:230,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:231,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:232,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:233,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:236,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:237,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:238,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:240,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:241,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:243,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:246,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:250,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:251,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:252,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:253,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:255,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:256,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:257,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:258,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:269,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:271,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:272,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:273,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:275,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:276,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:279,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:286,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:287,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:288,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:289,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:290,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:291,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:292,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:293,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:294,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:296,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:297,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:299,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:300,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:301,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:302,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:304,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:312,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:313,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:314,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:315,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:317,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:318,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:319,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:322,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:323,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:324,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:325,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:326,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:328,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:329,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:332,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:333,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:334,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:336,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:337,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:338,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:339,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:340,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:349,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:354,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:355,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:358,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:360,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:364,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:365,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:368,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:369,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:370,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:371,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:372,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:373,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:374,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:375,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 379
    functionName: Botan_Tests::test_integer_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_integer_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<Test_Foo>& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<const Test_Foo>&
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<Test_Bar>& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:399,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:400,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:402,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:403,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:403,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:407,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:408,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:409,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:411,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 417
    functionName: Botan_Tests::test_strong_span
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_strong_helper
    - Botan::hex_decode
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_strong_span()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:426,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:430,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:431,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:432,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:432,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:433,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:435,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:435,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:436,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:436,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:437,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:437,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:438,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:438,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:442,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: std::string::string
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:448,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:448,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:449,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:449,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:452,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:457,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:461,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:461,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:462,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:462,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:463,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:463,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:465,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:467,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:467,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:469,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:469,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:478,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:479,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:486,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:487,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:489,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:491,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:495,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:495,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:496,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:498,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:500,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:502,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:504,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:504,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:505,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:508,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:513,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:518,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:519,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:521,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:523,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:527,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:528,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:530,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:532,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:536,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:536,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:537,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:539,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:541,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:543,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:545,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:545,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:548,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:550,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:555,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:561,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:562,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:563,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:563,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:564,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:564,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:566,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:567,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:568,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:569,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:574,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:577,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:577,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:579,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:580,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:581,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:584,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:590,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:591,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:592,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:592,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:593,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:593,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:595,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:596,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:597,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:598,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:603,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:606,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:606,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:608,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:609,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 613
    functionName: Botan_Tests::test_wrapping_unwrapping
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<std::string>
    - Botan_Tests::CHECK
    - std::string
    - std::move
    - auto::get
    - std::string::string
    - Botan::unwrap_strong_type
    - test_is_true
    - Botan::wrap_strong_type<Strong_Unique>
    - test_str_eq
    - Botan::wrap_strong_type<Strong_String>
    - Strong_String
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_wrapping_unwrapping()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan_Tests::foo
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string foo(Test_Size /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan_Tests::foo
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string foo(Test_Length /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:43,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:52,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:55,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:60,1
    - Dst: Test_Size::get
      Src: /src/botan/src/tests/test_strong_type.cpp:60,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:61,1
    - Dst: Test_Size::get
      Src: /src/botan/src/tests/test_strong_type.cpp:61,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:64,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:69,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:70,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:70,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:71,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:71,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:74,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: Botan_Tests::foo
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: Test_Size
      Src: /src/botan/src/tests/test_strong_type.cpp:76,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Botan_Tests::foo
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:80,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:82,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:83,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:84,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:85,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:86,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 91
    functionName: Botan_Tests::test_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_sz_eq
    - test_is_true
    - Test_Size::get
    - Test_Size
    - Test_Length
    - Botan_Tests::foo
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:95,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:98,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:101,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:103,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:105,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:109,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:109,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:112,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:122,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:123,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:124,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:125,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:127,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:129,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:131,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:133,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:136,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:137,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:139,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:144,1
    - Dst: size
      Src: /src/botan/src/tests/test_strong_type.cpp:146,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:148,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:148,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: get_size
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:150,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:153,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:162,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: std::ranges::sort
      Src: /src/botan/src/tests/test_strong_type.cpp:168,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:170,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:170,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:171,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:171,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:172,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:172,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:173,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:173,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:176,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:183,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:184,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:185,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:187,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:190,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:193,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:196,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:196,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Test_Fixed_Array::begin
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Test_Fixed_Array::end
      Src: /src/botan/src/tests/test_strong_type.cpp:197,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:200,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 216
    functionName: Botan_Tests::test_container_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - auto::data
    - Test_Fixed_Array::end
    - auto::get
    - test_is_true
    - Test_Length_List::get
    - std::stringstream::str
    - Botan::hex_decode
    - get_size
    - auto::size
    - std::move
    - std::vector
    - Fixed_Output_RNG::random_vec
    - Test_Fixed_Array::begin
    - test_bin_eq
    - test_u8_eq
    - Test_Nonce
    - auto::empty
    - Fixed_Output_RNG::add_entropy
    - std::ranges::sort
    - Botan_Tests::CHECK
    - test_sz_eq
    - size
    - Test_Length
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_container_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:223,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:228,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:229,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:230,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:231,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:232,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:233,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:236,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:237,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:238,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:240,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:241,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:243,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:246,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:250,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:251,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:252,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:253,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:255,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:256,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:257,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:258,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:269,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:271,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:272,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:273,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:275,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:276,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:279,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:286,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:287,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:288,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:289,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:290,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:291,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:292,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:293,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:294,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:296,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:297,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:299,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:300,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:301,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:302,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:304,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:312,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:313,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:314,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:315,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:317,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:318,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:319,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:322,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:323,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:324,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:325,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:326,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:328,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:329,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:332,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:333,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:334,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:335,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:336,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:337,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:338,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:339,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:340,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:349,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:354,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:355,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:358,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:360,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:364,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:365,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:368,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:369,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:370,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:371,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:372,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:373,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:374,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:375,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 379
    functionName: Botan_Tests::test_integer_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_integer_strong_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<Test_Foo>& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<const Test_Foo>&
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t test_strong_helper(const Botan::StrongSpan<Test_Bar>& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:399,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:400,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:402,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:403,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:403,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:407,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:408,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:409,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:411,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 417
    functionName: Botan_Tests::test_strong_span
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_strong_helper
    - Botan::hex_decode
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_strong_span()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:426,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:430,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:431,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:432,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:432,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:433,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:435,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:435,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:436,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:436,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:437,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:437,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:438,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:438,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:442,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: std::string::string
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:448,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:448,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:449,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:449,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:452,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:457,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:461,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:461,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:462,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:462,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:463,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:463,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:465,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:467,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:467,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:469,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:469,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:478,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:479,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:486,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:487,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:489,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:491,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:495,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:495,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:496,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:498,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:500,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:502,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:504,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:504,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:505,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:508,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:513,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:518,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:519,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:521,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:523,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:527,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:528,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:530,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:532,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:536,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:536,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:537,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:539,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:541,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:543,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:545,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:545,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:548,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_strong_type.cpp:550,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:555,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:561,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:562,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:563,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:563,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:564,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:564,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:566,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:567,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:568,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:569,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:574,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:577,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:577,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:579,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:580,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:581,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:584,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:590,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:591,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:592,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:592,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:593,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:593,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:595,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:596,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:597,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:598,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:603,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:606,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:606,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:608,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:609,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 613
    functionName: Botan_Tests::test_wrapping_unwrapping
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<std::string>
    - Botan_Tests::CHECK
    - std::string
    - std::move
    - auto::get
    - std::string::string
    - Botan::unwrap_strong_type
    - test_is_true
    - Botan::wrap_strong_type<Strong_Unique>
    - test_str_eq
    - Botan::wrap_strong_type<Strong_String>
    - Strong_String
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_wrapping_unwrapping()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::gcd
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T gcd(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::v
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T v(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan_Tests::u
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T u(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:51,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:51,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:52,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:52,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:53,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:53,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:55,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:55,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:56,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:56,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:57,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:57,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:59,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:59,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Test::Result::test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:63,1
    - Dst: Botan::modular_inverse<int16_t>
      Src: /src/botan/src/tests/test_crystals.cpp:63,1
    - Dst: Test::Result::test_i32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Botan::modular_inverse<int32_t>
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 67
    functionName: Botan_Tests::test_extended_euclidean_algorithm
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_u16_eq
    - Test::Result::test_i16_eq
    - Test::Result::test_i32_eq
    - Botan_Tests::v
    - Botan_Tests::gcd
    - Botan::modular_inverse<int16_t>
    - Botan::modular_inverse<int32_t>
    - Botan_Tests::u
    - Test::Result::test_u32_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_extended_euclidean_algorithm()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Mock_Trait::montgomery_reduce_coefficient
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: T
    signature: T montgomery_reduce_coefficient(T2 /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_Tests::Mock_Trait::barrett_reduce_coefficient
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: T
    signature: T barrett_reduce_coefficient(T /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_Tests::Mock_Trait::ntt
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void ntt(std::span<T, N> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Mock_Trait::inverse_ntt
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void inverse_ntt(std::span<T, N> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: "void poly_pointwise_montgomery(std::span<T, N> /*unused*/,\n                                            std::span<T,
      N> /*unused*/,\n                                            std::span<T, N>
      /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:129,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:132,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:132,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:134,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:138,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:138,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:144,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:147,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:147,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:150,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:150,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:154,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:154,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:157,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:157,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:161,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:169,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:169,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:176,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:176,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:185,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:185,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:190,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:192,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:192,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:196,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:199,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:199,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:202,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:202,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:205,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:205,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:208,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:208,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:211,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:211,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:214,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:214,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:217,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:217,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:220,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:220,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:223,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:223,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:226,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:229,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:229,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:232,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:232,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:235,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:235,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:238,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:241,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:241,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:244,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:244,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:247,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:247,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:250,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:253,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:253,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:258,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:258,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:261,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:264,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:264,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:267,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:270,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:275,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:275,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:278,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:278,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:281,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 284
    functionName: Botan_Tests::test_polynomial_basics
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - clone
    - Botan_Tests::CHECK
    - Kyberish_PolyVec::hamming_weight
    - owns_storage
    - require
    - test_sz_eq
    - test_is_true
    - Kyberish_PolyVec::clone
    - Kyberish_Poly::hamming_weight
    - Kyberish_PolyVec::size
    - Kyberish_Poly::ct_validate_value_range
    - Kyberish_PolyVec::ct_validate_value_range
    - Kyberish_Poly::clone
    - auto::owns_storage
    - test_i16_eq
    - Kyberish_Poly::owns_storage
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_polynomial_basics()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::DeterministicXOF::DeterministicXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeterministicXOF(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::DeterministicXOF::name
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: Botan_Tests::DeterministicXOF::accepts_input
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::DeterministicXOF::copy_state
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> copy_state() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_Tests::DeterministicXOF::new_object
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: Botan_Tests::DeterministicXOF::block_size
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Botan_Tests::DeterministicXOF::start_msg
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void start_msg(std::span<const uint8_t> /*unused*/, std::span<const
      uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan_Tests::DeterministicXOF::add_data
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/tests/test_crystals.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: Botan_Tests::DeterministicXOF::generate_bytes
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: void
    signature: void generate_bytes(std::span<uint8_t> output) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: Botan_Tests::DeterministicXOF::reset
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_crystals.cpp:331,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:337,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ' res'
    - ' rng'
    - expected_encoding_bits
    argTypes:
    - Test::Result
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 350
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferStuffer::full
    - Botan::CRYSTALS::pack<range>
    - auto::size
    - test_sz_eq
    - test_is_true
    - static_cast<T>
    - random_poly
    - Botan::load_be
    - Poly::hamming_weight
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::unpack<range>
    linkageType: ''
    returnType: void
    signature: void random_encoding_roundtrips(Test::Result& res, Botan::RandomNumberGenerator&
      rng, size_t expected_encoding_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::DeterministicXOF::DeterministicXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeterministicXOF(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::DeterministicXOF::name
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: Botan_Tests::DeterministicXOF::accepts_input
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::DeterministicXOF::copy_state
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> copy_state() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_Tests::DeterministicXOF::new_object
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: Botan_Tests::DeterministicXOF::block_size
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Botan_Tests::DeterministicXOF::start_msg
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void start_msg(std::span<const uint8_t> /*unused*/, std::span<const
      uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan_Tests::DeterministicXOF::add_data
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/tests/test_crystals.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: Botan_Tests::DeterministicXOF::generate_bytes
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: void
    signature: void generate_bytes(std::span<uint8_t> output) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: Botan_Tests::DeterministicXOF::reset
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_crystals.cpp:331,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:337,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ' res'
    - ' rng'
    - expected_encoding_bits
    argTypes:
    - Test::Result
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 350
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferStuffer::full
    - Botan::CRYSTALS::pack<range>
    - auto::size
    - test_sz_eq
    - test_is_true
    - static_cast<T>
    - random_poly
    - Botan::load_be
    - Poly::hamming_weight
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::unpack<range>
    linkageType: ''
    returnType: void
    signature: void random_encoding_roundtrips(Test::Result& res, Botan::RandomNumberGenerator&
      rng, size_t expected_encoding_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:355,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:360,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:370,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:382,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:386,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:387,1
    - Dst: Botan::CRYSTALS::pack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:392,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:393,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:397,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:398,1
    - Dst: Botan::CRYSTALS::pack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:403,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:404,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:407,1
    - Dst: Botan::CRYSTALS::pack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:409,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:410,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:413,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:417,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:420,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:425,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:428,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:436,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:440,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:445,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:446,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:447,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:452,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:453,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:454,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:459,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:460,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:461,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_crystals.cpp:464,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:468,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:470,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:471,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:472,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:473,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:474,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:475,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:476,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:477,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:478,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:481,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:483,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:484,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:485,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:486,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:487,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:488,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:489,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:492,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:496,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:505,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:506,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:507,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:508,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:509,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:510,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:511,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:512,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 515
    functionName: Botan_Tests::test_encoding
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_encoding_roundtrips
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - Kyberish_Poly::size
    - Botan::CRYSTALS::unpack<512>
    - BOTAN_UNUSED
    - test_sz_eq
    - test_is_true
    - Botan::CRYSTALS::unpack<6>
    - Botan::CRYSTALS::pack<512>
    - test_bin_eq
    - Botan::CRYSTALS::pack<6>
    - Botan::CRYSTALS::pack<255>
    - Botan::CRYSTALS::unpack<255>
    - static_cast<Kyberish_Constants::T>
    - Botan::BufferSlicer::empty
    - test_i16_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 519
    functionName: Botan_Tests::MockedXOF::MockedXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockedXOF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_crystals.cpp:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 528
    functionName: Botan_Tests::MockedXOF::output
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: auto
    signature: auto output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:539,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:542,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:542,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:545,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:548,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:548,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:549,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:549,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:550,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:550,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:551,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:554,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:562,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:562,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:563,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:563,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:564,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:567,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:569,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:572,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:573,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:574,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:575,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:576,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:579,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:585,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:586,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:587,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:588,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:589,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 593
    functionName: Botan_Tests::test_bounded_xof
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan_Tests::CHECK
    - Mocked_Bounded_XOF::next_byte
    - test_throws
    - Botan::load_be
    - test_u8_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bounded_xof()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::gcd
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 1
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T gcd(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::v
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 1
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T v(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan_Tests::u
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 1
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T u(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:51,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:51,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:52,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:52,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:53,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:53,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:55,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:55,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:56,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:56,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:57,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:57,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:59,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:59,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Test::Result::test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:63,1
    - Dst: Botan::modular_inverse<int16_t>
      Src: /src/botan/src/tests/test_crystals.cpp:63,1
    - Dst: Test::Result::test_i32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Botan::modular_inverse<int32_t>
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 67
    functionName: Botan_Tests::test_extended_euclidean_algorithm
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_u16_eq
    - Test::Result::test_i16_eq
    - Test::Result::test_i32_eq
    - Botan_Tests::v
    - Botan_Tests::gcd
    - Botan::modular_inverse<int16_t>
    - Botan::modular_inverse<int32_t>
    - Botan_Tests::u
    - Test::Result::test_u32_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_extended_euclidean_algorithm()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Mock_Trait::montgomery_reduce_coefficient
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: T
    signature: T montgomery_reduce_coefficient(T2 /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_Tests::Mock_Trait::barrett_reduce_coefficient
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: T
    signature: T barrett_reduce_coefficient(T /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_Tests::Mock_Trait::ntt
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void ntt(std::span<T, N> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Mock_Trait::inverse_ntt
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void inverse_ntt(std::span<T, N> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: "void poly_pointwise_montgomery(std::span<T, N> /*unused*/,\n                                            std::span<T,
      N> /*unused*/,\n                                            std::span<T, N>
      /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:129,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:132,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:132,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:134,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:138,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:138,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:144,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:147,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:147,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:150,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:150,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:154,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:154,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:157,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:157,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:161,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:169,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:169,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:176,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:176,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:185,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:185,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:190,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:192,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:192,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:196,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:199,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:199,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:202,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:202,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:205,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:205,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:208,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:208,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:211,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:211,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:214,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:214,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:217,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:217,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:220,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:220,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:223,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:223,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:226,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:229,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:229,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:232,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:232,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:235,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:235,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:238,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:241,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:241,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:244,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:244,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:247,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:247,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:250,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:253,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:253,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:258,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:258,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:261,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:264,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:264,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:267,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:270,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:275,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:275,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:278,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:278,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:281,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 284
    functionName: Botan_Tests::test_polynomial_basics
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - clone
    - Botan_Tests::CHECK
    - Kyberish_PolyVec::hamming_weight
    - owns_storage
    - require
    - test_sz_eq
    - test_is_true
    - Kyberish_PolyVec::clone
    - Kyberish_Poly::hamming_weight
    - Kyberish_PolyVec::size
    - Kyberish_Poly::ct_validate_value_range
    - Kyberish_PolyVec::ct_validate_value_range
    - Kyberish_Poly::clone
    - auto::owns_storage
    - test_i16_eq
    - Kyberish_Poly::owns_storage
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_polynomial_basics()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::DeterministicXOF::DeterministicXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeterministicXOF(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::DeterministicXOF::name
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: Botan_Tests::DeterministicXOF::accepts_input
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::DeterministicXOF::copy_state
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> copy_state() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_Tests::DeterministicXOF::new_object
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: Botan_Tests::DeterministicXOF::block_size
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Botan_Tests::DeterministicXOF::start_msg
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void start_msg(std::span<const uint8_t> /*unused*/, std::span<const
      uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan_Tests::DeterministicXOF::add_data
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/tests/test_crystals.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: Botan_Tests::DeterministicXOF::generate_bytes
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: void
    signature: void generate_bytes(std::span<uint8_t> output) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: Botan_Tests::DeterministicXOF::reset
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_crystals.cpp:331,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:337,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ' res'
    - ' rng'
    - expected_encoding_bits
    argTypes:
    - Test::Result
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 350
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 1
    functionsReached:
    - Botan::BufferStuffer::full
    - Botan::CRYSTALS::pack<range>
    - auto::size
    - test_sz_eq
    - test_is_true
    - static_cast<T>
    - random_poly
    - Botan::load_be
    - Poly::hamming_weight
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::unpack<range>
    linkageType: ''
    returnType: void
    signature: void random_encoding_roundtrips(Test::Result& res, Botan::RandomNumberGenerator&
      rng, size_t expected_encoding_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::DeterministicXOF::DeterministicXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeterministicXOF(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::DeterministicXOF::name
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: Botan_Tests::DeterministicXOF::accepts_input
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::DeterministicXOF::copy_state
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> copy_state() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_Tests::DeterministicXOF::new_object
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: Botan_Tests::DeterministicXOF::block_size
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Botan_Tests::DeterministicXOF::start_msg
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void start_msg(std::span<const uint8_t> /*unused*/, std::span<const
      uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan_Tests::DeterministicXOF::add_data
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/tests/test_crystals.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: Botan_Tests::DeterministicXOF::generate_bytes
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: void
    signature: void generate_bytes(std::span<uint8_t> output) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: Botan_Tests::DeterministicXOF::reset
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_crystals.cpp:331,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:337,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ' res'
    - ' rng'
    - expected_encoding_bits
    argTypes:
    - Test::Result
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 350
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 1
    functionsReached:
    - Botan::BufferStuffer::full
    - Botan::CRYSTALS::pack<range>
    - auto::size
    - test_sz_eq
    - test_is_true
    - static_cast<T>
    - random_poly
    - Botan::load_be
    - Poly::hamming_weight
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::unpack<range>
    linkageType: ''
    returnType: void
    signature: void random_encoding_roundtrips(Test::Result& res, Botan::RandomNumberGenerator&
      rng, size_t expected_encoding_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:355,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:360,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:370,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:382,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:386,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:387,1
    - Dst: Botan::CRYSTALS::pack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:392,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:393,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:397,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:398,1
    - Dst: Botan::CRYSTALS::pack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:403,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:404,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:407,1
    - Dst: Botan::CRYSTALS::pack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:409,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:410,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:413,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:417,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:420,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:425,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:428,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:436,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:440,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:445,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:446,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:447,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:452,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:453,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:454,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:459,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:460,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:461,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_crystals.cpp:464,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:468,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:470,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:471,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:472,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:473,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:474,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:475,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:476,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:477,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:478,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:481,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:483,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:484,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:485,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:486,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:487,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:488,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:489,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:492,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:496,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:505,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:506,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:507,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:508,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:509,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:510,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:511,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:512,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 515
    functionName: Botan_Tests::test_encoding
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_encoding_roundtrips
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - Kyberish_Poly::size
    - Botan::CRYSTALS::unpack<512>
    - BOTAN_UNUSED
    - test_sz_eq
    - test_is_true
    - Botan::CRYSTALS::unpack<6>
    - Botan::CRYSTALS::pack<512>
    - test_bin_eq
    - Botan::CRYSTALS::pack<6>
    - Botan::CRYSTALS::pack<255>
    - Botan::CRYSTALS::unpack<255>
    - static_cast<Kyberish_Constants::T>
    - Botan::BufferSlicer::empty
    - test_i16_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 519
    functionName: Botan_Tests::MockedXOF::MockedXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockedXOF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_crystals.cpp:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 528
    functionName: Botan_Tests::MockedXOF::output
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: auto
    signature: auto output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:539,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:542,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:542,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:545,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:548,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:548,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:549,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:549,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:550,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:550,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:551,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:554,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:562,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:562,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:563,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:563,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:564,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:567,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:569,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:572,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:573,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:574,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:575,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:576,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:579,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:585,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:586,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:587,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:588,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:589,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 593
    functionName: Botan_Tests::test_bounded_xof
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan_Tests::CHECK
    - Mocked_Bounded_XOF::next_byte
    - test_throws
    - Botan::load_be
    - test_u8_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bounded_xof()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::gcd
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 2
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T gcd(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::v
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 2
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T v(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan_Tests::u
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 2
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T u(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:51,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:51,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:52,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:52,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:53,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:53,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:55,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:55,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:56,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:56,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:57,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:57,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:59,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:59,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Test::Result::test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:63,1
    - Dst: Botan::modular_inverse<int16_t>
      Src: /src/botan/src/tests/test_crystals.cpp:63,1
    - Dst: Test::Result::test_i32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Botan::modular_inverse<int32_t>
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 67
    functionName: Botan_Tests::test_extended_euclidean_algorithm
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_u16_eq
    - Test::Result::test_i16_eq
    - Test::Result::test_i32_eq
    - Botan_Tests::v
    - Botan_Tests::gcd
    - Botan::modular_inverse<int16_t>
    - Botan::modular_inverse<int32_t>
    - Botan_Tests::u
    - Test::Result::test_u32_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_extended_euclidean_algorithm()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Mock_Trait::montgomery_reduce_coefficient
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: T
    signature: T montgomery_reduce_coefficient(T2 /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_Tests::Mock_Trait::barrett_reduce_coefficient
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: T
    signature: T barrett_reduce_coefficient(T /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_Tests::Mock_Trait::ntt
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void ntt(std::span<T, N> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Mock_Trait::inverse_ntt
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void inverse_ntt(std::span<T, N> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: "void poly_pointwise_montgomery(std::span<T, N> /*unused*/,\n                                            std::span<T,
      N> /*unused*/,\n                                            std::span<T, N>
      /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:129,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:132,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:132,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:134,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:138,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:138,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:144,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:147,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:147,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:150,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:150,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:154,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:154,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:157,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:157,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:161,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:169,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:169,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:176,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:176,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:185,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:185,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:190,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:192,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:192,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:196,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:199,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:199,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:202,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:202,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:205,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:205,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:208,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:208,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:211,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:211,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:214,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:214,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:217,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:217,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:220,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:220,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:223,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:223,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:226,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:229,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:229,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:232,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:232,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:235,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:235,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:238,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:241,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:241,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:244,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:244,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:247,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:247,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:250,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:253,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:253,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:258,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:258,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:261,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:264,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:264,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:267,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:270,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:275,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:275,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:278,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:278,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:281,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 284
    functionName: Botan_Tests::test_polynomial_basics
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - clone
    - Botan_Tests::CHECK
    - Kyberish_PolyVec::hamming_weight
    - owns_storage
    - require
    - test_sz_eq
    - test_is_true
    - Kyberish_PolyVec::clone
    - Kyberish_Poly::hamming_weight
    - Kyberish_PolyVec::size
    - Kyberish_Poly::ct_validate_value_range
    - Kyberish_PolyVec::ct_validate_value_range
    - Kyberish_Poly::clone
    - auto::owns_storage
    - test_i16_eq
    - Kyberish_Poly::owns_storage
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_polynomial_basics()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::DeterministicXOF::DeterministicXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeterministicXOF(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::DeterministicXOF::name
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: Botan_Tests::DeterministicXOF::accepts_input
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::DeterministicXOF::copy_state
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> copy_state() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_Tests::DeterministicXOF::new_object
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: Botan_Tests::DeterministicXOF::block_size
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Botan_Tests::DeterministicXOF::start_msg
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void start_msg(std::span<const uint8_t> /*unused*/, std::span<const
      uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan_Tests::DeterministicXOF::add_data
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/tests/test_crystals.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: Botan_Tests::DeterministicXOF::generate_bytes
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: void
    signature: void generate_bytes(std::span<uint8_t> output) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: Botan_Tests::DeterministicXOF::reset
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_crystals.cpp:331,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:337,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ' res'
    - ' rng'
    - expected_encoding_bits
    argTypes:
    - Test::Result
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 350
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 2
    functionsReached:
    - Botan::BufferStuffer::full
    - Botan::CRYSTALS::pack<range>
    - auto::size
    - test_sz_eq
    - test_is_true
    - static_cast<T>
    - random_poly
    - Botan::load_be
    - Poly::hamming_weight
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::unpack<range>
    linkageType: ''
    returnType: void
    signature: void random_encoding_roundtrips(Test::Result& res, Botan::RandomNumberGenerator&
      rng, size_t expected_encoding_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::DeterministicXOF::DeterministicXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeterministicXOF(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::DeterministicXOF::name
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: Botan_Tests::DeterministicXOF::accepts_input
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::DeterministicXOF::copy_state
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> copy_state() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_Tests::DeterministicXOF::new_object
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: Botan_Tests::DeterministicXOF::block_size
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Botan_Tests::DeterministicXOF::start_msg
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void start_msg(std::span<const uint8_t> /*unused*/, std::span<const
      uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan_Tests::DeterministicXOF::add_data
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/tests/test_crystals.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: Botan_Tests::DeterministicXOF::generate_bytes
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: void
    signature: void generate_bytes(std::span<uint8_t> output) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: Botan_Tests::DeterministicXOF::reset
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_crystals.cpp:331,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:337,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ' res'
    - ' rng'
    - expected_encoding_bits
    argTypes:
    - Test::Result
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 350
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 2
    functionsReached:
    - Botan::BufferStuffer::full
    - Botan::CRYSTALS::pack<range>
    - auto::size
    - test_sz_eq
    - test_is_true
    - static_cast<T>
    - random_poly
    - Botan::load_be
    - Poly::hamming_weight
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::unpack<range>
    linkageType: ''
    returnType: void
    signature: void random_encoding_roundtrips(Test::Result& res, Botan::RandomNumberGenerator&
      rng, size_t expected_encoding_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:355,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:360,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:370,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:382,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:386,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:387,1
    - Dst: Botan::CRYSTALS::pack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:392,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:393,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:397,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:398,1
    - Dst: Botan::CRYSTALS::pack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:403,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:404,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:407,1
    - Dst: Botan::CRYSTALS::pack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:409,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:410,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:413,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:417,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:420,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:425,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:428,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:436,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:440,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:445,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:446,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:447,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:452,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:453,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:454,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:459,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:460,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:461,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_crystals.cpp:464,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:468,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:470,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:471,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:472,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:473,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:474,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:475,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:476,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:477,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:478,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:481,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:483,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:484,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:485,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:486,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:487,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:488,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:489,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:492,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:496,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:505,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:506,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:507,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:508,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:509,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:510,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:511,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:512,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 515
    functionName: Botan_Tests::test_encoding
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_encoding_roundtrips
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - Kyberish_Poly::size
    - Botan::CRYSTALS::unpack<512>
    - BOTAN_UNUSED
    - test_sz_eq
    - test_is_true
    - Botan::CRYSTALS::unpack<6>
    - Botan::CRYSTALS::pack<512>
    - test_bin_eq
    - Botan::CRYSTALS::pack<6>
    - Botan::CRYSTALS::pack<255>
    - Botan::CRYSTALS::unpack<255>
    - static_cast<Kyberish_Constants::T>
    - Botan::BufferSlicer::empty
    - test_i16_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 519
    functionName: Botan_Tests::MockedXOF::MockedXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockedXOF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_crystals.cpp:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 528
    functionName: Botan_Tests::MockedXOF::output
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: auto
    signature: auto output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:539,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:542,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:542,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:545,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:548,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:548,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:549,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:549,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:550,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:550,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:551,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:554,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:562,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:562,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:563,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:563,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:564,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:567,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:569,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:572,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:573,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:574,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:575,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:576,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:579,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:585,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:586,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:587,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:588,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:589,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 593
    functionName: Botan_Tests::test_bounded_xof
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan_Tests::CHECK
    - Mocked_Bounded_XOF::next_byte
    - test_throws
    - Botan::load_be
    - test_u8_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bounded_xof()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::gcd
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 3
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T gcd(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::v
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 3
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T v(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::extended_euclidean_algorithm<T>
      Src: /src/botan/src/tests/test_crystals.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan_Tests::u
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 3
    functionsReached:
    - Botan::extended_euclidean_algorithm<T>
    linkageType: ''
    returnType: T
    signature: T u(T x, T y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:51,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:51,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:52,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:52,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:53,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:53,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:55,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:55,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:56,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:56,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:57,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:57,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:59,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:59,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Test::Result::test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:63,1
    - Dst: Botan::modular_inverse<int16_t>
      Src: /src/botan/src/tests/test_crystals.cpp:63,1
    - Dst: Test::Result::test_i32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Botan::modular_inverse<int32_t>
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 67
    functionName: Botan_Tests::test_extended_euclidean_algorithm
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_u16_eq
    - Test::Result::test_i16_eq
    - Test::Result::test_i32_eq
    - Botan_Tests::v
    - Botan_Tests::gcd
    - Botan::modular_inverse<int16_t>
    - Botan::modular_inverse<int32_t>
    - Botan_Tests::u
    - Test::Result::test_u32_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_extended_euclidean_algorithm()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Mock_Trait::montgomery_reduce_coefficient
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: T
    signature: T montgomery_reduce_coefficient(T2 /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_Tests::Mock_Trait::barrett_reduce_coefficient
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: T
    signature: T barrett_reduce_coefficient(T /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_Tests::Mock_Trait::ntt
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void ntt(std::span<T, N> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Mock_Trait::inverse_ntt
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void inverse_ntt(std::span<T, N> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: "void poly_pointwise_montgomery(std::span<T, N> /*unused*/,\n                                            std::span<T,
      N> /*unused*/,\n                                            std::span<T, N>
      /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:129,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:132,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:132,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:134,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:138,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:138,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:140,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:144,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:147,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:147,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:150,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:150,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:154,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:154,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:157,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:157,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:161,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:169,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:169,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:176,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:176,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:185,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:185,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:190,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:192,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:192,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:196,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:199,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:199,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:202,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:202,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:205,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:205,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:208,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:208,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:211,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:211,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:214,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:214,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:217,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:217,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:220,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:220,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:223,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:223,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:226,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:229,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:229,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:232,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:232,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:235,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:235,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:238,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:241,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:241,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:244,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:244,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:247,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:247,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:250,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:253,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:253,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:258,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:258,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:261,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:264,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:264,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:267,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:270,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:275,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:275,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:278,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:278,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:281,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 284
    functionName: Botan_Tests::test_polynomial_basics
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - clone
    - Botan_Tests::CHECK
    - Kyberish_PolyVec::hamming_weight
    - owns_storage
    - require
    - test_sz_eq
    - test_is_true
    - Kyberish_PolyVec::clone
    - Kyberish_Poly::hamming_weight
    - Kyberish_PolyVec::size
    - Kyberish_Poly::ct_validate_value_range
    - Kyberish_PolyVec::ct_validate_value_range
    - Kyberish_Poly::clone
    - auto::owns_storage
    - test_i16_eq
    - Kyberish_Poly::owns_storage
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_polynomial_basics()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::DeterministicXOF::DeterministicXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeterministicXOF(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::DeterministicXOF::name
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: Botan_Tests::DeterministicXOF::accepts_input
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::DeterministicXOF::copy_state
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> copy_state() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_Tests::DeterministicXOF::new_object
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: Botan_Tests::DeterministicXOF::block_size
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Botan_Tests::DeterministicXOF::start_msg
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void start_msg(std::span<const uint8_t> /*unused*/, std::span<const
      uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan_Tests::DeterministicXOF::add_data
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/tests/test_crystals.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: Botan_Tests::DeterministicXOF::generate_bytes
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: void
    signature: void generate_bytes(std::span<uint8_t> output) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: Botan_Tests::DeterministicXOF::reset
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_crystals.cpp:331,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:337,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ' res'
    - ' rng'
    - expected_encoding_bits
    argTypes:
    - Test::Result
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 350
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 3
    functionsReached:
    - Botan::BufferStuffer::full
    - Botan::CRYSTALS::pack<range>
    - auto::size
    - test_sz_eq
    - test_is_true
    - static_cast<T>
    - random_poly
    - Botan::load_be
    - Poly::hamming_weight
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::unpack<range>
    linkageType: ''
    returnType: void
    signature: void random_encoding_roundtrips(Test::Result& res, Botan::RandomNumberGenerator&
      rng, size_t expected_encoding_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_Tests::DeterministicXOF::DeterministicXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeterministicXOF(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_Tests::DeterministicXOF::name
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: Botan_Tests::DeterministicXOF::accepts_input
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::DeterministicXOF::copy_state
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> copy_state() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_Tests::DeterministicXOF::new_object
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: Botan_Tests::DeterministicXOF::block_size
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Botan_Tests::DeterministicXOF::start_msg
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void start_msg(std::span<const uint8_t> /*unused*/, std::span<const
      uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_crystals.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan_Tests::DeterministicXOF::add_data
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_Error::Test_Error
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/tests/test_crystals.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: Botan_Tests::DeterministicXOF::generate_bytes
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: void
    signature: void generate_bytes(std::span<uint8_t> output) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: Botan_Tests::DeterministicXOF::reset
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/tests/test_crystals.cpp:331,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:332,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:337,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ' res'
    - ' rng'
    - expected_encoding_bits
    argTypes:
    - Test::Result
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 350
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 3
    functionsReached:
    - Botan::BufferStuffer::full
    - Botan::CRYSTALS::pack<range>
    - auto::size
    - test_sz_eq
    - test_is_true
    - static_cast<T>
    - random_poly
    - Botan::load_be
    - Poly::hamming_weight
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::unpack<range>
    linkageType: ''
    returnType: void
    signature: void random_encoding_roundtrips(Test::Result& res, Botan::RandomNumberGenerator&
      rng, size_t expected_encoding_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:355,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:360,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:370,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:382,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:386,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:387,1
    - Dst: Botan::CRYSTALS::pack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:392,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:393,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:397,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:398,1
    - Dst: Botan::CRYSTALS::pack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:403,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:404,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:407,1
    - Dst: Botan::CRYSTALS::pack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:409,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_crystals.cpp:410,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:413,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:417,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:420,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:425,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:428,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:436,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:440,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:445,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:446,1
    - Dst: test_i16_eq
      Src: /src/botan/src/tests/test_crystals.cpp:447,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:452,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:453,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:454,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:459,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:460,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_crystals.cpp:461,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_crystals.cpp:464,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:468,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:470,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:471,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:472,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:473,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:474,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:475,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:476,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:477,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:478,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:481,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:483,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:484,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:485,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:486,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:487,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:488,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:489,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:492,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:496,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:505,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:506,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:507,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:508,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:509,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:510,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:511,1
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:512,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 515
    functionName: Botan_Tests::test_encoding
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_encoding_roundtrips
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - Kyberish_Poly::size
    - Botan::CRYSTALS::unpack<512>
    - BOTAN_UNUSED
    - test_sz_eq
    - test_is_true
    - Botan::CRYSTALS::unpack<6>
    - Botan::CRYSTALS::pack<512>
    - test_bin_eq
    - Botan::CRYSTALS::pack<6>
    - Botan::CRYSTALS::pack<255>
    - Botan::CRYSTALS::unpack<255>
    - static_cast<Kyberish_Constants::T>
    - Botan::BufferSlicer::empty
    - test_i16_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 519
    functionName: Botan_Tests::MockedXOF::MockedXOF
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MockedXOF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_crystals.cpp:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 528
    functionName: Botan_Tests::MockedXOF::output
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: auto
    signature: auto output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:539,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:542,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:542,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:545,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:548,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:548,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:549,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:549,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:550,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:550,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:551,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:554,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:562,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:562,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_crystals.cpp:563,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:563,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:564,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:567,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:569,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:572,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:573,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:574,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:575,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:576,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:579,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:585,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:586,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:587,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:588,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_crystals.cpp:589,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 593
    functionName: Botan_Tests::test_bounded_xof
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan_Tests::CHECK
    - Mocked_Bounded_XOF::next_byte
    - test_throws
    - Botan::load_be
    - test_u8_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bounded_xof()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: server_cert
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string server_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: server_key
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string server_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg_type
    - alert
    argTypes:
    - Botan::TLS::Handshake_Type
    - Botan::TLS::AlertType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: PeerCallbacks::fail_on_handshake_message
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fail_on_handshake_message(const Botan::TLS::Handshake_Type msg_type,
      Botan::TLS::AlertType alert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:78,1
    - Dst: type
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:78,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:79,1
    - Dst: type
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: PeerCallbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - type
    - contains
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Botan::TLS::Handshake_Message&
      msg) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::AutoSeeded_RNG>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:92,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:93,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:94,1
    - Dst: std::make_shared<PeerCallbacks>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:95,1
    - Dst: std::enable_shared_from_this<Context>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' policy'
    - ' ioc'
    - credentials_manager
    argTypes:
    - std::shared_ptr<const Botan::TLS::Policy>
    - net::io_context
    - std::shared_ptr<Basic_Credentials_Manager>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: Peer::Peer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::enable_shared_from_this<Context>
    - std::move
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<PeerCallbacks>
    - std::make_shared<Botan::AutoSeeded_RNG>
    linkageType: ''
    returnType: void
    signature: "void Peer(const std::shared_ptr<const Botan::TLS::Policy>& policy,\n
      \          net::io_context& ioc,\n           std::shared_ptr<Basic_Credentials_Manager>
      credentials_manager)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' policy'
    - ' ioc'
    argTypes:
    - std::shared_ptr<const Botan::TLS::Policy>
    - net::io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Peer::Peer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Basic_Credentials_Manager>
    linkageType: ''
    returnType: void
    signature: void Peer(const std::shared_ptr<const Botan::TLS::Policy>& policy,
      net::io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' policy'
    - ' ioc'
    - ' server_cert'
    - ' server_key'
    argTypes:
    - std::shared_ptr<const Botan::TLS::Policy>
    - net::io_context
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Peer::Peer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Basic_Credentials_Manager>
    linkageType: ''
    returnType: void
    signature: "void Peer(const std::shared_ptr<const Botan::TLS::Policy>& policy,\n
      \          net::io_context& ioc,\n           const std::string& server_cert,\n
      \          const std::string& server_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Peer::Peer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Peer(const Peer& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Peer::Peer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Peer(Peer&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: '& operator=(const Peer& other)'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Peer
    signature: Peer & operator=(const Peer& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: '& operator=(Peer&& other)'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Peer
    signature: Peer & operator=(Peer&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: ~Peer()
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - cancel_timeout
    linkageType: ''
    returnType: void
    signature: void ~Peer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Peer::buffer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - Peer::buffer
    linkageType: ''
    returnType: net::mutable_buffer
    signature: net::mutable_buffer buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Peer::buffer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - Peer::buffer
    linkageType: ''
    returnType: net::mutable_buffer
    signature: net::mutable_buffer buffer(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Peer::message
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string message() const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: Peer::received_zero_byte
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t received_zero_byte(const boost::system::error_code& error,
      std::size_t bytes_transferred)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(const std::string&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Peer::on_timeout
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void on_timeout(std::function<void(const std::string&)> cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: expires_after
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:140,1
    - Dst: async_wait
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:141,1
    - Dst: m_on_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:145,1
    - Dst: lowest_layer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:152,1
    - Dst: Timeout_Exception
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 158
    functionName: Peer::reset_timeout
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Timeout_Exception
    - async_wait
    - m_on_timeout
    - lowest_layer
    - expires_after
    linkageType: ''
    returnType: void
    signature: void reset_timeout(const std::string& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: Peer::cancel_timeout
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void cancel_timeout()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: '& stream()'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssl_stream
    signature: ssl_stream & stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:165,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stream
    argTypes:
    - std::unique_ptr<ssl_stream>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: Peer::create_stream
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - std::move
    linkageType: ''
    returnType: void
    signature: void create_stream(std::unique_ptr<ssl_stream> stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: Peer::ctx
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Botan::TLS::Context>
    signature: std::shared_ptr<Botan::TLS::Context> ctx()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Peer::callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<PeerCallbacks>
    signature: std::shared_ptr<PeerCallbacks> callbacks()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: Result_Wrapper::Result_Wrapper
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Result_Wrapper(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: '& result()'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result & result()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - ' ec'
    argTypes:
    - std::string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: Result_Wrapper::expect_success
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Result_Wrapper::expect_ec
    linkageType: ''
    returnType: void
    signature: void expect_success(std::string_view msg, const error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:200,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:200,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:200,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - msg
    - ' expected'
    - ' ec'
    argTypes:
    - std::string_view
    - error_code
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: Result_Wrapper::expect_ec
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - message
    - Result_Wrapper::test_failure
    - test_success
    linkageType: ''
    returnType: void
    signature: void expect_ec(std::string_view msg, const error_code& expected, const
      error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::test_is_true
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - condition
    argTypes:
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: Result_Wrapper::test_is_true
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - Result_Wrapper::test_is_true
    linkageType: ''
    returnType: void
    signature: void test_is_true(std::string_view msg, bool condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::test_str_eq
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Result_Wrapper::test_str_eq
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - Result_Wrapper::test_str_eq
    linkageType: ''
    returnType: void
    signature: void test_str_eq(std::string_view what, std::string_view produced,
      std::string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Result_Wrapper::test_failure
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - Result_Wrapper::test_failure
    linkageType: ''
    returnType: void
    signature: void test_failure(std::string_view msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_cert
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:237,1
    - Dst: server_key
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:237,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' policy'
    - ' ioc'
    - ' test_name'
    argTypes:
    - std::shared_ptr<const Botan::TLS::Policy>
    - net::io_context
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 243
    functionName: Server::Server
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - server_cert
    - reset_timeout
    - server_key
    linkageType: ''
    returnType: void
    signature: "void Server(const std::shared_ptr<const Botan::TLS::Policy>& policy,\n
      \            net::io_context& ioc,\n             const std::string& test_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:247,1
    - Dst: open
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:250,1
    - Dst: protocol
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:250,1
    - Dst: set_option
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:253,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:253,1
    - Dst: bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:256,1
    - Dst: Server::listen
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:259,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:261,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:263,1
    - Dst: async_accept
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:264,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:264,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 265
    functionName: Server::listen
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - set_option
    - Server::listen
    - protocol
    - bind
    - expect_success
    - net::socket_base::reuse_address
    - reset_timeout
    - back
    - std::bind
    - async_accept
    - shared_from_this
    - open
    linkageType: ''
    returnType: void
    signature: void listen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: Server::expect_short_read
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void expect_short_read()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Server::move_before_accept
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void move_before_accept()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: callbacks
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg_type
    - alert
    argTypes:
    - Botan::TLS::Handshake_Type
    - Botan::TLS::AlertType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: Server::fail_on_handshake_message
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - callbacks
    linkageType: ''
    returnType: void
    signature: void fail_on_handshake_message(const Botan::TLS::Handshake_Type msg_type,
      Botan::TLS::AlertType alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Server::result
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result_Wrapper
    signature: Result_Wrapper result()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:281,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:289,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:289,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:289,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: ctx
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: callbacks
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:294,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:295,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:296,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' ec'
    - socket
    argTypes:
    - error_code
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 297
    functionName: Server::start_session
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - ctx
    - std::make_unique<ssl_stream>
    - create_stream
    - std::move
    - callbacks
    - expect_success
    - reset_timeout
    - std::bind
    - stream
    - shared_from_this
    linkageType: ''
    returnType: void
    signature: void start_session(const error_code& ec, tcp::socket socket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:301,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:302,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: Server::shutdown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - stream
    - expect_success
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void shutdown()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:308,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:309,1
    - Dst: expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:311,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:311,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: Server::handle_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - cancel_timeout
    - expect_success
    - value
    - expect_ec
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void handle_handshake(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:317,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:318,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:319,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:319,1
    - Dst: buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:320,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:321,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:321,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:322,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: Server::handle_write
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - buffer
    - expect_success
    - reset_timeout
    - std::bind
    - stream
    - shared_from_this
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void handle_write(const error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:327,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:328,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:333,1
    - Dst: expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:334,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:335,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:336,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:336,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:336,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:338,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:338,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:339,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:344,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:346,1
    - Dst: Server::shutdown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:348,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:352,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:356,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:357,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:358,1
    - Dst: buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:358,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:358,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 359
    functionName: Server::handle_read
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Server::shutdown
    - cancel_timeout
    - buffer
    - net::async_write
    - std::bind
    - reset_timeout
    - test_failure
    - message
    - expect_success
    - expect_ec
    - shared_from_this
    - stream
    linkageType: ''
    returnType: void
    signature: void handle_read(const error_code& ec, size_t bytes_transferred = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:362,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: Server::handle_shutdown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - cancel_timeout
    - expect_success
    linkageType: ''
    returnType: void
    signature: void handle_shutdown(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: Client::accept_all
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void accept_all(const std::vector<Botan::X509_Certificate>& /*cert*/,\n
      \                            const std::vector<std::optional<Botan::OCSP::Response>>&
      /*ocsp*/,\n                             const std::vector<Botan::Certificate_Store*>&
      /*trusted*/,\n                             Botan::Usage_Type /*usage*/,\n                             std::string_view
      /*hostname*/,\n                             const Botan::TLS::Policy& /*policy*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ctx
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:387,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:388,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:388,1
    - Dst: ctx
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:388,1
    - Dst: callbacks
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' policy'
    - ' ioc'
    argTypes:
    - std::shared_ptr<const Botan::TLS::Policy>
    - net::io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: Client::Client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - ctx
    - callbacks
    - std::make_unique<ssl_stream>
    - create_stream
    linkageType: ''
    returnType: void
    signature: void Client(const std::shared_ptr<const Botan::TLS::Policy>& policy,
      net::io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:396,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: Client::close_socket
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - stream
    linkageType: ''
    returnType: void
    signature: void close_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Client>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:409,1
    - Dst: std::make_shared<Server>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:410,1
    - Dst: on_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:412,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:413,1
    - Dst: on_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:414,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:415,1
    - Dst: listen
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ' ioc'
    - ' client_policy'
    - ' server_policy'
    - ' name'
    - ' config_name'
    argTypes:
    - net::io_context
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 418
    functionName: TestBase::TestBase
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Server>
    - std::make_shared<Client>
    - listen
    - test_failure
    - on_timeout
    linkageType: ''
    returnType: void
    signature: "void TestBase(net::io_context& ioc,\n               const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n               const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy,\n               const std::string& name,\n
      \              const std::string& config_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 420
    functionName: ~TestBase()
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 422
    functionName: TestBase::TestBase
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestBase(const TestBase& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 423
    functionName: TestBase::TestBase
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestBase(TestBase&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 424
    functionName: '& operator=(const TestBase& other)'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestBase
    signature: TestBase & operator=(const TestBase& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 425
    functionName: '& operator=(TestBase&& other)'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestBase
    signature: TestBase & operator=(TestBase&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: TestBase::finishAsynchronousWork
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void finishAsynchronousWork()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 429
    functionName: TestBase::fail
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void fail(std::string_view msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:432,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:432,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:433,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: TestBase::extend_results
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - result
    linkageType: ''
    returnType: void
    signature: void extend_results(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 438
    functionName: TestBase::teardown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - cancel_timeout
    linkageType: ''
    returnType: void
    signature: void teardown()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    functionName: '& client()'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Client>
    signature: std::shared_ptr<Client> & client()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 442
    functionName: '& server()'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Server>
    signature: std::shared_ptr<Server> & server()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 444
    functionName: '& result()'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result_Wrapper
    signature: Result_Wrapper & result()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: join
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: Synchronous_Test::finishAsynchronousWork
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - join
    linkageType: ''
    returnType: void
    signature: void finishAsynchronousWork() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::thread
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:462,1
    - Dst: Synchronous_Test::run_synchronous_client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:464,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:466,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:466,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:466,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:468,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 473
    functionName: Synchronous_Test::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - std::thread
    - result
    - Synchronous_Test::run_synchronous_client
    - what
    linkageType: ''
    returnType: void
    signature: void run(const error_code& /*err*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 496
    functionName: Test_Conversation::Test_Conversation
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Conversation(net::io_context& ioc,\n                        const
      std::string& config_name,\n                        const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                        const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy,\n                        const std::string&
      test_name = \"Test Conversation\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:503,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:506,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:508,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:513,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:514,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:517,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:520,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:522,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:522,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:524,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:525,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:525,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:527,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:529,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:531,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:533,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:533,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:534,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 538
    functionName: Test_Conversation::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::bind
    - client
    - Peer::buffer
    - result
    - std::string::c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: void
    signature: void run(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:503,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:506,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:508,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:513,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:514,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:517,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:520,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:522,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:522,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:524,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:525,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:525,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:527,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:529,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:531,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:533,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:533,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:534,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 537
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - size
    - Peer::buffer
    - result
    - c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: Test_Conversation_Sync::Test_Conversation_Sync
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Conversation_Sync(net::io_context& ioc,\n                             const
      std::string& config_name,\n                             const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                             const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client::handle_connect
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:553,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:553,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:554,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:556,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:557,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:559,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:559,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:560,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:560,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:560,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:562,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:564,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:565,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:565,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:565,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:565,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:566,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:567,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:567,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:569,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:570,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:572,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:572,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:572,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:573,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:573,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:574,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 577
    functionName: Test_Conversation_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Server::expect_short_read
    - std::string::size
    - std::bind
    - client
    - Peer::buffer
    - result
    - client::handle_connect
    - std::string::c_str
    - Server::handle_write
    - teardown
    linkageType: ''
    returnType: void
    signature: void run_synchronous_client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: Test_Eager_Close::Test_Eager_Close
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Eager_Close(net::io_context& ioc,\n                       const
      std::string& config_name,\n                       const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                       const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:597,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:600,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:602,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:605,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:607,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:609,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:611,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:612,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:612,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 616
    functionName: Test_Eager_Close::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - result
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: void
    signature: void run(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:597,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:600,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:602,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:605,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:607,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:609,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:611,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:612,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:612,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 615
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - result
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 625
    functionName: Test_Eager_Close_Sync::Test_Eager_Close_Sync
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Eager_Close_Sync(net::io_context& ioc,\n                            const
      std::string& config_name,\n                            const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                            const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client::handle_connect
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:630,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:630,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:631,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:633,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:634,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:636,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:637,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:639,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:640,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:640,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 643
    functionName: Test_Eager_Close_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client::handle_connect
    - client
    - teardown
    - result
    linkageType: ''
    returnType: void
    signature: void run_synchronous_client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: Test_Close_Without_Shutdown::Test_Close_Without_Shutdown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Close_Without_Shutdown(net::io_context& ioc,\n                                  const
      std::string& config_name,\n                                  const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                  const
      std::shared_ptr<const Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:662,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:665,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:667,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:670,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:674,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:675,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:675,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:676,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:678,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:682,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:683,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:686,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:688,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:689,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:689,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 693
    functionName: Test_Close_Without_Shutdown::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - size
    - Peer::buffer
    - result
    - c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: void
    signature: void run(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:662,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:665,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:667,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:670,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:674,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:675,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:675,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:676,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:678,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:682,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:683,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:686,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:688,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:689,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:689,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 692
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - size
    - Peer::buffer
    - result
    - c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 702
    functionName: Test_Close_Without_Shutdown_Sync::Test_Close_Without_Shutdown_Sync
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Close_Without_Shutdown_Sync(net::io_context& ioc,\n                                       const
      std::string& config_name,\n                                       const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                       const
      std::shared_ptr<const Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client::handle_connect
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:706,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:706,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:707,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:709,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:710,1
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:712,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:714,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:715,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:715,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 718
    functionName: Test_Close_Without_Shutdown_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client
    - server
    - result
    - client::handle_connect
    - teardown
    linkageType: ''
    returnType: void
    signature: void run_synchronous_client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 733
    functionName: Test_No_Shutdown_Response::Test_No_Shutdown_Response
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_No_Shutdown_Response(net::io_context& ioc,\n                                const
      std::string& config_name,\n                                const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:738,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:741,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:743,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:746,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:749,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:751,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:752,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:752,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:753,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:758,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:760,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:761,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:761,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:764,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 768
    functionName: Test_No_Shutdown_Response::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - size
    - Peer::buffer
    - result
    - c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: void
    signature: void run(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:738,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:741,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:743,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:746,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:749,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:751,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:752,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:752,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:753,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:758,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:760,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:761,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:761,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:764,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 767
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - size
    - Peer::buffer
    - result
    - c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: Test_No_Shutdown_Response_Sync::Test_No_Shutdown_Response_Sync
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_No_Shutdown_Response_Sync(net::io_context& ioc,\n                                     const
      std::string& config_name,\n                                     const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                     const
      std::shared_ptr<const Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client::handle_connect
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:781,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:781,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:782,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:784,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:785,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:787,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:787,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:788,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:788,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:789,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:791,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:793,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:793,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:793,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:794,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:795,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:795,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:798,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 801
    functionName: Test_No_Shutdown_Response_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Server::expect_short_read
    - client
    - size
    - Peer::buffer
    - result
    - client::handle_connect
    - c_str
    - Server::handle_write
    - teardown
    linkageType: ''
    returnType: void
    signature: void run_synchronous_client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 812
    functionName: Test_Conversation_With_Move::Test_Conversation_With_Move
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - server
    linkageType: ''
    returnType: void
    signature: "void Test_Conversation_With_Move(net::io_context& ioc,\n                                  const
      std::string& config_name,\n                                  const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                  const
      std::shared_ptr<const Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 832
    functionName: Test_Handshake_Failure::Test_Handshake_Failure
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - server
    linkageType: ''
    returnType: void
    signature: "void Test_Handshake_Failure(net::io_context& ioc,\n                             const
      std::string& config_name,\n                             const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                             const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:837,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:840,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:842,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:845,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:847,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 850
    functionName: Test_Handshake_Failure::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - result
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: void
    signature: void run(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:837,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:840,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:842,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:845,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:847,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 849
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - result
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 862
    functionName: Test_Handshake_Failure_Sync::Test_Handshake_Failure_Sync
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - server
    linkageType: ''
    returnType: void
    signature: "void Test_Handshake_Failure_Sync(net::io_context& ioc,\n                                  const
      std::string& config_name,\n                                  const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                  const
      std::shared_ptr<const Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client::handle_connect
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:866,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:866,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:867,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:869,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:870,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:872,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 874
    functionName: Test_Handshake_Failure_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client::handle_connect
    - client
    - teardown
    - result
    linkageType: ''
    returnType: void
    signature: void run_synchronous_client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:880,1
    - Dst: std::make_shared<Botan::TLS::Text_Policy>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:881,1
    - Dst: std::make_shared<Botan::TLS::Text_Policy>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - n
    - ' cp'
    - ' sp'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 882
    functionName: SystemConfiguration::SystemConfiguration
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<Botan::TLS::Text_Policy>
    linkageType: ''
    returnType: void
    signature: void SystemConfiguration(std::string n, const std::string& cp, const
      std::string& sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<TestT>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:888,1
    - Dst: auto::run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:890,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:894,1
    - Dst: auto::fail
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:898,1
    - Dst: auto::fail
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:900,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:900,1
    - Dst: auto::finishAsynchronousWork
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:904,1
    - Dst: auto::extend_results
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 906
    functionName: SystemConfiguration::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<TestT>
    - net::io_context::run
    - auto::fail
    - auto::finishAsynchronousWork
    - what
    - auto::run
    - auto::extend_results
    linkageType: ''
    returnType: void
    signature: void run(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:918,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:922,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:927,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:930,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:939,1
    - Dst: get_configurations
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:942,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:944,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:945,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:946,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:947,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:948,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:949,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:950,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:951,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:952,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:953,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:954,1
    - Dst: BOTAN_REGISTER_TEST
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 963
    functionName: get_configurations
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - run
    - BOTAN_REGISTER_TEST
    - SystemConfiguration
    - get_configurations
    linkageType: ''
    returnType: std::vector<SystemConfiguration>
    signature: std::vector<SystemConfiguration> get_configurations()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: server_cert
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string server_cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: server_key
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::data_file
    linkageType: ''
    returnType: std::string
    signature: std::string server_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg_type
    - alert
    argTypes:
    - Botan::TLS::Handshake_Type
    - Botan::TLS::AlertType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: PeerCallbacks::fail_on_handshake_message
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fail_on_handshake_message(const Botan::TLS::Handshake_Type msg_type,
      Botan::TLS::AlertType alert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:78,1
    - Dst: type
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:78,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:79,1
    - Dst: type
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: PeerCallbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - type
    - contains
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Botan::TLS::Handshake_Message&
      msg) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::AutoSeeded_RNG>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:92,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:93,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:94,1
    - Dst: std::make_shared<PeerCallbacks>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:95,1
    - Dst: std::enable_shared_from_this<Context>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' policy'
    - ' ioc'
    - credentials_manager
    argTypes:
    - std::shared_ptr<const Botan::TLS::Policy>
    - net::io_context
    - std::shared_ptr<Basic_Credentials_Manager>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: Peer::Peer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::enable_shared_from_this<Context>
    - std::move
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<PeerCallbacks>
    - std::make_shared<Botan::AutoSeeded_RNG>
    linkageType: ''
    returnType: void
    signature: "void Peer(const std::shared_ptr<const Botan::TLS::Policy>& policy,\n
      \          net::io_context& ioc,\n           std::shared_ptr<Basic_Credentials_Manager>
      credentials_manager)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' policy'
    - ' ioc'
    argTypes:
    - std::shared_ptr<const Botan::TLS::Policy>
    - net::io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Peer::Peer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Basic_Credentials_Manager>
    linkageType: ''
    returnType: void
    signature: void Peer(const std::shared_ptr<const Botan::TLS::Policy>& policy,
      net::io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' policy'
    - ' ioc'
    - ' server_cert'
    - ' server_key'
    argTypes:
    - std::shared_ptr<const Botan::TLS::Policy>
    - net::io_context
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Peer::Peer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Basic_Credentials_Manager>
    linkageType: ''
    returnType: void
    signature: "void Peer(const std::shared_ptr<const Botan::TLS::Policy>& policy,\n
      \          net::io_context& ioc,\n           const std::string& server_cert,\n
      \          const std::string& server_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Peer::Peer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Peer(const Peer& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Peer::Peer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Peer(Peer&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: '& operator=(const Peer& other)'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Peer
    signature: Peer & operator=(const Peer& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Peer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: '& operator=(Peer&& other)'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Peer
    signature: Peer & operator=(Peer&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: ~Peer()
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - cancel_timeout
    linkageType: ''
    returnType: void
    signature: void ~Peer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Peer::buffer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 11
    functionsReached:
    - Peer::buffer
    linkageType: ''
    returnType: net::mutable_buffer
    signature: net::mutable_buffer buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Peer::buffer
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 12
    functionsReached:
    - Peer::buffer
    linkageType: ''
    returnType: net::mutable_buffer
    signature: net::mutable_buffer buffer(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Peer::message
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string message() const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: Peer::received_zero_byte
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t received_zero_byte(const boost::system::error_code& error,
      std::size_t bytes_transferred)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - std::function<void(const std::string&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Peer::on_timeout
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void on_timeout(std::function<void(const std::string&)> cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: expires_after
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:140,1
    - Dst: async_wait
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:141,1
    - Dst: m_on_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:145,1
    - Dst: lowest_layer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:152,1
    - Dst: Timeout_Exception
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 158
    functionName: Peer::reset_timeout
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Timeout_Exception
    - async_wait
    - m_on_timeout
    - lowest_layer
    - expires_after
    linkageType: ''
    returnType: void
    signature: void reset_timeout(const std::string& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: Peer::cancel_timeout
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - cancel
    linkageType: ''
    returnType: void
    signature: void cancel_timeout()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: '& stream()'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssl_stream
    signature: ssl_stream & stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:165,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stream
    argTypes:
    - std::unique_ptr<ssl_stream>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: Peer::create_stream
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - std::move
    linkageType: ''
    returnType: void
    signature: void create_stream(std::unique_ptr<ssl_stream> stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: Peer::ctx
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Botan::TLS::Context>
    signature: std::shared_ptr<Botan::TLS::Context> ctx()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Peer::callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<PeerCallbacks>
    signature: std::shared_ptr<PeerCallbacks> callbacks()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: Result_Wrapper::Result_Wrapper
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Result_Wrapper(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: '& result()'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result & result()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - ' ec'
    argTypes:
    - std::string_view
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: Result_Wrapper::expect_success
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Result_Wrapper::expect_ec
    linkageType: ''
    returnType: void
    signature: void expect_success(std::string_view msg, const error_code& ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:200,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:200,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:200,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - msg
    - ' expected'
    - ' ec'
    argTypes:
    - std::string_view
    - error_code
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: Result_Wrapper::expect_ec
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - message
    - Result_Wrapper::test_failure
    - test_success
    linkageType: ''
    returnType: void
    signature: void expect_ec(std::string_view msg, const error_code& expected, const
      error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::test_is_true
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - condition
    argTypes:
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: Result_Wrapper::test_is_true
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - Result_Wrapper::test_is_true
    linkageType: ''
    returnType: void
    signature: void test_is_true(std::string_view msg, bool condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::test_str_eq
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - what
    - produced
    - expected
    argTypes:
    - std::string_view
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Result_Wrapper::test_str_eq
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - Result_Wrapper::test_str_eq
    linkageType: ''
    returnType: void
    signature: void test_str_eq(std::string_view what, std::string_view produced,
      std::string_view expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Result_Wrapper::test_failure
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 4
    functionsReached:
    - Result_Wrapper::test_failure
    linkageType: ''
    returnType: void
    signature: void test_failure(std::string_view msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_cert
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:237,1
    - Dst: server_key
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:237,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' policy'
    - ' ioc'
    - ' test_name'
    argTypes:
    - std::shared_ptr<const Botan::TLS::Policy>
    - net::io_context
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 243
    functionName: Server::Server
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - server_cert
    - reset_timeout
    - server_key
    linkageType: ''
    returnType: void
    signature: "void Server(const std::shared_ptr<const Botan::TLS::Policy>& policy,\n
      \            net::io_context& ioc,\n             const std::string& test_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:247,1
    - Dst: open
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:250,1
    - Dst: protocol
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:250,1
    - Dst: set_option
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:253,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:253,1
    - Dst: bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:256,1
    - Dst: Server::listen
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:259,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:261,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:263,1
    - Dst: async_accept
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:264,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:264,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 265
    functionName: Server::listen
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - set_option
    - Server::listen
    - protocol
    - bind
    - expect_success
    - net::socket_base::reuse_address
    - reset_timeout
    - back
    - std::bind
    - async_accept
    - shared_from_this
    - open
    linkageType: ''
    returnType: void
    signature: void listen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: Server::expect_short_read
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void expect_short_read()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Server::move_before_accept
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void move_before_accept()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: callbacks
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg_type
    - alert
    argTypes:
    - Botan::TLS::Handshake_Type
    - Botan::TLS::AlertType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: Server::fail_on_handshake_message
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - callbacks
    linkageType: ''
    returnType: void
    signature: void fail_on_handshake_message(const Botan::TLS::Handshake_Type msg_type,
      Botan::TLS::AlertType alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Server::result
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result_Wrapper
    signature: Result_Wrapper result()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:281,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:289,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:289,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:289,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: ctx
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: callbacks
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:294,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:295,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:296,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' ec'
    - socket
    argTypes:
    - error_code
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 297
    functionName: Server::start_session
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - ctx
    - std::make_unique<ssl_stream>
    - create_stream
    - std::move
    - callbacks
    - expect_success
    - reset_timeout
    - std::bind
    - stream
    - shared_from_this
    linkageType: ''
    returnType: void
    signature: void start_session(const error_code& ec, tcp::socket socket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:301,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:302,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: Server::shutdown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - stream
    - expect_success
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void shutdown()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:308,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:309,1
    - Dst: expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:311,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:311,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: Server::handle_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - cancel_timeout
    - expect_success
    - value
    - expect_ec
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void handle_handshake(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:317,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:318,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:319,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:319,1
    - Dst: buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:320,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:321,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:321,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:322,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: Server::handle_write
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 6
    functionsReached:
    - buffer
    - expect_success
    - reset_timeout
    - std::bind
    - stream
    - shared_from_this
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void handle_write(const error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:327,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:328,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:333,1
    - Dst: expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:334,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:335,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:336,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:336,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:336,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:338,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:338,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:339,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:344,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:346,1
    - Dst: Server::shutdown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:348,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:352,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:356,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:357,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:358,1
    - Dst: buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:358,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:358,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 359
    functionName: Server::handle_read
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Server::shutdown
    - cancel_timeout
    - buffer
    - net::async_write
    - std::bind
    - reset_timeout
    - test_failure
    - message
    - expect_success
    - expect_ec
    - shared_from_this
    - stream
    linkageType: ''
    returnType: void
    signature: void handle_read(const error_code& ec, size_t bytes_transferred = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:362,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: Server::handle_shutdown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - cancel_timeout
    - expect_success
    linkageType: ''
    returnType: void
    signature: void handle_shutdown(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: Client::accept_all
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void accept_all(const std::vector<Botan::X509_Certificate>& /*cert*/,\n
      \                            const std::vector<std::optional<Botan::OCSP::Response>>&
      /*ocsp*/,\n                             const std::vector<Botan::Certificate_Store*>&
      /*trusted*/,\n                             Botan::Usage_Type /*usage*/,\n                             std::string_view
      /*hostname*/,\n                             const Botan::TLS::Policy& /*policy*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ctx
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:387,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:388,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:388,1
    - Dst: ctx
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:388,1
    - Dst: callbacks
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' policy'
    - ' ioc'
    argTypes:
    - std::shared_ptr<const Botan::TLS::Policy>
    - net::io_context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: Client::Client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - ctx
    - callbacks
    - std::make_unique<ssl_stream>
    - create_stream
    linkageType: ''
    returnType: void
    signature: void Client(const std::shared_ptr<const Botan::TLS::Policy>& policy,
      net::io_context& ioc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:396,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: Client::close_socket
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - stream
    linkageType: ''
    returnType: void
    signature: void close_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Client>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:409,1
    - Dst: std::make_shared<Server>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:410,1
    - Dst: on_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:412,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:413,1
    - Dst: on_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:414,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:415,1
    - Dst: listen
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ' ioc'
    - ' client_policy'
    - ' server_policy'
    - ' name'
    - ' config_name'
    argTypes:
    - net::io_context
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 418
    functionName: TestBase::TestBase
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Server>
    - std::make_shared<Client>
    - listen
    - test_failure
    - on_timeout
    linkageType: ''
    returnType: void
    signature: "void TestBase(net::io_context& ioc,\n               const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n               const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy,\n               const std::string& name,\n
      \              const std::string& config_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 420
    functionName: ~TestBase()
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 422
    functionName: TestBase::TestBase
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestBase(const TestBase& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 423
    functionName: TestBase::TestBase
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestBase(TestBase&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 424
    functionName: '& operator=(const TestBase& other)'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestBase
    signature: TestBase & operator=(const TestBase& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 425
    functionName: '& operator=(TestBase&& other)'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestBase
    signature: TestBase & operator=(TestBase&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 427
    functionName: TestBase::finishAsynchronousWork
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void finishAsynchronousWork()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 429
    functionName: TestBase::fail
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void fail(std::string_view msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:432,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:432,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:433,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: TestBase::extend_results
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - result
    linkageType: ''
    returnType: void
    signature: void extend_results(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 438
    functionName: TestBase::teardown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - cancel_timeout
    linkageType: ''
    returnType: void
    signature: void teardown()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    functionName: '& client()'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Client>
    signature: std::shared_ptr<Client> & client()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 442
    functionName: '& server()'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Server>
    signature: std::shared_ptr<Server> & server()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 444
    functionName: '& result()'
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result_Wrapper
    signature: Result_Wrapper & result()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: join
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: Synchronous_Test::finishAsynchronousWork
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - join
    linkageType: ''
    returnType: void
    signature: void finishAsynchronousWork() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::thread
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:462,1
    - Dst: Synchronous_Test::run_synchronous_client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:464,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:466,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:466,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:466,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:468,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 473
    functionName: Synchronous_Test::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - std::thread
    - result
    - Synchronous_Test::run_synchronous_client
    - what
    linkageType: ''
    returnType: void
    signature: void run(const error_code& /*err*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 496
    functionName: Test_Conversation::Test_Conversation
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Conversation(net::io_context& ioc,\n                        const
      std::string& config_name,\n                        const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                        const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy,\n                        const std::string&
      test_name = \"Test Conversation\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:503,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:506,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:508,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:513,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:514,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:517,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:520,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:522,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:522,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:524,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:525,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:525,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:527,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:529,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:531,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:533,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:533,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:534,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 538
    functionName: Test_Conversation::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::bind
    - client
    - Peer::buffer
    - result
    - std::string::c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: void
    signature: void run(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:503,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:505,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:506,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:508,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:513,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:514,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:517,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:520,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:522,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:522,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:524,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:525,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:525,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:527,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:529,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:531,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:533,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:533,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:534,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 537
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - size
    - Peer::buffer
    - result
    - c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: Test_Conversation_Sync::Test_Conversation_Sync
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Conversation_Sync(net::io_context& ioc,\n                             const
      std::string& config_name,\n                             const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                             const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client::handle_connect
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:553,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:553,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:554,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:556,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:557,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:559,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:559,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:560,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:560,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:560,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:562,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:564,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:565,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:565,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:565,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:565,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:566,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:567,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:567,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:569,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:570,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:572,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:572,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:572,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:573,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:573,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:574,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 577
    functionName: Test_Conversation_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Server::expect_short_read
    - std::string::size
    - std::bind
    - client
    - Peer::buffer
    - result
    - client::handle_connect
    - std::string::c_str
    - Server::handle_write
    - teardown
    linkageType: ''
    returnType: void
    signature: void run_synchronous_client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: Test_Eager_Close::Test_Eager_Close
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Eager_Close(net::io_context& ioc,\n                       const
      std::string& config_name,\n                       const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                       const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:597,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:600,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:602,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:605,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:607,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:609,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:611,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:612,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:612,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 616
    functionName: Test_Eager_Close::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - result
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: void
    signature: void run(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:597,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:599,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:600,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:602,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:605,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:607,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:609,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:611,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:612,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:612,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 615
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - result
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 625
    functionName: Test_Eager_Close_Sync::Test_Eager_Close_Sync
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Eager_Close_Sync(net::io_context& ioc,\n                            const
      std::string& config_name,\n                            const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                            const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client::handle_connect
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:630,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:630,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:631,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:633,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:634,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:636,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:637,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:639,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:640,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:640,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 643
    functionName: Test_Eager_Close_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client::handle_connect
    - client
    - teardown
    - result
    linkageType: ''
    returnType: void
    signature: void run_synchronous_client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: Test_Close_Without_Shutdown::Test_Close_Without_Shutdown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Close_Without_Shutdown(net::io_context& ioc,\n                                  const
      std::string& config_name,\n                                  const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                  const
      std::shared_ptr<const Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:662,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:665,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:667,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:670,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:674,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:675,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:675,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:676,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:678,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:682,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:683,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:686,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:688,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:689,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:689,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 693
    functionName: Test_Close_Without_Shutdown::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - size
    - Peer::buffer
    - result
    - c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: void
    signature: void run(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:662,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:664,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:665,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:667,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:670,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:674,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:675,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:675,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:676,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:678,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:682,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:683,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:686,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:688,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:689,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:689,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 692
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - size
    - Peer::buffer
    - result
    - c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 702
    functionName: Test_Close_Without_Shutdown_Sync::Test_Close_Without_Shutdown_Sync
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_Close_Without_Shutdown_Sync(net::io_context& ioc,\n                                       const
      std::string& config_name,\n                                       const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                       const
      std::shared_ptr<const Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client::handle_connect
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:706,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:706,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:707,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:709,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:710,1
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:712,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:714,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:715,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:715,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 718
    functionName: Test_Close_Without_Shutdown_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client
    - server
    - result
    - client::handle_connect
    - teardown
    linkageType: ''
    returnType: void
    signature: void run_synchronous_client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 733
    functionName: Test_No_Shutdown_Response::Test_No_Shutdown_Response
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_No_Shutdown_Response(net::io_context& ioc,\n                                const
      std::string& config_name,\n                                const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:738,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:741,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:743,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:746,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:749,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:751,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:752,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:752,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:753,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:758,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:760,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:761,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:761,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:764,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 768
    functionName: Test_No_Shutdown_Response::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - size
    - Peer::buffer
    - result
    - c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: void
    signature: void run(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:738,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:740,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:741,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:743,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:746,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:749,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:751,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:752,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:752,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:753,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:758,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:759,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:760,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:761,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:761,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:764,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 767
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - size
    - Peer::buffer
    - result
    - c_str
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: Test_No_Shutdown_Response_Sync::Test_No_Shutdown_Response_Sync
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Test_No_Shutdown_Response_Sync(net::io_context& ioc,\n                                     const
      std::string& config_name,\n                                     const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                     const
      std::shared_ptr<const Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client::handle_connect
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:781,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:781,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:782,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:784,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:785,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:787,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:787,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:788,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:788,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:789,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:791,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:793,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:793,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:793,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:794,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:795,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:795,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:798,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 801
    functionName: Test_No_Shutdown_Response_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Server::expect_short_read
    - client
    - size
    - Peer::buffer
    - result
    - client::handle_connect
    - c_str
    - Server::handle_write
    - teardown
    linkageType: ''
    returnType: void
    signature: void run_synchronous_client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 812
    functionName: Test_Conversation_With_Move::Test_Conversation_With_Move
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - server
    linkageType: ''
    returnType: void
    signature: "void Test_Conversation_With_Move(net::io_context& ioc,\n                                  const
      std::string& config_name,\n                                  const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                  const
      std::shared_ptr<const Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 832
    functionName: Test_Handshake_Failure::Test_Handshake_Failure
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - server
    linkageType: ''
    returnType: void
    signature: "void Test_Handshake_Failure(net::io_context& ioc,\n                             const
      std::string& config_name,\n                             const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                             const std::shared_ptr<const
      Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:837,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:840,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:842,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:845,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:847,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 850
    functionName: Test_Handshake_Failure::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - result
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: void
    signature: void run(const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:837,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:839,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:840,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:842,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:845,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:847,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 849
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - client
    - result
    - shared_from_this
    - teardown
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' ioc'
    - ' config_name'
    - ' client_policy'
    - ' server_policy'
    argTypes:
    - net::io_context
    - std::string
    - std::shared_ptr<const Botan::TLS::Policy>
    - std::shared_ptr<const Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 862
    functionName: Test_Handshake_Failure_Sync::Test_Handshake_Failure_Sync
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - server
    linkageType: ''
    returnType: void
    signature: "void Test_Handshake_Failure_Sync(net::io_context& ioc,\n                                  const
      std::string& config_name,\n                                  const std::shared_ptr<const
      Botan::TLS::Policy>& client_policy,\n                                  const
      std::shared_ptr<const Botan::TLS::Policy>& server_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client::handle_connect
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:866,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:866,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:867,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:869,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:870,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:872,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 874
    functionName: Test_Handshake_Failure_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client::handle_connect
    - client
    - teardown
    - result
    linkageType: ''
    returnType: void
    signature: void run_synchronous_client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:880,1
    - Dst: std::make_shared<Botan::TLS::Text_Policy>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:881,1
    - Dst: std::make_shared<Botan::TLS::Text_Policy>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - n
    - ' cp'
    - ' sp'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 882
    functionName: SystemConfiguration::SystemConfiguration
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<Botan::TLS::Text_Policy>
    linkageType: ''
    returnType: void
    signature: void SystemConfiguration(std::string n, const std::string& cp, const
      std::string& sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<TestT>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:888,1
    - Dst: auto::run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:890,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:894,1
    - Dst: auto::fail
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:898,1
    - Dst: auto::fail
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:900,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:900,1
    - Dst: auto::finishAsynchronousWork
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:904,1
    - Dst: auto::extend_results
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 906
    functionName: SystemConfiguration::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<TestT>
    - net::io_context::run
    - auto::fail
    - auto::finishAsynchronousWork
    - what
    - auto::run
    - auto::extend_results
    linkageType: ''
    returnType: void
    signature: void run(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:918,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:922,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:927,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:930,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:939,1
    - Dst: get_configurations
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:942,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:944,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:945,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:946,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:947,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:948,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:949,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:950,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:951,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:952,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:953,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:954,1
    - Dst: BOTAN_REGISTER_TEST
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 963
    functionName: get_configurations
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - run
    - BOTAN_REGISTER_TEST
    - SystemConfiguration
    - get_configurations
    linkageType: ''
    returnType: std::vector<SystemConfiguration>
    signature: std::vector<SystemConfiguration> get_configurations()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::ML_DSA_Verify_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ML_DSA_Verify_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ml_dsa.cpp:30,1
    - Dst: std::make_unique<Botan::ML_DSA_PublicKey>
      Src: /src/botan/src/tests/test_ml_dsa.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ml_dsa.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ML_DSA_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::ML_DSA_Verify_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ML_DSA_Verify_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ml_dsa.cpp:30,1
    - Dst: std::make_unique<Botan::ML_DSA_PublicKey>
      Src: /src/botan/src/tests/test_ml_dsa.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ml_dsa.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ML_DSA_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::ML_DSA_Verify_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ML_DSA_Verify_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ml_dsa.cpp:30,1
    - Dst: std::make_unique<Botan::ML_DSA_PublicKey>
      Src: /src/botan/src/tests/test_ml_dsa.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ml_dsa.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ML_DSA_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::ML_DSA_Verify_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ML_DSA_Verify_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ml_dsa.cpp:30,1
    - Dst: std::make_unique<Botan::ML_DSA_PublicKey>
      Src: /src/botan/src/tests/test_ml_dsa.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ml_dsa.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ML_DSA_Verify_KAT_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ml_dsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ML_DSA_PublicKey>
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Frodo_KAT_Tests::Frodo_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Frodo_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_Tests::Frodo_KAT_Tests::get_mode
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMMode::FrodoKEMMode
    linkageType: ''
    returnType: Botan::FrodoKEMMode
    signature: Botan::FrodoKEMMode get_mode(const std::string& mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Frodo_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_frodokem.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_Tests::Frodo_KAT_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Frodo_KAT_Tests::get_mode
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& mode) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_frodokem.cpp:45,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_frodokem.cpp:45,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_frodokem.cpp:47,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:48,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - value
    - var_type
    argTypes:
    - std::span<const uint8_t>
    - VarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Frodo_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - auto::output
    - std::span<const uint8_t>::begin
    - auto::update
    - Botan::XOF::create_or_throw
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> map_value(const std::string& /*params*/,\n                                     std::span<const
      uint8_t> value,\n                                     VarType var_type) const
      final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_se_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_se_bytes
    - Botan::FrodoKEMConstants::len_a_bytes
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const std::string& mode, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    - Dst: Botan::FrodoKEMConstants::len_salt_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_salt_bytes
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_encapsulation(const std::string& mode, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_frodokem.cpp:64,1
    - Dst: create_xof
      Src: /src/botan/src/tests/test_frodokem.cpp:83,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:84,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:86,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: Botan::FrodoKEMMode::is_available
      Src: /src/botan/src/tests/test_frodokem.cpp:94,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_frodokem.cpp:98,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/tests/test_frodokem.cpp:98,1
    - Dst: Botan::FrodoKEM_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:101,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:105,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:108,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:112,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:114,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:114,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:122,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:122,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:125,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:125,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_frodokem.cpp:128,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:128,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:130,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:131,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_frodokem.cpp:134,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:136,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_frodokem.cpp:137,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 143
    functionName: Botan_Tests::test_frodo_roundtrips
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - auto::data
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - len_sec_bytes
    - auto::size
    - auto::pop_back
    - Botan_Tests::Test::mutate_vec
    - auto::update
    - test_bin_eq
    - Botan::PK_KEM_Encryptor::encrypt
    - std::vector::emplace_back
    - std::span<const uint8_t>
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::FrodoKEM_PrivateKey::public_key_bits
    - Botan::FrodoKEMMode::to_string
    - Botan::FrodoKEMMode::is_available
    - create_xof
    - Botan_Tests::Test::new_rng
    - raw_private_key_bits
    - auto::encapsulated_shared_key
    - get_decryption_error_value
    - test_sz_eq
    - auto::output
    - test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_frodo_roundtrips()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: std::string algo_name() const override
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: "class Frodo_Keygen_Tests final : public PK_Key_Generation_Test {\n
      \  public:\n      std::vector<std::string> keygen_params() const override {\n
      \        return {\n   #if defined(BOTAN_HAS_FRODOKEM_SHAKE)\n            \"FrodoKEM-640-SHAKE\",
      \"FrodoKEM-976-SHAKE\", \"eFrodoKEM-640-SHAKE\", \"eFrodoKEM-976-SHAKE\",\n
      \  #endif\n   #if defined(BOTAN_HAS_FRODOKEM_AES)\n               \"FrodoKEM-640-AES\",
      \"FrodoKEM-976-AES\", \"eFrodoKEM-640-AES\", \"eFrodoKEM-976-AES\",\n   #endif\n
      \        };\n      }"
    signature: "class Frodo_Keygen_Tests final : public PK_Key_Generation_Test {\n
      \  public:\n      std::vector<std::string> keygen_params() const override {\n
      \        return {\n   #if defined(BOTAN_HAS_FRODOKEM_SHAKE)\n            \"FrodoKEM-640-SHAKE\",
      \"FrodoKEM-976-SHAKE\", \"eFrodoKEM-640-SHAKE\", \"eFrodoKEM-976-SHAKE\",\n
      \  #endif\n   #if defined(BOTAN_HAS_FRODOKEM_AES)\n               \"FrodoKEM-640-AES\",
      \"FrodoKEM-976-AES\", \"eFrodoKEM-640-AES\", \"eFrodoKEM-976-AES\",\n   #endif\n
      \        };\n      } std::string algo_name() const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: Botan_Tests::Frodo_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::FrodoKEM_PublicKey>
      Src: /src/botan/src/tests/test_frodokem.cpp:163,1
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: Botan_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMMode::FrodoKEMMode
    - std::make_unique<Botan::FrodoKEM_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Frodo_KAT_Tests::Frodo_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Frodo_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_Tests::Frodo_KAT_Tests::get_mode
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 1
    functionsReached:
    - Botan::FrodoKEMMode::FrodoKEMMode
    linkageType: ''
    returnType: Botan::FrodoKEMMode
    signature: Botan::FrodoKEMMode get_mode(const std::string& mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Frodo_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_frodokem.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_Tests::Frodo_KAT_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Frodo_KAT_Tests::get_mode
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& mode) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_frodokem.cpp:45,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_frodokem.cpp:45,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_frodokem.cpp:47,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:48,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - value
    - var_type
    argTypes:
    - std::span<const uint8_t>
    - VarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Frodo_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - auto::output
    - std::span<const uint8_t>::begin
    - auto::update
    - Botan::XOF::create_or_throw
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> map_value(const std::string& /*params*/,\n                                     std::span<const
      uint8_t> value,\n                                     VarType var_type) const
      final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_se_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_se_bytes
    - Botan::FrodoKEMConstants::len_a_bytes
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const std::string& mode, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    - Dst: Botan::FrodoKEMConstants::len_salt_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_salt_bytes
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_encapsulation(const std::string& mode, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_frodokem.cpp:64,1
    - Dst: create_xof
      Src: /src/botan/src/tests/test_frodokem.cpp:83,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:84,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:86,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: Botan::FrodoKEMMode::is_available
      Src: /src/botan/src/tests/test_frodokem.cpp:94,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_frodokem.cpp:98,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/tests/test_frodokem.cpp:98,1
    - Dst: Botan::FrodoKEM_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:101,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:105,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:108,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:112,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:114,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:114,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:122,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:122,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:125,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:125,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_frodokem.cpp:128,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:128,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:130,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:131,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_frodokem.cpp:134,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:136,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_frodokem.cpp:137,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 143
    functionName: Botan_Tests::test_frodo_roundtrips
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - auto::data
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - len_sec_bytes
    - auto::size
    - auto::pop_back
    - Botan_Tests::Test::mutate_vec
    - auto::update
    - test_bin_eq
    - Botan::PK_KEM_Encryptor::encrypt
    - std::vector::emplace_back
    - std::span<const uint8_t>
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::FrodoKEM_PrivateKey::public_key_bits
    - Botan::FrodoKEMMode::to_string
    - Botan::FrodoKEMMode::is_available
    - create_xof
    - Botan_Tests::Test::new_rng
    - raw_private_key_bits
    - auto::encapsulated_shared_key
    - get_decryption_error_value
    - test_sz_eq
    - auto::output
    - test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_frodo_roundtrips()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: std::string algo_name() const override
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: "class Frodo_Keygen_Tests final : public PK_Key_Generation_Test {\n
      \  public:\n      std::vector<std::string> keygen_params() const override {\n
      \        return {\n   #if defined(BOTAN_HAS_FRODOKEM_SHAKE)\n            \"FrodoKEM-640-SHAKE\",
      \"FrodoKEM-976-SHAKE\", \"eFrodoKEM-640-SHAKE\", \"eFrodoKEM-976-SHAKE\",\n
      \  #endif\n   #if defined(BOTAN_HAS_FRODOKEM_AES)\n               \"FrodoKEM-640-AES\",
      \"FrodoKEM-976-AES\", \"eFrodoKEM-640-AES\", \"eFrodoKEM-976-AES\",\n   #endif\n
      \        };\n      }"
    signature: "class Frodo_Keygen_Tests final : public PK_Key_Generation_Test {\n
      \  public:\n      std::vector<std::string> keygen_params() const override {\n
      \        return {\n   #if defined(BOTAN_HAS_FRODOKEM_SHAKE)\n            \"FrodoKEM-640-SHAKE\",
      \"FrodoKEM-976-SHAKE\", \"eFrodoKEM-640-SHAKE\", \"eFrodoKEM-976-SHAKE\",\n
      \  #endif\n   #if defined(BOTAN_HAS_FRODOKEM_AES)\n               \"FrodoKEM-640-AES\",
      \"FrodoKEM-976-AES\", \"eFrodoKEM-640-AES\", \"eFrodoKEM-976-AES\",\n   #endif\n
      \        };\n      } std::string algo_name() const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: Botan_Tests::Frodo_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::FrodoKEM_PublicKey>
      Src: /src/botan/src/tests/test_frodokem.cpp:163,1
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: Botan_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMMode::FrodoKEMMode
    - std::make_unique<Botan::FrodoKEM_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Frodo_KAT_Tests::Frodo_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Frodo_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_Tests::Frodo_KAT_Tests::get_mode
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 2
    functionsReached:
    - Botan::FrodoKEMMode::FrodoKEMMode
    linkageType: ''
    returnType: Botan::FrodoKEMMode
    signature: Botan::FrodoKEMMode get_mode(const std::string& mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Frodo_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_frodokem.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_Tests::Frodo_KAT_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Frodo_KAT_Tests::get_mode
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& mode) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_frodokem.cpp:45,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_frodokem.cpp:45,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_frodokem.cpp:47,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:48,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - value
    - var_type
    argTypes:
    - std::span<const uint8_t>
    - VarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Frodo_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - auto::output
    - std::span<const uint8_t>::begin
    - auto::update
    - Botan::XOF::create_or_throw
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> map_value(const std::string& /*params*/,\n                                     std::span<const
      uint8_t> value,\n                                     VarType var_type) const
      final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_se_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_se_bytes
    - Botan::FrodoKEMConstants::len_a_bytes
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const std::string& mode, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    - Dst: Botan::FrodoKEMConstants::len_salt_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_salt_bytes
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_encapsulation(const std::string& mode, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_frodokem.cpp:64,1
    - Dst: create_xof
      Src: /src/botan/src/tests/test_frodokem.cpp:83,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:84,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:86,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: Botan::FrodoKEMMode::is_available
      Src: /src/botan/src/tests/test_frodokem.cpp:94,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_frodokem.cpp:98,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/tests/test_frodokem.cpp:98,1
    - Dst: Botan::FrodoKEM_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:101,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:105,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:108,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:112,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:114,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:114,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:122,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:122,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:125,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:125,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_frodokem.cpp:128,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:128,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:130,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:131,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_frodokem.cpp:134,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:136,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_frodokem.cpp:137,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 143
    functionName: Botan_Tests::test_frodo_roundtrips
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - auto::data
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - len_sec_bytes
    - auto::size
    - auto::pop_back
    - Botan_Tests::Test::mutate_vec
    - auto::update
    - test_bin_eq
    - Botan::PK_KEM_Encryptor::encrypt
    - std::vector::emplace_back
    - std::span<const uint8_t>
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::FrodoKEM_PrivateKey::public_key_bits
    - Botan::FrodoKEMMode::to_string
    - Botan::FrodoKEMMode::is_available
    - create_xof
    - Botan_Tests::Test::new_rng
    - raw_private_key_bits
    - auto::encapsulated_shared_key
    - get_decryption_error_value
    - test_sz_eq
    - auto::output
    - test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_frodo_roundtrips()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: std::string algo_name() const override
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: "class Frodo_Keygen_Tests final : public PK_Key_Generation_Test {\n
      \  public:\n      std::vector<std::string> keygen_params() const override {\n
      \        return {\n   #if defined(BOTAN_HAS_FRODOKEM_SHAKE)\n            \"FrodoKEM-640-SHAKE\",
      \"FrodoKEM-976-SHAKE\", \"eFrodoKEM-640-SHAKE\", \"eFrodoKEM-976-SHAKE\",\n
      \  #endif\n   #if defined(BOTAN_HAS_FRODOKEM_AES)\n               \"FrodoKEM-640-AES\",
      \"FrodoKEM-976-AES\", \"eFrodoKEM-640-AES\", \"eFrodoKEM-976-AES\",\n   #endif\n
      \        };\n      }"
    signature: "class Frodo_Keygen_Tests final : public PK_Key_Generation_Test {\n
      \  public:\n      std::vector<std::string> keygen_params() const override {\n
      \        return {\n   #if defined(BOTAN_HAS_FRODOKEM_SHAKE)\n            \"FrodoKEM-640-SHAKE\",
      \"FrodoKEM-976-SHAKE\", \"eFrodoKEM-640-SHAKE\", \"eFrodoKEM-976-SHAKE\",\n
      \  #endif\n   #if defined(BOTAN_HAS_FRODOKEM_AES)\n               \"FrodoKEM-640-AES\",
      \"FrodoKEM-976-AES\", \"eFrodoKEM-640-AES\", \"eFrodoKEM-976-AES\",\n   #endif\n
      \        };\n      } std::string algo_name() const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: Botan_Tests::Frodo_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::FrodoKEM_PublicKey>
      Src: /src/botan/src/tests/test_frodokem.cpp:163,1
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: Botan_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMMode::FrodoKEMMode
    - std::make_unique<Botan::FrodoKEM_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Frodo_KAT_Tests::Frodo_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Frodo_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_Tests::Frodo_KAT_Tests::get_mode
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 3
    functionsReached:
    - Botan::FrodoKEMMode::FrodoKEMMode
    linkageType: ''
    returnType: Botan::FrodoKEMMode
    signature: Botan::FrodoKEMMode get_mode(const std::string& mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Frodo_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_frodokem.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_Tests::Frodo_KAT_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Frodo_KAT_Tests::get_mode
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& mode) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_frodokem.cpp:45,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_frodokem.cpp:45,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_frodokem.cpp:47,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:48,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - value
    - var_type
    argTypes:
    - std::span<const uint8_t>
    - VarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Frodo_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - auto::output
    - std::span<const uint8_t>::begin
    - auto::update
    - Botan::XOF::create_or_throw
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> map_value(const std::string& /*params*/,\n                                     std::span<const
      uint8_t> value,\n                                     VarType var_type) const
      final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_se_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    - Dst: Botan::FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_se_bytes
    - Botan::FrodoKEMConstants::len_a_bytes
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const std::string& mode, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    - Dst: Botan::FrodoKEMConstants::len_salt_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_salt_bytes
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_encapsulation(const std::string& mode, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_frodokem.cpp:64,1
    - Dst: create_xof
      Src: /src/botan/src/tests/test_frodokem.cpp:83,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:84,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:86,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: Botan::FrodoKEMMode::is_available
      Src: /src/botan/src/tests/test_frodokem.cpp:94,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_frodokem.cpp:98,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/tests/test_frodokem.cpp:98,1
    - Dst: Botan::FrodoKEM_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:101,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:105,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:108,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:112,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:114,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:114,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:122,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:122,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:125,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:125,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_frodokem.cpp:128,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:128,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:130,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:131,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_frodokem.cpp:134,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:136,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_frodokem.cpp:137,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 143
    functionName: Botan_Tests::test_frodo_roundtrips
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - auto::data
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - len_sec_bytes
    - auto::size
    - auto::pop_back
    - Botan_Tests::Test::mutate_vec
    - auto::update
    - test_bin_eq
    - Botan::PK_KEM_Encryptor::encrypt
    - std::vector::emplace_back
    - std::span<const uint8_t>
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::FrodoKEM_PrivateKey::public_key_bits
    - Botan::FrodoKEMMode::to_string
    - Botan::FrodoKEMMode::is_available
    - create_xof
    - Botan_Tests::Test::new_rng
    - raw_private_key_bits
    - auto::encapsulated_shared_key
    - get_decryption_error_value
    - test_sz_eq
    - auto::output
    - test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_frodo_roundtrips()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: std::string algo_name() const override
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: "class Frodo_Keygen_Tests final : public PK_Key_Generation_Test {\n
      \  public:\n      std::vector<std::string> keygen_params() const override {\n
      \        return {\n   #if defined(BOTAN_HAS_FRODOKEM_SHAKE)\n            \"FrodoKEM-640-SHAKE\",
      \"FrodoKEM-976-SHAKE\", \"eFrodoKEM-640-SHAKE\", \"eFrodoKEM-976-SHAKE\",\n
      \  #endif\n   #if defined(BOTAN_HAS_FRODOKEM_AES)\n               \"FrodoKEM-640-AES\",
      \"FrodoKEM-976-AES\", \"eFrodoKEM-640-AES\", \"eFrodoKEM-976-AES\",\n   #endif\n
      \        };\n      }"
    signature: "class Frodo_Keygen_Tests final : public PK_Key_Generation_Test {\n
      \  public:\n      std::vector<std::string> keygen_params() const override {\n
      \        return {\n   #if defined(BOTAN_HAS_FRODOKEM_SHAKE)\n            \"FrodoKEM-640-SHAKE\",
      \"FrodoKEM-976-SHAKE\", \"eFrodoKEM-640-SHAKE\", \"eFrodoKEM-976-SHAKE\",\n
      \  #endif\n   #if defined(BOTAN_HAS_FRODOKEM_AES)\n               \"FrodoKEM-640-AES\",
      \"FrodoKEM-976-AES\", \"eFrodoKEM-640-AES\", \"eFrodoKEM-976-AES\",\n   #endif\n
      \        };\n      } std::string algo_name() const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: Botan_Tests::Frodo_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::FrodoKEM_PublicKey>
      Src: /src/botan/src/tests/test_frodokem.cpp:163,1
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: Botan_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMMode::FrodoKEMMode
    - std::make_unique<Botan::FrodoKEM_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::global_test_rng
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & global_test_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:37,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:37,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Botan_Tests::kem
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> kem()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:44,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:44,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:47,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:48,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: Botan_Tests::kex_dh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::private_key_bits
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - Botan::create_private_key
    - Test_Error
    - auto::release
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: std::unique_ptr<Botan::PK_Key_Agreement_Key> kex_dh()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:57,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:57,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:60,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:61,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: Botan_Tests::kex_ecdh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::private_key_bits
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - Botan::create_private_key
    - Test_Error
    - auto::release
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: std::unique_ptr<Botan::PK_Key_Agreement_Key> kex_ecdh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:68,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:68,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan_Tests::sig
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> sig()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:75,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: Botan_Tests::keys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - std::forward<KeyTs>
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto keys(KeyTs... keys)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: Botan_Tests::as_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - T::public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> as_public_key(T private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    - Dst: Botan_Tests::as_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: Botan_Tests::pubkeys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::as_public_key
    - std::forward<KeyTs>
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto pubkeys(KeyTs... keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:98,1
    - Dst: Botan::PK_Key_Agreement::agreed_value_size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:99,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:103,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:106,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: Botan_Tests::length_of_hybrid_shared_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Key_Agreement::agreed_value_size
    - Botan::PK_KEM_Encryptor::shared_key_length
    - f
    - Botan_Tests::global_test_rng
    - kex_kem_fn
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_shared_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:111,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:114,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:117,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: Botan_Tests::length_of_hybrid_ciphertext
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - kex_kem_fn
    - public_value
    - f
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_ciphertext(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:122,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:125,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: Botan_Tests::length_of_hybrid_public_value
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - kex_kem_fn
    - public_value
    - f
    - public_key_bits
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_public_value(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:131,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: Botan_Tests::key_length_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - kex_kem_fn
    - std::vector::end
    - std::vector::begin
    - std::max_element
    linkageType: ''
    returnType: size_t
    signature: size_t key_length_of_hybrid_public_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:137,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: Botan_Tests::estimated_strength_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - kex_kem_fn
    - std::vector::end
    - std::vector::begin
    - std::max_element
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength_of_hybrid_public_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:143,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:143,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:146,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:149,1
    - Dst: Botan_Tests::length_of_hybrid_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:151,1
    - Dst: Botan_Tests::length_of_hybrid_ciphertext
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:152,1
    - Dst: Botan_Tests::length_of_hybrid_public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:153,1
    - Dst: Botan_Tests::key_length_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:154,1
    - Dst: Botan_Tests::estimated_strength_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:155,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:158,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:159,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:161,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:162,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:164,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:169,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:169,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:170,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:171,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:172,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:172,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:174,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:175,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:178,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:179,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:180,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 183
    functionName: Botan_Tests::roundtrip_test
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::length_of_hybrid_ciphertext
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - Botan_Tests::length_of_hybrid_public_value
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan_Tests::pubkeys
    - Botan_Tests::global_test_rng
    - Botan_Tests::key_length_of_hybrid_public_key
    - test_bin_eq
    - Botan::secure_vector::size
    - Botan_Tests::estimated_strength_of_hybrid_public_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::TLS::Hybrid_KEM_PublicKey::key_length
    - Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
    - Botan_Tests::length_of_hybrid_shared_key
    - kex_kem_fn
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - auto::encapsulated_shared_key
    - test_sz_eq
    linkageType: ''
    returnType: void
    signature: void roundtrip_test(Test::Result& result, Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:187,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:189,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: std::vector<std::unique_ptr<Botan::Public_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:194,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:196,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: std::vector<std::unique_ptr<Botan::Private_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:201,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:203,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:205,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:207,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:211,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:213,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:215,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:217,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:221,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:223,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:225,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:227,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:231,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:232,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:233,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:233,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:234,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:236,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:236,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:237,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:237,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:238,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:239,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 241
    functionName: Botan_Tests::hybrid_kem_keypair
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::unique_ptr<Botan::Private_Key>>
    - Botan_Tests::CHECK
    - Botan_Tests::pubkeys
    - Botan_Tests::keys
    - Botan_Tests::roundtrip_test
    - Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
    - Botan_Tests::kex_dh
    - test_throws
    - Botan_Tests::sig
    - Botan_Tests::kem
    - Botan::TLS::Hybrid_KEM_PublicKey
    - std::vector<std::unique_ptr<Botan::Public_Key>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hybrid_kem_keypair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:248,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:251,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:253,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:254,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:255,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:256,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:261,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:262,1
    - Dst: Botan::PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:267,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:268,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:268,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:270,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' result'
    - ' kex_fn'
    argTypes:
    - Test::Result
    - std::function<std::unique_ptr<Botan::PK_Key_Agreement_Key>()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 271
    functionName: Botan_Tests::kex_to_kem_roundtrip
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - auto::encapsulated_shared_key
    - Botan_Tests::global_test_rng
    - test_sz_eq
    - Botan::PK_KEM_Decryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan::secure_vector::size
    - test_bin_eq
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: void
    signature: "void kex_to_kem_roundtrip(Test::Result& result,\n                          const
      std::function<std::unique_ptr<Botan::PK_Key_Agreement_Key>()>& kex_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:275,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:277,1
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:278,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:279,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:280,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:283,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:286,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:289,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:290,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 292
    functionName: Botan_Tests::kex_to_kem_adapter
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
    - Botan_Tests::kex_to_kem_roundtrip
    - Botan::KEX_to_KEM_Adapter_PublicKey
    - test_throws
    - Botan_Tests::kem
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> kex_to_kem_adapter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::global_test_rng
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 7
    functionsReached:
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & global_test_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:37,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:37,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Botan_Tests::kem
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> kem()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:44,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:44,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:47,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:48,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: Botan_Tests::kex_dh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::private_key_bits
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - Botan::create_private_key
    - Test_Error
    - auto::release
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: std::unique_ptr<Botan::PK_Key_Agreement_Key> kex_dh()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:57,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:57,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:60,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:61,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: Botan_Tests::kex_ecdh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::private_key_bits
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - Botan::create_private_key
    - Test_Error
    - auto::release
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: std::unique_ptr<Botan::PK_Key_Agreement_Key> kex_ecdh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:68,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:68,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan_Tests::sig
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> sig()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:75,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: Botan_Tests::keys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - std::forward<KeyTs>
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto keys(KeyTs... keys)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: Botan_Tests::as_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - T::public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> as_public_key(T private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    - Dst: Botan_Tests::as_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: Botan_Tests::pubkeys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::as_public_key
    - std::forward<KeyTs>
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto pubkeys(KeyTs... keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:98,1
    - Dst: Botan::PK_Key_Agreement::agreed_value_size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:99,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:103,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:106,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: Botan_Tests::length_of_hybrid_shared_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_Key_Agreement::agreed_value_size
    - Botan::PK_KEM_Encryptor::shared_key_length
    - f
    - Botan_Tests::global_test_rng
    - kex_kem_fn
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_shared_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:111,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:114,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:117,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: Botan_Tests::length_of_hybrid_ciphertext
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - kex_kem_fn
    - public_value
    - f
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_ciphertext(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:122,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:125,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: Botan_Tests::length_of_hybrid_public_value
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - kex_kem_fn
    - public_value
    - f
    - public_key_bits
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_public_value(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:131,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: Botan_Tests::key_length_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - kex_kem_fn
    - std::vector::end
    - std::vector::begin
    - std::max_element
    linkageType: ''
    returnType: size_t
    signature: size_t key_length_of_hybrid_public_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:137,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: Botan_Tests::estimated_strength_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - kex_kem_fn
    - std::vector::end
    - std::vector::begin
    - std::max_element
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength_of_hybrid_public_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:143,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:143,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:146,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:149,1
    - Dst: Botan_Tests::length_of_hybrid_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:151,1
    - Dst: Botan_Tests::length_of_hybrid_ciphertext
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:152,1
    - Dst: Botan_Tests::length_of_hybrid_public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:153,1
    - Dst: Botan_Tests::key_length_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:154,1
    - Dst: Botan_Tests::estimated_strength_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:155,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:158,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:159,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:161,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:162,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:164,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:169,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:169,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:170,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:171,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:172,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:172,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:174,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:175,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:178,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:179,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:180,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 183
    functionName: Botan_Tests::roundtrip_test
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::length_of_hybrid_ciphertext
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - Botan_Tests::length_of_hybrid_public_value
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan_Tests::pubkeys
    - Botan_Tests::global_test_rng
    - Botan_Tests::key_length_of_hybrid_public_key
    - test_bin_eq
    - Botan::secure_vector::size
    - Botan_Tests::estimated_strength_of_hybrid_public_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::TLS::Hybrid_KEM_PublicKey::key_length
    - Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
    - Botan_Tests::length_of_hybrid_shared_key
    - kex_kem_fn
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - auto::encapsulated_shared_key
    - test_sz_eq
    linkageType: ''
    returnType: void
    signature: void roundtrip_test(Test::Result& result, Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:187,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:189,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: std::vector<std::unique_ptr<Botan::Public_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:194,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:196,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: std::vector<std::unique_ptr<Botan::Private_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:201,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:203,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:205,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:207,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:211,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:213,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:215,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:217,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:221,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:223,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:225,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:227,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:231,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:232,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:233,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:233,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:234,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:236,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:236,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:237,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:237,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:238,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:239,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 241
    functionName: Botan_Tests::hybrid_kem_keypair
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::unique_ptr<Botan::Private_Key>>
    - Botan_Tests::CHECK
    - Botan_Tests::pubkeys
    - Botan_Tests::keys
    - Botan_Tests::roundtrip_test
    - Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
    - Botan_Tests::kex_dh
    - test_throws
    - Botan_Tests::sig
    - Botan_Tests::kem
    - Botan::TLS::Hybrid_KEM_PublicKey
    - std::vector<std::unique_ptr<Botan::Public_Key>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hybrid_kem_keypair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:248,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:251,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:253,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:254,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:255,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:256,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:261,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:262,1
    - Dst: Botan::PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:267,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:268,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:268,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:270,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' result'
    - ' kex_fn'
    argTypes:
    - Test::Result
    - std::function<std::unique_ptr<Botan::PK_Key_Agreement_Key>()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 271
    functionName: Botan_Tests::kex_to_kem_roundtrip
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - auto::encapsulated_shared_key
    - Botan_Tests::global_test_rng
    - test_sz_eq
    - Botan::PK_KEM_Decryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan::secure_vector::size
    - test_bin_eq
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: void
    signature: "void kex_to_kem_roundtrip(Test::Result& result,\n                          const
      std::function<std::unique_ptr<Botan::PK_Key_Agreement_Key>()>& kex_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:275,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:277,1
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:278,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:279,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:280,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:283,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:286,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:289,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:290,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 292
    functionName: Botan_Tests::kex_to_kem_adapter
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
    - Botan_Tests::kex_to_kem_roundtrip
    - Botan::KEX_to_KEM_Adapter_PublicKey
    - test_throws
    - Botan_Tests::kem
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> kex_to_kem_adapter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::global_test_rng
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 14
    functionsReached:
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & global_test_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:37,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:37,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Botan_Tests::kem
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> kem()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:44,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:44,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:47,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:48,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: Botan_Tests::kex_dh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::private_key_bits
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - Botan::create_private_key
    - Test_Error
    - auto::release
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: std::unique_ptr<Botan::PK_Key_Agreement_Key> kex_dh()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:57,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:57,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:60,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:61,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: Botan_Tests::kex_ecdh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::private_key_bits
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - Botan::create_private_key
    - Test_Error
    - auto::release
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: std::unique_ptr<Botan::PK_Key_Agreement_Key> kex_ecdh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:68,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:68,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan_Tests::sig
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> sig()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:75,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: Botan_Tests::keys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 4
    functionsReached:
    - std::forward<KeyTs>
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto keys(KeyTs... keys)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: Botan_Tests::as_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - T::public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> as_public_key(T private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    - Dst: Botan_Tests::as_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: Botan_Tests::pubkeys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::as_public_key
    - std::forward<KeyTs>
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto pubkeys(KeyTs... keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:98,1
    - Dst: Botan::PK_Key_Agreement::agreed_value_size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:99,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:103,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:106,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: Botan_Tests::length_of_hybrid_shared_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_Key_Agreement::agreed_value_size
    - Botan::PK_KEM_Encryptor::shared_key_length
    - f
    - Botan_Tests::global_test_rng
    - kex_kem_fn
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_shared_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:111,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:114,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:117,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: Botan_Tests::length_of_hybrid_ciphertext
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - kex_kem_fn
    - public_value
    - f
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_ciphertext(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:122,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:125,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: Botan_Tests::length_of_hybrid_public_value
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - kex_kem_fn
    - public_value
    - f
    - public_key_bits
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_public_value(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:131,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: Botan_Tests::key_length_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - kex_kem_fn
    - std::vector::end
    - std::vector::begin
    - std::max_element
    linkageType: ''
    returnType: size_t
    signature: size_t key_length_of_hybrid_public_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:137,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: Botan_Tests::estimated_strength_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - kex_kem_fn
    - std::vector::end
    - std::vector::begin
    - std::max_element
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength_of_hybrid_public_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:143,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:143,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:146,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:149,1
    - Dst: Botan_Tests::length_of_hybrid_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:151,1
    - Dst: Botan_Tests::length_of_hybrid_ciphertext
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:152,1
    - Dst: Botan_Tests::length_of_hybrid_public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:153,1
    - Dst: Botan_Tests::key_length_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:154,1
    - Dst: Botan_Tests::estimated_strength_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:155,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:158,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:159,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:161,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:162,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:164,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:169,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:169,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:170,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:171,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:172,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:172,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:174,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:175,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:178,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:179,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:180,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 183
    functionName: Botan_Tests::roundtrip_test
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::length_of_hybrid_ciphertext
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - Botan_Tests::length_of_hybrid_public_value
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan_Tests::pubkeys
    - Botan_Tests::global_test_rng
    - Botan_Tests::key_length_of_hybrid_public_key
    - test_bin_eq
    - Botan::secure_vector::size
    - Botan_Tests::estimated_strength_of_hybrid_public_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::TLS::Hybrid_KEM_PublicKey::key_length
    - Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
    - Botan_Tests::length_of_hybrid_shared_key
    - kex_kem_fn
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - auto::encapsulated_shared_key
    - test_sz_eq
    linkageType: ''
    returnType: void
    signature: void roundtrip_test(Test::Result& result, Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:187,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:189,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: std::vector<std::unique_ptr<Botan::Public_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:194,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:196,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: std::vector<std::unique_ptr<Botan::Private_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:201,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:203,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:205,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:207,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:211,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:213,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:215,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:217,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:221,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:223,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:225,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:227,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:231,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:232,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:233,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:233,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:234,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:236,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:236,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:237,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:237,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:238,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:239,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 241
    functionName: Botan_Tests::hybrid_kem_keypair
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::unique_ptr<Botan::Private_Key>>
    - Botan_Tests::CHECK
    - Botan_Tests::pubkeys
    - Botan_Tests::keys
    - Botan_Tests::roundtrip_test
    - Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
    - Botan_Tests::kex_dh
    - test_throws
    - Botan_Tests::sig
    - Botan_Tests::kem
    - Botan::TLS::Hybrid_KEM_PublicKey
    - std::vector<std::unique_ptr<Botan::Public_Key>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hybrid_kem_keypair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:248,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:251,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:253,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:254,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:255,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:256,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:261,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:262,1
    - Dst: Botan::PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:267,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:268,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:268,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:270,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' result'
    - ' kex_fn'
    argTypes:
    - Test::Result
    - std::function<std::unique_ptr<Botan::PK_Key_Agreement_Key>()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 271
    functionName: Botan_Tests::kex_to_kem_roundtrip
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - auto::encapsulated_shared_key
    - Botan_Tests::global_test_rng
    - test_sz_eq
    - Botan::PK_KEM_Decryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan::secure_vector::size
    - test_bin_eq
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: void
    signature: "void kex_to_kem_roundtrip(Test::Result& result,\n                          const
      std::function<std::unique_ptr<Botan::PK_Key_Agreement_Key>()>& kex_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:275,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:277,1
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:278,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:279,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:280,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:283,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:286,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:289,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:290,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 292
    functionName: Botan_Tests::kex_to_kem_adapter
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
    - Botan_Tests::kex_to_kem_roundtrip
    - Botan::KEX_to_KEM_Adapter_PublicKey
    - test_throws
    - Botan_Tests::kem
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> kex_to_kem_adapter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::global_test_rng
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 21
    functionsReached:
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & global_test_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:37,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:37,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Botan_Tests::kem
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 6
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> kem()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:43,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:44,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:44,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:47,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:48,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: Botan_Tests::kex_dh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::private_key_bits
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - Botan::create_private_key
    - Test_Error
    - auto::release
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: std::unique_ptr<Botan::PK_Key_Agreement_Key> kex_dh()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:56,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:57,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:57,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:60,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:61,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: Botan_Tests::kex_ecdh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::private_key_bits
    - dynamic_cast<Botan::PK_Key_Agreement_Key*>
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - Botan::create_private_key
    - Test_Error
    - auto::release
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Key_Agreement_Key>
    signature: std::unique_ptr<Botan::PK_Key_Agreement_Key> kex_ecdh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:68,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:68,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan_Tests::sig
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::global_test_rng
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan::load_private_key
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> sig()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:75,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: Botan_Tests::keys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 6
    functionsReached:
    - std::forward<KeyTs>
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto keys(KeyTs... keys)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: Botan_Tests::as_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - T::public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> as_public_key(T private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    - Dst: Botan_Tests::as_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: Botan_Tests::pubkeys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 6
    functionsReached:
    - Botan_Tests::as_public_key
    - std::forward<KeyTs>
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto pubkeys(KeyTs... keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:98,1
    - Dst: Botan::PK_Key_Agreement::agreed_value_size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:99,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:103,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:106,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: Botan_Tests::length_of_hybrid_shared_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - Botan::PK_Key_Agreement::agreed_value_size
    - Botan::PK_KEM_Encryptor::shared_key_length
    - f
    - Botan_Tests::global_test_rng
    - kex_kem_fn
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_shared_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:111,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:114,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:117,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: Botan_Tests::length_of_hybrid_ciphertext
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - kex_kem_fn
    - public_value
    - f
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_ciphertext(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:122,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:125,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: Botan_Tests::length_of_hybrid_public_value
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - kex_kem_fn
    - public_value
    - f
    - public_key_bits
    linkageType: ''
    returnType: size_t
    signature: size_t length_of_hybrid_public_value(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:131,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: Botan_Tests::key_length_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - kex_kem_fn
    - std::vector::end
    - std::vector::begin
    - std::max_element
    linkageType: ''
    returnType: size_t
    signature: size_t key_length_of_hybrid_public_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:137,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: Botan_Tests::estimated_strength_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - kex_kem_fn
    - std::vector::end
    - std::vector::begin
    - std::max_element
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength_of_hybrid_public_key(Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:143,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:143,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:146,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:149,1
    - Dst: Botan_Tests::length_of_hybrid_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:151,1
    - Dst: Botan_Tests::length_of_hybrid_ciphertext
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:152,1
    - Dst: Botan_Tests::length_of_hybrid_public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:153,1
    - Dst: Botan_Tests::key_length_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:154,1
    - Dst: Botan_Tests::estimated_strength_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:155,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:158,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:159,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:161,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:162,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:164,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:169,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:169,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:170,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:171,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:172,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:172,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:174,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:175,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:178,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:179,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:180,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 183
    functionName: Botan_Tests::roundtrip_test
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::length_of_hybrid_ciphertext
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - Botan_Tests::length_of_hybrid_public_value
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan_Tests::pubkeys
    - Botan_Tests::global_test_rng
    - Botan_Tests::key_length_of_hybrid_public_key
    - test_bin_eq
    - Botan::secure_vector::size
    - Botan_Tests::estimated_strength_of_hybrid_public_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::TLS::Hybrid_KEM_PublicKey::key_length
    - Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
    - Botan_Tests::length_of_hybrid_shared_key
    - kex_kem_fn
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - auto::encapsulated_shared_key
    - test_sz_eq
    linkageType: ''
    returnType: void
    signature: void roundtrip_test(Test::Result& result, Ts... kex_kem_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:187,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:189,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: std::vector<std::unique_ptr<Botan::Public_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:194,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:196,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: std::vector<std::unique_ptr<Botan::Private_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:201,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:203,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:205,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:207,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:208,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:211,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:213,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:215,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:216,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:217,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:218,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:221,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:223,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:225,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:226,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:227,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:231,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:232,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:233,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:233,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:234,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:236,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:236,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:237,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:237,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:238,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:239,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 241
    functionName: Botan_Tests::hybrid_kem_keypair
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::unique_ptr<Botan::Private_Key>>
    - Botan_Tests::CHECK
    - Botan_Tests::pubkeys
    - Botan_Tests::keys
    - Botan_Tests::roundtrip_test
    - Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
    - Botan_Tests::kex_dh
    - test_throws
    - Botan_Tests::sig
    - Botan_Tests::kem
    - Botan::TLS::Hybrid_KEM_PublicKey
    - std::vector<std::unique_ptr<Botan::Public_Key>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hybrid_kem_keypair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:248,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:251,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:253,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:254,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:255,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:256,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:261,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:262,1
    - Dst: Botan::PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:267,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:268,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:268,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:270,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' result'
    - ' kex_fn'
    argTypes:
    - Test::Result
    - std::function<std::unique_ptr<Botan::PK_Key_Agreement_Key>()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 271
    functionName: Botan_Tests::kex_to_kem_roundtrip
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::shared_key
    - auto::encapsulated_shared_key
    - Botan_Tests::global_test_rng
    - test_sz_eq
    - Botan::PK_KEM_Decryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan::secure_vector::size
    - test_bin_eq
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: void
    signature: "void kex_to_kem_roundtrip(Test::Result& result,\n                          const
      std::function<std::unique_ptr<Botan::PK_Key_Agreement_Key>()>& kex_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:275,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:277,1
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:278,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:279,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:280,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:283,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:286,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:289,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:290,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 292
    functionName: Botan_Tests::kex_to_kem_adapter
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
    - Botan_Tests::kex_to_kem_roundtrip
    - Botan::KEX_to_KEM_Adapter_PublicKey
    - test_throws
    - Botan_Tests::kem
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> kex_to_kem_adapter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::PBKDF_KAT_Tests::PBKDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PBKDF_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:32,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:33,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:36,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pbkdf.cpp:39,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:43,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:43,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:47,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:49,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pbkdf.cpp:52,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:56,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ' pbkdf_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 64
    functionName: Botan_Tests::PBKDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - get_req_str
    - auto::hash
    - Test::Result::note_missing
    - Test::Result::test_str_eq
    - std::vector::data
    - Botan::PBKDF::create
    - Botan::PasswordHashFamily::create
    - auto::name
    - auto::derive_key
    - Test::Result::test_bin_eq
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& pbkdf_name, const VarMap&
      vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:83,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pbkdf.cpp:86,1
    - Dst: auto::tune_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:91,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:94,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:98,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:98,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:99,1
    - Dst: auto::memory_param
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:102,1
    - Dst: auto::iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:102,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:106,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:108,1
    - Dst: auto::default_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:110,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pbkdf.cpp:114,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pbkdf.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pbkdf.cpp:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Pwdhash_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::tune_params
    - Test::Result::test_note
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::hash
    - std::unique_ptr::hash
    - std::vector::push_back
    - auto::default_params
    - auto::iterations
    - Botan::PasswordHashFamily::create
    - auto::name
    - Test::Result::test_bin_eq
    - auto::parallelism
    - auto::memory_param
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan_Tests::Bcrypt_PBKDF_KAT_Tests::Bcrypt_PBKDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bcrypt_PBKDF_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:137,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:138,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:139,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:140,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:147,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:153,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:154,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Bcrypt_PBKDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::hash
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - auto::from_iterations
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Scrypt_KAT_Tests::Scrypt_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Scrypt_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:173,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:174,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:175,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:176,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:177,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:178,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pbkdf.cpp:182,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:186,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:189,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:193,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:195,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:196,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 201
    functionName: Botan_Tests::Scrypt_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - get_req_str
    - auto::hash
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Botan_Tests::Argon2_KAT_Tests::Argon2_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Argon2_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:215,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:216,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:217,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:218,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:219,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:220,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:221,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:222,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:226,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:229,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:233,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pbkdf.cpp:235,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pbkdf.cpp:235,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:237,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:238,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' mode'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 243
    functionName: Botan_Tests::Argon2_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::hash
    - std::vector::end
    - get_opt_bin
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - std::vector::begin
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& mode, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:260,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:260,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:261,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:261,1
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:264,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_pbkdf.cpp:264,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:266,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:268,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:269,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:275,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pbkdf.cpp:276,1
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:282,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_pbkdf.cpp:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 289
    functionName: Botan_Tests::PGP_S2K_Iter_Test::run
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_sz_lte
    - Botan::RFC4880_encode_count
    - Test::Result::test_sz_gte
    - Test::Result::test_sz_eq
    - Botan::RFC4880_decode_count
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::PBKDF_KAT_Tests::PBKDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PBKDF_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:32,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:33,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:36,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pbkdf.cpp:39,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:43,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:43,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:47,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:49,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pbkdf.cpp:52,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:56,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ' pbkdf_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 64
    functionName: Botan_Tests::PBKDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - get_req_str
    - auto::hash
    - Test::Result::note_missing
    - Test::Result::test_str_eq
    - std::vector::data
    - Botan::PBKDF::create
    - Botan::PasswordHashFamily::create
    - auto::name
    - auto::derive_key
    - Test::Result::test_bin_eq
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& pbkdf_name, const VarMap&
      vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:83,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pbkdf.cpp:86,1
    - Dst: auto::tune_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:91,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:94,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:98,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:98,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:99,1
    - Dst: auto::memory_param
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:102,1
    - Dst: auto::iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:102,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:106,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:108,1
    - Dst: auto::default_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:110,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pbkdf.cpp:114,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pbkdf.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pbkdf.cpp:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Pwdhash_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::tune_params
    - Test::Result::test_note
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::hash
    - std::unique_ptr::hash
    - std::vector::push_back
    - auto::default_params
    - auto::iterations
    - Botan::PasswordHashFamily::create
    - auto::name
    - Test::Result::test_bin_eq
    - auto::parallelism
    - auto::memory_param
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan_Tests::Bcrypt_PBKDF_KAT_Tests::Bcrypt_PBKDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bcrypt_PBKDF_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:137,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:138,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:139,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:140,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:147,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:153,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:154,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Bcrypt_PBKDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::hash
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - auto::from_iterations
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Scrypt_KAT_Tests::Scrypt_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Scrypt_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:173,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:174,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:175,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:176,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:177,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:178,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pbkdf.cpp:182,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:186,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:189,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:193,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:195,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:196,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 201
    functionName: Botan_Tests::Scrypt_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - get_req_str
    - auto::hash
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Botan_Tests::Argon2_KAT_Tests::Argon2_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Argon2_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:215,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:216,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:217,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:218,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:219,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:220,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:221,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:222,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:226,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:229,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:233,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pbkdf.cpp:235,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pbkdf.cpp:235,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:237,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:238,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' mode'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 243
    functionName: Botan_Tests::Argon2_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::hash
    - std::vector::end
    - get_opt_bin
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - std::vector::begin
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& mode, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:260,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:260,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:261,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:261,1
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:264,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_pbkdf.cpp:264,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:266,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:268,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:269,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:275,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pbkdf.cpp:276,1
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:282,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_pbkdf.cpp:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 289
    functionName: Botan_Tests::PGP_S2K_Iter_Test::run
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_sz_lte
    - Botan::RFC4880_encode_count
    - Test::Result::test_sz_gte
    - Test::Result::test_sz_eq
    - Botan::RFC4880_decode_count
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::PBKDF_KAT_Tests::PBKDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PBKDF_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:32,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:33,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:36,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pbkdf.cpp:39,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:43,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:43,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:47,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:49,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pbkdf.cpp:52,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:56,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ' pbkdf_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 64
    functionName: Botan_Tests::PBKDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - get_req_str
    - auto::hash
    - Test::Result::note_missing
    - Test::Result::test_str_eq
    - std::vector::data
    - Botan::PBKDF::create
    - Botan::PasswordHashFamily::create
    - auto::name
    - auto::derive_key
    - Test::Result::test_bin_eq
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& pbkdf_name, const VarMap&
      vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:83,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pbkdf.cpp:86,1
    - Dst: auto::tune_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:91,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:94,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:98,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:98,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:99,1
    - Dst: auto::memory_param
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:102,1
    - Dst: auto::iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:102,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:106,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:108,1
    - Dst: auto::default_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:110,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pbkdf.cpp:114,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pbkdf.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pbkdf.cpp:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Pwdhash_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::tune_params
    - Test::Result::test_note
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::hash
    - std::unique_ptr::hash
    - std::vector::push_back
    - auto::default_params
    - auto::iterations
    - Botan::PasswordHashFamily::create
    - auto::name
    - Test::Result::test_bin_eq
    - auto::parallelism
    - auto::memory_param
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan_Tests::Bcrypt_PBKDF_KAT_Tests::Bcrypt_PBKDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bcrypt_PBKDF_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:137,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:138,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:139,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:140,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:147,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:153,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:154,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Bcrypt_PBKDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::hash
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - auto::from_iterations
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Scrypt_KAT_Tests::Scrypt_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Scrypt_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:173,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:174,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:175,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:176,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:177,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:178,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pbkdf.cpp:182,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:186,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:189,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:193,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:195,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:196,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 201
    functionName: Botan_Tests::Scrypt_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - get_req_str
    - auto::hash
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Botan_Tests::Argon2_KAT_Tests::Argon2_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Argon2_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:215,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:216,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:217,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:218,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:219,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:220,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:221,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:222,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:226,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:229,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:233,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pbkdf.cpp:235,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pbkdf.cpp:235,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:237,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:238,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' mode'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 243
    functionName: Botan_Tests::Argon2_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::hash
    - std::vector::end
    - get_opt_bin
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - std::vector::begin
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& mode, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:260,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:260,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:261,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:261,1
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:264,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_pbkdf.cpp:264,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:266,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:268,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:269,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:275,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pbkdf.cpp:276,1
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:282,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_pbkdf.cpp:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 289
    functionName: Botan_Tests::PGP_S2K_Iter_Test::run
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_sz_lte
    - Botan::RFC4880_encode_count
    - Test::Result::test_sz_gte
    - Test::Result::test_sz_eq
    - Botan::RFC4880_decode_count
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::PBKDF_KAT_Tests::PBKDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PBKDF_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:32,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:33,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:36,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pbkdf.cpp:39,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:43,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:43,1
    - Dst: auto::derive_key
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:46,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:47,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:49,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pbkdf.cpp:52,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:56,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ' pbkdf_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 64
    functionName: Botan_Tests::PBKDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - get_req_str
    - auto::hash
    - Test::Result::note_missing
    - Test::Result::test_str_eq
    - std::vector::data
    - Botan::PBKDF::create
    - Botan::PasswordHashFamily::create
    - auto::name
    - auto::derive_key
    - Test::Result::test_bin_eq
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& pbkdf_name, const VarMap&
      vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:83,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pbkdf.cpp:86,1
    - Dst: auto::tune_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:91,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:94,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:98,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pbkdf.cpp:98,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:99,1
    - Dst: auto::memory_param
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_pbkdf.cpp:100,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:102,1
    - Dst: auto::iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:102,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:106,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:108,1
    - Dst: auto::default_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:110,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pbkdf.cpp:114,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pbkdf.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pbkdf.cpp:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Pwdhash_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::tune_params
    - Test::Result::test_note
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::hash
    - std::unique_ptr::hash
    - std::vector::push_back
    - auto::default_params
    - auto::iterations
    - Botan::PasswordHashFamily::create
    - auto::name
    - Test::Result::test_bin_eq
    - auto::parallelism
    - auto::memory_param
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan_Tests::Bcrypt_PBKDF_KAT_Tests::Bcrypt_PBKDF_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bcrypt_PBKDF_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:137,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:138,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:139,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:140,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:147,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/tests/test_pbkdf.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:153,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:154,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Bcrypt_PBKDF_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::hash
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - auto::from_iterations
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Scrypt_KAT_Tests::Scrypt_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Scrypt_KAT_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:173,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:174,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:175,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:176,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pbkdf.cpp:177,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:178,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pbkdf.cpp:182,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:186,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:189,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:193,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:195,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:196,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 201
    functionName: Botan_Tests::Scrypt_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - get_req_str
    - auto::hash
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Botan_Tests::Argon2_KAT_Tests::Argon2_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Argon2_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:215,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:216,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pbkdf.cpp:217,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:218,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:219,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:220,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:221,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pbkdf.cpp:222,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/tests/test_pbkdf.cpp:226,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pbkdf.cpp:229,1
    - Dst: auto::from_params
      Src: /src/botan/src/tests/test_pbkdf.cpp:233,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pbkdf.cpp:235,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pbkdf.cpp:235,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pbkdf.cpp:237,1
    - Dst: auto::hash
      Src: /src/botan/src/tests/test_pbkdf.cpp:238,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' mode'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 243
    functionName: Botan_Tests::Argon2_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::hash
    - std::vector::end
    - get_opt_bin
    - Botan::PasswordHashFamily::create
    - Test::Result::test_bin_eq
    - std::vector::begin
    - Test::Result::test_failure
    - get_req_sz
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& mode, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:260,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:260,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:261,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:261,1
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:264,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_pbkdf.cpp:264,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:266,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:268,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pbkdf.cpp:269,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:275,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_pbkdf.cpp:276,1
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/tests/test_pbkdf.cpp:282,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_pbkdf.cpp:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 289
    functionName: Botan_Tests::PGP_S2K_Iter_Test::run
    functionSourceFile: /src/botan/src/tests/test_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_sz_lte
    - Botan::RFC4880_encode_count
    - Test::Result::test_sz_gte
    - Test::Result::test_sz_eq
    - Botan::RFC4880_decode_count
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:38,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:43,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:44,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:49,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tests.cpp:49,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:55,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:56,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:59,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tests.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tests.cpp:65,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:66,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_tests.cpp:73,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:74,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tests.cpp:81,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:82,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_tests.cpp:89,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:90,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tests.cpp:95,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:96,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_tests.cpp:101,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:102,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_tests.cpp:107,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:108,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_tests.cpp:113,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:114,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_tests.cpp:119,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:120,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_tests.cpp:125,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:126,1
    - Dst: Test::Result::test_rc
      Src: /src/botan/src/tests/test_tests.cpp:131,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:132,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_tests.cpp:137,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:138,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:143,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:144,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:145,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:150,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tests.cpp:152,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:154,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:159,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:160,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:165,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:166,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:172,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:173,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:174,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_tests.cpp:179,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:179,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:180,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:186,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:187,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_tests.cpp:188,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:189,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:194,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:195,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_tests.cpp:196,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:197,1
    - Dst: Botan_Tests::Test_Tests::test_testsuite_rng
      Src: /src/botan/src/tests/test_tests.cpp:201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 202
    functionName: Botan_Tests::Test_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_bn_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_sz_ne
    - Test::Result::test_rc_fail
    - Test::Result::test_str_not_empty
    - Botan_Tests::Test_Tests::verify_failure
    - Test::Result::test_failure
    - Test::Result::test_bin_ne
    - Botan::BigInt::from_word
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_rc_ok
    - Test::Result::test_no_throw
    - Test::Result::test_throws
    - Botan_Tests::Test::Result::Failure
    - Botan_Tests::Test_Tests::test_testsuite_rng
    - Test::Result::test_bn_ne
    - Test::Result::test_sz_lte
    - Test::Result::test_rc
    - Test::Result::test_str_ne
    - std::vector<uint8_t>
    - Test::Result::test_sz_lt
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tests.cpp:212,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_tests.cpp:215,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:220,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tests.cpp:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 227
    functionName: Botan_Tests::Test_Tests::test_testsuite_rng
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    - Botan_Tests::Test::new_rng
    - auto::next_byte
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_testsuite_rng()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tests_failed
      Src: /src/botan/src/tests/test_tests.cpp:230,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_tests.cpp:231,1
    - Dst: result_string
      Src: /src/botan/src/tests/test_tests.cpp:232,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tests.cpp:234,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_tests.cpp:234,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tests.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' what'
    - ' result'
    - ' test_result'
    argTypes:
    - std::string
    - Test::Result
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: Botan_Tests::Test_Tests::verify_failure
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 1
    functionsReached:
    - test_is_true
    - tests_failed
    - result_string
    - test_failure
    - std::string::find
    - test_success
    linkageType: ''
    returnType: void
    signature: void verify_failure(const std::string& what, Test::Result& result,
      const Test::Result& test_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:38,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:43,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:44,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:49,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tests.cpp:49,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:55,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:56,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:59,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tests.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tests.cpp:65,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:66,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_tests.cpp:73,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:74,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tests.cpp:81,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:82,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_tests.cpp:89,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:90,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tests.cpp:95,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:96,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_tests.cpp:101,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:102,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_tests.cpp:107,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:108,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_tests.cpp:113,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:114,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_tests.cpp:119,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:120,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_tests.cpp:125,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:126,1
    - Dst: Test::Result::test_rc
      Src: /src/botan/src/tests/test_tests.cpp:131,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:132,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_tests.cpp:137,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:138,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:143,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:144,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:145,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:150,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tests.cpp:152,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:154,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:159,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:160,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:165,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:166,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:172,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:173,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:174,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_tests.cpp:179,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:179,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:180,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:186,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:187,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_tests.cpp:188,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:189,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:194,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:195,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_tests.cpp:196,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:197,1
    - Dst: Botan_Tests::Test_Tests::test_testsuite_rng
      Src: /src/botan/src/tests/test_tests.cpp:201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 202
    functionName: Botan_Tests::Test_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_bn_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_sz_ne
    - Test::Result::test_rc_fail
    - Test::Result::test_str_not_empty
    - Botan_Tests::Test_Tests::verify_failure
    - Test::Result::test_failure
    - Test::Result::test_bin_ne
    - Botan::BigInt::from_word
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_rc_ok
    - Test::Result::test_no_throw
    - Test::Result::test_throws
    - Botan_Tests::Test::Result::Failure
    - Botan_Tests::Test_Tests::test_testsuite_rng
    - Test::Result::test_bn_ne
    - Test::Result::test_sz_lte
    - Test::Result::test_rc
    - Test::Result::test_str_ne
    - std::vector<uint8_t>
    - Test::Result::test_sz_lt
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tests.cpp:212,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_tests.cpp:215,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:220,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tests.cpp:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 227
    functionName: Botan_Tests::Test_Tests::test_testsuite_rng
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    - Botan_Tests::Test::new_rng
    - auto::next_byte
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_testsuite_rng()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tests_failed
      Src: /src/botan/src/tests/test_tests.cpp:230,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_tests.cpp:231,1
    - Dst: result_string
      Src: /src/botan/src/tests/test_tests.cpp:232,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tests.cpp:234,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_tests.cpp:234,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tests.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' what'
    - ' result'
    - ' test_result'
    argTypes:
    - std::string
    - Test::Result
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: Botan_Tests::Test_Tests::verify_failure
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 2
    functionsReached:
    - test_is_true
    - tests_failed
    - result_string
    - test_failure
    - std::string::find
    - test_success
    linkageType: ''
    returnType: void
    signature: void verify_failure(const std::string& what, Test::Result& result,
      const Test::Result& test_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:38,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:43,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:44,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:49,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tests.cpp:49,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:55,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:56,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:59,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tests.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tests.cpp:65,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:66,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_tests.cpp:73,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:74,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tests.cpp:81,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:82,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_tests.cpp:89,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:90,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tests.cpp:95,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:96,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_tests.cpp:101,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:102,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_tests.cpp:107,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:108,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_tests.cpp:113,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:114,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_tests.cpp:119,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:120,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_tests.cpp:125,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:126,1
    - Dst: Test::Result::test_rc
      Src: /src/botan/src/tests/test_tests.cpp:131,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:132,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_tests.cpp:137,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:138,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:143,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:144,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:145,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:150,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tests.cpp:152,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:154,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:159,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:160,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:165,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:166,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:172,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:173,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:174,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_tests.cpp:179,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:179,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:180,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:186,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:187,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_tests.cpp:188,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:189,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:194,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:195,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_tests.cpp:196,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:197,1
    - Dst: Botan_Tests::Test_Tests::test_testsuite_rng
      Src: /src/botan/src/tests/test_tests.cpp:201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 202
    functionName: Botan_Tests::Test_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_bn_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_sz_ne
    - Test::Result::test_rc_fail
    - Test::Result::test_str_not_empty
    - Botan_Tests::Test_Tests::verify_failure
    - Test::Result::test_failure
    - Test::Result::test_bin_ne
    - Botan::BigInt::from_word
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_rc_ok
    - Test::Result::test_no_throw
    - Test::Result::test_throws
    - Botan_Tests::Test::Result::Failure
    - Botan_Tests::Test_Tests::test_testsuite_rng
    - Test::Result::test_bn_ne
    - Test::Result::test_sz_lte
    - Test::Result::test_rc
    - Test::Result::test_str_ne
    - std::vector<uint8_t>
    - Test::Result::test_sz_lt
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tests.cpp:212,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_tests.cpp:215,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:220,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tests.cpp:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 227
    functionName: Botan_Tests::Test_Tests::test_testsuite_rng
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    - Botan_Tests::Test::new_rng
    - auto::next_byte
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_testsuite_rng()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tests_failed
      Src: /src/botan/src/tests/test_tests.cpp:230,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_tests.cpp:231,1
    - Dst: result_string
      Src: /src/botan/src/tests/test_tests.cpp:232,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tests.cpp:234,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_tests.cpp:234,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tests.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' what'
    - ' result'
    - ' test_result'
    argTypes:
    - std::string
    - Test::Result
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: Botan_Tests::Test_Tests::verify_failure
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 3
    functionsReached:
    - test_is_true
    - tests_failed
    - result_string
    - test_failure
    - std::string::find
    - test_success
    linkageType: ''
    returnType: void
    signature: void verify_failure(const std::string& what, Test::Result& result,
      const Test::Result& test_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:38,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:43,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:44,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:49,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tests.cpp:49,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:55,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:56,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:59,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tests.cpp:59,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tests.cpp:65,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:66,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_tests.cpp:73,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:74,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tests.cpp:81,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:82,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_tests.cpp:89,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:90,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_tests.cpp:95,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:96,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_tests.cpp:101,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:102,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_tests.cpp:107,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:108,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_tests.cpp:113,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:114,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_tests.cpp:119,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:120,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_tests.cpp:125,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:126,1
    - Dst: Test::Result::test_rc
      Src: /src/botan/src/tests/test_tests.cpp:131,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:132,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_tests.cpp:137,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:138,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:143,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:144,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:145,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:150,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tests.cpp:152,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:154,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:159,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:160,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:165,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:166,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:172,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:173,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:174,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_tests.cpp:179,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:179,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:180,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:186,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:187,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_tests.cpp:188,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:189,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:194,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:195,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_tests.cpp:196,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:197,1
    - Dst: Botan_Tests::Test_Tests::test_testsuite_rng
      Src: /src/botan/src/tests/test_tests.cpp:201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 202
    functionName: Botan_Tests::Test_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_bn_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_sz_ne
    - Test::Result::test_rc_fail
    - Test::Result::test_str_not_empty
    - Botan_Tests::Test_Tests::verify_failure
    - Test::Result::test_failure
    - Test::Result::test_bin_ne
    - Botan::BigInt::from_word
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_rc_ok
    - Test::Result::test_no_throw
    - Test::Result::test_throws
    - Botan_Tests::Test::Result::Failure
    - Botan_Tests::Test_Tests::test_testsuite_rng
    - Test::Result::test_bn_ne
    - Test::Result::test_sz_lte
    - Test::Result::test_rc
    - Test::Result::test_str_ne
    - std::vector<uint8_t>
    - Test::Result::test_sz_lt
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tests.cpp:212,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_tests.cpp:215,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:220,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tests.cpp:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 227
    functionName: Botan_Tests::Test_Tests::test_testsuite_rng
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    - Botan_Tests::Test::new_rng
    - auto::next_byte
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_testsuite_rng()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tests_failed
      Src: /src/botan/src/tests/test_tests.cpp:230,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_tests.cpp:231,1
    - Dst: result_string
      Src: /src/botan/src/tests/test_tests.cpp:232,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tests.cpp:234,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_tests.cpp:234,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tests.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' what'
    - ' result'
    - ' test_result'
    argTypes:
    - std::string
    - Test::Result
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: Botan_Tests::Test_Tests::verify_failure
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 4
    functionsReached:
    - test_is_true
    - tests_failed
    - result_string
    - test_failure
    - std::string::find
    - test_success
    linkageType: ''
    returnType: void
    signature: void verify_failure(const std::string& what, Test::Result& result,
      const Test::Result& test_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_Tests::X448_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::X448_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::X448_PublicKey>
      Src: /src/botan/src/tests/test_x448.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan_Tests::X448_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::X448_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_Tests::X448_Agreement_Tests::X448_Agreement_Tests
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X448_Agreement_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: Botan_Tests::X448_Agreement_Tests::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: bool
    signature: bool agreement_should_fail(const std::string& /*unused*/, const VarMap&
      vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_Tests::X448_Agreement_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x448.cpp:51,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x448.cpp:51,1
    - Dst: std::make_unique<Botan::X448_PrivateKey>
      Src: /src/botan/src/tests/test_x448.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan_Tests::X448_Agreement_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - get_req_bin
    - std::make_unique<Botan::X448_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan_Tests::X448_Agreement_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_Tests::X448_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::X448_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::X448_PublicKey>
      Src: /src/botan/src/tests/test_x448.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan_Tests::X448_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::X448_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_Tests::X448_Agreement_Tests::X448_Agreement_Tests
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X448_Agreement_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: Botan_Tests::X448_Agreement_Tests::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: bool
    signature: bool agreement_should_fail(const std::string& /*unused*/, const VarMap&
      vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_Tests::X448_Agreement_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x448.cpp:51,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x448.cpp:51,1
    - Dst: std::make_unique<Botan::X448_PrivateKey>
      Src: /src/botan/src/tests/test_x448.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan_Tests::X448_Agreement_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - get_req_bin
    - std::make_unique<Botan::X448_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan_Tests::X448_Agreement_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_Tests::X448_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::X448_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::X448_PublicKey>
      Src: /src/botan/src/tests/test_x448.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan_Tests::X448_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::X448_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_Tests::X448_Agreement_Tests::X448_Agreement_Tests
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X448_Agreement_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: Botan_Tests::X448_Agreement_Tests::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: bool
    signature: bool agreement_should_fail(const std::string& /*unused*/, const VarMap&
      vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_Tests::X448_Agreement_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x448.cpp:51,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x448.cpp:51,1
    - Dst: std::make_unique<Botan::X448_PrivateKey>
      Src: /src/botan/src/tests/test_x448.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan_Tests::X448_Agreement_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - get_req_bin
    - std::make_unique<Botan::X448_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan_Tests::X448_Agreement_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_Tests::X448_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::X448_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::X448_PublicKey>
      Src: /src/botan/src/tests/test_x448.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan_Tests::X448_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::X448_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_Tests::X448_Agreement_Tests::X448_Agreement_Tests
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X448_Agreement_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: Botan_Tests::X448_Agreement_Tests::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: bool
    signature: bool agreement_should_fail(const std::string& /*unused*/, const VarMap&
      vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_Tests::X448_Agreement_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x448.cpp:51,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x448.cpp:51,1
    - Dst: std::make_unique<Botan::X448_PrivateKey>
      Src: /src/botan/src/tests/test_x448.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan_Tests::X448_Agreement_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - get_req_bin
    - std::make_unique<Botan::X448_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x448.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan_Tests::X448_Agreement_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_x448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_rngs.cpp:20,1
    - Dst: has_value
      Src: /src/botan/src/tests/test_rngs.cpp:21,1
    - Dst: value
      Src: /src/botan/src/tests/test_rngs.cpp:22,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rngs.cpp:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Fixed_Output_RNG::random
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 2
    functionsReached:
    - Test_Error
    - size
    - has_value
    - value
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Fixed_Output_RNG::random()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rngs.cpp:34,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rngs.cpp:35,1
    - Dst: end
      Src: /src/botan/src/tests/test_rngs.cpp:35,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rngs.cpp:35,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_rngs.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' in_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::end
    - insert
    - std::vector::begin
    - end
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG::Fixed_Output_RNG(const std::string& in_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rngs.cpp:40,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    - Dst: end
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - len
    argTypes:
    - RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - std::vector::end
    - insert
    - std::vector::begin
    - end
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG::Fixed_Output_RNG(RandomNumberGenerator& rng,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: CTR_DRBG_AES256::~CTR_DRBG_AES256()
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::~CTR_DRBG_AES256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/tests/test_rngs.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan_Tests::CTR_DRBG_AES256::clear
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - set_key
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::clear()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/test_rngs.cpp:56,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:57,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rngs.cpp:58,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::clear
      Src: /src/botan/src/tests/test_rngs.cpp:61,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::update
      Src: /src/botan/src/tests/test_rngs.cpp:62,1
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/tests/test_rngs.cpp:65,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:66,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:67,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::incr_V_into
      Src: /src/botan/src/tests/test_rngs.cpp:70,1
    - Dst: std::span<uint8_t>::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:70,1
    - Dst: encrypt_n
      Src: /src/botan/src/tests/test_rngs.cpp:73,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:73,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:73,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::incr_V_into
      Src: /src/botan/src/tests/test_rngs.cpp:77,1
    - Dst: encrypt
      Src: /src/botan/src/tests/test_rngs.cpp:78,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_rngs.cpp:79,1
    - Dst: std::span<uint8_t>::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:79,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::update
      Src: /src/botan/src/tests/test_rngs.cpp:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 84
    functionName: Botan_Tests::CTR_DRBG_AES256::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CTR_DRBG_AES256::incr_V_into
    - std::span<uint8_t>::data
    - Botan_Tests::CTR_DRBG_AES256::clear
    - std::span<uint8_t>::size
    - Botan::copy_mem
    - encrypt_n
    - std::span<uint8_t>::subspan
    - std::span<const uint8_t>::empty
    - Test_Error
    - Botan_Tests::CTR_DRBG_AES256::update
    - std::span<const uint8_t>::size
    - encrypt
    - std::span<uint8_t>::empty
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::fill_bytes_with_input(std::span<uint8_t> output,
      std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_rngs.cpp:87,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_rngs.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: Botan_Tests::CTR_DRBG_AES256::CTR_DRBG_AES256
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - add_entropy
    - Botan::BlockCipher::create_or_throw
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::CTR_DRBG_AES256(std::span<const uint8_t> seed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_rngs.cpp:92,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:92,1
    - Dst: Botan::store_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:99,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan_Tests::CTR_DRBG_AES256::incr_V_into
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 1
    functionsReached:
    - std::span<uint8_t>::size
    - BOTAN_ASSERT_NOMSG
    - Botan::store_be<uint64_t>
    - std::span<uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::incr_V_into(std::span<uint8_t> output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CTR_DRBG_AES256::incr_V_into
      Src: /src/botan/src/tests/test_rngs.cpp:107,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:107,1
    - Dst: encrypt_n
      Src: /src/botan/src/tests/test_rngs.cpp:110,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:110,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:110,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/test_rngs.cpp:112,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_rngs.cpp:113,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:113,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_rngs.cpp:113,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:114,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_rngs.cpp:119,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_rngs.cpp:119,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:121,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:121,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:122,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - provided_data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: Botan_Tests::CTR_DRBG_AES256::update
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::CTR_DRBG_AES256::incr_V_into
    - Botan::load_be<uint64_t>
    - std::array::size
    - std::span::subspan
    - std::span
    - encrypt_n
    - std::array::data
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - set_key
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::update(std::span<const uint8_t> provided_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_rngs.cpp:20,1
    - Dst: has_value
      Src: /src/botan/src/tests/test_rngs.cpp:21,1
    - Dst: value
      Src: /src/botan/src/tests/test_rngs.cpp:22,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rngs.cpp:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Fixed_Output_RNG::random
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 2
    functionsReached:
    - Test_Error
    - size
    - has_value
    - value
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Fixed_Output_RNG::random()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rngs.cpp:34,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rngs.cpp:35,1
    - Dst: end
      Src: /src/botan/src/tests/test_rngs.cpp:35,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rngs.cpp:35,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_rngs.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' in_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::end
    - insert
    - std::vector::begin
    - end
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG::Fixed_Output_RNG(const std::string& in_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rngs.cpp:40,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    - Dst: end
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - len
    argTypes:
    - RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - std::vector::end
    - insert
    - std::vector::begin
    - end
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG::Fixed_Output_RNG(RandomNumberGenerator& rng,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: CTR_DRBG_AES256::~CTR_DRBG_AES256()
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::~CTR_DRBG_AES256()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/tests/test_rngs.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan_Tests::CTR_DRBG_AES256::clear
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 1
    functionsReached:
    - set_key
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::clear()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/test_rngs.cpp:56,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:57,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rngs.cpp:58,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::clear
      Src: /src/botan/src/tests/test_rngs.cpp:61,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::update
      Src: /src/botan/src/tests/test_rngs.cpp:62,1
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/tests/test_rngs.cpp:65,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:66,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:67,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::incr_V_into
      Src: /src/botan/src/tests/test_rngs.cpp:70,1
    - Dst: std::span<uint8_t>::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:70,1
    - Dst: encrypt_n
      Src: /src/botan/src/tests/test_rngs.cpp:73,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:73,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:73,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::incr_V_into
      Src: /src/botan/src/tests/test_rngs.cpp:77,1
    - Dst: encrypt
      Src: /src/botan/src/tests/test_rngs.cpp:78,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_rngs.cpp:79,1
    - Dst: std::span<uint8_t>::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:79,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::update
      Src: /src/botan/src/tests/test_rngs.cpp:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 84
    functionName: Botan_Tests::CTR_DRBG_AES256::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CTR_DRBG_AES256::incr_V_into
    - std::span<uint8_t>::data
    - Botan_Tests::CTR_DRBG_AES256::clear
    - std::span<uint8_t>::size
    - Botan::copy_mem
    - encrypt_n
    - std::span<uint8_t>::subspan
    - std::span<const uint8_t>::empty
    - Test_Error
    - Botan_Tests::CTR_DRBG_AES256::update
    - std::span<const uint8_t>::size
    - encrypt
    - std::span<uint8_t>::empty
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::fill_bytes_with_input(std::span<uint8_t> output,
      std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_rngs.cpp:87,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_rngs.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: Botan_Tests::CTR_DRBG_AES256::CTR_DRBG_AES256
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - add_entropy
    - Botan::BlockCipher::create_or_throw
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::CTR_DRBG_AES256(std::span<const uint8_t> seed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_rngs.cpp:92,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:92,1
    - Dst: Botan::store_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:99,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan_Tests::CTR_DRBG_AES256::incr_V_into
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 3
    functionsReached:
    - std::span<uint8_t>::size
    - BOTAN_ASSERT_NOMSG
    - Botan::store_be<uint64_t>
    - std::span<uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::incr_V_into(std::span<uint8_t> output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CTR_DRBG_AES256::incr_V_into
      Src: /src/botan/src/tests/test_rngs.cpp:107,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:107,1
    - Dst: encrypt_n
      Src: /src/botan/src/tests/test_rngs.cpp:110,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:110,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:110,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/test_rngs.cpp:112,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_rngs.cpp:113,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:113,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_rngs.cpp:113,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:114,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_rngs.cpp:119,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_rngs.cpp:119,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:121,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:121,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:122,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - provided_data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: Botan_Tests::CTR_DRBG_AES256::update
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::CTR_DRBG_AES256::incr_V_into
    - Botan::load_be<uint64_t>
    - std::array::size
    - std::span::subspan
    - std::span
    - encrypt_n
    - std::array::data
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - set_key
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::update(std::span<const uint8_t> provided_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::RFC3394_Keywrap_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC3394_Keywrap_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:34,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:37,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:37,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:38,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:38,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:41,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:41,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:43,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Botan::rfc3394_keyunwrap
    - std::vector::end
    - Test::Result::test_bin_eq
    - std::vector::begin
    - Botan::rfc3394_keywrap
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan_Tests::NIST_Keywrap_Tests::NIST_Keywrap_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NIST_Keywrap_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_keywrap.cpp:64,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:68,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:69,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:74,1
    - Dst: nist_key_wrap
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:84,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:96,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:96,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:99,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 103
    functionName: Botan_Tests::NIST_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - nist_key_wrap_padded
    - nist_key_unwrap
    - std::to_string
    - Botan::BlockCipher::create_or_throw
    - std::vector::data
    - nist_key_wrap
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - Test::Result::test_failure
    - Test_Error
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& typ, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::NIST_Keywrap_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NIST_Keywrap_Invalid_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_keywrap.cpp:117,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:121,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:126,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:136,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_keywrap.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:141,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 145
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - nist_key_unwrap
    - Test::Result::test_success
    - std::to_string
    - Botan::BlockCipher::create_or_throw
    - std::vector::data
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - Test::Result::test_failure
    - Test_Error
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& typ, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::RFC3394_Keywrap_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC3394_Keywrap_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:34,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:37,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:37,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:38,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:38,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:41,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:41,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:43,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Botan::rfc3394_keyunwrap
    - std::vector::end
    - Test::Result::test_bin_eq
    - std::vector::begin
    - Botan::rfc3394_keywrap
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan_Tests::NIST_Keywrap_Tests::NIST_Keywrap_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NIST_Keywrap_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_keywrap.cpp:64,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:68,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:69,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:74,1
    - Dst: nist_key_wrap
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:84,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:96,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:96,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:99,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 103
    functionName: Botan_Tests::NIST_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - nist_key_wrap_padded
    - nist_key_unwrap
    - std::to_string
    - Botan::BlockCipher::create_or_throw
    - std::vector::data
    - nist_key_wrap
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - Test::Result::test_failure
    - Test_Error
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& typ, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::NIST_Keywrap_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NIST_Keywrap_Invalid_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_keywrap.cpp:117,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:121,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:126,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:136,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_keywrap.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:141,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 145
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - nist_key_unwrap
    - Test::Result::test_success
    - std::to_string
    - Botan::BlockCipher::create_or_throw
    - std::vector::data
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - Test::Result::test_failure
    - Test_Error
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& typ, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::RFC3394_Keywrap_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC3394_Keywrap_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:34,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:37,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:37,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:38,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:38,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:41,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:41,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:43,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Botan::rfc3394_keyunwrap
    - std::vector::end
    - Test::Result::test_bin_eq
    - std::vector::begin
    - Botan::rfc3394_keywrap
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan_Tests::NIST_Keywrap_Tests::NIST_Keywrap_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NIST_Keywrap_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_keywrap.cpp:64,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:68,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:69,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:74,1
    - Dst: nist_key_wrap
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:84,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:96,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:96,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:99,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 103
    functionName: Botan_Tests::NIST_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - nist_key_wrap_padded
    - nist_key_unwrap
    - std::to_string
    - Botan::BlockCipher::create_or_throw
    - std::vector::data
    - nist_key_wrap
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - Test::Result::test_failure
    - Test_Error
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& typ, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::NIST_Keywrap_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NIST_Keywrap_Invalid_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_keywrap.cpp:117,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:121,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:126,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:136,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_keywrap.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:141,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 145
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - nist_key_unwrap
    - Test::Result::test_success
    - std::to_string
    - Botan::BlockCipher::create_or_throw
    - std::vector::data
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - Test::Result::test_failure
    - Test_Error
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& typ, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::RFC3394_Keywrap_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC3394_Keywrap_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:34,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:37,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:37,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:38,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:38,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:41,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:41,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:43,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Botan::rfc3394_keyunwrap
    - std::vector::end
    - Test::Result::test_bin_eq
    - std::vector::begin
    - Botan::rfc3394_keywrap
    - Test::Result::test_failure
    - get_req_bin
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan_Tests::NIST_Keywrap_Tests::NIST_Keywrap_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NIST_Keywrap_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_keywrap.cpp:64,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:68,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:69,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:72,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:74,1
    - Dst: nist_key_wrap
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:79,1
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:84,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:89,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:91,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:96,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:96,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:99,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 103
    functionName: Botan_Tests::NIST_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - nist_key_wrap_padded
    - nist_key_unwrap
    - std::to_string
    - Botan::BlockCipher::create_or_throw
    - std::vector::data
    - nist_key_wrap
    - Test::Result::test_bin_eq
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - Test::Result::test_failure
    - Test_Error
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& typ, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::NIST_Keywrap_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NIST_Keywrap_Invalid_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_keywrap.cpp:117,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:121,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:124,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:126,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:131,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:133,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:136,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_keywrap.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:141,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 145
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - nist_key_unwrap
    - Test::Result::test_success
    - std::to_string
    - Botan::BlockCipher::create_or_throw
    - std::vector::data
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - Test::Result::test_failure
    - Test_Error
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& typ, const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/main.cpp:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' err'
    - ' list'
    argTypes:
    - std::ostringstream
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: print_item_list
    functionSourceFile: /src/botan/src/tests/main.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void print_item_list(std::ostringstream& err, const std::vector<std::string>&
      list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_item_list
      Src: /src/botan/src/tests/main.cpp:45,1
    - Dst: Botan_Tests::Test::registered_tests
      Src: /src/botan/src/tests/main.cpp:45,1
    - Dst: print_item_list
      Src: /src/botan/src/tests/main.cpp:51,1
    - Dst: Botan_Tests::Test::registered_test_categories
      Src: /src/botan/src/tests/main.cpp:51,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/main.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' spec'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: help_text
    functionSourceFile: /src/botan/src/tests/main.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::registered_test_categories
    - print_item_list
    - Botan_Tests::Test::registered_tests
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string help_text(const std::string& spec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/main.cpp:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' err'
    - ' list'
    argTypes:
    - std::ostringstream
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: print_item_list
    functionSourceFile: /src/botan/src/tests/main.cpp
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void print_item_list(std::ostringstream& err, const std::vector<std::string>&
      list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_item_list
      Src: /src/botan/src/tests/main.cpp:45,1
    - Dst: Botan_Tests::Test::registered_tests
      Src: /src/botan/src/tests/main.cpp:45,1
    - Dst: print_item_list
      Src: /src/botan/src/tests/main.cpp:51,1
    - Dst: Botan_Tests::Test::registered_test_categories
      Src: /src/botan/src/tests/main.cpp:51,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/main.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' spec'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: help_text
    functionSourceFile: /src/botan/src/tests/main.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::registered_test_categories
    - print_item_list
    - Botan_Tests::Test::registered_tests
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string help_text(const std::string& spec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/main.cpp:59,1
    - Dst: Botan_CLI::Argument_Parser::parse_args
      Src: /src/botan/src/tests/main.cpp:73,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/main.cpp:73,1
    - Dst: Botan_CLI::Argument_Parser::flag_set
      Src: /src/botan/src/tests/main.cpp:75,1
    - Dst: help_text
      Src: /src/botan/src/tests/main.cpp:76,1
    - Dst: Botan_CLI::Argument_Parser::flag_set
      Src: /src/botan/src/tests/main.cpp:80,1
    - Dst: Botan_Tests::Test::registered_tests
      Src: /src/botan/src/tests/main.cpp:81,1
    - Dst: Botan_CLI::Argument_Parser::get_arg_sz
      Src: /src/botan/src/tests/main.cpp:92,1
    - Dst: ::setenv
      Src: /src/botan/src/tests/main.cpp:93,1
    - Dst: Botan_CLI::Argument_Parser::get_arg_list
      Src: /src/botan/src/tests/main.cpp:97,1
    - Dst: Botan_CLI::Argument_Parser::get_arg_list
      Src: /src/botan/src/tests/main.cpp:98,1
    - Dst: Botan_CLI::Argument_Parser::get_arg_or
      Src: /src/botan/src/tests/main.cpp:99,1
    - Dst: Botan_CLI::Argument_Parser::get_arg
      Src: /src/botan/src/tests/main.cpp:100,1
    - Dst: Botan_CLI::Argument_Parser::get_arg
      Src: /src/botan/src/tests/main.cpp:101,1
    - Dst: Botan_CLI::Argument_Parser::get_arg
      Src: /src/botan/src/tests/main.cpp:102,1
    - Dst: Botan_CLI::Argument_Parser::get_arg
      Src: /src/botan/src/tests/main.cpp:103,1
    - Dst: Botan_CLI::Argument_Parser::get_arg_hex_sz_or
      Src: /src/botan/src/tests/main.cpp:104,1
    - Dst: Botan_CLI::Argument_Parser::get_arg_hex_sz_or
      Src: /src/botan/src/tests/main.cpp:105,1
    - Dst: Botan_CLI::Argument_Parser::get_arg_or
      Src: /src/botan/src/tests/main.cpp:106,1
    - Dst: Botan_CLI::Argument_Parser::get_arg
      Src: /src/botan/src/tests/main.cpp:107,1
    - Dst: Botan_CLI::Argument_Parser::get_arg
      Src: /src/botan/src/tests/main.cpp:108,1
    - Dst: Botan_CLI::Argument_Parser::get_arg_list
      Src: /src/botan/src/tests/main.cpp:109,1
    - Dst: Botan_CLI::Argument_Parser::get_arg_sz
      Src: /src/botan/src/tests/main.cpp:110,1
    - Dst: Botan_CLI::Argument_Parser::get_arg_sz
      Src: /src/botan/src/tests/main.cpp:111,1
    - Dst: Botan_CLI::Argument_Parser::flag_set
      Src: /src/botan/src/tests/main.cpp:112,1
    - Dst: Botan_CLI::Argument_Parser::flag_set
      Src: /src/botan/src/tests/main.cpp:113,1
    - Dst: Botan_CLI::Argument_Parser::flag_set
      Src: /src/botan/src/tests/main.cpp:114,1
    - Dst: Botan_CLI::Argument_Parser::flag_set
      Src: /src/botan/src/tests/main.cpp:115,1
    - Dst: Botan_CLI::Argument_Parser::flag_set
      Src: /src/botan/src/tests/main.cpp:116,1
    - Dst: Botan_CLI::Argument_Parser::flag_set
      Src: /src/botan/src/tests/main.cpp:117,1
    - Dst: Botan_CLI::Argument_Parser::flag_set
      Src: /src/botan/src/tests/main.cpp:118,1
    - Dst: Botan_Tests::Test_Runner::run
      Src: /src/botan/src/tests/main.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/main.cpp:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 129
    functionName: main
    functionSourceFile: /src/botan/src/tests/main.cpp
    functionUses: 45
    functionsReached:
    - Botan_CLI::Argument_Parser::get_arg_sz
    - Botan_CLI::Argument_Parser::get_arg_hex_sz_or
    - std::vector<std::string>
    - help_text
    - ::setenv
    - Botan_CLI::Argument_Parser::get_arg
    - Botan_CLI::Argument_Parser::get_arg_or
    - Botan_Tests::Test_Runner::run
    - Botan::runtime_version_check
    - Botan_CLI::Argument_Parser::parse_args
    - Botan_Tests::Test::registered_tests
    - Botan_CLI::Argument_Parser::flag_set
    - Botan_CLI::Argument_Parser::get_arg_list
    - what
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::EME_PKCS1v15_Decoding_Tests::EME_PKCS1v15_Decoding_Tests
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EME_PKCS1v15_Decoding_Tests()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EncryptionPaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:38,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:39,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:45,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pk_pad.cpp:46,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:50,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_pk_pad.cpp:51,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_pk_pad.cpp:51,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:52,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pk_pad.cpp:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ' hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 67
    functionName: Botan_Tests::EME_PKCS1v15_Decoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::EncryptionPaddingScheme::create
    - Test::Result::test_bool_eq
    - std::vector::resize
    - auto::unpad
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - auto::has_value
    - auto::value_or
    - Test::Result::test_is_true
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hdr, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/tests/test_pk_pad.cpp:109,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pk_pad.cpp:109,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:110,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:110,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:113,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:115,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:115,1
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/tests/test_pk_pad.cpp:122,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:123,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:126,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:128,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:129,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:136,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:137,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:137,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:142,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 147
    functionName: Botan_Tests::SignaturePaddingSchemeNameTests::run
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::SignaturePaddingScheme::create_or_throw
    - auto::name
    - Botan::SignaturePaddingScheme::create
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::EME_PKCS1v15_Decoding_Tests::EME_PKCS1v15_Decoding_Tests
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EME_PKCS1v15_Decoding_Tests()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EncryptionPaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:38,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:39,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:45,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pk_pad.cpp:46,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:50,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_pk_pad.cpp:51,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_pk_pad.cpp:51,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:52,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pk_pad.cpp:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ' hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 67
    functionName: Botan_Tests::EME_PKCS1v15_Decoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::EncryptionPaddingScheme::create
    - Test::Result::test_bool_eq
    - std::vector::resize
    - auto::unpad
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - auto::has_value
    - auto::value_or
    - Test::Result::test_is_true
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hdr, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/tests/test_pk_pad.cpp:109,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pk_pad.cpp:109,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:110,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:110,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:113,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:115,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:115,1
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/tests/test_pk_pad.cpp:122,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:123,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:126,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:128,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:129,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:136,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:137,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:137,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:142,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 147
    functionName: Botan_Tests::SignaturePaddingSchemeNameTests::run
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::SignaturePaddingScheme::create_or_throw
    - auto::name
    - Botan::SignaturePaddingScheme::create
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::EME_PKCS1v15_Decoding_Tests::EME_PKCS1v15_Decoding_Tests
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EME_PKCS1v15_Decoding_Tests()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EncryptionPaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:38,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:39,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:45,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pk_pad.cpp:46,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:50,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_pk_pad.cpp:51,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_pk_pad.cpp:51,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:52,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pk_pad.cpp:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ' hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 67
    functionName: Botan_Tests::EME_PKCS1v15_Decoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::EncryptionPaddingScheme::create
    - Test::Result::test_bool_eq
    - std::vector::resize
    - auto::unpad
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - auto::has_value
    - auto::value_or
    - Test::Result::test_is_true
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hdr, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/tests/test_pk_pad.cpp:109,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pk_pad.cpp:109,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:110,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:110,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:113,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:115,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:115,1
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/tests/test_pk_pad.cpp:122,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:123,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:126,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:128,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:129,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:136,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:137,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:137,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:142,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 147
    functionName: Botan_Tests::SignaturePaddingSchemeNameTests::run
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::SignaturePaddingScheme::create_or_throw
    - auto::name
    - Botan::SignaturePaddingScheme::create
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::EME_PKCS1v15_Decoding_Tests::EME_PKCS1v15_Decoding_Tests
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EME_PKCS1v15_Decoding_Tests()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EncryptionPaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:38,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:39,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:45,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pk_pad.cpp:46,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:50,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_pk_pad.cpp:51,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_pk_pad.cpp:51,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:52,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pk_pad.cpp:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ' hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 67
    functionName: Botan_Tests::EME_PKCS1v15_Decoding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::EncryptionPaddingScheme::create
    - Test::Result::test_bool_eq
    - std::vector::resize
    - auto::unpad
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - auto::has_value
    - auto::value_or
    - Test::Result::test_is_true
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hdr, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/tests/test_pk_pad.cpp:109,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pk_pad.cpp:109,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:110,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:110,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:113,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:115,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:115,1
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/tests/test_pk_pad.cpp:122,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:123,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:126,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:128,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:129,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:136,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:137,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:137,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:138,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:140,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:142,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 147
    functionName: Botan_Tests::SignaturePaddingSchemeNameTests::run
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Test::Result::test_note
    - Test::Result::test_str_eq
    - Botan::SignaturePaddingScheme::create_or_throw
    - auto::name
    - Botan::SignaturePaddingScheme::create
    - Test::Result::test_failure
    - what
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::X25519_Agreement_Tests::X25519_Agreement_Tests
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519_Agreement_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: Botan_Tests::X25519_Agreement_Tests::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: bool
    signature: bool agreement_should_fail(const std::string& /*unused*/, const VarMap&
      vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_Tests::X25519_Agreement_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:41,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x25519.cpp:42,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x25519.cpp:42,1
    - Dst: std::make_unique<Botan::X25519_PrivateKey>
      Src: /src/botan/src/tests/test_x25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan_Tests::X25519_Agreement_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - get_req_bin
    - std::make_unique<Botan::X25519_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan_Tests::X25519_Agreement_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:61,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:62,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x25519.cpp:70,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:71,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:71,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:72,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:72,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:78,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x25519.cpp:78,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:79,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:81,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:82,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:88,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:89,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:93,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:94,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:99,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:100,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:102,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:102,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:103,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:103,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:106,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:107,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:110,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:110,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:113,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:114,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x25519.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x25519.cpp:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 124
    functionName: Botan_Tests::X25519_Roundtrip_Test::run
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_note
    - std::vector::push_back
    - Botan::PK_Key_Agreement::derive_key
    - Botan_Tests::X25519_Roundtrip_Test::rng
    - Botan::PKCS8::PEM_encode
    - dynamic_cast<Botan::X25519_PublicKey*>
    - auto::get
    - Test::Result::test_bin_eq
    - Botan_CLI::Timer::milliseconds
    - Botan::X25519_PublicKey*::public_value
    - Test::Result::test_failure
    - Botan::SymmetricKey::bits_of
    - Botan::X509::load_key
    - Botan::X509::PEM_encode
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_Tests::X25519_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::X25519_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::X25519_PublicKey>
      Src: /src/botan/src/tests/test_x25519.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: Botan_Tests::X25519_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::X25519_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::X25519_Agreement_Tests::X25519_Agreement_Tests
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519_Agreement_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: Botan_Tests::X25519_Agreement_Tests::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: bool
    signature: bool agreement_should_fail(const std::string& /*unused*/, const VarMap&
      vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_Tests::X25519_Agreement_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:41,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x25519.cpp:42,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x25519.cpp:42,1
    - Dst: std::make_unique<Botan::X25519_PrivateKey>
      Src: /src/botan/src/tests/test_x25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan_Tests::X25519_Agreement_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - get_req_bin
    - std::make_unique<Botan::X25519_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan_Tests::X25519_Agreement_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:61,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:62,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x25519.cpp:70,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:71,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:71,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:72,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:72,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:78,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x25519.cpp:78,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:79,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:81,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:82,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:88,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:89,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:93,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:94,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:99,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:100,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:102,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:102,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:103,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:103,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:106,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:107,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:110,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:110,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:113,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:114,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x25519.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x25519.cpp:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 124
    functionName: Botan_Tests::X25519_Roundtrip_Test::run
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_note
    - std::vector::push_back
    - Botan::PK_Key_Agreement::derive_key
    - Botan_Tests::X25519_Roundtrip_Test::rng
    - Botan::PKCS8::PEM_encode
    - dynamic_cast<Botan::X25519_PublicKey*>
    - auto::get
    - Test::Result::test_bin_eq
    - Botan_CLI::Timer::milliseconds
    - Botan::X25519_PublicKey*::public_value
    - Test::Result::test_failure
    - Botan::SymmetricKey::bits_of
    - Botan::X509::load_key
    - Botan::X509::PEM_encode
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_Tests::X25519_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::X25519_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::X25519_PublicKey>
      Src: /src/botan/src/tests/test_x25519.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: Botan_Tests::X25519_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::X25519_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::X25519_Agreement_Tests::X25519_Agreement_Tests
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519_Agreement_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: Botan_Tests::X25519_Agreement_Tests::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: bool
    signature: bool agreement_should_fail(const std::string& /*unused*/, const VarMap&
      vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_Tests::X25519_Agreement_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:41,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x25519.cpp:42,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x25519.cpp:42,1
    - Dst: std::make_unique<Botan::X25519_PrivateKey>
      Src: /src/botan/src/tests/test_x25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan_Tests::X25519_Agreement_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - get_req_bin
    - std::make_unique<Botan::X25519_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan_Tests::X25519_Agreement_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:61,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:62,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x25519.cpp:70,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:71,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:71,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:72,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:72,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:78,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x25519.cpp:78,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:79,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:81,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:82,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:88,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:89,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:93,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:94,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:99,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:100,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:102,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:102,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:103,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:103,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:106,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:107,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:110,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:110,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:113,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:114,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x25519.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x25519.cpp:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 124
    functionName: Botan_Tests::X25519_Roundtrip_Test::run
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_note
    - std::vector::push_back
    - Botan::PK_Key_Agreement::derive_key
    - Botan_Tests::X25519_Roundtrip_Test::rng
    - Botan::PKCS8::PEM_encode
    - dynamic_cast<Botan::X25519_PublicKey*>
    - auto::get
    - Test::Result::test_bin_eq
    - Botan_CLI::Timer::milliseconds
    - Botan::X25519_PublicKey*::public_value
    - Test::Result::test_failure
    - Botan::SymmetricKey::bits_of
    - Botan::X509::load_key
    - Botan::X509::PEM_encode
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_Tests::X25519_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::X25519_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::X25519_PublicKey>
      Src: /src/botan/src/tests/test_x25519.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: Botan_Tests::X25519_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::X25519_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::X25519_Agreement_Tests::X25519_Agreement_Tests
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519_Agreement_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: Botan_Tests::X25519_Agreement_Tests::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: bool
    signature: bool agreement_should_fail(const std::string& /*unused*/, const VarMap&
      vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_Tests::X25519_Agreement_Tests::default_kdf
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_kdf(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:41,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x25519.cpp:42,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x25519.cpp:42,1
    - Dst: std::make_unique<Botan::X25519_PrivateKey>
      Src: /src/botan/src/tests/test_x25519.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan_Tests::X25519_Agreement_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - get_req_bin
    - std::make_unique<Botan::X25519_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_our_key(const std::string&
      /*header*/, const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x25519.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan_Tests::X25519_Agreement_Tests::load_their_key
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> load_their_key(const std::string& /*header*/,
      const VarMap& vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:61,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:62,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x25519.cpp:70,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:71,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:71,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:72,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:72,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:78,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x25519.cpp:78,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:79,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:81,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:82,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:88,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:89,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:93,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:94,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:99,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:100,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:102,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:102,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:103,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:103,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:106,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:107,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:110,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:110,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:112,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:113,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:114,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x25519.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x25519.cpp:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 124
    functionName: Botan_Tests::X25519_Roundtrip_Test::run
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Test::Result::test_note
    - std::vector::push_back
    - Botan::PK_Key_Agreement::derive_key
    - Botan_Tests::X25519_Roundtrip_Test::rng
    - Botan::PKCS8::PEM_encode
    - dynamic_cast<Botan::X25519_PublicKey*>
    - auto::get
    - Test::Result::test_bin_eq
    - Botan_CLI::Timer::milliseconds
    - Botan::X25519_PublicKey*::public_value
    - Test::Result::test_failure
    - Botan::SymmetricKey::bits_of
    - Botan::X509::load_key
    - Botan::X509::PEM_encode
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_Tests::X25519_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::X25519_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::X25519_PublicKey>
      Src: /src/botan/src/tests/test_x25519.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: Botan_Tests::X25519_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::X25519_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan_Tests::PK_Workfactor_Tests::PK_Workfactor_Tests
    functionSourceFile: /src/botan/src/tests/test_workfactor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Workfactor_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_workfactor.cpp:23,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_workfactor.cpp:24,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/tests/test_workfactor.cpp:31,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_workfactor.cpp:33,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_workfactor.cpp:37,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_workfactor.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: Botan_Tests::PK_Workfactor_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::dl_exponent_size
    - std::to_string
    - Botan::if_work_factor
    - Test::Result::test_sz_eq
    - get_req_sz
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan_Tests::PK_Workfactor_Tests::PK_Workfactor_Tests
    functionSourceFile: /src/botan/src/tests/test_workfactor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Workfactor_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_workfactor.cpp:23,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_workfactor.cpp:24,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/tests/test_workfactor.cpp:31,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_workfactor.cpp:33,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_workfactor.cpp:37,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_workfactor.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: Botan_Tests::PK_Workfactor_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::dl_exponent_size
    - std::to_string
    - Botan::if_work_factor
    - Test::Result::test_sz_eq
    - get_req_sz
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan_Tests::PK_Workfactor_Tests::PK_Workfactor_Tests
    functionSourceFile: /src/botan/src/tests/test_workfactor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Workfactor_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_workfactor.cpp:23,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_workfactor.cpp:24,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/tests/test_workfactor.cpp:31,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_workfactor.cpp:33,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_workfactor.cpp:37,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_workfactor.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: Botan_Tests::PK_Workfactor_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::dl_exponent_size
    - std::to_string
    - Botan::if_work_factor
    - Test::Result::test_sz_eq
    - get_req_sz
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan_Tests::PK_Workfactor_Tests::PK_Workfactor_Tests
    functionSourceFile: /src/botan/src/tests/test_workfactor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Workfactor_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_workfactor.cpp:23,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_workfactor.cpp:24,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/tests/test_workfactor.cpp:31,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_workfactor.cpp:33,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_workfactor.cpp:37,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_workfactor.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: Botan_Tests::PK_Workfactor_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::dl_exponent_size
    - std::to_string
    - Botan::if_work_factor
    - Test::Result::test_sz_eq
    - get_req_sz
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Block_Cipher_Tests::Block_Cipher_Tests
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block_Cipher_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_block.cpp:28,1
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/tests/test_block.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Block_Cipher_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached:
    - Botan::BlockCipher::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_block.cpp:35,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_block.cpp:36,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_block.cpp:40,1
    - Dst: Botan_Tests::Block_Cipher_Tests::possible_providers
      Src: /src/botan/src/tests/test_block.cpp:44,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:46,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_block.cpp:47,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/tests/test_block.cpp:52,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:55,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_block.cpp:55,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_block.cpp:59,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_block.cpp:61,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:61,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:63,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:63,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::parallel_bytes
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_block.cpp:66,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:66,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:70,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:74,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:78,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:79,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:80,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:82,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: auto::key_spec
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:87,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:87,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:88,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_block.cpp:89,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_block.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:95,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_block.cpp:96,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_block.cpp:97,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:97,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:101,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:102,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:102,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:104,1
    - Dst: dynamic_cast<Botan::Tweakable_Block_Cipher*>
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:107,1
    - Dst: Botan::Tweakable_Block_Cipher*::set_tweak
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_block.cpp:114,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:126,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:138,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:138,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: auto::encrypt_n
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: auto::decrypt_n
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_block.cpp:158,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_block.cpp:159,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:159,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:162,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:163,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:164,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:166,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:170,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:171,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:172,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:174,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 86
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 179
    functionName: Botan_Tests::Block_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached:
    - auto::has_keying_material
    - auto::valid_keylength
    - Botan::fmt
    - Botan_Tests::Block_Cipher_Tests::possible_providers
    - auto::decrypt_n
    - get_opt_sz
    - auto::block_size
    - auto::get
    - auto::new_object
    - dynamic_cast<Botan::Tweakable_Block_Cipher*>
    - Botan_Tests::Block_Cipher_Tests::rng
    - auto::clear
    - auto::encrypt_n
    - Botan::Tweakable_Block_Cipher*::set_tweak
    - Test::Result::test_success
    - std::to_string
    - Botan::copy_mem
    - Test::Result::test_str_not_empty
    - auto::maximum_keylength
    - Botan::BlockCipher::create
    - auto::name
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - run_long_tests
    - std::vector::resize
    - auto::decrypt
    - get_opt_bin
    - Test::Result::test_sz_gte
    - auto::key_spec
    - Test::Result::test_bin_eq
    - auto::encrypt
    - Test::Result::test_is_false
    - auto::parallelism
    - auto::parallel_bytes
    - Test::Result::test_is_true
    - Test::Result::test_note
    - auto::set_key
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_block.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:210,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_block.cpp:212,1
    - Dst: Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
      Src: /src/botan/src/tests/test_block.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 215
    functionName: Botan_Tests::BlockCipher_ParallelOp_Test::run
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
    - std::vector::size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/tests/test_block.cpp:221,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_block.cpp:223,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:227,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:227,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:229,1
    - Dst: rng
      Src: /src/botan/src/tests/test_block.cpp:235,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: rng
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:243,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:249,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:251,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:255,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:259,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:261,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:262,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - ' cipher_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 266
    functionName: Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 1
    functionsReached:
    - auto::set_key
    - auto::block_size
    - rng
    - auto::decrypt
    - auto::maximum_keylength
    - Botan::BlockCipher::create
    - Test::Result::test_sz_gte
    - Test::Result::test_bin_eq
    - auto::encrypt
    - auto::parallelism
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_parallel_op(const std::string& cipher_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Block_Cipher_Tests::Block_Cipher_Tests
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block_Cipher_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_block.cpp:28,1
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/tests/test_block.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Block_Cipher_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 1
    functionsReached:
    - Botan::BlockCipher::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_block.cpp:35,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_block.cpp:36,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_block.cpp:40,1
    - Dst: Botan_Tests::Block_Cipher_Tests::possible_providers
      Src: /src/botan/src/tests/test_block.cpp:44,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:46,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_block.cpp:47,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/tests/test_block.cpp:52,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:55,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_block.cpp:55,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_block.cpp:59,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_block.cpp:61,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:61,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:63,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:63,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::parallel_bytes
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_block.cpp:66,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:66,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:70,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:74,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:78,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:79,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:80,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:82,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: auto::key_spec
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:87,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:87,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:88,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_block.cpp:89,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_block.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:95,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_block.cpp:96,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_block.cpp:97,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:97,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:101,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:102,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:102,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:104,1
    - Dst: dynamic_cast<Botan::Tweakable_Block_Cipher*>
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:107,1
    - Dst: Botan::Tweakable_Block_Cipher*::set_tweak
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_block.cpp:114,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:126,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:138,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:138,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: auto::encrypt_n
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: auto::decrypt_n
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_block.cpp:158,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_block.cpp:159,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:159,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:162,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:163,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:164,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:166,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:170,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:171,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:172,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:174,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 86
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 179
    functionName: Botan_Tests::Block_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached:
    - auto::has_keying_material
    - auto::valid_keylength
    - Botan::fmt
    - Botan_Tests::Block_Cipher_Tests::possible_providers
    - auto::decrypt_n
    - get_opt_sz
    - auto::block_size
    - auto::get
    - auto::new_object
    - dynamic_cast<Botan::Tweakable_Block_Cipher*>
    - Botan_Tests::Block_Cipher_Tests::rng
    - auto::clear
    - auto::encrypt_n
    - Botan::Tweakable_Block_Cipher*::set_tweak
    - Test::Result::test_success
    - std::to_string
    - Botan::copy_mem
    - Test::Result::test_str_not_empty
    - auto::maximum_keylength
    - Botan::BlockCipher::create
    - auto::name
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - run_long_tests
    - std::vector::resize
    - auto::decrypt
    - get_opt_bin
    - Test::Result::test_sz_gte
    - auto::key_spec
    - Test::Result::test_bin_eq
    - auto::encrypt
    - Test::Result::test_is_false
    - auto::parallelism
    - auto::parallel_bytes
    - Test::Result::test_is_true
    - Test::Result::test_note
    - auto::set_key
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_block.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:210,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_block.cpp:212,1
    - Dst: Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
      Src: /src/botan/src/tests/test_block.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 215
    functionName: Botan_Tests::BlockCipher_ParallelOp_Test::run
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
    - std::vector::size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/tests/test_block.cpp:221,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_block.cpp:223,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:227,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:227,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:229,1
    - Dst: rng
      Src: /src/botan/src/tests/test_block.cpp:235,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: rng
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:243,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:249,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:251,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:255,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:259,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:261,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:262,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - ' cipher_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 266
    functionName: Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 2
    functionsReached:
    - auto::set_key
    - auto::block_size
    - rng
    - auto::decrypt
    - auto::maximum_keylength
    - Botan::BlockCipher::create
    - Test::Result::test_sz_gte
    - Test::Result::test_bin_eq
    - auto::encrypt
    - auto::parallelism
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_parallel_op(const std::string& cipher_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Block_Cipher_Tests::Block_Cipher_Tests
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block_Cipher_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_block.cpp:28,1
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/tests/test_block.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Block_Cipher_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 2
    functionsReached:
    - Botan::BlockCipher::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_block.cpp:35,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_block.cpp:36,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_block.cpp:40,1
    - Dst: Botan_Tests::Block_Cipher_Tests::possible_providers
      Src: /src/botan/src/tests/test_block.cpp:44,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:46,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_block.cpp:47,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/tests/test_block.cpp:52,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:55,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_block.cpp:55,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_block.cpp:59,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_block.cpp:61,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:61,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:63,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:63,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::parallel_bytes
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_block.cpp:66,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:66,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:70,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:74,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:78,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:79,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:80,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:82,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: auto::key_spec
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:87,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:87,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:88,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_block.cpp:89,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_block.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:95,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_block.cpp:96,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_block.cpp:97,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:97,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:101,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:102,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:102,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:104,1
    - Dst: dynamic_cast<Botan::Tweakable_Block_Cipher*>
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:107,1
    - Dst: Botan::Tweakable_Block_Cipher*::set_tweak
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_block.cpp:114,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:126,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:138,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:138,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: auto::encrypt_n
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: auto::decrypt_n
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_block.cpp:158,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_block.cpp:159,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:159,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:162,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:163,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:164,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:166,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:170,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:171,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:172,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:174,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 86
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 179
    functionName: Botan_Tests::Block_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached:
    - auto::has_keying_material
    - auto::valid_keylength
    - Botan::fmt
    - Botan_Tests::Block_Cipher_Tests::possible_providers
    - auto::decrypt_n
    - get_opt_sz
    - auto::block_size
    - auto::get
    - auto::new_object
    - dynamic_cast<Botan::Tweakable_Block_Cipher*>
    - Botan_Tests::Block_Cipher_Tests::rng
    - auto::clear
    - auto::encrypt_n
    - Botan::Tweakable_Block_Cipher*::set_tweak
    - Test::Result::test_success
    - std::to_string
    - Botan::copy_mem
    - Test::Result::test_str_not_empty
    - auto::maximum_keylength
    - Botan::BlockCipher::create
    - auto::name
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - run_long_tests
    - std::vector::resize
    - auto::decrypt
    - get_opt_bin
    - Test::Result::test_sz_gte
    - auto::key_spec
    - Test::Result::test_bin_eq
    - auto::encrypt
    - Test::Result::test_is_false
    - auto::parallelism
    - auto::parallel_bytes
    - Test::Result::test_is_true
    - Test::Result::test_note
    - auto::set_key
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_block.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:210,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_block.cpp:212,1
    - Dst: Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
      Src: /src/botan/src/tests/test_block.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 215
    functionName: Botan_Tests::BlockCipher_ParallelOp_Test::run
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
    - std::vector::size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/tests/test_block.cpp:221,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_block.cpp:223,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:227,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:227,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:229,1
    - Dst: rng
      Src: /src/botan/src/tests/test_block.cpp:235,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: rng
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:243,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:249,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:251,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:255,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:259,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:261,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:262,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - ' cipher_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 266
    functionName: Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 3
    functionsReached:
    - auto::set_key
    - auto::block_size
    - rng
    - auto::decrypt
    - auto::maximum_keylength
    - Botan::BlockCipher::create
    - Test::Result::test_sz_gte
    - Test::Result::test_bin_eq
    - auto::encrypt
    - auto::parallelism
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_parallel_op(const std::string& cipher_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_Tests::Block_Cipher_Tests::Block_Cipher_Tests
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block_Cipher_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_block.cpp:28,1
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/tests/test_block.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Block_Cipher_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 3
    functionsReached:
    - Botan::BlockCipher::providers
    - provider_filter
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> possible_providers(const std::string& algo)
      override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:34,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_block.cpp:35,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_block.cpp:36,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_block.cpp:40,1
    - Dst: Botan_Tests::Block_Cipher_Tests::possible_providers
      Src: /src/botan/src/tests/test_block.cpp:44,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:46,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_block.cpp:47,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/tests/test_block.cpp:52,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:55,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_block.cpp:55,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_block.cpp:59,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_block.cpp:61,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:61,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:63,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:63,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::parallel_bytes
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_block.cpp:66,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:66,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:70,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:74,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:78,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:79,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:80,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:82,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: auto::key_spec
      Src: /src/botan/src/tests/test_block.cpp:86,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:87,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:87,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:88,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_block.cpp:89,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_block.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:95,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_block.cpp:96,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_block.cpp:97,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:97,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:101,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:102,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:102,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:104,1
    - Dst: dynamic_cast<Botan::Tweakable_Block_Cipher*>
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:107,1
    - Dst: Botan::Tweakable_Block_Cipher*::set_tweak
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:109,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_block.cpp:114,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:115,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:116,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_block.cpp:117,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:123,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:126,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:138,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:138,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:140,1
    - Dst: auto::encrypt_n
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:143,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:146,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:149,1
    - Dst: auto::decrypt_n
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:152,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:155,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_block.cpp:158,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_block.cpp:159,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:159,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:162,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:163,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:164,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:166,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:170,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:171,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:172,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:174,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 86
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 179
    functionName: Botan_Tests::Block_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached:
    - auto::has_keying_material
    - auto::valid_keylength
    - Botan::fmt
    - Botan_Tests::Block_Cipher_Tests::possible_providers
    - auto::decrypt_n
    - get_opt_sz
    - auto::block_size
    - auto::get
    - auto::new_object
    - dynamic_cast<Botan::Tweakable_Block_Cipher*>
    - Botan_Tests::Block_Cipher_Tests::rng
    - auto::clear
    - auto::encrypt_n
    - Botan::Tweakable_Block_Cipher*::set_tweak
    - Test::Result::test_success
    - std::to_string
    - Botan::copy_mem
    - Test::Result::test_str_not_empty
    - auto::maximum_keylength
    - Botan::BlockCipher::create
    - auto::name
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::empty
    - std::vector::size
    - run_long_tests
    - std::vector::resize
    - auto::decrypt
    - get_opt_bin
    - Test::Result::test_sz_gte
    - auto::key_spec
    - Test::Result::test_bin_eq
    - auto::encrypt
    - Test::Result::test_is_false
    - auto::parallelism
    - auto::parallel_bytes
    - Test::Result::test_is_true
    - Test::Result::test_note
    - auto::set_key
    - auto::provider
    - Test::Result::test_str_eq
    - std::vector::data
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_block.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:210,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_block.cpp:212,1
    - Dst: Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
      Src: /src/botan/src/tests/test_block.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 215
    functionName: Botan_Tests::BlockCipher_ParallelOp_Test::run
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
    - std::vector::size
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/tests/test_block.cpp:221,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_block.cpp:223,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_block.cpp:227,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:227,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:229,1
    - Dst: rng
      Src: /src/botan/src/tests/test_block.cpp:235,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: rng
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_block.cpp:237,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:243,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:249,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:251,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:255,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:259,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:261,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:262,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_block.cpp:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - ' cipher_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 266
    functionName: Botan_Tests::BlockCipher_ParallelOp_Test::test_parallel_op
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 4
    functionsReached:
    - auto::set_key
    - auto::block_size
    - rng
    - auto::decrypt
    - auto::maximum_keylength
    - Botan::BlockCipher::create
    - Test::Result::test_sz_gte
    - Test::Result::test_bin_eq
    - auto::encrypt
    - auto::parallelism
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_parallel_op(const std::string& cipher_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - core
    argTypes:
    - std::shared_ptr<Botan::TLS::Callbacks>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan_Tests::MockChannel::MockChannel
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void MockChannel(std::shared_ptr<Botan::TLS::Callbacks> core)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:48,1
    - Dst: tls_record_received
      Src: /src/botan/src/tests/unit_asio_stream.cpp:49,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: Botan_Tests::MockChannel::received_data
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - tls_record_received
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t received_data(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_emit_data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan_Tests::MockChannel::send
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - tls_emit_data
    linkageType: ''
    returnType: void
    signature: void send(std::span<const uint8_t> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan_Tests::MockChannel::is_active
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan_Tests::MockChannel::is_handshake_complete
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_handshake_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan_Tests::MockChannel::is_closed_for_reading
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_reading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::MockChannel::is_closed_for_writing
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_writing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_alert
      Src: /src/botan/src/tests/unit_asio_stream.cpp:69,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/unit_asio_stream.cpp:70,1
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/tests/unit_asio_stream.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: Botan_Tests::MockChannel::received_close_notify
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::MockChannel::send
    - tls_alert
    linkageType: ''
    returnType: void
    signature: void received_close_notify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_Tests::ThrowingMockChannel::expected_ec
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code expected_ec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - core
    argTypes:
    - std::shared_ptr<Botan::TLS::Callbacks>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan_Tests::ThrowingMockChannel::ThrowingMockChannel
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ThrowingMockChannel(std::shared_ptr<Botan::TLS::Callbacks> core)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Unexpected_Message
      Src: /src/botan/src/tests/unit_asio_stream.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Botan_Tests::ThrowingMockChannel::received_data
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Unexpected_Message
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t received_data(std::span<const uint8_t> /*data*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Unexpected_Message
      Src: /src/botan/src/tests/unit_asio_stream.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_Tests::ThrowingMockChannel::send
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Unexpected_Message
    linkageType: ''
    returnType: void
    signature: void send(std::span<const uint8_t> /*data*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - core
    argTypes:
    - std::shared_ptr<Botan::TLS::Callbacks>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::CancellingMockChannel::CancellingMockChannel
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CancellingMockChannel(std::shared_ptr<Botan::TLS::Callbacks> core)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: received_close_notify
      Src: /src/botan/src/tests/unit_asio_stream.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: Botan_Tests::CancellingMockChannel::received_data
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - received_close_notify
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t received_data(std::span<const uint8_t> /*data*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:119,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:119,1
    - Dst: std::make_unique<MockChannel>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - std::shared_ptr<Botan::TLS::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: Botan_Tests::AsioStream::AsioStream
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::forward<Args>
    - std::make_unique<MockChannel>
    linkageType: ''
    returnType: void
    signature: void AsioStream(std::shared_ptr<Botan::TLS::Context> context, Args&&...
      args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:128,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:128,1
    - Dst: std::make_unique<ThrowingMockChannel>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - std::shared_ptr<Botan::TLS::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: Botan_Tests::ThrowingAsioStream::ThrowingAsioStream
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<ThrowingMockChannel>
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void ThrowingAsioStream(std::shared_ptr<Botan::TLS::Context> context,
      Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:137,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:137,1
    - Dst: std::make_unique<CancellingMockChannel>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - std::shared_ptr<Botan::TLS::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: Botan_Tests::CancellingAsioStream::CancellingAsioStream
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::forward<Args>
    - std::make_unique<CancellingMockChannel>
    linkageType: ''
    returnType: void
    signature: void CancellingAsioStream(std::shared_ptr<Botan::TLS::Context> context,
      Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::enable_shared_from_this<Context>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:152,1
    - Dst: std::make_shared<Botan::Credentials_Manager>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:152,1
    - Dst: std::make_shared<Botan::Null_RNG>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:153,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:154,1
    - Dst: std::make_shared<Botan::TLS::Default_Policy>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Asio_Stream_Tests::get_context
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Botan::TLS::Default_Policy>
    - std::enable_shared_from_this<Context>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Botan::Null_RNG>
    - std::make_shared<Botan::Credentials_Manager>
    linkageType: ''
    returnType: std::shared_ptr<Botan::TLS::Context>
    signature: std::shared_ptr<Botan::TLS::Context> get_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/botan/src/tests/unit_asio_stream.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - size
    argTypes:
    - void*
    - void*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Asio_Stream_Tests::contains
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool contains(const void* a, const void* b, const std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::string_view
      Src: /src/botan/src/tests/unit_asio_stream.cpp:162,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: Botan_Tests::Asio_Stream_Tests::test_data
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    - boost::string_view
    linkageType: ''
    returnType: boost::string_view
    signature: boost::string_view test_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:167,1
    - Dst: AsioStream::handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:170,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:173,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:173,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_handshake
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::native_handle
    - AsioStream::handshake
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_handshake(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:183,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:185,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:188,1
    - Dst: AsioStream::handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:191,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:194,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:194,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:195,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 197
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::native_handle
    - AsioStream::next_layer
    - AsioStream::handshake
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_handshake_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:203,1
    - Dst: CancellingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:205,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:208,1
    - Dst: CancellingAsioStream::handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:211,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:214,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:214,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:215,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:215,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:216,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 218
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_cancellation
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - CancellingAsioStream::next_layer
    - CancellingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - CancellingAsioStream::handshake
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_handshake_cancellation(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:224,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:226,1
    - Dst: ThrowingAsioStream::handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:229,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:232,1
    - Dst: ThrowingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:232,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:233,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:233,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - ThrowingAsioStream::next_layer
    - ThrowingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - ThrowingAsioStream::handshake
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_handshake_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:241,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:243,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:246,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:251,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:251,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:252,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:252,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:253,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:253,1
    - Dst: AsioStream::async_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:256,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:258,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:259,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 261
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_handshake
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::native_handle
    - AsioStream::next_layer
    - net::io_context::run
    - AsioStream::async_handshake
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_handshake(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:269,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:271,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:274,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:279,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:279,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:280,1
    - Dst: AsioStream::async_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:283,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:285,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 287
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_handshake_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::native_handle
    - AsioStream::next_layer
    - net::io_context::run
    - AsioStream::async_handshake
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_handshake_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:293,1
    - Dst: CancellingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:295,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:298,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:303,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:303,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:304,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:304,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:305,1
    - Dst: CancellingAsioStream::async_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:308,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:310,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 312
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_handshake_cancellation
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - CancellingAsioStream::next_layer
    - CancellingAsioStream::async_handshake
    - CancellingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::io_context::run
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_handshake_cancellation(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:318,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:320,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:325,1
    - Dst: ThrowingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:325,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:326,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:326,1
    - Dst: ThrowingAsioStream::async_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:329,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:331,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 333
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_handshake_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - ThrowingAsioStream::next_layer
    - ThrowingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - ThrowingAsioStream::async_handshake
    - net::io_context::run
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_handshake_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:338,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:345,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:345,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:348,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:348,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:349,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:350,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 353
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_success
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Server::expect_short_read
    - Botan_Tests::Asio_Stream_Tests::contains
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::mutable_buffer
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_read_some_success(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:358,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:365,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:365,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:366,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:366,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:368,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:372,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:373,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:374,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:375,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:376,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 379
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_buffer_sequence
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Server::expect_short_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    - std::vector::emplace_back
    - net::mutable_buffer
    - Botan_Tests::Asio_Stream_Tests::contains
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_read_some_buffer_sequence(std::vector<Test::Result>&
      results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:387,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:389,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:394,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:394,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:397,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:398,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 401
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Server::expect_short_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::mutable_buffer
    - AsioStream::next_layer
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_read_some_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:407,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:409,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:414,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:414,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:417,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:418,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:418,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 421
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - ThrowingAsioStream::next_layer
    - Server::expect_short_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::mutable_buffer
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_read_some_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:426,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:433,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:433,1
    - Dst: std::size_t
      Src: /src/botan/src/tests/unit_asio_stream.cpp:433,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:436,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:439,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 442
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_read_zero_buffer
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - Server::expect_short_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::mutable_buffer
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_read_zero_buffer(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:448,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:455,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:455,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:456,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:457,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:461,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:463,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:464,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 466
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_read_some_success
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::contains
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::next_layer
    - net::io_context::run
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void test_async_read_some_success(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:470,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:476,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:476,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:477,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:477,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:482,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:483,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:484,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:485,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:486,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:489,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:491,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:492,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 494
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_read_some_buffer_sequence
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::contains
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::mutable_buffer
    - std::vector::emplace_back
    - AsioStream::next_layer
    - net::io_context::run
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void test_async_read_some_buffer_sequence(std::vector<Test::Result>&
      results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:500,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:507,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:508,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:512,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:514,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:515,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 517
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_read_some_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::next_layer
    - net::io_context::run
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void test_async_read_some_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:521,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:528,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:529,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:529,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:533,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:535,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:536,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 538
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_read_some_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::io_context::run
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void test_async_read_some_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:544,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:551,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:554,1
    - Dst: std::size_t
      Src: /src/botan/src/tests/unit_asio_stream.cpp:557,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:558,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:560,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:561,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 563
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_read_zero_buffer
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::size_t
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::next_layer
    - net::io_context::run
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void test_async_read_zero_buffer(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:569,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:571,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:574,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:574,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:577,1
    - Dst: TestStream::str
      Src: /src/botan/src/tests/unit_asio_stream.cpp:577,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:577,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:578,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:579,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 582
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_success
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - TestStream::str
    - Botan_Tests::Asio_Stream_Tests::test_data
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - AsioStream::next_layer
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void test_sync_write_some_success(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:588,1
    - Dst: Botan::TLS::Stream<TestStream>::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:590,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:593,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:593,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:596,1
    - Dst: error_code::failed
      Src: /src/botan/src/tests/unit_asio_stream.cpp:596,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 599
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_no_handshake
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - error_code::failed
    - Botan::TLS::Stream<TestStream>::next_layer
    - push_back
    - Test::Result::test_is_true
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void test_sync_no_handshake(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:605,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:607,1
    - Dst: std::array::fill
      Src: /src/botan/src/tests/unit_asio_stream.cpp:612,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:613,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:616,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:616,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:616,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:617,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:618,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:618,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:618,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:621,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:625,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:626,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:628,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:629,1
    - Dst: TestStream::buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:629,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:629,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:629,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:630,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:630,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:631,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:631,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:632,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 635
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_buffer_sequence
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::array::fill
    - Botan_Tests::Asio_Stream_Tests::get_context
    - std::array::back
    - std::vector::emplace_back
    - net::const_buffer
    - AsioStream::next_layer
    - std::array::size
    - Botan_Tests::Asio_Stream_Tests::contains
    - TestStream::buffer
    - Test::Result::test_sz_eq
    - std::array::data
    - push_back
    - Test::Result::test_is_true
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void test_sync_write_some_buffer_sequence(std::vector<Test::Result>&
      results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:643,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:645,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:649,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:649,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:652,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:653,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 656
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - AsioStream::next_layer
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void test_sync_write_some_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:662,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:664,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:667,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:667,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:670,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:671,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:671,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 674
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void test_sync_write_some_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:680,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:682,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:687,1
    - Dst: TestStream::str
      Src: /src/botan/src/tests/unit_asio_stream.cpp:687,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:687,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:688,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:689,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:692,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:692,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:694,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 696
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_write_some_success
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - TestStream::str
    - Botan_Tests::Asio_Stream_Tests::test_data
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - AsioStream::next_layer
    - net::async_write
    - net::io_context::run
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_write_some_success(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:702,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:704,1
    - Dst: std::array::fill
      Src: /src/botan/src/tests/unit_asio_stream.cpp:708,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:709,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:712,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:712,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:712,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:713,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:714,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:714,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:714,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:719,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:720,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:723,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:724,1
    - Dst: TestStream::buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:724,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:724,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:724,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:725,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:725,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:726,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:726,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:727,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:730,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:732,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 734
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_write_some_buffer_sequence
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::array::fill
    - Botan_Tests::Asio_Stream_Tests::get_context
    - std::array::back
    - std::vector::emplace_back
    - net::const_buffer
    - AsioStream::next_layer
    - std::array::size
    - Botan_Tests::Asio_Stream_Tests::contains
    - TestStream::buffer
    - net::async_write
    - net::io_context::run
    - Test::Result::test_sz_eq
    - std::array::data
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_write_some_buffer_sequence(std::vector<Test::Result>&
      results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:742,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:744,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:749,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:750,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:753,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:753,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:755,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 757
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_write_some_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - AsioStream::next_layer
    - net::async_write
    - net::io_context::run
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_write_some_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:763,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:765,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:770,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:771,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:771,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:774,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:774,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:776,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 778
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_write_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - net::async_write
    - net::io_context::run
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_write_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_no_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:784,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:786,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:787,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_cancellation
      Src: /src/botan/src/tests/unit_asio_stream.cpp:788,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:789,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:791,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_handshake_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:792,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_handshake_cancellation
      Src: /src/botan/src/tests/unit_asio_stream.cpp:793,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_handshake_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:794,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_success
      Src: /src/botan/src/tests/unit_asio_stream.cpp:796,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_buffer_sequence
      Src: /src/botan/src/tests/unit_asio_stream.cpp:797,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:798,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:799,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_read_zero_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:800,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_read_some_success
      Src: /src/botan/src/tests/unit_asio_stream.cpp:802,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_read_some_buffer_sequence
      Src: /src/botan/src/tests/unit_asio_stream.cpp:803,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_read_some_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:804,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_read_some_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:805,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_read_zero_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:806,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_success
      Src: /src/botan/src/tests/unit_asio_stream.cpp:808,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_buffer_sequence
      Src: /src/botan/src/tests/unit_asio_stream.cpp:809,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:810,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:811,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_write_some_success
      Src: /src/botan/src/tests/unit_asio_stream.cpp:813,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_write_some_buffer_sequence
      Src: /src/botan/src/tests/unit_asio_stream.cpp:814,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_write_some_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:815,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_write_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 819
    functionName: Botan_Tests::Asio_Stream_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake_cancellation
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake_throw
    - Botan_Tests::Asio_Stream_Tests::test_sync_no_handshake
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_success
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake
    - Botan_Tests::Asio_Stream_Tests::test_async_read_zero_buffer
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake_cancellation
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_zero_buffer
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake_error
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_write_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_error
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake_error
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_success
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_success
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_throw
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_success
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - core
    argTypes:
    - std::shared_ptr<Botan::TLS::Callbacks>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan_Tests::MockChannel::MockChannel
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void MockChannel(std::shared_ptr<Botan::TLS::Callbacks> core)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:48,1
    - Dst: tls_record_received
      Src: /src/botan/src/tests/unit_asio_stream.cpp:49,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: Botan_Tests::MockChannel::received_data
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - tls_record_received
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t received_data(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_emit_data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan_Tests::MockChannel::send
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - tls_emit_data
    linkageType: ''
    returnType: void
    signature: void send(std::span<const uint8_t> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan_Tests::MockChannel::is_active
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan_Tests::MockChannel::is_handshake_complete
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_handshake_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan_Tests::MockChannel::is_closed_for_reading
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_reading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::MockChannel::is_closed_for_writing
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_writing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_alert
      Src: /src/botan/src/tests/unit_asio_stream.cpp:69,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/unit_asio_stream.cpp:70,1
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/tests/unit_asio_stream.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: Botan_Tests::MockChannel::received_close_notify
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::MockChannel::send
    - tls_alert
    linkageType: ''
    returnType: void
    signature: void received_close_notify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_Tests::ThrowingMockChannel::expected_ec
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code expected_ec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - core
    argTypes:
    - std::shared_ptr<Botan::TLS::Callbacks>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan_Tests::ThrowingMockChannel::ThrowingMockChannel
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ThrowingMockChannel(std::shared_ptr<Botan::TLS::Callbacks> core)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Unexpected_Message
      Src: /src/botan/src/tests/unit_asio_stream.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Botan_Tests::ThrowingMockChannel::received_data
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Unexpected_Message
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t received_data(std::span<const uint8_t> /*data*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Unexpected_Message
      Src: /src/botan/src/tests/unit_asio_stream.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_Tests::ThrowingMockChannel::send
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Unexpected_Message
    linkageType: ''
    returnType: void
    signature: void send(std::span<const uint8_t> /*data*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - core
    argTypes:
    - std::shared_ptr<Botan::TLS::Callbacks>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::CancellingMockChannel::CancellingMockChannel
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CancellingMockChannel(std::shared_ptr<Botan::TLS::Callbacks> core)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: received_close_notify
      Src: /src/botan/src/tests/unit_asio_stream.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: Botan_Tests::CancellingMockChannel::received_data
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - received_close_notify
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t received_data(std::span<const uint8_t> /*data*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:119,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:119,1
    - Dst: std::make_unique<MockChannel>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - std::shared_ptr<Botan::TLS::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: Botan_Tests::AsioStream::AsioStream
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::forward<Args>
    - std::make_unique<MockChannel>
    linkageType: ''
    returnType: void
    signature: void AsioStream(std::shared_ptr<Botan::TLS::Context> context, Args&&...
      args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:128,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:128,1
    - Dst: std::make_unique<ThrowingMockChannel>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - std::shared_ptr<Botan::TLS::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: Botan_Tests::ThrowingAsioStream::ThrowingAsioStream
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<ThrowingMockChannel>
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void ThrowingAsioStream(std::shared_ptr<Botan::TLS::Context> context,
      Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_asio_stream.cpp:137,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:137,1
    - Dst: std::make_unique<CancellingMockChannel>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - std::shared_ptr<Botan::TLS::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: Botan_Tests::CancellingAsioStream::CancellingAsioStream
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::forward<Args>
    - std::make_unique<CancellingMockChannel>
    linkageType: ''
    returnType: void
    signature: void CancellingAsioStream(std::shared_ptr<Botan::TLS::Context> context,
      Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::enable_shared_from_this<Context>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:152,1
    - Dst: std::make_shared<Botan::Credentials_Manager>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:152,1
    - Dst: std::make_shared<Botan::Null_RNG>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:153,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:154,1
    - Dst: std::make_shared<Botan::TLS::Default_Policy>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Asio_Stream_Tests::get_context
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 27
    functionsReached:
    - std::make_shared<Botan::TLS::Default_Policy>
    - std::enable_shared_from_this<Context>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Botan::Null_RNG>
    - std::make_shared<Botan::Credentials_Manager>
    linkageType: ''
    returnType: std::shared_ptr<Botan::TLS::Context>
    signature: std::shared_ptr<Botan::TLS::Context> get_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/botan/src/tests/unit_asio_stream.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - size
    argTypes:
    - void*
    - void*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Asio_Stream_Tests::contains
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 6
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool contains(const void* a, const void* b, const std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::string_view
      Src: /src/botan/src/tests/unit_asio_stream.cpp:162,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/unit_asio_stream.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: Botan_Tests::Asio_Stream_Tests::test_data
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 2
    functionsReached:
    - reinterpret_cast<const char*>
    - boost::string_view
    linkageType: ''
    returnType: boost::string_view
    signature: boost::string_view test_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:167,1
    - Dst: AsioStream::handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:170,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:173,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:173,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_handshake
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::native_handle
    - AsioStream::handshake
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_handshake(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:183,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:185,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:188,1
    - Dst: AsioStream::handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:191,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:194,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:194,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:195,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 197
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::native_handle
    - AsioStream::next_layer
    - AsioStream::handshake
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_handshake_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:203,1
    - Dst: CancellingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:205,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:208,1
    - Dst: CancellingAsioStream::handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:211,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:214,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:214,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:215,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:215,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:216,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 218
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_cancellation
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - CancellingAsioStream::next_layer
    - CancellingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - CancellingAsioStream::handshake
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_handshake_cancellation(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:224,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:226,1
    - Dst: ThrowingAsioStream::handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:229,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:232,1
    - Dst: ThrowingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:232,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:233,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:233,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - ThrowingAsioStream::next_layer
    - ThrowingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - ThrowingAsioStream::handshake
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_handshake_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:241,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:243,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:246,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:251,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:251,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:252,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:252,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:253,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:253,1
    - Dst: AsioStream::async_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:256,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:258,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:259,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 261
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_handshake
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::native_handle
    - AsioStream::next_layer
    - net::io_context::run
    - AsioStream::async_handshake
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_handshake(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:269,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:271,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:274,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:279,1
    - Dst: AsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:279,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:280,1
    - Dst: AsioStream::async_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:283,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:285,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 287
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_handshake_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::native_handle
    - AsioStream::next_layer
    - net::io_context::run
    - AsioStream::async_handshake
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_handshake_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:293,1
    - Dst: CancellingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:295,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:298,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:303,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:303,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:304,1
    - Dst: CancellingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:304,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:305,1
    - Dst: CancellingAsioStream::async_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:308,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:310,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 312
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_handshake_cancellation
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - CancellingAsioStream::next_layer
    - CancellingAsioStream::async_handshake
    - CancellingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::io_context::run
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_handshake_cancellation(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:318,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:320,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/unit_asio_stream.cpp:325,1
    - Dst: ThrowingAsioStream::native_handle
      Src: /src/botan/src/tests/unit_asio_stream.cpp:325,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:326,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:326,1
    - Dst: ThrowingAsioStream::async_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:329,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:331,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 333
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_handshake_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - ThrowingAsioStream::next_layer
    - ThrowingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - ThrowingAsioStream::async_handshake
    - net::io_context::run
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_handshake_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:338,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:345,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:345,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:348,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:348,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:349,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:350,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 353
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_success
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Server::expect_short_read
    - Botan_Tests::Asio_Stream_Tests::contains
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::mutable_buffer
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_read_some_success(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:358,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:365,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:365,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:366,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:366,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:368,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:372,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:373,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:374,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:375,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:376,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 379
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_buffer_sequence
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Server::expect_short_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    - std::vector::emplace_back
    - net::mutable_buffer
    - Botan_Tests::Asio_Stream_Tests::contains
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_read_some_buffer_sequence(std::vector<Test::Result>&
      results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:387,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:389,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:394,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:394,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:397,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:398,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 401
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Server::expect_short_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::mutable_buffer
    - AsioStream::next_layer
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_read_some_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:407,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:409,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:414,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:414,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:417,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:418,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:418,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 421
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - ThrowingAsioStream::next_layer
    - Server::expect_short_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::mutable_buffer
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_read_some_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:426,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:433,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:433,1
    - Dst: std::size_t
      Src: /src/botan/src/tests/unit_asio_stream.cpp:433,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:436,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:439,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 442
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_read_zero_buffer
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - std::size_t
    - Server::expect_short_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::mutable_buffer
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_sync_read_zero_buffer(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:448,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:455,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:455,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:456,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:457,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:461,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:463,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:464,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 466
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_read_some_success
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::contains
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::next_layer
    - net::io_context::run
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void test_async_read_some_success(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:470,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:476,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:476,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:477,1
    - Dst: net::mutable_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:477,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:482,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:483,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:484,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:485,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:486,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:489,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:491,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:492,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 494
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_read_some_buffer_sequence
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::contains
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::mutable_buffer
    - std::vector::emplace_back
    - AsioStream::next_layer
    - net::io_context::run
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void test_async_read_some_buffer_sequence(std::vector<Test::Result>&
      results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:500,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:507,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:508,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:512,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:514,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:515,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 517
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_read_some_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::next_layer
    - net::io_context::run
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void test_async_read_some_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:521,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:528,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:529,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:529,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:533,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:535,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:536,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 538
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_read_some_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::io_context::run
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void test_async_read_some_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:544,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:551,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:554,1
    - Dst: std::size_t
      Src: /src/botan/src/tests/unit_asio_stream.cpp:557,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/unit_asio_stream.cpp:558,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:560,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:561,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 563
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_read_zero_buffer
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - std::size_t
    - Botan_Tests::Asio_Stream_Tests::get_context
    - AsioStream::next_layer
    - net::io_context::run
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - net::async_read
    linkageType: ''
    returnType: void
    signature: void test_async_read_zero_buffer(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:569,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:571,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:574,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:574,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:577,1
    - Dst: TestStream::str
      Src: /src/botan/src/tests/unit_asio_stream.cpp:577,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:577,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:578,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:579,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 582
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_success
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - TestStream::str
    - Botan_Tests::Asio_Stream_Tests::test_data
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - AsioStream::next_layer
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void test_sync_write_some_success(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:588,1
    - Dst: Botan::TLS::Stream<TestStream>::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:590,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:593,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:593,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:596,1
    - Dst: error_code::failed
      Src: /src/botan/src/tests/unit_asio_stream.cpp:596,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 599
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_no_handshake
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - error_code::failed
    - Botan::TLS::Stream<TestStream>::next_layer
    - push_back
    - Test::Result::test_is_true
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void test_sync_no_handshake(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:605,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:607,1
    - Dst: std::array::fill
      Src: /src/botan/src/tests/unit_asio_stream.cpp:612,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:613,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:616,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:616,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:616,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:617,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:618,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:618,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:618,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:621,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:625,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:626,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:628,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:629,1
    - Dst: TestStream::buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:629,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:629,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:629,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:630,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:630,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:631,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:631,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:632,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 635
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_buffer_sequence
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - std::array::fill
    - Botan_Tests::Asio_Stream_Tests::get_context
    - std::array::back
    - std::vector::emplace_back
    - net::const_buffer
    - AsioStream::next_layer
    - std::array::size
    - Botan_Tests::Asio_Stream_Tests::contains
    - TestStream::buffer
    - Test::Result::test_sz_eq
    - std::array::data
    - push_back
    - Test::Result::test_is_true
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void test_sync_write_some_buffer_sequence(std::vector<Test::Result>&
      results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:643,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:645,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:649,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:649,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:652,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:653,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 656
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - AsioStream::next_layer
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void test_sync_write_some_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:662,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:664,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:667,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:667,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:670,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:671,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:671,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 674
    functionName: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_sz_eq
    - push_back
    - Test::Result::test_is_true
    - Server::handle_write
    linkageType: ''
    returnType: void
    signature: void test_sync_write_some_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:680,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:682,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:687,1
    - Dst: TestStream::str
      Src: /src/botan/src/tests/unit_asio_stream.cpp:687,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:687,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:688,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:689,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:692,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:692,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:694,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 696
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_write_some_success
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - TestStream::str
    - Botan_Tests::Asio_Stream_Tests::test_data
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - AsioStream::next_layer
    - net::async_write
    - net::io_context::run
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_write_some_success(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:702,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:704,1
    - Dst: std::array::fill
      Src: /src/botan/src/tests/unit_asio_stream.cpp:708,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:709,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:712,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:712,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:712,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:713,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:714,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:714,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:714,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:719,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:720,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:723,1
    - Dst: Botan_Tests::Asio_Stream_Tests::contains
      Src: /src/botan/src/tests/unit_asio_stream.cpp:724,1
    - Dst: TestStream::buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:724,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/unit_asio_stream.cpp:724,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:724,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:725,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/unit_asio_stream.cpp:725,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:726,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:726,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:727,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:730,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:732,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 734
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_write_some_buffer_sequence
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - std::array::fill
    - Botan_Tests::Asio_Stream_Tests::get_context
    - std::array::back
    - std::vector::emplace_back
    - net::const_buffer
    - AsioStream::next_layer
    - std::array::size
    - Botan_Tests::Asio_Stream_Tests::contains
    - TestStream::buffer
    - net::async_write
    - net::io_context::run
    - Test::Result::test_sz_eq
    - std::array::data
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_write_some_buffer_sequence(std::vector<Test::Result>&
      results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:742,1
    - Dst: AsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:744,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:749,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:750,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:753,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:753,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:755,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 757
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_write_some_error
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - AsioStream::next_layer
    - net::async_write
    - net::io_context::run
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_write_some_error(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::get_context
      Src: /src/botan/src/tests/unit_asio_stream.cpp:763,1
    - Dst: ThrowingAsioStream::next_layer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:765,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:770,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_asio_stream.cpp:771,1
    - Dst: Botan_Tests::ThrowingMockChannel::expected_ec
      Src: /src/botan/src/tests/unit_asio_stream.cpp:771,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/unit_asio_stream.cpp:774,1
    - Dst: net::const_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:774,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/unit_asio_stream.cpp:776,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_asio_stream.cpp:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 778
    functionName: Botan_Tests::Asio_Stream_Tests::test_async_write_throw
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 1
    functionsReached:
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    - net::const_buffer
    - net::async_write
    - net::io_context::run
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    - push_back
    linkageType: ''
    returnType: void
    signature: void test_async_write_throw(std::vector<Test::Result>& results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_no_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:784,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:786,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:787,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_cancellation
      Src: /src/botan/src/tests/unit_asio_stream.cpp:788,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_handshake_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:789,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_handshake
      Src: /src/botan/src/tests/unit_asio_stream.cpp:791,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_handshake_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:792,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_handshake_cancellation
      Src: /src/botan/src/tests/unit_asio_stream.cpp:793,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_handshake_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:794,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_success
      Src: /src/botan/src/tests/unit_asio_stream.cpp:796,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_buffer_sequence
      Src: /src/botan/src/tests/unit_asio_stream.cpp:797,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:798,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_read_some_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:799,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_read_zero_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:800,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_read_some_success
      Src: /src/botan/src/tests/unit_asio_stream.cpp:802,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_read_some_buffer_sequence
      Src: /src/botan/src/tests/unit_asio_stream.cpp:803,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_read_some_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:804,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_read_some_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:805,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_read_zero_buffer
      Src: /src/botan/src/tests/unit_asio_stream.cpp:806,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_success
      Src: /src/botan/src/tests/unit_asio_stream.cpp:808,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_buffer_sequence
      Src: /src/botan/src/tests/unit_asio_stream.cpp:809,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:810,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_sync_write_some_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:811,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_write_some_success
      Src: /src/botan/src/tests/unit_asio_stream.cpp:813,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_write_some_buffer_sequence
      Src: /src/botan/src/tests/unit_asio_stream.cpp:814,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_write_some_error
      Src: /src/botan/src/tests/unit_asio_stream.cpp:815,1
    - Dst: Botan_Tests::Asio_Stream_Tests::test_async_write_throw
      Src: /src/botan/src/tests/unit_asio_stream.cpp:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 819
    functionName: Botan_Tests::Asio_Stream_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_asio_stream.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake_cancellation
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake_throw
    - Botan_Tests::Asio_Stream_Tests::test_sync_no_handshake
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_success
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake
    - Botan_Tests::Asio_Stream_Tests::test_async_read_zero_buffer
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake_cancellation
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_zero_buffer
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake_error
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_write_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_error
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake_error
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_success
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_success
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_throw
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_success
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pkcs_hash_id
      Src: /src/botan/src/tests/test_hash_id.cpp:49,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_hash_id.cpp:51,1
    - Dst: Botan::DER_Encoder::start_sequence
      Src: /src/botan/src/tests/test_hash_id.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:61,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:61,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:63,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:70,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:73,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash_id.cpp:73,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash_id.cpp:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 80
    functionName: Botan_Tests::PKCS_HashID_Test::run
    functionSourceFile: /src/botan/src/tests/test_hash_id.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Test::Result::test_bin_eq
    - Botan::OID::from_string
    - Test::Result::test_sz_eq
    - std::vector::begin
    - Test::Result::test_failure
    - Botan::DER_Encoder::start_sequence
    - Botan::pkcs_hash_id
    - what
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pkcs_hash_id
      Src: /src/botan/src/tests/test_hash_id.cpp:49,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_hash_id.cpp:51,1
    - Dst: Botan::DER_Encoder::start_sequence
      Src: /src/botan/src/tests/test_hash_id.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:61,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:61,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:63,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:70,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:73,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash_id.cpp:73,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash_id.cpp:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 80
    functionName: Botan_Tests::PKCS_HashID_Test::run
    functionSourceFile: /src/botan/src/tests/test_hash_id.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Test::Result::test_bin_eq
    - Botan::OID::from_string
    - Test::Result::test_sz_eq
    - std::vector::begin
    - Test::Result::test_failure
    - Botan::DER_Encoder::start_sequence
    - Botan::pkcs_hash_id
    - what
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pkcs_hash_id
      Src: /src/botan/src/tests/test_hash_id.cpp:49,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_hash_id.cpp:51,1
    - Dst: Botan::DER_Encoder::start_sequence
      Src: /src/botan/src/tests/test_hash_id.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:61,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:61,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:63,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:70,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:73,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash_id.cpp:73,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash_id.cpp:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 80
    functionName: Botan_Tests::PKCS_HashID_Test::run
    functionSourceFile: /src/botan/src/tests/test_hash_id.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Test::Result::test_bin_eq
    - Botan::OID::from_string
    - Test::Result::test_sz_eq
    - std::vector::begin
    - Test::Result::test_failure
    - Botan::DER_Encoder::start_sequence
    - Botan::pkcs_hash_id
    - what
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pkcs_hash_id
      Src: /src/botan/src/tests/test_hash_id.cpp:49,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_hash_id.cpp:51,1
    - Dst: Botan::DER_Encoder::start_sequence
      Src: /src/botan/src/tests/test_hash_id.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:61,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:61,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:63,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:70,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:73,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash_id.cpp:73,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash_id.cpp:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 80
    functionName: Botan_Tests::PKCS_HashID_Test::run
    functionSourceFile: /src/botan/src/tests/test_hash_id.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Test::Result::test_bin_eq
    - Botan::OID::from_string
    - Test::Result::test_sz_eq
    - std::vector::begin
    - Test::Result::test_failure
    - Botan::DER_Encoder::start_sequence
    - Botan::pkcs_hash_id
    - what
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: test_reseed_kat
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:62,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:62,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:63,1
    - Dst: test_reseed_interval_limits
      Src: /src/botan/src/tests/test_rng_behavior.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:64,1
    - Dst: test_max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:64,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:66,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
      Src: /src/botan/src/tests/test_rng_behavior.cpp:66,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:67,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
      Src: /src/botan/src/tests/test_rng_behavior.cpp:67,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:68,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:69,1
    - Dst: test_security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:69,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:70,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
      Src: /src/botan/src/tests/test_rng_behavior.cpp:70,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_rng_behavior.cpp:79,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:80,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
      Src: /src/botan/src/tests/test_rng_behavior.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Stateful_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Stateful_RNG_Tests::test_reseed
    - test_reseed_interval_limits
    - test_security_level
    - std::vector::push_back
    - Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    - Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    - Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    - test_max_number_of_bytes_per_request
    - Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    - Botan_Tests::test_encoding_options
    - test_reseed_kat
    - Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    - Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::RandomNumberGenerator&
      underlying_rng,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_srcs'
    argTypes:
    - Botan::Entropy_Sources
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::Entropy_Sources&
      underlying_srcs,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' underlying_rng'
    - ' underlying_srcs'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::Entropy_Sources
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::RandomNumberGenerator&
      underlying_rng,\n                                                    Botan::Entropy_Sources&
      underlying_srcs,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:119,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:124,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:126,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:127,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:127,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:128,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:129,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:129,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:131,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:132,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:132,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:133,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:134,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:134,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:136,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:137,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:137,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:138,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:139,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:139,1
    - Dst: auto::max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:141,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:143,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:144,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:144,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:146,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:147,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 151
    functionName: Botan_Tests::Stateful_RNG_Tests::test_reseed
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - auto::max_number_of_bytes_per_request
    - rng_name
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:154,1
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:162,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:178,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:178,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:179,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:181,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:181,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:187,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:190,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:191,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:191,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:193,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:197,1
    - Dst: std::make_unique<Insufficient_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:198,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:199,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:199,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:201,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:202,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:210,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:211,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:213,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:213,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:215,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:216,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:218,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:220,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 226
    functionName: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - Botan::Null_RNG::is_seeded
    - Botan_Tests::Stateful_RNG_Tests::rng
    - auto::random_vec
    - std::make_unique<Broken_Entropy_Source>
    - std::make_unique<Insufficient_Entropy_Source>
    - rng_name
    - std::move
    - Botan::Not_Implemented::Not_Implemented
    - Botan::Entropy_Sources::add_source
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::Entropy_Sources::global_sources
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_broken_entropy_input()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Stateful_RNG_Tests::Broken_Entropy_Source::name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: Botan_Tests::Stateful_RNG_Tests::Broken_Entropy_Source::poll
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::Not_Implemented::Not_Implemented
    linkageType: ''
    returnType: size_t
    signature: size_t poll(Botan::RandomNumberGenerator& /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: Botan_Tests::Stateful_RNG_Tests::Insufficient_Entropy_Source::name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Stateful_RNG_Tests::Insufficient_Entropy_Source::poll
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t poll(Botan::RandomNumberGenerator& /*rng*/) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:229,1
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:232,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:235,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: auto::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:241,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:242,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:242,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:243,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:243,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:245,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:245,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 251
    functionName: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - auto::random_vec
    - Test::Result::test_is_true
    - auto::security_level
    - rng_name
    - std::vector::data
    - create_rng
    - auto::initialize_with
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - auto::clear
    - auto::is_seeded
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_check_nonce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:254,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:258,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:260,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:264,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:264,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:266,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:267,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 270
    functionName: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - rng_name
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_prediction_resistance()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:273,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:280,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:282,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:283,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:283,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:286,1
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_rng_behavior.cpp:290,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:292,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_rng_behavior.cpp:295,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rng_behavior.cpp:298,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:300,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:306,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:309,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:310,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:310,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:313,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:316,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:321,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:323,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:325,1
    - Dst: ::waitpid
      Src: /src/botan/src/tests/test_rng_behavior.cpp:329,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:332,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:334,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: static_cast<void>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: fprintf
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: what
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:342,1
    - Dst: ::execl
      Src: /src/botan/src/tests/test_rng_behavior.cpp:349,1
    - Dst: Botan_CLI::ServerStatus::should_exit
      Src: /src/botan/src/tests/test_rng_behavior.cpp:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 354
    functionName: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - static_cast<void>
    - Botan::secure_vector::data
    - ::execl
    - Shim_Socket::write
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - auto::random_vec
    - Test::Result::test_bin_ne
    - rng_name
    - ::pipe
    - what
    - Botan_Tests::Filter_Tests::test_fork
    - fprintf
    - Botan_CLI::ServerStatus::should_exit
    - Test::Result::test_note
    - Shim_Socket::read
    - ::waitpid
    - auto::randomize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_fork_safety()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:357,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:367,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:368,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 384
    functionName: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - Botan::secure_vector::data
    - rng_name
    - Test::Result::test_bin_eq
    - Botan::secure_vector::size
    - auto::randomize
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Test::Result::test_bin_ne
    - auto::randomize_with_ts_input
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_randomize_with_ts_input()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:387,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:392,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 403
    functionName: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_success
    - rng_name
    - std::vector::data
    - auto::randomize
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - auto::add_entropy
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_input_output_edge_cases()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::rng_name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string rng_name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:418,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:421,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:421,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:423,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:423,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:425,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:425,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:427,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:427,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - underlying_rng
    - underlying_es
    - reseed_interval
    argTypes:
    - Botan::RandomNumberGenerator*
    - Botan::Entropy_Sources*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 431
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Test_Error
    - std::move
    - std::make_unique<Botan::HMAC_DRBG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> create_rng(Botan::RandomNumberGenerator*
      underlying_rng,\n                                                      Botan::Entropy_Sources*
      underlying_es,\n                                                      size_t
      reseed_interval) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:440,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:443,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:446,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:449,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:456,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:458,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:459,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:459,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:462,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:464,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:465,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:465,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:468,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:470,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:471,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:471,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:474,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:476,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:477,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 480
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_max_number_of_bytes_per_request
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Request_Counting_RNG::randomize_count
    - Request_Counting_RNG::clear
    - Test::Result::test_sz_eq
    - Botan::HMAC_DRBG::clear
    - Test::Result::test_throws
    - Botan::HMAC_DRBG::random_vec
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_number_of_bytes_per_request() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:489,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:490,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:493,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:495,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 501
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Test::Result::test_throws
    - static_cast<size_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_interval_limits() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:509,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:514,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_behavior.cpp:516,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:521,1
    - Dst: Botan::HMAC_DRBG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 525
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - std::vector::size
    - Test::Result::test_sz_eq
    - Botan::HMAC_DRBG::security_level
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_security_level() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:531,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:537,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:537,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:550,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:550,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 555
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - auto::randomize
    - make_rng
    - Request_Counting_RNG::randomize_count
    - auto::initialize_with
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::secure_vector::size
    - Test::Result::test_is_false
    - auto::is_seeded
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Null_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:559,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rng_behavior.cpp:561,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:564,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:564,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:568,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:574,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:575,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:580,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:582,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:583,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:586,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:591,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:592,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:593,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:595,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:595,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:596,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:596,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:603,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:603,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:604,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:604,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:605,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:605,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 611
    functionName: Botan_Tests::hmac_drbg_multiple_requests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::randomize_with_input
    - Botan::hex_decode
    - auto::random_vec
    - Botan_Tests::CHECK
    - auto::insert
    - auto::end
    - auto::begin
    - test_is_true
    - std::span::subspan
    - std::make_unique<Botan::HMAC_DRBG>
    - make_seeded_rng
    - test_bin_eq
    - Botan::Null_RNG
    - auto::add_entropy
    - auto::is_seeded
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hmac_drbg_multiple_requests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 622
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::rng_name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string rng_name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:628,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:630,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:632,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:634,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - underlying_rng
    - underlying_es
    - reseed_interval
    argTypes:
    - Botan::RandomNumberGenerator*
    - Botan::Entropy_Sources*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::make_unique<Botan::ChaCha_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> create_rng(Botan::RandomNumberGenerator*
      underlying_rng,\n                                                      Botan::Entropy_Sources*
      underlying_es,\n                                                      size_t
      reseed_interval) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:642,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:643,1
    - Dst: Botan::ChaCha_RNG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::ChaCha_RNG
    - Test::Result::test_sz_eq
    - Botan::ChaCha_RNG::security_level
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_security_level() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_max_number_of_bytes_per_request
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_number_of_bytes_per_request() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_interval_limits() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:675,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:680,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:680,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 685
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - auto::randomize
    - make_rng
    - Request_Counting_RNG::randomize_count
    - auto::initialize_with
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::secure_vector::size
    - Test::Result::test_is_false
    - auto::is_seeded
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:701,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:701,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:706,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:710,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:714,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:716,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:726,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Botan::AutoSeeded_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:730,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:730,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:732,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:736,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:739,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:739,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:740,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:741,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:742,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:742,1
    - Dst: Botan::AutoSeeded_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:745,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:746,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:750,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:751,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:751,1
    - Dst: Botan::AutoSeeded_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: Botan::AutoSeeded_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:758,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 764
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::Null_RNG::is_seeded
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Test::Result::test_success
    - Botan::AutoSeeded_RNG::reseed_from
    - Botan::AutoSeeded_RNG::add_entropy
    - Botan::AutoSeeded_RNG::clear
    - Botan::AutoSeeded_RNG::is_seeded
    - std::vector::data
    - std::vector::size
    - Botan::AutoSeeded_RNG::random_vec
    - Test::Result::test_sz_eq
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::AutoSeeded_RNG::randomize
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::AutoSeeded_RNG::name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auto_rng_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:769,1
    - Dst: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_rng_behavior.cpp:787,1
    - Dst: Botan::System_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:787,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:789,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:789,1
    - Dst: Botan::System_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:790,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:794,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:794,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: Botan::System_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:803,1
    - Dst: Botan_Tests::Test::run_memory_intensive_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:803,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_rng_behavior.cpp:808,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:808,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:814,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 819
    functionName: Botan_Tests::System_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::System_RNG::add_entropy
    - Botan::System_RNG::randomize
    - Botan_Tests::Test::run_memory_intensive_tests
    - std::memset
    - std::memcmp
    - std::vector::data
    - Test::Result::test_sz_gte
    - Botan::System_RNG::reseed_from
    - Botan::Entropy_Sources::global_sources
    - Botan::System_RNG::is_seeded
    - Botan_Tests::Test::run_long_tests
    - Botan::System_RNG::name
    - Test::Result::test_is_true
    - Botan::System_RNG::clear
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/tests/test_rng_behavior.cpp:833,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_rng_behavior.cpp:836,1
    - Dst: Botan::Processor_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:836,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:837,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:837,1
    - Dst: Botan::Processor_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:838,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:839,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:839,1
    - Dst: Botan::Processor_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:842,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:842,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:843,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:852,1
    - Dst: static_cast<uintptr_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:852,1
    - Dst: Botan::Processor_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:854,1
    - Dst: Botan::Processor_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:861,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 866
    functionName: Botan_Tests::Processor_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::Processor_RNG::clear
    - Botan::Processor_RNG::name
    - reinterpret_cast<const uint8_t*>
    - Test::Result::test_str_not_empty
    - std::vector::size
    - std::vector::data
    - Botan::Processor_RNG::add_entropy
    - Test::Result::test_sz_eq
    - Botan::Entropy_Sources::global_sources
    - Botan::Processor_RNG::randomize
    - Botan::Processor_RNG::is_seeded
    - Botan::Processor_RNG::Processor_RNG
    - Botan::Processor_RNG::reseed_from
    - Test::Result::test_is_true
    - Botan::Processor_RNG::available
    - static_cast<uintptr_t>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: test_reseed_kat
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:62,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:62,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:63,1
    - Dst: test_reseed_interval_limits
      Src: /src/botan/src/tests/test_rng_behavior.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:64,1
    - Dst: test_max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:64,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:66,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
      Src: /src/botan/src/tests/test_rng_behavior.cpp:66,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:67,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
      Src: /src/botan/src/tests/test_rng_behavior.cpp:67,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:68,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:69,1
    - Dst: test_security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:69,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:70,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
      Src: /src/botan/src/tests/test_rng_behavior.cpp:70,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_rng_behavior.cpp:79,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:80,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
      Src: /src/botan/src/tests/test_rng_behavior.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Stateful_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Stateful_RNG_Tests::test_reseed
    - test_reseed_interval_limits
    - test_security_level
    - std::vector::push_back
    - Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    - Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    - Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    - test_max_number_of_bytes_per_request
    - Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    - Botan_Tests::test_encoding_options
    - test_reseed_kat
    - Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    - Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 6
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::RandomNumberGenerator&
      underlying_rng,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_srcs'
    argTypes:
    - Botan::Entropy_Sources
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 6
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::Entropy_Sources&
      underlying_srcs,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' underlying_rng'
    - ' underlying_srcs'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::Entropy_Sources
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 6
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::RandomNumberGenerator&
      underlying_rng,\n                                                    Botan::Entropy_Sources&
      underlying_srcs,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:119,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:124,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:126,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:127,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:127,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:128,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:129,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:129,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:131,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:132,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:132,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:133,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:134,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:134,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:136,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:137,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:137,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:138,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:139,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:139,1
    - Dst: auto::max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:141,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:143,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:144,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:144,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:146,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:147,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 151
    functionName: Botan_Tests::Stateful_RNG_Tests::test_reseed
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - auto::max_number_of_bytes_per_request
    - rng_name
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:154,1
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:162,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:178,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:178,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:179,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:181,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:181,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:187,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:190,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:191,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:191,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:193,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:197,1
    - Dst: std::make_unique<Insufficient_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:198,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:199,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:199,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:201,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:202,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:210,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:211,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:213,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:213,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:215,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:216,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:218,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:220,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 226
    functionName: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - Botan::Null_RNG::is_seeded
    - Botan_Tests::Stateful_RNG_Tests::rng
    - auto::random_vec
    - std::make_unique<Broken_Entropy_Source>
    - std::make_unique<Insufficient_Entropy_Source>
    - rng_name
    - std::move
    - Botan::Not_Implemented::Not_Implemented
    - Botan::Entropy_Sources::add_source
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::Entropy_Sources::global_sources
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_broken_entropy_input()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Stateful_RNG_Tests::Broken_Entropy_Source::name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: Botan_Tests::Stateful_RNG_Tests::Broken_Entropy_Source::poll
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::Not_Implemented::Not_Implemented
    linkageType: ''
    returnType: size_t
    signature: size_t poll(Botan::RandomNumberGenerator& /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: Botan_Tests::Stateful_RNG_Tests::Insufficient_Entropy_Source::name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Stateful_RNG_Tests::Insufficient_Entropy_Source::poll
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t poll(Botan::RandomNumberGenerator& /*rng*/) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:229,1
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:232,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:235,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: auto::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:241,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:242,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:242,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:243,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:243,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:245,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:245,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 251
    functionName: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - auto::random_vec
    - Test::Result::test_is_true
    - auto::security_level
    - rng_name
    - std::vector::data
    - create_rng
    - auto::initialize_with
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - auto::clear
    - auto::is_seeded
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_check_nonce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:254,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:258,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:260,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:264,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:264,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:266,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:267,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 270
    functionName: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - rng_name
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_prediction_resistance()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:273,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:280,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:282,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:283,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:283,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:286,1
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_rng_behavior.cpp:290,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:292,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_rng_behavior.cpp:295,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rng_behavior.cpp:298,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:300,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:306,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:309,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:310,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:310,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:313,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:316,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:321,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:323,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:325,1
    - Dst: ::waitpid
      Src: /src/botan/src/tests/test_rng_behavior.cpp:329,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:332,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:334,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: static_cast<void>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: fprintf
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: what
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:342,1
    - Dst: ::execl
      Src: /src/botan/src/tests/test_rng_behavior.cpp:349,1
    - Dst: Botan_CLI::ServerStatus::should_exit
      Src: /src/botan/src/tests/test_rng_behavior.cpp:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 354
    functionName: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - static_cast<void>
    - Botan::secure_vector::data
    - ::execl
    - Shim_Socket::write
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - auto::random_vec
    - Test::Result::test_bin_ne
    - rng_name
    - ::pipe
    - what
    - Botan_Tests::Filter_Tests::test_fork
    - fprintf
    - Botan_CLI::ServerStatus::should_exit
    - Test::Result::test_note
    - Shim_Socket::read
    - ::waitpid
    - auto::randomize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_fork_safety()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:357,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:367,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:368,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 384
    functionName: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - Botan::secure_vector::data
    - rng_name
    - Test::Result::test_bin_eq
    - Botan::secure_vector::size
    - auto::randomize
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Test::Result::test_bin_ne
    - auto::randomize_with_ts_input
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_randomize_with_ts_input()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:387,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:392,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 403
    functionName: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_success
    - rng_name
    - std::vector::data
    - auto::randomize
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - auto::add_entropy
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_input_output_edge_cases()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::rng_name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string rng_name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:418,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:421,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:421,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:423,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:423,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:425,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:425,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:427,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:427,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - underlying_rng
    - underlying_es
    - reseed_interval
    argTypes:
    - Botan::RandomNumberGenerator*
    - Botan::Entropy_Sources*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 431
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Test_Error
    - std::move
    - std::make_unique<Botan::HMAC_DRBG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> create_rng(Botan::RandomNumberGenerator*
      underlying_rng,\n                                                      Botan::Entropy_Sources*
      underlying_es,\n                                                      size_t
      reseed_interval) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:440,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:443,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:446,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:449,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:456,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:458,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:459,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:459,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:462,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:464,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:465,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:465,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:468,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:470,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:471,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:471,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:474,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:476,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:477,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 480
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_max_number_of_bytes_per_request
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Request_Counting_RNG::randomize_count
    - Request_Counting_RNG::clear
    - Test::Result::test_sz_eq
    - Botan::HMAC_DRBG::clear
    - Test::Result::test_throws
    - Botan::HMAC_DRBG::random_vec
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_number_of_bytes_per_request() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:489,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:490,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:493,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:495,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 501
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Test::Result::test_throws
    - static_cast<size_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_interval_limits() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:509,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:514,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_behavior.cpp:516,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:521,1
    - Dst: Botan::HMAC_DRBG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 525
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - std::vector::size
    - Test::Result::test_sz_eq
    - Botan::HMAC_DRBG::security_level
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_security_level() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:531,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:537,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:537,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:550,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:550,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 555
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - auto::randomize
    - make_rng
    - Request_Counting_RNG::randomize_count
    - auto::initialize_with
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::secure_vector::size
    - Test::Result::test_is_false
    - auto::is_seeded
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Null_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:559,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rng_behavior.cpp:561,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:564,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:564,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:568,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:574,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:575,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:580,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:582,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:583,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:586,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:591,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:592,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:593,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:595,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:595,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:596,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:596,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:603,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:603,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:604,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:604,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:605,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:605,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 611
    functionName: Botan_Tests::hmac_drbg_multiple_requests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::randomize_with_input
    - Botan::hex_decode
    - auto::random_vec
    - Botan_Tests::CHECK
    - auto::insert
    - auto::end
    - auto::begin
    - test_is_true
    - std::span::subspan
    - std::make_unique<Botan::HMAC_DRBG>
    - make_seeded_rng
    - test_bin_eq
    - Botan::Null_RNG
    - auto::add_entropy
    - auto::is_seeded
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hmac_drbg_multiple_requests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 622
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::rng_name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string rng_name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:628,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:630,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:632,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:634,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - underlying_rng
    - underlying_es
    - reseed_interval
    argTypes:
    - Botan::RandomNumberGenerator*
    - Botan::Entropy_Sources*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::make_unique<Botan::ChaCha_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> create_rng(Botan::RandomNumberGenerator*
      underlying_rng,\n                                                      Botan::Entropy_Sources*
      underlying_es,\n                                                      size_t
      reseed_interval) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:642,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:643,1
    - Dst: Botan::ChaCha_RNG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::ChaCha_RNG
    - Test::Result::test_sz_eq
    - Botan::ChaCha_RNG::security_level
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_security_level() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_max_number_of_bytes_per_request
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_number_of_bytes_per_request() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_interval_limits() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:675,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:680,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:680,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 685
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - auto::randomize
    - make_rng
    - Request_Counting_RNG::randomize_count
    - auto::initialize_with
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::secure_vector::size
    - Test::Result::test_is_false
    - auto::is_seeded
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:701,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:701,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:706,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:710,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:714,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:716,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:726,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Botan::AutoSeeded_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:730,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:730,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:732,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:736,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:739,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:739,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:740,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:741,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:742,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:742,1
    - Dst: Botan::AutoSeeded_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:745,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:746,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:750,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:751,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:751,1
    - Dst: Botan::AutoSeeded_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: Botan::AutoSeeded_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:758,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 764
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - Botan::Null_RNG::is_seeded
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Test::Result::test_success
    - Botan::AutoSeeded_RNG::reseed_from
    - Botan::AutoSeeded_RNG::add_entropy
    - Botan::AutoSeeded_RNG::clear
    - Botan::AutoSeeded_RNG::is_seeded
    - std::vector::data
    - std::vector::size
    - Botan::AutoSeeded_RNG::random_vec
    - Test::Result::test_sz_eq
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::AutoSeeded_RNG::randomize
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::AutoSeeded_RNG::name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auto_rng_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:769,1
    - Dst: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_rng_behavior.cpp:787,1
    - Dst: Botan::System_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:787,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:789,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:789,1
    - Dst: Botan::System_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:790,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:794,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:794,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: Botan::System_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:803,1
    - Dst: Botan_Tests::Test::run_memory_intensive_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:803,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_rng_behavior.cpp:808,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:808,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:814,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 819
    functionName: Botan_Tests::System_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::System_RNG::add_entropy
    - Botan::System_RNG::randomize
    - Botan_Tests::Test::run_memory_intensive_tests
    - std::memset
    - std::memcmp
    - std::vector::data
    - Test::Result::test_sz_gte
    - Botan::System_RNG::reseed_from
    - Botan::Entropy_Sources::global_sources
    - Botan::System_RNG::is_seeded
    - Botan_Tests::Test::run_long_tests
    - Botan::System_RNG::name
    - Test::Result::test_is_true
    - Botan::System_RNG::clear
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/tests/test_rng_behavior.cpp:833,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_rng_behavior.cpp:836,1
    - Dst: Botan::Processor_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:836,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:837,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:837,1
    - Dst: Botan::Processor_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:838,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:839,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:839,1
    - Dst: Botan::Processor_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:842,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:842,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:843,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:852,1
    - Dst: static_cast<uintptr_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:852,1
    - Dst: Botan::Processor_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:854,1
    - Dst: Botan::Processor_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:861,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 866
    functionName: Botan_Tests::Processor_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::Processor_RNG::clear
    - Botan::Processor_RNG::name
    - reinterpret_cast<const uint8_t*>
    - Test::Result::test_str_not_empty
    - std::vector::size
    - std::vector::data
    - Botan::Processor_RNG::add_entropy
    - Test::Result::test_sz_eq
    - Botan::Entropy_Sources::global_sources
    - Botan::Processor_RNG::randomize
    - Botan::Processor_RNG::is_seeded
    - Botan::Processor_RNG::Processor_RNG
    - Botan::Processor_RNG::reseed_from
    - Test::Result::test_is_true
    - Botan::Processor_RNG::available
    - static_cast<uintptr_t>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: test_reseed_kat
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:62,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:62,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:63,1
    - Dst: test_reseed_interval_limits
      Src: /src/botan/src/tests/test_rng_behavior.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:64,1
    - Dst: test_max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:64,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:66,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
      Src: /src/botan/src/tests/test_rng_behavior.cpp:66,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:67,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
      Src: /src/botan/src/tests/test_rng_behavior.cpp:67,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:68,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:69,1
    - Dst: test_security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:69,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:70,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
      Src: /src/botan/src/tests/test_rng_behavior.cpp:70,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_rng_behavior.cpp:79,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:80,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
      Src: /src/botan/src/tests/test_rng_behavior.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Stateful_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Stateful_RNG_Tests::test_reseed
    - test_reseed_interval_limits
    - test_security_level
    - std::vector::push_back
    - Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    - Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    - Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    - test_max_number_of_bytes_per_request
    - Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    - Botan_Tests::test_encoding_options
    - test_reseed_kat
    - Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    - Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 12
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::RandomNumberGenerator&
      underlying_rng,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_srcs'
    argTypes:
    - Botan::Entropy_Sources
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 12
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::Entropy_Sources&
      underlying_srcs,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' underlying_rng'
    - ' underlying_srcs'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::Entropy_Sources
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 12
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::RandomNumberGenerator&
      underlying_rng,\n                                                    Botan::Entropy_Sources&
      underlying_srcs,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:119,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:124,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:126,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:127,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:127,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:128,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:129,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:129,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:131,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:132,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:132,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:133,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:134,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:134,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:136,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:137,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:137,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:138,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:139,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:139,1
    - Dst: auto::max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:141,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:143,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:144,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:144,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:146,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:147,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 151
    functionName: Botan_Tests::Stateful_RNG_Tests::test_reseed
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - auto::max_number_of_bytes_per_request
    - rng_name
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:154,1
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:162,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:178,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:178,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:179,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:181,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:181,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:187,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:190,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:191,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:191,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:193,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:197,1
    - Dst: std::make_unique<Insufficient_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:198,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:199,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:199,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:201,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:202,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:210,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:211,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:213,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:213,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:215,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:216,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:218,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:220,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 226
    functionName: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - Botan::Null_RNG::is_seeded
    - Botan_Tests::Stateful_RNG_Tests::rng
    - auto::random_vec
    - std::make_unique<Broken_Entropy_Source>
    - std::make_unique<Insufficient_Entropy_Source>
    - rng_name
    - std::move
    - Botan::Not_Implemented::Not_Implemented
    - Botan::Entropy_Sources::add_source
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::Entropy_Sources::global_sources
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_broken_entropy_input()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Stateful_RNG_Tests::Broken_Entropy_Source::name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: Botan_Tests::Stateful_RNG_Tests::Broken_Entropy_Source::poll
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::Not_Implemented::Not_Implemented
    linkageType: ''
    returnType: size_t
    signature: size_t poll(Botan::RandomNumberGenerator& /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: Botan_Tests::Stateful_RNG_Tests::Insufficient_Entropy_Source::name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Stateful_RNG_Tests::Insufficient_Entropy_Source::poll
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t poll(Botan::RandomNumberGenerator& /*rng*/) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:229,1
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:232,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:235,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: auto::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:241,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:242,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:242,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:243,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:243,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:245,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:245,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 251
    functionName: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - auto::random_vec
    - Test::Result::test_is_true
    - auto::security_level
    - rng_name
    - std::vector::data
    - create_rng
    - auto::initialize_with
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - auto::clear
    - auto::is_seeded
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_check_nonce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:254,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:258,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:260,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:264,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:264,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:266,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:267,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 270
    functionName: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - rng_name
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_prediction_resistance()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:273,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:280,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:282,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:283,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:283,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:286,1
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_rng_behavior.cpp:290,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:292,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_rng_behavior.cpp:295,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rng_behavior.cpp:298,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:300,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:306,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:309,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:310,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:310,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:313,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:316,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:321,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:323,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:325,1
    - Dst: ::waitpid
      Src: /src/botan/src/tests/test_rng_behavior.cpp:329,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:332,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:334,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: static_cast<void>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: fprintf
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: what
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:342,1
    - Dst: ::execl
      Src: /src/botan/src/tests/test_rng_behavior.cpp:349,1
    - Dst: Botan_CLI::ServerStatus::should_exit
      Src: /src/botan/src/tests/test_rng_behavior.cpp:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 354
    functionName: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - static_cast<void>
    - Botan::secure_vector::data
    - ::execl
    - Shim_Socket::write
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - auto::random_vec
    - Test::Result::test_bin_ne
    - rng_name
    - ::pipe
    - what
    - Botan_Tests::Filter_Tests::test_fork
    - fprintf
    - Botan_CLI::ServerStatus::should_exit
    - Test::Result::test_note
    - Shim_Socket::read
    - ::waitpid
    - auto::randomize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_fork_safety()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:357,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:367,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:368,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 384
    functionName: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - Botan::secure_vector::data
    - rng_name
    - Test::Result::test_bin_eq
    - Botan::secure_vector::size
    - auto::randomize
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Test::Result::test_bin_ne
    - auto::randomize_with_ts_input
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_randomize_with_ts_input()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:387,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:392,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 403
    functionName: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_success
    - rng_name
    - std::vector::data
    - auto::randomize
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - auto::add_entropy
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_input_output_edge_cases()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::rng_name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string rng_name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:418,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:421,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:421,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:423,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:423,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:425,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:425,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:427,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:427,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - underlying_rng
    - underlying_es
    - reseed_interval
    argTypes:
    - Botan::RandomNumberGenerator*
    - Botan::Entropy_Sources*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 431
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Test_Error
    - std::move
    - std::make_unique<Botan::HMAC_DRBG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> create_rng(Botan::RandomNumberGenerator*
      underlying_rng,\n                                                      Botan::Entropy_Sources*
      underlying_es,\n                                                      size_t
      reseed_interval) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:440,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:443,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:446,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:449,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:456,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:458,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:459,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:459,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:462,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:464,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:465,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:465,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:468,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:470,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:471,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:471,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:474,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:476,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:477,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 480
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_max_number_of_bytes_per_request
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Request_Counting_RNG::randomize_count
    - Request_Counting_RNG::clear
    - Test::Result::test_sz_eq
    - Botan::HMAC_DRBG::clear
    - Test::Result::test_throws
    - Botan::HMAC_DRBG::random_vec
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_number_of_bytes_per_request() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:489,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:490,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:493,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:495,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 501
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Test::Result::test_throws
    - static_cast<size_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_interval_limits() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:509,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:514,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_behavior.cpp:516,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:521,1
    - Dst: Botan::HMAC_DRBG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 525
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - std::vector::size
    - Test::Result::test_sz_eq
    - Botan::HMAC_DRBG::security_level
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_security_level() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:531,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:537,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:537,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:550,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:550,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 555
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - auto::randomize
    - make_rng
    - Request_Counting_RNG::randomize_count
    - auto::initialize_with
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::secure_vector::size
    - Test::Result::test_is_false
    - auto::is_seeded
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Null_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:559,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rng_behavior.cpp:561,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:564,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:564,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:568,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:574,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:575,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:580,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:582,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:583,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:586,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:591,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:592,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:593,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:595,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:595,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:596,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:596,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:603,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:603,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:604,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:604,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:605,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:605,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 611
    functionName: Botan_Tests::hmac_drbg_multiple_requests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::randomize_with_input
    - Botan::hex_decode
    - auto::random_vec
    - Botan_Tests::CHECK
    - auto::insert
    - auto::end
    - auto::begin
    - test_is_true
    - std::span::subspan
    - std::make_unique<Botan::HMAC_DRBG>
    - make_seeded_rng
    - test_bin_eq
    - Botan::Null_RNG
    - auto::add_entropy
    - auto::is_seeded
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hmac_drbg_multiple_requests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 622
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::rng_name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string rng_name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:628,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:630,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:632,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:634,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - underlying_rng
    - underlying_es
    - reseed_interval
    argTypes:
    - Botan::RandomNumberGenerator*
    - Botan::Entropy_Sources*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::make_unique<Botan::ChaCha_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> create_rng(Botan::RandomNumberGenerator*
      underlying_rng,\n                                                      Botan::Entropy_Sources*
      underlying_es,\n                                                      size_t
      reseed_interval) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:642,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:643,1
    - Dst: Botan::ChaCha_RNG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::ChaCha_RNG
    - Test::Result::test_sz_eq
    - Botan::ChaCha_RNG::security_level
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_security_level() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_max_number_of_bytes_per_request
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_number_of_bytes_per_request() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_interval_limits() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:675,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:680,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:680,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 685
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - auto::randomize
    - make_rng
    - Request_Counting_RNG::randomize_count
    - auto::initialize_with
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::secure_vector::size
    - Test::Result::test_is_false
    - auto::is_seeded
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:701,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:701,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:706,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:710,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:714,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:716,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:726,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Botan::AutoSeeded_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:730,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:730,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:732,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:736,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:739,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:739,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:740,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:741,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:742,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:742,1
    - Dst: Botan::AutoSeeded_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:745,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:746,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:750,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:751,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:751,1
    - Dst: Botan::AutoSeeded_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: Botan::AutoSeeded_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:758,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 764
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - Botan::Null_RNG::is_seeded
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Test::Result::test_success
    - Botan::AutoSeeded_RNG::reseed_from
    - Botan::AutoSeeded_RNG::add_entropy
    - Botan::AutoSeeded_RNG::clear
    - Botan::AutoSeeded_RNG::is_seeded
    - std::vector::data
    - std::vector::size
    - Botan::AutoSeeded_RNG::random_vec
    - Test::Result::test_sz_eq
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::AutoSeeded_RNG::randomize
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::AutoSeeded_RNG::name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auto_rng_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:769,1
    - Dst: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_rng_behavior.cpp:787,1
    - Dst: Botan::System_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:787,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:789,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:789,1
    - Dst: Botan::System_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:790,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:794,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:794,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: Botan::System_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:803,1
    - Dst: Botan_Tests::Test::run_memory_intensive_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:803,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_rng_behavior.cpp:808,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:808,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:814,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 819
    functionName: Botan_Tests::System_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::System_RNG::add_entropy
    - Botan::System_RNG::randomize
    - Botan_Tests::Test::run_memory_intensive_tests
    - std::memset
    - std::memcmp
    - std::vector::data
    - Test::Result::test_sz_gte
    - Botan::System_RNG::reseed_from
    - Botan::Entropy_Sources::global_sources
    - Botan::System_RNG::is_seeded
    - Botan_Tests::Test::run_long_tests
    - Botan::System_RNG::name
    - Test::Result::test_is_true
    - Botan::System_RNG::clear
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/tests/test_rng_behavior.cpp:833,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_rng_behavior.cpp:836,1
    - Dst: Botan::Processor_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:836,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:837,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:837,1
    - Dst: Botan::Processor_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:838,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:839,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:839,1
    - Dst: Botan::Processor_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:842,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:842,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:843,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:852,1
    - Dst: static_cast<uintptr_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:852,1
    - Dst: Botan::Processor_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:854,1
    - Dst: Botan::Processor_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:861,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 866
    functionName: Botan_Tests::Processor_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::Processor_RNG::clear
    - Botan::Processor_RNG::name
    - reinterpret_cast<const uint8_t*>
    - Test::Result::test_str_not_empty
    - std::vector::size
    - std::vector::data
    - Botan::Processor_RNG::add_entropy
    - Test::Result::test_sz_eq
    - Botan::Entropy_Sources::global_sources
    - Botan::Processor_RNG::randomize
    - Botan::Processor_RNG::is_seeded
    - Botan::Processor_RNG::Processor_RNG
    - Botan::Processor_RNG::reseed_from
    - Test::Result::test_is_true
    - Botan::Processor_RNG::available
    - static_cast<uintptr_t>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: test_reseed_kat
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:62,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:62,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:63,1
    - Dst: test_reseed_interval_limits
      Src: /src/botan/src/tests/test_rng_behavior.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:64,1
    - Dst: test_max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:64,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:66,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
      Src: /src/botan/src/tests/test_rng_behavior.cpp:66,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:67,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
      Src: /src/botan/src/tests/test_rng_behavior.cpp:67,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:68,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:69,1
    - Dst: test_security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:69,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:70,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
      Src: /src/botan/src/tests/test_rng_behavior.cpp:70,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_rng_behavior.cpp:79,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:80,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
      Src: /src/botan/src/tests/test_rng_behavior.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Stateful_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Stateful_RNG_Tests::test_reseed
    - test_reseed_interval_limits
    - test_security_level
    - std::vector::push_back
    - Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    - Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    - Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    - test_max_number_of_bytes_per_request
    - Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    - Botan_Tests::test_encoding_options
    - test_reseed_kat
    - Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    - Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 18
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::RandomNumberGenerator&
      underlying_rng,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_srcs'
    argTypes:
    - Botan::Entropy_Sources
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 18
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::Entropy_Sources&
      underlying_srcs,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' underlying_rng'
    - ' underlying_srcs'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::Entropy_Sources
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Stateful_RNG_Tests::make_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 18
    functionsReached:
    - create_rng
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> make_rng(Botan::RandomNumberGenerator&
      underlying_rng,\n                                                    Botan::Entropy_Sources&
      underlying_srcs,\n                                                    size_t
      reseed_interval = 1024)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:119,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:124,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:126,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:127,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:127,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:128,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:129,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:129,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:131,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:132,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:132,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:133,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:134,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:134,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:136,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:137,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:137,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:138,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:139,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:139,1
    - Dst: auto::max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:141,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:143,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:144,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:144,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:146,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:147,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 151
    functionName: Botan_Tests::Stateful_RNG_Tests::test_reseed
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - auto::max_number_of_bytes_per_request
    - rng_name
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:154,1
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:162,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:178,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:178,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:179,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:181,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:181,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:187,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:190,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:191,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:191,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:193,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:197,1
    - Dst: std::make_unique<Insufficient_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:198,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:199,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:199,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:201,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:202,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:210,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:211,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:213,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:213,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:215,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:216,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:218,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:220,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 226
    functionName: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - Botan::Null_RNG::is_seeded
    - Botan_Tests::Stateful_RNG_Tests::rng
    - auto::random_vec
    - std::make_unique<Broken_Entropy_Source>
    - std::make_unique<Insufficient_Entropy_Source>
    - rng_name
    - std::move
    - Botan::Not_Implemented::Not_Implemented
    - Botan::Entropy_Sources::add_source
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::Entropy_Sources::global_sources
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_broken_entropy_input()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Stateful_RNG_Tests::Broken_Entropy_Source::name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: Botan_Tests::Stateful_RNG_Tests::Broken_Entropy_Source::poll
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::Not_Implemented::Not_Implemented
    linkageType: ''
    returnType: size_t
    signature: size_t poll(Botan::RandomNumberGenerator& /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: Botan_Tests::Stateful_RNG_Tests::Insufficient_Entropy_Source::name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Stateful_RNG_Tests::Insufficient_Entropy_Source::poll
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t poll(Botan::RandomNumberGenerator& /*rng*/) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:229,1
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:232,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:235,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:239,1
    - Dst: auto::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:241,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:242,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:242,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:243,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:243,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:245,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:245,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 251
    functionName: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - auto::random_vec
    - Test::Result::test_is_true
    - auto::security_level
    - rng_name
    - std::vector::data
    - create_rng
    - auto::initialize_with
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - auto::clear
    - auto::is_seeded
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_check_nonce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:254,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:258,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:260,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:264,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:264,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:266,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:267,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 270
    functionName: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - rng_name
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_prediction_resistance()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:273,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:280,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:282,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:283,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:283,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:286,1
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_rng_behavior.cpp:290,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:292,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_rng_behavior.cpp:295,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rng_behavior.cpp:298,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:300,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:306,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:309,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:310,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:310,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:313,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:316,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:317,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:321,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:323,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:325,1
    - Dst: ::waitpid
      Src: /src/botan/src/tests/test_rng_behavior.cpp:329,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:332,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:333,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:334,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:337,1
    - Dst: static_cast<void>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: fprintf
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: what
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:341,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:342,1
    - Dst: ::execl
      Src: /src/botan/src/tests/test_rng_behavior.cpp:349,1
    - Dst: Botan_CLI::ServerStatus::should_exit
      Src: /src/botan/src/tests/test_rng_behavior.cpp:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 354
    functionName: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_sz_eq
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - static_cast<void>
    - Botan::secure_vector::data
    - ::execl
    - Shim_Socket::write
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - auto::random_vec
    - Test::Result::test_bin_ne
    - rng_name
    - ::pipe
    - what
    - Botan_Tests::Filter_Tests::test_fork
    - fprintf
    - Botan_CLI::ServerStatus::should_exit
    - Test::Result::test_note
    - Shim_Socket::read
    - ::waitpid
    - auto::randomize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_fork_safety()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:357,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:367,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:368,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:374,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:379,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 384
    functionName: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - Botan::secure_vector::data
    - rng_name
    - Test::Result::test_bin_eq
    - Botan::secure_vector::size
    - auto::randomize
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Test::Result::test_bin_ne
    - auto::randomize_with_ts_input
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_randomize_with_ts_input()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:387,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:392,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:397,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 403
    functionName: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_success
    - rng_name
    - std::vector::data
    - auto::randomize
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - auto::add_entropy
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_input_output_edge_cases()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::rng_name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string rng_name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:418,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:421,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:421,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:423,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:423,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:425,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:425,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:427,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:427,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - underlying_rng
    - underlying_es
    - reseed_interval
    argTypes:
    - Botan::RandomNumberGenerator*
    - Botan::Entropy_Sources*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 431
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Test_Error
    - std::move
    - std::make_unique<Botan::HMAC_DRBG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> create_rng(Botan::RandomNumberGenerator*
      underlying_rng,\n                                                      Botan::Entropy_Sources*
      underlying_es,\n                                                      size_t
      reseed_interval) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:440,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:443,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:446,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:449,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:456,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:458,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:459,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:459,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:462,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:464,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:465,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:465,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:468,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:470,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:471,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:471,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:474,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:476,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:477,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 480
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_max_number_of_bytes_per_request
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Request_Counting_RNG::randomize_count
    - Request_Counting_RNG::clear
    - Test::Result::test_sz_eq
    - Botan::HMAC_DRBG::clear
    - Test::Result::test_throws
    - Botan::HMAC_DRBG::random_vec
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_number_of_bytes_per_request() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:489,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:490,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:493,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:495,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 501
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Test::Result::test_throws
    - static_cast<size_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_interval_limits() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:509,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:514,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_behavior.cpp:516,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:521,1
    - Dst: Botan::HMAC_DRBG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 525
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - std::vector::size
    - Test::Result::test_sz_eq
    - Botan::HMAC_DRBG::security_level
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_security_level() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:531,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:537,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:537,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:539,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:543,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:549,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:550,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:550,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 555
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - auto::randomize
    - make_rng
    - Request_Counting_RNG::randomize_count
    - auto::initialize_with
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::secure_vector::size
    - Test::Result::test_is_false
    - auto::is_seeded
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Null_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:559,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rng_behavior.cpp:561,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:564,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:564,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:568,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:574,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:575,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:580,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:582,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:583,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:584,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:586,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:591,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:592,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:593,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:595,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:595,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:596,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:596,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:603,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:603,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:604,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:604,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:605,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:605,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 611
    functionName: Botan_Tests::hmac_drbg_multiple_requests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::randomize_with_input
    - Botan::hex_decode
    - auto::random_vec
    - Botan_Tests::CHECK
    - auto::insert
    - auto::end
    - auto::begin
    - test_is_true
    - std::span::subspan
    - std::make_unique<Botan::HMAC_DRBG>
    - make_seeded_rng
    - test_bin_eq
    - Botan::Null_RNG
    - auto::add_entropy
    - auto::is_seeded
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hmac_drbg_multiple_requests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 622
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::rng_name
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string rng_name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:628,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:630,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:632,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:634,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - underlying_rng
    - underlying_es
    - reseed_interval
    argTypes:
    - Botan::RandomNumberGenerator*
    - Botan::Entropy_Sources*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::make_unique<Botan::ChaCha_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Stateful_RNG>
    signature: "std::unique_ptr<Botan::Stateful_RNG> create_rng(Botan::RandomNumberGenerator*
      underlying_rng,\n                                                      Botan::Entropy_Sources*
      underlying_es,\n                                                      size_t
      reseed_interval) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:642,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:643,1
    - Dst: Botan::ChaCha_RNG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::ChaCha_RNG
    - Test::Result::test_sz_eq
    - Botan::ChaCha_RNG::security_level
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_security_level() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_max_number_of_bytes_per_request
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_max_number_of_bytes_per_request() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_interval_limits() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:675,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:679,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:680,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:680,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 685
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - auto::randomize
    - make_rng
    - Request_Counting_RNG::randomize_count
    - auto::initialize_with
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::secure_vector::size
    - Test::Result::test_is_false
    - auto::is_seeded
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:701,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:701,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:706,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:710,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:714,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:716,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:726,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Botan::AutoSeeded_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:730,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:730,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:732,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:736,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:739,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:739,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:740,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:741,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:742,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:742,1
    - Dst: Botan::AutoSeeded_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:745,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:746,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:750,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:751,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:751,1
    - Dst: Botan::AutoSeeded_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:755,1
    - Dst: Botan::AutoSeeded_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:756,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:758,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 764
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - Botan::Null_RNG::is_seeded
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Test::Result::test_success
    - Botan::AutoSeeded_RNG::reseed_from
    - Botan::AutoSeeded_RNG::add_entropy
    - Botan::AutoSeeded_RNG::clear
    - Botan::AutoSeeded_RNG::is_seeded
    - std::vector::data
    - std::vector::size
    - Botan::AutoSeeded_RNG::random_vec
    - Test::Result::test_sz_eq
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::AutoSeeded_RNG::randomize
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::AutoSeeded_RNG::name
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result auto_rng_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:769,1
    - Dst: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_rng_behavior.cpp:787,1
    - Dst: Botan::System_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:787,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:789,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:789,1
    - Dst: Botan::System_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:790,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:794,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:794,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:799,1
    - Dst: Botan::System_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:800,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:803,1
    - Dst: Botan_Tests::Test::run_memory_intensive_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:803,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_rng_behavior.cpp:808,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:808,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:810,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:814,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 819
    functionName: Botan_Tests::System_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::System_RNG::add_entropy
    - Botan::System_RNG::randomize
    - Botan_Tests::Test::run_memory_intensive_tests
    - std::memset
    - std::memcmp
    - std::vector::data
    - Test::Result::test_sz_gte
    - Botan::System_RNG::reseed_from
    - Botan::Entropy_Sources::global_sources
    - Botan::System_RNG::is_seeded
    - Botan_Tests::Test::run_long_tests
    - Botan::System_RNG::name
    - Test::Result::test_is_true
    - Botan::System_RNG::clear
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/tests/test_rng_behavior.cpp:833,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_rng_behavior.cpp:836,1
    - Dst: Botan::Processor_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:836,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:837,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:837,1
    - Dst: Botan::Processor_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:838,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rng_behavior.cpp:839,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:839,1
    - Dst: Botan::Processor_RNG::reseed_from
      Src: /src/botan/src/tests/test_rng_behavior.cpp:842,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:842,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:843,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:852,1
    - Dst: static_cast<uintptr_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:852,1
    - Dst: Botan::Processor_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:854,1
    - Dst: Botan::Processor_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:858,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:861,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 866
    functionName: Botan_Tests::Processor_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::Processor_RNG::clear
    - Botan::Processor_RNG::name
    - reinterpret_cast<const uint8_t*>
    - Test::Result::test_str_not_empty
    - std::vector::size
    - std::vector::data
    - Botan::Processor_RNG::add_entropy
    - Test::Result::test_sz_eq
    - Botan::Entropy_Sources::global_sources
    - Botan::Processor_RNG::randomize
    - Botan::Processor_RNG::is_seeded
    - Botan::Processor_RNG::Processor_RNG
    - Botan::Processor_RNG::reseed_from
    - Test::Result::test_is_true
    - Botan::Processor_RNG::available
    - static_cast<uintptr_t>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/test_alt_name.cpp:44,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/test_alt_name.cpp:46,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/tests/test_alt_name.cpp:49,1
    - Dst: Botan::AlternativeName::add_ipv4_address
      Src: /src/botan/src/tests/test_alt_name.cpp:52,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/tests/test_alt_name.cpp:55,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:58,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:58,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:59,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:59,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:62,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:63,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:66,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:67,1
    - Dst: Botan::DER_Encoder::encode
      Src: /src/botan/src/tests/test_alt_name.cpp:71,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/test_alt_name.cpp:73,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_alt_name.cpp:75,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: Botan::AlternativeName::dns
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:79,1
    - Dst: Botan::AlternativeName::dns
      Src: /src/botan/src/tests/test_alt_name.cpp:79,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: Botan::AlternativeName::uris
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:84,1
    - Dst: Botan::AlternativeName::uris
      Src: /src/botan/src/tests/test_alt_name.cpp:84,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: Botan::AlternativeName::email
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:89,1
    - Dst: Botan::AlternativeName::email
      Src: /src/botan/src/tests/test_alt_name.cpp:89,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:92,1
    - Dst: Botan::AlternativeName::directory_names
      Src: /src/botan/src/tests/test_alt_name.cpp:92,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:93,1
    - Dst: Botan::AlternativeName::other_names
      Src: /src/botan/src/tests/test_alt_name.cpp:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 96
    functionName: Botan_Tests::X509_Alt_Name_Tests::run
    functionSourceFile: /src/botan/src/tests/test_alt_name.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlternativeName::add_uri
    - Botan::AlternativeName::AlternativeName
    - Botan::AlternativeName::add_dns
    - Botan::AlternativeName::other_names
    - Botan::AlternativeName::add_other_name
    - Botan::AlternativeName::add_dn
    - Test::Result::test_sz_eq
    - Botan::DER_Encoder::encode
    - Botan::AlternativeName::add_ipv4_address
    - Botan::X509_DN::add_attribute
    - Botan::AlternativeName::email
    - Botan::AlternativeName::dns
    - Botan::AlternativeName::directory_names
    - Botan::ASN1_String::ASN1_String
    - std::vector::size
    - Botan::AlternativeName::add_email
    - Test::Result::test_is_true
    - Botan::BER_Decoder::decode
    - Botan::AlternativeName::uris
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/test_alt_name.cpp:44,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/test_alt_name.cpp:46,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/tests/test_alt_name.cpp:49,1
    - Dst: Botan::AlternativeName::add_ipv4_address
      Src: /src/botan/src/tests/test_alt_name.cpp:52,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/tests/test_alt_name.cpp:55,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:58,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:58,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:59,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:59,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:62,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:63,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:66,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:67,1
    - Dst: Botan::DER_Encoder::encode
      Src: /src/botan/src/tests/test_alt_name.cpp:71,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/test_alt_name.cpp:73,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_alt_name.cpp:75,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: Botan::AlternativeName::dns
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:79,1
    - Dst: Botan::AlternativeName::dns
      Src: /src/botan/src/tests/test_alt_name.cpp:79,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: Botan::AlternativeName::uris
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:84,1
    - Dst: Botan::AlternativeName::uris
      Src: /src/botan/src/tests/test_alt_name.cpp:84,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: Botan::AlternativeName::email
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:89,1
    - Dst: Botan::AlternativeName::email
      Src: /src/botan/src/tests/test_alt_name.cpp:89,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:92,1
    - Dst: Botan::AlternativeName::directory_names
      Src: /src/botan/src/tests/test_alt_name.cpp:92,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:93,1
    - Dst: Botan::AlternativeName::other_names
      Src: /src/botan/src/tests/test_alt_name.cpp:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 96
    functionName: Botan_Tests::X509_Alt_Name_Tests::run
    functionSourceFile: /src/botan/src/tests/test_alt_name.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlternativeName::add_uri
    - Botan::AlternativeName::AlternativeName
    - Botan::AlternativeName::add_dns
    - Botan::AlternativeName::other_names
    - Botan::AlternativeName::add_other_name
    - Botan::AlternativeName::add_dn
    - Test::Result::test_sz_eq
    - Botan::DER_Encoder::encode
    - Botan::AlternativeName::add_ipv4_address
    - Botan::X509_DN::add_attribute
    - Botan::AlternativeName::email
    - Botan::AlternativeName::dns
    - Botan::AlternativeName::directory_names
    - Botan::ASN1_String::ASN1_String
    - std::vector::size
    - Botan::AlternativeName::add_email
    - Test::Result::test_is_true
    - Botan::BER_Decoder::decode
    - Botan::AlternativeName::uris
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/test_alt_name.cpp:44,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/test_alt_name.cpp:46,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/tests/test_alt_name.cpp:49,1
    - Dst: Botan::AlternativeName::add_ipv4_address
      Src: /src/botan/src/tests/test_alt_name.cpp:52,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/tests/test_alt_name.cpp:55,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:58,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:58,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:59,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:59,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:62,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:63,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:66,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:67,1
    - Dst: Botan::DER_Encoder::encode
      Src: /src/botan/src/tests/test_alt_name.cpp:71,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/test_alt_name.cpp:73,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_alt_name.cpp:75,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: Botan::AlternativeName::dns
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:79,1
    - Dst: Botan::AlternativeName::dns
      Src: /src/botan/src/tests/test_alt_name.cpp:79,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: Botan::AlternativeName::uris
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:84,1
    - Dst: Botan::AlternativeName::uris
      Src: /src/botan/src/tests/test_alt_name.cpp:84,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: Botan::AlternativeName::email
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:89,1
    - Dst: Botan::AlternativeName::email
      Src: /src/botan/src/tests/test_alt_name.cpp:89,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:92,1
    - Dst: Botan::AlternativeName::directory_names
      Src: /src/botan/src/tests/test_alt_name.cpp:92,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:93,1
    - Dst: Botan::AlternativeName::other_names
      Src: /src/botan/src/tests/test_alt_name.cpp:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 96
    functionName: Botan_Tests::X509_Alt_Name_Tests::run
    functionSourceFile: /src/botan/src/tests/test_alt_name.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlternativeName::add_uri
    - Botan::AlternativeName::AlternativeName
    - Botan::AlternativeName::add_dns
    - Botan::AlternativeName::other_names
    - Botan::AlternativeName::add_other_name
    - Botan::AlternativeName::add_dn
    - Test::Result::test_sz_eq
    - Botan::DER_Encoder::encode
    - Botan::AlternativeName::add_ipv4_address
    - Botan::X509_DN::add_attribute
    - Botan::AlternativeName::email
    - Botan::AlternativeName::dns
    - Botan::AlternativeName::directory_names
    - Botan::ASN1_String::ASN1_String
    - std::vector::size
    - Botan::AlternativeName::add_email
    - Test::Result::test_is_true
    - Botan::BER_Decoder::decode
    - Botan::AlternativeName::uris
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/test_alt_name.cpp:44,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/test_alt_name.cpp:46,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/tests/test_alt_name.cpp:49,1
    - Dst: Botan::AlternativeName::add_ipv4_address
      Src: /src/botan/src/tests/test_alt_name.cpp:52,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/tests/test_alt_name.cpp:55,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:58,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:58,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:59,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:59,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:62,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:63,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:66,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:67,1
    - Dst: Botan::DER_Encoder::encode
      Src: /src/botan/src/tests/test_alt_name.cpp:71,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/test_alt_name.cpp:73,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_alt_name.cpp:75,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: Botan::AlternativeName::dns
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:79,1
    - Dst: Botan::AlternativeName::dns
      Src: /src/botan/src/tests/test_alt_name.cpp:79,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: Botan::AlternativeName::uris
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:84,1
    - Dst: Botan::AlternativeName::uris
      Src: /src/botan/src/tests/test_alt_name.cpp:84,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: Botan::AlternativeName::email
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:87,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_alt_name.cpp:89,1
    - Dst: Botan::AlternativeName::email
      Src: /src/botan/src/tests/test_alt_name.cpp:89,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:92,1
    - Dst: Botan::AlternativeName::directory_names
      Src: /src/botan/src/tests/test_alt_name.cpp:92,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:93,1
    - Dst: Botan::AlternativeName::other_names
      Src: /src/botan/src/tests/test_alt_name.cpp:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 96
    functionName: Botan_Tests::X509_Alt_Name_Tests::run
    functionSourceFile: /src/botan/src/tests/test_alt_name.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlternativeName::add_uri
    - Botan::AlternativeName::AlternativeName
    - Botan::AlternativeName::add_dns
    - Botan::AlternativeName::other_names
    - Botan::AlternativeName::add_other_name
    - Botan::AlternativeName::add_dn
    - Test::Result::test_sz_eq
    - Botan::DER_Encoder::encode
    - Botan::AlternativeName::add_ipv4_address
    - Botan::X509_DN::add_attribute
    - Botan::AlternativeName::email
    - Botan::AlternativeName::dns
    - Botan::AlternativeName::directory_names
    - Botan::ASN1_String::ASN1_String
    - std::vector::size
    - Botan::AlternativeName::add_email
    - Test::Result::test_is_true
    - Botan::BER_Decoder::decode
    - Botan::AlternativeName::uris
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: STRING_AND_FUNCTION
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING_AND_FUNCTION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::secure_string
      Src: /src/botan/src/tests/test_pkcs11.h:37,1
    - Dst: std::string_view::begin
      Src: /src/botan/src/tests/test_pkcs11.h:37,1
    - Dst: std::string_view::end
      Src: /src/botan/src/tests/test_pkcs11.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::to_sec_string
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::secure_string
    - std::string_view::end
    - std::string_view::begin
    linkageType: ''
    returnType: Botan::PKCS11::secure_string
    signature: Botan::PKCS11::secure_string to_sec_string(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::to_sec_string
      Src: /src/botan/src/tests/test_pkcs11.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan_Tests::PIN
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::to_sec_string
    linkageType: ''
    returnType: Botan::PKCS11::secure_string
    signature: Botan::PKCS11::secure_string PIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::to_sec_string
      Src: /src/botan/src/tests/test_pkcs11.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan_Tests::SO_PIN
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::to_sec_string
    linkageType: ''
    returnType: Botan::PKCS11::secure_string
    signature: Botan::PKCS11::secure_string SO_PIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::to_sec_string
      Src: /src/botan/src/tests/test_pkcs11.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Botan_Tests::TEST_PIN
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::to_sec_string
    linkageType: ''
    returnType: Botan::PKCS11::secure_string
    signature: Botan::PKCS11::secure_string TEST_PIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::to_sec_string
      Src: /src/botan/src/tests/test_pkcs11.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_Tests::TEST_SO_PIN
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::to_sec_string
    linkageType: ''
    returnType: Botan::PKCS11::secure_string
    signature: Botan::PKCS11::secure_string TEST_SO_PIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: STRING_AND_FUNCTION
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING_AND_FUNCTION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::secure_string
      Src: /src/botan/src/tests/test_pkcs11.h:37,1
    - Dst: std::string_view::begin
      Src: /src/botan/src/tests/test_pkcs11.h:37,1
    - Dst: std::string_view::end
      Src: /src/botan/src/tests/test_pkcs11.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::to_sec_string
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 4
    functionsReached:
    - Botan::PKCS11::secure_string
    - std::string_view::end
    - std::string_view::begin
    linkageType: ''
    returnType: Botan::PKCS11::secure_string
    signature: Botan::PKCS11::secure_string to_sec_string(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::to_sec_string
      Src: /src/botan/src/tests/test_pkcs11.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan_Tests::PIN
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::to_sec_string
    linkageType: ''
    returnType: Botan::PKCS11::secure_string
    signature: Botan::PKCS11::secure_string PIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::to_sec_string
      Src: /src/botan/src/tests/test_pkcs11.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan_Tests::SO_PIN
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::to_sec_string
    linkageType: ''
    returnType: Botan::PKCS11::secure_string
    signature: Botan::PKCS11::secure_string SO_PIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::to_sec_string
      Src: /src/botan/src/tests/test_pkcs11.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Botan_Tests::TEST_PIN
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::to_sec_string
    linkageType: ''
    returnType: Botan::PKCS11::secure_string
    signature: Botan::PKCS11::secure_string TEST_PIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::to_sec_string
      Src: /src/botan/src/tests/test_pkcs11.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_Tests::TEST_SO_PIN
    functionSourceFile: /src/botan/src/tests/test_pkcs11.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::to_sec_string
    linkageType: ''
    returnType: Botan::PKCS11::secure_string
    signature: Botan::PKCS11::secure_string TEST_SO_PIN()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:55,1
    - Dst: static_cast<int>
      Src: /src/botan/src/tests/test_ec_group.cpp:58,1
    - Dst: flip_prob
      Src: /src/botan/src/tests/test_ec_group.cpp:60,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:61,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:71,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/tests/test_ec_group.cpp:76,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/tests/test_ec_group.cpp:77,1
    - Dst: Botan::BigInt::get_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:77,1
    - Dst: Botan::BigInt::clear_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - ' rng'
    - bits
    - ' max'
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 83
    functionName: Botan_Tests::test_integer
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - BOTAN_ASSERT
    - Botan::BigInt::clear_bit
    - Botan::BigInt::random_integer
    - flip_prob
    - static_cast<int>
    - next_byte
    - Botan::BigInt::get_bit
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt test_integer(Botan::RandomNumberGenerator& rng, size_t
      bits, const BigInt& max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:86,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:90,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:91,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:91,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:92,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:92,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_ec_group.cpp:94,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/tests/test_ec_group.cpp:97,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:97,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: Botan_Tests::create_random_point
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_b
    - get_p
    - auto::square
    - auto::reduce
    - point
    - Botan::BigInt::random_integer
    - get_a
    - BOTAN_ASSERT_EQUAL
    - Botan::sqrt_modulo_prime
    - auto::multiply
    - Botan::Barrett_Reduction::for_public_modulus
    linkageType: ''
    returnType: Botan::EC_Point
    signature: Botan::EC_Point create_random_point(Botan::RandomNumberGenerator& rng,
      const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:110,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:115,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ec_group.cpp:121,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::mod_order
      Src: /src/botan/src/tests/test_ec_group.cpp:125,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:131,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:131,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:132,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:132,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:133,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:133,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:141,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:154,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:155,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:156,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:162,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:164,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 169
    functionName: Botan_Tests::ECC_Randomized_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::blinded_var_point_multiply
    - Botan_Tests::ECC_Randomized_Tests::rng
    - Botan::EC_Point::force_affine
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - Botan::EC_Point::xy_bytes
    - test_integer
    - auto::get_order
    - create_random_point
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - what
    - Test::Result::test_is_true
    - std::vector::push_back
    - auto::mod_order
    - auto::get_order_bits
    - rng
    - Botan::EC_Point::on_the_curve
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> ECC_Randomized_Tests::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:180,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:189,1
    - Dst: auto::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:189,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: auto::get_cofactor
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/tests/test_ec_group.cpp:196,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:196,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:198,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_ec_group.cpp:199,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:199,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:204,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:205,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:206,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:207,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:208,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:209,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:212,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:215,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:217,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:218,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:223,1
    - Dst: auto::a_is_minus_3
      Src: /src/botan/src/tests/test_ec_group.cpp:225,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::a_is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:231,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:239,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:239,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:242,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:242,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:248,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:248,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:253,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan_Tests::EC_Group_Tests::test_ser_der
      Src: /src/botan/src/tests/test_ec_group.cpp:258,1
    - Dst: Botan_Tests::EC_Group_Tests::test_basic_math
      Src: /src/botan/src/tests/test_ec_group.cpp:259,1
    - Dst: Botan_Tests::EC_Group_Tests::test_point_swap
      Src: /src/botan/src/tests/test_ec_group.cpp:260,1
    - Dst: Botan_Tests::EC_Group_Tests::test_zeropoint
      Src: /src/botan/src/tests/test_ec_group.cpp:261,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:264,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 270
    functionName: Botan_Tests::EC_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::get_base_point
    - auto::verify_group
    - Botan::EC_Point::force_affine
    - Test::Result::test_sz_eq
    - Botan_Tests::EC_Group_Tests::test_point_swap
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::EC_Group_Tests::test_basic_math
    - auto::get_g_y
    - Botan::EC_Group::EC_group_identity_from_order
    - auto::a_is_minus_3
    - auto::get_p_bits
    - auto::is_zero
    - auto::get_cofactor
    - Botan_Tests::EC_Group_Tests::test_ser_der
    - auto::get_a
    - Botan::EC_Point::get_affine_x
    - auto::get_b
    - Botan_Tests::EC_Group_Tests::rng
    - auto::DER_encode
    - auto::get_curve_oid
    - Botan_Tests::EC_Group_Tests::test_zeropoint
    - auto::get_order
    - auto::used_explicit_encoding
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::OID::to_string
    - auto::a_is_zero
    - BigInt
    - Botan::EC_Group::used_explicit_encoding
    - Botan::EC_Group::from_name
    - auto::get_p_bytes
    - Test::Result::test_is_true
    - Test::Result::test_bn_ne
    - auto::get_g_x
    - std::vector::push_back
    - Test::Result::test_str_eq
    - auto::get_p
    - Botan::EC_Point::get_affine_y
    - Botan::EC_Point::randomize_repr
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:277,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:277,1
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:278,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:292,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 295
    functionName: Botan_Tests::EC_Group_Tests::test_ser_der
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - zero_point
    - create_random_point
    - Botan::EC_Point::encode
    - OS2ECP
    - test_is_true
    - test_failure
    - test_bin_eq
    - what
    - Botan_Tests::EC_Group_Tests::rng
    - Botan::EC_Point::xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_ser_der(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:298,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:314,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 319
    functionName: Botan_Tests::EC_Group_Tests::test_basic_math
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - get_base_point
    - auto::xy_bytes
    - test_is_true
    - test_bin_eq
    - Botan::EC_Point::on_the_curve
    - point
    - test_success
    - Botan::EC_Point::xy_bytes
    - xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_basic_math(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/tests/test_ec_group.cpp:329,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: Botan_Tests::EC_Group_Tests::test_point_swap
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - create_random_point
    - Botan::BigInt
    - test_bin_eq
    - Botan_Tests::EC_Group_Tests::rng
    - Botan::EC_Point::xy_bytes
    - Botan::EC_Point::swap
    linkageType: ''
    returnType: void
    signature: void test_point_swap(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:337,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:337,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:338,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:338,1
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:342,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:342,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:343,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:348,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:351,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:353,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:359,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:360,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:360,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:364,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:364,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:369,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:370,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 372
    functionName: Botan_Tests::EC_Group_Tests::test_zeropoint
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - zero_point
    - get_p
    - test_bn_eq
    - get_base_point
    - is_zero
    - test_is_true
    - Botan::EC_Point::encode
    - OS2ECP
    - Botan::EC_Point::is_zero
    - Botan::EC_Point::get_affine_x
    - test_throws
    - test_bin_eq
    - Botan::EC_Point::on_the_curve
    - Botan::EC_Point::xy_bytes
    - Botan::EC_Point::get_affine_y
    - xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_zeropoint(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:382,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/tests/test_ec_group.cpp:385,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ec_group.cpp:385,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:386,1
    - Dst: auto::initialized
      Src: /src/botan/src/tests/test_ec_group.cpp:386,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:390,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 394
    functionName: Botan_Tests::test_decoding_with_seed
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::EC_Group::from_PEM
    - Botan_Tests::Test::read_data_file
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - auto::get_p
    - Test::Result::test_failure
    - auto::initialized
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decoding_with_seed()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:399,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:399,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:400,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:401,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:404,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:407,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:410,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:411,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:412,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 416
    functionName: Botan_Tests::test_mixed_points
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::get_base_point
    - Botan::EC_AffinePoint::generator
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - auto::add
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_mixed_points()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:423,1
    - Dst: test_decoding_with_seed
      Src: /src/botan/src/tests/test_ec_group.cpp:423,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:424,1
    - Dst: test_mixed_points
      Src: /src/botan/src/tests/test_ec_group.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 427
    functionName: Botan_Tests::ECC_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - test_decoding_with_seed
    - test_mixed_points
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ec_group.cpp:437,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:438,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:439,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
      Src: /src/botan/src/tests/test_ec_group.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:440,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:440,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:441,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
      Src: /src/botan/src/tests/test_ec_group.cpp:441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:442,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:442,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:443,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
      Src: /src/botan/src/tests/test_ec_group.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 447
    functionName: Botan_Tests::EC_Group_Registration_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    - std::vector::push_back
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:467,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:469,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:469,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:472,1
    - Dst: auto::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 475
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - auto::engine
    - Test::Result::test_bn_eq
    - Botan::EC_Group::from_OID
    - auto::get_p
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:480,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:496,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 499
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_is_true
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_from_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:504,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:519,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 525
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_bad_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:530,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:544,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:548,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:549,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:549,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:553,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:554,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 557
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::from_OID
    - Test::Result::test_is_true
    - auto::get_curve_oid
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_duplicate_orders()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:562,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:565,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:570,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:574,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:575,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:577,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:578,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:581,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:581,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:584,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:585,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:595,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:595,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:598,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:599,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:600,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 607
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - auto::get_order
    - Botan::OID::register_oid
    - Test::Result::test_enum_eq
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::from_OID
    - auto::get_g_x
    - auto::_data
    - Botan::EC_Group::_data
    - auto::get_a
    - auto::get_p
    - Botan::EC_Group::engine
    - auto::get_b
    - Test::Result::test_failure
    - auto::get_g_y
    - Test::Result::test_is_true
    - auto::get_curve_oid
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_registration_with_custom_oid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:612,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:615,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:617,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:620,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:621,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:623,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:624,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:625,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:627,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:629,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:629,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:630,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:632,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:632,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:633,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:634,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:637,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:638,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:640,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:643,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:643,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Botan::EC_Group::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: Botan::EC_Group::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: Botan::EC_Group::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: Botan::EC_Group::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: Botan::EC_Group::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: Botan::EC_Group::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:652,1
    - Dst: Botan::create_ec_private_key
      Src: /src/botan/src/tests/test_ec_group.cpp:653,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:654,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: std::unique_ptr::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:661,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:662,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 668
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - Botan::OID::register_oid
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_g_x
    - std::unique_ptr::check_key
    - auto::get_g_y
    - Botan::EC_Group::unregister
    - Test::Result::test_success
    - Botan::EC_Group::from_OID
    - Botan::EC_Group::get_p
    - auto::get_a
    - auto::get_b
    - Test::Result::test_failure
    - auto::get_order
    - Botan::EC_Group::get_a
    - Botan::EC_Group::get_b
    - Botan::EC_Group::get_g_y
    - Botan::create_ec_private_key
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::EC_Group::get_curve_oid
    - Botan::EC_Group::get_order
    - Botan_Tests::Test::new_rng
    - auto::get_g_x
    - auto::get_p
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_unregistration()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:678,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:680,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:681,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:685,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:688,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:689,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:691,1
    - Dst: Result::test_u8_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:692,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ec_group.cpp:694,1
    - Dst: Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:697,1
    - Dst: Result::test_u8_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:698,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:700,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:703,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:704,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:711,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:712,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:723,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:732,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 738
    functionName: Botan_Tests::EC_PointEnc_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::test_failure
    - fuzzer_rng
    - Botan::EC_Scalar::random
    - auto::size
    - auto::serialize_compressed
    - Result::test_sz_eq
    - Botan::EC_AffinePoint::g_mul
    - subspan
    - auto::negate
    - Result::start_timer
    - Result::test_bin_eq
    - Result::end_timer
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Result::test_u8_eq
    - Botan::EC_Group::known_named_groups
    - Botan::EC_AffinePoint::deserialize
    - auto::serialize_uncompressed
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:748,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:751,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:755,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ec_group.cpp:757,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:759,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:760,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:765,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:766,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:766,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:768,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:769,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:769,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:771,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:772,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:772,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:774,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:775,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:775,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:779,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:780,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:780,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:783,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:786,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:786,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:788,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:788,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:789,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:789,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:791,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:792,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:792,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:794,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:794,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:795,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:795,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:796,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:796,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:798,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:798,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:799,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:799,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:804,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:804,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:806,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:807,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:810,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:811,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:812,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:814,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:816,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:819,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/tests/test_ec_group.cpp:828,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:831,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ec_group.cpp:832,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:832,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:833,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:837,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:840,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:843,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:847,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:848,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:852,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:852,1
    - Dst: Botan::EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/tests/test_ec_group.cpp:854,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:857,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:857,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:861,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:863,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 867
    functionName: Botan_Tests::EC_Point_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - fuzzer_rng
    - is_zero
    - Botan::EC_Scalar::EC_Scalar
    - Botan::EC_Group::known_named_groups
    - auto::is_zero
    - Botan::EC_Scalar::one
    - auto::mul
    - auto::add
    - auto::serialize_uncompressed
    - static_cast<uint8_t>
    - Result::test_is_true
    - std::vector::size
    - Result::end_timer
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_AffinePoint::generator
    - Result::start_timer
    - Result::test_bin_eq
    - Botan::EC_Group::from_name
    - auto::is_identity
    - auto::get_order_bytes
    - auto::negate
    - std::vector::push_back
    - Botan::EC_Group::Mul2Table::mul2_vartime
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 876
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::ECC_Invalid_Key_Tests
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Invalid_Key_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 878
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ec_group.cpp:883,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ec_group.cpp:887,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: Botan_Tests::ECC_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 894
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - Botan_Tests::ECC_Invalid_Key_Tests::rng
    - Test::Result::test_is_false
    - Botan::X509::load_key
    - auto::check_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:55,1
    - Dst: static_cast<int>
      Src: /src/botan/src/tests/test_ec_group.cpp:58,1
    - Dst: flip_prob
      Src: /src/botan/src/tests/test_ec_group.cpp:60,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:61,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:71,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/tests/test_ec_group.cpp:76,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/tests/test_ec_group.cpp:77,1
    - Dst: Botan::BigInt::get_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:77,1
    - Dst: Botan::BigInt::clear_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - ' rng'
    - bits
    - ' max'
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 83
    functionName: Botan_Tests::test_integer
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - BOTAN_ASSERT
    - Botan::BigInt::clear_bit
    - Botan::BigInt::random_integer
    - flip_prob
    - static_cast<int>
    - next_byte
    - Botan::BigInt::get_bit
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt test_integer(Botan::RandomNumberGenerator& rng, size_t
      bits, const BigInt& max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:86,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:90,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:91,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:91,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:92,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:92,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_ec_group.cpp:94,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/tests/test_ec_group.cpp:97,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:97,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: Botan_Tests::create_random_point
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_b
    - get_p
    - auto::square
    - auto::reduce
    - point
    - Botan::BigInt::random_integer
    - get_a
    - BOTAN_ASSERT_EQUAL
    - Botan::sqrt_modulo_prime
    - auto::multiply
    - Botan::Barrett_Reduction::for_public_modulus
    linkageType: ''
    returnType: Botan::EC_Point
    signature: Botan::EC_Point create_random_point(Botan::RandomNumberGenerator& rng,
      const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:110,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:115,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ec_group.cpp:121,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::mod_order
      Src: /src/botan/src/tests/test_ec_group.cpp:125,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:131,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:131,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:132,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:132,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:133,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:133,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:141,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:154,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:155,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:156,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:162,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:164,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 169
    functionName: Botan_Tests::ECC_Randomized_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::blinded_var_point_multiply
    - Botan_Tests::ECC_Randomized_Tests::rng
    - Botan::EC_Point::force_affine
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - Botan::EC_Point::xy_bytes
    - test_integer
    - auto::get_order
    - create_random_point
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - what
    - Test::Result::test_is_true
    - std::vector::push_back
    - auto::mod_order
    - auto::get_order_bits
    - rng
    - Botan::EC_Point::on_the_curve
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> ECC_Randomized_Tests::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:180,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:189,1
    - Dst: auto::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:189,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: auto::get_cofactor
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/tests/test_ec_group.cpp:196,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:196,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:198,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_ec_group.cpp:199,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:199,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:204,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:205,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:206,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:207,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:208,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:209,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:212,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:215,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:217,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:218,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:223,1
    - Dst: auto::a_is_minus_3
      Src: /src/botan/src/tests/test_ec_group.cpp:225,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::a_is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:231,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:239,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:239,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:242,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:242,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:248,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:248,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:253,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan_Tests::EC_Group_Tests::test_ser_der
      Src: /src/botan/src/tests/test_ec_group.cpp:258,1
    - Dst: Botan_Tests::EC_Group_Tests::test_basic_math
      Src: /src/botan/src/tests/test_ec_group.cpp:259,1
    - Dst: Botan_Tests::EC_Group_Tests::test_point_swap
      Src: /src/botan/src/tests/test_ec_group.cpp:260,1
    - Dst: Botan_Tests::EC_Group_Tests::test_zeropoint
      Src: /src/botan/src/tests/test_ec_group.cpp:261,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:264,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 270
    functionName: Botan_Tests::EC_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::get_base_point
    - auto::verify_group
    - Botan::EC_Point::force_affine
    - Test::Result::test_sz_eq
    - Botan_Tests::EC_Group_Tests::test_point_swap
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::EC_Group_Tests::test_basic_math
    - auto::get_g_y
    - Botan::EC_Group::EC_group_identity_from_order
    - auto::a_is_minus_3
    - auto::get_p_bits
    - auto::is_zero
    - auto::get_cofactor
    - Botan_Tests::EC_Group_Tests::test_ser_der
    - auto::get_a
    - Botan::EC_Point::get_affine_x
    - auto::get_b
    - Botan_Tests::EC_Group_Tests::rng
    - auto::DER_encode
    - auto::get_curve_oid
    - Botan_Tests::EC_Group_Tests::test_zeropoint
    - auto::get_order
    - auto::used_explicit_encoding
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::OID::to_string
    - auto::a_is_zero
    - BigInt
    - Botan::EC_Group::used_explicit_encoding
    - Botan::EC_Group::from_name
    - auto::get_p_bytes
    - Test::Result::test_is_true
    - Test::Result::test_bn_ne
    - auto::get_g_x
    - std::vector::push_back
    - Test::Result::test_str_eq
    - auto::get_p
    - Botan::EC_Point::get_affine_y
    - Botan::EC_Point::randomize_repr
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:277,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:277,1
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:278,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:292,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 295
    functionName: Botan_Tests::EC_Group_Tests::test_ser_der
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - zero_point
    - create_random_point
    - Botan::EC_Point::encode
    - OS2ECP
    - test_is_true
    - test_failure
    - test_bin_eq
    - what
    - Botan_Tests::EC_Group_Tests::rng
    - Botan::EC_Point::xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_ser_der(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:298,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:314,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 319
    functionName: Botan_Tests::EC_Group_Tests::test_basic_math
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - get_base_point
    - auto::xy_bytes
    - test_is_true
    - test_bin_eq
    - Botan::EC_Point::on_the_curve
    - point
    - test_success
    - Botan::EC_Point::xy_bytes
    - xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_basic_math(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/tests/test_ec_group.cpp:329,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: Botan_Tests::EC_Group_Tests::test_point_swap
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - create_random_point
    - Botan::BigInt
    - test_bin_eq
    - Botan_Tests::EC_Group_Tests::rng
    - Botan::EC_Point::xy_bytes
    - Botan::EC_Point::swap
    linkageType: ''
    returnType: void
    signature: void test_point_swap(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:337,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:337,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:338,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:338,1
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:342,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:342,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:343,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:348,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:351,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:353,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:359,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:360,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:360,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:364,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:364,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:369,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:370,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 372
    functionName: Botan_Tests::EC_Group_Tests::test_zeropoint
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - zero_point
    - get_p
    - test_bn_eq
    - get_base_point
    - is_zero
    - test_is_true
    - Botan::EC_Point::encode
    - OS2ECP
    - Botan::EC_Point::is_zero
    - Botan::EC_Point::get_affine_x
    - test_throws
    - test_bin_eq
    - Botan::EC_Point::on_the_curve
    - Botan::EC_Point::xy_bytes
    - Botan::EC_Point::get_affine_y
    - xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_zeropoint(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:382,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/tests/test_ec_group.cpp:385,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ec_group.cpp:385,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:386,1
    - Dst: auto::initialized
      Src: /src/botan/src/tests/test_ec_group.cpp:386,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:390,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 394
    functionName: Botan_Tests::test_decoding_with_seed
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::EC_Group::from_PEM
    - Botan_Tests::Test::read_data_file
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - auto::get_p
    - Test::Result::test_failure
    - auto::initialized
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decoding_with_seed()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:399,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:399,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:400,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:401,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:404,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:407,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:410,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:411,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:412,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 416
    functionName: Botan_Tests::test_mixed_points
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::get_base_point
    - Botan::EC_AffinePoint::generator
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - auto::add
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_mixed_points()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:423,1
    - Dst: test_decoding_with_seed
      Src: /src/botan/src/tests/test_ec_group.cpp:423,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:424,1
    - Dst: test_mixed_points
      Src: /src/botan/src/tests/test_ec_group.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 427
    functionName: Botan_Tests::ECC_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - test_decoding_with_seed
    - test_mixed_points
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ec_group.cpp:437,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:438,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:439,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
      Src: /src/botan/src/tests/test_ec_group.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:440,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:440,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:441,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
      Src: /src/botan/src/tests/test_ec_group.cpp:441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:442,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:442,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:443,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
      Src: /src/botan/src/tests/test_ec_group.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 447
    functionName: Botan_Tests::EC_Group_Registration_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    - std::vector::push_back
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:467,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:469,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:469,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:472,1
    - Dst: auto::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 475
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - auto::engine
    - Test::Result::test_bn_eq
    - Botan::EC_Group::from_OID
    - auto::get_p
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:480,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:496,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 499
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_is_true
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_from_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:504,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:519,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 525
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_bad_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:530,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:544,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:548,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:549,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:549,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:553,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:554,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 557
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::from_OID
    - Test::Result::test_is_true
    - auto::get_curve_oid
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_duplicate_orders()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:562,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:565,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:570,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:574,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:575,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:577,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:578,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:581,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:581,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:584,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:585,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:595,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:595,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:598,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:599,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:600,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 607
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - auto::get_order
    - Botan::OID::register_oid
    - Test::Result::test_enum_eq
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::from_OID
    - auto::get_g_x
    - auto::_data
    - Botan::EC_Group::_data
    - auto::get_a
    - auto::get_p
    - Botan::EC_Group::engine
    - auto::get_b
    - Test::Result::test_failure
    - auto::get_g_y
    - Test::Result::test_is_true
    - auto::get_curve_oid
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_registration_with_custom_oid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:612,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:615,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:617,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:620,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:621,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:623,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:624,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:625,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:627,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:629,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:629,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:630,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:632,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:632,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:633,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:634,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:637,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:638,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:640,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:643,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:643,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Botan::EC_Group::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: Botan::EC_Group::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: Botan::EC_Group::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: Botan::EC_Group::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: Botan::EC_Group::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: Botan::EC_Group::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:652,1
    - Dst: Botan::create_ec_private_key
      Src: /src/botan/src/tests/test_ec_group.cpp:653,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:654,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: std::unique_ptr::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:661,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:662,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 668
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - Botan::OID::register_oid
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_g_x
    - std::unique_ptr::check_key
    - auto::get_g_y
    - Botan::EC_Group::unregister
    - Test::Result::test_success
    - Botan::EC_Group::from_OID
    - Botan::EC_Group::get_p
    - auto::get_a
    - auto::get_b
    - Test::Result::test_failure
    - auto::get_order
    - Botan::EC_Group::get_a
    - Botan::EC_Group::get_b
    - Botan::EC_Group::get_g_y
    - Botan::create_ec_private_key
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::EC_Group::get_curve_oid
    - Botan::EC_Group::get_order
    - Botan_Tests::Test::new_rng
    - auto::get_g_x
    - auto::get_p
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_unregistration()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:678,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:680,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:681,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:685,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:688,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:689,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:691,1
    - Dst: Result::test_u8_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:692,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ec_group.cpp:694,1
    - Dst: Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:697,1
    - Dst: Result::test_u8_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:698,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:700,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:703,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:704,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:711,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:712,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:723,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:732,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 738
    functionName: Botan_Tests::EC_PointEnc_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::test_failure
    - fuzzer_rng
    - Botan::EC_Scalar::random
    - auto::size
    - auto::serialize_compressed
    - Result::test_sz_eq
    - Botan::EC_AffinePoint::g_mul
    - subspan
    - auto::negate
    - Result::start_timer
    - Result::test_bin_eq
    - Result::end_timer
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Result::test_u8_eq
    - Botan::EC_Group::known_named_groups
    - Botan::EC_AffinePoint::deserialize
    - auto::serialize_uncompressed
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:748,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:751,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:755,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ec_group.cpp:757,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:759,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:760,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:765,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:766,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:766,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:768,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:769,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:769,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:771,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:772,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:772,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:774,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:775,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:775,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:779,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:780,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:780,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:783,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:786,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:786,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:788,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:788,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:789,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:789,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:791,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:792,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:792,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:794,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:794,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:795,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:795,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:796,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:796,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:798,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:798,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:799,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:799,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:804,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:804,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:806,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:807,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:810,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:811,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:812,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:814,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:816,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:819,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/tests/test_ec_group.cpp:828,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:831,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ec_group.cpp:832,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:832,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:833,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:837,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:840,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:843,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:847,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:848,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:852,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:852,1
    - Dst: Botan::EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/tests/test_ec_group.cpp:854,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:857,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:857,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:861,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:863,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 867
    functionName: Botan_Tests::EC_Point_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - fuzzer_rng
    - is_zero
    - Botan::EC_Scalar::EC_Scalar
    - Botan::EC_Group::known_named_groups
    - auto::is_zero
    - Botan::EC_Scalar::one
    - auto::mul
    - auto::add
    - auto::serialize_uncompressed
    - static_cast<uint8_t>
    - Result::test_is_true
    - std::vector::size
    - Result::end_timer
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_AffinePoint::generator
    - Result::start_timer
    - Result::test_bin_eq
    - Botan::EC_Group::from_name
    - auto::is_identity
    - auto::get_order_bytes
    - auto::negate
    - std::vector::push_back
    - Botan::EC_Group::Mul2Table::mul2_vartime
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 876
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::ECC_Invalid_Key_Tests
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Invalid_Key_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 878
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ec_group.cpp:883,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ec_group.cpp:887,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: Botan_Tests::ECC_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 894
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - Botan_Tests::ECC_Invalid_Key_Tests::rng
    - Test::Result::test_is_false
    - Botan::X509::load_key
    - auto::check_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:55,1
    - Dst: static_cast<int>
      Src: /src/botan/src/tests/test_ec_group.cpp:58,1
    - Dst: flip_prob
      Src: /src/botan/src/tests/test_ec_group.cpp:60,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:61,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:71,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/tests/test_ec_group.cpp:76,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/tests/test_ec_group.cpp:77,1
    - Dst: Botan::BigInt::get_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:77,1
    - Dst: Botan::BigInt::clear_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - ' rng'
    - bits
    - ' max'
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 83
    functionName: Botan_Tests::test_integer
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - BOTAN_ASSERT
    - Botan::BigInt::clear_bit
    - Botan::BigInt::random_integer
    - flip_prob
    - static_cast<int>
    - next_byte
    - Botan::BigInt::get_bit
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt test_integer(Botan::RandomNumberGenerator& rng, size_t
      bits, const BigInt& max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:86,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:90,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:91,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:91,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:92,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:92,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_ec_group.cpp:94,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/tests/test_ec_group.cpp:97,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:97,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: Botan_Tests::create_random_point
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_b
    - get_p
    - auto::square
    - auto::reduce
    - point
    - Botan::BigInt::random_integer
    - get_a
    - BOTAN_ASSERT_EQUAL
    - Botan::sqrt_modulo_prime
    - auto::multiply
    - Botan::Barrett_Reduction::for_public_modulus
    linkageType: ''
    returnType: Botan::EC_Point
    signature: Botan::EC_Point create_random_point(Botan::RandomNumberGenerator& rng,
      const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:110,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:115,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ec_group.cpp:121,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::mod_order
      Src: /src/botan/src/tests/test_ec_group.cpp:125,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:131,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:131,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:132,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:132,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:133,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:133,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:141,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:154,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:155,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:156,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:162,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:164,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 169
    functionName: Botan_Tests::ECC_Randomized_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::blinded_var_point_multiply
    - Botan_Tests::ECC_Randomized_Tests::rng
    - Botan::EC_Point::force_affine
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - Botan::EC_Point::xy_bytes
    - test_integer
    - auto::get_order
    - create_random_point
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - what
    - Test::Result::test_is_true
    - std::vector::push_back
    - auto::mod_order
    - auto::get_order_bits
    - rng
    - Botan::EC_Point::on_the_curve
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> ECC_Randomized_Tests::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:180,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:189,1
    - Dst: auto::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:189,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: auto::get_cofactor
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/tests/test_ec_group.cpp:196,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:196,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:198,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_ec_group.cpp:199,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:199,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:204,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:205,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:206,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:207,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:208,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:209,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:212,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:215,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:217,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:218,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:223,1
    - Dst: auto::a_is_minus_3
      Src: /src/botan/src/tests/test_ec_group.cpp:225,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::a_is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:231,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:239,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:239,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:242,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:242,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:248,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:248,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:253,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan_Tests::EC_Group_Tests::test_ser_der
      Src: /src/botan/src/tests/test_ec_group.cpp:258,1
    - Dst: Botan_Tests::EC_Group_Tests::test_basic_math
      Src: /src/botan/src/tests/test_ec_group.cpp:259,1
    - Dst: Botan_Tests::EC_Group_Tests::test_point_swap
      Src: /src/botan/src/tests/test_ec_group.cpp:260,1
    - Dst: Botan_Tests::EC_Group_Tests::test_zeropoint
      Src: /src/botan/src/tests/test_ec_group.cpp:261,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:264,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 270
    functionName: Botan_Tests::EC_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::get_base_point
    - auto::verify_group
    - Botan::EC_Point::force_affine
    - Test::Result::test_sz_eq
    - Botan_Tests::EC_Group_Tests::test_point_swap
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::EC_Group_Tests::test_basic_math
    - auto::get_g_y
    - Botan::EC_Group::EC_group_identity_from_order
    - auto::a_is_minus_3
    - auto::get_p_bits
    - auto::is_zero
    - auto::get_cofactor
    - Botan_Tests::EC_Group_Tests::test_ser_der
    - auto::get_a
    - Botan::EC_Point::get_affine_x
    - auto::get_b
    - Botan_Tests::EC_Group_Tests::rng
    - auto::DER_encode
    - auto::get_curve_oid
    - Botan_Tests::EC_Group_Tests::test_zeropoint
    - auto::get_order
    - auto::used_explicit_encoding
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::OID::to_string
    - auto::a_is_zero
    - BigInt
    - Botan::EC_Group::used_explicit_encoding
    - Botan::EC_Group::from_name
    - auto::get_p_bytes
    - Test::Result::test_is_true
    - Test::Result::test_bn_ne
    - auto::get_g_x
    - std::vector::push_back
    - Test::Result::test_str_eq
    - auto::get_p
    - Botan::EC_Point::get_affine_y
    - Botan::EC_Point::randomize_repr
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:277,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:277,1
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:278,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:292,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 295
    functionName: Botan_Tests::EC_Group_Tests::test_ser_der
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - zero_point
    - create_random_point
    - Botan::EC_Point::encode
    - OS2ECP
    - test_is_true
    - test_failure
    - test_bin_eq
    - what
    - Botan_Tests::EC_Group_Tests::rng
    - Botan::EC_Point::xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_ser_der(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:298,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:314,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 319
    functionName: Botan_Tests::EC_Group_Tests::test_basic_math
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - get_base_point
    - auto::xy_bytes
    - test_is_true
    - test_bin_eq
    - Botan::EC_Point::on_the_curve
    - point
    - test_success
    - Botan::EC_Point::xy_bytes
    - xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_basic_math(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/tests/test_ec_group.cpp:329,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: Botan_Tests::EC_Group_Tests::test_point_swap
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - create_random_point
    - Botan::BigInt
    - test_bin_eq
    - Botan_Tests::EC_Group_Tests::rng
    - Botan::EC_Point::xy_bytes
    - Botan::EC_Point::swap
    linkageType: ''
    returnType: void
    signature: void test_point_swap(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:337,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:337,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:338,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:338,1
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:342,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:342,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:343,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:348,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:351,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:353,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:359,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:360,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:360,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:364,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:364,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:369,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:370,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 372
    functionName: Botan_Tests::EC_Group_Tests::test_zeropoint
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - zero_point
    - get_p
    - test_bn_eq
    - get_base_point
    - is_zero
    - test_is_true
    - Botan::EC_Point::encode
    - OS2ECP
    - Botan::EC_Point::is_zero
    - Botan::EC_Point::get_affine_x
    - test_throws
    - test_bin_eq
    - Botan::EC_Point::on_the_curve
    - Botan::EC_Point::xy_bytes
    - Botan::EC_Point::get_affine_y
    - xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_zeropoint(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:382,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/tests/test_ec_group.cpp:385,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ec_group.cpp:385,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:386,1
    - Dst: auto::initialized
      Src: /src/botan/src/tests/test_ec_group.cpp:386,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:390,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 394
    functionName: Botan_Tests::test_decoding_with_seed
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::EC_Group::from_PEM
    - Botan_Tests::Test::read_data_file
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - auto::get_p
    - Test::Result::test_failure
    - auto::initialized
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decoding_with_seed()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:399,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:399,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:400,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:401,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:404,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:407,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:410,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:411,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:412,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 416
    functionName: Botan_Tests::test_mixed_points
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::get_base_point
    - Botan::EC_AffinePoint::generator
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - auto::add
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_mixed_points()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:423,1
    - Dst: test_decoding_with_seed
      Src: /src/botan/src/tests/test_ec_group.cpp:423,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:424,1
    - Dst: test_mixed_points
      Src: /src/botan/src/tests/test_ec_group.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 427
    functionName: Botan_Tests::ECC_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - test_decoding_with_seed
    - test_mixed_points
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ec_group.cpp:437,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:438,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:439,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
      Src: /src/botan/src/tests/test_ec_group.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:440,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:440,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:441,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
      Src: /src/botan/src/tests/test_ec_group.cpp:441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:442,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:442,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:443,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
      Src: /src/botan/src/tests/test_ec_group.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 447
    functionName: Botan_Tests::EC_Group_Registration_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    - std::vector::push_back
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:467,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:469,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:469,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:472,1
    - Dst: auto::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 475
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - auto::engine
    - Test::Result::test_bn_eq
    - Botan::EC_Group::from_OID
    - auto::get_p
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:480,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:496,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 499
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_is_true
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_from_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:504,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:519,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 525
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_bad_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:530,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:544,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:548,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:549,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:549,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:553,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:554,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 557
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::from_OID
    - Test::Result::test_is_true
    - auto::get_curve_oid
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_duplicate_orders()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:562,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:565,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:570,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:574,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:575,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:577,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:578,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:581,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:581,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:584,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:585,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:595,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:595,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:598,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:599,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:600,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 607
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - auto::get_order
    - Botan::OID::register_oid
    - Test::Result::test_enum_eq
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::from_OID
    - auto::get_g_x
    - auto::_data
    - Botan::EC_Group::_data
    - auto::get_a
    - auto::get_p
    - Botan::EC_Group::engine
    - auto::get_b
    - Test::Result::test_failure
    - auto::get_g_y
    - Test::Result::test_is_true
    - auto::get_curve_oid
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_registration_with_custom_oid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:612,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:615,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:617,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:620,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:621,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:623,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:624,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:625,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:627,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:629,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:629,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:630,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:632,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:632,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:633,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:634,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:637,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:638,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:640,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:643,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:643,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Botan::EC_Group::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: Botan::EC_Group::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: Botan::EC_Group::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: Botan::EC_Group::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: Botan::EC_Group::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: Botan::EC_Group::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:652,1
    - Dst: Botan::create_ec_private_key
      Src: /src/botan/src/tests/test_ec_group.cpp:653,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:654,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: std::unique_ptr::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:661,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:662,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 668
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - Botan::OID::register_oid
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_g_x
    - std::unique_ptr::check_key
    - auto::get_g_y
    - Botan::EC_Group::unregister
    - Test::Result::test_success
    - Botan::EC_Group::from_OID
    - Botan::EC_Group::get_p
    - auto::get_a
    - auto::get_b
    - Test::Result::test_failure
    - auto::get_order
    - Botan::EC_Group::get_a
    - Botan::EC_Group::get_b
    - Botan::EC_Group::get_g_y
    - Botan::create_ec_private_key
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::EC_Group::get_curve_oid
    - Botan::EC_Group::get_order
    - Botan_Tests::Test::new_rng
    - auto::get_g_x
    - auto::get_p
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_unregistration()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:678,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:680,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:681,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:685,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:688,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:689,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:691,1
    - Dst: Result::test_u8_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:692,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ec_group.cpp:694,1
    - Dst: Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:697,1
    - Dst: Result::test_u8_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:698,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:700,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:703,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:704,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:711,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:712,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:723,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:732,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 738
    functionName: Botan_Tests::EC_PointEnc_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::test_failure
    - fuzzer_rng
    - Botan::EC_Scalar::random
    - auto::size
    - auto::serialize_compressed
    - Result::test_sz_eq
    - Botan::EC_AffinePoint::g_mul
    - subspan
    - auto::negate
    - Result::start_timer
    - Result::test_bin_eq
    - Result::end_timer
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Result::test_u8_eq
    - Botan::EC_Group::known_named_groups
    - Botan::EC_AffinePoint::deserialize
    - auto::serialize_uncompressed
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:748,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:751,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:755,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ec_group.cpp:757,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:759,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:760,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:765,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:766,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:766,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:768,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:769,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:769,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:771,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:772,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:772,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:774,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:775,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:775,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:779,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:780,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:780,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:783,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:786,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:786,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:788,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:788,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:789,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:789,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:791,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:792,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:792,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:794,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:794,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:795,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:795,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:796,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:796,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:798,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:798,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:799,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:799,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:804,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:804,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:806,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:807,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:810,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:811,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:812,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:814,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:816,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:819,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/tests/test_ec_group.cpp:828,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:831,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ec_group.cpp:832,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:832,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:833,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:837,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:840,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:843,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:847,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:848,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:852,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:852,1
    - Dst: Botan::EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/tests/test_ec_group.cpp:854,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:857,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:857,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:861,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:863,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 867
    functionName: Botan_Tests::EC_Point_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - fuzzer_rng
    - is_zero
    - Botan::EC_Scalar::EC_Scalar
    - Botan::EC_Group::known_named_groups
    - auto::is_zero
    - Botan::EC_Scalar::one
    - auto::mul
    - auto::add
    - auto::serialize_uncompressed
    - static_cast<uint8_t>
    - Result::test_is_true
    - std::vector::size
    - Result::end_timer
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_AffinePoint::generator
    - Result::start_timer
    - Result::test_bin_eq
    - Botan::EC_Group::from_name
    - auto::is_identity
    - auto::get_order_bytes
    - auto::negate
    - std::vector::push_back
    - Botan::EC_Group::Mul2Table::mul2_vartime
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 876
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::ECC_Invalid_Key_Tests
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Invalid_Key_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 878
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ec_group.cpp:883,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ec_group.cpp:887,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: Botan_Tests::ECC_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 894
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - Botan_Tests::ECC_Invalid_Key_Tests::rng
    - Test::Result::test_is_false
    - Botan::X509::load_key
    - auto::check_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:55,1
    - Dst: static_cast<int>
      Src: /src/botan/src/tests/test_ec_group.cpp:58,1
    - Dst: flip_prob
      Src: /src/botan/src/tests/test_ec_group.cpp:60,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:61,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:71,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/tests/test_ec_group.cpp:76,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/tests/test_ec_group.cpp:77,1
    - Dst: Botan::BigInt::get_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:77,1
    - Dst: Botan::BigInt::clear_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - ' rng'
    - bits
    - ' max'
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 83
    functionName: Botan_Tests::test_integer
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - BOTAN_ASSERT
    - Botan::BigInt::clear_bit
    - Botan::BigInt::random_integer
    - flip_prob
    - static_cast<int>
    - next_byte
    - Botan::BigInt::get_bit
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt test_integer(Botan::RandomNumberGenerator& rng, size_t
      bits, const BigInt& max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:86,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:90,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:91,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:91,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:92,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:92,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_ec_group.cpp:94,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/tests/test_ec_group.cpp:97,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:97,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: Botan_Tests::create_random_point
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_b
    - get_p
    - auto::square
    - auto::reduce
    - point
    - Botan::BigInt::random_integer
    - get_a
    - BOTAN_ASSERT_EQUAL
    - Botan::sqrt_modulo_prime
    - auto::multiply
    - Botan::Barrett_Reduction::for_public_modulus
    linkageType: ''
    returnType: Botan::EC_Point
    signature: Botan::EC_Point create_random_point(Botan::RandomNumberGenerator& rng,
      const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:110,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:115,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ec_group.cpp:121,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:123,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:124,1
    - Dst: auto::mod_order
      Src: /src/botan/src/tests/test_ec_group.cpp:125,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:131,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:131,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:132,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:132,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:133,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:133,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:141,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:154,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:155,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:156,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:157,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:159,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:162,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:164,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 169
    functionName: Botan_Tests::ECC_Randomized_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::blinded_var_point_multiply
    - Botan_Tests::ECC_Randomized_Tests::rng
    - Botan::EC_Point::force_affine
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - Botan::EC_Point::xy_bytes
    - test_integer
    - auto::get_order
    - create_random_point
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - what
    - Test::Result::test_is_true
    - std::vector::push_back
    - auto::mod_order
    - auto::get_order_bits
    - rng
    - Botan::EC_Point::on_the_curve
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> ECC_Randomized_Tests::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:180,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:189,1
    - Dst: auto::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:189,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:191,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: auto::get_cofactor
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/tests/test_ec_group.cpp:196,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:196,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:198,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_ec_group.cpp:199,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:199,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:204,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:205,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:206,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:207,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:208,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:209,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:212,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:215,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:217,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:218,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:223,1
    - Dst: auto::a_is_minus_3
      Src: /src/botan/src/tests/test_ec_group.cpp:225,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:226,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: auto::a_is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:231,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:232,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:239,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:239,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:242,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:242,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:248,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:248,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:250,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:253,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan_Tests::EC_Group_Tests::test_ser_der
      Src: /src/botan/src/tests/test_ec_group.cpp:258,1
    - Dst: Botan_Tests::EC_Group_Tests::test_basic_math
      Src: /src/botan/src/tests/test_ec_group.cpp:259,1
    - Dst: Botan_Tests::EC_Group_Tests::test_point_swap
      Src: /src/botan/src/tests/test_ec_group.cpp:260,1
    - Dst: Botan_Tests::EC_Group_Tests::test_zeropoint
      Src: /src/botan/src/tests/test_ec_group.cpp:261,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:264,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 270
    functionName: Botan_Tests::EC_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::get_base_point
    - auto::verify_group
    - Botan::EC_Point::force_affine
    - Test::Result::test_sz_eq
    - Botan_Tests::EC_Group_Tests::test_point_swap
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::EC_Group_Tests::test_basic_math
    - auto::get_g_y
    - Botan::EC_Group::EC_group_identity_from_order
    - auto::a_is_minus_3
    - auto::get_p_bits
    - auto::is_zero
    - auto::get_cofactor
    - Botan_Tests::EC_Group_Tests::test_ser_der
    - auto::get_a
    - Botan::EC_Point::get_affine_x
    - auto::get_b
    - Botan_Tests::EC_Group_Tests::rng
    - auto::DER_encode
    - auto::get_curve_oid
    - Botan_Tests::EC_Group_Tests::test_zeropoint
    - auto::get_order
    - auto::used_explicit_encoding
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::OID::to_string
    - auto::a_is_zero
    - BigInt
    - Botan::EC_Group::used_explicit_encoding
    - Botan::EC_Group::from_name
    - auto::get_p_bytes
    - Test::Result::test_is_true
    - Test::Result::test_bn_ne
    - auto::get_g_x
    - std::vector::push_back
    - Test::Result::test_str_eq
    - auto::get_p
    - Botan::EC_Point::get_affine_y
    - Botan::EC_Point::randomize_repr
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:277,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:277,1
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:278,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:284,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:290,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:292,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 295
    functionName: Botan_Tests::EC_Group_Tests::test_ser_der
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - zero_point
    - create_random_point
    - Botan::EC_Point::encode
    - OS2ECP
    - test_is_true
    - test_failure
    - test_bin_eq
    - what
    - Botan_Tests::EC_Group_Tests::rng
    - Botan::EC_Point::xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_ser_der(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:298,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:306,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:314,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 319
    functionName: Botan_Tests::EC_Group_Tests::test_basic_math
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - get_base_point
    - auto::xy_bytes
    - test_is_true
    - test_bin_eq
    - Botan::EC_Point::on_the_curve
    - point
    - test_success
    - Botan::EC_Point::xy_bytes
    - xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_basic_math(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/tests/test_ec_group.cpp:329,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: Botan_Tests::EC_Group_Tests::test_point_swap
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - create_random_point
    - Botan::BigInt
    - test_bin_eq
    - Botan_Tests::EC_Group_Tests::rng
    - Botan::EC_Point::xy_bytes
    - Botan::EC_Point::swap
    linkageType: ''
    returnType: void
    signature: void test_point_swap(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:337,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:337,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:338,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:338,1
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:340,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:342,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:342,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:343,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:343,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:348,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:348,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:351,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:353,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:359,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:359,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:360,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:360,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:361,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: Botan::EC_Point::xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: xy_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:364,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:364,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:369,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:370,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 372
    functionName: Botan_Tests::EC_Group_Tests::test_zeropoint
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - zero_point
    - get_p
    - test_bn_eq
    - get_base_point
    - is_zero
    - test_is_true
    - Botan::EC_Point::encode
    - OS2ECP
    - Botan::EC_Point::is_zero
    - Botan::EC_Point::get_affine_x
    - test_throws
    - test_bin_eq
    - Botan::EC_Point::on_the_curve
    - Botan::EC_Point::xy_bytes
    - Botan::EC_Point::get_affine_y
    - xy_bytes
    linkageType: ''
    returnType: void
    signature: void test_zeropoint(Test::Result& result, const Botan::EC_Group& group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:382,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/tests/test_ec_group.cpp:385,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ec_group.cpp:385,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:386,1
    - Dst: auto::initialized
      Src: /src/botan/src/tests/test_ec_group.cpp:386,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:387,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:390,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 394
    functionName: Botan_Tests::test_decoding_with_seed
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::EC_Group::from_PEM
    - Botan_Tests::Test::read_data_file
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - auto::get_p
    - Test::Result::test_failure
    - auto::initialized
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_decoding_with_seed()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:399,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:399,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:400,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:401,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:404,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:407,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:410,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:411,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:412,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 416
    functionName: Botan_Tests::test_mixed_points
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::get_base_point
    - Botan::EC_AffinePoint::generator
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - auto::add
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_mixed_points()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:423,1
    - Dst: test_decoding_with_seed
      Src: /src/botan/src/tests/test_ec_group.cpp:423,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:424,1
    - Dst: test_mixed_points
      Src: /src/botan/src/tests/test_ec_group.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 427
    functionName: Botan_Tests::ECC_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - test_decoding_with_seed
    - test_mixed_points
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ec_group.cpp:437,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:438,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:439,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
      Src: /src/botan/src/tests/test_ec_group.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:440,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:440,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:441,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
      Src: /src/botan/src/tests/test_ec_group.cpp:441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:442,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:442,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:443,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
      Src: /src/botan/src/tests/test_ec_group.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 447
    functionName: Botan_Tests::EC_Group_Registration_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    - std::vector::push_back
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:467,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:469,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:469,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:472,1
    - Dst: auto::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 475
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - auto::engine
    - Test::Result::test_bn_eq
    - Botan::EC_Group::from_OID
    - auto::get_p
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecc_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:480,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:496,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 499
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_is_true
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_from_params()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:504,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:519,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 525
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_bad_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:530,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:544,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:548,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:549,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:549,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:553,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:554,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 557
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::from_OID
    - Test::Result::test_is_true
    - auto::get_curve_oid
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_duplicate_orders()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:562,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:565,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:570,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:574,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:575,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:577,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:578,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:581,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:581,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:584,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:585,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:595,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:595,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:598,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:599,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:600,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 607
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - auto::get_order
    - Botan::OID::register_oid
    - Test::Result::test_enum_eq
    - Test::Result::test_success
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::from_OID
    - auto::get_g_x
    - auto::_data
    - Botan::EC_Group::_data
    - auto::get_a
    - auto::get_p
    - Botan::EC_Group::engine
    - auto::get_b
    - Test::Result::test_failure
    - auto::get_g_y
    - Test::Result::test_is_true
    - auto::get_curve_oid
    - Botan::EC_Group::get_curve_oid
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_registration_with_custom_oid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/tests/test_ec_group.cpp:612,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:615,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:617,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:620,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:621,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:623,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:624,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:625,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:627,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:629,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:629,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:630,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:632,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:632,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:633,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:634,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:637,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:638,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:640,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:643,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:643,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Botan::EC_Group::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: Botan::EC_Group::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:645,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: Botan::EC_Group::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:646,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: Botan::EC_Group::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:647,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: Botan::EC_Group::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:648,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: Botan::EC_Group::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:649,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:652,1
    - Dst: Botan::create_ec_private_key
      Src: /src/botan/src/tests/test_ec_group.cpp:653,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:654,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: std::unique_ptr::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: Botan::EC_Group::unregister
      Src: /src/botan/src/tests/test_ec_group.cpp:661,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:662,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 668
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_unregistration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - Botan::OID::register_oid
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_g_x
    - std::unique_ptr::check_key
    - auto::get_g_y
    - Botan::EC_Group::unregister
    - Test::Result::test_success
    - Botan::EC_Group::from_OID
    - Botan::EC_Group::get_p
    - auto::get_a
    - auto::get_b
    - Test::Result::test_failure
    - auto::get_order
    - Botan::EC_Group::get_a
    - Botan::EC_Group::get_b
    - Botan::EC_Group::get_g_y
    - Botan::create_ec_private_key
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::EC_Group::get_curve_oid
    - Botan::EC_Group::get_order
    - Botan_Tests::Test::new_rng
    - auto::get_g_x
    - auto::get_p
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_unregistration()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:678,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:680,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:681,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:685,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:688,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:689,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:691,1
    - Dst: Result::test_u8_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:692,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ec_group.cpp:694,1
    - Dst: Result::test_sz_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:697,1
    - Dst: Result::test_u8_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:698,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:700,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:703,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:704,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:711,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:712,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:723,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:732,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 738
    functionName: Botan_Tests::EC_PointEnc_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::test_failure
    - fuzzer_rng
    - Botan::EC_Scalar::random
    - auto::size
    - auto::serialize_compressed
    - Result::test_sz_eq
    - Botan::EC_AffinePoint::g_mul
    - subspan
    - auto::negate
    - Result::start_timer
    - Result::test_bin_eq
    - Result::end_timer
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Result::test_u8_eq
    - Botan::EC_Group::known_named_groups
    - Botan::EC_AffinePoint::deserialize
    - auto::serialize_uncompressed
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:748,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:751,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:755,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ec_group.cpp:757,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:759,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:760,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:765,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:766,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:766,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:768,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:769,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:769,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:771,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:772,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:772,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:774,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:775,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:775,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:779,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:780,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:780,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:783,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:786,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:786,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:788,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:788,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:789,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:789,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:791,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:792,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:792,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:794,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:794,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:795,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:795,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:796,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:796,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:798,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:798,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:799,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:799,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:800,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:801,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:804,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:804,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:806,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:807,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:810,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:811,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:812,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:814,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:816,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:819,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/tests/test_ec_group.cpp:828,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:831,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ec_group.cpp:832,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:832,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:833,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:837,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:840,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:843,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:847,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:848,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:852,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:852,1
    - Dst: Botan::EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/tests/test_ec_group.cpp:854,1
    - Dst: Result::test_bin_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:855,1
    - Dst: Result::test_is_true
      Src: /src/botan/src/tests/test_ec_group.cpp:857,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:857,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:861,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:863,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 867
    functionName: Botan_Tests::EC_Point_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - fuzzer_rng
    - is_zero
    - Botan::EC_Scalar::EC_Scalar
    - Botan::EC_Group::known_named_groups
    - auto::is_zero
    - Botan::EC_Scalar::one
    - auto::mul
    - auto::add
    - auto::serialize_uncompressed
    - static_cast<uint8_t>
    - Result::test_is_true
    - std::vector::size
    - Result::end_timer
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_AffinePoint::generator
    - Result::start_timer
    - Result::test_bin_eq
    - Botan::EC_Group::from_name
    - auto::is_identity
    - auto::get_order_bytes
    - auto::negate
    - std::vector::push_back
    - Botan::EC_Group::Mul2Table::mul2_vartime
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 876
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::ECC_Invalid_Key_Tests
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECC_Invalid_Key_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 878
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ec_group.cpp:883,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ec_group.cpp:887,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: Botan_Tests::ECC_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:888,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 894
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_success
    - Botan_Tests::ECC_Invalid_Key_Tests::rng
    - Test::Result::test_is_false
    - Botan::X509::load_key
    - auto::check_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:50,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:51,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    - std::vector::push_back
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    - Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    - Botan_Tests::TLS_Policy_Unit_Tests::rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:60,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:64,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:65,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:67,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:70,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:71,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Botan::RSA_PrivateKey>
    - Test::Result::test_success
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_rsa([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:83,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:84,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:85,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:88,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:89,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:91,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:95,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:96,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:97,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:98,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdh([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:110,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:111,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:112,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:115,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:116,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:118,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:122,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:123,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:124,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:125,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 130
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::supports_named_group
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdsa([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:139,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:143,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:144,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 150
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_success
    - std::make_unique<Botan::DH_PrivateKey>
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_dh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:156,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:158,1
    - Dst: Botan::TLS::Policy::key_exchange_groups
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:164,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:166,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:167,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:167,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:169,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:170,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:173,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:173,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:174,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:175,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:176,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 180
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Policy::key_exchange_groups
    - TP
    - Botan::TLS::Policy::key_exchange_groups_to_offer
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_key_exchange_groups_to_offer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:50,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:51,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    - std::vector::push_back
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    - Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    - Botan_Tests::TLS_Policy_Unit_Tests::rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:60,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:64,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:65,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:67,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:70,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:71,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<Botan::RSA_PrivateKey>
    - Test::Result::test_success
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_rsa([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:83,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:84,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:85,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:88,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:89,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:91,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:95,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:96,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:97,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:98,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdh([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:110,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:111,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:112,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:115,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:116,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:118,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:122,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:123,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:124,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:125,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 130
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::supports_named_group
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdsa([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:139,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:143,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:144,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 150
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_success
    - std::make_unique<Botan::DH_PrivateKey>
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_dh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:156,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:158,1
    - Dst: Botan::TLS::Policy::key_exchange_groups
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:164,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:166,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:167,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:167,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:169,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:170,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:173,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:173,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:174,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:175,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:176,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 180
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Policy::key_exchange_groups
    - TP
    - Botan::TLS::Policy::key_exchange_groups_to_offer
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_key_exchange_groups_to_offer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:50,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:51,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    - std::vector::push_back
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    - Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    - Botan_Tests::TLS_Policy_Unit_Tests::rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:60,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:64,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:65,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:67,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:70,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:71,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 3
    functionsReached:
    - std::make_unique<Botan::RSA_PrivateKey>
    - Test::Result::test_success
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_rsa([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:83,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:84,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:85,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:88,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:89,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:91,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:95,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:96,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:97,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:98,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdh([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:110,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:111,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:112,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:115,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:116,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:118,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:122,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:123,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:124,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:125,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 130
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::supports_named_group
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdsa([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:139,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:143,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:144,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 150
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_success
    - std::make_unique<Botan::DH_PrivateKey>
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_dh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:156,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:158,1
    - Dst: Botan::TLS::Policy::key_exchange_groups
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:164,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:166,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:167,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:167,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:169,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:170,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:173,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:173,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:174,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:175,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:176,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 180
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Policy::key_exchange_groups
    - TP
    - Botan::TLS::Policy::key_exchange_groups_to_offer
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_key_exchange_groups_to_offer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:50,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:51,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    - std::vector::push_back
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    - Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    - Botan_Tests::TLS_Policy_Unit_Tests::rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:60,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:64,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:65,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:67,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:70,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:71,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<Botan::RSA_PrivateKey>
    - Test::Result::test_success
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_rsa([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:83,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:84,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:85,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:88,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:89,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:91,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:95,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:96,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:97,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:98,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::supports_named_group
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdh([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:110,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:111,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:112,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:115,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:116,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:118,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:122,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:123,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:124,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:125,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 130
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_success
    - Botan::EC_Group::supports_named_group
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdsa([[maybe_unused]] Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:139,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:143,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:144,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 150
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_success
    - std::make_unique<Botan::DH_PrivateKey>
    - Test::Result::test_failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_dh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:156,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:157,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:158,1
    - Dst: Botan::TLS::Policy::key_exchange_groups
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:164,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:165,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:166,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:167,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:167,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:169,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:170,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:173,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:173,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:174,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:175,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/unit_tls_policy.cpp:176,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 180
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Policy::key_exchange_groups
    - TP
    - Botan::TLS::Policy::key_exchange_groups_to_offer
    - Test::Result::test_sz_eq
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_key_exchange_groups_to_offer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:53,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:58,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:66,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:67,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:72,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:74,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:76,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 80
    functionName: Botan_Tests::finished_message_handling
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::TLS::Client_Handshake_State_13::received
    - Botan_Tests::CHECK
    - std::move
    - require
    - Botan::TLS::Client_Handshake_State_13::server_finished
    - Botan::TLS::Client_Handshake_State_13::sending
    - test_throws
    - test_bin_eq
    - Botan::TLS::Client_Handshake_State_13::client_finished
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> finished_message_handling()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:84,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:88,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:91,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:91,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:96,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:97,1
    - Dst: template test_throws<Botan::TLS::TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:99,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:102,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:102,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:103,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: std::get<Botan::TLS::Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:116,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:118,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:120,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 123
    functionName: Botan_Tests::handshake_message_filtering
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Handshake_State_13::client_hello
    - Botan::hex_decode
    - std::get<Botan::TLS::Client_Hello_13>
    - Botan_Tests::CHECK
    - template test_throws<Botan::TLS::TLS_Exception>
    - Botan::TLS::Client_Handshake_State_13::received
    - std::move
    - std::get<Botan::TLS::Server_Hello_13>
    - Botan::TLS::Client_Handshake_State_13::server_hello
    - test_is_true
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Client_Handshake_State_13::sending
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> handshake_message_filtering()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:53,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:58,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:66,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:67,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:72,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:74,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:76,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 80
    functionName: Botan_Tests::finished_message_handling
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::TLS::Client_Handshake_State_13::received
    - Botan_Tests::CHECK
    - std::move
    - require
    - Botan::TLS::Client_Handshake_State_13::server_finished
    - Botan::TLS::Client_Handshake_State_13::sending
    - test_throws
    - test_bin_eq
    - Botan::TLS::Client_Handshake_State_13::client_finished
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> finished_message_handling()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:84,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:88,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:91,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:91,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:96,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:97,1
    - Dst: template test_throws<Botan::TLS::TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:99,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:102,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:102,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:103,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: std::get<Botan::TLS::Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:116,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:118,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:120,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 123
    functionName: Botan_Tests::handshake_message_filtering
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Handshake_State_13::client_hello
    - Botan::hex_decode
    - std::get<Botan::TLS::Client_Hello_13>
    - Botan_Tests::CHECK
    - template test_throws<Botan::TLS::TLS_Exception>
    - Botan::TLS::Client_Handshake_State_13::received
    - std::move
    - std::get<Botan::TLS::Server_Hello_13>
    - Botan::TLS::Client_Handshake_State_13::server_hello
    - test_is_true
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Client_Handshake_State_13::sending
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> handshake_message_filtering()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:53,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:58,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:66,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:67,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:72,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:74,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:76,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 80
    functionName: Botan_Tests::finished_message_handling
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::TLS::Client_Handshake_State_13::received
    - Botan_Tests::CHECK
    - std::move
    - require
    - Botan::TLS::Client_Handshake_State_13::server_finished
    - Botan::TLS::Client_Handshake_State_13::sending
    - test_throws
    - test_bin_eq
    - Botan::TLS::Client_Handshake_State_13::client_finished
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> finished_message_handling()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:84,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:88,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:91,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:91,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:96,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:97,1
    - Dst: template test_throws<Botan::TLS::TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:99,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:102,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:102,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:103,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: std::get<Botan::TLS::Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:116,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:118,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:120,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 123
    functionName: Botan_Tests::handshake_message_filtering
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Handshake_State_13::client_hello
    - Botan::hex_decode
    - std::get<Botan::TLS::Client_Hello_13>
    - Botan_Tests::CHECK
    - template test_throws<Botan::TLS::TLS_Exception>
    - Botan::TLS::Client_Handshake_State_13::received
    - std::move
    - std::get<Botan::TLS::Server_Hello_13>
    - Botan::TLS::Client_Handshake_State_13::server_hello
    - test_is_true
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Client_Handshake_State_13::sending
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> handshake_message_filtering()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:53,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:58,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:66,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:67,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:72,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:74,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:75,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:76,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 80
    functionName: Botan_Tests::finished_message_handling
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::TLS::Client_Handshake_State_13::received
    - Botan_Tests::CHECK
    - std::move
    - require
    - Botan::TLS::Client_Handshake_State_13::server_finished
    - Botan::TLS::Client_Handshake_State_13::sending
    - test_throws
    - test_bin_eq
    - Botan::TLS::Client_Handshake_State_13::client_finished
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> finished_message_handling()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:84,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:88,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:91,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:91,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:96,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:97,1
    - Dst: template test_throws<Botan::TLS::TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:99,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:102,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:102,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:103,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: std::get<Botan::TLS::Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:116,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:118,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:120,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 123
    functionName: Botan_Tests::handshake_message_filtering
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Handshake_State_13::client_hello
    - Botan::hex_decode
    - std::get<Botan::TLS::Client_Hello_13>
    - Botan_Tests::CHECK
    - template test_throws<Botan::TLS::TLS_Exception>
    - Botan::TLS::Client_Handshake_State_13::received
    - std::move
    - std::get<Botan::TLS::Server_Hello_13>
    - Botan::TLS::Client_Handshake_State_13::server_hello
    - test_is_true
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Client_Handshake_State_13::sending
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
    - Botan::TLS::Client_Hello_13::parse
    - test_bin_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> handshake_message_filtering()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:27,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/test_rsa.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: Botan_Tests::load_rsa_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::RSA_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_rsa_private_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:34,1
    - Dst: std::make_unique<Botan::RSA_PublicKey>
      Src: /src/botan/src/tests/test_rsa.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: Botan_Tests::load_rsa_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::RSA_PublicKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_rsa_public_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan_Tests::RSA_ES_KAT_Tests::RSA_ES_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_ES_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_Tests::RSA_ES_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::RSA_Decryption_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Decryption_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan_Tests::RSA_KEM_Tests::RSA_KEM_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::RSA_KEM_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::RSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::RSA_PSS_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_PSS_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_rsa.cpp:86,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:87,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::fmt
    - get_req_bin
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::RSA_PSS_Raw_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_PSS_Raw_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_rsa.cpp:104,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::fmt
    - get_req_bin
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::RSA_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_public_key
      Src: /src/botan/src/tests/test_rsa.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::RSA_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_public_key
      Src: /src/botan/src/tests/test_rsa.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_Tests::RSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan_Tests::RSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> /* raw_pk */) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan_Tests::RSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan_Tests::RSA_Keygen_Stability_Tests::RSA_Keygen_Stability_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Keygen_Stability_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rsa.cpp:173,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_rsa.cpp:176,1
    - Dst: what
      Src: /src/botan/src/tests/test_rsa.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 180
    functionName: Botan_Tests::RSA_Keygen_Bad_RNG_Test::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_str_eq
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_rsa.cpp:189,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rsa.cpp:190,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:195,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:215,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:215,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_rsa.cpp:217,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_rsa.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rsa.cpp:222,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_rsa.cpp:222,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:236,1
    - Dst: Botan::RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_rsa.cpp:245,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:252,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:252,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:254,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rsa.cpp:259,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rsa.cpp:262,1
    - Dst: Fixed_Output_RNG::is_seeded
      Src: /src/botan/src/tests/test_rsa.cpp:262,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rsa.cpp:265,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 276
    functionName: Botan_Tests::RSA_Blinding_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Botan::PK_Signer::signature
    - Fixed_Output_RNG::is_seeded
    - provider_filter
    - Botan::PK_Decryptor_EME::decrypt
    - static_cast<uint8_t>
    - std::vector::size
    - Test::Result::test_bin_eq
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::PK_Signer::update
    - Botan::unlock
    - std::vector<uint8_t>
    - Botan::RSA_PrivateKey::get_n
    - Botan::PK_Verifier::verify_message
    - std::vector::insert
    - Botan_Tests::RSA_Blinding_Tests::rng
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_PrivateKey::RSA_PrivateKey
      Src: /src/botan/src/tests/test_rsa.cpp:293,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:293,1
    - Dst: Botan_Tests::test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:299,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_rsa.cpp:312,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rsa.cpp:313,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:316,1
    - Dst: auto::get_int_field
      Src: /src/botan/src/tests/test_rsa.cpp:320,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rsa.cpp:327,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:327,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:338,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rsa.cpp:346,1
    - Dst: Botan_Tests::Test::random_index
      Src: /src/botan/src/tests/test_rsa.cpp:356,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/test_rsa.cpp:357,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:360,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rsa.cpp:373,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rsa.cpp:376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - ' result'
    - padding
    - ' private_key'
    - ' rng'
    argTypes:
    - Test::Result
    - std::string_view
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 380
    functionName: Botan_Tests::test_decrypt_or_random
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 1
    functionsReached:
    - random_vec
    - auto::data
    - serialize
    - next_byte
    - Test::Result::test_sz_eq
    - Botan::BigInt::from_bytes
    - next_nonzero_byte
    - auto::size
    - Botan::RSA_PrivateKey::RSA_PrivateKey
    - Botan_Tests::Test::random_index
    - Botan_Tests::test_decrypt_or_random
    - Test::Result::test_bin_ne
    - mutate_vec
    - Test::Result::test_bin_eq
    - Botan::PK_Encryptor_EME::encrypt
    - public_key
    - Test::Result::test_is_true
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - auto::get_int_field
    - std::vector::data
    - rng
    - push_back
    linkageType: ''
    returnType: "class RSA_DecryptOrRandom_Tests : public Test {\n   public:\n      std::vector<Test::Result>
      run() override {\n         const std::vector<std::string> padding_schemes =
      {\n   #if defined(BOTAN_HAS_EME_PKCS1)\n            \"PKCS1v15\",\n   #endif\n
      \  #if defined(BOTAN_HAS_EME_OAEP)\n            \"OAEP(SHA-256)\",\n   #endif\n
      \        };\n\n         constexpr size_t bits = 1024;\n\n         auto private_key
      = Botan::RSA_PrivateKey(rng(), bits);\n\n         std::vector<Test::Result>
      results;\n         for(const auto& padding : padding_schemes) {\n            Test::Result
      result(\"RSA decrypt_or_random \" + padding);\n            test_decrypt_or_random(result,
      padding, private_key, rng());\n            results.push_back(result);\n         }\n
      \        return results;\n      }"
    signature: "class RSA_DecryptOrRandom_Tests : public Test {\n   public:\n      std::vector<Test::Result>
      run() override {\n         const std::vector<std::string> padding_schemes =
      {\n   #if defined(BOTAN_HAS_EME_PKCS1)\n            \"PKCS1v15\",\n   #endif\n
      \  #if defined(BOTAN_HAS_EME_OAEP)\n            \"OAEP(SHA-256)\",\n   #endif\n
      \        };\n\n         constexpr size_t bits = 1024;\n\n         auto private_key
      = Botan::RSA_PrivateKey(rng(), bits);\n\n         std::vector<Test::Result>
      results;\n         for(const auto& padding : padding_schemes) {\n            Test::Result
      result(\"RSA decrypt_or_random \" + padding);\n            test_decrypt_or_random(result,
      padding, private_key, rng());\n            results.push_back(result);\n         }\n
      \        return results;\n      } test_decrypt_or_random(Test::Result& result,\n
      \                                        std::string_view padding,\n                                         Botan::Private_Key&
      private_key,\n                                         Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' padding : padding_schemes'
    argTypes:
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::for
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - rng
    - test_decrypt_or_random
    - push_back
    linkageType: ''
    returnType: void
    signature: 'void for(const auto& padding : padding_schemes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:27,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/test_rsa.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: Botan_Tests::load_rsa_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::RSA_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_rsa_private_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:34,1
    - Dst: std::make_unique<Botan::RSA_PublicKey>
      Src: /src/botan/src/tests/test_rsa.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: Botan_Tests::load_rsa_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::RSA_PublicKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_rsa_public_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan_Tests::RSA_ES_KAT_Tests::RSA_ES_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_ES_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_Tests::RSA_ES_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::RSA_Decryption_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Decryption_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan_Tests::RSA_KEM_Tests::RSA_KEM_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::RSA_KEM_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::RSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::RSA_PSS_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_PSS_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_rsa.cpp:86,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:87,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::fmt
    - get_req_bin
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::RSA_PSS_Raw_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_PSS_Raw_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_rsa.cpp:104,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::fmt
    - get_req_bin
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::RSA_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_public_key
      Src: /src/botan/src/tests/test_rsa.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::RSA_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_public_key
      Src: /src/botan/src/tests/test_rsa.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_Tests::RSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan_Tests::RSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> /* raw_pk */) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan_Tests::RSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan_Tests::RSA_Keygen_Stability_Tests::RSA_Keygen_Stability_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Keygen_Stability_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rsa.cpp:173,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_rsa.cpp:176,1
    - Dst: what
      Src: /src/botan/src/tests/test_rsa.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 180
    functionName: Botan_Tests::RSA_Keygen_Bad_RNG_Test::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_str_eq
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_rsa.cpp:189,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rsa.cpp:190,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:195,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:215,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:215,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_rsa.cpp:217,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_rsa.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rsa.cpp:222,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_rsa.cpp:222,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:236,1
    - Dst: Botan::RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_rsa.cpp:245,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:252,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:252,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:254,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rsa.cpp:259,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rsa.cpp:262,1
    - Dst: Fixed_Output_RNG::is_seeded
      Src: /src/botan/src/tests/test_rsa.cpp:262,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rsa.cpp:265,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 276
    functionName: Botan_Tests::RSA_Blinding_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Botan::PK_Signer::signature
    - Fixed_Output_RNG::is_seeded
    - provider_filter
    - Botan::PK_Decryptor_EME::decrypt
    - static_cast<uint8_t>
    - std::vector::size
    - Test::Result::test_bin_eq
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::PK_Signer::update
    - Botan::unlock
    - std::vector<uint8_t>
    - Botan::RSA_PrivateKey::get_n
    - Botan::PK_Verifier::verify_message
    - std::vector::insert
    - Botan_Tests::RSA_Blinding_Tests::rng
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_PrivateKey::RSA_PrivateKey
      Src: /src/botan/src/tests/test_rsa.cpp:293,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:293,1
    - Dst: Botan_Tests::test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:299,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_rsa.cpp:312,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rsa.cpp:313,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:316,1
    - Dst: auto::get_int_field
      Src: /src/botan/src/tests/test_rsa.cpp:320,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rsa.cpp:327,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:327,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:338,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rsa.cpp:346,1
    - Dst: Botan_Tests::Test::random_index
      Src: /src/botan/src/tests/test_rsa.cpp:356,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/test_rsa.cpp:357,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:360,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rsa.cpp:373,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rsa.cpp:376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - ' result'
    - padding
    - ' private_key'
    - ' rng'
    argTypes:
    - Test::Result
    - std::string_view
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 380
    functionName: Botan_Tests::test_decrypt_or_random
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 2
    functionsReached:
    - random_vec
    - auto::data
    - serialize
    - next_byte
    - Test::Result::test_sz_eq
    - Botan::BigInt::from_bytes
    - next_nonzero_byte
    - auto::size
    - Botan::RSA_PrivateKey::RSA_PrivateKey
    - Botan_Tests::Test::random_index
    - Botan_Tests::test_decrypt_or_random
    - Test::Result::test_bin_ne
    - mutate_vec
    - Test::Result::test_bin_eq
    - Botan::PK_Encryptor_EME::encrypt
    - public_key
    - Test::Result::test_is_true
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - auto::get_int_field
    - std::vector::data
    - rng
    - push_back
    linkageType: ''
    returnType: "class RSA_DecryptOrRandom_Tests : public Test {\n   public:\n      std::vector<Test::Result>
      run() override {\n         const std::vector<std::string> padding_schemes =
      {\n   #if defined(BOTAN_HAS_EME_PKCS1)\n            \"PKCS1v15\",\n   #endif\n
      \  #if defined(BOTAN_HAS_EME_OAEP)\n            \"OAEP(SHA-256)\",\n   #endif\n
      \        };\n\n         constexpr size_t bits = 1024;\n\n         auto private_key
      = Botan::RSA_PrivateKey(rng(), bits);\n\n         std::vector<Test::Result>
      results;\n         for(const auto& padding : padding_schemes) {\n            Test::Result
      result(\"RSA decrypt_or_random \" + padding);\n            test_decrypt_or_random(result,
      padding, private_key, rng());\n            results.push_back(result);\n         }\n
      \        return results;\n      }"
    signature: "class RSA_DecryptOrRandom_Tests : public Test {\n   public:\n      std::vector<Test::Result>
      run() override {\n         const std::vector<std::string> padding_schemes =
      {\n   #if defined(BOTAN_HAS_EME_PKCS1)\n            \"PKCS1v15\",\n   #endif\n
      \  #if defined(BOTAN_HAS_EME_OAEP)\n            \"OAEP(SHA-256)\",\n   #endif\n
      \        };\n\n         constexpr size_t bits = 1024;\n\n         auto private_key
      = Botan::RSA_PrivateKey(rng(), bits);\n\n         std::vector<Test::Result>
      results;\n         for(const auto& padding : padding_schemes) {\n            Test::Result
      result(\"RSA decrypt_or_random \" + padding);\n            test_decrypt_or_random(result,
      padding, private_key, rng());\n            results.push_back(result);\n         }\n
      \        return results;\n      } test_decrypt_or_random(Test::Result& result,\n
      \                                        std::string_view padding,\n                                         Botan::Private_Key&
      private_key,\n                                         Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' padding : padding_schemes'
    argTypes:
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::for
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - rng
    - test_decrypt_or_random
    - push_back
    linkageType: ''
    returnType: void
    signature: 'void for(const auto& padding : padding_schemes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:27,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/test_rsa.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: Botan_Tests::load_rsa_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::RSA_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_rsa_private_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:34,1
    - Dst: std::make_unique<Botan::RSA_PublicKey>
      Src: /src/botan/src/tests/test_rsa.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: Botan_Tests::load_rsa_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::RSA_PublicKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_rsa_public_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan_Tests::RSA_ES_KAT_Tests::RSA_ES_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_ES_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_Tests::RSA_ES_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::RSA_Decryption_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Decryption_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan_Tests::RSA_KEM_Tests::RSA_KEM_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::RSA_KEM_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::RSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::RSA_PSS_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_PSS_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_rsa.cpp:86,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:87,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::fmt
    - get_req_bin
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::RSA_PSS_Raw_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_PSS_Raw_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_rsa.cpp:104,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::fmt
    - get_req_bin
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::RSA_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_public_key
      Src: /src/botan/src/tests/test_rsa.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::RSA_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_public_key
      Src: /src/botan/src/tests/test_rsa.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_Tests::RSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan_Tests::RSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> /* raw_pk */) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan_Tests::RSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan_Tests::RSA_Keygen_Stability_Tests::RSA_Keygen_Stability_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Keygen_Stability_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rsa.cpp:173,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_rsa.cpp:176,1
    - Dst: what
      Src: /src/botan/src/tests/test_rsa.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 180
    functionName: Botan_Tests::RSA_Keygen_Bad_RNG_Test::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_str_eq
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_rsa.cpp:189,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rsa.cpp:190,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:195,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:215,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:215,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_rsa.cpp:217,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_rsa.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rsa.cpp:222,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_rsa.cpp:222,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:236,1
    - Dst: Botan::RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_rsa.cpp:245,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:252,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:252,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:254,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rsa.cpp:259,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rsa.cpp:262,1
    - Dst: Fixed_Output_RNG::is_seeded
      Src: /src/botan/src/tests/test_rsa.cpp:262,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rsa.cpp:265,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 276
    functionName: Botan_Tests::RSA_Blinding_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Botan::PK_Signer::signature
    - Fixed_Output_RNG::is_seeded
    - provider_filter
    - Botan::PK_Decryptor_EME::decrypt
    - static_cast<uint8_t>
    - std::vector::size
    - Test::Result::test_bin_eq
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::PK_Signer::update
    - Botan::unlock
    - std::vector<uint8_t>
    - Botan::RSA_PrivateKey::get_n
    - Botan::PK_Verifier::verify_message
    - std::vector::insert
    - Botan_Tests::RSA_Blinding_Tests::rng
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_PrivateKey::RSA_PrivateKey
      Src: /src/botan/src/tests/test_rsa.cpp:293,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:293,1
    - Dst: Botan_Tests::test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:299,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_rsa.cpp:312,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rsa.cpp:313,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:316,1
    - Dst: auto::get_int_field
      Src: /src/botan/src/tests/test_rsa.cpp:320,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rsa.cpp:327,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:327,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:338,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rsa.cpp:346,1
    - Dst: Botan_Tests::Test::random_index
      Src: /src/botan/src/tests/test_rsa.cpp:356,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/test_rsa.cpp:357,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:360,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rsa.cpp:373,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rsa.cpp:376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - ' result'
    - padding
    - ' private_key'
    - ' rng'
    argTypes:
    - Test::Result
    - std::string_view
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 380
    functionName: Botan_Tests::test_decrypt_or_random
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 3
    functionsReached:
    - random_vec
    - auto::data
    - serialize
    - next_byte
    - Test::Result::test_sz_eq
    - Botan::BigInt::from_bytes
    - next_nonzero_byte
    - auto::size
    - Botan::RSA_PrivateKey::RSA_PrivateKey
    - Botan_Tests::Test::random_index
    - Botan_Tests::test_decrypt_or_random
    - Test::Result::test_bin_ne
    - mutate_vec
    - Test::Result::test_bin_eq
    - Botan::PK_Encryptor_EME::encrypt
    - public_key
    - Test::Result::test_is_true
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - auto::get_int_field
    - std::vector::data
    - rng
    - push_back
    linkageType: ''
    returnType: "class RSA_DecryptOrRandom_Tests : public Test {\n   public:\n      std::vector<Test::Result>
      run() override {\n         const std::vector<std::string> padding_schemes =
      {\n   #if defined(BOTAN_HAS_EME_PKCS1)\n            \"PKCS1v15\",\n   #endif\n
      \  #if defined(BOTAN_HAS_EME_OAEP)\n            \"OAEP(SHA-256)\",\n   #endif\n
      \        };\n\n         constexpr size_t bits = 1024;\n\n         auto private_key
      = Botan::RSA_PrivateKey(rng(), bits);\n\n         std::vector<Test::Result>
      results;\n         for(const auto& padding : padding_schemes) {\n            Test::Result
      result(\"RSA decrypt_or_random \" + padding);\n            test_decrypt_or_random(result,
      padding, private_key, rng());\n            results.push_back(result);\n         }\n
      \        return results;\n      }"
    signature: "class RSA_DecryptOrRandom_Tests : public Test {\n   public:\n      std::vector<Test::Result>
      run() override {\n         const std::vector<std::string> padding_schemes =
      {\n   #if defined(BOTAN_HAS_EME_PKCS1)\n            \"PKCS1v15\",\n   #endif\n
      \  #if defined(BOTAN_HAS_EME_OAEP)\n            \"OAEP(SHA-256)\",\n   #endif\n
      \        };\n\n         constexpr size_t bits = 1024;\n\n         auto private_key
      = Botan::RSA_PrivateKey(rng(), bits);\n\n         std::vector<Test::Result>
      results;\n         for(const auto& padding : padding_schemes) {\n            Test::Result
      result(\"RSA decrypt_or_random \" + padding);\n            test_decrypt_or_random(result,
      padding, private_key, rng());\n            results.push_back(result);\n         }\n
      \        return results;\n      } test_decrypt_or_random(Test::Result& result,\n
      \                                        std::string_view padding,\n                                         Botan::Private_Key&
      private_key,\n                                         Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' padding : padding_schemes'
    argTypes:
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::for
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - rng
    - test_decrypt_or_random
    - push_back
    linkageType: ''
    returnType: void
    signature: 'void for(const auto& padding : padding_schemes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:27,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/test_rsa.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: Botan_Tests::load_rsa_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::RSA_PrivateKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_rsa_private_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:33,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:34,1
    - Dst: std::make_unique<Botan::RSA_PublicKey>
      Src: /src/botan/src/tests/test_rsa.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: Botan_Tests::load_rsa_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::RSA_PublicKey>
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_rsa_public_key(const VarMap&
      vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan_Tests::RSA_ES_KAT_Tests::RSA_ES_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_ES_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_Tests::RSA_ES_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::RSA_Decryption_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Decryption_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::RSA_Decryption_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan_Tests::RSA_KEM_Tests::RSA_KEM_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::RSA_KEM_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::RSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan_Tests::RSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::RSA_PSS_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_PSS_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_rsa.cpp:86,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:87,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::fmt
    - get_req_bin
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::RSA_PSS_Raw_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_PSS_Raw_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_rsa.cpp:104,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::fmt
    - get_req_bin
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_private_key
      Src: /src/botan/src/tests/test_rsa.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::RSA_Signature_Verify_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Verify_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_public_key
      Src: /src/botan/src/tests/test_rsa.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan_Tests::RSA_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::RSA_Signature_Verify_Invalid_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Verify_Invalid_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& /*unused*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_rsa_public_key
      Src: /src/botan/src/tests/test_rsa.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Botan_Tests::RSA_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - load_rsa_public_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_Tests::RSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan_Tests::RSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      /* keygen_params */,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> /* raw_pk */) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan_Tests::RSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan_Tests::RSA_Keygen_Stability_Tests::RSA_Keygen_Stability_Tests
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Keygen_Stability_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rsa.cpp:173,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_rsa.cpp:176,1
    - Dst: what
      Src: /src/botan/src/tests/test_rsa.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 180
    functionName: Botan_Tests::RSA_Keygen_Bad_RNG_Test::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_str_eq
    - Test::Result::test_success
    - what
    - Test::Result::test_failure
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_rsa.cpp:189,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rsa.cpp:190,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:195,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:215,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:215,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_rsa.cpp:217,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_rsa.cpp:220,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rsa.cpp:222,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_rsa.cpp:222,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:236,1
    - Dst: Botan::RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_rsa.cpp:245,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:252,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:252,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:254,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:257,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rsa.cpp:259,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_rsa.cpp:262,1
    - Dst: Fixed_Output_RNG::is_seeded
      Src: /src/botan/src/tests/test_rsa.cpp:262,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rsa.cpp:265,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 276
    functionName: Botan_Tests::RSA_Blinding_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Botan::PK_Signer::signature
    - Fixed_Output_RNG::is_seeded
    - provider_filter
    - Botan::PK_Decryptor_EME::decrypt
    - static_cast<uint8_t>
    - std::vector::size
    - Test::Result::test_bin_eq
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::PK_Signer::update
    - Botan::unlock
    - std::vector<uint8_t>
    - Botan::RSA_PrivateKey::get_n
    - Botan::PK_Verifier::verify_message
    - std::vector::insert
    - Botan_Tests::RSA_Blinding_Tests::rng
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_PrivateKey::RSA_PrivateKey
      Src: /src/botan/src/tests/test_rsa.cpp:293,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:293,1
    - Dst: Botan_Tests::test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:299,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_rsa.cpp:312,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rsa.cpp:313,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:316,1
    - Dst: auto::get_int_field
      Src: /src/botan/src/tests/test_rsa.cpp:320,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_rsa.cpp:323,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:325,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_rsa.cpp:327,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:327,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:338,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:344,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_rsa.cpp:346,1
    - Dst: Botan_Tests::Test::random_index
      Src: /src/botan/src/tests/test_rsa.cpp:356,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/test_rsa.cpp:357,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:360,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:371,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_rsa.cpp:373,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_rsa.cpp:376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - ' result'
    - padding
    - ' private_key'
    - ' rng'
    argTypes:
    - Test::Result
    - std::string_view
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 380
    functionName: Botan_Tests::test_decrypt_or_random
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 4
    functionsReached:
    - random_vec
    - auto::data
    - serialize
    - next_byte
    - Test::Result::test_sz_eq
    - Botan::BigInt::from_bytes
    - next_nonzero_byte
    - auto::size
    - Botan::RSA_PrivateKey::RSA_PrivateKey
    - Botan_Tests::Test::random_index
    - Botan_Tests::test_decrypt_or_random
    - Test::Result::test_bin_ne
    - mutate_vec
    - Test::Result::test_bin_eq
    - Botan::PK_Encryptor_EME::encrypt
    - public_key
    - Test::Result::test_is_true
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - auto::get_int_field
    - std::vector::data
    - rng
    - push_back
    linkageType: ''
    returnType: "class RSA_DecryptOrRandom_Tests : public Test {\n   public:\n      std::vector<Test::Result>
      run() override {\n         const std::vector<std::string> padding_schemes =
      {\n   #if defined(BOTAN_HAS_EME_PKCS1)\n            \"PKCS1v15\",\n   #endif\n
      \  #if defined(BOTAN_HAS_EME_OAEP)\n            \"OAEP(SHA-256)\",\n   #endif\n
      \        };\n\n         constexpr size_t bits = 1024;\n\n         auto private_key
      = Botan::RSA_PrivateKey(rng(), bits);\n\n         std::vector<Test::Result>
      results;\n         for(const auto& padding : padding_schemes) {\n            Test::Result
      result(\"RSA decrypt_or_random \" + padding);\n            test_decrypt_or_random(result,
      padding, private_key, rng());\n            results.push_back(result);\n         }\n
      \        return results;\n      }"
    signature: "class RSA_DecryptOrRandom_Tests : public Test {\n   public:\n      std::vector<Test::Result>
      run() override {\n         const std::vector<std::string> padding_schemes =
      {\n   #if defined(BOTAN_HAS_EME_PKCS1)\n            \"PKCS1v15\",\n   #endif\n
      \  #if defined(BOTAN_HAS_EME_OAEP)\n            \"OAEP(SHA-256)\",\n   #endif\n
      \        };\n\n         constexpr size_t bits = 1024;\n\n         auto private_key
      = Botan::RSA_PrivateKey(rng(), bits);\n\n         std::vector<Test::Result>
      results;\n         for(const auto& padding : padding_schemes) {\n            Test::Result
      result(\"RSA decrypt_or_random \" + padding);\n            test_decrypt_or_random(result,
      padding, private_key, rng());\n            results.push_back(result);\n         }\n
      \        return results;\n      } test_decrypt_or_random(Test::Result& result,\n
      \                                        std::string_view padding,\n                                         Botan::Private_Key&
      private_key,\n                                         Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' padding : padding_schemes'
    argTypes:
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::for
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - rng
    - test_decrypt_or_random
    - push_back
    linkageType: ''
    returnType: void
    signature: 'void for(const auto& padding : padding_schemes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:55,1
    - Dst: manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - std::shared_ptr<Botan::TPM2::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::validate_context_environment
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - vendor
    - manufacturer
    linkageType: ''
    returnType: bool
    signature: bool validate_context_environment(const std::shared_ptr<Botan::TPM2::Context>&
      ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:60,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:65,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:65,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:66,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:70,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:71,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - rng_tag
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: Botan_Tests::get_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::use_botan_crypto_backend
    - Botan::TPM2::Context::create
    - Botan_Tests::validate_context_environment
    - auto::supports_botan_crypto_backend
    - Botan_Tests::test_encoding_options
    - auto::value
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::shared_ptr<Botan::TPM2::Context>
    signature: std::shared_ptr<Botan::TPM2::Context> get_tpm2_context(std::string_view
      rng_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - esys_ctx
    - handle
    argTypes:
    - ESYS_CONTEXT*
    - ESYS_TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TR(ESYS_CONTEXT* esys_ctx, ESYS_TR handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void TR(TR&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tpm2.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: '& operator=(TR&& other) noexcept'
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: TR
    signature: TR & operator=(TR&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TR(const TR&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: '& operator=(const TR&)'
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TR
    signature: TR & operator=(const TR&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Esys_FlushContext
      Src: /src/botan/src/tests/test_tpm2.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: ~TR()
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_FlushContext
    linkageType: ''
    returnType: void
    signature: void ~TR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: operator ESYS_TR() const
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator ESYS_TR() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Esys_GetTcti
      Src: /src/botan/src/tests/test_tpm2.cpp:112,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:114,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - esys_ctx
    argTypes:
    - ESYS_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: operator()(ESYS_CONTEXT* esys_ctx)
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    - Esys_GetTcti
    linkageType: ''
    returnType: void
    signature: void operator()(ESYS_CONTEXT* esys_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:121,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:122,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:123,1
    - Dst: Tss2_TctiLdr_Initialize_Ex
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:134,1
    - Dst: Esys_Initialize
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:139,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:144,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/tests/test_tpm2.cpp:144,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 150
    functionName: Botan_Tests::get_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - Botan::TPM2::Context::create
    - std::unique_ptr::get
    - Botan_Tests::validate_context_environment
    - auto::value
    - Esys_Initialize
    - Botan_Tests::test_encoding_options
    - Test_Error
    - Tss2_TctiLdr_Initialize_Ex
    - Botan::out_ptr
    linkageType: ''
    returnType: auto
    signature: auto get_external_tpm2_context() -> std::unique_ptr<ESYS_CONTEXT, esys_context_liberator>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: Botan_Tests::bail_out
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::bail_out
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result bail_out()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_tpm2.cpp:171,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_tpm2.cpp:172,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_tpm2.cpp:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: Botan_Tests::not_zero_64
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferSlicer::remaining
    - Botan::load_be
    - Botan::BufferSlicer::take
    linkageType: ''
    returnType: bool
    signature: bool not_zero_64(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:182,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:184,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:190,1
    - Dst: auto::vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:190,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:191,1
    - Dst: auto::manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:191,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:194,1
    - Dst: auto::max_random_bytes_per_request
      Src: /src/botan/src/tests/test_tpm2.cpp:196,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_tpm2.cpp:197,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_tpm2.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:203,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:203,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:204,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:205,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:205,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:206,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:206,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:207,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:207,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:208,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:209,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:209,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:214,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:214,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:216,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:217,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 220
    functionName: Botan_Tests::test_tpm2_properties
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::manufacturer
    - Botan_Tests::CHECK
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::bail_out
    - test_sz_lte
    - auto::supports_algorithm
    - test_sz_gte
    - test_str_eq
    - auto::vendor
    - auto::max_random_bytes_per_request
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_properties()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:223,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:225,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:231,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:237,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:241,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:243,1
    - Dst: auto::uses_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:244,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:245,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:247,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:253,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:253,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:259,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:259,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:265,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:269,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_tpm2.cpp:269,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:270,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 274
    functionName: Botan_Tests::test_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::storage_root_key
    - test_is_true
    - Botan_Tests::bail_out
    - Botan::value_exists
    - auto::uses_botan_crypto_backend
    - auto::persistent_handles
    - Botan_Tests::test_encoding_options
    - auto::supports_botan_crypto_backend
    - require
    - auto::empty
    - Botan_Tests::get_tpm2_context
    - auto::key_length
    - Botan_Tests::Test::new_rng
    - auto::use_botan_crypto_backend
    - Botan_Tests::CHECK
    - auto::handles
    - test_sz_eq
    - test_throws
    - auto::algo_name
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_context()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Esys_StartAuthSession
      Src: /src/botan/src/tests/test_tpm2.cpp:285,1
    - Dst: Esys_TRSess_SetAttributes
      Src: /src/botan/src/tests/test_tpm2.cpp:299,1
    - Dst: Esys_GetRandom
      Src: /src/botan/src/tests/test_tpm2.cpp:308,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:308,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_tpm2.cpp:309,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:309,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:313,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:315,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:317,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:325,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:326,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:328,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:329,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tpm2.cpp:329,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:334,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:334,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:338,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:339,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:342,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:344,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:346,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:352,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:353,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:357,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:357,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:360,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:360,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:365,1
    - Dst: Esys_SetCryptoCallbacks
      Src: /src/botan/src/tests/test_tpm2.cpp:369,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:369,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:372,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:372,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:376,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:377,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:382,1
    - Dst: Botan::TPM2::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:383,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:384,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:388,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:390,1
    - Dst: Botan::TPM2::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:396,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:396,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:400,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 405
    functionName: Botan_Tests::test_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_GetRandom
    - Botan::TPM2::Context::create
    - auto::get
    - raw_start_session
    - Esys_StartAuthSession
    - Botan_Tests::bail_out
    - Botan::TPM2::Session::unauthenticated_session
    - raw_get_random_bytes
    - Botan::out_ptr
    - Esys_TRSess_SetAttributes
    - Botan::RandomNumberGenerator
    - auto::size
    - std::move
    - std::make_pair
    - auto::supports_botan_crypto_backend
    - auto::random_vec
    - Botan::TPM2::check_rc
    - require
    - Esys_SetCryptoCallbacks
    - Botan_Tests::get_external_tpm2_context
    - Botan::TPM2::use_botan_crypto_backend
    - Botan_Tests::Test::new_rng
    - auto::use_botan_crypto_backend
    - Botan::TPM2::supports_botan_crypto_backend
    - Botan_Tests::CHECK
    - test_sz_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_external_tpm2_context()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:408,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:410,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: handle
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: tpm_nonce
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:420,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:424,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:424,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:425,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:425,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:426,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:426,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:427,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:427,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:431,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:436,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:437,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:437,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:438,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:438,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:439,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:439,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:440,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:440,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:445,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:447,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:451,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:451,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:454,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:454,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:455,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:455,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:456,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:458,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:459,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 463
    functionName: Botan_Tests::test_tpm2_sessions
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_Tests::CHECK
    - auto::handles
    - auto::storage_root_key
    - require
    - Botan::TPM2::Session::authenticated_session
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - handle
    - Botan_Tests::bail_out
    - Botan_Tests::test_encoding_options
    - ok
    - Botan::TPM2::Session::unauthenticated_session
    - Botan_Tests::load_persistent
    - auto::algo_name
    - test_str_eq
    - tpm_nonce
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_sessions()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:466,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:468,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:471,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:471,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:477,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_tpm2.cpp:477,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:480,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:480,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:483,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:486,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:487,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:487,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:490,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:491,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:491,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:495,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:495,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:498,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:501,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:502,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:502,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:505,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:506,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:506,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:509,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:510,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 513
    functionName: Botan_Tests::test_tpm2_rng
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::randomize_with_input
    - Botan_Tests::CHECK
    - Botan::RandomNumberGenerator
    - Botan_Tests::not_zero_64
    - test_no_throw
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::bail_out
    - auto::name
    - Botan::TPM2::Session::unauthenticated_session
    - auto::randomize
    - auto::accepts_input
    - test_str_eq
    - auto::clear
    - auto::is_seeded
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_rng()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:523,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:530,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:532,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:536,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:536,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:537,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ' result'
    - ' ctx'
    - persistent_key_id
    - auth_value
    - ' session'
    argTypes:
    - Test::Result
    - std::shared_ptr<Botan::TPM2::Context>
    - uint32_t
    - std::span<const uint8_t>
    - std::shared_ptr<Botan::TPM2::Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 539
    functionName: Botan_Tests::load_persistent
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 2
    functionsReached:
    - auto::begin
    - std::find
    - auto::handles
    - test_is_true
    - test_u64_eq
    - Botan_Tests::load_persistent
    - auto::algo_name
    - persistent_handles
    - test_str_eq
    - auto::end
    linkageType: ''
    returnType: auto
    signature: "auto load_persistent(Test::Result& result,\n                     const
      std::shared_ptr<Botan::TPM2::Context>& ctx,\n                     uint32_t persistent_key_id,\n
      \                    std::span<const uint8_t> auth_value,\n                     const
      std::shared_ptr<Botan::TPM2::Session>& session)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:542,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:544,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:547,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:549,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:550,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:550,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:555,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:555,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:556,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:556,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:557,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:557,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:558,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:558,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:559,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:559,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:560,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:560,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:561,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:561,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:564,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:568,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:573,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:576,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:584,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:585,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:589,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:594,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:594,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:597,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:601,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:604,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:609,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:611,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:614,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:617,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:617,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:621,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:622,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:622,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:629,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:630,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:633,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:633,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:636,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:639,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:640,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:641,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:647,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:653,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:653,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:659,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:661,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:662,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:662,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:663,1
    - Dst: Botan::RSA_PublicKey::RSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:669,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:670,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:670,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:671,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:675,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:677,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:678,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:683,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:684,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:685,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:688,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:690,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:692,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:694,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:699,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:703,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:704,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:707,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:710,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:712,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:715,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:716,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:718,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:723,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:724,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:727,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:728,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:729,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:732,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:734,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:735,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:739,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:740,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:742,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:745,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:747,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:752,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:753,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:757,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:761,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:762,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:765,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:768,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:769,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:770,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:771,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:772,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:775,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:777,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:779,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:784,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:787,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:787,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:790,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:791,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:794,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:794,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:795,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:795,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:801,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:802,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:802,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:805,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:805,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:808,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:811,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:814,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:815,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:817,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:818,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:823,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:825,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:826,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:829,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:830,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:833,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:834,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:839,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:841,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:842,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:846,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:847,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:850,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:853,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:859,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:860,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:860,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:862,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:864,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:864,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:868,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:874,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:874,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:875,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:875,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:884,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:884,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:885,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:886,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:888,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:889,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:889,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:894,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:895,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 898
    functionName: Botan_Tests::test_tpm2_rsa
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::storage_root_key
    - test_is_true
    - Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
    - Botan_Tests::bail_out
    - Botan_Tests::load_persistent
    - Botan::TPM2::Session::unauthenticated_session
    - sign_verify_roundtrip
    - Botan::value_exists
    - auto::reset
    - auto::persistent_handles
    - Botan::TPM2::PrivateKey::load_transient
    - Botan::hex_decode
    - auto::public_key_bits
    - test_no_throw
    - std::move
    - auto::attributes
    - test_u64_eq
    - Botan_Tests::Test::mutate_vec
    - Botan_Tests::test_encoding_options
    - auto::supports_algorithm
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::RSA_PublicKey::RSA_PublicKey
    - test_bin_eq
    - auto::raw_public_key_bits
    - static_cast<uint8_t>
    - std::vector::size
    - auto::evict
    - Botan::PK_Signer::sign_message
    - std::vector::emplace_back
    - require
    - auto::empty
    - verify
    - Botan_Tests::get_tpm2_context
    - Botan::TPM2::Session::authenticated_session
    - auto::private_key_bits
    - auto::persist
    - Botan::PK_Encryptor_EME::encrypt
    - sign
    - Botan::as_span_of_bytes
    - Botan_Tests::Test::new_rng
    - Botan_Tests::CHECK
    - auto::public_key
    - auto::handles
    - test_sz_eq
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - test_throws
    - auto::algo_name
    - auto::raw_private_key_bits
    - Botan::TPM2::PublicKey::load_transient
    - test_str_eq
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_rsa()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:910,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:917,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:919,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:923,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:923,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:924,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ' result'
    - ' ctx'
    - persistent_key_id
    - auth_value
    - ' session'
    argTypes:
    - Test::Result
    - std::shared_ptr<Botan::TPM2::Context>
    - uint32_t
    - std::span<const uint8_t>
    - std::shared_ptr<Botan::TPM2::Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 926
    functionName: Botan_Tests::load_persistent_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - std::find
    - auto::handles
    - test_is_true
    - test_u64_eq
    - Botan_Tests::load_persistent
    - auto::algo_name
    - persistent_handles
    - test_str_eq
    - auto::end
    linkageType: ''
    returnType: auto
    signature: "auto load_persistent_ecc(Test::Result& result,\n                         const
      std::shared_ptr<Botan::TPM2::Context>& ctx,\n                         uint32_t
      persistent_key_id,\n                         std::span<const uint8_t> auth_value,\n
      \                        const std::shared_ptr<Botan::TPM2::Session>& session)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:930,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:932,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:935,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:937,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:938,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:938,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:943,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:943,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:946,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:954,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:957,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:966,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:970,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:977,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:980,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:984,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:988,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:991,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:994,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:997,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:997,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:1001,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1002,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1002,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:1009,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1010,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1013,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1013,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1016,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1019,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1020,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1021,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1026,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:1033,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1033,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1040,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1042,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1043,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1043,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1044,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1049,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1052,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1053,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1053,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1054,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1058,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1060,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1061,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1066,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1067,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1068,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1073,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1075,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1077,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1078,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1081,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1082,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1083,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1085,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1093,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1094,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1098,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1103,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1106,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1108,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1110,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1112,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1116,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1117,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1120,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1123,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1124,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1127,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1127,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1128,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1128,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1134,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1135,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1135,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1138,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1138,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:1141,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1144,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1147,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1148,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1150,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1151,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1156,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1158,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1159,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1162,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1163,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1166,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1167,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1170,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1173,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1174,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1180,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1185,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1185,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1189,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1192,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1196,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1196,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1197,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1197,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1203,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1206,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1207,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1208,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1210,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1211,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1216,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1217,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1218,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1218,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1223,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1224,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1229,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1230,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 928
    functionDepth: 3
    functionLinenumber: 928
    functionLinenumberEnd: 1235
    functionName: Botan_Tests::test_tpm2_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDSA_PublicKey
    - Botan::fmt
    - auto::storage_root_key
    - test_is_true
    - Botan_Tests::bail_out
    - Botan_Tests::load_persistent
    - Botan::TPM2::Session::unauthenticated_session
    - sign_verify_roundtrip
    - Botan::value_exists
    - auto::reset
    - auto::persistent_handles
    - Botan::TPM2::PrivateKey::load_transient
    - Botan::hex_decode
    - auto::public_key_bits
    - Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
    - test_no_throw
    - std::move
    - auto::attributes
    - test_u64_eq
    - Botan_Tests::Test::mutate_vec
    - Botan_Tests::test_encoding_options
    - auto::supports_algorithm
    - test_bin_eq
    - auto::raw_public_key_bits
    - static_cast<uint8_t>
    - std::vector::size
    - auto::evict
    - Botan::PK_Signer::sign_message
    - std::vector::emplace_back
    - require
    - auto::empty
    - verify
    - Botan_Tests::get_tpm2_context
    - Botan::TPM2::Session::authenticated_session
    - Botan_Tests::load_persistent_ecc
    - Botan::EC_Group::from_name
    - auto::persist
    - sign
    - Botan::as_span_of_bytes
    - Botan_Tests::Test::new_rng
    - Botan_Tests::CHECK
    - auto::public_key
    - auto::handles
    - test_sz_eq
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - test_throws
    - auto::algo_name
    - auto::raw_private_key_bits
    - Botan::TPM2::PublicKey::load_transient
    - test_str_eq
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_ecc()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:1239,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:1241,1
    - Dst: std::make_unique<Botan::TPM2::HashFunction>
      Src: /src/botan/src/tests/test_tpm2.cpp:1247,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1248,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1256,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1256,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1261,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1261,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1269,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1270,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1274,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1275,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1280,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1281,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1286,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1288,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1292,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:1293,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1294,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_tpm2.cpp:1298,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1301,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1302,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1303,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1309,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1309,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1310,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1310,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1315,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1315,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1316,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1316,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1317,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1317,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1318,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1318,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1319,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1319,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1320,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1323,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1325,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1326,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1329,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1331,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1332,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_tpm2.cpp:1333,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1336,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1339,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1340,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1341,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1342,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1343,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1345,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1348,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1349,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1350,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1351,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1352,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1354,1
    - Dst: Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1356,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1357,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1360,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1362,1
    - Dst: Botan::TPM2::copy_into<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1238
    functionDepth: 3
    functionLinenumber: 1238
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::test_tpm2_hash
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::new_object
    - test_is_true
    - Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    - Botan_Tests::bail_out
    - Botan::TPM2::Session::unauthenticated_session
    - auto::final
    - auto::process
    - auto::copy_state
    - auto::clear
    - test_note
    - Botan::hex_decode
    - auto::name
    - auto::update
    - auto::supports_algorithm
    - test_bin_eq
    - static_cast<uint8_t>
    - std::vector::size
    - require
    - Botan_Tests::get_tpm2_context
    - Botan::HashFunction::create
    - auto::final_with_ticket
    - Botan::TPM2::copy_into<std::vector<uint8_t>>
    - Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
    - Botan_Tests::CHECK
    - test
    - auto::output_length
    - test_sz_eq
    - test_throws
    - test_str_eq
    - std::make_unique<Botan::TPM2::HashFunction>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:55,1
    - Dst: manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - std::shared_ptr<Botan::TPM2::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::validate_context_environment
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 2
    functionsReached:
    - vendor
    - manufacturer
    linkageType: ''
    returnType: bool
    signature: bool validate_context_environment(const std::shared_ptr<Botan::TPM2::Context>&
      ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:60,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:65,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:65,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:66,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:70,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:71,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - rng_tag
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: Botan_Tests::get_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 7
    functionsReached:
    - auto::use_botan_crypto_backend
    - Botan::TPM2::Context::create
    - Botan_Tests::validate_context_environment
    - auto::supports_botan_crypto_backend
    - Botan_Tests::test_encoding_options
    - auto::value
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::shared_ptr<Botan::TPM2::Context>
    signature: std::shared_ptr<Botan::TPM2::Context> get_tpm2_context(std::string_view
      rng_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - esys_ctx
    - handle
    argTypes:
    - ESYS_CONTEXT*
    - ESYS_TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TR(ESYS_CONTEXT* esys_ctx, ESYS_TR handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void TR(TR&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tpm2.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: '& operator=(TR&& other) noexcept'
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: TR
    signature: TR & operator=(TR&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TR(const TR&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: '& operator=(const TR&)'
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TR
    signature: TR & operator=(const TR&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Esys_FlushContext
      Src: /src/botan/src/tests/test_tpm2.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: ~TR()
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_FlushContext
    linkageType: ''
    returnType: void
    signature: void ~TR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: operator ESYS_TR() const
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator ESYS_TR() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Esys_GetTcti
      Src: /src/botan/src/tests/test_tpm2.cpp:112,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:114,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - esys_ctx
    argTypes:
    - ESYS_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: operator()(ESYS_CONTEXT* esys_ctx)
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    - Esys_GetTcti
    linkageType: ''
    returnType: void
    signature: void operator()(ESYS_CONTEXT* esys_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:121,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:122,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:123,1
    - Dst: Tss2_TctiLdr_Initialize_Ex
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:134,1
    - Dst: Esys_Initialize
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:139,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:144,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/tests/test_tpm2.cpp:144,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 150
    functionName: Botan_Tests::get_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 1
    functionsReached:
    - auto::c_str
    - Botan::TPM2::Context::create
    - std::unique_ptr::get
    - Botan_Tests::validate_context_environment
    - auto::value
    - Esys_Initialize
    - Botan_Tests::test_encoding_options
    - Test_Error
    - Tss2_TctiLdr_Initialize_Ex
    - Botan::out_ptr
    linkageType: ''
    returnType: auto
    signature: auto get_external_tpm2_context() -> std::unique_ptr<ESYS_CONTEXT, esys_context_liberator>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: Botan_Tests::bail_out
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 10
    functionsReached:
    - Botan_Tests::bail_out
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result bail_out()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_tpm2.cpp:171,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_tpm2.cpp:172,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_tpm2.cpp:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: Botan_Tests::not_zero_64
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 1
    functionsReached:
    - Botan::BufferSlicer::remaining
    - Botan::load_be
    - Botan::BufferSlicer::take
    linkageType: ''
    returnType: bool
    signature: bool not_zero_64(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:182,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:184,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:190,1
    - Dst: auto::vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:190,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:191,1
    - Dst: auto::manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:191,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:194,1
    - Dst: auto::max_random_bytes_per_request
      Src: /src/botan/src/tests/test_tpm2.cpp:196,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_tpm2.cpp:197,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_tpm2.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:203,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:203,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:204,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:205,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:205,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:206,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:206,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:207,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:207,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:208,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:209,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:209,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:214,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:214,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:216,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:217,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 220
    functionName: Botan_Tests::test_tpm2_properties
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::manufacturer
    - Botan_Tests::CHECK
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::bail_out
    - test_sz_lte
    - auto::supports_algorithm
    - test_sz_gte
    - test_str_eq
    - auto::vendor
    - auto::max_random_bytes_per_request
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_properties()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:223,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:225,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:231,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:237,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:241,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:243,1
    - Dst: auto::uses_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:244,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:245,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:247,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:253,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:253,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:259,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:259,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:265,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:269,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_tpm2.cpp:269,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:270,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 274
    functionName: Botan_Tests::test_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::storage_root_key
    - test_is_true
    - Botan_Tests::bail_out
    - Botan::value_exists
    - auto::uses_botan_crypto_backend
    - auto::persistent_handles
    - Botan_Tests::test_encoding_options
    - auto::supports_botan_crypto_backend
    - require
    - auto::empty
    - Botan_Tests::get_tpm2_context
    - auto::key_length
    - Botan_Tests::Test::new_rng
    - auto::use_botan_crypto_backend
    - Botan_Tests::CHECK
    - auto::handles
    - test_sz_eq
    - test_throws
    - auto::algo_name
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_context()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Esys_StartAuthSession
      Src: /src/botan/src/tests/test_tpm2.cpp:285,1
    - Dst: Esys_TRSess_SetAttributes
      Src: /src/botan/src/tests/test_tpm2.cpp:299,1
    - Dst: Esys_GetRandom
      Src: /src/botan/src/tests/test_tpm2.cpp:308,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:308,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_tpm2.cpp:309,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:309,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:313,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:315,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:317,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:325,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:326,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:328,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:329,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tpm2.cpp:329,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:334,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:334,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:338,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:339,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:342,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:344,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:346,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:352,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:353,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:357,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:357,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:360,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:360,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:365,1
    - Dst: Esys_SetCryptoCallbacks
      Src: /src/botan/src/tests/test_tpm2.cpp:369,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:369,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:372,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:372,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:376,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:377,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:382,1
    - Dst: Botan::TPM2::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:383,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:384,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:388,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:390,1
    - Dst: Botan::TPM2::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:396,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:396,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:400,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 405
    functionName: Botan_Tests::test_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_GetRandom
    - Botan::TPM2::Context::create
    - auto::get
    - raw_start_session
    - Esys_StartAuthSession
    - Botan_Tests::bail_out
    - Botan::TPM2::Session::unauthenticated_session
    - raw_get_random_bytes
    - Botan::out_ptr
    - Esys_TRSess_SetAttributes
    - Botan::RandomNumberGenerator
    - auto::size
    - std::move
    - std::make_pair
    - auto::supports_botan_crypto_backend
    - auto::random_vec
    - Botan::TPM2::check_rc
    - require
    - Esys_SetCryptoCallbacks
    - Botan_Tests::get_external_tpm2_context
    - Botan::TPM2::use_botan_crypto_backend
    - Botan_Tests::Test::new_rng
    - auto::use_botan_crypto_backend
    - Botan::TPM2::supports_botan_crypto_backend
    - Botan_Tests::CHECK
    - test_sz_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_external_tpm2_context()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:408,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:410,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: handle
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: tpm_nonce
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:420,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:424,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:424,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:425,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:425,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:426,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:426,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:427,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:427,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:431,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:436,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:437,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:437,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:438,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:438,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:439,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:439,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:440,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:440,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:445,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:447,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:451,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:451,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:454,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:454,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:455,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:455,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:456,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:458,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:459,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 463
    functionName: Botan_Tests::test_tpm2_sessions
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_Tests::CHECK
    - auto::handles
    - auto::storage_root_key
    - require
    - Botan::TPM2::Session::authenticated_session
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - handle
    - Botan_Tests::bail_out
    - Botan_Tests::test_encoding_options
    - ok
    - Botan::TPM2::Session::unauthenticated_session
    - Botan_Tests::load_persistent
    - auto::algo_name
    - test_str_eq
    - tpm_nonce
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_sessions()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:466,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:468,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:471,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:471,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:477,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_tpm2.cpp:477,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:480,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:480,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:483,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:486,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:487,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:487,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:490,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:491,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:491,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:495,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:495,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:498,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:501,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:502,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:502,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:505,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:506,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:506,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:509,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:510,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 513
    functionName: Botan_Tests::test_tpm2_rng
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::randomize_with_input
    - Botan_Tests::CHECK
    - Botan::RandomNumberGenerator
    - Botan_Tests::not_zero_64
    - test_no_throw
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::bail_out
    - auto::name
    - Botan::TPM2::Session::unauthenticated_session
    - auto::randomize
    - auto::accepts_input
    - test_str_eq
    - auto::clear
    - auto::is_seeded
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_rng()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:523,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:530,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:532,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:536,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:536,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:537,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ' result'
    - ' ctx'
    - persistent_key_id
    - auth_value
    - ' session'
    argTypes:
    - Test::Result
    - std::shared_ptr<Botan::TPM2::Context>
    - uint32_t
    - std::span<const uint8_t>
    - std::shared_ptr<Botan::TPM2::Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 539
    functionName: Botan_Tests::load_persistent
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 7
    functionsReached:
    - auto::begin
    - std::find
    - auto::handles
    - test_is_true
    - test_u64_eq
    - Botan_Tests::load_persistent
    - auto::algo_name
    - persistent_handles
    - test_str_eq
    - auto::end
    linkageType: ''
    returnType: auto
    signature: "auto load_persistent(Test::Result& result,\n                     const
      std::shared_ptr<Botan::TPM2::Context>& ctx,\n                     uint32_t persistent_key_id,\n
      \                    std::span<const uint8_t> auth_value,\n                     const
      std::shared_ptr<Botan::TPM2::Session>& session)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:542,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:544,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:547,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:549,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:550,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:550,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:555,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:555,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:556,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:556,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:557,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:557,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:558,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:558,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:559,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:559,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:560,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:560,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:561,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:561,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:564,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:568,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:573,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:576,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:584,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:585,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:589,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:594,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:594,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:597,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:601,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:604,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:609,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:611,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:614,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:617,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:617,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:621,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:622,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:622,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:629,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:630,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:633,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:633,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:636,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:639,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:640,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:641,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:647,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:653,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:653,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:659,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:661,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:662,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:662,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:663,1
    - Dst: Botan::RSA_PublicKey::RSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:669,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:670,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:670,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:671,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:675,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:677,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:678,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:683,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:684,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:685,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:688,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:690,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:692,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:694,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:699,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:703,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:704,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:707,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:710,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:712,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:715,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:716,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:718,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:723,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:724,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:727,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:728,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:729,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:732,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:734,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:735,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:739,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:740,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:742,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:745,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:747,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:752,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:753,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:757,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:761,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:762,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:765,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:768,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:769,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:770,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:771,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:772,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:775,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:777,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:779,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:784,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:787,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:787,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:790,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:791,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:794,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:794,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:795,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:795,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:801,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:802,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:802,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:805,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:805,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:808,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:811,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:814,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:815,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:817,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:818,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:823,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:825,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:826,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:829,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:830,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:833,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:834,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:839,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:841,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:842,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:846,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:847,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:850,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:853,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:859,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:860,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:860,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:862,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:864,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:864,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:868,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:874,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:874,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:875,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:875,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:884,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:884,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:885,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:886,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:888,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:889,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:889,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:894,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:895,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 898
    functionName: Botan_Tests::test_tpm2_rsa
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::storage_root_key
    - test_is_true
    - Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
    - Botan_Tests::bail_out
    - Botan_Tests::load_persistent
    - Botan::TPM2::Session::unauthenticated_session
    - sign_verify_roundtrip
    - Botan::value_exists
    - auto::reset
    - auto::persistent_handles
    - Botan::TPM2::PrivateKey::load_transient
    - Botan::hex_decode
    - auto::public_key_bits
    - test_no_throw
    - std::move
    - auto::attributes
    - test_u64_eq
    - Botan_Tests::Test::mutate_vec
    - Botan_Tests::test_encoding_options
    - auto::supports_algorithm
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::RSA_PublicKey::RSA_PublicKey
    - test_bin_eq
    - auto::raw_public_key_bits
    - static_cast<uint8_t>
    - std::vector::size
    - auto::evict
    - Botan::PK_Signer::sign_message
    - std::vector::emplace_back
    - require
    - auto::empty
    - verify
    - Botan_Tests::get_tpm2_context
    - Botan::TPM2::Session::authenticated_session
    - auto::private_key_bits
    - auto::persist
    - Botan::PK_Encryptor_EME::encrypt
    - sign
    - Botan::as_span_of_bytes
    - Botan_Tests::Test::new_rng
    - Botan_Tests::CHECK
    - auto::public_key
    - auto::handles
    - test_sz_eq
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - test_throws
    - auto::algo_name
    - auto::raw_private_key_bits
    - Botan::TPM2::PublicKey::load_transient
    - test_str_eq
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_rsa()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:910,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:917,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:919,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:923,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:923,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:924,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ' result'
    - ' ctx'
    - persistent_key_id
    - auth_value
    - ' session'
    argTypes:
    - Test::Result
    - std::shared_ptr<Botan::TPM2::Context>
    - uint32_t
    - std::span<const uint8_t>
    - std::shared_ptr<Botan::TPM2::Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 926
    functionName: Botan_Tests::load_persistent_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 1
    functionsReached:
    - auto::begin
    - std::find
    - auto::handles
    - test_is_true
    - test_u64_eq
    - Botan_Tests::load_persistent
    - auto::algo_name
    - persistent_handles
    - test_str_eq
    - auto::end
    linkageType: ''
    returnType: auto
    signature: "auto load_persistent_ecc(Test::Result& result,\n                         const
      std::shared_ptr<Botan::TPM2::Context>& ctx,\n                         uint32_t
      persistent_key_id,\n                         std::span<const uint8_t> auth_value,\n
      \                        const std::shared_ptr<Botan::TPM2::Session>& session)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:930,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:932,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:935,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:937,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:938,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:938,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:943,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:943,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:946,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:954,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:957,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:966,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:970,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:977,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:980,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:984,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:988,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:991,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:994,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:997,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:997,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:1001,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1002,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1002,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:1009,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1010,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1013,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1013,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1016,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1019,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1020,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1021,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1026,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:1033,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1033,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1040,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1042,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1043,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1043,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1044,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1049,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1052,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1053,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1053,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1054,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1058,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1060,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1061,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1066,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1067,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1068,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1073,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1075,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1077,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1078,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1081,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1082,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1083,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1085,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1093,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1094,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1098,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1103,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1106,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1108,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1110,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1112,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1116,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1117,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1120,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1123,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1124,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1127,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1127,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1128,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1128,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1134,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1135,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1135,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1138,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1138,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:1141,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1144,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1147,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1148,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1150,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1151,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1156,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1158,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1159,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1162,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1163,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1166,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1167,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1170,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1173,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1174,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1180,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1185,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1185,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1189,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1192,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1196,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1196,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1197,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1197,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1203,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1206,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1207,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1208,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1210,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1211,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1216,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1217,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1218,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1218,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1223,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1224,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1229,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1230,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 928
    functionDepth: 3
    functionLinenumber: 928
    functionLinenumberEnd: 1235
    functionName: Botan_Tests::test_tpm2_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDSA_PublicKey
    - Botan::fmt
    - auto::storage_root_key
    - test_is_true
    - Botan_Tests::bail_out
    - Botan_Tests::load_persistent
    - Botan::TPM2::Session::unauthenticated_session
    - sign_verify_roundtrip
    - Botan::value_exists
    - auto::reset
    - auto::persistent_handles
    - Botan::TPM2::PrivateKey::load_transient
    - Botan::hex_decode
    - auto::public_key_bits
    - Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
    - test_no_throw
    - std::move
    - auto::attributes
    - test_u64_eq
    - Botan_Tests::Test::mutate_vec
    - Botan_Tests::test_encoding_options
    - auto::supports_algorithm
    - test_bin_eq
    - auto::raw_public_key_bits
    - static_cast<uint8_t>
    - std::vector::size
    - auto::evict
    - Botan::PK_Signer::sign_message
    - std::vector::emplace_back
    - require
    - auto::empty
    - verify
    - Botan_Tests::get_tpm2_context
    - Botan::TPM2::Session::authenticated_session
    - Botan_Tests::load_persistent_ecc
    - Botan::EC_Group::from_name
    - auto::persist
    - sign
    - Botan::as_span_of_bytes
    - Botan_Tests::Test::new_rng
    - Botan_Tests::CHECK
    - auto::public_key
    - auto::handles
    - test_sz_eq
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - test_throws
    - auto::algo_name
    - auto::raw_private_key_bits
    - Botan::TPM2::PublicKey::load_transient
    - test_str_eq
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_ecc()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:1239,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:1241,1
    - Dst: std::make_unique<Botan::TPM2::HashFunction>
      Src: /src/botan/src/tests/test_tpm2.cpp:1247,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1248,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1256,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1256,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1261,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1261,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1269,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1270,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1274,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1275,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1280,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1281,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1286,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1288,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1292,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:1293,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1294,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_tpm2.cpp:1298,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1301,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1302,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1303,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1309,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1309,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1310,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1310,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1315,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1315,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1316,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1316,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1317,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1317,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1318,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1318,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1319,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1319,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1320,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1323,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1325,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1326,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1329,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1331,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1332,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_tpm2.cpp:1333,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1336,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1339,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1340,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1341,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1342,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1343,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1345,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1348,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1349,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1350,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1351,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1352,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1354,1
    - Dst: Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1356,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1357,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1360,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1362,1
    - Dst: Botan::TPM2::copy_into<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1238
    functionDepth: 3
    functionLinenumber: 1238
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::test_tpm2_hash
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::new_object
    - test_is_true
    - Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    - Botan_Tests::bail_out
    - Botan::TPM2::Session::unauthenticated_session
    - auto::final
    - auto::process
    - auto::copy_state
    - auto::clear
    - test_note
    - Botan::hex_decode
    - auto::name
    - auto::update
    - auto::supports_algorithm
    - test_bin_eq
    - static_cast<uint8_t>
    - std::vector::size
    - require
    - Botan_Tests::get_tpm2_context
    - Botan::HashFunction::create
    - auto::final_with_ticket
    - Botan::TPM2::copy_into<std::vector<uint8_t>>
    - Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
    - Botan_Tests::CHECK
    - test
    - auto::output_length
    - test_sz_eq
    - test_throws
    - test_str_eq
    - std::make_unique<Botan::TPM2::HashFunction>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:55,1
    - Dst: manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - std::shared_ptr<Botan::TPM2::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::validate_context_environment
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 4
    functionsReached:
    - vendor
    - manufacturer
    linkageType: ''
    returnType: bool
    signature: bool validate_context_environment(const std::shared_ptr<Botan::TPM2::Context>&
      ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:60,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:65,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:65,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:66,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:70,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:71,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - rng_tag
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: Botan_Tests::get_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 14
    functionsReached:
    - auto::use_botan_crypto_backend
    - Botan::TPM2::Context::create
    - Botan_Tests::validate_context_environment
    - auto::supports_botan_crypto_backend
    - Botan_Tests::test_encoding_options
    - auto::value
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::shared_ptr<Botan::TPM2::Context>
    signature: std::shared_ptr<Botan::TPM2::Context> get_tpm2_context(std::string_view
      rng_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - esys_ctx
    - handle
    argTypes:
    - ESYS_CONTEXT*
    - ESYS_TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TR(ESYS_CONTEXT* esys_ctx, ESYS_TR handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void TR(TR&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tpm2.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: '& operator=(TR&& other) noexcept'
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: TR
    signature: TR & operator=(TR&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TR(const TR&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: '& operator=(const TR&)'
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TR
    signature: TR & operator=(const TR&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Esys_FlushContext
      Src: /src/botan/src/tests/test_tpm2.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: ~TR()
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_FlushContext
    linkageType: ''
    returnType: void
    signature: void ~TR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: operator ESYS_TR() const
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator ESYS_TR() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Esys_GetTcti
      Src: /src/botan/src/tests/test_tpm2.cpp:112,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:114,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - esys_ctx
    argTypes:
    - ESYS_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: operator()(ESYS_CONTEXT* esys_ctx)
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    - Esys_GetTcti
    linkageType: ''
    returnType: void
    signature: void operator()(ESYS_CONTEXT* esys_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:121,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:122,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:123,1
    - Dst: Tss2_TctiLdr_Initialize_Ex
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:134,1
    - Dst: Esys_Initialize
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:139,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:144,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/tests/test_tpm2.cpp:144,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 150
    functionName: Botan_Tests::get_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 2
    functionsReached:
    - auto::c_str
    - Botan::TPM2::Context::create
    - std::unique_ptr::get
    - Botan_Tests::validate_context_environment
    - auto::value
    - Esys_Initialize
    - Botan_Tests::test_encoding_options
    - Test_Error
    - Tss2_TctiLdr_Initialize_Ex
    - Botan::out_ptr
    linkageType: ''
    returnType: auto
    signature: auto get_external_tpm2_context() -> std::unique_ptr<ESYS_CONTEXT, esys_context_liberator>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: Botan_Tests::bail_out
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 19
    functionsReached:
    - Botan_Tests::bail_out
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result bail_out()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_tpm2.cpp:171,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_tpm2.cpp:172,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_tpm2.cpp:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: Botan_Tests::not_zero_64
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 2
    functionsReached:
    - Botan::BufferSlicer::remaining
    - Botan::load_be
    - Botan::BufferSlicer::take
    linkageType: ''
    returnType: bool
    signature: bool not_zero_64(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:182,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:184,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:190,1
    - Dst: auto::vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:190,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:191,1
    - Dst: auto::manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:191,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:194,1
    - Dst: auto::max_random_bytes_per_request
      Src: /src/botan/src/tests/test_tpm2.cpp:196,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_tpm2.cpp:197,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_tpm2.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:203,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:203,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:204,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:205,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:205,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:206,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:206,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:207,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:207,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:208,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:209,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:209,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:214,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:214,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:216,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:217,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 220
    functionName: Botan_Tests::test_tpm2_properties
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::manufacturer
    - Botan_Tests::CHECK
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::bail_out
    - test_sz_lte
    - auto::supports_algorithm
    - test_sz_gte
    - test_str_eq
    - auto::vendor
    - auto::max_random_bytes_per_request
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_properties()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:223,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:225,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:231,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:237,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:241,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:243,1
    - Dst: auto::uses_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:244,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:245,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:247,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:253,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:253,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:259,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:259,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:265,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:269,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_tpm2.cpp:269,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:270,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 274
    functionName: Botan_Tests::test_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::storage_root_key
    - test_is_true
    - Botan_Tests::bail_out
    - Botan::value_exists
    - auto::uses_botan_crypto_backend
    - auto::persistent_handles
    - Botan_Tests::test_encoding_options
    - auto::supports_botan_crypto_backend
    - require
    - auto::empty
    - Botan_Tests::get_tpm2_context
    - auto::key_length
    - Botan_Tests::Test::new_rng
    - auto::use_botan_crypto_backend
    - Botan_Tests::CHECK
    - auto::handles
    - test_sz_eq
    - test_throws
    - auto::algo_name
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_context()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Esys_StartAuthSession
      Src: /src/botan/src/tests/test_tpm2.cpp:285,1
    - Dst: Esys_TRSess_SetAttributes
      Src: /src/botan/src/tests/test_tpm2.cpp:299,1
    - Dst: Esys_GetRandom
      Src: /src/botan/src/tests/test_tpm2.cpp:308,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:308,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_tpm2.cpp:309,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:309,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:313,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:315,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:317,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:325,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:326,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:328,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:329,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tpm2.cpp:329,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:334,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:334,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:338,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:339,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:342,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:344,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:346,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:352,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:353,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:357,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:357,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:360,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:360,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:365,1
    - Dst: Esys_SetCryptoCallbacks
      Src: /src/botan/src/tests/test_tpm2.cpp:369,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:369,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:372,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:372,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:376,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:377,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:382,1
    - Dst: Botan::TPM2::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:383,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:384,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:388,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:390,1
    - Dst: Botan::TPM2::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:396,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:396,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:400,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 405
    functionName: Botan_Tests::test_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_GetRandom
    - Botan::TPM2::Context::create
    - auto::get
    - raw_start_session
    - Esys_StartAuthSession
    - Botan_Tests::bail_out
    - Botan::TPM2::Session::unauthenticated_session
    - raw_get_random_bytes
    - Botan::out_ptr
    - Esys_TRSess_SetAttributes
    - Botan::RandomNumberGenerator
    - auto::size
    - std::move
    - std::make_pair
    - auto::supports_botan_crypto_backend
    - auto::random_vec
    - Botan::TPM2::check_rc
    - require
    - Esys_SetCryptoCallbacks
    - Botan_Tests::get_external_tpm2_context
    - Botan::TPM2::use_botan_crypto_backend
    - Botan_Tests::Test::new_rng
    - auto::use_botan_crypto_backend
    - Botan::TPM2::supports_botan_crypto_backend
    - Botan_Tests::CHECK
    - test_sz_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_external_tpm2_context()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:408,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:410,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: handle
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: tpm_nonce
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:420,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:424,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:424,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:425,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:425,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:426,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:426,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:427,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:427,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:431,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:436,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:437,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:437,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:438,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:438,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:439,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:439,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:440,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:440,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:445,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:447,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:451,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:451,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:454,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:454,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:455,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:455,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:456,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:458,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:459,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 463
    functionName: Botan_Tests::test_tpm2_sessions
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_Tests::CHECK
    - auto::handles
    - auto::storage_root_key
    - require
    - Botan::TPM2::Session::authenticated_session
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - handle
    - Botan_Tests::bail_out
    - Botan_Tests::test_encoding_options
    - ok
    - Botan::TPM2::Session::unauthenticated_session
    - Botan_Tests::load_persistent
    - auto::algo_name
    - test_str_eq
    - tpm_nonce
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_sessions()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:466,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:468,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:471,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:471,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:477,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_tpm2.cpp:477,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:480,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:480,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:483,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:486,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:487,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:487,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:490,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:491,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:491,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:495,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:495,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:498,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:501,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:502,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:502,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:505,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:506,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:506,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:509,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:510,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 513
    functionName: Botan_Tests::test_tpm2_rng
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::randomize_with_input
    - Botan_Tests::CHECK
    - Botan::RandomNumberGenerator
    - Botan_Tests::not_zero_64
    - test_no_throw
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::bail_out
    - auto::name
    - Botan::TPM2::Session::unauthenticated_session
    - auto::randomize
    - auto::accepts_input
    - test_str_eq
    - auto::clear
    - auto::is_seeded
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_rng()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:523,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:530,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:532,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:536,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:536,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:537,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ' result'
    - ' ctx'
    - persistent_key_id
    - auth_value
    - ' session'
    argTypes:
    - Test::Result
    - std::shared_ptr<Botan::TPM2::Context>
    - uint32_t
    - std::span<const uint8_t>
    - std::shared_ptr<Botan::TPM2::Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 539
    functionName: Botan_Tests::load_persistent
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 12
    functionsReached:
    - auto::begin
    - std::find
    - auto::handles
    - test_is_true
    - test_u64_eq
    - Botan_Tests::load_persistent
    - auto::algo_name
    - persistent_handles
    - test_str_eq
    - auto::end
    linkageType: ''
    returnType: auto
    signature: "auto load_persistent(Test::Result& result,\n                     const
      std::shared_ptr<Botan::TPM2::Context>& ctx,\n                     uint32_t persistent_key_id,\n
      \                    std::span<const uint8_t> auth_value,\n                     const
      std::shared_ptr<Botan::TPM2::Session>& session)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:542,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:544,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:547,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:549,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:550,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:550,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:555,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:555,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:556,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:556,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:557,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:557,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:558,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:558,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:559,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:559,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:560,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:560,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:561,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:561,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:564,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:568,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:573,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:576,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:584,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:585,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:589,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:594,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:594,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:597,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:601,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:604,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:609,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:611,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:614,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:617,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:617,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:621,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:622,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:622,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:629,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:630,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:633,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:633,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:636,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:639,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:640,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:641,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:647,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:653,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:653,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:659,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:661,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:662,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:662,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:663,1
    - Dst: Botan::RSA_PublicKey::RSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:669,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:670,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:670,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:671,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:675,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:677,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:678,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:683,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:684,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:685,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:688,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:690,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:692,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:694,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:699,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:703,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:704,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:707,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:710,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:712,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:715,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:716,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:718,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:723,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:724,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:727,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:728,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:729,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:732,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:734,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:735,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:739,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:740,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:742,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:745,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:747,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:752,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:753,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:757,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:761,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:762,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:765,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:768,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:769,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:770,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:771,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:772,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:775,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:777,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:779,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:784,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:787,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:787,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:790,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:791,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:794,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:794,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:795,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:795,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:801,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:802,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:802,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:805,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:805,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:808,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:811,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:814,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:815,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:817,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:818,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:823,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:825,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:826,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:829,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:830,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:833,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:834,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:839,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:841,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:842,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:846,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:847,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:850,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:853,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:859,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:860,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:860,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:862,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:864,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:864,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:868,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:874,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:874,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:875,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:875,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:884,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:884,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:885,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:886,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:888,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:889,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:889,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:894,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:895,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 898
    functionName: Botan_Tests::test_tpm2_rsa
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::storage_root_key
    - test_is_true
    - Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
    - Botan_Tests::bail_out
    - Botan_Tests::load_persistent
    - Botan::TPM2::Session::unauthenticated_session
    - sign_verify_roundtrip
    - Botan::value_exists
    - auto::reset
    - auto::persistent_handles
    - Botan::TPM2::PrivateKey::load_transient
    - Botan::hex_decode
    - auto::public_key_bits
    - test_no_throw
    - std::move
    - auto::attributes
    - test_u64_eq
    - Botan_Tests::Test::mutate_vec
    - Botan_Tests::test_encoding_options
    - auto::supports_algorithm
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::RSA_PublicKey::RSA_PublicKey
    - test_bin_eq
    - auto::raw_public_key_bits
    - static_cast<uint8_t>
    - std::vector::size
    - auto::evict
    - Botan::PK_Signer::sign_message
    - std::vector::emplace_back
    - require
    - auto::empty
    - verify
    - Botan_Tests::get_tpm2_context
    - Botan::TPM2::Session::authenticated_session
    - auto::private_key_bits
    - auto::persist
    - Botan::PK_Encryptor_EME::encrypt
    - sign
    - Botan::as_span_of_bytes
    - Botan_Tests::Test::new_rng
    - Botan_Tests::CHECK
    - auto::public_key
    - auto::handles
    - test_sz_eq
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - test_throws
    - auto::algo_name
    - auto::raw_private_key_bits
    - Botan::TPM2::PublicKey::load_transient
    - test_str_eq
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_rsa()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:910,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:917,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:919,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:923,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:923,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:924,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ' result'
    - ' ctx'
    - persistent_key_id
    - auth_value
    - ' session'
    argTypes:
    - Test::Result
    - std::shared_ptr<Botan::TPM2::Context>
    - uint32_t
    - std::span<const uint8_t>
    - std::shared_ptr<Botan::TPM2::Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 926
    functionName: Botan_Tests::load_persistent_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 2
    functionsReached:
    - auto::begin
    - std::find
    - auto::handles
    - test_is_true
    - test_u64_eq
    - Botan_Tests::load_persistent
    - auto::algo_name
    - persistent_handles
    - test_str_eq
    - auto::end
    linkageType: ''
    returnType: auto
    signature: "auto load_persistent_ecc(Test::Result& result,\n                         const
      std::shared_ptr<Botan::TPM2::Context>& ctx,\n                         uint32_t
      persistent_key_id,\n                         std::span<const uint8_t> auth_value,\n
      \                        const std::shared_ptr<Botan::TPM2::Session>& session)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:930,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:932,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:935,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:937,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:938,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:938,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:943,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:943,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:946,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:954,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:957,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:966,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:970,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:977,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:980,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:984,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:988,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:991,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:994,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:997,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:997,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:1001,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1002,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1002,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:1009,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1010,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1013,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1013,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1016,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1019,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1020,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1021,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1026,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:1033,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1033,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1040,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1042,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1043,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1043,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1044,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1049,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1052,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1053,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1053,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1054,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1058,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1060,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1061,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1066,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1067,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1068,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1073,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1075,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1077,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1078,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1081,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1082,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1083,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1085,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1093,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1094,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1098,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1103,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1106,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1108,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1110,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1112,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1116,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1117,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1120,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1123,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1124,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1127,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1127,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1128,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1128,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1134,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1135,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1135,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1138,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1138,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:1141,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1144,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1147,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1148,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1150,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1151,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1156,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1158,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1159,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1162,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1163,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1166,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1167,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1170,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1173,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1174,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1180,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1185,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1185,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1189,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1192,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1196,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1196,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1197,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1197,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1203,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1206,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1207,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1208,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1210,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1211,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1216,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1217,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1218,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1218,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1223,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1224,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1229,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1230,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 928
    functionDepth: 3
    functionLinenumber: 928
    functionLinenumberEnd: 1235
    functionName: Botan_Tests::test_tpm2_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDSA_PublicKey
    - Botan::fmt
    - auto::storage_root_key
    - test_is_true
    - Botan_Tests::bail_out
    - Botan_Tests::load_persistent
    - Botan::TPM2::Session::unauthenticated_session
    - sign_verify_roundtrip
    - Botan::value_exists
    - auto::reset
    - auto::persistent_handles
    - Botan::TPM2::PrivateKey::load_transient
    - Botan::hex_decode
    - auto::public_key_bits
    - Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
    - test_no_throw
    - std::move
    - auto::attributes
    - test_u64_eq
    - Botan_Tests::Test::mutate_vec
    - Botan_Tests::test_encoding_options
    - auto::supports_algorithm
    - test_bin_eq
    - auto::raw_public_key_bits
    - static_cast<uint8_t>
    - std::vector::size
    - auto::evict
    - Botan::PK_Signer::sign_message
    - std::vector::emplace_back
    - require
    - auto::empty
    - verify
    - Botan_Tests::get_tpm2_context
    - Botan::TPM2::Session::authenticated_session
    - Botan_Tests::load_persistent_ecc
    - Botan::EC_Group::from_name
    - auto::persist
    - sign
    - Botan::as_span_of_bytes
    - Botan_Tests::Test::new_rng
    - Botan_Tests::CHECK
    - auto::public_key
    - auto::handles
    - test_sz_eq
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - test_throws
    - auto::algo_name
    - auto::raw_private_key_bits
    - Botan::TPM2::PublicKey::load_transient
    - test_str_eq
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_ecc()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:1239,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:1241,1
    - Dst: std::make_unique<Botan::TPM2::HashFunction>
      Src: /src/botan/src/tests/test_tpm2.cpp:1247,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1248,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1256,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1256,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1261,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1261,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1269,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1270,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1274,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1275,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1280,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1281,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1286,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1288,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1292,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:1293,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1294,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_tpm2.cpp:1298,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1301,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1302,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1303,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1309,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1309,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1310,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1310,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1315,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1315,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1316,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1316,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1317,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1317,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1318,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1318,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1319,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1319,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1320,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1323,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1325,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1326,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1329,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1331,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1332,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_tpm2.cpp:1333,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1336,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1339,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1340,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1341,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1342,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1343,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1345,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1348,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1349,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1350,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1351,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1352,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1354,1
    - Dst: Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1356,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1357,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1360,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1362,1
    - Dst: Botan::TPM2::copy_into<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1238
    functionDepth: 3
    functionLinenumber: 1238
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::test_tpm2_hash
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::new_object
    - test_is_true
    - Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    - Botan_Tests::bail_out
    - Botan::TPM2::Session::unauthenticated_session
    - auto::final
    - auto::process
    - auto::copy_state
    - auto::clear
    - test_note
    - Botan::hex_decode
    - auto::name
    - auto::update
    - auto::supports_algorithm
    - test_bin_eq
    - static_cast<uint8_t>
    - std::vector::size
    - require
    - Botan_Tests::get_tpm2_context
    - Botan::HashFunction::create
    - auto::final_with_ticket
    - Botan::TPM2::copy_into<std::vector<uint8_t>>
    - Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
    - Botan_Tests::CHECK
    - test
    - auto::output_length
    - test_sz_eq
    - test_throws
    - test_str_eq
    - std::make_unique<Botan::TPM2::HashFunction>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:55,1
    - Dst: manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - std::shared_ptr<Botan::TPM2::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::validate_context_environment
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 6
    functionsReached:
    - vendor
    - manufacturer
    linkageType: ''
    returnType: bool
    signature: bool validate_context_environment(const std::shared_ptr<Botan::TPM2::Context>&
      ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:60,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:65,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:65,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:66,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:70,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:71,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - rng_tag
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: Botan_Tests::get_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 21
    functionsReached:
    - auto::use_botan_crypto_backend
    - Botan::TPM2::Context::create
    - Botan_Tests::validate_context_environment
    - auto::supports_botan_crypto_backend
    - Botan_Tests::test_encoding_options
    - auto::value
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::shared_ptr<Botan::TPM2::Context>
    signature: std::shared_ptr<Botan::TPM2::Context> get_tpm2_context(std::string_view
      rng_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - esys_ctx
    - handle
    argTypes:
    - ESYS_CONTEXT*
    - ESYS_TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TR(ESYS_CONTEXT* esys_ctx, ESYS_TR handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void TR(TR&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tpm2.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: '& operator=(TR&& other) noexcept'
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: TR
    signature: TR & operator=(TR&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_Tests::TR::TR
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TR(const TR&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: '& operator=(const TR&)'
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TR
    signature: TR & operator=(const TR&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Esys_FlushContext
      Src: /src/botan/src/tests/test_tpm2.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: ~TR()
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_FlushContext
    linkageType: ''
    returnType: void
    signature: void ~TR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: operator ESYS_TR() const
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator ESYS_TR() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Esys_GetTcti
      Src: /src/botan/src/tests/test_tpm2.cpp:112,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:114,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - esys_ctx
    argTypes:
    - ESYS_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: operator()(ESYS_CONTEXT* esys_ctx)
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    - Esys_GetTcti
    linkageType: ''
    returnType: void
    signature: void operator()(ESYS_CONTEXT* esys_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:121,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:122,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:123,1
    - Dst: Tss2_TctiLdr_Initialize_Ex
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:134,1
    - Dst: Esys_Initialize
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:139,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:144,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/tests/test_tpm2.cpp:144,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 150
    functionName: Botan_Tests::get_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 3
    functionsReached:
    - auto::c_str
    - Botan::TPM2::Context::create
    - std::unique_ptr::get
    - Botan_Tests::validate_context_environment
    - auto::value
    - Esys_Initialize
    - Botan_Tests::test_encoding_options
    - Test_Error
    - Tss2_TctiLdr_Initialize_Ex
    - Botan::out_ptr
    linkageType: ''
    returnType: auto
    signature: auto get_external_tpm2_context() -> std::unique_ptr<ESYS_CONTEXT, esys_context_liberator>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: Botan_Tests::bail_out
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 28
    functionsReached:
    - Botan_Tests::bail_out
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result bail_out()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_tpm2.cpp:171,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_tpm2.cpp:172,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_tpm2.cpp:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: Botan_Tests::not_zero_64
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 3
    functionsReached:
    - Botan::BufferSlicer::remaining
    - Botan::load_be
    - Botan::BufferSlicer::take
    linkageType: ''
    returnType: bool
    signature: bool not_zero_64(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:182,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:184,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:190,1
    - Dst: auto::vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:190,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:191,1
    - Dst: auto::manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:191,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:194,1
    - Dst: auto::max_random_bytes_per_request
      Src: /src/botan/src/tests/test_tpm2.cpp:196,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_tpm2.cpp:197,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_tpm2.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:203,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:203,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:204,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:205,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:205,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:206,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:206,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:207,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:207,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:208,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:209,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:209,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:214,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:214,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:216,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:217,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 220
    functionName: Botan_Tests::test_tpm2_properties
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::manufacturer
    - Botan_Tests::CHECK
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::bail_out
    - test_sz_lte
    - auto::supports_algorithm
    - test_sz_gte
    - test_str_eq
    - auto::vendor
    - auto::max_random_bytes_per_request
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_properties()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:223,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:225,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:231,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:237,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:241,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:243,1
    - Dst: auto::uses_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:244,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:245,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:247,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:253,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:253,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:259,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:259,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:265,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:269,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_tpm2.cpp:269,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:270,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 274
    functionName: Botan_Tests::test_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::storage_root_key
    - test_is_true
    - Botan_Tests::bail_out
    - Botan::value_exists
    - auto::uses_botan_crypto_backend
    - auto::persistent_handles
    - Botan_Tests::test_encoding_options
    - auto::supports_botan_crypto_backend
    - require
    - auto::empty
    - Botan_Tests::get_tpm2_context
    - auto::key_length
    - Botan_Tests::Test::new_rng
    - auto::use_botan_crypto_backend
    - Botan_Tests::CHECK
    - auto::handles
    - test_sz_eq
    - test_throws
    - auto::algo_name
    - test_str_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_context()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Esys_StartAuthSession
      Src: /src/botan/src/tests/test_tpm2.cpp:285,1
    - Dst: Esys_TRSess_SetAttributes
      Src: /src/botan/src/tests/test_tpm2.cpp:299,1
    - Dst: Esys_GetRandom
      Src: /src/botan/src/tests/test_tpm2.cpp:308,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:308,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_tpm2.cpp:309,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:309,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:313,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:315,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:317,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:325,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:326,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:328,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:329,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tpm2.cpp:329,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:334,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:334,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:338,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:339,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:342,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:344,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:346,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:352,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:353,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:357,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:357,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:360,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:360,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:365,1
    - Dst: Esys_SetCryptoCallbacks
      Src: /src/botan/src/tests/test_tpm2.cpp:369,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:369,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:372,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:372,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:376,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:377,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:382,1
    - Dst: Botan::TPM2::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:383,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:384,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:388,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:390,1
    - Dst: Botan::TPM2::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:394,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:396,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:396,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:400,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 405
    functionName: Botan_Tests::test_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_GetRandom
    - Botan::TPM2::Context::create
    - auto::get
    - raw_start_session
    - Esys_StartAuthSession
    - Botan_Tests::bail_out
    - Botan::TPM2::Session::unauthenticated_session
    - raw_get_random_bytes
    - Botan::out_ptr
    - Esys_TRSess_SetAttributes
    - Botan::RandomNumberGenerator
    - auto::size
    - std::move
    - std::make_pair
    - auto::supports_botan_crypto_backend
    - auto::random_vec
    - Botan::TPM2::check_rc
    - require
    - Esys_SetCryptoCallbacks
    - Botan_Tests::get_external_tpm2_context
    - Botan::TPM2::use_botan_crypto_backend
    - Botan_Tests::Test::new_rng
    - auto::use_botan_crypto_backend
    - Botan::TPM2::supports_botan_crypto_backend
    - Botan_Tests::CHECK
    - test_sz_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_external_tpm2_context()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:408,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:410,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: handle
      Src: /src/botan/src/tests/test_tpm2.cpp:415,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: tpm_nonce
      Src: /src/botan/src/tests/test_tpm2.cpp:416,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:420,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:424,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:424,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:425,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:425,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:426,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:426,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:427,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:427,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:431,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:436,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:437,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:437,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:438,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:438,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:439,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:439,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:440,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:440,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:445,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:447,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:451,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:451,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:454,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:454,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:455,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:455,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:456,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:458,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:459,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 463
    functionName: Botan_Tests::test_tpm2_sessions
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_Tests::CHECK
    - auto::handles
    - auto::storage_root_key
    - require
    - Botan::TPM2::Session::authenticated_session
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - handle
    - Botan_Tests::bail_out
    - Botan_Tests::test_encoding_options
    - ok
    - Botan::TPM2::Session::unauthenticated_session
    - Botan_Tests::load_persistent
    - auto::algo_name
    - test_str_eq
    - tpm_nonce
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_sessions()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:466,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:468,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:471,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:471,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:477,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_tpm2.cpp:477,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:480,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:480,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:483,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:486,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:487,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:487,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:490,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:491,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:491,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:495,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:495,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:498,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:501,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:502,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:502,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:505,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:506,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:506,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:509,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:510,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 513
    functionName: Botan_Tests::test_tpm2_rng
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::randomize_with_input
    - Botan_Tests::CHECK
    - Botan::RandomNumberGenerator
    - Botan_Tests::not_zero_64
    - test_no_throw
    - test_is_true
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::bail_out
    - auto::name
    - Botan::TPM2::Session::unauthenticated_session
    - auto::randomize
    - auto::accepts_input
    - test_str_eq
    - auto::clear
    - auto::is_seeded
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_rng()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:523,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:526,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:530,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:532,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:536,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:536,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:537,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ' result'
    - ' ctx'
    - persistent_key_id
    - auth_value
    - ' session'
    argTypes:
    - Test::Result
    - std::shared_ptr<Botan::TPM2::Context>
    - uint32_t
    - std::span<const uint8_t>
    - std::shared_ptr<Botan::TPM2::Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 539
    functionName: Botan_Tests::load_persistent
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 17
    functionsReached:
    - auto::begin
    - std::find
    - auto::handles
    - test_is_true
    - test_u64_eq
    - Botan_Tests::load_persistent
    - auto::algo_name
    - persistent_handles
    - test_str_eq
    - auto::end
    linkageType: ''
    returnType: auto
    signature: "auto load_persistent(Test::Result& result,\n                     const
      std::shared_ptr<Botan::TPM2::Context>& ctx,\n                     uint32_t persistent_key_id,\n
      \                    std::span<const uint8_t> auth_value,\n                     const
      std::shared_ptr<Botan::TPM2::Session>& session)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:542,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:544,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:547,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:549,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:550,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:550,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:555,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:555,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:556,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:556,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:557,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:557,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:558,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:558,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:559,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:559,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:560,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:560,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:561,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:561,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:564,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:568,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:573,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:576,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:584,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:585,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:589,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:594,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:594,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:597,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:601,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:604,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:609,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:611,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:614,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:617,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:617,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:621,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:622,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:622,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:629,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:630,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:633,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:633,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:636,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:639,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:640,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:641,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:647,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:653,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:653,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:659,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:661,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:662,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:662,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:663,1
    - Dst: Botan::RSA_PublicKey::RSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:669,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:670,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:670,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:671,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:675,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:677,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:678,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:683,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:684,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:685,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:688,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:690,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:692,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:694,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:699,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:703,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:704,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:707,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:710,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:712,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:715,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:716,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:718,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:723,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:724,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:727,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:728,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:729,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:732,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:734,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:735,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:739,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:740,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:742,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:745,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:747,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:752,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:753,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:757,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:761,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:762,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:765,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:768,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:769,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:770,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:771,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:772,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:775,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:777,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:779,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:784,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:787,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:787,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:790,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:791,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:794,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:794,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:795,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:795,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:801,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:802,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:802,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:805,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:805,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:808,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:811,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:814,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:815,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:817,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:818,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:823,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:825,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:826,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:829,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:830,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:833,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:834,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:839,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:841,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:842,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:846,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:847,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:850,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:853,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:859,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:860,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:860,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:862,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:864,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:864,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:868,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:874,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:874,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:875,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:875,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:884,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:884,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:885,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:886,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:888,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:889,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:889,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:894,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:895,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 898
    functionName: Botan_Tests::test_tpm2_rsa
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::storage_root_key
    - test_is_true
    - Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
    - Botan_Tests::bail_out
    - Botan_Tests::load_persistent
    - Botan::TPM2::Session::unauthenticated_session
    - sign_verify_roundtrip
    - Botan::value_exists
    - auto::reset
    - auto::persistent_handles
    - Botan::TPM2::PrivateKey::load_transient
    - Botan::hex_decode
    - auto::public_key_bits
    - test_no_throw
    - std::move
    - auto::attributes
    - test_u64_eq
    - Botan_Tests::Test::mutate_vec
    - Botan_Tests::test_encoding_options
    - auto::supports_algorithm
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::RSA_PublicKey::RSA_PublicKey
    - test_bin_eq
    - auto::raw_public_key_bits
    - static_cast<uint8_t>
    - std::vector::size
    - auto::evict
    - Botan::PK_Signer::sign_message
    - std::vector::emplace_back
    - require
    - auto::empty
    - verify
    - Botan_Tests::get_tpm2_context
    - Botan::TPM2::Session::authenticated_session
    - auto::private_key_bits
    - auto::persist
    - Botan::PK_Encryptor_EME::encrypt
    - sign
    - Botan::as_span_of_bytes
    - Botan_Tests::Test::new_rng
    - Botan_Tests::CHECK
    - auto::public_key
    - auto::handles
    - test_sz_eq
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - test_throws
    - auto::algo_name
    - auto::raw_private_key_bits
    - Botan::TPM2::PublicKey::load_transient
    - test_str_eq
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_rsa()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:910,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:913,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:917,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:919,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:923,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:923,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:924,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ' result'
    - ' ctx'
    - persistent_key_id
    - auth_value
    - ' session'
    argTypes:
    - Test::Result
    - std::shared_ptr<Botan::TPM2::Context>
    - uint32_t
    - std::span<const uint8_t>
    - std::shared_ptr<Botan::TPM2::Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 926
    functionName: Botan_Tests::load_persistent_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 3
    functionsReached:
    - auto::begin
    - std::find
    - auto::handles
    - test_is_true
    - test_u64_eq
    - Botan_Tests::load_persistent
    - auto::algo_name
    - persistent_handles
    - test_str_eq
    - auto::end
    linkageType: ''
    returnType: auto
    signature: "auto load_persistent_ecc(Test::Result& result,\n                         const
      std::shared_ptr<Botan::TPM2::Context>& ctx,\n                         uint32_t
      persistent_key_id,\n                         std::span<const uint8_t> auth_value,\n
      \                        const std::shared_ptr<Botan::TPM2::Session>& session)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:930,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:932,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:935,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:937,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:938,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:938,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:943,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:943,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:946,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:951,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:954,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:957,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:966,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:970,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:977,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:980,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:984,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:988,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:991,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:994,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:997,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:997,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:1001,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1002,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1002,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:1009,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1010,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1013,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1013,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1016,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1019,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1020,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1021,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1026,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:1033,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1033,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1040,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1042,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1043,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1043,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1044,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1049,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1052,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1053,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1053,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1054,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1058,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1060,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1061,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1066,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1067,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1068,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1073,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1075,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1077,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1078,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1081,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1082,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1083,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1085,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1093,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1094,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1098,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1103,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1103,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1106,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1108,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1110,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1112,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1116,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1117,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1120,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1123,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1124,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1127,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1127,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1128,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1128,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1134,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1135,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1135,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1138,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1138,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:1141,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1144,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1147,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1148,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1150,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1151,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1156,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1158,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1159,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1162,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1163,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1166,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1167,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1170,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1173,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1174,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1180,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1185,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1185,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1189,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1192,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1196,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1196,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1197,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1197,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1203,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1206,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1207,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1208,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1210,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1211,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1216,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1216,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1217,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1218,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1218,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1223,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1224,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1225,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1229,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1230,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 928
    functionDepth: 3
    functionLinenumber: 928
    functionLinenumberEnd: 1235
    functionName: Botan_Tests::test_tpm2_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDSA_PublicKey
    - Botan::fmt
    - auto::storage_root_key
    - test_is_true
    - Botan_Tests::bail_out
    - Botan_Tests::load_persistent
    - Botan::TPM2::Session::unauthenticated_session
    - sign_verify_roundtrip
    - Botan::value_exists
    - auto::reset
    - auto::persistent_handles
    - Botan::TPM2::PrivateKey::load_transient
    - Botan::hex_decode
    - auto::public_key_bits
    - Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
    - test_no_throw
    - std::move
    - auto::attributes
    - test_u64_eq
    - Botan_Tests::Test::mutate_vec
    - Botan_Tests::test_encoding_options
    - auto::supports_algorithm
    - test_bin_eq
    - auto::raw_public_key_bits
    - static_cast<uint8_t>
    - std::vector::size
    - auto::evict
    - Botan::PK_Signer::sign_message
    - std::vector::emplace_back
    - require
    - auto::empty
    - verify
    - Botan_Tests::get_tpm2_context
    - Botan::TPM2::Session::authenticated_session
    - Botan_Tests::load_persistent_ecc
    - Botan::EC_Group::from_name
    - auto::persist
    - sign
    - Botan::as_span_of_bytes
    - Botan_Tests::Test::new_rng
    - Botan_Tests::CHECK
    - auto::public_key
    - auto::handles
    - test_sz_eq
    - std::vector::reserve
    - Botan::PK_Verifier::verify_message
    - test_throws
    - auto::algo_name
    - auto::raw_private_key_bits
    - Botan::TPM2::PublicKey::load_transient
    - test_str_eq
    - auto::algorithm_identifier
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_ecc()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:1239,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:1241,1
    - Dst: std::make_unique<Botan::TPM2::HashFunction>
      Src: /src/botan/src/tests/test_tpm2.cpp:1247,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1248,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1256,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1256,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1261,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1261,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1269,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1270,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1274,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1275,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1280,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1281,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1286,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1287,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1288,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1292,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:1293,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1294,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_tpm2.cpp:1298,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1300,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1301,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1302,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1303,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1309,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1309,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1310,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1310,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1315,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1315,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1316,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1316,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1317,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1317,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1318,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1318,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1319,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1319,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1320,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1323,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1325,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1326,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1329,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1331,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1332,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_tpm2.cpp:1333,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1336,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1339,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1340,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1341,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1342,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1343,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1345,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1348,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1349,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1350,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1351,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1352,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tpm2.cpp:1354,1
    - Dst: Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1356,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1357,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1360,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1362,1
    - Dst: Botan::TPM2::copy_into<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1238
    functionDepth: 3
    functionLinenumber: 1238
    functionLinenumberEnd: 1367
    functionName: Botan_Tests::test_tpm2_hash
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::new_object
    - test_is_true
    - Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    - Botan_Tests::bail_out
    - Botan::TPM2::Session::unauthenticated_session
    - auto::final
    - auto::process
    - auto::copy_state
    - auto::clear
    - test_note
    - Botan::hex_decode
    - auto::name
    - auto::update
    - auto::supports_algorithm
    - test_bin_eq
    - static_cast<uint8_t>
    - std::vector::size
    - require
    - Botan_Tests::get_tpm2_context
    - Botan::HashFunction::create
    - auto::final_with_ticket
    - Botan::TPM2::copy_into<std::vector<uint8_t>>
    - Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
    - Botan_Tests::CHECK
    - test
    - auto::output_length
    - test_sz_eq
    - test_throws
    - test_str_eq
    - std::make_unique<Botan::TPM2::HashFunction>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_tpm2_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_octetstring.cpp:19,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:22,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: Botan_Tests::test_from_rng
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:31,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_Tests::test_from_hex
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_hex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_octetstring.cpp:39,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_octetstring.cpp:40,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: Botan_Tests::test_from_byte
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::size
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_byte()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:51,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:53,1
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:56,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: Botan_Tests::test_odd_parity
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::OctetString::set_odd_parity
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_odd_parity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:67,1
    - Dst: Botan::OctetString::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: Botan_Tests::test_to_string
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:83,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:86,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:104,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:105,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: Botan_Tests::test_equality
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_equality()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: Botan_Tests::test_append
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_append()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_octetstring.cpp:139,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:141,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: what
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 148
    functionName: Botan_Tests::OctetString_Tests::run
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::push_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_octetstring.cpp:19,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:22,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: Botan_Tests::test_from_rng
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:31,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_Tests::test_from_hex
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_hex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_octetstring.cpp:39,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_octetstring.cpp:40,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: Botan_Tests::test_from_byte
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::size
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_byte()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:51,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:53,1
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:56,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: Botan_Tests::test_odd_parity
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::OctetString::set_odd_parity
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_odd_parity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:67,1
    - Dst: Botan::OctetString::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: Botan_Tests::test_to_string
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:83,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:86,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:104,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:105,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: Botan_Tests::test_equality
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_equality()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: Botan_Tests::test_append
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_append()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_octetstring.cpp:139,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:141,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: what
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 148
    functionName: Botan_Tests::OctetString_Tests::run
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::push_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_octetstring.cpp:19,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:22,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: Botan_Tests::test_from_rng
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:31,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_Tests::test_from_hex
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_hex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_octetstring.cpp:39,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_octetstring.cpp:40,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: Botan_Tests::test_from_byte
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::size
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_byte()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:51,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:53,1
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:56,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: Botan_Tests::test_odd_parity
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::OctetString::set_odd_parity
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_odd_parity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:67,1
    - Dst: Botan::OctetString::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: Botan_Tests::test_to_string
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:83,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:86,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:104,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:105,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: Botan_Tests::test_equality
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_equality()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: Botan_Tests::test_append
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_append()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_octetstring.cpp:139,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:141,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: what
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 148
    functionName: Botan_Tests::OctetString_Tests::run
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::push_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_octetstring.cpp:19,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:22,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: Botan_Tests::test_from_rng
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:31,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_Tests::test_from_hex
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_hex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_octetstring.cpp:39,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_octetstring.cpp:40,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: Botan_Tests::test_from_byte
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::size
    - Botan::OctetString::size
    - Test::Result::test_sz_eq
    - auto::random_vec
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_byte()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:51,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:53,1
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:56,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: Botan_Tests::test_odd_parity
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    - Botan::OctetString::set_odd_parity
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_odd_parity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:67,1
    - Dst: Botan::OctetString::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: Botan_Tests::test_to_string
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::to_string
    - Test::Result::test_str_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:79,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:83,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:86,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:104,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:105,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_octetstring.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: Botan_Tests::test_equality
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_equality()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: Botan_Tests::test_append
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bin_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_append()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_octetstring.cpp:139,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:141,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    - Dst: what
      Src: /src/botan/src/tests/test_octetstring.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 148
    functionName: Botan_Tests::OctetString_Tests::run
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::push_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::pkcs11_lib
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:36,1
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:41,1
    - Dst: std::make_unique<LowLevel>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:42,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:45,1
    - Dst: C_Initialize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Initialize
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - std::make_unique<LowLevel>
    - static_cast<CK_FLAGS>
    - Test::pkcs11_lib
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:54,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:57,1
    - Dst: C_Finalize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: ~RAII_LowLevel() noexcept
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - C_Finalize
    - C_CloseSession
    linkageType: ''
    returnType: void
    signature: void ~RAII_LowLevel() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel(const RAII_LowLevel& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel(RAII_LowLevel&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& operator=(const RAII_LowLevel& other)'
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RAII_LowLevel
    signature: RAII_LowLevel & operator=(const RAII_LowLevel& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: '& operator=(RAII_LowLevel&& other)'
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RAII_LowLevel
    signature: RAII_LowLevel & operator=(RAII_LowLevel&& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: C_GetSlotList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:72,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:74,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - token_present
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: Botan_Tests::RAII_LowLevel::get_slots
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - C_GetSlotList
    - std::vector::empty
    linkageType: ''
    returnType: std::vector<SlotId>
    signature: std::vector<SlotId> get_slots(bool token_present) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:82,1
    - Dst: C_OpenSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:83,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session_flags
    argTypes:
    - Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: Botan_Tests::RAII_LowLevel::open_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RAII_LowLevel::get_slots
    - std::vector::at
    - C_OpenSession
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle open_session(Flags session_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:89,1
    - Dst: Botan_Tests::RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:90,1
    - Dst: Botan_Tests::RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: Botan_Tests::RAII_LowLevel::open_rw_session_with_user_login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RAII_LowLevel::open_session
    - PIN
    - Botan::PKCS11::flags
    - Botan_Tests::RAII_LowLevel::login
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle open_rw_session_with_user_login()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: Botan_Tests::RAII_LowLevel::get_session_handle
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle get_session_handle() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:104,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: Botan_Tests::RAII_LowLevel::close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - C_CloseSession
    linkageType: ''
    returnType: void
    signature: void close_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:113,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:117,1
    - Dst: C_Login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - user_type
    - ' pin'
    argTypes:
    - UserType
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: Botan_Tests::RAII_LowLevel::login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 1
    functionsReached:
    - Test_Error
    - C_Login
    linkageType: ''
    returnType: void
    signature: void login(UserType user_type, const secure_vector<uint8_t>& pin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:126,1
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: Botan_Tests::RAII_LowLevel::logout
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - C_Logout
    linkageType: ''
    returnType: void
    signature: void logout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::RAII_LowLevel::get
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::RAII_LowLevel::get
    linkageType: ''
    returnType: LowLevel
    signature: LowLevel * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan_Tests::no_op
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_op(ReturnValue* /*unused*/)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:158,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:163,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:163,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:165,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:166,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:168,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:169,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:170,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:175,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:176,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:177,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:178,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:179,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:184,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:185,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:187,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:187,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:192,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:193,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:194,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 6
    argNames:
    - ' name'
    - ' test_func'
    - ' revert_fn_name'
    - ' revert_func'
    - expect_failure
    - expected_return_value
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - std::string
    - PKCS11_BoundTestFunction
    - bool
    - ReturnValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 199
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_success
    - Test::Result::test_bool_eq
    - test_func
    - revert_func
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           const std::string&
      revert_fn_name,\n                           const PKCS11_BoundTestFunction&
      revert_func,\n                           bool expect_failure,\n                           ReturnValue
      expected_return_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' name'
    - ' test_func'
    - expect_failure
    - expected_return_value
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - bool
    - ReturnValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 1
    functionsReached:
    - std::string
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           bool expect_failure,\n
      \                          ReturnValue expected_return_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:209,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' test_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 2
    functionsReached:
    - std::string
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_function(const std::string& name, const PKCS11_BoundTestFunction&
      test_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' name'
    - ' test_func'
    - ' revert_fn_name'
    - ' revert_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           const std::string&
      revert_fn_name,\n                           const PKCS11_BoundTestFunction&
      revert_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:224,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:227,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:229,1
    - Dst: LowLevel
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: Botan_Tests::test_low_level_ctor
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_success
    - LowLevel
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_low_level_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:240,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:242,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: Botan_Tests::test_c_get_function_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::ref
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_function_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:248,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:253,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:255,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:255,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 258
    functionName: Botan_Tests::test_initialize_finalize
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - std::bind
    - std::ref
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_initialize_finalize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: Botan_Tests::test_c_get_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::bind
    - Test::Result::test_sz_ne
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:278,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:279,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:280,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:282,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:285,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:286,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:286,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:290,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:291,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:292,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:294,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:297,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:298,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:298,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:299,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 302
    functionName: Botan_Tests::test_c_get_slot_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::vector::clear
    - Botan_Tests::test_function
    - std::bind
    - Test::Result::merge
    - std::ref
    - Test::Result::test_sz_ne
    - static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*) const>
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_slot_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:306,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:309,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:313,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 317
    functionName: Botan_Tests::test_c_get_slot_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::string::size
    - Botan_Tests::test_function
    - reinterpret_cast<char*>
    - std::bind
    - Test::Result::test_sz_ne
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_slot_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:321,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:324,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:328,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 332
    functionName: Botan_Tests::test_c_get_token_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::string::size
    - Botan_Tests::test_function
    - reinterpret_cast<char*>
    - std::bind
    - Test::Result::test_sz_ne
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_token_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:337,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:340,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:342,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 345
    functionName: Botan_Tests::test_c_wait_for_slot_event
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::bind
    - Botan::PKCS11::flags
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_wait_for_slot_event()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:349,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:353,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:355,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:356,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:357,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:360,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:361,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 364
    functionName: Botan_Tests::test_c_get_mechanism_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - std::vector::at
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    - std::vector::empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_mechanism_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:368,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:371,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:371,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:375,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:376,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:377,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 381
    functionName: Botan_Tests::test_c_get_mechanism_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_mechanism_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:385,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:390,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:393,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:394,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:395,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:396,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: Botan_Tests::test_c_init_token
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - std::vector::at
    - Botan_Tests::SO_PIN
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_init_token()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:404,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:407,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:410,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:411,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:412,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:422,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:425,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:427,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:428,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:429,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:436,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 439
    functionName: Botan_Tests::test_open_close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - Test::Result::merge
    - std::ref
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_open_close_session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:443,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:447,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:451,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:451,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:453,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:454,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:454,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:462,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:462,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:463,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:466,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:468,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:468,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:469,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:472,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:476,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:477,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 480
    functionName: Botan_Tests::test_c_close_all_sessions
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - Test::Result::test_success
    - static_cast<uint32_t>
    - RAII_LowLevel::get
    - Test::Result::test_u32_eq
    - std::vector::at
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    - open_two_sessions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_close_all_sessions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:484,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:487,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:488,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:491,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:493,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:494,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:496,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:497,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:498,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:500,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 504
    functionName: Botan_Tests::test_c_get_session_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Botan::PKCS11::flags
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - std::bind
    - RAII_LowLevel::open_session
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_session_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:510,1
    - Dst: std::string_view::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:510,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:512,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:515,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:518,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:522,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:523,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' p11_low_level'
    - handle
    - user_type
    - pin
    argTypes:
    - RAII_LowLevel
    - SessionHandle
    - UserType
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 528
    functionName: Botan_Tests::login_logout_helper
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::begin
    - std::string_view::end
    - get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result login_logout_helper(const RAII_LowLevel& p11_low_level,\n
      \                                SessionHandle handle,\n                                 UserType
      user_type,\n                                 std::string_view pin)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:534,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:535,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: Botan_Tests::test_c_login_logout_security_officier
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::open_session
    - Botan_Tests::login_logout_helper
    - Botan::PKCS11::flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_login_logout_security_officier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:544,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:545,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:546,1
    - Dst: RAII_LowLevel::close_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:547,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:550,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:551,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 556
    functionName: Botan_Tests::test_c_login_logout_user
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::login_logout_helper
    - Botan::PKCS11::flags
    - Test::Result::merge
    - RAII_LowLevel::open_session
    - RAII_LowLevel::close_session
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_login_logout_user()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:562,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:563,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:568,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:570,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:572,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 576
    functionName: Botan_Tests::test_c_init_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - RAII_LowLevel::open_session
    - Botan_Tests::SO_PIN
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_init_pin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:582,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:583,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:590,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:594,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:605,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:605,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:610,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:610,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: RAII_LowLevel::logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:613,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:617,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:617,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:618,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:618,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:620,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:620,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:621,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:621,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 626
    functionName: Botan_Tests::test_c_set_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - std::string::end
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - get_pin_bind
    - Test::Result::merge
    - RAII_LowLevel::open_session
    - Botan_Tests::SO_PIN
    - std::string::begin
    - RAII_LowLevel::logout
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_set_pin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:650,1
    - Dst: get_session_handle
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p11_low_level'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: Botan_Tests::create_simple_data_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - get_session_handle
    - static_cast<Ulong>
    - auto::data
    - auto::size
    - get
    linkageType: ''
    returnType: ObjectHandle
    signature: ObjectHandle create_simple_data_object(const RAII_LowLevel& p11_low_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:657,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:663,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:664,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:666,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:667,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:667,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:671,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:672,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:672,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 675
    functionName: Botan_Tests::test_c_create_object_c_destroy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Ulong>
    - auto::data
    - auto::size
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - RAII_LowLevel::open_rw_session_with_user_login
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_create_object_c_destroy_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:680,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:681,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:688,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:689,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:695,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:696,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 702
    functionName: Botan_Tests::test_c_get_object_size
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - Test::Result::test_sz_ne
    - RAII_LowLevel::open_session
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_object_size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:706,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:708,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:710,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:711,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:714,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:717,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:720,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:723,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:726,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:726,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 734
    functionName: Botan_Tests::test_c_get_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Test::Result::test_str_eq
    - Botan_Tests::test_function
    - begin
    - std::bind
    - std::ref
    - RAII_LowLevel::open_rw_session_with_user_login
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_attribute_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::map::emplace
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:743,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:743,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' p11_low_level'
    - session_handle
    - object_handle
    - ' attribute_types'
    argTypes:
    - RAII_LowLevel
    - SessionHandle
    - ObjectHandle
    - std::vector<AttributeType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 749
    functionName: Botan_Tests::get_attribute_values
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - std::map::emplace
    - std::vector<uint8_t>
    - get
    linkageType: ''
    returnType: std::map<AttributeType, std::vector<uint8_t>>
    signature: "std::map<AttributeType, std::vector<uint8_t>> get_attribute_values(const
      RAII_LowLevel& p11_low_level,\n                                                                   SessionHandle
      session_handle,\n                                                                   ObjectHandle
      object_handle,\n                                                                   const
      std::vector<AttributeType>& attribute_types)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:754,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:755,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:767,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:770,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:773,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:776,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:780,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:782,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:783,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:785,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 791
    functionName: Botan_Tests::test_c_set_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - Botan_Tests::create_simple_data_object
    - std::string::end
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Test::Result::test_str_eq
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::get_attribute_values
    - begin
    - std::bind
    - std::ref
    - RAII_LowLevel::open_session
    - std::string::begin
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_set_attribute_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:795,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:797,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:802,1
    - Dst: const_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:803,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:803,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:807,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:815,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:819,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:821,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:822,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:824,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:827,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 831
    functionName: Botan_Tests::test_c_copy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - static_cast<CK_ULONG>
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - static_cast<CK_ATTRIBUTE_TYPE>
    - std::string::size
    - Botan_Tests::test_function
    - Botan_Tests::get_attribute_values
    - const_cast<char*>
    - begin
    - std::bind
    - Test::Result::test_str_eq
    - RAII_LowLevel::open_rw_session_with_user_login
    - std::string::c_str
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_copy_object()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:838,1
    - Dst: Botan::PKCS11::InterfaceWrapper::latest_p11_interface
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:839,1
    - Dst: auto::func_2_40
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:840,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:841,1
    - Dst: auto::func_3_0
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:842,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: auto::func_3_2
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 850
    functionName: Botan_Tests::test_load_latest_interface
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - auto::version
    - auto::func_2_40
    - Botan::PKCS11::InterfaceWrapper::latest_p11_interface
    - auto::func_3_2
    - auto::func_3_0
    - Test::Result::test_no_throw
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_load_latest_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:856,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:857,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:858,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:859,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:860,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:861,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:862,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:863,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:864,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:865,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:866,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:867,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:868,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:869,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:870,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:871,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:872,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:874,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:875,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:876,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:877,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:878,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:879,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:880,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 884
    functionName: Botan_Tests::LowLevelTests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::pkcs11_lib
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:36,1
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:41,1
    - Dst: std::make_unique<LowLevel>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:42,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:45,1
    - Dst: C_Initialize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Initialize
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - std::make_unique<LowLevel>
    - static_cast<CK_FLAGS>
    - Test::pkcs11_lib
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:54,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:57,1
    - Dst: C_Finalize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: ~RAII_LowLevel() noexcept
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - C_Finalize
    - C_CloseSession
    linkageType: ''
    returnType: void
    signature: void ~RAII_LowLevel() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel(const RAII_LowLevel& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel(RAII_LowLevel&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& operator=(const RAII_LowLevel& other)'
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RAII_LowLevel
    signature: RAII_LowLevel & operator=(const RAII_LowLevel& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: '& operator=(RAII_LowLevel&& other)'
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RAII_LowLevel
    signature: RAII_LowLevel & operator=(RAII_LowLevel&& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: C_GetSlotList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:72,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:74,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - token_present
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: Botan_Tests::RAII_LowLevel::get_slots
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 1
    functionsReached:
    - Test_Error
    - C_GetSlotList
    - std::vector::empty
    linkageType: ''
    returnType: std::vector<SlotId>
    signature: std::vector<SlotId> get_slots(bool token_present) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:82,1
    - Dst: C_OpenSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:83,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session_flags
    argTypes:
    - Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: Botan_Tests::RAII_LowLevel::open_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::RAII_LowLevel::get_slots
    - std::vector::at
    - C_OpenSession
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle open_session(Flags session_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:89,1
    - Dst: Botan_Tests::RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:90,1
    - Dst: Botan_Tests::RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: Botan_Tests::RAII_LowLevel::open_rw_session_with_user_login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RAII_LowLevel::open_session
    - PIN
    - Botan::PKCS11::flags
    - Botan_Tests::RAII_LowLevel::login
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle open_rw_session_with_user_login()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: Botan_Tests::RAII_LowLevel::get_session_handle
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle get_session_handle() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:104,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: Botan_Tests::RAII_LowLevel::close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - C_CloseSession
    linkageType: ''
    returnType: void
    signature: void close_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:113,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:117,1
    - Dst: C_Login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - user_type
    - ' pin'
    argTypes:
    - UserType
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: Botan_Tests::RAII_LowLevel::login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 2
    functionsReached:
    - Test_Error
    - C_Login
    linkageType: ''
    returnType: void
    signature: void login(UserType user_type, const secure_vector<uint8_t>& pin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:126,1
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: Botan_Tests::RAII_LowLevel::logout
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - C_Logout
    linkageType: ''
    returnType: void
    signature: void logout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::RAII_LowLevel::get
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::RAII_LowLevel::get
    linkageType: ''
    returnType: LowLevel
    signature: LowLevel * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan_Tests::no_op
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_op(ReturnValue* /*unused*/)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:158,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:163,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:163,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:165,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:166,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:168,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:169,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:170,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:175,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:176,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:177,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:178,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:179,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:184,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:185,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:187,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:187,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:192,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:193,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:194,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 6
    argNames:
    - ' name'
    - ' test_func'
    - ' revert_fn_name'
    - ' revert_func'
    - expect_failure
    - expected_return_value
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - std::string
    - PKCS11_BoundTestFunction
    - bool
    - ReturnValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 199
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 23
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_success
    - Test::Result::test_bool_eq
    - test_func
    - revert_func
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           const std::string&
      revert_fn_name,\n                           const PKCS11_BoundTestFunction&
      revert_func,\n                           bool expect_failure,\n                           ReturnValue
      expected_return_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' name'
    - ' test_func'
    - expect_failure
    - expected_return_value
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - bool
    - ReturnValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 24
    functionsReached:
    - std::string
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           bool expect_failure,\n
      \                          ReturnValue expected_return_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:209,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' test_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 25
    functionsReached:
    - std::string
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_function(const std::string& name, const PKCS11_BoundTestFunction&
      test_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' name'
    - ' test_func'
    - ' revert_fn_name'
    - ' revert_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 26
    functionsReached:
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           const std::string&
      revert_fn_name,\n                           const PKCS11_BoundTestFunction&
      revert_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:224,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:227,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:229,1
    - Dst: LowLevel
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: Botan_Tests::test_low_level_ctor
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_success
    - LowLevel
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_low_level_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:240,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:242,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: Botan_Tests::test_c_get_function_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::ref
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_function_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:248,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:253,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:255,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:255,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 258
    functionName: Botan_Tests::test_initialize_finalize
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - std::bind
    - std::ref
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_initialize_finalize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: Botan_Tests::test_c_get_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::bind
    - Test::Result::test_sz_ne
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:278,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:279,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:280,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:282,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:285,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:286,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:286,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:290,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:291,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:292,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:294,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:297,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:298,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:298,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:299,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 302
    functionName: Botan_Tests::test_c_get_slot_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::vector::clear
    - Botan_Tests::test_function
    - std::bind
    - Test::Result::merge
    - std::ref
    - Test::Result::test_sz_ne
    - static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*) const>
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_slot_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:306,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:309,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:313,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 317
    functionName: Botan_Tests::test_c_get_slot_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::string::size
    - Botan_Tests::test_function
    - reinterpret_cast<char*>
    - std::bind
    - Test::Result::test_sz_ne
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_slot_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:321,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:324,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:328,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 332
    functionName: Botan_Tests::test_c_get_token_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::string::size
    - Botan_Tests::test_function
    - reinterpret_cast<char*>
    - std::bind
    - Test::Result::test_sz_ne
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_token_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:337,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:340,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:342,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 345
    functionName: Botan_Tests::test_c_wait_for_slot_event
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::bind
    - Botan::PKCS11::flags
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_wait_for_slot_event()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:349,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:353,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:355,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:356,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:357,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:360,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:361,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 364
    functionName: Botan_Tests::test_c_get_mechanism_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - std::vector::at
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    - std::vector::empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_mechanism_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:368,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:371,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:371,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:375,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:376,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:377,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 381
    functionName: Botan_Tests::test_c_get_mechanism_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_mechanism_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:385,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:390,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:393,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:394,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:395,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:396,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: Botan_Tests::test_c_init_token
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - std::vector::at
    - Botan_Tests::SO_PIN
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_init_token()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:404,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:407,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:410,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:411,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:412,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:422,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:425,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:427,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:428,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:429,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:436,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 439
    functionName: Botan_Tests::test_open_close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - Test::Result::merge
    - std::ref
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_open_close_session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:443,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:447,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:451,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:451,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:453,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:454,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:454,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:462,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:462,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:463,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:466,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:468,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:468,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:469,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:472,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:476,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:477,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 480
    functionName: Botan_Tests::test_c_close_all_sessions
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - Test::Result::test_success
    - static_cast<uint32_t>
    - RAII_LowLevel::get
    - Test::Result::test_u32_eq
    - std::vector::at
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    - open_two_sessions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_close_all_sessions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:484,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:487,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:488,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:491,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:493,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:494,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:496,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:497,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:498,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:500,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 504
    functionName: Botan_Tests::test_c_get_session_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Botan::PKCS11::flags
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - std::bind
    - RAII_LowLevel::open_session
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_session_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:510,1
    - Dst: std::string_view::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:510,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:512,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:515,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:518,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:522,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:523,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' p11_low_level'
    - handle
    - user_type
    - pin
    argTypes:
    - RAII_LowLevel
    - SessionHandle
    - UserType
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 528
    functionName: Botan_Tests::login_logout_helper
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 2
    functionsReached:
    - std::string_view::begin
    - std::string_view::end
    - get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result login_logout_helper(const RAII_LowLevel& p11_low_level,\n
      \                                SessionHandle handle,\n                                 UserType
      user_type,\n                                 std::string_view pin)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:534,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:535,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: Botan_Tests::test_c_login_logout_security_officier
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::open_session
    - Botan_Tests::login_logout_helper
    - Botan::PKCS11::flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_login_logout_security_officier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:544,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:545,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:546,1
    - Dst: RAII_LowLevel::close_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:547,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:550,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:551,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 556
    functionName: Botan_Tests::test_c_login_logout_user
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::login_logout_helper
    - Botan::PKCS11::flags
    - Test::Result::merge
    - RAII_LowLevel::open_session
    - RAII_LowLevel::close_session
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_login_logout_user()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:562,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:563,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:568,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:570,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:572,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 576
    functionName: Botan_Tests::test_c_init_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - RAII_LowLevel::open_session
    - Botan_Tests::SO_PIN
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_init_pin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:582,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:583,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:590,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:594,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:605,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:605,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:610,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:610,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: RAII_LowLevel::logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:613,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:617,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:617,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:618,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:618,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:620,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:620,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:621,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:621,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 626
    functionName: Botan_Tests::test_c_set_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - std::string::end
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - get_pin_bind
    - Test::Result::merge
    - RAII_LowLevel::open_session
    - Botan_Tests::SO_PIN
    - std::string::begin
    - RAII_LowLevel::logout
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_set_pin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:650,1
    - Dst: get_session_handle
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p11_low_level'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: Botan_Tests::create_simple_data_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 4
    functionsReached:
    - get_session_handle
    - static_cast<Ulong>
    - auto::data
    - auto::size
    - get
    linkageType: ''
    returnType: ObjectHandle
    signature: ObjectHandle create_simple_data_object(const RAII_LowLevel& p11_low_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:657,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:663,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:664,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:666,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:667,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:667,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:671,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:672,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:672,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 675
    functionName: Botan_Tests::test_c_create_object_c_destroy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Ulong>
    - auto::data
    - auto::size
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - RAII_LowLevel::open_rw_session_with_user_login
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_create_object_c_destroy_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:680,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:681,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:688,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:689,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:695,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:696,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 702
    functionName: Botan_Tests::test_c_get_object_size
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - Test::Result::test_sz_ne
    - RAII_LowLevel::open_session
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_object_size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:706,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:708,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:710,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:711,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:714,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:717,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:720,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:723,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:726,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:726,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 734
    functionName: Botan_Tests::test_c_get_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Test::Result::test_str_eq
    - Botan_Tests::test_function
    - begin
    - std::bind
    - std::ref
    - RAII_LowLevel::open_rw_session_with_user_login
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_attribute_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::map::emplace
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:743,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:743,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' p11_low_level'
    - session_handle
    - object_handle
    - ' attribute_types'
    argTypes:
    - RAII_LowLevel
    - SessionHandle
    - ObjectHandle
    - std::vector<AttributeType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 749
    functionName: Botan_Tests::get_attribute_values
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 2
    functionsReached:
    - std::map::emplace
    - std::vector<uint8_t>
    - get
    linkageType: ''
    returnType: std::map<AttributeType, std::vector<uint8_t>>
    signature: "std::map<AttributeType, std::vector<uint8_t>> get_attribute_values(const
      RAII_LowLevel& p11_low_level,\n                                                                   SessionHandle
      session_handle,\n                                                                   ObjectHandle
      object_handle,\n                                                                   const
      std::vector<AttributeType>& attribute_types)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:754,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:755,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:767,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:770,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:773,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:776,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:780,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:782,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:783,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:785,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 791
    functionName: Botan_Tests::test_c_set_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - Botan_Tests::create_simple_data_object
    - std::string::end
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Test::Result::test_str_eq
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::get_attribute_values
    - begin
    - std::bind
    - std::ref
    - RAII_LowLevel::open_session
    - std::string::begin
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_set_attribute_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:795,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:797,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:802,1
    - Dst: const_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:803,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:803,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:807,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:815,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:819,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:821,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:822,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:824,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:827,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 831
    functionName: Botan_Tests::test_c_copy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - static_cast<CK_ULONG>
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - static_cast<CK_ATTRIBUTE_TYPE>
    - std::string::size
    - Botan_Tests::test_function
    - Botan_Tests::get_attribute_values
    - const_cast<char*>
    - begin
    - std::bind
    - Test::Result::test_str_eq
    - RAII_LowLevel::open_rw_session_with_user_login
    - std::string::c_str
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_copy_object()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:838,1
    - Dst: Botan::PKCS11::InterfaceWrapper::latest_p11_interface
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:839,1
    - Dst: auto::func_2_40
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:840,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:841,1
    - Dst: auto::func_3_0
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:842,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: auto::func_3_2
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 850
    functionName: Botan_Tests::test_load_latest_interface
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - auto::version
    - auto::func_2_40
    - Botan::PKCS11::InterfaceWrapper::latest_p11_interface
    - auto::func_3_2
    - auto::func_3_0
    - Test::Result::test_no_throw
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_load_latest_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:856,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:857,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:858,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:859,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:860,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:861,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:862,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:863,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:864,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:865,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:866,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:867,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:868,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:869,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:870,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:871,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:872,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:874,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:875,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:876,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:877,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:878,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:879,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:880,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 884
    functionName: Botan_Tests::LowLevelTests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::pkcs11_lib
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:36,1
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:41,1
    - Dst: std::make_unique<LowLevel>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:42,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:45,1
    - Dst: C_Initialize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Initialize
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - std::make_unique<LowLevel>
    - static_cast<CK_FLAGS>
    - Test::pkcs11_lib
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:54,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:57,1
    - Dst: C_Finalize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: ~RAII_LowLevel() noexcept
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - C_Finalize
    - C_CloseSession
    linkageType: ''
    returnType: void
    signature: void ~RAII_LowLevel() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel(const RAII_LowLevel& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel(RAII_LowLevel&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& operator=(const RAII_LowLevel& other)'
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RAII_LowLevel
    signature: RAII_LowLevel & operator=(const RAII_LowLevel& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: '& operator=(RAII_LowLevel&& other)'
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RAII_LowLevel
    signature: RAII_LowLevel & operator=(RAII_LowLevel&& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: C_GetSlotList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:72,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:74,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - token_present
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: Botan_Tests::RAII_LowLevel::get_slots
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 2
    functionsReached:
    - Test_Error
    - C_GetSlotList
    - std::vector::empty
    linkageType: ''
    returnType: std::vector<SlotId>
    signature: std::vector<SlotId> get_slots(bool token_present) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:82,1
    - Dst: C_OpenSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:83,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session_flags
    argTypes:
    - Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: Botan_Tests::RAII_LowLevel::open_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::RAII_LowLevel::get_slots
    - std::vector::at
    - C_OpenSession
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle open_session(Flags session_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:89,1
    - Dst: Botan_Tests::RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:90,1
    - Dst: Botan_Tests::RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: Botan_Tests::RAII_LowLevel::open_rw_session_with_user_login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RAII_LowLevel::open_session
    - PIN
    - Botan::PKCS11::flags
    - Botan_Tests::RAII_LowLevel::login
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle open_rw_session_with_user_login()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: Botan_Tests::RAII_LowLevel::get_session_handle
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle get_session_handle() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:104,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: Botan_Tests::RAII_LowLevel::close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - C_CloseSession
    linkageType: ''
    returnType: void
    signature: void close_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:113,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:117,1
    - Dst: C_Login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - user_type
    - ' pin'
    argTypes:
    - UserType
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: Botan_Tests::RAII_LowLevel::login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 3
    functionsReached:
    - Test_Error
    - C_Login
    linkageType: ''
    returnType: void
    signature: void login(UserType user_type, const secure_vector<uint8_t>& pin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:126,1
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: Botan_Tests::RAII_LowLevel::logout
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - C_Logout
    linkageType: ''
    returnType: void
    signature: void logout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::RAII_LowLevel::get
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::RAII_LowLevel::get
    linkageType: ''
    returnType: LowLevel
    signature: LowLevel * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan_Tests::no_op
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_op(ReturnValue* /*unused*/)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:158,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:163,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:163,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:165,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:166,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:168,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:169,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:170,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:175,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:176,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:177,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:178,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:179,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:184,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:185,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:187,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:187,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:192,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:193,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:194,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 6
    argNames:
    - ' name'
    - ' test_func'
    - ' revert_fn_name'
    - ' revert_func'
    - expect_failure
    - expected_return_value
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - std::string
    - PKCS11_BoundTestFunction
    - bool
    - ReturnValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 199
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 46
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_success
    - Test::Result::test_bool_eq
    - test_func
    - revert_func
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           const std::string&
      revert_fn_name,\n                           const PKCS11_BoundTestFunction&
      revert_func,\n                           bool expect_failure,\n                           ReturnValue
      expected_return_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' name'
    - ' test_func'
    - expect_failure
    - expected_return_value
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - bool
    - ReturnValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 47
    functionsReached:
    - std::string
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           bool expect_failure,\n
      \                          ReturnValue expected_return_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:209,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' test_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 48
    functionsReached:
    - std::string
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_function(const std::string& name, const PKCS11_BoundTestFunction&
      test_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' name'
    - ' test_func'
    - ' revert_fn_name'
    - ' revert_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 49
    functionsReached:
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           const std::string&
      revert_fn_name,\n                           const PKCS11_BoundTestFunction&
      revert_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:224,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:227,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:229,1
    - Dst: LowLevel
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: Botan_Tests::test_low_level_ctor
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_success
    - LowLevel
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_low_level_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:240,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:242,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: Botan_Tests::test_c_get_function_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::ref
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_function_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:248,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:253,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:255,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:255,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 258
    functionName: Botan_Tests::test_initialize_finalize
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - std::bind
    - std::ref
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_initialize_finalize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: Botan_Tests::test_c_get_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::bind
    - Test::Result::test_sz_ne
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:278,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:279,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:280,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:282,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:285,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:286,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:286,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:290,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:291,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:292,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:294,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:297,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:298,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:298,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:299,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 302
    functionName: Botan_Tests::test_c_get_slot_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::vector::clear
    - Botan_Tests::test_function
    - std::bind
    - Test::Result::merge
    - std::ref
    - Test::Result::test_sz_ne
    - static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*) const>
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_slot_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:306,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:309,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:313,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 317
    functionName: Botan_Tests::test_c_get_slot_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::string::size
    - Botan_Tests::test_function
    - reinterpret_cast<char*>
    - std::bind
    - Test::Result::test_sz_ne
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_slot_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:321,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:324,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:328,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 332
    functionName: Botan_Tests::test_c_get_token_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::string::size
    - Botan_Tests::test_function
    - reinterpret_cast<char*>
    - std::bind
    - Test::Result::test_sz_ne
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_token_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:337,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:340,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:342,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 345
    functionName: Botan_Tests::test_c_wait_for_slot_event
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::bind
    - Botan::PKCS11::flags
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_wait_for_slot_event()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:349,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:353,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:355,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:356,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:357,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:360,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:361,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 364
    functionName: Botan_Tests::test_c_get_mechanism_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - std::vector::at
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    - std::vector::empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_mechanism_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:368,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:371,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:371,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:375,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:376,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:377,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 381
    functionName: Botan_Tests::test_c_get_mechanism_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_mechanism_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:385,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:390,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:393,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:394,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:395,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:396,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: Botan_Tests::test_c_init_token
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - std::vector::at
    - Botan_Tests::SO_PIN
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_init_token()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:404,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:407,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:410,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:411,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:412,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:422,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:425,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:427,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:428,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:429,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:436,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 439
    functionName: Botan_Tests::test_open_close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - Test::Result::merge
    - std::ref
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_open_close_session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:443,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:447,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:451,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:451,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:453,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:454,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:454,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:462,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:462,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:463,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:466,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:468,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:468,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:469,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:472,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:476,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:477,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 480
    functionName: Botan_Tests::test_c_close_all_sessions
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - Test::Result::test_success
    - static_cast<uint32_t>
    - RAII_LowLevel::get
    - Test::Result::test_u32_eq
    - std::vector::at
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    - open_two_sessions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_close_all_sessions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:484,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:487,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:488,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:491,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:493,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:494,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:496,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:497,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:498,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:500,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 504
    functionName: Botan_Tests::test_c_get_session_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Botan::PKCS11::flags
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - std::bind
    - RAII_LowLevel::open_session
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_session_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:510,1
    - Dst: std::string_view::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:510,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:512,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:515,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:518,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:522,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:523,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' p11_low_level'
    - handle
    - user_type
    - pin
    argTypes:
    - RAII_LowLevel
    - SessionHandle
    - UserType
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 528
    functionName: Botan_Tests::login_logout_helper
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 4
    functionsReached:
    - std::string_view::begin
    - std::string_view::end
    - get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result login_logout_helper(const RAII_LowLevel& p11_low_level,\n
      \                                SessionHandle handle,\n                                 UserType
      user_type,\n                                 std::string_view pin)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:534,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:535,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: Botan_Tests::test_c_login_logout_security_officier
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::open_session
    - Botan_Tests::login_logout_helper
    - Botan::PKCS11::flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_login_logout_security_officier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:544,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:545,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:546,1
    - Dst: RAII_LowLevel::close_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:547,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:550,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:551,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 556
    functionName: Botan_Tests::test_c_login_logout_user
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::login_logout_helper
    - Botan::PKCS11::flags
    - Test::Result::merge
    - RAII_LowLevel::open_session
    - RAII_LowLevel::close_session
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_login_logout_user()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:562,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:563,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:568,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:570,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:572,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 576
    functionName: Botan_Tests::test_c_init_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - RAII_LowLevel::open_session
    - Botan_Tests::SO_PIN
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_init_pin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:582,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:583,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:590,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:594,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:605,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:605,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:610,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:610,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: RAII_LowLevel::logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:613,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:617,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:617,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:618,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:618,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:620,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:620,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:621,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:621,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 626
    functionName: Botan_Tests::test_c_set_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - std::string::end
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - get_pin_bind
    - Test::Result::merge
    - RAII_LowLevel::open_session
    - Botan_Tests::SO_PIN
    - std::string::begin
    - RAII_LowLevel::logout
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_set_pin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:650,1
    - Dst: get_session_handle
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p11_low_level'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: Botan_Tests::create_simple_data_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 8
    functionsReached:
    - get_session_handle
    - static_cast<Ulong>
    - auto::data
    - auto::size
    - get
    linkageType: ''
    returnType: ObjectHandle
    signature: ObjectHandle create_simple_data_object(const RAII_LowLevel& p11_low_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:657,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:663,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:664,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:666,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:667,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:667,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:671,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:672,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:672,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 675
    functionName: Botan_Tests::test_c_create_object_c_destroy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Ulong>
    - auto::data
    - auto::size
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - RAII_LowLevel::open_rw_session_with_user_login
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_create_object_c_destroy_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:680,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:681,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:688,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:689,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:695,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:696,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 702
    functionName: Botan_Tests::test_c_get_object_size
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - Test::Result::test_sz_ne
    - RAII_LowLevel::open_session
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_object_size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:706,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:708,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:710,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:711,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:714,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:717,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:720,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:723,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:726,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:726,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 734
    functionName: Botan_Tests::test_c_get_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Test::Result::test_str_eq
    - Botan_Tests::test_function
    - begin
    - std::bind
    - std::ref
    - RAII_LowLevel::open_rw_session_with_user_login
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_attribute_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::map::emplace
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:743,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:743,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' p11_low_level'
    - session_handle
    - object_handle
    - ' attribute_types'
    argTypes:
    - RAII_LowLevel
    - SessionHandle
    - ObjectHandle
    - std::vector<AttributeType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 749
    functionName: Botan_Tests::get_attribute_values
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 4
    functionsReached:
    - std::map::emplace
    - std::vector<uint8_t>
    - get
    linkageType: ''
    returnType: std::map<AttributeType, std::vector<uint8_t>>
    signature: "std::map<AttributeType, std::vector<uint8_t>> get_attribute_values(const
      RAII_LowLevel& p11_low_level,\n                                                                   SessionHandle
      session_handle,\n                                                                   ObjectHandle
      object_handle,\n                                                                   const
      std::vector<AttributeType>& attribute_types)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:754,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:755,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:767,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:770,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:773,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:776,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:780,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:782,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:783,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:785,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 791
    functionName: Botan_Tests::test_c_set_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - Botan_Tests::create_simple_data_object
    - std::string::end
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Test::Result::test_str_eq
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::get_attribute_values
    - begin
    - std::bind
    - std::ref
    - RAII_LowLevel::open_session
    - std::string::begin
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_set_attribute_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:795,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:797,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:802,1
    - Dst: const_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:803,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:803,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:807,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:815,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:819,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:821,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:822,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:824,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:827,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 831
    functionName: Botan_Tests::test_c_copy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - static_cast<CK_ULONG>
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - static_cast<CK_ATTRIBUTE_TYPE>
    - std::string::size
    - Botan_Tests::test_function
    - Botan_Tests::get_attribute_values
    - const_cast<char*>
    - begin
    - std::bind
    - Test::Result::test_str_eq
    - RAII_LowLevel::open_rw_session_with_user_login
    - std::string::c_str
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_copy_object()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:838,1
    - Dst: Botan::PKCS11::InterfaceWrapper::latest_p11_interface
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:839,1
    - Dst: auto::func_2_40
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:840,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:841,1
    - Dst: auto::func_3_0
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:842,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: auto::func_3_2
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 850
    functionName: Botan_Tests::test_load_latest_interface
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - auto::version
    - auto::func_2_40
    - Botan::PKCS11::InterfaceWrapper::latest_p11_interface
    - auto::func_3_2
    - auto::func_3_0
    - Test::Result::test_no_throw
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_load_latest_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:856,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:857,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:858,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:859,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:860,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:861,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:862,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:863,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:864,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:865,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:866,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:867,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:868,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:869,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:870,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:871,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:872,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:874,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:875,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:876,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:877,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:878,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:879,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:880,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 884
    functionName: Botan_Tests::LowLevelTests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::pkcs11_lib
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:36,1
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:41,1
    - Dst: std::make_unique<LowLevel>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:42,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:45,1
    - Dst: C_Initialize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Initialize
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - std::make_unique<LowLevel>
    - static_cast<CK_FLAGS>
    - Test::pkcs11_lib
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:54,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:57,1
    - Dst: C_Finalize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: ~RAII_LowLevel() noexcept
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - C_Finalize
    - C_CloseSession
    linkageType: ''
    returnType: void
    signature: void ~RAII_LowLevel() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel(const RAII_LowLevel& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel(RAII_LowLevel&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& operator=(const RAII_LowLevel& other)'
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RAII_LowLevel
    signature: RAII_LowLevel & operator=(const RAII_LowLevel& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: '& operator=(RAII_LowLevel&& other)'
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RAII_LowLevel
    signature: RAII_LowLevel & operator=(RAII_LowLevel&& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: C_GetSlotList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:72,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:74,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - token_present
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: Botan_Tests::RAII_LowLevel::get_slots
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 3
    functionsReached:
    - Test_Error
    - C_GetSlotList
    - std::vector::empty
    linkageType: ''
    returnType: std::vector<SlotId>
    signature: std::vector<SlotId> get_slots(bool token_present) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:82,1
    - Dst: C_OpenSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:83,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session_flags
    argTypes:
    - Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: Botan_Tests::RAII_LowLevel::open_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::RAII_LowLevel::get_slots
    - std::vector::at
    - C_OpenSession
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle open_session(Flags session_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:89,1
    - Dst: Botan_Tests::RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:90,1
    - Dst: Botan_Tests::RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: Botan_Tests::RAII_LowLevel::open_rw_session_with_user_login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RAII_LowLevel::open_session
    - PIN
    - Botan::PKCS11::flags
    - Botan_Tests::RAII_LowLevel::login
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle open_rw_session_with_user_login()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: Botan_Tests::RAII_LowLevel::get_session_handle
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: SessionHandle
    signature: SessionHandle get_session_handle() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:104,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: Botan_Tests::RAII_LowLevel::close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - C_CloseSession
    linkageType: ''
    returnType: void
    signature: void close_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:113,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:117,1
    - Dst: C_Login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - user_type
    - ' pin'
    argTypes:
    - UserType
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: Botan_Tests::RAII_LowLevel::login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 4
    functionsReached:
    - Test_Error
    - C_Login
    linkageType: ''
    returnType: void
    signature: void login(UserType user_type, const secure_vector<uint8_t>& pin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:126,1
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: Botan_Tests::RAII_LowLevel::logout
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - C_Logout
    linkageType: ''
    returnType: void
    signature: void logout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_Tests::RAII_LowLevel::get
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::RAII_LowLevel::get
    linkageType: ''
    returnType: LowLevel
    signature: LowLevel * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan_Tests::no_op
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_op(ReturnValue* /*unused*/)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:158,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:163,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:163,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:165,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:166,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:168,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:169,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:170,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:175,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:176,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:177,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:178,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:179,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:184,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:185,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:187,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:187,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:189,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:192,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:193,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:194,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 6
    argNames:
    - ' name'
    - ' test_func'
    - ' revert_fn_name'
    - ' revert_func'
    - expect_failure
    - expected_return_value
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - std::string
    - PKCS11_BoundTestFunction
    - bool
    - ReturnValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 199
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 69
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_success
    - Test::Result::test_bool_eq
    - test_func
    - revert_func
    - Test::Result::test_throws
    - Test::Result::test_u32_eq
    - empty
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           const std::string&
      revert_fn_name,\n                           const PKCS11_BoundTestFunction&
      revert_func,\n                           bool expect_failure,\n                           ReturnValue
      expected_return_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' name'
    - ' test_func'
    - expect_failure
    - expected_return_value
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - bool
    - ReturnValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 70
    functionsReached:
    - std::string
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           bool expect_failure,\n
      \                          ReturnValue expected_return_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:209,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' test_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 71
    functionsReached:
    - std::string
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_function(const std::string& name, const PKCS11_BoundTestFunction&
      test_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' name'
    - ' test_func'
    - ' revert_fn_name'
    - ' revert_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 72
    functionsReached:
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_function(const std::string& name,\n                           const
      PKCS11_BoundTestFunction& test_func,\n                           const std::string&
      revert_fn_name,\n                           const PKCS11_BoundTestFunction&
      revert_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:224,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:227,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:229,1
    - Dst: LowLevel
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: Botan_Tests::test_low_level_ctor
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_success
    - LowLevel
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_low_level_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:240,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:242,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: Botan_Tests::test_c_get_function_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - std::bind
    - std::ref
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_function_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:248,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:253,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:255,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:255,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 258
    functionName: Botan_Tests::test_initialize_finalize
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - std::bind
    - std::ref
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_initialize_finalize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:265,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: Botan_Tests::test_c_get_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::bind
    - Test::Result::test_sz_ne
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:278,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:279,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:280,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:282,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:285,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:286,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:286,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:290,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:291,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:292,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:294,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:297,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:298,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:298,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:299,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 302
    functionName: Botan_Tests::test_c_get_slot_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::vector::clear
    - Botan_Tests::test_function
    - std::bind
    - Test::Result::merge
    - std::ref
    - Test::Result::test_sz_ne
    - static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*) const>
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_slot_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:306,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:309,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:311,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:313,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 317
    functionName: Botan_Tests::test_c_get_slot_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::string::size
    - Botan_Tests::test_function
    - reinterpret_cast<char*>
    - std::bind
    - Test::Result::test_sz_ne
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_slot_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:321,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:324,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:326,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:328,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 332
    functionName: Botan_Tests::test_c_get_token_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::string::size
    - Botan_Tests::test_function
    - reinterpret_cast<char*>
    - std::bind
    - Test::Result::test_sz_ne
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_token_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:337,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:340,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:342,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 345
    functionName: Botan_Tests::test_c_wait_for_slot_event
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - std::bind
    - Botan::PKCS11::flags
    - Botan_Tests::test_function
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_wait_for_slot_event()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:349,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:353,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:355,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:356,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:357,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:360,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:361,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 364
    functionName: Botan_Tests::test_c_get_mechanism_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - std::vector::at
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    - std::vector::empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_mechanism_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:368,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:371,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:371,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:375,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:376,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:377,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 381
    functionName: Botan_Tests::test_c_get_mechanism_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_mechanism_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:385,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:390,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:393,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:394,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:395,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:396,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: Botan_Tests::test_c_init_token
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - std::vector::at
    - Botan_Tests::SO_PIN
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_init_token()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:404,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:407,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:410,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:411,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:412,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:420,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:422,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:425,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:427,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:428,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:429,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:436,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 439
    functionName: Botan_Tests::test_open_close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - Test::Result::merge
    - std::ref
    - std::vector::at
    - RAII_LowLevel::get_slots
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_open_close_session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:443,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:447,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:451,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:451,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:453,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:454,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:454,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:462,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:462,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:463,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:466,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:468,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:468,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:469,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:472,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:476,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:477,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 480
    functionName: Botan_Tests::test_c_close_all_sessions
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - Test::Result::test_success
    - static_cast<uint32_t>
    - RAII_LowLevel::get
    - Test::Result::test_u32_eq
    - std::vector::at
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    - open_two_sessions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_close_all_sessions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::get_slots
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:484,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:487,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:488,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:491,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:493,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:494,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:496,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:497,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:498,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:500,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 504
    functionName: Botan_Tests::test_c_get_session_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Botan::PKCS11::flags
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - std::bind
    - RAII_LowLevel::open_session
    - RAII_LowLevel::get_slots
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_session_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:510,1
    - Dst: std::string_view::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:510,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:512,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:515,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:518,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:522,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:523,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' p11_low_level'
    - handle
    - user_type
    - pin
    argTypes:
    - RAII_LowLevel
    - SessionHandle
    - UserType
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 528
    functionName: Botan_Tests::login_logout_helper
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 6
    functionsReached:
    - std::string_view::begin
    - std::string_view::end
    - get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result login_logout_helper(const RAII_LowLevel& p11_low_level,\n
      \                                SessionHandle handle,\n                                 UserType
      user_type,\n                                 std::string_view pin)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:534,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:535,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: Botan_Tests::test_c_login_logout_security_officier
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::open_session
    - Botan_Tests::login_logout_helper
    - Botan::PKCS11::flags
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_login_logout_security_officier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:544,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:545,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:546,1
    - Dst: RAII_LowLevel::close_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:547,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:550,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:551,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 556
    functionName: Botan_Tests::test_c_login_logout_user
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::login_logout_helper
    - Botan::PKCS11::flags
    - Test::Result::merge
    - RAII_LowLevel::open_session
    - RAII_LowLevel::close_session
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_login_logout_user()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:562,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:563,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:568,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:570,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:572,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 576
    functionName: Botan_Tests::test_c_init_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - RAII_LowLevel::open_session
    - Botan_Tests::SO_PIN
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_init_pin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:582,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:583,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:590,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:594,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:602,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:605,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:605,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:610,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:610,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: RAII_LowLevel::logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:613,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:617,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:617,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:618,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:618,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:620,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:620,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:621,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:621,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 626
    functionName: Botan_Tests::test_c_set_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - std::string::end
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - get_pin_bind
    - Test::Result::merge
    - RAII_LowLevel::open_session
    - Botan_Tests::SO_PIN
    - std::string::begin
    - RAII_LowLevel::logout
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_set_pin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:650,1
    - Dst: get_session_handle
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p11_low_level'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: Botan_Tests::create_simple_data_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 12
    functionsReached:
    - get_session_handle
    - static_cast<Ulong>
    - auto::data
    - auto::size
    - get
    linkageType: ''
    returnType: ObjectHandle
    signature: ObjectHandle create_simple_data_object(const RAII_LowLevel& p11_low_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:657,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:663,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:664,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:666,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:667,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:667,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:671,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:672,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:672,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 675
    functionName: Botan_Tests::test_c_create_object_c_destroy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Ulong>
    - auto::data
    - auto::size
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - std::bind
    - std::ref
    - RAII_LowLevel::open_rw_session_with_user_login
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_create_object_c_destroy_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:680,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:681,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:688,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:689,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:695,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:696,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 702
    functionName: Botan_Tests::test_c_get_object_size
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - std::bind
    - Test::Result::test_sz_ne
    - RAII_LowLevel::open_session
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_object_size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:706,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:708,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:710,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:711,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:714,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:717,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:720,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:723,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:726,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:726,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 734
    functionName: Botan_Tests::test_c_get_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Test::Result::test_str_eq
    - Botan_Tests::test_function
    - begin
    - std::bind
    - std::ref
    - RAII_LowLevel::open_rw_session_with_user_login
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_get_attribute_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::map::emplace
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:743,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:743,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' p11_low_level'
    - session_handle
    - object_handle
    - ' attribute_types'
    argTypes:
    - RAII_LowLevel
    - SessionHandle
    - ObjectHandle
    - std::vector<AttributeType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 749
    functionName: Botan_Tests::get_attribute_values
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 6
    functionsReached:
    - std::map::emplace
    - std::vector<uint8_t>
    - get
    linkageType: ''
    returnType: std::map<AttributeType, std::vector<uint8_t>>
    signature: "std::map<AttributeType, std::vector<uint8_t>> get_attribute_values(const
      RAII_LowLevel& p11_low_level,\n                                                                   SessionHandle
      session_handle,\n                                                                   ObjectHandle
      object_handle,\n                                                                   const
      std::vector<AttributeType>& attribute_types)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:754,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:755,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:764,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:767,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:770,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:773,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:776,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:780,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:782,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:783,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:785,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 791
    functionName: Botan_Tests::test_c_set_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - RAII_LowLevel::login
    - Botan_Tests::create_simple_data_object
    - std::string::end
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Test::Result::test_str_eq
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::get_attribute_values
    - begin
    - std::bind
    - std::ref
    - RAII_LowLevel::open_session
    - std::string::begin
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_set_attribute_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAII_LowLevel::open_rw_session_with_user_login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:795,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:797,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:802,1
    - Dst: const_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:803,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:803,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:807,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:815,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:819,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:821,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:822,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:824,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:827,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 831
    functionName: Botan_Tests::test_c_copy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - static_cast<CK_ULONG>
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::get
    - static_cast<CK_ATTRIBUTE_TYPE>
    - std::string::size
    - Botan_Tests::test_function
    - Botan_Tests::get_attribute_values
    - const_cast<char*>
    - begin
    - std::bind
    - Test::Result::test_str_eq
    - RAII_LowLevel::open_rw_session_with_user_login
    - std::string::c_str
    - end
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_copy_object()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:838,1
    - Dst: Botan::PKCS11::InterfaceWrapper::latest_p11_interface
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:839,1
    - Dst: auto::func_2_40
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:840,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:841,1
    - Dst: auto::func_3_0
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:842,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: auto::func_3_2
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 850
    functionName: Botan_Tests::test_load_latest_interface
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - auto::version
    - auto::func_2_40
    - Botan::PKCS11::InterfaceWrapper::latest_p11_interface
    - auto::func_3_2
    - auto::func_3_0
    - Test::Result::test_no_throw
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_load_latest_interface()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:856,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:857,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:858,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:859,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:860,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:861,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:862,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:863,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:864,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:865,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:866,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:867,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:868,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:869,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:870,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:871,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:872,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:874,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:875,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:876,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:877,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:878,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:879,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:880,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 884
    functionName: Botan_Tests::LowLevelTests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::LMS_Test::LMS_Test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LMS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_lms.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::LMS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lms.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:34,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:39,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lms.cpp:41,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:43,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:44,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey
      Src: /src/botan/src/tests/test_lms.cpp:49,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lms.cpp:51,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/tests/test_lms.cpp:51,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: auto::sign_and_get_pk
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lms.cpp:58,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lms.cpp:58,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:60,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_lms.cpp:62,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_lms.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 65
    functionName: Botan_Tests::LMS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_PublicKey::lmots_params
    - Botan::LMS_PublicKey::from_bytes_or_throw
    - auto::verify_signature
    - Botan::LMS_PublicKey::identifier
    - auto::process
    - get_req_u32
    - Botan::LMS_Message
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_Signature::from_bytes_or_throw
    - get_req_bin
    - auto::to_bytes
    - Botan::LMS_PrivateKey
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Test::Result::test_is_true
    - Botan::LMS_PublicKey
    - Botan::LMS_Seed
    - Botan::LMS_PublicKey::lms_params
    - Botan::LMS_Signature::size
    - auto::sign_and_get_pk
    - Botan::BufferSlicer::BufferSlicer
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::LMS_Test::LMS_Test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LMS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_lms.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::LMS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lms.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:34,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:39,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lms.cpp:41,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:43,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:44,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey
      Src: /src/botan/src/tests/test_lms.cpp:49,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lms.cpp:51,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/tests/test_lms.cpp:51,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: auto::sign_and_get_pk
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lms.cpp:58,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lms.cpp:58,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:60,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_lms.cpp:62,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_lms.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 65
    functionName: Botan_Tests::LMS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_PublicKey::lmots_params
    - Botan::LMS_PublicKey::from_bytes_or_throw
    - auto::verify_signature
    - Botan::LMS_PublicKey::identifier
    - auto::process
    - get_req_u32
    - Botan::LMS_Message
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_Signature::from_bytes_or_throw
    - get_req_bin
    - auto::to_bytes
    - Botan::LMS_PrivateKey
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Test::Result::test_is_true
    - Botan::LMS_PublicKey
    - Botan::LMS_Seed
    - Botan::LMS_PublicKey::lms_params
    - Botan::LMS_Signature::size
    - auto::sign_and_get_pk
    - Botan::BufferSlicer::BufferSlicer
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::LMS_Test::LMS_Test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LMS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_lms.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::LMS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lms.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:34,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:39,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lms.cpp:41,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:43,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:44,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey
      Src: /src/botan/src/tests/test_lms.cpp:49,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lms.cpp:51,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/tests/test_lms.cpp:51,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: auto::sign_and_get_pk
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lms.cpp:58,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lms.cpp:58,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:60,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_lms.cpp:62,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_lms.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 65
    functionName: Botan_Tests::LMS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_PublicKey::lmots_params
    - Botan::LMS_PublicKey::from_bytes_or_throw
    - auto::verify_signature
    - Botan::LMS_PublicKey::identifier
    - auto::process
    - get_req_u32
    - Botan::LMS_Message
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_Signature::from_bytes_or_throw
    - get_req_bin
    - auto::to_bytes
    - Botan::LMS_PrivateKey
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Test::Result::test_is_true
    - Botan::LMS_PublicKey
    - Botan::LMS_Seed
    - Botan::LMS_PublicKey::lms_params
    - Botan::LMS_Signature::size
    - auto::sign_and_get_pk
    - Botan::BufferSlicer::BufferSlicer
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::LMS_Test::LMS_Test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LMS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_lms.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::LMS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lms.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:34,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:39,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lms.cpp:41,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:43,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:44,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Botan::LMS_PublicKey
      Src: /src/botan/src/tests/test_lms.cpp:49,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lms.cpp:51,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/tests/test_lms.cpp:51,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:55,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: auto::sign_and_get_pk
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lms.cpp:58,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lms.cpp:58,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:60,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_lms.cpp:62,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_lms.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 65
    functionName: Botan_Tests::LMS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_PublicKey::lmots_params
    - Botan::LMS_PublicKey::from_bytes_or_throw
    - auto::verify_signature
    - Botan::LMS_PublicKey::identifier
    - auto::process
    - get_req_u32
    - Botan::LMS_Message
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_Signature::from_bytes_or_throw
    - get_req_bin
    - auto::to_bytes
    - Botan::LMS_PrivateKey
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Test::Result::test_is_true
    - Botan::LMS_PublicKey
    - Botan::LMS_Seed
    - Botan::LMS_PublicKey::lms_params
    - Botan::LMS_Signature::size
    - auto::sign_and_get_pk
    - Botan::BufferSlicer::BufferSlicer
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::AEAD_Tests::AEAD_Tests
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AEAD_Tests()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:33,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:37,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:42,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:45,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:45,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:48,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:49,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:50,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:54,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:55,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:56,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:60,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:64,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:67,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:67,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:69,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:69,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:72,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:73,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:76,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:77,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:78,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:82,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:82,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:86,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:89,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:95,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:98,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:101,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:102,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:103,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:106,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:106,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/tests/test_aead.cpp:109,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:110,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:111,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:114,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:115,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:118,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:119,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:121,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:123,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:127,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:128,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:133,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:134,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:135,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:144,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:147,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:151,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:152,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:154,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:156,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:162,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:167,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:168,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:170,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:176,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:178,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:179,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:182,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:187,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:188,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:189,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:191,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:194,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:195,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 99
    argCount: 7
    argNames:
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' ad'
    - ' algo'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 200
    functionName: Botan_Tests::AEAD_Tests::test_enc
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::has_keying_material
    - random_vec
    - data
    - auto::minimum_final_size
    - auto::update_granularity
    - Botan::secure_vector::reserve
    - Botan::secure_vector::erase
    - Test::Result::test_sz_eq
    - get_garbage
    - auto::reset
    - auto::process
    - Botan::secure_vector::assign
    - auto::clear
    - Botan::secure_vector::data
    - Botan::secure_vector::insert
    - auto::associated_data_requires_key
    - Botan::secure_vector::empty
    - auto::start
    - auto::name
    - auto::update
    - auto::finish
    - Botan::secure_vector::size
    - auto::default_nonce_length
    - mutate_vec
    - auto::set_associated_data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - Botan::AEAD_Mode::create
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - auto::valid_nonce_length
    - auto::set_key
    - find
    - auto::output_length
    - size
    - auto::requires_entire_message
    - end
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_enc(const std::vector<uint8_t>& key,\n                                   const
      std::vector<uint8_t>& nonce,\n                                   const std::vector<uint8_t>&
      input,\n                                   const std::vector<uint8_t>& expected,\n
      \                                  const std::vector<uint8_t>& ad,\n                                   const
      std::string& algo,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:209,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:221,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:222,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:223,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:227,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:228,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:229,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:232,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:233,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:239,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:239,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:240,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:245,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:246,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:247,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:249,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:250,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:255,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:255,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:256,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:257,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:260,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:262,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:262,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:267,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:268,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:271,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:272,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:273,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:277,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:278,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:281,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:282,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:284,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:286,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:287,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:291,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:296,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:298,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:305,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:306,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:309,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:313,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:314,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:316,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:318,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:319,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:324,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:327,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:327,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:329,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:330,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:332,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:338,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:340,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:341,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:344,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:348,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:348,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:352,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:355,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:357,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:358,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:361,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:362,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:364,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: empty
      Src: /src/botan/src/tests/test_aead.cpp:370,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:372,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:374,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:375,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:376,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:379,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:380,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:382,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:384,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:384,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:389,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:392,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:394,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:398,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:399,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:401,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:407,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:408,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:411,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:411,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:413,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:414,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 135
    argCount: 7
    argNames:
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' ad'
    - ' algo'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 419
    functionName: Botan_Tests::AEAD_Tests::test_dec
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::has_keying_material
    - random_vec
    - data
    - auto::minimum_final_size
    - auto::update_granularity
    - Botan::secure_vector::reserve
    - Botan::secure_vector::erase
    - Test::Result::test_sz_eq
    - std::vector::begin
    - get_garbage
    - auto::reset
    - auto::process
    - Botan::secure_vector::assign
    - auto::clear
    - empty
    - Botan::secure_vector::data
    - Test::Result::test_success
    - Botan::secure_vector::insert
    - std::vector::end
    - auto::associated_data_requires_key
    - auto::start
    - auto::update
    - auto::finish
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - mutate_vec
    - auto::set_associated_data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - Botan::AEAD_Mode::create
    - Test::Result::test_bin_eq
    - what
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_ultimate_garbage
    - auto::set_key
    - find
    - auto::output_length
    - size
    - auto::requires_entire_message
    - end
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_dec(const std::vector<uint8_t>& key,\n                                   const
      std::vector<uint8_t>& nonce,\n                                   const std::vector<uint8_t>&
      input,\n                                   const std::vector<uint8_t>& expected,\n
      \                                  const std::vector<uint8_t>& ad,\n                                   const
      std::string& algo,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:422,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:424,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:425,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:426,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:430,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:431,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:440,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:440,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:442,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_aead.cpp:443,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:453,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:453,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:455,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:458,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:461,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:462,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:462,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Botan_Tests::AEAD_Tests::test_enc
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    - Dst: Botan_Tests::AEAD_Tests::test_dec
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 472
    functionName: Botan_Tests::AEAD_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::AEAD_Tests::test_enc
    - auto::authenticated
    - auto::minimum_final_size
    - auto::provider
    - auto::update_granularity
    - Test::Result::test_str_not_empty
    - Test::Result::test_str_eq
    - get_opt_bin
    - Botan::AEAD_Mode::create
    - Botan_Tests::AEAD_Tests::test_dec
    - Test::Result::merge
    - Test::Result::test_sz_eq
    - Botan_Tests::AEAD_Tests::rng
    - auto::ideal_granularity
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::AEAD_Tests::AEAD_Tests
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AEAD_Tests()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:33,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:37,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:42,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:45,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:45,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:48,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:49,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:50,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:54,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:55,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:56,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:60,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:64,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:67,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:67,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:69,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:69,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:72,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:73,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:76,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:77,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:78,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:82,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:82,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:86,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:89,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:95,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:98,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:101,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:102,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:103,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:106,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:106,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/tests/test_aead.cpp:109,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:110,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:111,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:114,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:115,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:118,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:119,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:121,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:123,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:127,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:128,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:133,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:134,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:135,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:144,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:147,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:151,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:152,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:154,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:156,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:162,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:167,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:168,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:170,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:176,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:178,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:179,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:182,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:187,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:188,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:189,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:191,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:194,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:195,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 99
    argCount: 7
    argNames:
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' ad'
    - ' algo'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 200
    functionName: Botan_Tests::AEAD_Tests::test_enc
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 1
    functionsReached:
    - auto::has_keying_material
    - random_vec
    - data
    - auto::minimum_final_size
    - auto::update_granularity
    - Botan::secure_vector::reserve
    - Botan::secure_vector::erase
    - Test::Result::test_sz_eq
    - get_garbage
    - auto::reset
    - auto::process
    - Botan::secure_vector::assign
    - auto::clear
    - Botan::secure_vector::data
    - Botan::secure_vector::insert
    - auto::associated_data_requires_key
    - Botan::secure_vector::empty
    - auto::start
    - auto::name
    - auto::update
    - auto::finish
    - Botan::secure_vector::size
    - auto::default_nonce_length
    - mutate_vec
    - auto::set_associated_data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - Botan::AEAD_Mode::create
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - auto::valid_nonce_length
    - auto::set_key
    - find
    - auto::output_length
    - size
    - auto::requires_entire_message
    - end
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_enc(const std::vector<uint8_t>& key,\n                                   const
      std::vector<uint8_t>& nonce,\n                                   const std::vector<uint8_t>&
      input,\n                                   const std::vector<uint8_t>& expected,\n
      \                                  const std::vector<uint8_t>& ad,\n                                   const
      std::string& algo,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:209,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:221,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:222,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:223,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:227,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:228,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:229,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:232,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:233,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:239,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:239,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:240,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:245,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:246,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:247,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:249,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:250,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:255,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:255,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:256,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:257,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:260,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:262,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:262,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:267,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:268,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:271,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:272,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:273,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:277,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:278,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:281,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:282,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:284,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:286,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:287,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:291,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:296,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:298,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:305,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:306,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:309,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:313,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:314,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:316,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:318,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:319,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:324,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:327,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:327,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:329,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:330,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:332,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:338,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:340,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:341,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:344,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:348,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:348,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:352,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:355,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:357,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:358,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:361,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:362,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:364,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: empty
      Src: /src/botan/src/tests/test_aead.cpp:370,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:372,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:374,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:375,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:376,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:379,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:380,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:382,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:384,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:384,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:389,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:392,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:394,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:398,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:399,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:401,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:407,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:408,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:411,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:411,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:413,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:414,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 135
    argCount: 7
    argNames:
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' ad'
    - ' algo'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 419
    functionName: Botan_Tests::AEAD_Tests::test_dec
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 1
    functionsReached:
    - auto::has_keying_material
    - random_vec
    - data
    - auto::minimum_final_size
    - auto::update_granularity
    - Botan::secure_vector::reserve
    - Botan::secure_vector::erase
    - Test::Result::test_sz_eq
    - std::vector::begin
    - get_garbage
    - auto::reset
    - auto::process
    - Botan::secure_vector::assign
    - auto::clear
    - empty
    - Botan::secure_vector::data
    - Test::Result::test_success
    - Botan::secure_vector::insert
    - std::vector::end
    - auto::associated_data_requires_key
    - auto::start
    - auto::update
    - auto::finish
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - mutate_vec
    - auto::set_associated_data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - Botan::AEAD_Mode::create
    - Test::Result::test_bin_eq
    - what
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_ultimate_garbage
    - auto::set_key
    - find
    - auto::output_length
    - size
    - auto::requires_entire_message
    - end
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_dec(const std::vector<uint8_t>& key,\n                                   const
      std::vector<uint8_t>& nonce,\n                                   const std::vector<uint8_t>&
      input,\n                                   const std::vector<uint8_t>& expected,\n
      \                                  const std::vector<uint8_t>& ad,\n                                   const
      std::string& algo,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:422,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:424,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:425,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:426,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:430,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:431,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:440,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:440,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:442,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_aead.cpp:443,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:453,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:453,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:455,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:458,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:461,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:462,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:462,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Botan_Tests::AEAD_Tests::test_enc
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    - Dst: Botan_Tests::AEAD_Tests::test_dec
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 472
    functionName: Botan_Tests::AEAD_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::AEAD_Tests::test_enc
    - auto::authenticated
    - auto::minimum_final_size
    - auto::provider
    - auto::update_granularity
    - Test::Result::test_str_not_empty
    - Test::Result::test_str_eq
    - get_opt_bin
    - Botan::AEAD_Mode::create
    - Botan_Tests::AEAD_Tests::test_dec
    - Test::Result::merge
    - Test::Result::test_sz_eq
    - Botan_Tests::AEAD_Tests::rng
    - auto::ideal_granularity
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::AEAD_Tests::AEAD_Tests
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AEAD_Tests()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:33,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:37,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:42,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:45,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:45,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:48,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:49,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:50,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:54,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:55,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:56,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:60,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:64,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:67,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:67,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:69,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:69,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:72,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:73,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:76,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:77,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:78,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:82,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:82,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:86,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:89,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:95,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:98,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:101,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:102,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:103,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:106,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:106,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/tests/test_aead.cpp:109,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:110,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:111,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:114,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:115,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:118,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:119,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:121,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:123,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:127,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:128,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:133,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:134,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:135,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:144,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:147,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:151,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:152,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:154,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:156,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:162,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:167,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:168,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:170,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:176,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:178,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:179,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:182,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:187,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:188,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:189,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:191,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:194,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:195,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 99
    argCount: 7
    argNames:
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' ad'
    - ' algo'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 200
    functionName: Botan_Tests::AEAD_Tests::test_enc
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 2
    functionsReached:
    - auto::has_keying_material
    - random_vec
    - data
    - auto::minimum_final_size
    - auto::update_granularity
    - Botan::secure_vector::reserve
    - Botan::secure_vector::erase
    - Test::Result::test_sz_eq
    - get_garbage
    - auto::reset
    - auto::process
    - Botan::secure_vector::assign
    - auto::clear
    - Botan::secure_vector::data
    - Botan::secure_vector::insert
    - auto::associated_data_requires_key
    - Botan::secure_vector::empty
    - auto::start
    - auto::name
    - auto::update
    - auto::finish
    - Botan::secure_vector::size
    - auto::default_nonce_length
    - mutate_vec
    - auto::set_associated_data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - Botan::AEAD_Mode::create
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - auto::valid_nonce_length
    - auto::set_key
    - find
    - auto::output_length
    - size
    - auto::requires_entire_message
    - end
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_enc(const std::vector<uint8_t>& key,\n                                   const
      std::vector<uint8_t>& nonce,\n                                   const std::vector<uint8_t>&
      input,\n                                   const std::vector<uint8_t>& expected,\n
      \                                  const std::vector<uint8_t>& ad,\n                                   const
      std::string& algo,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:209,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:221,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:222,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:223,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:227,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:228,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:229,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:232,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:233,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:239,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:239,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:240,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:245,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:246,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:247,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:249,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:250,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:255,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:255,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:256,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:257,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:260,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:262,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:262,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:267,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:268,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:271,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:272,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:273,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:277,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:278,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:281,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:282,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:284,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:286,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:287,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:291,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:296,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:298,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:305,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:306,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:309,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:313,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:314,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:316,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:318,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:319,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:324,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:327,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:327,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:329,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:330,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:332,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:338,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:340,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:341,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:344,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:348,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:348,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:352,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:355,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:357,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:358,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:361,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:362,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:364,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: empty
      Src: /src/botan/src/tests/test_aead.cpp:370,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:372,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:374,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:375,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:376,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:379,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:380,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:382,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:384,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:384,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:389,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:392,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:394,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:398,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:399,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:401,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:407,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:408,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:411,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:411,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:413,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:414,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 135
    argCount: 7
    argNames:
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' ad'
    - ' algo'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 419
    functionName: Botan_Tests::AEAD_Tests::test_dec
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 2
    functionsReached:
    - auto::has_keying_material
    - random_vec
    - data
    - auto::minimum_final_size
    - auto::update_granularity
    - Botan::secure_vector::reserve
    - Botan::secure_vector::erase
    - Test::Result::test_sz_eq
    - std::vector::begin
    - get_garbage
    - auto::reset
    - auto::process
    - Botan::secure_vector::assign
    - auto::clear
    - empty
    - Botan::secure_vector::data
    - Test::Result::test_success
    - Botan::secure_vector::insert
    - std::vector::end
    - auto::associated_data_requires_key
    - auto::start
    - auto::update
    - auto::finish
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - mutate_vec
    - auto::set_associated_data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - Botan::AEAD_Mode::create
    - Test::Result::test_bin_eq
    - what
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_ultimate_garbage
    - auto::set_key
    - find
    - auto::output_length
    - size
    - auto::requires_entire_message
    - end
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_dec(const std::vector<uint8_t>& key,\n                                   const
      std::vector<uint8_t>& nonce,\n                                   const std::vector<uint8_t>&
      input,\n                                   const std::vector<uint8_t>& expected,\n
      \                                  const std::vector<uint8_t>& ad,\n                                   const
      std::string& algo,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:422,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:424,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:425,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:426,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:430,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:431,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:440,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:440,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:442,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_aead.cpp:443,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:453,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:453,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:455,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:458,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:461,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:462,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:462,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Botan_Tests::AEAD_Tests::test_enc
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    - Dst: Botan_Tests::AEAD_Tests::test_dec
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 472
    functionName: Botan_Tests::AEAD_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::AEAD_Tests::test_enc
    - auto::authenticated
    - auto::minimum_final_size
    - auto::provider
    - auto::update_granularity
    - Test::Result::test_str_not_empty
    - Test::Result::test_str_eq
    - get_opt_bin
    - Botan::AEAD_Mode::create
    - Botan_Tests::AEAD_Tests::test_dec
    - Test::Result::merge
    - Test::Result::test_sz_eq
    - Botan_Tests::AEAD_Tests::rng
    - auto::ideal_granularity
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::AEAD_Tests::AEAD_Tests
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AEAD_Tests()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:33,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:37,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:39,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:42,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:45,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:45,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:48,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:49,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:50,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:54,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:55,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:56,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:60,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:61,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:64,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:64,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:67,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:67,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:68,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:69,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:69,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:72,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:73,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:76,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:77,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:78,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:82,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:82,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:86,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:89,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:95,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:98,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:101,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:102,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:103,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:106,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:106,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/tests/test_aead.cpp:109,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:110,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:111,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:114,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:115,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:118,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:119,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:121,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:123,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:127,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:128,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:133,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:134,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:135,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:139,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:144,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:147,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:151,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:152,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:154,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:156,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:159,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:162,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:167,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:168,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:170,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:176,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:178,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:179,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:182,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:187,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:188,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:189,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:191,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:194,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:195,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:196,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 99
    argCount: 7
    argNames:
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' ad'
    - ' algo'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 200
    functionName: Botan_Tests::AEAD_Tests::test_enc
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 3
    functionsReached:
    - auto::has_keying_material
    - random_vec
    - data
    - auto::minimum_final_size
    - auto::update_granularity
    - Botan::secure_vector::reserve
    - Botan::secure_vector::erase
    - Test::Result::test_sz_eq
    - get_garbage
    - auto::reset
    - auto::process
    - Botan::secure_vector::assign
    - auto::clear
    - Botan::secure_vector::data
    - Botan::secure_vector::insert
    - auto::associated_data_requires_key
    - Botan::secure_vector::empty
    - auto::start
    - auto::name
    - auto::update
    - auto::finish
    - Botan::secure_vector::size
    - auto::default_nonce_length
    - mutate_vec
    - auto::set_associated_data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - Botan::AEAD_Mode::create
    - Test::Result::test_bin_eq
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - auto::valid_nonce_length
    - auto::set_key
    - find
    - auto::output_length
    - size
    - auto::requires_entire_message
    - end
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_enc(const std::vector<uint8_t>& key,\n                                   const
      std::vector<uint8_t>& nonce,\n                                   const std::vector<uint8_t>&
      input,\n                                   const std::vector<uint8_t>& expected,\n
      \                                  const std::vector<uint8_t>& ad,\n                                   const
      std::string& algo,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:209,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:215,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:221,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:222,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:223,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:227,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:228,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:229,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:232,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:233,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:234,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:239,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:239,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:240,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:245,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:246,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:247,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:249,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:250,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:255,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:255,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:256,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:257,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:260,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:262,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:262,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:267,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:268,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:271,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:272,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:273,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:277,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:278,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:281,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:282,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:284,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:286,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:287,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:289,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:291,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:296,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:298,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:305,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:306,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:307,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:309,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:313,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:314,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:316,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:318,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:319,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:321,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:324,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:327,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:327,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:329,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:330,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:332,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:337,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:338,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:340,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:341,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_aead.cpp:344,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:348,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:348,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:352,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_aead.cpp:353,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:355,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:357,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:358,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:361,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:362,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:364,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: empty
      Src: /src/botan/src/tests/test_aead.cpp:370,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:371,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:372,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:374,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:375,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:376,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:379,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:380,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:382,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:384,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:384,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:389,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:392,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:394,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:398,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:399,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:401,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:407,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:408,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:411,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:411,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:413,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:414,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:415,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 135
    argCount: 7
    argNames:
    - ' key'
    - ' nonce'
    - ' input'
    - ' expected'
    - ' ad'
    - ' algo'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 419
    functionName: Botan_Tests::AEAD_Tests::test_dec
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 3
    functionsReached:
    - auto::has_keying_material
    - random_vec
    - data
    - auto::minimum_final_size
    - auto::update_granularity
    - Botan::secure_vector::reserve
    - Botan::secure_vector::erase
    - Test::Result::test_sz_eq
    - std::vector::begin
    - get_garbage
    - auto::reset
    - auto::process
    - Botan::secure_vector::assign
    - auto::clear
    - empty
    - Botan::secure_vector::data
    - Test::Result::test_success
    - Botan::secure_vector::insert
    - std::vector::end
    - auto::associated_data_requires_key
    - auto::start
    - auto::update
    - auto::finish
    - Botan::secure_vector::size
    - Test::Result::test_failure
    - mutate_vec
    - auto::set_associated_data
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - Botan::AEAD_Mode::create
    - Test::Result::test_bin_eq
    - what
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_ultimate_garbage
    - auto::set_key
    - find
    - auto::output_length
    - size
    - auto::requires_entire_message
    - end
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result test_dec(const std::vector<uint8_t>& key,\n                                   const
      std::vector<uint8_t>& nonce,\n                                   const std::vector<uint8_t>&
      input,\n                                   const std::vector<uint8_t>& expected,\n
      \                                  const std::vector<uint8_t>& ad,\n                                   const
      std::string& algo,\n                                   Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:422,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:424,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:425,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:426,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:430,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:431,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:440,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:440,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:442,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_aead.cpp:443,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:450,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:451,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:453,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:453,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_aead.cpp:455,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_aead.cpp:458,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_aead.cpp:461,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:462,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:462,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Botan_Tests::AEAD_Tests::test_enc
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:465,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    - Dst: Botan_Tests::AEAD_Tests::test_dec
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 472
    functionName: Botan_Tests::AEAD_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::AEAD_Tests::test_enc
    - auto::authenticated
    - auto::minimum_final_size
    - auto::provider
    - auto::update_granularity
    - Test::Result::test_str_not_empty
    - Test::Result::test_str_eq
    - get_opt_bin
    - Botan::AEAD_Mode::create
    - Botan_Tests::AEAD_Tests::test_dec
    - Test::Result::merge
    - Test::Result::test_sz_eq
    - Botan_Tests::AEAD_Tests::rng
    - auto::ideal_granularity
    - Test::Result::test_sz_gt
    - Test::Result::test_is_true
    - get_req_bin
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_pem.cpp:24,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pem.cpp:26,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/tests/test_pem.cpp:29,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pem.cpp:31,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:33,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:35,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:38,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:39,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:43,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 48
    functionName: Botan_Tests::PEM_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pem.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_str_eq
    - Botan::PEM_Code::encode
    - Botan::PEM_Code::decode_check_label
    - Botan::PEM_Code::decode
    - Test::Result::test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_pem.cpp:24,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pem.cpp:26,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/tests/test_pem.cpp:29,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pem.cpp:31,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:33,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:35,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:38,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:39,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:43,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 48
    functionName: Botan_Tests::PEM_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pem.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_str_eq
    - Botan::PEM_Code::encode
    - Botan::PEM_Code::decode_check_label
    - Botan::PEM_Code::decode
    - Test::Result::test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_pem.cpp:24,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pem.cpp:26,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/tests/test_pem.cpp:29,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pem.cpp:31,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:33,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:35,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:38,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:39,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:43,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 48
    functionName: Botan_Tests::PEM_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pem.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_str_eq
    - Botan::PEM_Code::encode
    - Botan::PEM_Code::decode_check_label
    - Botan::PEM_Code::decode
    - Test::Result::test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_pem.cpp:24,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pem.cpp:26,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/tests/test_pem.cpp:29,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pem.cpp:31,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:33,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:35,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:38,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:39,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:43,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 48
    functionName: Botan_Tests::PEM_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pem.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_str_eq
    - Botan::PEM_Code::encode
    - Botan::PEM_Code::decode_check_label
    - Botan::PEM_Code::decode
    - Test::Result::test_throws
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: XOF_Tests::XOF_Tests
    functionSourceFile: /src/botan/src/tests/test_xof.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XOF_Tests()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xof.cpp:41,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xof.cpp:42,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_xof.cpp:43,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_xof.cpp:44,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_xof.cpp:47,1
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_xof.cpp:63,1
    - Dst: Botan::XOF::providers
      Src: /src/botan/src/tests/test_xof.cpp:63,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_xof.cpp:66,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_xof.cpp:67,1
    - Dst: std::make_unique<Botan::cSHAKE_128_XOF>
      Src: /src/botan/src/tests/test_xof.cpp:75,1
    - Dst: std::make_unique<Botan::cSHAKE_256_XOF>
      Src: /src/botan/src/tests/test_xof.cpp:78,1
    - Dst: std::make_unique<Botan::AES_256_CTR_XOF>
      Src: /src/botan/src/tests/test_xof.cpp:84,1
    - Dst: Botan::XOF::create
      Src: /src/botan/src/tests/test_xof.cpp:87,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_xof.cpp:91,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_xof.cpp:91,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_xof.cpp:95,1
    - Dst: Test::Result::test_str_not_empty
      Src: /src/botan/src/tests/test_xof.cpp:96,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_xof.cpp:97,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_xof.cpp:97,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:101,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_xof.cpp:103,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_xof.cpp:103,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_xof.cpp:104,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:104,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_xof.cpp:107,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:108,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_xof.cpp:109,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:109,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xof.cpp:110,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:110,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:110,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_xof.cpp:111,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:111,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_xof.cpp:117,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_xof.cpp:118,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:119,1
    - Dst: rng
      Src: /src/botan/src/tests/test_xof.cpp:120,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:120,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_xof.cpp:121,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xof.cpp:122,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_xof.cpp:125,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_xof.cpp:125,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_xof.cpp:126,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:127,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xof.cpp:128,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:128,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:128,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_xof.cpp:132,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_xof.cpp:133,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:133,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_xof.cpp:134,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:137,1
    - Dst: auto::output_next_byte
      Src: /src/botan/src/tests/test_xof.cpp:139,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xof.cpp:141,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_xof.cpp:145,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_xof.cpp:146,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_xof.cpp:146,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:147,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_xof.cpp:150,1
    - Dst: std::span::empty
      Src: /src/botan/src/tests/test_xof.cpp:152,1
    - Dst: min
      Src: /src/botan/src/tests/test_xof.cpp:153,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_xof.cpp:153,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:154,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_xof.cpp:154,1
    - Dst: std::span::last
      Src: /src/botan/src/tests/test_xof.cpp:155,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_xof.cpp:155,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:157,1
    - Dst: std::span::empty
      Src: /src/botan/src/tests/test_xof.cpp:159,1
    - Dst: min
      Src: /src/botan/src/tests/test_xof.cpp:160,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_xof.cpp:160,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_xof.cpp:161,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_xof.cpp:161,1
    - Dst: std::span::last
      Src: /src/botan/src/tests/test_xof.cpp:162,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_xof.cpp:162,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xof.cpp:164,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_xof.cpp:164,1
    - Dst: process_as_blocks
      Src: /src/botan/src/tests/test_xof.cpp:167,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_xof.cpp:167,1
    - Dst: process_as_blocks
      Src: /src/botan/src/tests/test_xof.cpp:168,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_xof.cpp:168,1
    - Dst: process_as_blocks
      Src: /src/botan/src/tests/test_xof.cpp:169,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_xof.cpp:169,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_xof.cpp:173,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_xof.cpp:174,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:175,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_xof.cpp:175,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:175,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_xof.cpp:176,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_xof.cpp:177,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:177,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:178,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_xof.cpp:178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:178,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:179,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_xof.cpp:179,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:179,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:179,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:180,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:180,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:181,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:181,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_xof.cpp:182,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_xof.cpp:183,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:183,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:184,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:184,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:184,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:185,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:185,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:185,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xof.cpp:186,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xof.cpp:187,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_xof.cpp:188,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_xof.cpp:189,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_xof.cpp:190,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 84
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 197
    functionName: XOF_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_xof.cpp
    functionUses: 0
    functionsReached:
    - auto::output_stdvec
    - Botan::fmt
    - auto::block_size
    - rng
    - auto::new_object
    - std::span::first
    - auto::copy_state
    - auto::clear
    - min
    - std::make_unique<Botan::cSHAKE_256_XOF>
    - Botan::XOF::create
    - std::span::size
    - Test::Result::test_str_not_empty
    - provider_filter
    - auto::start
    - auto::name
    - auto::update
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - std::vector::empty
    - std::span::empty
    - Botan::concat
    - Test::Result::test_bool_eq
    - auto::output_next_byte
    - auto::empty
    - std::make_unique<Botan::AES_256_CTR_XOF>
    - get_opt_bin
    - Test::Result::test_bin_eq
    - std::span::last
    - process_as_blocks
    - Test::Result::test_is_true
    - std::make_unique<Botan::cSHAKE_128_XOF>
    - auto::provider
    - Test::Result::test_str_eq
    - std::span
    - auto::output
    - Botan::XOF::providers
    - auto::accepts_input
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_xof.cpp:202,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_xof.cpp:205,1
    - Dst: std::make_unique<Botan::cSHAKE_128_XOF>
      Src: /src/botan/src/tests/test_xof.cpp:205,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_xof.cpp:206,1
    - Dst: std::make_unique<Botan::cSHAKE_256_XOF>
      Src: /src/botan/src/tests/test_xof.cpp:206,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xof.cpp:209,1
    - Dst: valid_salt_length
      Src: /src/botan/src/tests/test_xof.cpp:209,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_xof.cpp:210,1
    - Dst: valid_salt_length
      Src: /src/botan/src/tests/test_xof.cpp:211,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xof.cpp:212,1
    - Dst: start
      Src: /src/botan/src/tests/test_xof.cpp:212,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_xof.cpp:217,1
    - Dst: Botan::AES_256_CTR_XOF::AES_256_CTR_XOF
      Src: /src/botan/src/tests/test_xof.cpp:218,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xof.cpp:219,1
    - Dst: Botan::AES_256_CTR_XOF::start
      Src: /src/botan/src/tests/test_xof.cpp:219,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xof.cpp:220,1
    - Dst: Botan::AES_256_CTR_XOF::start
      Src: /src/botan/src/tests/test_xof.cpp:221,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_xof.cpp:221,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xof.cpp:222,1
    - Dst: Botan::AES_256_CTR_XOF::start
      Src: /src/botan/src/tests/test_xof.cpp:223,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_xof.cpp:223,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_xof.cpp:223,1
    - Dst: BOTAN_REGISTER_SERIALIZED_TEST
      Src: /src/botan/src/tests/test_xof.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 234
    functionName: XOF_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_xof.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::cSHAKE_256_XOF>
    - std::vector::push_back
    - CHECK
    - std::make_unique<Botan::cSHAKE_128_XOF>
    - Botan::AES_256_CTR_XOF::start
    - std::vector<uint8_t>
    - test_is_true
    - BOTAN_REGISTER_SERIALIZED_TEST
    - start
    - test_throws
    - Botan::AES_256_CTR_XOF::AES_256_CTR_XOF
    - valid_salt_length
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_encoding
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:27,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_errors
      Src: /src/botan/src/tests/test_dl_group.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: Botan_Tests::DL_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::DL_Group_Tests::test_dl_errors
    - Botan_Tests::DL_Group_Tests::test_dl_encoding
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:35,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/tests/test_dl_group.cpp:36,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: Botan_Tests::DL_Group_Tests::test_dl_errors
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 1
    functionsReached:
    - Botan::DL_Group::get_p
    - Test::Result::test_throws
    - Botan::DL_Group::DL_Group
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_dl_errors()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:46,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:48,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:49,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:50,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:52,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:58,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:64,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 71
    functionName: Botan_Tests::DL_Group_Tests::test_dl_encoding
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::DL_Group::from_PEM
    - auto::get_g
    - Botan::DL_Group::from_name
    - auto::get_p
    - auto::get_q
    - auto::PEM_encode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_dl_encoding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:81,1
    - Dst: Botan_Tests::DL_Generate_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:83,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:89,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:89,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:95,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:95,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:97,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:101,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:101,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:109,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:109,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:112,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:117,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:122,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:127,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:129,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:130,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:131,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:135,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:139,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_dl_group.cpp:140,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:140,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:142,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:142,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 148
    functionName: Botan_Tests::DL_Generate_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_sz_lte
    - Botan::hex_decode
    - Botan::dl_exponent_size
    - Test::Result::test_bn_eq
    - Test::Result::start_timer
    - Botan::DL_Group::get_g
    - Botan::BigInt
    - Test::Result::end_timer
    - static_cast<size_t>
    - Test::Result::test_sz_eq
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::DL_Generate_Group_Tests::rng
    - Botan::DL_Group::get_p
    - Botan::DL_Group::verify_group
    - Test::Result::test_is_true
    - Botan::DL_Group::get_q
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:169,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:173,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:175,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:175,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:176,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:176,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_dl_group.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:181,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:183,1
    - Dst: auto::source
      Src: /src/botan/src/tests/test_dl_group.cpp:183,1
    - Dst: find
      Src: /src/botan/src/tests/test_dl_group.cpp:185,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:186,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:186,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::p_bits
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: Botan_Tests::DL_Named_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 198
    functionName: Botan_Tests::DL_Named_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_enum_eq
    - Test::Result::test_bn_eq
    - Test::Result::start_timer
    - auto::source
    - find
    - auto::p_bits
    - Test::Result::end_timer
    - auto::verify_group
    - auto::get_g
    - Botan::DL_Group::from_name
    - auto::get_p
    - Botan_Tests::Test::run_long_tests
    - auto::estimated_strength
    - Botan_Tests::DL_Named_Group_Tests::rng
    - auto::get_q
    - Test::Result::test_is_true
    - Test::Result::test_bn_ne
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_encoding
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:27,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_errors
      Src: /src/botan/src/tests/test_dl_group.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: Botan_Tests::DL_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::DL_Group_Tests::test_dl_errors
    - Botan_Tests::DL_Group_Tests::test_dl_encoding
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:35,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/tests/test_dl_group.cpp:36,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: Botan_Tests::DL_Group_Tests::test_dl_errors
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 2
    functionsReached:
    - Botan::DL_Group::get_p
    - Test::Result::test_throws
    - Botan::DL_Group::DL_Group
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_dl_errors()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:46,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:48,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:49,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:50,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:52,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:58,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:64,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 71
    functionName: Botan_Tests::DL_Group_Tests::test_dl_encoding
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::DL_Group::from_PEM
    - auto::get_g
    - Botan::DL_Group::from_name
    - auto::get_p
    - auto::get_q
    - auto::PEM_encode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_dl_encoding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:81,1
    - Dst: Botan_Tests::DL_Generate_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:83,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:89,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:89,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:95,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:95,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:97,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:101,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:101,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:109,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:109,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:112,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:117,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:122,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:127,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:129,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:130,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:131,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:135,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:139,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_dl_group.cpp:140,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:140,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:142,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:142,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 148
    functionName: Botan_Tests::DL_Generate_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_sz_lte
    - Botan::hex_decode
    - Botan::dl_exponent_size
    - Test::Result::test_bn_eq
    - Test::Result::start_timer
    - Botan::DL_Group::get_g
    - Botan::BigInt
    - Test::Result::end_timer
    - static_cast<size_t>
    - Test::Result::test_sz_eq
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::DL_Generate_Group_Tests::rng
    - Botan::DL_Group::get_p
    - Botan::DL_Group::verify_group
    - Test::Result::test_is_true
    - Botan::DL_Group::get_q
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:169,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:173,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:175,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:175,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:176,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:176,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_dl_group.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:181,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:183,1
    - Dst: auto::source
      Src: /src/botan/src/tests/test_dl_group.cpp:183,1
    - Dst: find
      Src: /src/botan/src/tests/test_dl_group.cpp:185,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:186,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:186,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::p_bits
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: Botan_Tests::DL_Named_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 198
    functionName: Botan_Tests::DL_Named_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_enum_eq
    - Test::Result::test_bn_eq
    - Test::Result::start_timer
    - auto::source
    - find
    - auto::p_bits
    - Test::Result::end_timer
    - auto::verify_group
    - auto::get_g
    - Botan::DL_Group::from_name
    - auto::get_p
    - Botan_Tests::Test::run_long_tests
    - auto::estimated_strength
    - Botan_Tests::DL_Named_Group_Tests::rng
    - auto::get_q
    - Test::Result::test_is_true
    - Test::Result::test_bn_ne
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_encoding
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:27,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_errors
      Src: /src/botan/src/tests/test_dl_group.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: Botan_Tests::DL_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::DL_Group_Tests::test_dl_errors
    - Botan_Tests::DL_Group_Tests::test_dl_encoding
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:35,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/tests/test_dl_group.cpp:36,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: Botan_Tests::DL_Group_Tests::test_dl_errors
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 3
    functionsReached:
    - Botan::DL_Group::get_p
    - Test::Result::test_throws
    - Botan::DL_Group::DL_Group
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_dl_errors()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:46,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:48,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:49,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:50,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:52,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:58,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:64,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 71
    functionName: Botan_Tests::DL_Group_Tests::test_dl_encoding
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::DL_Group::from_PEM
    - auto::get_g
    - Botan::DL_Group::from_name
    - auto::get_p
    - auto::get_q
    - auto::PEM_encode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_dl_encoding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:81,1
    - Dst: Botan_Tests::DL_Generate_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:83,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:89,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:89,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:95,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:95,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:97,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:101,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:101,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:109,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:109,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:112,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:117,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:122,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:127,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:129,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:130,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:131,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:135,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:139,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_dl_group.cpp:140,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:140,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:142,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:142,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 148
    functionName: Botan_Tests::DL_Generate_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_sz_lte
    - Botan::hex_decode
    - Botan::dl_exponent_size
    - Test::Result::test_bn_eq
    - Test::Result::start_timer
    - Botan::DL_Group::get_g
    - Botan::BigInt
    - Test::Result::end_timer
    - static_cast<size_t>
    - Test::Result::test_sz_eq
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::DL_Generate_Group_Tests::rng
    - Botan::DL_Group::get_p
    - Botan::DL_Group::verify_group
    - Test::Result::test_is_true
    - Botan::DL_Group::get_q
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:169,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:173,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:175,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:175,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:176,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:176,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_dl_group.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:181,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:183,1
    - Dst: auto::source
      Src: /src/botan/src/tests/test_dl_group.cpp:183,1
    - Dst: find
      Src: /src/botan/src/tests/test_dl_group.cpp:185,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:186,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:186,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::p_bits
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: Botan_Tests::DL_Named_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 198
    functionName: Botan_Tests::DL_Named_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_enum_eq
    - Test::Result::test_bn_eq
    - Test::Result::start_timer
    - auto::source
    - find
    - auto::p_bits
    - Test::Result::end_timer
    - auto::verify_group
    - auto::get_g
    - Botan::DL_Group::from_name
    - auto::get_p
    - Botan_Tests::Test::run_long_tests
    - auto::estimated_strength
    - Botan_Tests::DL_Named_Group_Tests::rng
    - auto::get_q
    - Test::Result::test_is_true
    - Test::Result::test_bn_ne
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_encoding
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:27,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_errors
      Src: /src/botan/src/tests/test_dl_group.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: Botan_Tests::DL_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::DL_Group_Tests::test_dl_errors
    - Botan_Tests::DL_Group_Tests::test_dl_encoding
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:35,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/tests/test_dl_group.cpp:36,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: Botan_Tests::DL_Group_Tests::test_dl_errors
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 4
    functionsReached:
    - Botan::DL_Group::get_p
    - Test::Result::test_throws
    - Botan::DL_Group::DL_Group
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_dl_errors()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:46,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:48,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:49,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:50,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:52,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:56,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:58,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:62,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:64,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:66,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 71
    functionName: Botan_Tests::DL_Group_Tests::test_dl_encoding
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::DL_Group::from_PEM
    - auto::get_g
    - Botan::DL_Group::from_name
    - auto::get_p
    - auto::get_q
    - auto::PEM_encode
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_dl_encoding()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:81,1
    - Dst: Botan_Tests::DL_Generate_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:83,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:89,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:89,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:95,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:95,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:97,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:101,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:101,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:109,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:109,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:112,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:117,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:122,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:127,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:129,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:130,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:131,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:135,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:139,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_dl_group.cpp:140,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:140,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:142,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:142,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 148
    functionName: Botan_Tests::DL_Generate_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_sz_lte
    - Botan::hex_decode
    - Botan::dl_exponent_size
    - Test::Result::test_bn_eq
    - Test::Result::start_timer
    - Botan::DL_Group::get_g
    - Botan::BigInt
    - Test::Result::end_timer
    - static_cast<size_t>
    - Test::Result::test_sz_eq
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::DL_Generate_Group_Tests::rng
    - Botan::DL_Group::get_p
    - Botan::DL_Group::verify_group
    - Test::Result::test_is_true
    - Botan::DL_Group::get_q
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:169,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:173,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:175,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:175,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:176,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:176,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_dl_group.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:181,1
    - Dst: Test::Result::test_enum_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:183,1
    - Dst: auto::source
      Src: /src/botan/src/tests/test_dl_group.cpp:183,1
    - Dst: find
      Src: /src/botan/src/tests/test_dl_group.cpp:185,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:186,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:186,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::p_bits
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: Botan_Tests::DL_Named_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:192,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 198
    functionName: Botan_Tests::DL_Named_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_enum_eq
    - Test::Result::test_bn_eq
    - Test::Result::start_timer
    - auto::source
    - find
    - auto::p_bits
    - Test::Result::end_timer
    - auto::verify_group
    - auto::get_g
    - Botan::DL_Group::from_name
    - auto::get_p
    - Botan_Tests::Test::run_long_tests
    - auto::estimated_strength
    - Botan_Tests::DL_Named_Group_Tests::rng
    - auto::get_q
    - Test::Result::test_is_true
    - Test::Result::test_bn_ne
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:25,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:26,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:26,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:27,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:30,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:31,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:31,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - Test::Result::test_throws
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:46,1
    - Dst: Botan_Tests::get_dn_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:46,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_certstor_system.cpp:47,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:52,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:53,1
    - Dst: Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:53,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:54,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:58,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:58,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1_with_unmatching_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - find_cert
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
    - Test::Result::test_opt_not_null
    - Botan_Tests::get_dn_of_cert_with_different_key_id
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - what
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1_with_unmatching_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:72,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:74,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:75,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:75,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:76,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:79,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:80,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:80,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn(Botan::Certificate_Store& certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_utf8_dn_alternatives
      Src: /src/botan/src/tests/test_certstor_system.cpp:94,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:98,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:100,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:101,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:102,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:102,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:108,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:116,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:117,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:120,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 126
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - find_cert
    - Test::Result::test_note
    - Test::Result::start_timer
    - auto::size
    - Test::Result::end_timer
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_utf8_dn_alternatives
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_utf8_subject_dn(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:132,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:134,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:135,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:135,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:136,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:139,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:140,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:140,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn_and_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:154,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:156,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:157,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:157,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:158,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:162,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 171
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certs_by_subject_dn_and_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:177,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:179,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:180,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:180,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:181,1
    - Dst: sort
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:185,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:191,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:191,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:192,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:193,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:193,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 201
    functionName: Botan_Tests::find_all_certs_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - auto::begin
    - Test::Result::test_is_true
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - std::vector<uint8_t>
    - sort
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - auto::end
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_certs_by_subject_dn(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:207,1
    - Dst: all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:208,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:209,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:212,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_system.cpp:213,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:221,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 225
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::empty
    - auto::cend
    - std::find_if
    - auto::cbegin
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - all_subjects
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_subjects(Botan::Certificate_Store& certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:231,1
    - Dst: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:233,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:236,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:237,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:237,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 1
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan_Tests::get_serial_number
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_opt_not_null
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_issuer_dn_and_serial_number(Botan::Certificate_Store&
      certstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_unknown_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:252,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:253,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:255,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:256,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:257,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:258,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:259,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:262,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - find_cert
    - Botan_Tests::get_unknown_dn
    - Botan_Tests::get_unknown_key_id
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::empty
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result no_certificate_matches(Botan::Certificate_Store& certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_skewed_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:277,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:279,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:280,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:280,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:281,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:281,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:282,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:286,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 295
    functionName: Botan_Tests::certificate_matching_with_dn_normalization
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Botan_Tests::get_skewed_dn
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector<uint8_t>
    - auto::empty
    - Test::Result::test_str_eq
    - auto::subject_dn
    - auto::has_value
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result certificate_matching_with_dn_normalization(Botan::Certificate_Store&
      certstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:307,1
    - Dst: std::make_unique<Botan::System_Certificate_Store>
      Src: /src/botan/src/tests/test_certstor_system.cpp:308,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:309,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:321,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:323,1
    - Dst: find_certificate_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:323,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:324,1
    - Dst: find_certificate_by_pubkey_sha1_with_unmatching_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:324,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:325,1
    - Dst: find_cert_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:325,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:326,1
    - Dst: find_cert_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:326,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:327,1
    - Dst: find_all_certs_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:327,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:328,1
    - Dst: find_certs_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:328,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:329,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:329,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:330,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_system.cpp:330,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:331,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:331,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:332,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:332,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: certificate_matching_with_dn_normalization
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 338
    functionName: Botan_Tests::Certstor_System_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - find_certs_by_subject_dn_and_key_id
    - find_cert_by_utf8_subject_dn
    - find_cert_by_subject_dn
    - find_certificate_by_pubkey_sha1_with_unmatching_key_id
    - find_cert_by_issuer_dn_and_serial_number
    - find_all_certs_by_subject_dn
    - Test::Result::test_success
    - no_certificate_matches
    - std::make_unique<Botan::System_Certificate_Store>
    - certificate_matching_with_dn_normalization
    - Test::Result::test_failure
    - Test::Result::end_timer
    - Test::Result::start_timer
    - find_certificate_by_pubkey_sha1
    - find_cert_by_subject_dn_and_key_id
    - what
    - Test::Result::test_note
    - std::vector::push_back
    - find_all_subjects
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:25,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:26,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:26,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:27,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:30,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:31,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:31,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - Test::Result::test_throws
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:46,1
    - Dst: Botan_Tests::get_dn_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:46,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_certstor_system.cpp:47,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:52,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:53,1
    - Dst: Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:53,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:54,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:58,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:58,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1_with_unmatching_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - find_cert
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
    - Test::Result::test_opt_not_null
    - Botan_Tests::get_dn_of_cert_with_different_key_id
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - what
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1_with_unmatching_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:72,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:74,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:75,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:75,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:76,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:79,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:80,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:80,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn(Botan::Certificate_Store& certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_utf8_dn_alternatives
      Src: /src/botan/src/tests/test_certstor_system.cpp:94,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:98,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:100,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:101,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:102,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:102,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:108,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:116,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:117,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:120,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 126
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - find_cert
    - Test::Result::test_note
    - Test::Result::start_timer
    - auto::size
    - Test::Result::end_timer
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_utf8_dn_alternatives
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_utf8_subject_dn(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:132,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:134,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:135,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:135,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:136,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:139,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:140,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:140,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn_and_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:154,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:156,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:157,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:157,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:158,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:162,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 171
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certs_by_subject_dn_and_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:177,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:179,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:180,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:180,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:181,1
    - Dst: sort
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:185,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:191,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:191,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:192,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:193,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:193,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 201
    functionName: Botan_Tests::find_all_certs_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - auto::begin
    - Test::Result::test_is_true
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - std::vector<uint8_t>
    - sort
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - auto::end
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_certs_by_subject_dn(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:207,1
    - Dst: all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:208,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:209,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:212,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_system.cpp:213,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:221,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 225
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::empty
    - auto::cend
    - std::find_if
    - auto::cbegin
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - all_subjects
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_subjects(Botan::Certificate_Store& certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:231,1
    - Dst: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:233,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:236,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:237,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:237,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 2
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan_Tests::get_serial_number
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_opt_not_null
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_issuer_dn_and_serial_number(Botan::Certificate_Store&
      certstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_unknown_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:252,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:253,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:255,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:256,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:257,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:258,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:259,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:262,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - find_cert
    - Botan_Tests::get_unknown_dn
    - Botan_Tests::get_unknown_key_id
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::empty
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result no_certificate_matches(Botan::Certificate_Store& certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_skewed_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:277,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:279,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:280,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:280,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:281,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:281,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:282,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:286,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 295
    functionName: Botan_Tests::certificate_matching_with_dn_normalization
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Botan_Tests::get_skewed_dn
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector<uint8_t>
    - auto::empty
    - Test::Result::test_str_eq
    - auto::subject_dn
    - auto::has_value
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result certificate_matching_with_dn_normalization(Botan::Certificate_Store&
      certstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:307,1
    - Dst: std::make_unique<Botan::System_Certificate_Store>
      Src: /src/botan/src/tests/test_certstor_system.cpp:308,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:309,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:321,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:323,1
    - Dst: find_certificate_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:323,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:324,1
    - Dst: find_certificate_by_pubkey_sha1_with_unmatching_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:324,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:325,1
    - Dst: find_cert_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:325,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:326,1
    - Dst: find_cert_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:326,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:327,1
    - Dst: find_all_certs_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:327,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:328,1
    - Dst: find_certs_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:328,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:329,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:329,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:330,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_system.cpp:330,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:331,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:331,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:332,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:332,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: certificate_matching_with_dn_normalization
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 338
    functionName: Botan_Tests::Certstor_System_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - find_certs_by_subject_dn_and_key_id
    - find_cert_by_utf8_subject_dn
    - find_cert_by_subject_dn
    - find_certificate_by_pubkey_sha1_with_unmatching_key_id
    - find_cert_by_issuer_dn_and_serial_number
    - find_all_certs_by_subject_dn
    - Test::Result::test_success
    - no_certificate_matches
    - std::make_unique<Botan::System_Certificate_Store>
    - certificate_matching_with_dn_normalization
    - Test::Result::test_failure
    - Test::Result::end_timer
    - Test::Result::start_timer
    - find_certificate_by_pubkey_sha1
    - find_cert_by_subject_dn_and_key_id
    - what
    - Test::Result::test_note
    - std::vector::push_back
    - find_all_subjects
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:25,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:26,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:26,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:27,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:30,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:31,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:31,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - Test::Result::test_throws
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:46,1
    - Dst: Botan_Tests::get_dn_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:46,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_certstor_system.cpp:47,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:52,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:53,1
    - Dst: Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:53,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:54,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:58,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:58,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1_with_unmatching_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - find_cert
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
    - Test::Result::test_opt_not_null
    - Botan_Tests::get_dn_of_cert_with_different_key_id
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - what
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1_with_unmatching_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:72,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:74,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:75,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:75,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:76,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:79,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:80,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:80,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn(Botan::Certificate_Store& certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_utf8_dn_alternatives
      Src: /src/botan/src/tests/test_certstor_system.cpp:94,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:98,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:100,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:101,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:102,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:102,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:108,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:116,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:117,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:120,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 126
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - find_cert
    - Test::Result::test_note
    - Test::Result::start_timer
    - auto::size
    - Test::Result::end_timer
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_utf8_dn_alternatives
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_utf8_subject_dn(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:132,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:134,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:135,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:135,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:136,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:139,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:140,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:140,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn_and_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:154,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:156,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:157,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:157,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:158,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:162,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 171
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certs_by_subject_dn_and_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:177,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:179,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:180,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:180,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:181,1
    - Dst: sort
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:185,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:191,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:191,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:192,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:193,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:193,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 201
    functionName: Botan_Tests::find_all_certs_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - auto::begin
    - Test::Result::test_is_true
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - std::vector<uint8_t>
    - sort
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - auto::end
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_certs_by_subject_dn(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:207,1
    - Dst: all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:208,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:209,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:212,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_system.cpp:213,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:221,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 225
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::empty
    - auto::cend
    - std::find_if
    - auto::cbegin
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - all_subjects
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_subjects(Botan::Certificate_Store& certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:231,1
    - Dst: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:233,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:236,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:237,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:237,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 3
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan_Tests::get_serial_number
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_opt_not_null
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_issuer_dn_and_serial_number(Botan::Certificate_Store&
      certstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_unknown_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:252,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:253,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:255,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:256,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:257,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:258,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:259,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:262,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - find_cert
    - Botan_Tests::get_unknown_dn
    - Botan_Tests::get_unknown_key_id
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::empty
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result no_certificate_matches(Botan::Certificate_Store& certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_skewed_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:277,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:279,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:280,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:280,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:281,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:281,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:282,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:286,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 295
    functionName: Botan_Tests::certificate_matching_with_dn_normalization
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Botan_Tests::get_skewed_dn
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector<uint8_t>
    - auto::empty
    - Test::Result::test_str_eq
    - auto::subject_dn
    - auto::has_value
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result certificate_matching_with_dn_normalization(Botan::Certificate_Store&
      certstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:307,1
    - Dst: std::make_unique<Botan::System_Certificate_Store>
      Src: /src/botan/src/tests/test_certstor_system.cpp:308,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:309,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:321,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:323,1
    - Dst: find_certificate_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:323,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:324,1
    - Dst: find_certificate_by_pubkey_sha1_with_unmatching_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:324,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:325,1
    - Dst: find_cert_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:325,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:326,1
    - Dst: find_cert_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:326,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:327,1
    - Dst: find_all_certs_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:327,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:328,1
    - Dst: find_certs_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:328,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:329,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:329,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:330,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_system.cpp:330,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:331,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:331,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:332,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:332,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: certificate_matching_with_dn_normalization
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 338
    functionName: Botan_Tests::Certstor_System_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - find_certs_by_subject_dn_and_key_id
    - find_cert_by_utf8_subject_dn
    - find_cert_by_subject_dn
    - find_certificate_by_pubkey_sha1_with_unmatching_key_id
    - find_cert_by_issuer_dn_and_serial_number
    - find_all_certs_by_subject_dn
    - Test::Result::test_success
    - no_certificate_matches
    - std::make_unique<Botan::System_Certificate_Store>
    - certificate_matching_with_dn_normalization
    - Test::Result::test_failure
    - Test::Result::end_timer
    - Test::Result::start_timer
    - find_certificate_by_pubkey_sha1
    - find_cert_by_subject_dn_and_key_id
    - what
    - Test::Result::test_note
    - std::vector::push_back
    - find_all_subjects
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:25,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:26,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:26,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:27,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:30,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:31,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:31,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - Test::Result::test_throws
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:46,1
    - Dst: Botan_Tests::get_dn_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:46,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_certstor_system.cpp:47,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:52,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:53,1
    - Dst: Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:53,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:54,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:57,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:58,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:58,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1_with_unmatching_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - find_cert
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
    - Test::Result::test_opt_not_null
    - Botan_Tests::get_dn_of_cert_with_different_key_id
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - what
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certificate_by_pubkey_sha1_with_unmatching_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:72,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:74,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:75,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:75,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:76,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:79,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:80,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:80,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - std::vector<uint8_t>
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn(Botan::Certificate_Store& certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_utf8_dn_alternatives
      Src: /src/botan/src/tests/test_certstor_system.cpp:94,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:98,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:100,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:101,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:102,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:102,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:108,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:116,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:117,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:120,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 126
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - find_cert
    - Test::Result::test_note
    - Test::Result::start_timer
    - auto::size
    - Test::Result::end_timer
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_utf8_dn_alternatives
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_utf8_subject_dn(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:132,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:134,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:135,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:135,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:136,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:139,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:140,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:140,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Test::Result::test_opt_not_null
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_subject_dn_and_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:154,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:156,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:157,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:157,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:158,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:162,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 171
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_key_id
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_certs_by_subject_dn_and_key_id(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:177,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:179,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:180,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:180,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:181,1
    - Dst: sort
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:185,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:191,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:191,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:192,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:193,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:193,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 201
    functionName: Botan_Tests::find_all_certs_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - auto::begin
    - Test::Result::test_is_true
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::size
    - std::vector<uint8_t>
    - sort
    - auto::empty
    - Test::Result::test_str_eq
    - Test::Result::test_sz_gte
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - auto::end
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_certs_by_subject_dn(Botan::Certificate_Store&
      certstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:207,1
    - Dst: all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:208,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:209,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:212,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_system.cpp:213,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:221,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 225
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - Test::Result::end_timer
    - Test::Result::start_timer
    - auto::empty
    - auto::cend
    - std::find_if
    - auto::cbegin
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - all_subjects
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_all_subjects(Botan::Certificate_Store& certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:231,1
    - Dst: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:232,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:233,1
    - Dst: Test::Result::test_opt_not_null
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:236,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:237,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:237,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 4
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - Test::Result::end_timer
    - Test::Result::start_timer
    - Botan_Tests::get_serial_number
    - auto::size
    - auto::subject_dn
    - Test::Result::test_str_eq
    - Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_opt_not_null
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Botan_Tests::get_dn
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result find_cert_by_issuer_dn_and_serial_number(Botan::Certificate_Store&
      certstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_unknown_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:252,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:253,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:255,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:256,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:257,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:258,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:259,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:262,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - find_cert
    - Botan_Tests::get_unknown_dn
    - Botan_Tests::get_unknown_key_id
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::empty
    - Test::Result::test_failure
    - find_cert_by_pubkey_sha1
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result no_certificate_matches(Botan::Certificate_Store& certstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::get_skewed_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:277,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:279,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:280,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:280,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:281,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:281,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:282,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:286,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 295
    functionName: Botan_Tests::certificate_matching_with_dn_normalization
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::get_subject_cn
    - find_cert
    - Botan_Tests::get_skewed_dn
    - Test::Result::start_timer
    - Test::Result::end_timer
    - std::vector<uint8_t>
    - auto::empty
    - Test::Result::test_str_eq
    - auto::subject_dn
    - auto::has_value
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - find_all_certs
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result certificate_matching_with_dn_normalization(Botan::Certificate_Store&
      certstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:307,1
    - Dst: std::make_unique<Botan::System_Certificate_Store>
      Src: /src/botan/src/tests/test_certstor_system.cpp:308,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:309,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:321,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:323,1
    - Dst: find_certificate_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:323,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:324,1
    - Dst: find_certificate_by_pubkey_sha1_with_unmatching_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:324,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:325,1
    - Dst: find_cert_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:325,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:326,1
    - Dst: find_cert_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:326,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:327,1
    - Dst: find_all_certs_by_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:327,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:328,1
    - Dst: find_certs_by_subject_dn_and_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:328,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:329,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:329,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:330,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_system.cpp:330,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:331,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:331,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:332,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:332,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: certificate_matching_with_dn_normalization
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 338
    functionName: Botan_Tests::Certstor_System_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - find_certs_by_subject_dn_and_key_id
    - find_cert_by_utf8_subject_dn
    - find_cert_by_subject_dn
    - find_certificate_by_pubkey_sha1_with_unmatching_key_id
    - find_cert_by_issuer_dn_and_serial_number
    - find_all_certs_by_subject_dn
    - Test::Result::test_success
    - no_certificate_matches
    - std::make_unique<Botan::System_Certificate_Store>
    - certificate_matching_with_dn_normalization
    - Test::Result::test_failure
    - Test::Result::end_timer
    - Test::Result::start_timer
    - find_certificate_by_pubkey_sha1
    - find_cert_by_subject_dn_and_key_id
    - what
    - Test::Result::test_note
    - std::vector::push_back
    - find_all_subjects
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::X509_DN_Comparisons_Tests::X509_DN_Comparisons_Tests
    functionSourceFile: /src/botan/src/tests/test_x509_dn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_DN_Comparisons_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x509_dn.cpp:24,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x509_dn.cpp:25,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:33,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:37,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:40,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:46,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:47,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_dn.cpp:49,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_dn.cpp:53,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_dn.cpp:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 57
    functionName: Botan_Tests::X509_DN_Comparisons_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_x509_dn.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - Test::Result::test_failure
    - Botan::X509_DN::decode_from
    - Test::Result::test_is_true
    - get_req_bin
    - what
    - Test::Result::test_is_false
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::X509_DN_Comparisons_Tests::X509_DN_Comparisons_Tests
    functionSourceFile: /src/botan/src/tests/test_x509_dn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_DN_Comparisons_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x509_dn.cpp:24,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x509_dn.cpp:25,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:33,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:37,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:40,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:46,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:47,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_dn.cpp:49,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_dn.cpp:53,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_dn.cpp:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 57
    functionName: Botan_Tests::X509_DN_Comparisons_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_x509_dn.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - Test::Result::test_failure
    - Botan::X509_DN::decode_from
    - Test::Result::test_is_true
    - get_req_bin
    - what
    - Test::Result::test_is_false
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::X509_DN_Comparisons_Tests::X509_DN_Comparisons_Tests
    functionSourceFile: /src/botan/src/tests/test_x509_dn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_DN_Comparisons_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x509_dn.cpp:24,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x509_dn.cpp:25,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:33,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:37,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:40,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:46,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:47,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_dn.cpp:49,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_dn.cpp:53,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_dn.cpp:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 57
    functionName: Botan_Tests::X509_DN_Comparisons_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_x509_dn.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - Test::Result::test_failure
    - Botan::X509_DN::decode_from
    - Test::Result::test_is_true
    - get_req_bin
    - what
    - Test::Result::test_is_false
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_Tests::X509_DN_Comparisons_Tests::X509_DN_Comparisons_Tests
    functionSourceFile: /src/botan/src/tests/test_x509_dn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_DN_Comparisons_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x509_dn.cpp:24,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x509_dn.cpp:25,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:33,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:37,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:40,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:46,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:47,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_x509_dn.cpp:49,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_x509_dn.cpp:50,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_dn.cpp:53,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_dn.cpp:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 57
    functionName: Botan_Tests::X509_DN_Comparisons_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_x509_dn.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - Test::Result::test_failure
    - Botan::X509_DN::decode_from
    - Test::Result::test_is_true
    - get_req_bin
    - what
    - Test::Result::test_is_false
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:40,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:41,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_encode
      Src: /src/botan/src/tests/test_bigint.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:43,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: Botan_Tests::BigInt_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    - std::vector::push_back
    - Botan_Tests::BigInt_Unit_Tests::test_random_prime
    - Botan_Tests::BigInt_Unit_Tests::test_get_substring
    - Botan_Tests::BigInt_Unit_Tests::test_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:55,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:61,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:62,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:68,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:68,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_bigint.cpp:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 83
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_success
    - BigInt::bytes
    - BigInt::to_u32bit
    - BigInt::bits
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_u32_eq
    - BigInt::set_bit
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_bigint_sizes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:88,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:90,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:91,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:92,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:93,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:94,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:95,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:98,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:99,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:101,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:102,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:104,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:105,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:110,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:110,1
    - Dst: Botan::random_safe_prime
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:117,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 120
    functionName: Botan_Tests::BigInt_Unit_Tests::test_random_prime
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - BigInt::bits
    - Test::Result::test_sz_eq
    - Botan::is_prime
    - Botan::random_safe_prime
    - Test::Result::test_throws
    - Botan::random_prime
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_random_prime()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:125,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:126,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:128,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:129,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_bigint.cpp:130,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/tests/test_bigint.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:133,1
    - Dst: auto::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:135,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: Botan_Tests::BigInt_Unit_Tests::test_encode
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - Botan::BigInt::encode_fixed_length_int_pair
    - Botan::concat
    - auto::bytes
    - Botan::BigInt::from_u64
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - auto::serialize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:149,1
    - Dst: Botan::BigInt::get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:155,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/tests/test_bigint.cpp:158,1
    - Dst: Botan::BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 167
    functionName: Botan_Tests::BigInt_Unit_Tests::test_get_substring
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - Botan::BigInt::get_substring
    - Test::Result::test_sz_eq
    - Botan::BigInt::mask_bits
    - Botan::BigInt::to_u32bit
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_substring()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:172,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:173,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:174,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:175,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:176,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:179,1
    - Dst: std::istringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:182,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:184,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:194,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:194,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:196,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:198,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:198,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:200,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:204,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:206,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:206,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:210,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/tests/test_bigint.cpp:210,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:211,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:211,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:212,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:212,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:213,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:213,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 222
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - check_bigint_formatting
    - Test::Result::test_bn_eq
    - Botan::BigInt
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::BigInt::from_s32
    - std::istringstream::str
    - Test::Result::test_throws
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_bigint_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: Botan_Tests::BigInt_Cmp_Test::BigInt_Cmp_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Cmp_Test()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:234,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:235,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_bigint.cpp:236,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:239,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:241,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:244,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:246,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:249,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:252,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:254,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ' op'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 261
    functionName: Botan_Tests::BigInt_Cmp_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - get_req_bn
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bool
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& op, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: Botan_Tests::BigInt_Add_Test::BigInt_Add_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Add_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:275,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:276,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:277,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:279,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:280,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:284,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 291
    functionName: Botan_Tests::BigInt_Add_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::BigInt_Sub_Test::BigInt_Sub_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sub_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:303,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:304,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:305,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:307,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 314
    functionName: Botan_Tests::BigInt_Sub_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: Botan_Tests::BigInt_Mul_Test::BigInt_Mul_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Mul_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:326,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:327,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:328,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:330,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:331,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:335,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: Botan_Tests::BigInt_Mul_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    functionName: Botan_Tests::BigInt_Sqr_Test::BigInt_Sqr_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sqr_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:354,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:355,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:358,1
    - Dst: square
      Src: /src/botan/src/tests/test_bigint.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 361
    functionName: Botan_Tests::BigInt_Sqr_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - square
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 368
    functionName: Botan_Tests::BigInt_Div_Test::BigInt_Div_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Div_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:373,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:374,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:375,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:377,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:381,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:385,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_bigint.cpp:385,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:387,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:389,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:390,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:391,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:394,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:395,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:396,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:397,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 401
    functionName: Botan_Tests::BigInt_Div_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - BigInt::sig_words
    - Test::Result::test_bn_eq
    - BigInt::is_positive
    - BigInt::word_at
    - get_req_bn
    - Botan::ct_divide
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:412,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:413,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:414,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:418,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:422,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 431
    functionName: Botan_Tests::BigInt_DivPow2k_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::is_zero
    - Botan_Tests::BigInt_DivPow2k_Test::testcase
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ct_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:435,1
    - Dst: vartime_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:436,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:437,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:439,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - ' y'
    - ' result'
    argTypes:
    - size_t
    - BigInt
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 441
    functionName: Botan_Tests::BigInt_DivPow2k_Test::testcase
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - vartime_divide_pow2k
    - test_bn_eq
    - ct_divide_pow2k
    linkageType: ''
    returnType: void
    signature: void testcase(size_t k, const BigInt& y, Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 448
    functionName: Botan_Tests::BigInt_Mod_Test::BigInt_Mod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Mod_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:453,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:454,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:455,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:457,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:461,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:463,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:465,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:465,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:468,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:468,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:472,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:473,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:477,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:479,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:481,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:484,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:487,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:488,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:489,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 493
    functionName: Botan_Tests::BigInt_Mod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::sig_words
    - Test::Result::test_bn_eq
    - BigInt::is_positive
    - auto::reduce
    - Botan::Barrett_Reduction::for_secret_modulus
    - get_req_bn
    - BigInt::word_at
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::ct_divide
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:506,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:511,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:513,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:515,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:518,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:518,1
    - Dst: auto::bits
      Src: /src/botan/src/tests/test_bigint.cpp:524,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:525,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:530,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:530,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:535,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:537,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 542
    functionName: Botan_Tests::Barrett_Redc_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::bits
    - auto::reduce
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::BigInt::randomize
    - Botan::BigInt::from_u64
    - rng
    - Botan::BigInt::BigInt
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 549
    functionName: Botan_Tests::BigInt_GCD_Test::BigInt_GCD_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_GCD_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:554,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:555,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:556,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:558,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:559,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:561,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 565
    functionName: Botan_Tests::BigInt_GCD_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::gcd
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 572
    functionName: Botan_Tests::BigInt_Jacobi_Test::BigInt_Jacobi_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Jacobi_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:577,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:578,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:579,1
    - Dst: Botan::jacobi
      Src: /src/botan/src/tests/test_bigint.cpp:581,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:584,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:586,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 592
    functionName: Botan_Tests::BigInt_Jacobi_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::jacobi
    - get_req_str
    - Test::Result::test_str_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 599
    functionName: Botan_Tests::BigInt_Lshift_Test::BigInt_Lshift_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Lshift_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:604,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:605,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:606,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:608,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 615
    functionName: Botan_Tests::BigInt_Lshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 622
    functionName: Botan_Tests::BigInt_Rshift_Test::BigInt_Rshift_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Rshift_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:627,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:628,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:629,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:631,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: Botan_Tests::BigInt_Rshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_bigint.cpp:645,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:647,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_bigint.cpp:649,1
    - Dst: Botan::BigInt::with_capacity
      Src: /src/botan/src/tests/test_bigint.cpp:651,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_bigint.cpp:653,1
    - Dst: Botan::BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:654,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_bigint.cpp:661,1
    - Dst: auto::ct_shift_left
      Src: /src/botan/src/tests/test_bigint.cpp:662,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_bigint.cpp:663,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:665,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_bigint.cpp:665,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_bigint.cpp:668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 671
    functionName: Botan_Tests::test_const_time_left_shift
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::set_bit
    - Botan::fmt
    - auto::ct_shift_left
    - Test::Result::start_timer
    - Test::Result::test_bn_eq
    - Test::Result::end_timer
    - auto::next_byte
    - Botan::CT::poison
    - Botan_Tests::Test::run_long_tests
    - Botan::CT::unpoison
    - Botan::BigInt::with_capacity
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_const_time_left_shift()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: Botan_Tests::BigInt_Powmod_Test::BigInt_Powmod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Powmod_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:680,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:681,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:682,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:683,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:685,1
    - Dst: Botan::power_mod
      Src: /src/botan/src/tests/test_bigint.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 687
    functionName: Botan_Tests::BigInt_Powmod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::power_mod
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: Botan_Tests::BigInt_IsPrime_Test::BigInt_IsPrime_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_IsPrime_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:698,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:701,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    - Dst: Botan_Tests::BigInt_IsPrime_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 708
    functionName: Botan_Tests::BigInt_IsPrime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - get_req_bn
    - Test_Error
    - Botan::is_prime
    - Botan_Tests::BigInt_IsPrime_Test::rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 715
    functionName: Botan_Tests::BigInt_IsSquare_Test::BigInt_IsSquare_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_IsSquare_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:718,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:719,1
    - Dst: Botan::is_perfect_square
      Src: /src/botan/src/tests/test_bigint.cpp:720,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 725
    functionName: Botan_Tests::BigInt_IsSquare_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_perfect_square
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 732
    functionName: Botan_Tests::BigInt_Sqrt_Modulo_Prime_Test::BigInt_Sqrt_Modulo_Prime_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sqrt_Modulo_Prime_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:737,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:738,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:739,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_bigint.cpp:741,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:743,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 751
    functionName: Botan_Tests::BigInt_Sqrt_Modulo_Prime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    - Botan::sqrt_modulo_prime
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 758
    functionName: Botan_Tests::BigInt_InvMod_Test::BigInt_InvMod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_InvMod_Test()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:763,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:764,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:765,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:767,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/tests/test_bigint.cpp:767,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/tests/test_bigint.cpp:770,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:775,1
    - Dst: Botan::BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:775,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:781,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/tests/test_bigint.cpp:781,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 786
    functionName: Botan_Tests::BigInt_InvMod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::inverse_mod_secret_prime
    - rng
    - Botan::inverse_mod_public_prime
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::inverse_mod_general
    - Botan::BigInt::is_zero
    - BOTAN_ASSERT_NOMSG
    - get_req_bn
    - auto::has_value
    - Botan::inverse_mod
    - Botan::is_prime
    - auto::value
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 793
    functionName: Botan_Tests::BigInt_Rand_Test::BigInt_Rand_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Rand_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_bigint.cpp:798,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:799,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:800,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:801,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_bigint.cpp:804,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 809
    functionName: Botan_Tests::BigInt_Rand_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::BigInt::random_integer
    - get_req_bin
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_bigint.cpp:817,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:830,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:832,1
    - Dst: Botan_Tests::Lucas_Primality_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:832,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:837,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:837,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:839,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:839,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 844
    functionName: Botan_Tests::Lucas_Primality_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Lucas_Primality_Test::rng
    - std::set::contains
    - Botan::is_lucas_probable_prime
    - Botan_Tests::Test::run_long_tests
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::is_prime
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:856,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: gcd
      Src: /src/botan/src/tests/test_bigint.cpp:868,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:869,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: lcm
      Src: /src/botan/src/tests/test_bigint.cpp:886,1
    - Dst: Botan::compute_rsa_secret_exponent
      Src: /src/botan/src/tests/test_bigint.cpp:888,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:892,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:892,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 896
    functionName: Botan_Tests::RSA_Compute_Exp_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - random_index
    - std::vector::push_back
    - auto::size
    - lcm
    - gcd
    - Botan::compute_rsa_secret_exponent
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::BigInt::from_u64
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 903
    functionName: Botan_Tests::DSA_ParamGen_Test::DSA_ParamGen_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_ParamGen_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_bigint.cpp:906,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:907,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:909,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:910,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_bigint.cpp:912,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:914,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:915,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:918,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:919,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:924,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Botan::generate_dsa_primes
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Botan_Tests::DSA_ParamGen_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:927,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:928,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 935
    functionName: Botan_Tests::DSA_ParamGen_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::generate_dsa_primes
    - Test::Result::test_bn_eq
    - Botan::split_on
    - Botan::to_u32bit
    - Botan_Tests::DSA_ParamGen_Test::rng
    - get_req_bn
    - Test::Result::test_failure
    - get_req_sz
    - Test_Error
    - Botan::BigInt::BigInt
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:941,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:944,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:948,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:951,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:953,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:953,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:956,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:962,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:966,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:970,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:973,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:976,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:980,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 986
    functionName: Botan_Tests::test_bigint_serialization
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bytes
    - Botan::BigInt::serialize
    - Botan_Tests::CHECK
    - std::vector::size
    - std::vector::data
    - test_throws
    - test_bin_eq
    - auto::randomize
    - Botan_Tests::Test::new_rng
    - Botan::BigInt::binary_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bigint_serialization()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 992
    functionName: Botan_Tests::BigInt_FromRadix_Tests::BigInt_FromRadix_Tests
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_FromRadix_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 994
    functionName: Botan_Tests::BigInt_FromRadix_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:999,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:1000,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:1001,1
    - Dst: Botan::BigInt::from_radix_digits
      Src: /src/botan/src/tests/test_bigint.cpp:1004,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:1005,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:1006,1
    - Dst: Botan::BigInt::from_radix_digits
      Src: /src/botan/src/tests/test_bigint.cpp:1009,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:1010,1
    - Dst: what
      Src: /src/botan/src/tests/test_bigint.cpp:1012,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:1013,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_bigint.cpp:1014,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:1017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1021
    functionName: Botan_Tests::BigInt_FromRadix_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::BigInt::serialize
    - Test::Result::test_bin_eq
    - std::string::find
    - Test::Result::test_failure
    - get_req_sz
    - Botan::BigInt::from_radix_digits
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:40,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:41,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_encode
      Src: /src/botan/src/tests/test_bigint.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:43,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: Botan_Tests::BigInt_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    - std::vector::push_back
    - Botan_Tests::BigInt_Unit_Tests::test_random_prime
    - Botan_Tests::BigInt_Unit_Tests::test_get_substring
    - Botan_Tests::BigInt_Unit_Tests::test_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:55,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:61,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:62,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:68,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:68,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_bigint.cpp:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 83
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_success
    - BigInt::bytes
    - BigInt::to_u32bit
    - BigInt::bits
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_u32_eq
    - BigInt::set_bit
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_bigint_sizes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:88,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:90,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:91,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:92,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:93,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:94,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:95,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:98,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:99,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:101,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:102,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:104,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:105,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:110,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:110,1
    - Dst: Botan::random_safe_prime
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:117,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 120
    functionName: Botan_Tests::BigInt_Unit_Tests::test_random_prime
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - BigInt::bits
    - Test::Result::test_sz_eq
    - Botan::is_prime
    - Botan::random_safe_prime
    - Test::Result::test_throws
    - Botan::random_prime
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_random_prime()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:125,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:126,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:128,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:129,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_bigint.cpp:130,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/tests/test_bigint.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:133,1
    - Dst: auto::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:135,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: Botan_Tests::BigInt_Unit_Tests::test_encode
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - Botan::BigInt::encode_fixed_length_int_pair
    - Botan::concat
    - auto::bytes
    - Botan::BigInt::from_u64
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - auto::serialize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:149,1
    - Dst: Botan::BigInt::get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:155,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/tests/test_bigint.cpp:158,1
    - Dst: Botan::BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 167
    functionName: Botan_Tests::BigInt_Unit_Tests::test_get_substring
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - Botan::BigInt::get_substring
    - Test::Result::test_sz_eq
    - Botan::BigInt::mask_bits
    - Botan::BigInt::to_u32bit
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_substring()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:172,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:173,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:174,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:175,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:176,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:179,1
    - Dst: std::istringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:182,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:184,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:194,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:194,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:196,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:198,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:198,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:200,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:204,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:206,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:206,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:210,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/tests/test_bigint.cpp:210,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:211,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:211,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:212,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:212,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:213,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:213,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 222
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - check_bigint_formatting
    - Test::Result::test_bn_eq
    - Botan::BigInt
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::BigInt::from_s32
    - std::istringstream::str
    - Test::Result::test_throws
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_bigint_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: Botan_Tests::BigInt_Cmp_Test::BigInt_Cmp_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Cmp_Test()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:234,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:235,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_bigint.cpp:236,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:239,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:241,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:244,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:246,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:249,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:252,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:254,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ' op'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 261
    functionName: Botan_Tests::BigInt_Cmp_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - get_req_bn
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bool
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& op, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: Botan_Tests::BigInt_Add_Test::BigInt_Add_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Add_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:275,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:276,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:277,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:279,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:280,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:284,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 291
    functionName: Botan_Tests::BigInt_Add_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::BigInt_Sub_Test::BigInt_Sub_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sub_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:303,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:304,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:305,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:307,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 314
    functionName: Botan_Tests::BigInt_Sub_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: Botan_Tests::BigInt_Mul_Test::BigInt_Mul_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Mul_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:326,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:327,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:328,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:330,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:331,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:335,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: Botan_Tests::BigInt_Mul_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    functionName: Botan_Tests::BigInt_Sqr_Test::BigInt_Sqr_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sqr_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:354,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:355,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:358,1
    - Dst: square
      Src: /src/botan/src/tests/test_bigint.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 361
    functionName: Botan_Tests::BigInt_Sqr_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - square
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 368
    functionName: Botan_Tests::BigInt_Div_Test::BigInt_Div_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Div_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:373,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:374,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:375,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:377,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:381,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:385,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_bigint.cpp:385,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:387,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:389,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:390,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:391,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:394,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:395,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:396,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:397,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 401
    functionName: Botan_Tests::BigInt_Div_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - BigInt::sig_words
    - Test::Result::test_bn_eq
    - BigInt::is_positive
    - BigInt::word_at
    - get_req_bn
    - Botan::ct_divide
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:412,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:413,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:414,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:418,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:422,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 431
    functionName: Botan_Tests::BigInt_DivPow2k_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::is_zero
    - Botan_Tests::BigInt_DivPow2k_Test::testcase
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ct_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:435,1
    - Dst: vartime_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:436,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:437,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:439,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - ' y'
    - ' result'
    argTypes:
    - size_t
    - BigInt
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 441
    functionName: Botan_Tests::BigInt_DivPow2k_Test::testcase
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - vartime_divide_pow2k
    - test_bn_eq
    - ct_divide_pow2k
    linkageType: ''
    returnType: void
    signature: void testcase(size_t k, const BigInt& y, Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 448
    functionName: Botan_Tests::BigInt_Mod_Test::BigInt_Mod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Mod_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:453,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:454,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:455,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:457,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:461,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:463,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:465,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:465,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:468,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:468,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:472,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:473,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:477,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:479,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:481,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:484,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:487,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:488,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:489,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 493
    functionName: Botan_Tests::BigInt_Mod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::sig_words
    - Test::Result::test_bn_eq
    - BigInt::is_positive
    - auto::reduce
    - Botan::Barrett_Reduction::for_secret_modulus
    - get_req_bn
    - BigInt::word_at
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::ct_divide
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:506,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:511,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:513,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:515,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:518,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:518,1
    - Dst: auto::bits
      Src: /src/botan/src/tests/test_bigint.cpp:524,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:525,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:530,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:530,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:535,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:537,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 542
    functionName: Botan_Tests::Barrett_Redc_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::bits
    - auto::reduce
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::BigInt::randomize
    - Botan::BigInt::from_u64
    - rng
    - Botan::BigInt::BigInt
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 549
    functionName: Botan_Tests::BigInt_GCD_Test::BigInt_GCD_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_GCD_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:554,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:555,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:556,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:558,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:559,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:561,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 565
    functionName: Botan_Tests::BigInt_GCD_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::gcd
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 572
    functionName: Botan_Tests::BigInt_Jacobi_Test::BigInt_Jacobi_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Jacobi_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:577,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:578,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:579,1
    - Dst: Botan::jacobi
      Src: /src/botan/src/tests/test_bigint.cpp:581,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:584,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:586,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 592
    functionName: Botan_Tests::BigInt_Jacobi_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::jacobi
    - get_req_str
    - Test::Result::test_str_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 599
    functionName: Botan_Tests::BigInt_Lshift_Test::BigInt_Lshift_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Lshift_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:604,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:605,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:606,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:608,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 615
    functionName: Botan_Tests::BigInt_Lshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 622
    functionName: Botan_Tests::BigInt_Rshift_Test::BigInt_Rshift_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Rshift_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:627,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:628,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:629,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:631,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: Botan_Tests::BigInt_Rshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_bigint.cpp:645,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:647,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_bigint.cpp:649,1
    - Dst: Botan::BigInt::with_capacity
      Src: /src/botan/src/tests/test_bigint.cpp:651,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_bigint.cpp:653,1
    - Dst: Botan::BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:654,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_bigint.cpp:661,1
    - Dst: auto::ct_shift_left
      Src: /src/botan/src/tests/test_bigint.cpp:662,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_bigint.cpp:663,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:665,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_bigint.cpp:665,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_bigint.cpp:668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 671
    functionName: Botan_Tests::test_const_time_left_shift
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::set_bit
    - Botan::fmt
    - auto::ct_shift_left
    - Test::Result::start_timer
    - Test::Result::test_bn_eq
    - Test::Result::end_timer
    - auto::next_byte
    - Botan::CT::poison
    - Botan_Tests::Test::run_long_tests
    - Botan::CT::unpoison
    - Botan::BigInt::with_capacity
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_const_time_left_shift()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: Botan_Tests::BigInt_Powmod_Test::BigInt_Powmod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Powmod_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:680,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:681,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:682,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:683,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:685,1
    - Dst: Botan::power_mod
      Src: /src/botan/src/tests/test_bigint.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 687
    functionName: Botan_Tests::BigInt_Powmod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::power_mod
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: Botan_Tests::BigInt_IsPrime_Test::BigInt_IsPrime_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_IsPrime_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:698,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:701,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    - Dst: Botan_Tests::BigInt_IsPrime_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 708
    functionName: Botan_Tests::BigInt_IsPrime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - get_req_bn
    - Test_Error
    - Botan::is_prime
    - Botan_Tests::BigInt_IsPrime_Test::rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 715
    functionName: Botan_Tests::BigInt_IsSquare_Test::BigInt_IsSquare_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_IsSquare_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:718,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:719,1
    - Dst: Botan::is_perfect_square
      Src: /src/botan/src/tests/test_bigint.cpp:720,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 725
    functionName: Botan_Tests::BigInt_IsSquare_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_perfect_square
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 732
    functionName: Botan_Tests::BigInt_Sqrt_Modulo_Prime_Test::BigInt_Sqrt_Modulo_Prime_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sqrt_Modulo_Prime_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:737,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:738,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:739,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_bigint.cpp:741,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:743,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 751
    functionName: Botan_Tests::BigInt_Sqrt_Modulo_Prime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    - Botan::sqrt_modulo_prime
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 758
    functionName: Botan_Tests::BigInt_InvMod_Test::BigInt_InvMod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_InvMod_Test()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:763,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:764,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:765,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:767,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/tests/test_bigint.cpp:767,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/tests/test_bigint.cpp:770,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:775,1
    - Dst: Botan::BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:775,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:781,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/tests/test_bigint.cpp:781,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 786
    functionName: Botan_Tests::BigInt_InvMod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::inverse_mod_secret_prime
    - rng
    - Botan::inverse_mod_public_prime
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::inverse_mod_general
    - Botan::BigInt::is_zero
    - BOTAN_ASSERT_NOMSG
    - get_req_bn
    - auto::has_value
    - Botan::inverse_mod
    - Botan::is_prime
    - auto::value
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 793
    functionName: Botan_Tests::BigInt_Rand_Test::BigInt_Rand_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Rand_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_bigint.cpp:798,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:799,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:800,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:801,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_bigint.cpp:804,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 809
    functionName: Botan_Tests::BigInt_Rand_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::BigInt::random_integer
    - get_req_bin
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_bigint.cpp:817,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:830,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:832,1
    - Dst: Botan_Tests::Lucas_Primality_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:832,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:837,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:837,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:839,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:839,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 844
    functionName: Botan_Tests::Lucas_Primality_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Lucas_Primality_Test::rng
    - std::set::contains
    - Botan::is_lucas_probable_prime
    - Botan_Tests::Test::run_long_tests
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::is_prime
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:856,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: gcd
      Src: /src/botan/src/tests/test_bigint.cpp:868,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:869,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: lcm
      Src: /src/botan/src/tests/test_bigint.cpp:886,1
    - Dst: Botan::compute_rsa_secret_exponent
      Src: /src/botan/src/tests/test_bigint.cpp:888,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:892,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:892,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 896
    functionName: Botan_Tests::RSA_Compute_Exp_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - random_index
    - std::vector::push_back
    - auto::size
    - lcm
    - gcd
    - Botan::compute_rsa_secret_exponent
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::BigInt::from_u64
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 903
    functionName: Botan_Tests::DSA_ParamGen_Test::DSA_ParamGen_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_ParamGen_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_bigint.cpp:906,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:907,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:909,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:910,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_bigint.cpp:912,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:914,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:915,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:918,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:919,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:924,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Botan::generate_dsa_primes
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Botan_Tests::DSA_ParamGen_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:927,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:928,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 935
    functionName: Botan_Tests::DSA_ParamGen_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::generate_dsa_primes
    - Test::Result::test_bn_eq
    - Botan::split_on
    - Botan::to_u32bit
    - Botan_Tests::DSA_ParamGen_Test::rng
    - get_req_bn
    - Test::Result::test_failure
    - get_req_sz
    - Test_Error
    - Botan::BigInt::BigInt
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:941,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:944,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:948,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:951,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:953,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:953,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:956,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:962,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:966,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:970,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:973,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:976,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:980,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 986
    functionName: Botan_Tests::test_bigint_serialization
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bytes
    - Botan::BigInt::serialize
    - Botan_Tests::CHECK
    - std::vector::size
    - std::vector::data
    - test_throws
    - test_bin_eq
    - auto::randomize
    - Botan_Tests::Test::new_rng
    - Botan::BigInt::binary_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bigint_serialization()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 992
    functionName: Botan_Tests::BigInt_FromRadix_Tests::BigInt_FromRadix_Tests
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_FromRadix_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 994
    functionName: Botan_Tests::BigInt_FromRadix_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:999,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:1000,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:1001,1
    - Dst: Botan::BigInt::from_radix_digits
      Src: /src/botan/src/tests/test_bigint.cpp:1004,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:1005,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:1006,1
    - Dst: Botan::BigInt::from_radix_digits
      Src: /src/botan/src/tests/test_bigint.cpp:1009,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:1010,1
    - Dst: what
      Src: /src/botan/src/tests/test_bigint.cpp:1012,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:1013,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_bigint.cpp:1014,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:1017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1021
    functionName: Botan_Tests::BigInt_FromRadix_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::BigInt::serialize
    - Test::Result::test_bin_eq
    - std::string::find
    - Test::Result::test_failure
    - get_req_sz
    - Botan::BigInt::from_radix_digits
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:40,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:41,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_encode
      Src: /src/botan/src/tests/test_bigint.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:43,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: Botan_Tests::BigInt_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    - std::vector::push_back
    - Botan_Tests::BigInt_Unit_Tests::test_random_prime
    - Botan_Tests::BigInt_Unit_Tests::test_get_substring
    - Botan_Tests::BigInt_Unit_Tests::test_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:55,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:61,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:62,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:68,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:68,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_bigint.cpp:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 83
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_success
    - BigInt::bytes
    - BigInt::to_u32bit
    - BigInt::bits
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_u32_eq
    - BigInt::set_bit
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_bigint_sizes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:88,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:90,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:91,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:92,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:93,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:94,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:95,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:98,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:99,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:101,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:102,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:104,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:105,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:110,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:110,1
    - Dst: Botan::random_safe_prime
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:117,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 120
    functionName: Botan_Tests::BigInt_Unit_Tests::test_random_prime
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - BigInt::bits
    - Test::Result::test_sz_eq
    - Botan::is_prime
    - Botan::random_safe_prime
    - Test::Result::test_throws
    - Botan::random_prime
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_random_prime()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:125,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:126,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:128,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:129,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_bigint.cpp:130,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/tests/test_bigint.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:133,1
    - Dst: auto::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:135,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: Botan_Tests::BigInt_Unit_Tests::test_encode
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - Botan::BigInt::encode_fixed_length_int_pair
    - Botan::concat
    - auto::bytes
    - Botan::BigInt::from_u64
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - auto::serialize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:149,1
    - Dst: Botan::BigInt::get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:155,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/tests/test_bigint.cpp:158,1
    - Dst: Botan::BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 167
    functionName: Botan_Tests::BigInt_Unit_Tests::test_get_substring
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - Botan::BigInt::get_substring
    - Test::Result::test_sz_eq
    - Botan::BigInt::mask_bits
    - Botan::BigInt::to_u32bit
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_substring()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:172,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:173,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:174,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:175,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:176,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:179,1
    - Dst: std::istringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:182,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:184,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:194,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:194,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:196,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:198,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:198,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:200,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:204,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:206,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:206,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:210,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/tests/test_bigint.cpp:210,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:211,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:211,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:212,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:212,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:213,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:213,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 222
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - check_bigint_formatting
    - Test::Result::test_bn_eq
    - Botan::BigInt
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::BigInt::from_s32
    - std::istringstream::str
    - Test::Result::test_throws
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_bigint_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: Botan_Tests::BigInt_Cmp_Test::BigInt_Cmp_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Cmp_Test()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:234,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:235,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_bigint.cpp:236,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:239,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:241,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:244,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:246,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:249,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:252,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:254,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ' op'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 261
    functionName: Botan_Tests::BigInt_Cmp_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - get_req_bn
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bool
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& op, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: Botan_Tests::BigInt_Add_Test::BigInt_Add_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Add_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:275,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:276,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:277,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:279,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:280,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:284,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 291
    functionName: Botan_Tests::BigInt_Add_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::BigInt_Sub_Test::BigInt_Sub_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sub_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:303,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:304,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:305,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:307,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 314
    functionName: Botan_Tests::BigInt_Sub_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: Botan_Tests::BigInt_Mul_Test::BigInt_Mul_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Mul_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:326,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:327,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:328,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:330,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:331,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:335,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: Botan_Tests::BigInt_Mul_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    functionName: Botan_Tests::BigInt_Sqr_Test::BigInt_Sqr_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sqr_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:354,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:355,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:358,1
    - Dst: square
      Src: /src/botan/src/tests/test_bigint.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 361
    functionName: Botan_Tests::BigInt_Sqr_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - square
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 368
    functionName: Botan_Tests::BigInt_Div_Test::BigInt_Div_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Div_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:373,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:374,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:375,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:377,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:381,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:385,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_bigint.cpp:385,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:387,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:389,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:390,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:391,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:394,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:395,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:396,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:397,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 401
    functionName: Botan_Tests::BigInt_Div_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - BigInt::sig_words
    - Test::Result::test_bn_eq
    - BigInt::is_positive
    - BigInt::word_at
    - get_req_bn
    - Botan::ct_divide
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:412,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:413,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:414,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:418,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:422,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 431
    functionName: Botan_Tests::BigInt_DivPow2k_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::is_zero
    - Botan_Tests::BigInt_DivPow2k_Test::testcase
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ct_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:435,1
    - Dst: vartime_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:436,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:437,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:439,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - ' y'
    - ' result'
    argTypes:
    - size_t
    - BigInt
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 441
    functionName: Botan_Tests::BigInt_DivPow2k_Test::testcase
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - vartime_divide_pow2k
    - test_bn_eq
    - ct_divide_pow2k
    linkageType: ''
    returnType: void
    signature: void testcase(size_t k, const BigInt& y, Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 448
    functionName: Botan_Tests::BigInt_Mod_Test::BigInt_Mod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Mod_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:453,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:454,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:455,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:457,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:461,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:463,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:465,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:465,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:468,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:468,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:472,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:473,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:477,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:479,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:481,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:484,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:487,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:488,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:489,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 493
    functionName: Botan_Tests::BigInt_Mod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::sig_words
    - Test::Result::test_bn_eq
    - BigInt::is_positive
    - auto::reduce
    - Botan::Barrett_Reduction::for_secret_modulus
    - get_req_bn
    - BigInt::word_at
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::ct_divide
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:506,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:511,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:513,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:515,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:518,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:518,1
    - Dst: auto::bits
      Src: /src/botan/src/tests/test_bigint.cpp:524,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:525,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:530,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:530,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:535,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:537,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 542
    functionName: Botan_Tests::Barrett_Redc_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::bits
    - auto::reduce
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::BigInt::randomize
    - Botan::BigInt::from_u64
    - rng
    - Botan::BigInt::BigInt
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 549
    functionName: Botan_Tests::BigInt_GCD_Test::BigInt_GCD_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_GCD_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:554,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:555,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:556,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:558,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:559,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:561,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 565
    functionName: Botan_Tests::BigInt_GCD_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::gcd
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 572
    functionName: Botan_Tests::BigInt_Jacobi_Test::BigInt_Jacobi_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Jacobi_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:577,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:578,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:579,1
    - Dst: Botan::jacobi
      Src: /src/botan/src/tests/test_bigint.cpp:581,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:584,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:586,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 592
    functionName: Botan_Tests::BigInt_Jacobi_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::jacobi
    - get_req_str
    - Test::Result::test_str_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 599
    functionName: Botan_Tests::BigInt_Lshift_Test::BigInt_Lshift_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Lshift_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:604,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:605,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:606,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:608,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 615
    functionName: Botan_Tests::BigInt_Lshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 622
    functionName: Botan_Tests::BigInt_Rshift_Test::BigInt_Rshift_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Rshift_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:627,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:628,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:629,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:631,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: Botan_Tests::BigInt_Rshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_bigint.cpp:645,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:647,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_bigint.cpp:649,1
    - Dst: Botan::BigInt::with_capacity
      Src: /src/botan/src/tests/test_bigint.cpp:651,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_bigint.cpp:653,1
    - Dst: Botan::BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:654,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_bigint.cpp:661,1
    - Dst: auto::ct_shift_left
      Src: /src/botan/src/tests/test_bigint.cpp:662,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_bigint.cpp:663,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:665,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_bigint.cpp:665,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_bigint.cpp:668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 671
    functionName: Botan_Tests::test_const_time_left_shift
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::set_bit
    - Botan::fmt
    - auto::ct_shift_left
    - Test::Result::start_timer
    - Test::Result::test_bn_eq
    - Test::Result::end_timer
    - auto::next_byte
    - Botan::CT::poison
    - Botan_Tests::Test::run_long_tests
    - Botan::CT::unpoison
    - Botan::BigInt::with_capacity
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_const_time_left_shift()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: Botan_Tests::BigInt_Powmod_Test::BigInt_Powmod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Powmod_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:680,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:681,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:682,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:683,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:685,1
    - Dst: Botan::power_mod
      Src: /src/botan/src/tests/test_bigint.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 687
    functionName: Botan_Tests::BigInt_Powmod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::power_mod
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: Botan_Tests::BigInt_IsPrime_Test::BigInt_IsPrime_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_IsPrime_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:698,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:701,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    - Dst: Botan_Tests::BigInt_IsPrime_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 708
    functionName: Botan_Tests::BigInt_IsPrime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - get_req_bn
    - Test_Error
    - Botan::is_prime
    - Botan_Tests::BigInt_IsPrime_Test::rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 715
    functionName: Botan_Tests::BigInt_IsSquare_Test::BigInt_IsSquare_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_IsSquare_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:718,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:719,1
    - Dst: Botan::is_perfect_square
      Src: /src/botan/src/tests/test_bigint.cpp:720,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 725
    functionName: Botan_Tests::BigInt_IsSquare_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_perfect_square
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 732
    functionName: Botan_Tests::BigInt_Sqrt_Modulo_Prime_Test::BigInt_Sqrt_Modulo_Prime_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sqrt_Modulo_Prime_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:737,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:738,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:739,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_bigint.cpp:741,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:743,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 751
    functionName: Botan_Tests::BigInt_Sqrt_Modulo_Prime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    - Botan::sqrt_modulo_prime
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 758
    functionName: Botan_Tests::BigInt_InvMod_Test::BigInt_InvMod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_InvMod_Test()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:763,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:764,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:765,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:767,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/tests/test_bigint.cpp:767,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/tests/test_bigint.cpp:770,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:775,1
    - Dst: Botan::BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:775,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:781,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/tests/test_bigint.cpp:781,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 786
    functionName: Botan_Tests::BigInt_InvMod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::inverse_mod_secret_prime
    - rng
    - Botan::inverse_mod_public_prime
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::inverse_mod_general
    - Botan::BigInt::is_zero
    - BOTAN_ASSERT_NOMSG
    - get_req_bn
    - auto::has_value
    - Botan::inverse_mod
    - Botan::is_prime
    - auto::value
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 793
    functionName: Botan_Tests::BigInt_Rand_Test::BigInt_Rand_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Rand_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_bigint.cpp:798,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:799,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:800,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:801,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_bigint.cpp:804,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 809
    functionName: Botan_Tests::BigInt_Rand_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::BigInt::random_integer
    - get_req_bin
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_bigint.cpp:817,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:830,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:832,1
    - Dst: Botan_Tests::Lucas_Primality_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:832,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:837,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:837,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:839,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:839,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 844
    functionName: Botan_Tests::Lucas_Primality_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Lucas_Primality_Test::rng
    - std::set::contains
    - Botan::is_lucas_probable_prime
    - Botan_Tests::Test::run_long_tests
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::is_prime
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:856,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: gcd
      Src: /src/botan/src/tests/test_bigint.cpp:868,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:869,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: lcm
      Src: /src/botan/src/tests/test_bigint.cpp:886,1
    - Dst: Botan::compute_rsa_secret_exponent
      Src: /src/botan/src/tests/test_bigint.cpp:888,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:892,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:892,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 896
    functionName: Botan_Tests::RSA_Compute_Exp_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - random_index
    - std::vector::push_back
    - auto::size
    - lcm
    - gcd
    - Botan::compute_rsa_secret_exponent
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::BigInt::from_u64
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 903
    functionName: Botan_Tests::DSA_ParamGen_Test::DSA_ParamGen_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_ParamGen_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_bigint.cpp:906,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:907,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:909,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:910,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_bigint.cpp:912,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:914,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:915,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:918,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:919,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:924,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Botan::generate_dsa_primes
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Botan_Tests::DSA_ParamGen_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:927,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:928,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 935
    functionName: Botan_Tests::DSA_ParamGen_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::generate_dsa_primes
    - Test::Result::test_bn_eq
    - Botan::split_on
    - Botan::to_u32bit
    - Botan_Tests::DSA_ParamGen_Test::rng
    - get_req_bn
    - Test::Result::test_failure
    - get_req_sz
    - Test_Error
    - Botan::BigInt::BigInt
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:941,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:944,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:948,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:951,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:953,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:953,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:956,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:962,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:966,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:970,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:973,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:976,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:980,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 986
    functionName: Botan_Tests::test_bigint_serialization
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bytes
    - Botan::BigInt::serialize
    - Botan_Tests::CHECK
    - std::vector::size
    - std::vector::data
    - test_throws
    - test_bin_eq
    - auto::randomize
    - Botan_Tests::Test::new_rng
    - Botan::BigInt::binary_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bigint_serialization()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 992
    functionName: Botan_Tests::BigInt_FromRadix_Tests::BigInt_FromRadix_Tests
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_FromRadix_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 994
    functionName: Botan_Tests::BigInt_FromRadix_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:999,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:1000,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:1001,1
    - Dst: Botan::BigInt::from_radix_digits
      Src: /src/botan/src/tests/test_bigint.cpp:1004,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:1005,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:1006,1
    - Dst: Botan::BigInt::from_radix_digits
      Src: /src/botan/src/tests/test_bigint.cpp:1009,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:1010,1
    - Dst: what
      Src: /src/botan/src/tests/test_bigint.cpp:1012,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:1013,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_bigint.cpp:1014,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:1017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1021
    functionName: Botan_Tests::BigInt_FromRadix_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::BigInt::serialize
    - Test::Result::test_bin_eq
    - std::string::find
    - Test::Result::test_failure
    - get_req_sz
    - Botan::BigInt::from_radix_digits
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:40,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:41,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_encode
      Src: /src/botan/src/tests/test_bigint.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:43,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: Botan_Tests::BigInt_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    - std::vector::push_back
    - Botan_Tests::BigInt_Unit_Tests::test_random_prime
    - Botan_Tests::BigInt_Unit_Tests::test_get_substring
    - Botan_Tests::BigInt_Unit_Tests::test_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:55,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:61,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:62,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:65,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:68,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:68,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:71,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:72,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_bigint.cpp:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 83
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint32_t>
    - Test::Result::test_success
    - BigInt::bytes
    - BigInt::to_u32bit
    - BigInt::bits
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_u32_eq
    - BigInt::set_bit
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_bigint_sizes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:88,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:90,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:91,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:92,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:93,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:94,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:95,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:98,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:99,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:101,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:102,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:104,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:105,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:110,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:110,1
    - Dst: Botan::random_safe_prime
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:117,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 120
    functionName: Botan_Tests::BigInt_Unit_Tests::test_random_prime
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - BigInt::bits
    - Test::Result::test_sz_eq
    - Botan::is_prime
    - Botan::random_safe_prime
    - Test::Result::test_throws
    - Botan::random_prime
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_random_prime()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:125,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:126,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:128,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:129,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_bigint.cpp:130,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/tests/test_bigint.cpp:132,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:133,1
    - Dst: auto::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:135,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: Botan_Tests::BigInt_Unit_Tests::test_encode
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - Botan::BigInt::encode_fixed_length_int_pair
    - Botan::concat
    - auto::bytes
    - Botan::BigInt::from_u64
    - Test::Result::test_bin_eq
    - Test::Result::test_failure
    - auto::serialize
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:149,1
    - Dst: Botan::BigInt::get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:155,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/tests/test_bigint.cpp:158,1
    - Dst: Botan::BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:160,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bigint.cpp:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 167
    functionName: Botan_Tests::BigInt_Unit_Tests::test_get_substring
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - Botan::BigInt::get_substring
    - Test::Result::test_sz_eq
    - Botan::BigInt::mask_bits
    - Botan::BigInt::to_u32bit
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_substring()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:172,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:173,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:174,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:175,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:176,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:179,1
    - Dst: std::istringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:182,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:184,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:194,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:194,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:196,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:198,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:198,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:200,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:204,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:206,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:206,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:210,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/tests/test_bigint.cpp:210,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:211,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:211,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:212,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:212,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:213,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:213,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 222
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - check_bigint_formatting
    - Test::Result::test_bn_eq
    - Botan::BigInt
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::BigInt::from_s32
    - std::istringstream::str
    - Test::Result::test_throws
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_bigint_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: Botan_Tests::BigInt_Cmp_Test::BigInt_Cmp_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Cmp_Test()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:234,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:235,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_bigint.cpp:236,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:239,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:241,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:244,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:246,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:249,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:252,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:254,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ' op'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 261
    functionName: Botan_Tests::BigInt_Cmp_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - get_req_bn
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bool
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& op, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: Botan_Tests::BigInt_Add_Test::BigInt_Add_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Add_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:275,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:276,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:277,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:279,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:280,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:284,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 291
    functionName: Botan_Tests::BigInt_Add_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan_Tests::BigInt_Sub_Test::BigInt_Sub_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sub_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:303,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:304,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:305,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:307,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 314
    functionName: Botan_Tests::BigInt_Sub_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: Botan_Tests::BigInt_Mul_Test::BigInt_Mul_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Mul_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:326,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:327,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:328,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:330,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:331,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:335,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: Botan_Tests::BigInt_Mul_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    functionName: Botan_Tests::BigInt_Sqr_Test::BigInt_Sqr_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sqr_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:354,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:355,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:358,1
    - Dst: square
      Src: /src/botan/src/tests/test_bigint.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 361
    functionName: Botan_Tests::BigInt_Sqr_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - square
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 368
    functionName: Botan_Tests::BigInt_Div_Test::BigInt_Div_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Div_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:373,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:374,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:375,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:377,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:381,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:385,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_bigint.cpp:385,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:387,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:389,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:390,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:391,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:394,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:395,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:396,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:397,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 401
    functionName: Botan_Tests::BigInt_Div_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - BigInt::sig_words
    - Test::Result::test_bn_eq
    - BigInt::is_positive
    - BigInt::word_at
    - get_req_bn
    - Botan::ct_divide
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:412,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:413,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:414,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:418,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:422,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 431
    functionName: Botan_Tests::BigInt_DivPow2k_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::is_zero
    - Botan_Tests::BigInt_DivPow2k_Test::testcase
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ct_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:435,1
    - Dst: vartime_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:436,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:437,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:439,1
    - Dst: test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - ' y'
    - ' result'
    argTypes:
    - size_t
    - BigInt
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 441
    functionName: Botan_Tests::BigInt_DivPow2k_Test::testcase
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - vartime_divide_pow2k
    - test_bn_eq
    - ct_divide_pow2k
    linkageType: ''
    returnType: void
    signature: void testcase(size_t k, const BigInt& y, Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 448
    functionName: Botan_Tests::BigInt_Mod_Test::BigInt_Mod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Mod_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:453,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:454,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:455,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:457,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:461,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:463,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:465,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:465,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:468,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:468,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:472,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:473,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:477,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:479,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:481,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:484,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:487,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:488,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:489,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 493
    functionName: Botan_Tests::BigInt_Mod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::sig_words
    - Test::Result::test_bn_eq
    - BigInt::is_positive
    - auto::reduce
    - Botan::Barrett_Reduction::for_secret_modulus
    - get_req_bn
    - BigInt::word_at
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::ct_divide
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:506,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:511,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:513,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:515,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:518,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:518,1
    - Dst: auto::bits
      Src: /src/botan/src/tests/test_bigint.cpp:524,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:525,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:530,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:530,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:535,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:537,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 542
    functionName: Botan_Tests::Barrett_Redc_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - auto::bits
    - auto::reduce
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::BigInt::randomize
    - Botan::BigInt::from_u64
    - rng
    - Botan::BigInt::BigInt
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 549
    functionName: Botan_Tests::BigInt_GCD_Test::BigInt_GCD_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_GCD_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:554,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:555,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:556,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:558,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:559,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:561,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 565
    functionName: Botan_Tests::BigInt_GCD_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::gcd
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 572
    functionName: Botan_Tests::BigInt_Jacobi_Test::BigInt_Jacobi_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Jacobi_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:577,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:578,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:579,1
    - Dst: Botan::jacobi
      Src: /src/botan/src/tests/test_bigint.cpp:581,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:584,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:586,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_bigint.cpp:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 592
    functionName: Botan_Tests::BigInt_Jacobi_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::jacobi
    - get_req_str
    - Test::Result::test_str_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 599
    functionName: Botan_Tests::BigInt_Lshift_Test::BigInt_Lshift_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Lshift_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:604,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:605,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:606,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:608,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 615
    functionName: Botan_Tests::BigInt_Lshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 622
    functionName: Botan_Tests::BigInt_Rshift_Test::BigInt_Rshift_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Rshift_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:627,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:628,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:629,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:631,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: Botan_Tests::BigInt_Rshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_bigint.cpp:645,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:647,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_bigint.cpp:649,1
    - Dst: Botan::BigInt::with_capacity
      Src: /src/botan/src/tests/test_bigint.cpp:651,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_bigint.cpp:653,1
    - Dst: Botan::BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:654,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_bigint.cpp:661,1
    - Dst: auto::ct_shift_left
      Src: /src/botan/src/tests/test_bigint.cpp:662,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_bigint.cpp:663,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:665,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_bigint.cpp:665,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_bigint.cpp:668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 671
    functionName: Botan_Tests::test_const_time_left_shift
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::set_bit
    - Botan::fmt
    - auto::ct_shift_left
    - Test::Result::start_timer
    - Test::Result::test_bn_eq
    - Test::Result::end_timer
    - auto::next_byte
    - Botan::CT::poison
    - Botan_Tests::Test::run_long_tests
    - Botan::CT::unpoison
    - Botan::BigInt::with_capacity
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_const_time_left_shift()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: Botan_Tests::BigInt_Powmod_Test::BigInt_Powmod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Powmod_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:680,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:681,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:682,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:683,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:685,1
    - Dst: Botan::power_mod
      Src: /src/botan/src/tests/test_bigint.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 687
    functionName: Botan_Tests::BigInt_Powmod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::power_mod
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: Botan_Tests::BigInt_IsPrime_Test::BigInt_IsPrime_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_IsPrime_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:698,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:701,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    - Dst: Botan_Tests::BigInt_IsPrime_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 708
    functionName: Botan_Tests::BigInt_IsPrime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bool_eq
    - get_req_bn
    - Test_Error
    - Botan::is_prime
    - Botan_Tests::BigInt_IsPrime_Test::rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 715
    functionName: Botan_Tests::BigInt_IsSquare_Test::BigInt_IsSquare_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_IsSquare_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:718,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:719,1
    - Dst: Botan::is_perfect_square
      Src: /src/botan/src/tests/test_bigint.cpp:720,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 725
    functionName: Botan_Tests::BigInt_IsSquare_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_perfect_square
    - Test::Result::test_bn_eq
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 732
    functionName: Botan_Tests::BigInt_Sqrt_Modulo_Prime_Test::BigInt_Sqrt_Modulo_Prime_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Sqrt_Modulo_Prime_Test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:737,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:738,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:739,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_bigint.cpp:741,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:743,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 751
    functionName: Botan_Tests::BigInt_Sqrt_Modulo_Prime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - get_req_bn
    - Botan::sqrt_modulo_prime
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 758
    functionName: Botan_Tests::BigInt_InvMod_Test::BigInt_InvMod_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_InvMod_Test()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:763,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:764,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:765,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:767,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/tests/test_bigint.cpp:767,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/tests/test_bigint.cpp:770,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:773,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:775,1
    - Dst: Botan::BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:775,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:781,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/tests/test_bigint.cpp:781,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 786
    functionName: Botan_Tests::BigInt_InvMod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::inverse_mod_secret_prime
    - rng
    - Botan::inverse_mod_public_prime
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::inverse_mod_general
    - Botan::BigInt::is_zero
    - BOTAN_ASSERT_NOMSG
    - get_req_bn
    - auto::has_value
    - Botan::inverse_mod
    - Botan::is_prime
    - auto::value
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 793
    functionName: Botan_Tests::BigInt_Rand_Test::BigInt_Rand_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_Rand_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_bigint.cpp:798,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:799,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:800,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:801,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_bigint.cpp:804,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 809
    functionName: Botan_Tests::BigInt_Rand_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - Botan::BigInt::random_integer
    - get_req_bin
    - get_req_bn
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_bigint.cpp:817,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:830,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:832,1
    - Dst: Botan_Tests::Lucas_Primality_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:832,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:837,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:837,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:839,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:839,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 844
    functionName: Botan_Tests::Lucas_Primality_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Lucas_Primality_Test::rng
    - std::set::contains
    - Botan::is_lucas_probable_prime
    - Botan_Tests::Test::run_long_tests
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::is_prime
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:856,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: gcd
      Src: /src/botan/src/tests/test_bigint.cpp:868,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:869,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:876,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:877,1
    - Dst: lcm
      Src: /src/botan/src/tests/test_bigint.cpp:886,1
    - Dst: Botan::compute_rsa_secret_exponent
      Src: /src/botan/src/tests/test_bigint.cpp:888,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:892,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:892,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 896
    functionName: Botan_Tests::RSA_Compute_Exp_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_bn_eq
    - random_index
    - std::vector::push_back
    - auto::size
    - lcm
    - gcd
    - Botan::compute_rsa_secret_exponent
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::BigInt::from_u64
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 903
    functionName: Botan_Tests::DSA_ParamGen_Test::DSA_ParamGen_Test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_ParamGen_Test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_bigint.cpp:906,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:907,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:909,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:910,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_bigint.cpp:912,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:914,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:915,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:918,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:919,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:924,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Botan::generate_dsa_primes
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Botan_Tests::DSA_ParamGen_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:927,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_bigint.cpp:928,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 935
    functionName: Botan_Tests::DSA_ParamGen_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::generate_dsa_primes
    - Test::Result::test_bn_eq
    - Botan::split_on
    - Botan::to_u32bit
    - Botan_Tests::DSA_ParamGen_Test::rng
    - get_req_bn
    - Test::Result::test_failure
    - get_req_sz
    - Test_Error
    - Botan::BigInt::BigInt
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:941,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:944,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:948,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:951,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:953,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:953,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:956,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:962,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:966,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:970,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:973,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:976,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:980,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 986
    functionName: Botan_Tests::test_bigint_serialization
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bytes
    - Botan::BigInt::serialize
    - Botan_Tests::CHECK
    - std::vector::size
    - std::vector::data
    - test_throws
    - test_bin_eq
    - auto::randomize
    - Botan_Tests::Test::new_rng
    - Botan::BigInt::binary_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bigint_serialization()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 992
    functionName: Botan_Tests::BigInt_FromRadix_Tests::BigInt_FromRadix_Tests
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BigInt_FromRadix_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 994
    functionName: Botan_Tests::BigInt_FromRadix_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:999,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:1000,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:1001,1
    - Dst: Botan::BigInt::from_radix_digits
      Src: /src/botan/src/tests/test_bigint.cpp:1004,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:1005,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_bigint.cpp:1006,1
    - Dst: Botan::BigInt::from_radix_digits
      Src: /src/botan/src/tests/test_bigint.cpp:1009,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:1010,1
    - Dst: what
      Src: /src/botan/src/tests/test_bigint.cpp:1012,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_bigint.cpp:1013,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_bigint.cpp:1014,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:1017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1021
    functionName: Botan_Tests::BigInt_FromRadix_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::BigInt::serialize
    - Test::Result::test_bin_eq
    - std::string::find
    - Test::Result::test_failure
    - get_req_sz
    - Botan::BigInt::from_radix_digits
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:32,1
    - Dst: random_array
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' rng'
    - min
    - max
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_Tests::rand_in_range
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - random_array
    - Botan::load_le<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t rand_in_range(Botan::RandomNumberGenerator& rng, size_t min,
      size_t max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:40,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:43,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:44,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:44,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:45,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: shuffle
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:51,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ' rng'
    - n
    - upper_bound
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: Botan_Tests::rand_indices
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    - std::vector::resize
    - std::vector::end
    - std::vector::begin
    - size
    - std::iota
    - Botan_Tests::rand_in_range
    - shuffle
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> rand_indices(Botan::RandomNumberGenerator& rng,
      size_t n, size_t upper_bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:58,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: Botan_Tests::rand_indices
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:60,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:60,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:62,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: Botan_Tests::rnd_bitvector_with_rnd_pois
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::rand_indices
    - auto::begin
    - Botan_Tests::rand_in_range
    - Botan::bitvector::size
    - auto::end
    linkageType: ''
    returnType: std::pair<Botan::bitvector, std::set<size_t>>
    signature: std::pair<Botan::bitvector, std::set<size_t>> rnd_bitvector_with_rnd_pois(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: Botan_Tests::pattern_generator
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto pattern_generator(size_t offset = 0)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:79,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:79,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:87,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:87,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:89,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:89,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:93,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:95,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:98,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:99,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:101,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:104,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:109,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:111,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:113,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:117,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:118,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:120,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:123,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:128,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:132,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:134,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:138,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:143,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: const_cast<const decltype(bv)&>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:147,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:149,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:149,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:150,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:150,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:157,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:157,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:159,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:165,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:168,1
    - Dst: flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:170,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:175,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:176,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:178,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:184,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:184,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:188,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:191,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:195,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:197,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:198,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:200,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:204,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:206,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:210,1
    - Dst: unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:213,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:215,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:217,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:219,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:221,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:223,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 112
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 226
    functionName: Botan_Tests::test_bitvector_bitwise_accessors
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - contains
    - const_cast<const decltype(bv)&>
    - Botan::bitvector::empty
    - test_is_true
    - test_bool_eq
    - next_byte
    - Botan::bitvector::flip
    - Botan::bitvector::size
    - test_no_throw
    - set
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - require
    - begin
    - unset
    - template test_throws<Botan::Invalid_Argument>
    - Botan_Tests::CHECK
    - std::find
    - Botan_Tests::rnd_bitvector_with_rnd_pois
    - test_sz_eq
    - flip
    - Botan::bitvector::at
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_bitwise_accessors(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:233,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:233,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:234,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:234,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:241,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:241,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:242,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:242,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:252,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:256,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:257,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:257,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:265,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:265,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:267,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:268,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:272,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:272,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:276,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:276,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:277,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:277,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:278,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:278,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:279,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:279,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:284,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:287,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:289,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:290,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:293,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:297,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:302,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:302,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:307,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:307,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:312,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:319,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:320,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:320,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:322,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:331,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:332,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:335,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:338,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:342,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:346,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:350,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:352,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:353,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:356,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:358,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:358,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:362,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:363,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 366
    functionName: Botan_Tests::test_bitvector_capacity
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::bitvector::empty
    - test_is_true
    - test_bool_eq
    - Botan::bitvector::size
    - Botan::bitvector::reserve
    - Botan::bitvector::pop_back
    - Botan::bitvector::back
    - test_sz_gte
    - Botan::bitvector::capacity
    - Botan::bitvector::push_back
    - Botan::bitvector::set
    - Botan::bitvector::at
    - Botan::bitvector::resize
    - Botan_Tests::CHECK
    - auto::at
    - test_sz_eq
    - test_throws
    - Botan::bitvector::front
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_capacity(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:370,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:378,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:391,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: bv_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:398,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:405,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:408,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:414,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:418,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:418,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:423,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:426,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:430,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:434,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:437,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:439,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:441,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:443,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:444,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:444,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:445,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:448,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:451,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:453,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:454,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:454,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:455,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:457,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:459,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:463,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:467,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:471,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:474,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:479,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:483,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:484,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:489,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:492,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:494,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:495,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:495,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:496,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:498,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:500,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:502,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:503,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:503,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:504,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:506,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:508,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:510,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:511,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:511,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:512,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:518,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:519,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:519,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:520,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:523,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:526,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:528,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:529,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:530,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:531,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:533,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:534,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:535,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:536,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:538,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:539,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:540,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:541,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:543,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:544,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:545,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:546,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:548,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:548,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:550,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:550,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:554,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:557,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:559,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:560,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:561,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:562,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:564,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:565,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:566,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:567,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:569,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:570,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:571,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:572,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:574,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:575,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:580,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:583,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:585,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:586,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:588,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:590,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:591,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:593,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:595,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:596,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:598,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:600,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:601,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:603,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:605,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:606,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:608,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:610,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:610,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:611,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:611,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:612,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:612,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:613,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:613,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:616,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:621,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:622,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:623,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:623,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:624,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:626,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:627,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:628,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:628,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:629,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:631,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:632,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:633,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:633,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:634,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:637,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:638,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:638,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:639,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:641,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:642,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:644,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:646,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:647,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:649,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:651,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:652,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:654,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 657
    functionName: Botan_Tests::test_bitvector_subvector
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_bitpattern
    - test_is_true
    - static_cast<T>
    - test_bool_eq
    - Botan::bitvector::subvector
    - auto::size
    - check_bitpattern
    - Botan_Tests::pattern_generator
    - T::size
    - Botan::bitvector::subvector_replace
    - template test_throws<Botan::Invalid_Argument>
    - auto::resize
    - Botan_Tests::CHECK
    - bitpattern_at
    - test_sz_eq
    - auto::subvector
    - test_throws
    - bv_t
    - check_bitpattern_with_zero_region
    - next
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_subvector(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:661,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:663,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:668,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:669,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:675,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:676,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:682,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:685,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:687,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:688,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:691,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:693,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:695,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:697,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:698,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:701,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:705,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: check_flipped_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:712,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:713,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:736,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:744,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:744,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:745,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:745,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:747,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:750,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:753,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:753,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:755,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:756,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:756,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:757,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:757,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:758,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:758,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:759,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:759,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:761,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:761,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:763,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:764,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:764,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:765,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:765,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:769,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:769,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:773,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:773,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:777,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:777,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:782,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:785,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:785,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:786,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:786,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:789,1
    - Dst: template as<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:794,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:800,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:800,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:801,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:801,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:804,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:808,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:812,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:813,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:813,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 821
    functionName: Botan_Tests::test_bitvector_global_modifiers_and_predicates
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_bitpattern
    - Botan::bitvector::none_vartime
    - test_is_true
    - test_bool_eq
    - Botan::bitvector::any_vartime
    - Botan::bitvector::flip
    - Botan::bitvector::size
    - Botan::bitvector::none
    - Botan::hex_decode
    - check_bitpattern
    - Botan_Tests::pattern_generator
    - Botan::bitvector::all_vartime
    - auto::pop_back
    - check_flipped_bitpattern
    - Botan::bitvector::push_back
    - Botan::bitvector
    - auto::hamming_weight
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - naive_count
    - Botan::bitvector::resize
    - Botan::bitvector::all
    - template as<size_t>
    - Botan::bitvector::any
    - Botan_Tests::CHECK
    - test_sz_eq
    - size
    - next
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_global_modifiers_and_predicates(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:825,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:827,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:828,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:834,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:840,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:844,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:847,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:849,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:852,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:852,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:854,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:855,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:858,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:858,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:861,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:864,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:866,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:868,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:871,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:874,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:876,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:879,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:882,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:884,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:886,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:889,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:892,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:894,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:897,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:900,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:902,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:904,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:907,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:910,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:912,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:915,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:918,1
    - Dst: Botan::secure_bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:920,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:922,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:925,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:926,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:934,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:937,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:938,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:942,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:945,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 949
    functionName: Botan_Tests::test_bitvector_binary_operators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_is_false
    - Botan::bitvector::equals
    - Botan::fmt
    - std::find
    - Botan_Tests::CHECK
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - Botan::secure_bitvector::set
    - test_is_true
    - begin
    - test_bool_eq
    - size
    - check_set
    - is_secure_allocator
    - Botan::bitvector::equals_vartime
    - end
    - is_standard_allocator
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_binary_operators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:962,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:966,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:966,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:968,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:974,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:977,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:977,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:980,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:980,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:983,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:983,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:986,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:991,1
    - Dst: Botan::secure_bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:992,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:996,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1000,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1003,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1005,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1006,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1006,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1009,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1015,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1017,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1018,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1018,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1021,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1024,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1033,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1036,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1037,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1037,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1040,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1043,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1046,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1049,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1051,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::test_bitvector_serialization
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::bitvector::empty
    - test_is_true
    - std::array::size
    - test_bool_eq
    - Botan::ceil_tobytes
    - first
    - Botan::secure_bitvector::to_bytes
    - Botan::copy_mem
    - test_u8_eq
    - static_cast<uint8_t>
    - std::vector::empty
    - validate_bytewise
    - Botan::bitvector::to_bytes
    - Botan::ct_is_equal
    - Botan::bitvector::set
    - require
    - auto::empty
    - Botan_Tests::CHECK
    - std::array::back
    - test_sz_eq
    - static_cast<size_t>
    - size
    - Botan::bitvector::at
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_serialization(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Choice::yes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1057,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1058,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1061,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1063,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1064,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1068,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1069,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1071,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1072,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1075,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1077,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1078,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1082,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1083,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1086,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1089,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1091,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1094,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1096,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1102,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1104,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1108
    functionName: Botan_Tests::test_bitvector_constant_time_operations
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::CT::Choice::yes
    - Botan_Tests::CHECK
    - Botan::secure_bitvector::push_back
    - test_is_true
    - Botan::bitvector::ct_conditional_xor
    - Botan::CT::Choice::no
    - Botan::bitvector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_constant_time_operations(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1113,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1119,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1126,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1133,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1136
    functionName: Botan_Tests::test_bitvector_conditional_xor_workload
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::bitvector
    - Botan::CT::Choice::from_int
    - Test::Result::set_ns_consumed
    - std::vector::push_back
    - Botan_Tests::Test::timestamp
    - std::vector::reserve
    - auto::next_byte
    - std::vector::at
    - auto::random_vec
    - Test::Result::test_is_true
    - static_cast<uint8_t>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_conditional_xor_workload(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1143,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1147,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1147,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1161,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1164,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1167,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1170,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1170,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: auto::is_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1182,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1188,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1188,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1189,1
    - Dst: auto::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1192,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1196,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1196,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1198,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1202,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1208,1
    - Dst: std::advance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1213,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1217,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1217,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1218,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1218,1
    - Dst: auto::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1219,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1221,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1221,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1228,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1233,1
    - Dst: Botan::secure_bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1236,1
    - Dst: Botan::secure_bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1237,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1246,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1248,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1249,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1252
    functionName: Botan_Tests::test_bitvector_iterators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::advance
    - test_is_true
    - test_bool_eq
    - Botan::secure_bitvector::cbegin
    - Botan::bitvector::cbegin
    - Botan::bitvector::all_vartime
    - Botan::bitvector::set
    - Botan::secure_bitvector::begin
    - Botan::bitvector::begin
    - auto::set
    - auto::is_set
    - Botan_Tests::CHECK
    - auto::flip
    - test_sz_eq
    - std::distance
    - Botan::bitvector::end
    - static_cast<size_t>
    - Botan::bitvector::cend
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_iterators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: TestBitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1264,1
    - Dst: TestBitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1264,1
    - Dst: TestBitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1267,1
    - Dst: TestBitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1268,1
    - Dst: TestBitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1269,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1270,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1271,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1272,1
    - Dst: TestBitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: TestBitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    - Dst: TestBitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1277,1
    - Dst: TestBitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1277,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1278,1
    - Dst: TestBitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1278,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1279,1
    - Dst: TestBitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1279,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1281,1
    - Dst: TestBitvector::has_odd_hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1281,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1285,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1285,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1289,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1293,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1293,1
    - Dst: TestBitvector::as
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1297,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1300,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1303,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1305,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1306,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1307,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1307,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1309,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1310,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1313
    functionName: Botan_Tests::test_bitvector_strongtype_adapter
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - TestBitvector::front
    - TestBitvector::pop_back
    - TestBitvector::has_odd_hamming_weight
    - auto::get
    - TestBitvector::none_vartime
    - Test::Result::test_sz_eq
    - TestBitvector::any_vartime
    - TestBitvector::all_vartime
    - TestBitvector::as
    - Test::Result::test_u32_eq
    - TestBitvector::unset
    - TestBitvector::size
    - TestBitvector::set
    - TestBitvector::back
    - Test::Result::test_is_true
    - Test::Result::test_str_eq
    - auto::subvector
    - TestBitvector::empty
    - TestBitvector::flip
    - TestBitvector::push_back
    - auto::to_string
    - TestBitvector::at
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_strongtype_adapter(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1319,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1335,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1340
    functionName: Botan_Tests::BitVector_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - fuzzer_rng
    - std::vector::end
    - test_func
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:32,1
    - Dst: random_array
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' rng'
    - min
    - max
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_Tests::rand_in_range
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 2
    functionsReached:
    - random_array
    - Botan::load_le<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t rand_in_range(Botan::RandomNumberGenerator& rng, size_t min,
      size_t max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:40,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:43,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:44,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:44,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:45,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: shuffle
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:51,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ' rng'
    - n
    - upper_bound
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: Botan_Tests::rand_indices
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 1
    functionsReached:
    - std::swap
    - std::vector::resize
    - std::vector::end
    - std::vector::begin
    - size
    - std::iota
    - Botan_Tests::rand_in_range
    - shuffle
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> rand_indices(Botan::RandomNumberGenerator& rng,
      size_t n, size_t upper_bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:58,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: Botan_Tests::rand_indices
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:60,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:60,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:62,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: Botan_Tests::rnd_bitvector_with_rnd_pois
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::rand_indices
    - auto::begin
    - Botan_Tests::rand_in_range
    - Botan::bitvector::size
    - auto::end
    linkageType: ''
    returnType: std::pair<Botan::bitvector, std::set<size_t>>
    signature: std::pair<Botan::bitvector, std::set<size_t>> rnd_bitvector_with_rnd_pois(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: Botan_Tests::pattern_generator
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto pattern_generator(size_t offset = 0)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:79,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:79,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:87,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:87,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:89,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:89,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:93,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:95,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:98,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:99,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:101,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:104,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:109,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:111,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:113,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:117,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:118,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:120,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:123,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:128,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:132,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:134,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:138,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:143,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: const_cast<const decltype(bv)&>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:147,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:149,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:149,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:150,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:150,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:157,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:157,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:159,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:165,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:168,1
    - Dst: flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:170,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:175,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:176,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:178,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:184,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:184,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:188,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:191,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:195,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:197,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:198,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:200,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:204,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:206,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:210,1
    - Dst: unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:213,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:215,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:217,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:219,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:221,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:223,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 112
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 226
    functionName: Botan_Tests::test_bitvector_bitwise_accessors
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - contains
    - const_cast<const decltype(bv)&>
    - Botan::bitvector::empty
    - test_is_true
    - test_bool_eq
    - next_byte
    - Botan::bitvector::flip
    - Botan::bitvector::size
    - test_no_throw
    - set
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - require
    - begin
    - unset
    - template test_throws<Botan::Invalid_Argument>
    - Botan_Tests::CHECK
    - std::find
    - Botan_Tests::rnd_bitvector_with_rnd_pois
    - test_sz_eq
    - flip
    - Botan::bitvector::at
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_bitwise_accessors(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:233,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:233,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:234,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:234,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:241,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:241,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:242,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:242,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:252,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:256,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:257,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:257,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:265,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:265,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:267,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:268,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:272,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:272,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:276,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:276,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:277,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:277,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:278,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:278,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:279,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:279,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:284,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:287,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:289,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:290,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:293,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:297,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:302,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:302,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:307,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:307,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:312,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:319,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:320,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:320,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:322,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:331,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:332,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:335,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:338,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:342,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:346,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:350,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:352,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:353,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:356,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:358,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:358,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:362,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:363,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 366
    functionName: Botan_Tests::test_bitvector_capacity
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::bitvector::empty
    - test_is_true
    - test_bool_eq
    - Botan::bitvector::size
    - Botan::bitvector::reserve
    - Botan::bitvector::pop_back
    - Botan::bitvector::back
    - test_sz_gte
    - Botan::bitvector::capacity
    - Botan::bitvector::push_back
    - Botan::bitvector::set
    - Botan::bitvector::at
    - Botan::bitvector::resize
    - Botan_Tests::CHECK
    - auto::at
    - test_sz_eq
    - test_throws
    - Botan::bitvector::front
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_capacity(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:370,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:378,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:391,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: bv_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:398,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:405,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:408,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:414,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:418,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:418,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:423,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:426,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:430,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:434,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:437,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:439,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:441,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:443,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:444,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:444,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:445,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:448,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:451,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:453,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:454,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:454,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:455,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:457,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:459,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:463,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:467,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:471,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:474,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:479,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:483,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:484,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:489,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:492,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:494,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:495,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:495,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:496,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:498,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:500,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:502,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:503,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:503,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:504,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:506,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:508,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:510,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:511,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:511,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:512,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:518,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:519,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:519,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:520,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:523,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:526,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:528,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:529,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:530,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:531,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:533,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:534,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:535,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:536,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:538,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:539,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:540,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:541,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:543,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:544,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:545,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:546,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:548,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:548,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:550,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:550,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:554,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:557,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:559,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:560,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:561,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:562,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:564,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:565,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:566,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:567,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:569,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:570,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:571,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:572,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:574,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:575,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:580,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:583,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:585,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:586,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:588,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:590,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:591,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:593,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:595,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:596,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:598,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:600,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:601,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:603,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:605,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:606,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:608,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:610,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:610,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:611,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:611,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:612,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:612,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:613,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:613,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:616,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:621,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:622,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:623,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:623,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:624,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:626,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:627,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:628,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:628,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:629,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:631,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:632,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:633,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:633,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:634,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:637,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:638,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:638,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:639,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:641,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:642,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:644,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:646,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:647,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:649,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:651,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:652,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:654,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 657
    functionName: Botan_Tests::test_bitvector_subvector
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_bitpattern
    - test_is_true
    - static_cast<T>
    - test_bool_eq
    - Botan::bitvector::subvector
    - auto::size
    - check_bitpattern
    - Botan_Tests::pattern_generator
    - T::size
    - Botan::bitvector::subvector_replace
    - template test_throws<Botan::Invalid_Argument>
    - auto::resize
    - Botan_Tests::CHECK
    - bitpattern_at
    - test_sz_eq
    - auto::subvector
    - test_throws
    - bv_t
    - check_bitpattern_with_zero_region
    - next
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_subvector(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:661,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:663,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:668,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:669,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:675,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:676,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:682,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:685,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:687,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:688,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:691,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:693,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:695,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:697,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:698,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:701,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:705,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: check_flipped_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:712,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:713,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:736,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:744,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:744,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:745,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:745,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:747,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:750,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:753,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:753,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:755,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:756,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:756,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:757,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:757,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:758,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:758,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:759,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:759,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:761,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:761,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:763,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:764,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:764,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:765,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:765,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:769,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:769,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:773,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:773,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:777,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:777,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:782,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:785,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:785,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:786,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:786,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:789,1
    - Dst: template as<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:794,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:800,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:800,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:801,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:801,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:804,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:808,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:812,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:813,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:813,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 821
    functionName: Botan_Tests::test_bitvector_global_modifiers_and_predicates
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_bitpattern
    - Botan::bitvector::none_vartime
    - test_is_true
    - test_bool_eq
    - Botan::bitvector::any_vartime
    - Botan::bitvector::flip
    - Botan::bitvector::size
    - Botan::bitvector::none
    - Botan::hex_decode
    - check_bitpattern
    - Botan_Tests::pattern_generator
    - Botan::bitvector::all_vartime
    - auto::pop_back
    - check_flipped_bitpattern
    - Botan::bitvector::push_back
    - Botan::bitvector
    - auto::hamming_weight
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - naive_count
    - Botan::bitvector::resize
    - Botan::bitvector::all
    - template as<size_t>
    - Botan::bitvector::any
    - Botan_Tests::CHECK
    - test_sz_eq
    - size
    - next
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_global_modifiers_and_predicates(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:825,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:827,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:828,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:834,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:840,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:844,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:847,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:849,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:852,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:852,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:854,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:855,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:858,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:858,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:861,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:864,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:866,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:868,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:871,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:874,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:876,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:879,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:882,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:884,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:886,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:889,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:892,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:894,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:897,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:900,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:902,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:904,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:907,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:910,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:912,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:915,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:918,1
    - Dst: Botan::secure_bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:920,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:922,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:925,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:926,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:934,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:937,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:938,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:942,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:945,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 949
    functionName: Botan_Tests::test_bitvector_binary_operators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_is_false
    - Botan::bitvector::equals
    - Botan::fmt
    - std::find
    - Botan_Tests::CHECK
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - Botan::secure_bitvector::set
    - test_is_true
    - begin
    - test_bool_eq
    - size
    - check_set
    - is_secure_allocator
    - Botan::bitvector::equals_vartime
    - end
    - is_standard_allocator
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_binary_operators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:962,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:966,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:966,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:968,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:974,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:977,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:977,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:980,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:980,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:983,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:983,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:986,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:991,1
    - Dst: Botan::secure_bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:992,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:996,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1000,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1003,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1005,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1006,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1006,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1009,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1015,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1017,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1018,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1018,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1021,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1024,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1033,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1036,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1037,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1037,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1040,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1043,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1046,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1049,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1051,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::test_bitvector_serialization
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::bitvector::empty
    - test_is_true
    - std::array::size
    - test_bool_eq
    - Botan::ceil_tobytes
    - first
    - Botan::secure_bitvector::to_bytes
    - Botan::copy_mem
    - test_u8_eq
    - static_cast<uint8_t>
    - std::vector::empty
    - validate_bytewise
    - Botan::bitvector::to_bytes
    - Botan::ct_is_equal
    - Botan::bitvector::set
    - require
    - auto::empty
    - Botan_Tests::CHECK
    - std::array::back
    - test_sz_eq
    - static_cast<size_t>
    - size
    - Botan::bitvector::at
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_serialization(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Choice::yes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1057,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1058,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1061,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1063,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1064,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1068,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1069,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1071,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1072,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1075,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1077,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1078,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1082,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1083,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1086,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1089,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1091,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1094,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1096,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1102,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1104,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1108
    functionName: Botan_Tests::test_bitvector_constant_time_operations
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::CT::Choice::yes
    - Botan_Tests::CHECK
    - Botan::secure_bitvector::push_back
    - test_is_true
    - Botan::bitvector::ct_conditional_xor
    - Botan::CT::Choice::no
    - Botan::bitvector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_constant_time_operations(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1113,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1119,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1126,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1133,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1136
    functionName: Botan_Tests::test_bitvector_conditional_xor_workload
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::bitvector
    - Botan::CT::Choice::from_int
    - Test::Result::set_ns_consumed
    - std::vector::push_back
    - Botan_Tests::Test::timestamp
    - std::vector::reserve
    - auto::next_byte
    - std::vector::at
    - auto::random_vec
    - Test::Result::test_is_true
    - static_cast<uint8_t>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_conditional_xor_workload(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1143,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1147,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1147,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1161,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1164,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1167,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1170,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1170,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: auto::is_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1182,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1188,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1188,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1189,1
    - Dst: auto::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1192,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1196,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1196,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1198,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1202,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1208,1
    - Dst: std::advance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1213,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1217,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1217,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1218,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1218,1
    - Dst: auto::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1219,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1221,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1221,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1228,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1233,1
    - Dst: Botan::secure_bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1236,1
    - Dst: Botan::secure_bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1237,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1246,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1248,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1249,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1252
    functionName: Botan_Tests::test_bitvector_iterators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::advance
    - test_is_true
    - test_bool_eq
    - Botan::secure_bitvector::cbegin
    - Botan::bitvector::cbegin
    - Botan::bitvector::all_vartime
    - Botan::bitvector::set
    - Botan::secure_bitvector::begin
    - Botan::bitvector::begin
    - auto::set
    - auto::is_set
    - Botan_Tests::CHECK
    - auto::flip
    - test_sz_eq
    - std::distance
    - Botan::bitvector::end
    - static_cast<size_t>
    - Botan::bitvector::cend
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_iterators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: TestBitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1264,1
    - Dst: TestBitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1264,1
    - Dst: TestBitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1267,1
    - Dst: TestBitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1268,1
    - Dst: TestBitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1269,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1270,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1271,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1272,1
    - Dst: TestBitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: TestBitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    - Dst: TestBitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1277,1
    - Dst: TestBitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1277,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1278,1
    - Dst: TestBitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1278,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1279,1
    - Dst: TestBitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1279,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1281,1
    - Dst: TestBitvector::has_odd_hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1281,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1285,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1285,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1289,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1293,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1293,1
    - Dst: TestBitvector::as
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1297,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1300,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1303,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1305,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1306,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1307,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1307,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1309,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1310,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1313
    functionName: Botan_Tests::test_bitvector_strongtype_adapter
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - TestBitvector::front
    - TestBitvector::pop_back
    - TestBitvector::has_odd_hamming_weight
    - auto::get
    - TestBitvector::none_vartime
    - Test::Result::test_sz_eq
    - TestBitvector::any_vartime
    - TestBitvector::all_vartime
    - TestBitvector::as
    - Test::Result::test_u32_eq
    - TestBitvector::unset
    - TestBitvector::size
    - TestBitvector::set
    - TestBitvector::back
    - Test::Result::test_is_true
    - Test::Result::test_str_eq
    - auto::subvector
    - TestBitvector::empty
    - TestBitvector::flip
    - TestBitvector::push_back
    - auto::to_string
    - TestBitvector::at
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_strongtype_adapter(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1319,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1335,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1340
    functionName: Botan_Tests::BitVector_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - fuzzer_rng
    - std::vector::end
    - test_func
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:32,1
    - Dst: random_array
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' rng'
    - min
    - max
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_Tests::rand_in_range
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 4
    functionsReached:
    - random_array
    - Botan::load_le<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t rand_in_range(Botan::RandomNumberGenerator& rng, size_t min,
      size_t max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:40,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:43,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:44,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:44,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:45,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: shuffle
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:51,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ' rng'
    - n
    - upper_bound
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: Botan_Tests::rand_indices
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 2
    functionsReached:
    - std::swap
    - std::vector::resize
    - std::vector::end
    - std::vector::begin
    - size
    - std::iota
    - Botan_Tests::rand_in_range
    - shuffle
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> rand_indices(Botan::RandomNumberGenerator& rng,
      size_t n, size_t upper_bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:58,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: Botan_Tests::rand_indices
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:60,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:60,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:62,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: Botan_Tests::rnd_bitvector_with_rnd_pois
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::rand_indices
    - auto::begin
    - Botan_Tests::rand_in_range
    - Botan::bitvector::size
    - auto::end
    linkageType: ''
    returnType: std::pair<Botan::bitvector, std::set<size_t>>
    signature: std::pair<Botan::bitvector, std::set<size_t>> rnd_bitvector_with_rnd_pois(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: Botan_Tests::pattern_generator
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto pattern_generator(size_t offset = 0)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:79,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:79,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:87,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:87,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:89,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:89,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:93,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:95,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:98,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:99,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:101,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:104,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:109,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:111,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:113,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:117,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:118,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:120,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:123,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:128,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:132,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:134,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:138,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:143,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: const_cast<const decltype(bv)&>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:147,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:149,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:149,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:150,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:150,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:157,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:157,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:159,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:165,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:168,1
    - Dst: flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:170,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:175,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:176,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:178,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:184,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:184,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:188,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:191,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:195,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:197,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:198,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:200,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:204,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:206,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:210,1
    - Dst: unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:213,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:215,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:217,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:219,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:221,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:223,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 112
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 226
    functionName: Botan_Tests::test_bitvector_bitwise_accessors
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - contains
    - const_cast<const decltype(bv)&>
    - Botan::bitvector::empty
    - test_is_true
    - test_bool_eq
    - next_byte
    - Botan::bitvector::flip
    - Botan::bitvector::size
    - test_no_throw
    - set
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - require
    - begin
    - unset
    - template test_throws<Botan::Invalid_Argument>
    - Botan_Tests::CHECK
    - std::find
    - Botan_Tests::rnd_bitvector_with_rnd_pois
    - test_sz_eq
    - flip
    - Botan::bitvector::at
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_bitwise_accessors(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:233,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:233,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:234,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:234,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:241,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:241,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:242,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:242,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:252,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:256,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:257,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:257,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:265,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:265,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:267,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:268,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:272,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:272,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:276,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:276,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:277,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:277,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:278,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:278,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:279,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:279,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:284,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:287,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:289,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:290,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:293,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:297,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:302,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:302,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:307,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:307,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:312,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:319,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:320,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:320,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:322,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:331,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:332,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:335,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:338,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:342,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:346,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:350,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:352,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:353,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:356,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:358,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:358,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:362,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:363,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 366
    functionName: Botan_Tests::test_bitvector_capacity
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::bitvector::empty
    - test_is_true
    - test_bool_eq
    - Botan::bitvector::size
    - Botan::bitvector::reserve
    - Botan::bitvector::pop_back
    - Botan::bitvector::back
    - test_sz_gte
    - Botan::bitvector::capacity
    - Botan::bitvector::push_back
    - Botan::bitvector::set
    - Botan::bitvector::at
    - Botan::bitvector::resize
    - Botan_Tests::CHECK
    - auto::at
    - test_sz_eq
    - test_throws
    - Botan::bitvector::front
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_capacity(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:370,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:378,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:391,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: bv_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:398,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:405,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:408,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:414,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:418,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:418,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:423,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:426,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:430,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:434,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:437,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:439,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:441,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:443,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:444,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:444,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:445,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:448,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:451,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:453,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:454,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:454,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:455,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:457,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:459,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:463,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:467,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:471,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:474,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:479,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:483,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:484,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:489,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:492,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:494,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:495,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:495,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:496,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:498,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:500,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:502,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:503,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:503,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:504,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:506,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:508,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:510,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:511,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:511,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:512,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:518,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:519,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:519,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:520,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:523,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:526,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:528,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:529,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:530,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:531,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:533,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:534,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:535,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:536,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:538,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:539,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:540,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:541,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:543,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:544,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:545,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:546,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:548,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:548,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:550,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:550,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:554,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:557,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:559,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:560,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:561,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:562,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:564,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:565,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:566,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:567,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:569,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:570,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:571,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:572,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:574,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:575,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:580,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:583,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:585,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:586,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:588,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:590,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:591,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:593,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:595,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:596,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:598,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:600,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:601,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:603,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:605,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:606,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:608,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:610,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:610,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:611,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:611,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:612,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:612,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:613,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:613,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:616,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:621,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:622,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:623,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:623,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:624,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:626,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:627,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:628,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:628,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:629,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:631,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:632,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:633,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:633,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:634,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:637,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:638,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:638,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:639,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:641,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:642,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:644,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:646,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:647,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:649,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:651,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:652,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:654,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 657
    functionName: Botan_Tests::test_bitvector_subvector
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_bitpattern
    - test_is_true
    - static_cast<T>
    - test_bool_eq
    - Botan::bitvector::subvector
    - auto::size
    - check_bitpattern
    - Botan_Tests::pattern_generator
    - T::size
    - Botan::bitvector::subvector_replace
    - template test_throws<Botan::Invalid_Argument>
    - auto::resize
    - Botan_Tests::CHECK
    - bitpattern_at
    - test_sz_eq
    - auto::subvector
    - test_throws
    - bv_t
    - check_bitpattern_with_zero_region
    - next
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_subvector(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:661,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:663,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:668,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:669,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:675,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:676,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:682,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:685,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:687,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:688,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:691,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:693,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:695,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:697,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:698,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:701,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:705,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: check_flipped_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:712,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:713,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:736,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:744,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:744,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:745,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:745,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:747,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:750,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:753,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:753,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:755,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:756,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:756,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:757,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:757,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:758,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:758,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:759,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:759,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:761,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:761,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:763,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:764,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:764,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:765,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:765,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:769,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:769,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:773,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:773,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:777,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:777,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:782,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:785,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:785,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:786,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:786,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:789,1
    - Dst: template as<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:794,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:800,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:800,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:801,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:801,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:804,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:808,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:812,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:813,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:813,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 821
    functionName: Botan_Tests::test_bitvector_global_modifiers_and_predicates
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_bitpattern
    - Botan::bitvector::none_vartime
    - test_is_true
    - test_bool_eq
    - Botan::bitvector::any_vartime
    - Botan::bitvector::flip
    - Botan::bitvector::size
    - Botan::bitvector::none
    - Botan::hex_decode
    - check_bitpattern
    - Botan_Tests::pattern_generator
    - Botan::bitvector::all_vartime
    - auto::pop_back
    - check_flipped_bitpattern
    - Botan::bitvector::push_back
    - Botan::bitvector
    - auto::hamming_weight
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - naive_count
    - Botan::bitvector::resize
    - Botan::bitvector::all
    - template as<size_t>
    - Botan::bitvector::any
    - Botan_Tests::CHECK
    - test_sz_eq
    - size
    - next
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_global_modifiers_and_predicates(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:825,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:827,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:828,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:834,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:840,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:844,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:847,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:849,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:852,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:852,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:854,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:855,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:858,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:858,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:861,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:864,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:866,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:868,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:871,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:874,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:876,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:879,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:882,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:884,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:886,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:889,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:892,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:894,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:897,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:900,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:902,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:904,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:907,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:910,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:912,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:915,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:918,1
    - Dst: Botan::secure_bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:920,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:922,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:925,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:926,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:934,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:937,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:938,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:942,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:945,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 949
    functionName: Botan_Tests::test_bitvector_binary_operators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_is_false
    - Botan::bitvector::equals
    - Botan::fmt
    - std::find
    - Botan_Tests::CHECK
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - Botan::secure_bitvector::set
    - test_is_true
    - begin
    - test_bool_eq
    - size
    - check_set
    - is_secure_allocator
    - Botan::bitvector::equals_vartime
    - end
    - is_standard_allocator
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_binary_operators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:962,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:966,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:966,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:968,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:974,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:977,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:977,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:980,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:980,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:983,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:983,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:986,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:991,1
    - Dst: Botan::secure_bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:992,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:996,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1000,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1003,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1005,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1006,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1006,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1009,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1015,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1017,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1018,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1018,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1021,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1024,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1033,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1036,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1037,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1037,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1040,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1043,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1046,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1049,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1051,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::test_bitvector_serialization
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::bitvector::empty
    - test_is_true
    - std::array::size
    - test_bool_eq
    - Botan::ceil_tobytes
    - first
    - Botan::secure_bitvector::to_bytes
    - Botan::copy_mem
    - test_u8_eq
    - static_cast<uint8_t>
    - std::vector::empty
    - validate_bytewise
    - Botan::bitvector::to_bytes
    - Botan::ct_is_equal
    - Botan::bitvector::set
    - require
    - auto::empty
    - Botan_Tests::CHECK
    - std::array::back
    - test_sz_eq
    - static_cast<size_t>
    - size
    - Botan::bitvector::at
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_serialization(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Choice::yes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1057,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1058,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1061,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1063,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1064,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1068,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1069,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1071,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1072,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1075,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1077,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1078,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1082,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1083,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1086,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1089,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1091,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1094,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1096,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1102,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1104,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1108
    functionName: Botan_Tests::test_bitvector_constant_time_operations
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::CT::Choice::yes
    - Botan_Tests::CHECK
    - Botan::secure_bitvector::push_back
    - test_is_true
    - Botan::bitvector::ct_conditional_xor
    - Botan::CT::Choice::no
    - Botan::bitvector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_constant_time_operations(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1113,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1119,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1126,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1133,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1136
    functionName: Botan_Tests::test_bitvector_conditional_xor_workload
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::bitvector
    - Botan::CT::Choice::from_int
    - Test::Result::set_ns_consumed
    - std::vector::push_back
    - Botan_Tests::Test::timestamp
    - std::vector::reserve
    - auto::next_byte
    - std::vector::at
    - auto::random_vec
    - Test::Result::test_is_true
    - static_cast<uint8_t>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_conditional_xor_workload(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1143,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1147,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1147,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1161,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1164,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1167,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1170,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1170,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: auto::is_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1182,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1188,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1188,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1189,1
    - Dst: auto::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1192,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1196,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1196,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1198,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1202,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1208,1
    - Dst: std::advance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1213,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1217,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1217,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1218,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1218,1
    - Dst: auto::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1219,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1221,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1221,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1228,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1233,1
    - Dst: Botan::secure_bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1236,1
    - Dst: Botan::secure_bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1237,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1246,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1248,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1249,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1252
    functionName: Botan_Tests::test_bitvector_iterators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::advance
    - test_is_true
    - test_bool_eq
    - Botan::secure_bitvector::cbegin
    - Botan::bitvector::cbegin
    - Botan::bitvector::all_vartime
    - Botan::bitvector::set
    - Botan::secure_bitvector::begin
    - Botan::bitvector::begin
    - auto::set
    - auto::is_set
    - Botan_Tests::CHECK
    - auto::flip
    - test_sz_eq
    - std::distance
    - Botan::bitvector::end
    - static_cast<size_t>
    - Botan::bitvector::cend
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_iterators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: TestBitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1264,1
    - Dst: TestBitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1264,1
    - Dst: TestBitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1267,1
    - Dst: TestBitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1268,1
    - Dst: TestBitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1269,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1270,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1271,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1272,1
    - Dst: TestBitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: TestBitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    - Dst: TestBitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1277,1
    - Dst: TestBitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1277,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1278,1
    - Dst: TestBitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1278,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1279,1
    - Dst: TestBitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1279,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1281,1
    - Dst: TestBitvector::has_odd_hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1281,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1285,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1285,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1289,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1293,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1293,1
    - Dst: TestBitvector::as
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1297,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1300,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1303,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1305,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1306,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1307,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1307,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1309,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1310,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1313
    functionName: Botan_Tests::test_bitvector_strongtype_adapter
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - TestBitvector::front
    - TestBitvector::pop_back
    - TestBitvector::has_odd_hamming_weight
    - auto::get
    - TestBitvector::none_vartime
    - Test::Result::test_sz_eq
    - TestBitvector::any_vartime
    - TestBitvector::all_vartime
    - TestBitvector::as
    - Test::Result::test_u32_eq
    - TestBitvector::unset
    - TestBitvector::size
    - TestBitvector::set
    - TestBitvector::back
    - Test::Result::test_is_true
    - Test::Result::test_str_eq
    - auto::subvector
    - TestBitvector::empty
    - TestBitvector::flip
    - TestBitvector::push_back
    - auto::to_string
    - TestBitvector::at
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_strongtype_adapter(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1319,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1335,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1340
    functionName: Botan_Tests::BitVector_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - fuzzer_rng
    - std::vector::end
    - test_func
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:32,1
    - Dst: random_array
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' rng'
    - min
    - max
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_Tests::rand_in_range
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 6
    functionsReached:
    - random_array
    - Botan::load_le<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t rand_in_range(Botan::RandomNumberGenerator& rng, size_t min,
      size_t max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:40,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:43,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:44,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:44,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:45,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:50,1
    - Dst: shuffle
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:51,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ' rng'
    - n
    - upper_bound
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: Botan_Tests::rand_indices
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 3
    functionsReached:
    - std::swap
    - std::vector::resize
    - std::vector::end
    - std::vector::begin
    - size
    - std::iota
    - Botan_Tests::rand_in_range
    - shuffle
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> rand_indices(Botan::RandomNumberGenerator& rng,
      size_t n, size_t upper_bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:58,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: Botan_Tests::rand_indices
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:60,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:60,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:62,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: Botan_Tests::rnd_bitvector_with_rnd_pois
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::rand_indices
    - auto::begin
    - Botan_Tests::rand_in_range
    - Botan::bitvector::size
    - auto::end
    linkageType: ''
    returnType: std::pair<Botan::bitvector, std::set<size_t>>
    signature: std::pair<Botan::bitvector, std::set<size_t>> rnd_bitvector_with_rnd_pois(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: Botan_Tests::pattern_generator
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto pattern_generator(size_t offset = 0)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:79,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:79,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:87,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:87,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:89,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:89,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:93,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:95,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:98,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:99,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:101,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:104,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:105,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:109,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:111,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:113,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:117,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:118,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:120,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:123,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:124,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:128,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:132,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:134,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:138,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:139,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:143,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: const_cast<const decltype(bv)&>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:147,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:149,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:149,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:150,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:150,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:157,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:157,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:159,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:165,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:168,1
    - Dst: flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:170,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:175,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:176,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:178,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:184,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:184,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:188,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:191,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:195,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:197,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:198,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:200,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:204,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:206,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:210,1
    - Dst: unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:213,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:215,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:217,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:219,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:221,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:223,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 112
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 226
    functionName: Botan_Tests::test_bitvector_bitwise_accessors
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - contains
    - const_cast<const decltype(bv)&>
    - Botan::bitvector::empty
    - test_is_true
    - test_bool_eq
    - next_byte
    - Botan::bitvector::flip
    - Botan::bitvector::size
    - test_no_throw
    - set
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - require
    - begin
    - unset
    - template test_throws<Botan::Invalid_Argument>
    - Botan_Tests::CHECK
    - std::find
    - Botan_Tests::rnd_bitvector_with_rnd_pois
    - test_sz_eq
    - flip
    - Botan::bitvector::at
    - end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_bitwise_accessors(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:233,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:233,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:234,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:234,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:241,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:241,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:242,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:242,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:252,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:256,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:257,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:257,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:265,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:265,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:267,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:268,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:272,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:272,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:276,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:276,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:277,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:277,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:278,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:278,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:279,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:279,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:284,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:287,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:289,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:290,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:293,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:297,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:302,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:302,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:307,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:307,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:312,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:319,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:320,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:320,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:322,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:331,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:332,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:335,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:338,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:342,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:346,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:350,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:352,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:353,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:353,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:356,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:356,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:358,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:358,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:362,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:362,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:363,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 366
    functionName: Botan_Tests::test_bitvector_capacity
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::bitvector::empty
    - test_is_true
    - test_bool_eq
    - Botan::bitvector::size
    - Botan::bitvector::reserve
    - Botan::bitvector::pop_back
    - Botan::bitvector::back
    - test_sz_gte
    - Botan::bitvector::capacity
    - Botan::bitvector::push_back
    - Botan::bitvector::set
    - Botan::bitvector::at
    - Botan::bitvector::resize
    - Botan_Tests::CHECK
    - auto::at
    - test_sz_eq
    - test_throws
    - Botan::bitvector::front
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_capacity(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:370,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:378,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:391,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: bv_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:398,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:399,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:405,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:408,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:414,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:418,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:418,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:423,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:426,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:430,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:434,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:437,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:439,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:441,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:443,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:444,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:444,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:445,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:448,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:451,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:453,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:454,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:454,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:455,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:457,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:459,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:463,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:467,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:471,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:474,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:479,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:483,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:484,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:489,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:492,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:494,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:495,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:495,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:496,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:498,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:500,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:502,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:503,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:503,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:504,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:506,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:508,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:510,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:511,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:511,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:512,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:518,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:519,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:519,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:520,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:523,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:526,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:528,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:529,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:530,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:531,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:533,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:534,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:535,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:536,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:538,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:539,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:540,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:541,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:543,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:544,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:545,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:546,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:548,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:548,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:550,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:550,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:554,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:557,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:559,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:560,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:561,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:562,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:564,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:565,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:566,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:567,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:569,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:570,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:571,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:572,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:574,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:575,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:580,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:583,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:585,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:586,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:588,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:590,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:591,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:593,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:595,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:596,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:598,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:600,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:601,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:603,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:605,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:606,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:608,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:610,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:610,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:611,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:611,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:612,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:612,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:613,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:613,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:616,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:621,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:622,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:623,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:623,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:624,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:626,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:627,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:628,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:628,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:629,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:631,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:632,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:633,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:633,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:634,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:637,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:638,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:638,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:639,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:641,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:642,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:644,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:646,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:647,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:649,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:651,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:652,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:654,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 657
    functionName: Botan_Tests::test_bitvector_subvector
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_bitpattern
    - test_is_true
    - static_cast<T>
    - test_bool_eq
    - Botan::bitvector::subvector
    - auto::size
    - check_bitpattern
    - Botan_Tests::pattern_generator
    - T::size
    - Botan::bitvector::subvector_replace
    - template test_throws<Botan::Invalid_Argument>
    - auto::resize
    - Botan_Tests::CHECK
    - bitpattern_at
    - test_sz_eq
    - auto::subvector
    - test_throws
    - bv_t
    - check_bitpattern_with_zero_region
    - next
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_subvector(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:661,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:663,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:668,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:669,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:670,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:675,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:676,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:677,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:682,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:685,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:687,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:688,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:691,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:693,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:695,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:697,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:698,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:701,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:705,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: check_flipped_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:712,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:713,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:736,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:744,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:744,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:745,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:745,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:747,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:750,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:753,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:753,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:755,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:756,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:756,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:757,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:757,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:758,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:758,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:759,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:759,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:761,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:761,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:763,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:764,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:764,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:765,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:765,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:769,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:769,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:773,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:773,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:777,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:777,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:782,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:785,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:785,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:786,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:786,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:789,1
    - Dst: template as<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:794,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:800,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:800,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:801,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:801,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:802,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:804,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:806,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:808,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:810,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:812,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:813,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:813,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:818,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 821
    functionName: Botan_Tests::test_bitvector_global_modifiers_and_predicates
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_bitpattern
    - Botan::bitvector::none_vartime
    - test_is_true
    - test_bool_eq
    - Botan::bitvector::any_vartime
    - Botan::bitvector::flip
    - Botan::bitvector::size
    - Botan::bitvector::none
    - Botan::hex_decode
    - check_bitpattern
    - Botan_Tests::pattern_generator
    - Botan::bitvector::all_vartime
    - auto::pop_back
    - check_flipped_bitpattern
    - Botan::bitvector::push_back
    - Botan::bitvector
    - auto::hamming_weight
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - naive_count
    - Botan::bitvector::resize
    - Botan::bitvector::all
    - template as<size_t>
    - Botan::bitvector::any
    - Botan_Tests::CHECK
    - test_sz_eq
    - size
    - next
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_global_modifiers_and_predicates(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:825,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:827,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:828,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:834,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:840,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:844,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:847,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:849,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:852,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:852,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:854,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:855,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:858,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:858,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:861,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:864,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:866,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:868,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:871,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:874,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:876,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:879,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:882,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:884,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:886,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:889,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:892,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:894,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:897,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:900,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:902,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:904,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:907,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:910,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:912,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:915,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:918,1
    - Dst: Botan::secure_bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:920,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:922,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:925,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:926,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:934,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:937,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:938,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:942,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:945,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 949
    functionName: Botan_Tests::test_bitvector_binary_operators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_is_false
    - Botan::bitvector::equals
    - Botan::fmt
    - std::find
    - Botan_Tests::CHECK
    - Botan::bitvector::unset
    - Botan::bitvector::set
    - Botan::secure_bitvector::set
    - test_is_true
    - begin
    - test_bool_eq
    - size
    - check_set
    - is_secure_allocator
    - Botan::bitvector::equals_vartime
    - end
    - is_standard_allocator
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_binary_operators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:962,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:965,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:966,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:966,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:968,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:974,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:977,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:977,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:980,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:980,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:983,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:983,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:986,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:991,1
    - Dst: Botan::secure_bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:992,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:996,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1000,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1003,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1005,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1006,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1006,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1009,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1012,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1015,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1017,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1018,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1018,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1021,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1024,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1030,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1033,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1036,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1037,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1037,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1040,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1043,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1046,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1049,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1051,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::test_bitvector_serialization
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::bitvector::empty
    - test_is_true
    - std::array::size
    - test_bool_eq
    - Botan::ceil_tobytes
    - first
    - Botan::secure_bitvector::to_bytes
    - Botan::copy_mem
    - test_u8_eq
    - static_cast<uint8_t>
    - std::vector::empty
    - validate_bytewise
    - Botan::bitvector::to_bytes
    - Botan::ct_is_equal
    - Botan::bitvector::set
    - require
    - auto::empty
    - Botan_Tests::CHECK
    - std::array::back
    - test_sz_eq
    - static_cast<size_t>
    - size
    - Botan::bitvector::at
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_serialization(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Choice::yes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1057,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1058,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1061,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1063,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1064,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1068,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1069,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1071,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1072,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1075,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1077,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1078,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1082,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1083,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1086,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1089,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1091,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1094,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1096,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1102,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1104,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1108
    functionName: Botan_Tests::test_bitvector_constant_time_operations
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::CT::Choice::yes
    - Botan_Tests::CHECK
    - Botan::secure_bitvector::push_back
    - test_is_true
    - Botan::bitvector::ct_conditional_xor
    - Botan::CT::Choice::no
    - Botan::bitvector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_constant_time_operations(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1113,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1119,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1121,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1126,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1129,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1133,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1136
    functionName: Botan_Tests::test_bitvector_conditional_xor_workload
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::bitvector
    - Botan::CT::Choice::from_int
    - Test::Result::set_ns_consumed
    - std::vector::push_back
    - Botan_Tests::Test::timestamp
    - std::vector::reserve
    - auto::next_byte
    - std::vector::at
    - auto::random_vec
    - Test::Result::test_is_true
    - static_cast<uint8_t>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_conditional_xor_workload(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1143,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1147,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1147,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1161,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1161,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1164,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1167,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1170,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1170,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: auto::is_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1178,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1182,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1188,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1188,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1189,1
    - Dst: auto::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1192,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1196,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1196,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1198,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1202,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1205,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1206,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1208,1
    - Dst: std::advance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1213,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1217,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1217,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1218,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1218,1
    - Dst: auto::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1219,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1221,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1221,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1228,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1233,1
    - Dst: Botan::secure_bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1236,1
    - Dst: Botan::secure_bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1237,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1246,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1248,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1249,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1252
    functionName: Botan_Tests::test_bitvector_iterators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::advance
    - test_is_true
    - test_bool_eq
    - Botan::secure_bitvector::cbegin
    - Botan::bitvector::cbegin
    - Botan::bitvector::all_vartime
    - Botan::bitvector::set
    - Botan::secure_bitvector::begin
    - Botan::bitvector::begin
    - auto::set
    - auto::is_set
    - Botan_Tests::CHECK
    - auto::flip
    - test_sz_eq
    - std::distance
    - Botan::bitvector::end
    - static_cast<size_t>
    - Botan::bitvector::cend
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_iterators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: TestBitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1264,1
    - Dst: TestBitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1264,1
    - Dst: TestBitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1267,1
    - Dst: TestBitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1268,1
    - Dst: TestBitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1269,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1270,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1271,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1272,1
    - Dst: TestBitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: TestBitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    - Dst: TestBitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1277,1
    - Dst: TestBitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1277,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1278,1
    - Dst: TestBitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1278,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1279,1
    - Dst: TestBitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1279,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1281,1
    - Dst: TestBitvector::has_odd_hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1281,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1285,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1285,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1289,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1293,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1293,1
    - Dst: TestBitvector::as
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1297,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1300,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1302,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1303,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1305,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1306,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1307,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1307,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1309,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1310,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1313
    functionName: Botan_Tests::test_bitvector_strongtype_adapter
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - TestBitvector::front
    - TestBitvector::pop_back
    - TestBitvector::has_odd_hamming_weight
    - auto::get
    - TestBitvector::none_vartime
    - Test::Result::test_sz_eq
    - TestBitvector::any_vartime
    - TestBitvector::all_vartime
    - TestBitvector::as
    - Test::Result::test_u32_eq
    - TestBitvector::unset
    - TestBitvector::size
    - TestBitvector::set
    - TestBitvector::back
    - Test::Result::test_is_true
    - Test::Result::test_str_eq
    - auto::subvector
    - TestBitvector::empty
    - TestBitvector::flip
    - TestBitvector::push_back
    - auto::to_string
    - TestBitvector::at
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_strongtype_adapter(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1319,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1335,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1340
    functionName: Botan_Tests::BitVector_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - fuzzer_rng
    - std::vector::end
    - test_func
    - std::vector::insert
    - auto::end
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:77,1
    - Dst: fn
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:77,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:79,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:79,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:79,1
    - Dst: what
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:79,1
    - Dst: get_return_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:81,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:85,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:85,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:85,1
    - Dst: what
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' name'
    - ' fns'
    argTypes:
    - std::string
    - std::vector<std::pair<std::string, std::function<Test::Result()>>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: run_pkcs11_tests
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 4
    functionsReached:
    - Botan::fmt
    - std::vector::push_back
    - fn
    - what
    - Botan_Tests::Test::Result::Failure
    - get_return_value
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: "std::vector<Test::Result> run_pkcs11_tests(const std::string& name,\n
      \                                          std::vector<std::pair<std::string,
      std::function<Test::Result()>>>& fns)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Test::pkcs11_lib
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:99,1
    - Dst: Module::Module
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:99,1
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:100,1
    - Dst: std::make_unique<Slot>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:101,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:101,1
    - Dst: std::make_unique<Session>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:102,1
    - Dst: login
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:104,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - login
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: TestSession::TestSession
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 8
    functionsReached:
    - PIN
    - Test::pkcs11_lib
    - Module::Module
    - login
    - std::vector::at
    - std::make_unique<Session>
    - Botan::PKCS11::Slot::get_available_slots
    - std::make_unique<Slot>
    linkageType: ''
    returnType: void
    signature: void TestSession(bool login)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: '& session() const'
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session
    signature: Session & session() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: '& slot() const'
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Slot
    signature: Slot & slot() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:123,1
    - Dst: Module
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:123,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: test_module_ctor
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Module
    - Test::Result::test_success
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_module_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Module::reload
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:136,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:137,1
    - Dst: Module::get_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:139,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 143
    functionName: test_module_reload
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Module::reload
    - Test::Result::test_success
    - Module::get_info
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_module_reload()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: test_multiple_modules
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_multiple_modules()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Module::get_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:160,1
    - Dst: Test::Result::test_sz_ne
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: test_module_get_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_sz_ne
    - Module::get_info
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_module_get_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:170,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:171,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:172,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:173,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: Module_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:187,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:188,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: test_slot_get_available_slots
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::Slot::get_available_slots
    - Test::Result::test_sz_gte
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_slot_get_available_slots()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:197,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:199,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:200,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:201,1
    - Dst: Slot::slot_id
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:201,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 204
    functionName: test_slot_ctor
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Test::Result::test_success
    - Slot::slot_id
    - Botan::PKCS11::Slot::get_available_slots
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_slot_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:210,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:211,1
    - Dst: Slot::get_slot_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:213,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:215,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: test_get_slot_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Slot::get_slot_info
    - std::vector::at
    - std::string::empty
    - reinterpret_cast<char*>
    - Botan::PKCS11::Slot::get_available_slots
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_slot_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:221,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:226,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:226,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:226,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: get_invalid_slot_id
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::Slot::get_available_slots
    - std::vector::end
    - std::vector::begin
    - std::find
    linkageType: ''
    returnType: SlotId
    signature: SlotId get_invalid_slot_id(Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_invalid_slot_id
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:238,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:242,1
    - Dst: Slot::get_slot_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 245
    functionName: test_slot_invalid_id
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Slot::get_slot_info
    - Test::Result::test_throws
    - get_invalid_slot_id
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_slot_invalid_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:251,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:252,1
    - Dst: Slot::get_token_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:254,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:255,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:256,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 259
    functionName: test_get_token_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - std::string::empty
    - Slot::get_token_info
    - reinterpret_cast<char*>
    - Botan::PKCS11::Slot::get_available_slots
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_token_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:265,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:266,1
    - Dst: Slot::get_mechanism_list
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:268,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:269,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: test_get_mechanism_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Slot::get_mechanism_list
    - Botan::PKCS11::Slot::get_available_slots
    - Test::Result::test_is_true
    - std::vector::empty
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_mechanism_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:278,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:279,1
    - Dst: Slot::get_mechanism_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:281,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 285
    functionName: test_get_mechanisms_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::Slot::get_available_slots
    - Test::Result::test_success
    - std::vector::at
    - Slot::get_mechanism_info
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_mechanisms_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:291,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:292,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:293,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:294,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:295,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:296,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:297,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: Slot_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:311,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:312,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:316,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:320,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:323,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:325,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 334
    functionName: test_session_ctor
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::Slot::get_available_slots
    - std::vector::at
    - Botan::PKCS11::flags
    - Test::Result::test_success
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_session_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_invalid_slot_id
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:341,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:344,1
    - Dst: Session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 347
    functionName: test_session_ctor_invalid_slot
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - get_invalid_slot_id
    - Session
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_session_ctor_invalid_slot()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:353,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:354,1
    - Dst: Session::release
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:357,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 363
    functionName: test_session_release
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::Slot::get_available_slots
    - std::vector::at
    - Test::Result::test_success
    - Session::release
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_session_release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:369,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:370,1
    - Dst: Session::login
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:373,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:373,1
    - Dst: Session::logoff
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:374,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:375,1
    - Dst: Session::login
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:377,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:377,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 381
    functionName: test_session_login_logout
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Test::Result::test_success
    - Session::login
    - Session::logoff
    - Botan::PKCS11::Slot::get_available_slots
    - SO_PIN
    - PIN
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_session_login_logout()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:387,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:388,1
    - Dst: Session::get_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:391,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:392,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:392,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:393,1
    - Dst: static_cast<CK_STATE>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:394,1
    - Dst: Session::login
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:396,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:396,1
    - Dst: Session::get_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:397,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:398,1
    - Dst: static_cast<CK_STATE>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:399,1
    - Dst: Session::logoff
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:401,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:402,1
    - Dst: Session::login
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:404,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:404,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 408
    functionName: test_session_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Session::get_info
    - Test::Result::test_success
    - SO_PIN
    - PIN
    - Session::login
    - Session::logoff
    - Botan::PKCS11::Slot::get_available_slots
    - static_cast<CK_STATE>
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_session_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:414,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:415,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:416,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:417,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:418,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 421
    functionName: Session_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AttributeContainer::add_class
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:432,1
    - Dst: AttributeContainer::add_string
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:435,1
    - Dst: AttributeContainer::add_binary
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:438,1
    - Dst: AttributeContainer::add_bool
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:440,1
    - Dst: AttributeContainer::add_numeric
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:441,1
    - Dst: AttributeContainer::add_numeric
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:442,1
    - Dst: AttributeContainer::add_numeric
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:443,1
    - Dst: AttributeContainer::add_numeric
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:445,1
    - Dst: AttributeContainer::add_numeric
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:446,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:448,1
    - Dst: AttributeContainer::count
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:448,1
    - Dst: AttributeContainer::attributes
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:450,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:451,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:452,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:452,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:453,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:453,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:453,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:454,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:454,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:454,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:455,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:455,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:455,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:456,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:457,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:457,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:458,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:458,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:458,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:459,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:460,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:460,1
    - Dst: Test::Result::test_u64_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:461,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:461,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 464
    functionName: test_attribute_container
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - AttributeContainer::attributes
    - AttributeContainer::add_bool
    - AttributeContainer::count
    - static_cast<CK_ATTRIBUTE_TYPE>
    - reinterpret_cast<uint64_t*>
    - AttributeContainer::add_binary
    - AttributeContainer::add_class
    - Test::Result::test_sz_eq
    - at
    - AttributeContainer::add_numeric
    - AttributeContainer::add_string
    - Test::Result::test_u64_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_attribute_container()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:468,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:468,1
    - Dst: DER_Encoder
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:474,1
    - Dst: DataObjectProperties::set_application
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:477,1
    - Dst: DataObjectProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:478,1
    - Dst: DataObjectProperties::set_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:479,1
    - Dst: DataObjectProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:480,1
    - Dst: DataObjectProperties::set_modifiable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:481,1
    - Dst: DataObjectProperties::set_object_id
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' label'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 485
    functionName: make_test_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - DataObjectProperties::set_token
    - DataObjectProperties::set_value
    - DataObjectProperties::set_object_id
    - DataObjectProperties::set_modifiable
    - std::string::end
    - DER_Encoder
    - DataObjectProperties::set_label
    - DataObjectProperties::set_application
    - std::string::begin
    linkageType: ''
    returnType: DataObjectProperties
    signature: DataObjectProperties make_test_object(const std::string& label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_test_object
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:494,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:495,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:496,1
    - Dst: Object::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:498,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 502
    functionName: test_create_destroy_data_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - make_test_object
    - TestSession::session
    - Test::Result::test_success
    - Object::destroy
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_create_destroy_data_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_test_object
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:511,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:512,1
    - Dst: Object::get_attribute_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:515,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:516,1
    - Dst: secure_vector::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:516,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:517,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:521,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:521,1
    - Dst: Object::set_attribute_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:522,1
    - Dst: Object::get_attribute_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:525,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:526,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:526,1
    - Dst: secure_vector::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:526,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:527,1
    - Dst: Object::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 531
    functionName: test_get_set_attribute_values
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - make_test_object
    - Object::set_attribute_value
    - std::string
    - secure_vector::end
    - std::string::end
    - Test::Result::test_str_eq
    - secure_vector::begin
    - Object::destroy
    - TestSession::session
    - Object::get_attribute_value
    - std::string::begin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_set_attribute_values()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_test_object
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:540,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:541,1
    - Dst: AttributeContainer::add_string
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:545,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:546,1
    - Dst: AttributeContainer::attributes
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:546,1
    - Dst: ObjectFinder::find
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:548,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:549,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:549,1
    - Dst: ObjectFinder::finish
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:550,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:552,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:552,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:553,1
    - Dst: Object::get_attribute_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:554,1
    - Dst: Object::get_attribute_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:555,1
    - Dst: Object::search<Object>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:557,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:557,1
    - Dst: AttributeContainer::attributes
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:557,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:558,1
    - Dst: Object::get_attribute_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:559,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:560,1
    - Dst: Object::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 564
    functionName: test_object_finder
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - make_test_object
    - AttributeContainer::attributes
    - auto::size
    - auto::at
    - Object::search<Object>
    - ObjectFinder::finish
    - Object::destroy
    - TestSession::session
    - Test::Result::test_sz_eq
    - ObjectFinder::find
    - Test::Result::test_bin_eq
    - Object::get_attribute_value
    - AttributeContainer::add_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_object_finder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_test_object
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:573,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:574,1
    - Dst: AttributeContainer::add_string
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:578,1
    - Dst: Object::copy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:579,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:581,1
    - Dst: AttributeContainer::attributes
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:581,1
    - Dst: ObjectFinder::find
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:582,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:583,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:583,1
    - Dst: Object::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:585,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:587,1
    - Dst: Object::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 590
    functionName: test_object_copy
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - make_test_object
    - Object::copy
    - AttributeContainer::attributes
    - auto::size
    - Object::destroy
    - TestSession::session
    - Test::Result::test_sz_eq
    - ObjectFinder::find
    - AttributeContainer::add_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_object_copy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:597,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:600,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:601,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:602,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:603,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 608
    functionName: Object_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:622,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:626,1
    - Dst: RSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:626,1
    - Dst: RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:629,1
    - Dst: RSA_PrivateKey::get_d
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:629,1
    - Dst: RSA_PrivateKeyImportProperties::set_pub_exponent
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:630,1
    - Dst: RSA_PrivateKey::get_e
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:630,1
    - Dst: RSA_PrivateKeyImportProperties::set_prime_1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:631,1
    - Dst: RSA_PrivateKey::get_p
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:631,1
    - Dst: RSA_PrivateKeyImportProperties::set_prime_2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:632,1
    - Dst: RSA_PrivateKey::get_q
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:632,1
    - Dst: RSA_PrivateKeyImportProperties::set_coefficient
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:633,1
    - Dst: RSA_PrivateKey::get_c
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:633,1
    - Dst: RSA_PrivateKeyImportProperties::set_exponent_1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:634,1
    - Dst: RSA_PrivateKey::get_d1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:634,1
    - Dst: RSA_PrivateKeyImportProperties::set_exponent_2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:635,1
    - Dst: RSA_PrivateKey::get_d2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:635,1
    - Dst: RSA_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:637,1
    - Dst: RSA_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:638,1
    - Dst: RSA_PrivateKeyImportProperties::set_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:639,1
    - Dst: RSA_PrivateKeyImportProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:640,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:642,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:643,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:644,1
    - Dst: PKCS11_RSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:644,1
    - Dst: PKCS11_RSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 648
    functionName: test_rsa_privkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PKCS11_RSA_PrivateKey::check_key
    - RSA_PrivateKeyImportProperties::set_coefficient
    - RSA_PrivateKey::get_e
    - RSA_PrivateKeyImportProperties::set_token
    - RSA_PrivateKeyImportProperties::set_decrypt
    - RSA_PrivateKey::get_n
    - PKCS11_RSA_PrivateKey::destroy
    - TestSession::session
    - RSA_PrivateKeyImportProperties::set_sign
    - Test::Result::test_success
    - RSA_PrivateKey::get_c
    - RSA_PrivateKeyImportProperties::set_private
    - RSA_PrivateKey::get_p
    - RSA_PrivateKeyImportProperties::set_exponent_1
    - RSA_PrivateKey::get_d
    - RSA_PrivateKey::get_q
    - RSA_PrivateKeyImportProperties::set_prime_2
    - RSA_PrivateKeyImportProperties::set_prime_1
    - Test::Result::test_is_true
    - RSA_PrivateKey::get_d1
    - Botan_Tests::Test::new_rng
    - RSA_PrivateKeyImportProperties::set_pub_exponent
    - RSA_PrivateKeyImportProperties::set_exponent_2
    - RSA_PrivateKey::get_d2
    - RSA_PrivateKey::check_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rsa_privkey_import()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:655,1
    - Dst: RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:661,1
    - Dst: RSA_PrivateKey::get_d
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:661,1
    - Dst: RSA_PrivateKeyImportProperties::set_pub_exponent
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:662,1
    - Dst: RSA_PrivateKey::get_e
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:662,1
    - Dst: RSA_PrivateKeyImportProperties::set_prime_1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:663,1
    - Dst: RSA_PrivateKey::get_p
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:663,1
    - Dst: RSA_PrivateKeyImportProperties::set_prime_2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:664,1
    - Dst: RSA_PrivateKey::get_q
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:664,1
    - Dst: RSA_PrivateKeyImportProperties::set_coefficient
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:665,1
    - Dst: RSA_PrivateKey::get_c
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:665,1
    - Dst: RSA_PrivateKeyImportProperties::set_exponent_1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:666,1
    - Dst: RSA_PrivateKey::get_d1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:666,1
    - Dst: RSA_PrivateKeyImportProperties::set_exponent_2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:667,1
    - Dst: RSA_PrivateKey::get_d2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:667,1
    - Dst: RSA_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:669,1
    - Dst: RSA_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:670,1
    - Dst: RSA_PrivateKeyImportProperties::set_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:671,1
    - Dst: RSA_PrivateKeyImportProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:672,1
    - Dst: RSA_PrivateKeyImportProperties::set_extractable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:673,1
    - Dst: RSA_PrivateKeyImportProperties::set_sensitive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:674,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:676,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:677,1
    - Dst: PKCS11_RSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:677,1
    - Dst: PKCS11_RSA_PrivateKey::export_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:679,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:680,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:681,1
    - Dst: RSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:681,1
    - Dst: PKCS11_RSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 685
    functionName: test_rsa_privkey_export
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PKCS11_RSA_PrivateKey::check_key
    - RSA_PrivateKeyImportProperties::set_coefficient
    - RSA_PrivateKey::get_e
    - RSA_PrivateKeyImportProperties::set_token
    - RSA_PrivateKeyImportProperties::set_sensitive
    - RSA_PrivateKeyImportProperties::set_decrypt
    - RSA_PrivateKey::get_n
    - PKCS11_RSA_PrivateKey::destroy
    - TestSession::session
    - RSA_PrivateKeyImportProperties::set_sign
    - Test::Result::test_success
    - RSA_PrivateKey::get_c
    - RSA_PrivateKeyImportProperties::set_private
    - RSA_PrivateKey::get_p
    - PKCS11_RSA_PrivateKey::export_key
    - RSA_PrivateKeyImportProperties::set_exponent_1
    - RSA_PrivateKey::get_d
    - RSA_PrivateKey::get_q
    - RSA_PrivateKeyImportProperties::set_prime_2
    - RSA_PrivateKeyImportProperties::set_prime_1
    - RSA_PrivateKeyImportProperties::set_extractable
    - Test::Result::test_is_true
    - RSA_PrivateKey::get_d1
    - Botan_Tests::Test::new_rng
    - RSA_PrivateKeyImportProperties::set_pub_exponent
    - RSA_PrivateKeyImportProperties::set_exponent_2
    - RSA_PrivateKey::get_d2
    - RSA_PrivateKey::check_key
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rsa_privkey_export()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:692,1
    - Dst: RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:698,1
    - Dst: RSA_PrivateKey::get_e
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:698,1
    - Dst: RSA_PublicKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:699,1
    - Dst: RSA_PublicKeyImportProperties::set_encrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:700,1
    - Dst: RSA_PublicKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:701,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:703,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:704,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:705,1
    - Dst: PKCS11_RSA_PublicKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:705,1
    - Dst: PKCS11_RSA_PublicKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 710
    functionName: test_rsa_pubkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - RSA_PrivateKey::get_e
    - RSA_PublicKeyImportProperties::set_private
    - PKCS11_RSA_PublicKey::destroy
    - RSA_PrivateKey::get_n
    - TestSession::session
    - PKCS11_RSA_PublicKey::check_key
    - RSA_PublicKeyImportProperties::set_token
    - Test::Result::test_is_true
    - RSA_PublicKeyImportProperties::set_encrypt
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rsa_pubkey_import()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PrivateKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:717,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:718,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:719,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:720,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:722,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:723,1
    - Dst: PKCS11_RSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 728
    functionName: test_rsa_generate_private_key
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - RSA_PrivateKeyGenerationProperties::set_decrypt
    - PKCS11_RSA_PrivateKey::destroy
    - TestSession::session
    - RSA_PrivateKeyGenerationProperties::set_private
    - RSA_PrivateKeyGenerationProperties::set_sign
    - RSA_PrivateKeyGenerationProperties::set_token
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rsa_generate_private_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PublicKeyGenerationProperties::set_pub_exponent
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:732,1
    - Dst: RSA_PublicKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:733,1
    - Dst: RSA_PublicKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:734,1
    - Dst: RSA_PublicKeyGenerationProperties::set_encrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:735,1
    - Dst: RSA_PublicKeyGenerationProperties::set_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:736,1
    - Dst: RSA_PublicKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:737,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:740,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:741,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:742,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:743,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:744,1
    - Dst: Botan::PKCS11::generate_rsa_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:746,1
    - Dst: session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ' test_session'
    argTypes:
    - TestSession
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 747
    functionName: generate_rsa_keypair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 1
    functionsReached:
    - Botan::PKCS11::generate_rsa_keypair
    - RSA_PrivateKeyGenerationProperties::set_decrypt
    - RSA_PublicKeyGenerationProperties::set_private
    - RSA_PublicKeyGenerationProperties::set_token
    - RSA_PublicKeyGenerationProperties::set_pub_exponent
    - RSA_PrivateKeyGenerationProperties::set_private
    - RSA_PrivateKeyGenerationProperties::set_sign
    - RSA_PublicKeyGenerationProperties::set_verify
    - RSA_PrivateKeyGenerationProperties::set_token
    - RSA_PublicKeyGenerationProperties::set_label
    - RSA_PrivateKeyGenerationProperties::set_label
    - RSA_PublicKeyGenerationProperties::set_encrypt
    - session
    linkageType: ''
    returnType: PKCS11_RSA_KeyPair
    signature: PKCS11_RSA_KeyPair generate_rsa_keypair(const TestSession& test_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_rsa_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:753,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:754,1
    - Dst: PKCS11_RSA_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:756,1
    - Dst: PKCS11_RSA_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 760
    functionName: test_rsa_generate_key_pair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - generate_rsa_keypair
    - Test::Result::test_success
    - PKCS11_RSA_KeyPair::first::destroy
    - PKCS11_RSA_KeyPair::second::destroy
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rsa_generate_key_pair()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_rsa_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:767,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:769,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:777,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:779,1
    - Dst: what
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:779,1
    - Dst: PKCS11_RSA_KeyPair::second::set_use_software_padding
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:785,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:787,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:795,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:795,1
    - Dst: what
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:795,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:798,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:802,1
    - Dst: std::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:802,1
    - Dst: std::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:802,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:802,1
    - Dst: encrypt_and_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:803,1
    - Dst: encrypt_and_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:806,1
    - Dst: encrypt_and_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:807,1
    - Dst: encrypt_and_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:809,1
    - Dst: encrypt_and_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:810,1
    - Dst: PKCS11_RSA_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:812,1
    - Dst: PKCS11_RSA_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 762
    functionDepth: 2
    functionLinenumber: 762
    functionLinenumberEnd: 816
    functionName: test_rsa_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PKCS11_RSA_KeyPair::first::destroy
    - PKCS11_RSA_KeyPair::second::destroy
    - std::end
    - encrypt_and_decrypt
    - generate_rsa_keypair
    - PKCS11_RSA_KeyPair::second::set_use_software_padding
    - Botan::PK_Encryptor_EME::encrypt
    - Botan::PK_Decryptor_EME::decrypt
    - std::ostringstream::str
    - Test::Result::test_bin_eq
    - what
    - std::iota
    - Test::Result::test_failure
    - std::begin
    - static_cast<uint8_t>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rsa_encrypt_decrypt()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generate_rsa_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:823,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:825,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:828,1
    - Dst: std::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:828,1
    - Dst: std::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:828,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:828,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:834,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:834,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:834,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:835,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:835,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:835,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:835,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:837,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:843,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:843,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:843,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:844,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:845,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:845,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:845,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:845,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:845,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:847,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:850,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:854,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:855,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:856,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:859,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:860,1
    - Dst: PKCS11_RSA_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:862,1
    - Dst: PKCS11_RSA_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 866
    functionName: test_rsa_sign_verify
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::update
    - Botan::PK_Signer::sign_message
    - PKCS11_RSA_KeyPair::first::destroy
    - sign_and_verify
    - std::end
    - static_cast<uint8_t>
    - std::vector::data
    - generate_rsa_keypair
    - Botan::PK_Verifier::verify_message
    - std::iota
    - PKCS11_RSA_KeyPair::second::destroy
    - Botan::PK_Verifier::update
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - std::begin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rsa_sign_verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:872,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:873,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:874,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:875,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:876,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:877,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:878,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 881
    functionName: PKCS11_RSA_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:892,1
    - Dst: _public_ec_point
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' pk'
    argTypes:
    - Botan::EC_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: encode_ec_point_in_octet_str
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - _public_ec_point
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> encode_ec_point_in_octet_str(const Botan::EC_PublicKey&
      pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:904,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:907,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:908,1
    - Dst: ECDSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:908,1
    - Dst: ECDSA_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:911,1
    - Dst: ECDSA_PrivateKey::private_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:911,1
    - Dst: EC_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:912,1
    - Dst: EC_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:913,1
    - Dst: EC_PrivateKeyImportProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:914,1
    - Dst: EC_PrivateKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:918,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:920,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:921,1
    - Dst: PKCS11_ECDSA_PrivateKey::set_public_point
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:922,1
    - Dst: ECDSA_PrivateKey::_public_ec_point
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:922,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:923,1
    - Dst: PKCS11_ECDSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:923,1
    - Dst: PKCS11_ECDSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 927
    functionName: test_ecdsa_privkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PrivateKeyImportProperties::set_token
    - PKCS11_ECDSA_PrivateKey::check_key
    - Test::Result::test_success
    - ECDSA_PrivateKey::_public_ec_point
    - ECDSA_PrivateKey::check_key
    - EC_PrivateKeyImportProperties::set_private
    - EC_PrivateKeyImportProperties::set_label
    - PKCS11_ECDSA_PrivateKey::destroy
    - Botan::EC_Group::from_name
    - EC_PrivateKeyImportProperties::set_sign
    - TestSession::session
    - PKCS11_ECDSA_PrivateKey::set_public_point
    - ECDSA_PrivateKey::DER_domain
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - ECDSA_PrivateKey::private_value
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdsa_privkey_import()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:934,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:937,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:939,1
    - Dst: ECDSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:939,1
    - Dst: ECDSA_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:941,1
    - Dst: ECDSA_PrivateKey::private_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:941,1
    - Dst: EC_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:942,1
    - Dst: EC_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:943,1
    - Dst: EC_PrivateKeyImportProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:944,1
    - Dst: EC_PrivateKeyImportProperties::set_extractable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:945,1
    - Dst: EC_PrivateKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:949,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:951,1
    - Dst: PKCS11_ECDSA_PrivateKey::set_public_point
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:952,1
    - Dst: ECDSA_PrivateKey::_public_ec_point
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:952,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:953,1
    - Dst: PKCS11_ECDSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:953,1
    - Dst: PKCS11_ECDSA_PrivateKey::export_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:955,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:956,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:957,1
    - Dst: ECDSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:957,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:958,1
    - Dst: ECDSA_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:958,1
    - Dst: ECDSA_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:958,1
    - Dst: PKCS11_ECDSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 962
    functionName: test_ecdsa_privkey_export
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - ECDSA_PrivateKey::check_key
    - PKCS11_ECDSA_PrivateKey::destroy
    - EC_PrivateKeyImportProperties::set_extractable
    - TestSession::session
    - PKCS11_ECDSA_PrivateKey::set_public_point
    - Test::Result::test_success
    - EC_PrivateKeyImportProperties::set_private
    - EC_PrivateKeyImportProperties::set_label
    - ECDSA_PrivateKey::DER_domain
    - PKCS11_ECDSA_PrivateKey::export_key
    - EC_PrivateKeyImportProperties::set_sign
    - ECDSA_PrivateKey::private_value
    - ECDSA_PrivateKey::private_key_bits
    - Botan::EC_Group::from_name
    - Test::Result::test_bin_eq
    - PKCS11_ECDSA_PrivateKey::check_key
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - EC_PrivateKeyImportProperties::set_token
    - ECDSA_PrivateKey::_public_ec_point
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdsa_privkey_export()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:969,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:972,1
    - Dst: encode_ec_point_in_octet_str
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:974,1
    - Dst: ECDSA_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:977,1
    - Dst: EC_PublicKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:978,1
    - Dst: EC_PublicKeyImportProperties::set_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:979,1
    - Dst: EC_PublicKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:980,1
    - Dst: EC_PublicKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:984,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:986,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:987,1
    - Dst: PKCS11_ECDSA_PublicKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 991
    functionName: test_ecdsa_pubkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - encode_ec_point_in_octet_str
    - EC_PublicKeyImportProperties::set_private
    - PKCS11_ECDSA_PublicKey::destroy
    - Test::Result::test_success
    - Botan::EC_Group::from_name
    - EC_PublicKeyImportProperties::set_label
    - TestSession::session
    - ECDSA_PrivateKey::DER_domain
    - EC_PublicKeyImportProperties::set_verify
    - EC_PublicKeyImportProperties::set_token
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdsa_pubkey_import()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:998,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1001,1
    - Dst: encode_ec_point_in_octet_str
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1003,1
    - Dst: ECDSA_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1006,1
    - Dst: EC_PublicKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1007,1
    - Dst: EC_PublicKeyImportProperties::set_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1008,1
    - Dst: EC_PublicKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1009,1
    - Dst: EC_PublicKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1013,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1015,1
    - Dst: PKCS11_ECDSA_PublicKey::export_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1017,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1018,1
    - Dst: PKCS11_ECDSA_PublicKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1023
    functionName: test_ecdsa_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - encode_ec_point_in_octet_str
    - EC_PublicKeyImportProperties::set_private
    - PKCS11_ECDSA_PublicKey::destroy
    - Test::Result::test_success
    - PKCS11_ECDSA_PublicKey::export_key
    - Botan::EC_Group::from_name
    - EC_PublicKeyImportProperties::set_label
    - TestSession::session
    - ECDSA_PrivateKey::DER_domain
    - EC_PublicKeyImportProperties::set_verify
    - EC_PublicKeyImportProperties::set_token
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdsa_pubkey_export()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_PrivateKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1030,1
    - Dst: EC_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1031,1
    - Dst: EC_PrivateKeyGenerationProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1032,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1034,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1034,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1035,1
    - Dst: PKCS11_ECDSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1040
    functionName: test_ecdsa_generate_private_key
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PrivateKeyGenerationProperties::set_token
    - EC_PrivateKeyGenerationProperties::set_private
    - Test::Result::test_success
    - EC_PrivateKeyGenerationProperties::set_sign
    - PKCS11_ECDSA_PrivateKey::destroy
    - Botan::EC_Group::from_name
    - TestSession::session
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdsa_generate_private_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1045,1
    - Dst: EC_PublicKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1046,1
    - Dst: EC_PublicKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1047,1
    - Dst: EC_PublicKeyGenerationProperties::set_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1048,1
    - Dst: EC_PublicKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1049,1
    - Dst: EC_PublicKeyGenerationProperties::set_modifiable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1050,1
    - Dst: EC_PrivateKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1053,1
    - Dst: EC_PrivateKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1054,1
    - Dst: EC_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1055,1
    - Dst: EC_PrivateKeyGenerationProperties::set_sensitive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1056,1
    - Dst: EC_PrivateKeyGenerationProperties::set_extractable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1057,1
    - Dst: EC_PrivateKeyGenerationProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1058,1
    - Dst: EC_PrivateKeyGenerationProperties::set_modifiable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1059,1
    - Dst: Botan::PKCS11::generate_ecdsa_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1061,1
    - Dst: session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - ' test_session'
    - ' curve'
    - enc
    argTypes:
    - TestSession
    - std::string
    - EC_Group_Encoding
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1062
    functionName: generate_ecdsa_keypair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 1
    functionsReached:
    - EC_PrivateKeyGenerationProperties::set_token
    - EC_PrivateKeyGenerationProperties::set_private
    - EC_PublicKeyGenerationProperties::set_private
    - EC_PublicKeyGenerationProperties::set_verify
    - EC_PrivateKeyGenerationProperties::set_extractable
    - EC_PrivateKeyGenerationProperties::set_sign
    - Botan::PKCS11::generate_ecdsa_keypair
    - Botan::EC_Group::from_name
    - EC_PrivateKeyGenerationProperties::set_modifiable
    - EC_PublicKeyGenerationProperties::set_token
    - EC_PrivateKeyGenerationProperties::set_label
    - session
    - EC_PublicKeyGenerationProperties::set_modifiable
    - EC_PrivateKeyGenerationProperties::set_sensitive
    - EC_PublicKeyGenerationProperties::set_label
    linkageType: ''
    returnType: PKCS11_ECDSA_KeyPair
    signature: "PKCS11_ECDSA_KeyPair generate_ecdsa_keypair(const TestSession& test_session,\n
      \                                           const std::string& curve,\n                                            EC_Group_Encoding
      enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1069,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1070,1
    - Dst: generate_ecdsa_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1073,1
    - Dst: PKCS11_ECDSA_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1075,1
    - Dst: PKCS11_ECDSA_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1076,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1081
    functionName: test_ecdsa_generate_keypair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - std::vector::push_back
    - PKCS11_ECDSA_KeyPair::second::destroy
    - generate_ecdsa_keypair
    - PKCS11_ECDSA_KeyPair::first::destroy
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdsa_generate_keypair()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1088,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1089,1
    - Dst: TestSession::slot
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1091,1
    - Dst: get_slot_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1092,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1093,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1095,1
    - Dst: generate_ecdsa_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1099,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1105,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1108,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1110,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1115,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1117,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1122,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1123,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1124,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1128,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1130,1
    - Dst: PKCS11_ECDSA_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1133,1
    - Dst: PKCS11_ECDSA_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - enc
    - ' test_name'
    argTypes:
    - EC_Group_Encoding
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1138
    functionName: test_ecdsa_sign_verify_core
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::sign_message
    - std::vector::push_back
    - sign_and_verify
    - PKCS11_ECDSA_KeyPair::second::destroy
    - reinterpret_cast<char*>
    - TestSession::slot
    - Botan::PK_Verifier::verify_message
    - generate_ecdsa_keypair
    - std::string::find
    - PKCS11_ECDSA_KeyPair::first::destroy
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - get_slot_info
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdsa_sign_verify_core(EC_Group_Encoding enc, const
      std::string& test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ecdsa_sign_verify_core
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1140
    functionDepth: 3
    functionLinenumber: 1140
    functionLinenumberEnd: 1143
    functionName: test_ecdsa_sign_verify
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - test_ecdsa_sign_verify_core
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdsa_sign_verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ecdsa_sign_verify_core
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1145
    functionDepth: 3
    functionLinenumber: 1145
    functionLinenumberEnd: 1148
    functionName: test_ecdsa_curve_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - test_ecdsa_sign_verify_core
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdsa_curve_import()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1154,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1155,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1156,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1157,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1158,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1159,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1160,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1161,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1164
    functionName: PKCS11_ECDSA_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1180,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1183,1
    - Dst: ECDH_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1186,1
    - Dst: ECDH_PrivateKey::private_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1186,1
    - Dst: EC_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1187,1
    - Dst: EC_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1188,1
    - Dst: EC_PrivateKeyImportProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1189,1
    - Dst: EC_PrivateKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1193,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1195,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1196,1
    - Dst: PKCS11_ECDH_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1200
    functionName: test_ecdh_privkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PrivateKeyImportProperties::set_token
    - EC_PrivateKeyImportProperties::set_derive
    - Test::Result::test_success
    - PKCS11_ECDH_PrivateKey::destroy
    - EC_PrivateKeyImportProperties::set_private
    - ECDH_PrivateKey::DER_domain
    - EC_PrivateKeyImportProperties::set_label
    - ECDH_PrivateKey::private_value
    - Botan::EC_Group::from_name
    - TestSession::session
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdh_privkey_import()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1207,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1210,1
    - Dst: ECDH_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1213,1
    - Dst: ECDH_PrivateKey::private_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1213,1
    - Dst: EC_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1214,1
    - Dst: EC_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1215,1
    - Dst: EC_PrivateKeyImportProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1216,1
    - Dst: EC_PrivateKeyImportProperties::set_extractable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1217,1
    - Dst: EC_PrivateKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1221,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1223,1
    - Dst: PKCS11_ECDH_PrivateKey::export_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1225,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1226,1
    - Dst: PKCS11_ECDH_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1230
    functionName: test_ecdh_privkey_export
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PrivateKeyImportProperties::set_token
    - EC_PrivateKeyImportProperties::set_derive
    - Test::Result::test_success
    - PKCS11_ECDH_PrivateKey::destroy
    - EC_PrivateKeyImportProperties::set_private
    - ECDH_PrivateKey::DER_domain
    - EC_PrivateKeyImportProperties::set_label
    - ECDH_PrivateKey::private_value
    - Botan::EC_Group::from_name
    - EC_PrivateKeyImportProperties::set_extractable
    - TestSession::session
    - PKCS11_ECDH_PrivateKey::export_key
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdh_privkey_export()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1237,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1240,1
    - Dst: encode_ec_point_in_octet_str
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1242,1
    - Dst: ECDH_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1245,1
    - Dst: EC_PublicKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1246,1
    - Dst: EC_PublicKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1247,1
    - Dst: EC_PublicKeyImportProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1248,1
    - Dst: EC_PublicKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1252,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1254,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1255,1
    - Dst: PKCS11_ECDH_PublicKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1259
    functionName: test_ecdh_pubkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - encode_ec_point_in_octet_str
    - EC_PublicKeyImportProperties::set_private
    - Test::Result::test_success
    - ECDH_PrivateKey::DER_domain
    - Botan::EC_Group::from_name
    - EC_PublicKeyImportProperties::set_label
    - TestSession::session
    - PKCS11_ECDH_PublicKey::destroy
    - EC_PublicKeyImportProperties::set_derive
    - EC_PublicKeyImportProperties::set_token
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdh_pubkey_import()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1266,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1269,1
    - Dst: encode_ec_point_in_octet_str
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1271,1
    - Dst: ECDH_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1274,1
    - Dst: EC_PublicKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1275,1
    - Dst: EC_PublicKeyImportProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1276,1
    - Dst: EC_PublicKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1277,1
    - Dst: EC_PublicKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1281,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1283,1
    - Dst: PKCS11_ECDH_PublicKey::export_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1285,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1286,1
    - Dst: PKCS11_ECDH_PublicKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1291
    functionName: test_ecdh_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - encode_ec_point_in_octet_str
    - EC_PublicKeyImportProperties::set_private
    - Test::Result::test_success
    - ECDH_PrivateKey::DER_domain
    - PKCS11_ECDH_PublicKey::export_key
    - Botan::EC_Group::from_name
    - EC_PublicKeyImportProperties::set_label
    - TestSession::session
    - PKCS11_ECDH_PublicKey::destroy
    - EC_PublicKeyImportProperties::set_derive
    - EC_PublicKeyImportProperties::set_token
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdh_pubkey_export()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_PrivateKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1298,1
    - Dst: EC_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1299,1
    - Dst: EC_PrivateKeyGenerationProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1300,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1302,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1302,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1303,1
    - Dst: PKCS11_ECDH_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1308
    functionName: test_ecdh_generate_private_key
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PrivateKeyGenerationProperties::set_token
    - EC_PrivateKeyGenerationProperties::set_private
    - Test::Result::test_success
    - PKCS11_ECDH_PrivateKey::destroy
    - EC_PrivateKeyGenerationProperties::set_derive
    - Botan::EC_Group::from_name
    - TestSession::session
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdh_generate_private_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1311,1
    - Dst: EC_PublicKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1312,1
    - Dst: EC_PublicKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1313,1
    - Dst: EC_PublicKeyGenerationProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1314,1
    - Dst: EC_PublicKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1315,1
    - Dst: EC_PublicKeyGenerationProperties::set_modifiable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1316,1
    - Dst: EC_PrivateKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1319,1
    - Dst: EC_PrivateKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1320,1
    - Dst: EC_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1321,1
    - Dst: EC_PrivateKeyGenerationProperties::set_sensitive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1322,1
    - Dst: EC_PrivateKeyGenerationProperties::set_extractable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1323,1
    - Dst: EC_PrivateKeyGenerationProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1324,1
    - Dst: EC_PrivateKeyGenerationProperties::set_modifiable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1325,1
    - Dst: Botan::PKCS11::generate_ecdh_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1327,1
    - Dst: session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - ' test_session'
    - ' label'
    argTypes:
    - TestSession
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1328
    functionName: generate_ecdh_keypair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 1
    functionsReached:
    - EC_PrivateKeyGenerationProperties::set_token
    - EC_PrivateKeyGenerationProperties::set_private
    - EC_PublicKeyGenerationProperties::set_derive
    - EC_PublicKeyGenerationProperties::set_private
    - Botan::PKCS11::generate_ecdh_keypair
    - EC_PrivateKeyGenerationProperties::set_derive
    - EC_PrivateKeyGenerationProperties::set_extractable
    - Botan::EC_Group::from_name
    - EC_PrivateKeyGenerationProperties::set_modifiable
    - EC_PublicKeyGenerationProperties::set_token
    - EC_PrivateKeyGenerationProperties::set_label
    - session
    - EC_PublicKeyGenerationProperties::set_modifiable
    - EC_PrivateKeyGenerationProperties::set_sensitive
    - EC_PublicKeyGenerationProperties::set_label
    linkageType: ''
    returnType: PKCS11_ECDH_KeyPair
    signature: PKCS11_ECDH_KeyPair generate_ecdh_keypair(const TestSession& test_session,
      const std::string& label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_ecdh_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1334,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1335,1
    - Dst: PKCS11_ECDH_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1337,1
    - Dst: PKCS11_ECDH_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1330
    functionDepth: 2
    functionLinenumber: 1330
    functionLinenumberEnd: 1341
    functionName: test_ecdh_generate_keypair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PKCS11_ECDH_KeyPair::second::destroy
    - generate_ecdh_keypair
    - PKCS11_ECDH_KeyPair::first::destroy
    - Test::Result::test_success
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdh_generate_keypair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_ecdh_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1347,1
    - Dst: generate_ecdh_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1348,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1350,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1356,1
    - Dst: PKCS11_ECDH_KeyPair::first::raw_public_key_bits
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1356,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1357,1
    - Dst: PKCS11_ECDH_KeyPair::first::raw_public_key_bits
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1357,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1360,1
    - Dst: PKCS11_ECDH_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1362,1
    - Dst: PKCS11_ECDH_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1363,1
    - Dst: PKCS11_ECDH_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1364,1
    - Dst: PKCS11_ECDH_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1343
    functionDepth: 2
    functionLinenumber: 1343
    functionLinenumberEnd: 1368
    functionName: test_ecdh_derive
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - generate_ecdh_keypair
    - PKCS11_ECDH_KeyPair::first::destroy
    - PKCS11_ECDH_KeyPair::second::destroy
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - PKCS11_ECDH_KeyPair::first::raw_public_key_bits
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ecdh_derive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1374,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1375,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1376,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1377,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1378,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1379,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1380,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1372
    functionDepth: 2
    functionLinenumber: 1372
    functionLinenumberEnd: 1383
    functionName: PKCS11_ECDH_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1396,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1397,1
    - Dst: PKCS11_RNG::is_seeded
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1397,1
    - Dst: PKCS11_RNG::randomize
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1400,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1400,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1400,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1401,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1392
    functionDepth: 1
    functionLinenumber: 1392
    functionLinenumberEnd: 1404
    functionName: test_rng_generate_random
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PKCS11_RNG::is_seeded
    - PKCS11_RNG::randomize
    - std::vector<uint8_t>
    - std::vector::data
    - TestSession::session
    - Test::Result::test_bin_ne
    - Test::Result::test_is_true
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rng_generate_random()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1410,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1412,1
    - Dst: PKCS11_RNG::is_seeded
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1412,1
    - Dst: PKCS11_RNG::clear
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1413,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1414,1
    - Dst: PKCS11_RNG::is_seeded
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1414,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1417,1
    - Dst: PKCS11_RNG::reseed_from_sources
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1418,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1418,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1421,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1422,1
    - Dst: PKCS11_RNG::add_entropy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1423,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1423,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1423,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1406
    functionDepth: 1
    functionLinenumber: 1406
    functionLinenumberEnd: 1427
    functionName: test_rng_add_entropy
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - auto::data
    - PKCS11_RNG::is_seeded
    - auto::size
    - PKCS11_RNG::reseed_from_sources
    - PKCS11_RNG::add_entropy
    - TestSession::session
    - Test::Result::test_sz_eq
    - PKCS11_RNG::clear
    - Botan::Entropy_Sources::global_sources
    - auto::random_vec
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_rng_add_entropy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1435,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1436,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1439,1
    - Dst: HMAC_DRBG::is_seeded
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1439,1
    - Dst: HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1440,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1441,1
    - Dst: HMAC_DRBG::is_seeded
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1441,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1444,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1444,1
    - Dst: HMAC_DRBG::add_entropy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1445,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1445,1
    - Dst: HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1447,1
    - Dst: Test::Result::test_bin_ne
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1448,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1431
    functionDepth: 1
    functionLinenumber: 1431
    functionLinenumberEnd: 1451
    functionName: test_pkcs11_hmac_drbg
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - std::string::end
    - HMAC_DRBG::random_vec
    - std::vector<uint8_t>
    - HMAC_DRBG::is_seeded
    - std::vector::data
    - TestSession::session
    - HMAC_DRBG::add_entropy
    - Test::Result::test_bin_ne
    - Test::Result::test_is_false
    - std::string::begin
    - Test::Result::test_is_true
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pkcs11_hmac_drbg()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1459,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1461,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1462,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1465,1
    - Dst: BOTAN_REGISTER_SERIALIZED_TEST
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1469,1
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1477,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1478,1
    - Dst: Botan::PKCS11::set_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1480,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1480,1
    - Dst: TEST_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1480,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1481,1
    - Dst: Botan::PKCS11::set_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1483,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1483,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1483,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1484,1
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1493,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1494,1
    - Dst: Botan::PKCS11::initialize_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1496,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1496,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1496,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1497,1
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1506,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1507,1
    - Dst: Botan::PKCS11::change_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1509,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1509,1
    - Dst: TEST_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1509,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1510,1
    - Dst: Botan::PKCS11::change_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1512,1
    - Dst: TEST_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1512,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1512,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1513,1
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1522,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1523,1
    - Dst: Botan::PKCS11::change_so_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1525,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1525,1
    - Dst: TEST_SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1525,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1526,1
    - Dst: Botan::PKCS11::change_so_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1528,1
    - Dst: TEST_SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1528,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1528,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1529,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1538,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1539,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1540,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1541,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1543,1
    - Dst: BOTAN_REGISTER_SERIALIZED_TEST
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1547,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1559,1
    - Dst: X509_CertificateProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1561,1
    - Dst: X509_CertificateProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1562,1
    - Dst: X509_CertificateProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1563,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1565,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1566,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1568,1
    - Dst: PKCS11_X509_Certificate::handle
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1568,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1569,1
    - Dst: PKCS11_X509_Certificate::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1571,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1581,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1583,1
    - Dst: BOTAN_REGISTER_SERIALIZED_TEST
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1456
    functionDepth: 2
    functionLinenumber: 1456
    functionLinenumberEnd: 1595
    functionName: run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 39
    functionsReached:
    - Botan::PKCS11::change_pin
    - TestSession::session
    - Botan::PKCS11::set_pin
    - Botan::PKCS11::initialize_token
    - Test::Result::test_success
    - PKCS11_X509_Certificate::destroy
    - std::vector::at
    - Botan::PKCS11::Slot::get_available_slots
    - X509_CertificateProperties::set_token
    - X509_CertificateProperties::set_label
    - Botan_Tests::Test::data_file
    - run_pkcs11_tests
    - Test::Result::test_is_true
    - SO_PIN
    - STRING_AND_FUNCTION
    - TEST_PIN
    - X509_CertificateProperties::set_private
    - PKCS11_X509_Certificate::handle
    - BOTAN_REGISTER_SERIALIZED_TEST
    - TEST_SO_PIN
    - Botan::PKCS11::change_so_pin
    - PIN
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1477,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1478,1
    - Dst: Botan::PKCS11::set_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1480,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1480,1
    - Dst: TEST_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1480,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1481,1
    - Dst: Botan::PKCS11::set_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1483,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1483,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1483,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1473
    functionDepth: 1
    functionLinenumber: 1473
    functionLinenumberEnd: 1487
    functionName: test_set_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - TEST_PIN
    - std::vector::at
    - Test::Result::test_success
    - PIN
    - Botan::PKCS11::set_pin
    - Botan::PKCS11::Slot::get_available_slots
    - SO_PIN
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_set_pin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1493,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1494,1
    - Dst: Botan::PKCS11::initialize_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1496,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1496,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1496,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1489
    functionDepth: 1
    functionLinenumber: 1489
    functionLinenumberEnd: 1500
    functionName: test_initialize
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Test::Result::test_success
    - Botan::PKCS11::Slot::get_available_slots
    - SO_PIN
    - Botan::PKCS11::initialize_token
    - PIN
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_initialize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1506,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1507,1
    - Dst: Botan::PKCS11::change_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1509,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1509,1
    - Dst: TEST_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1509,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1510,1
    - Dst: Botan::PKCS11::change_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1512,1
    - Dst: TEST_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1512,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1512,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1516
    functionName: test_change_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - TEST_PIN
    - std::vector::at
    - Test::Result::test_success
    - Botan::PKCS11::change_pin
    - Botan::PKCS11::Slot::get_available_slots
    - PIN
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_change_pin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1522,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1523,1
    - Dst: Botan::PKCS11::change_so_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1525,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1525,1
    - Dst: TEST_SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1525,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1526,1
    - Dst: Botan::PKCS11::change_so_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1528,1
    - Dst: TEST_SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1528,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1528,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1532
    functionName: test_change_so_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Test::Result::test_success
    - TEST_SO_PIN
    - Botan::PKCS11::change_so_pin
    - Botan::PKCS11::Slot::get_available_slots
    - SO_PIN
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_change_so_pin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1538,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1539,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1540,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1541,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1536
    functionDepth: 2
    functionLinenumber: 1536
    functionLinenumberEnd: 1544
    functionName: PKCS11_Token_Management_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1559,1
    - Dst: X509_CertificateProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1561,1
    - Dst: X509_CertificateProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1562,1
    - Dst: X509_CertificateProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1563,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1565,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1566,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1568,1
    - Dst: PKCS11_X509_Certificate::handle
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1568,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1569,1
    - Dst: PKCS11_X509_Certificate::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1553
    functionDepth: 1
    functionLinenumber: 1553
    functionLinenumberEnd: 1575
    functionName: test_x509_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - X509_CertificateProperties::set_label
    - Botan_Tests::Test::data_file
    - X509_CertificateProperties::set_private
    - PKCS11_X509_Certificate::handle
    - PKCS11_X509_Certificate::destroy
    - TestSession::session
    - X509_CertificateProperties::set_token
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_import()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1581,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1579
    functionDepth: 2
    functionLinenumber: 1579
    functionLinenumberEnd: 1584
    functionName: PKCS11_X509_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - STRING_AND_FUNCTION
    - run_pkcs11_tests
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: _TEST_FFI_STR_HELPER
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_STR_HELPER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: _TEST_FFI_STR
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - func
    - ','
    - file
    - ','
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: _TEST_FFI_SOURCE_LOCATION
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_SOURCE_LOCATION(func, file, line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: TEST_FFI_OK
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_OK(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: TEST_FFI_INIT
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_INIT(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - msg
    - ','
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: TEST_FFI_FAIL
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_FAIL(msg, func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rc
    - ','
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: TEST_FFI_RC
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_RC(rc, func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: REQUIRE_FFI_OK
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FFI_OK(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_Tests::ViewBytesSink::delegate
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * delegate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan_Tests::ViewBytesSink::callback
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_view_bin_fn
    signature: botan_view_bin_fn callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_Tests::ViewBytesSink::get
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::ViewBytesSink::data
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::ViewBytesSink::data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_Tests::ViewBytesSink::size
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::ViewBytesSink::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewBytesSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:99,1
    - Dst: auto*::m_buf::assign
      Src: /src/botan/src/tests/test_ffi.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - void*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: Botan_Tests::ViewBytesSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ViewBytesSink*>
    - auto*::m_buf::assign
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const uint8_t buf[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan_Tests::ViewStringSink::delegate
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * delegate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan_Tests::ViewStringSink::callback
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_view_str_fn
    signature: botan_view_str_fn callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& get()'
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & get()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewStringSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:126,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - str
    - len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: Botan_Tests::ViewStringSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ViewStringSink*>
    - std::string
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const char* str, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Test::name
      Src: /src/botan/src/tests/test_ffi.cpp:142,1
    - Dst: Botan_Tests::FFI_Test::skip_this_test
      Src: /src/botan/src/tests/test_ffi.cpp:144,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:146,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:147,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ffi.cpp:151,1
    - Dst: ffi_test
      Src: /src/botan/src/tests/test_ffi.cpp:152,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ffi.cpp:153,1
    - Dst: botan_rng_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:155,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ffi.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 161
    functionName: Botan_Tests::FFI_Test::run
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_Test::name
    - Botan_Tests::FFI_Test::skip_this_test
    - Test::Result::test_note
    - Test::Result::start_timer
    - botan_rng_init
    - ffi_test
    - Test::Result::end_timer
    - Test::Result::test_failure
    - botan_rng_destroy
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: Botan_Tests::FFI_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:181,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:185,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:192,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:199,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:204,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:206,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:208,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_ffi.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:215,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:220,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:225,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:228,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:235,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:239,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:244,1
    - Dst: botan_privkey_load
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:248,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:251,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:255,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:256,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:258,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:260,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:279,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:286,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:290,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:293,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:304,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_ffi.cpp:305,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 4
    argNames:
    - ' result'
    - pub
    - priv
    - rng
    argTypes:
    - Test::Result
    - botan_pubkey_t
    - botan_privkey_t
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 313
    functionName: Botan_Tests::ffi_test_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - botan_privkey_destroy
    - test_sz_gte
    - std::string::c_str
    - botan_privkey_load
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test_pubkey_export(Test::Result& result, botan_pubkey_t pub,
      botan_privkey_t priv, botan_rng_t rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: Botan_Tests::FFI_Utils_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: botan_version_major
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: Botan::version_major
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: botan_version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: Botan::version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: botan_version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: Botan::version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: botan_version_string
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: botan_version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:329,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:333,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:333,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:336,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:336,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:338,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:338,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:348,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:353,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:355,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 359
    functionName: Botan_Tests::FFI_Utils_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - botan_version_major
    - std::string::data
    - test_is_true
    - botan_version_minor
    - TEST_FFI_OK
    - Botan::version_cstr
    - botan_version_string
    - botan_version_patch
    - botan_ffi_api_version
    - test_rc_ok
    - std::vector::size
    - TEST_FFI_RC
    - Botan::version_major
    - Botan::version_minor
    - botan_ffi_supports_api
    - Botan::version_datestamp
    - std::vector::data
    - test_rc
    - std::string::resize
    - botan_version_datestamp
    - Botan::version_patch
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: Botan_Tests::FFI_RNG_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:378,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:380,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:381,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:383,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:384,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:388,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:389,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:392,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:398,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:402,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:406,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:409,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:411,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:413,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:416,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:420,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:428,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:434,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:440,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:446,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:447,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:449,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:452,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:453,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:457,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:459,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:468,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:473,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_ffi.cpp:474,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:475,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:480,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:484,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:490,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:494,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:497,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:501,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:507,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:510,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:515,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:516,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:517,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:522,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:523,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:531,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:535,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:536,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:537,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:539,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:543,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:545,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:549,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:552,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:559,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:562,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 115
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 563
    functionName: Botan_Tests::FFI_RNG_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - test_is_true
    - TEST_FFI_OK
    - test_note
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    - botan_tpm2_supports_crypto_backend
    - Botan_Tests::test_encoding_options
    - test_bin_eq
    - std::vector::size
    - TEST_FFI_RC
    - botan_rng_init
    - BOTAN_UNUSED
    - static_cast<size_t*>
    - auto::empty
    - Botan::clear_mem
    - REQUIRE_FFI_OK
    - TEST_FFI_FAIL
    - tpm2_test_rng
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 568
    functionName: Botan_Tests::FFI_RSA_Cert_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:573,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:574,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:575,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:576,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:577,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:580,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:581,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:583,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 586
    functionName: Botan_Tests::FFI_RSA_Cert_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - Botan_Tests::Test::data_file
    - TEST_FFI_INIT
    - TEST_FFI_RC
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 591
    functionName: Botan_Tests::FFI_ZFEC_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:638,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:638,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:647,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:647,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:651,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:657,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:668,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 674
    functionName: Botan_Tests::FFI_ZFEC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - std::to_string
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::data
    - TEST_FFI_INIT
    - test_note
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 679
    functionName: Botan_Tests::FFI_CRL_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:702,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:702,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:707,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:709,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:715,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:717,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:718,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:719,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:720,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:721,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:724,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:730,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:730,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:732,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:734,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:734,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:736,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:738,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:741,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:741,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:744,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:744,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:746,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:753,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:755,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:758,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:760,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:761,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:764,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:766,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:767,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:771,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:771,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:785,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_ffi.cpp:788,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: Botan::to_underlying
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:795,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:796,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:798,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:799,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:802,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:803,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:803,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:806,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:809,1
    - Dst: std::erase
      Src: /src/botan/src/tests/test_ffi.cpp:810,1
    - Dst: std::erase
      Src: /src/botan/src/tests/test_ffi.cpp:811,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: remove_newlines
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: remove_newlines
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:817,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:818,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:819,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_ffi.cpp:822,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_ffi.cpp:822,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:840,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:840,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:841,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:841,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:851,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:854,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:859,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:860,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:865,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:871,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:875,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:881,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:884,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:885,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:892,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:895,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:897,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:900,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:904,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:906,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:907,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:908,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:909,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:911,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:912,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:913,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:915,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 104
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 918
    functionName: Botan_Tests::FFI_CRL_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - remove_newlines
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan::to_underlying
    - test_u64_eq
    - std::erase
    - test_bin_eq
    - test_u8_eq
    - static_cast<uint8_t>
    - std::chrono::duration_cast<std::chrono::seconds>
    - TEST_FFI_RC
    - std::vector::resize
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - REQUIRE_FFI_OK
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - ViewStringSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - Botan::TLS::detail::AsyncBase::complete_now
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 923
    functionName: Botan_Tests::FFI_Cert_Validation_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 931
    functionName: Botan_Tests::FFI_Cert_Validation_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:939,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:940,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:940,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:941,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:942,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:943,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:944,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:944,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:945,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:946,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:946,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:949,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:951,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:951,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:952,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:955,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:957,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:957,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:958,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:963,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:965,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:967,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:968,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:969,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:970,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_ffi.cpp:979,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:990,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 3
    argNames:
    - ' result'
    - ee
    - ca
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - botan_x509_cert_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 992
    functionName: Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - ViewBytesSink::data
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - AlgorithmIdentifier
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void verify_bare_pkcs1_rsa_signature(Test::Result& result, botan_x509_cert_t
      ee, botan_x509_cert_t ca)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:998,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:998,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1005,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1005,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1007,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1010,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1013,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1014,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1015,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1016,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1019,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1020,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1021,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1023,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1024,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1025,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1026,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1031,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1031,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1034,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1035,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1036,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1037,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1040,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1041,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1042,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1042,1
    - Dst: Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
      Src: /src/botan/src/tests/test_ffi.cpp:1044,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1046,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1049,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1050,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1051,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1055,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1055,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1056,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1058,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1059,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1060,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1065,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1065,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1066,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1066,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1067,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1067,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1069,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1071,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1075,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1076,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1077,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1080,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1081,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1082,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1083,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1085
    functionName: Botan_Tests::FFI_Cert_Validation_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - TEST_FFI_OK
    - botan_x509_cert_validation_status
    - Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
    - TEST_FFI_INIT
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1090
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1096,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1105,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1108,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1111,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1121,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1130,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1134,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1139,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1147,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1147,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1155,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1159,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1161,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1161,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1174,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1188,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1189,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1190,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1195,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1197,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1198,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1201,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1211,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1215,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1219,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1220,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1231,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1233,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1238,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1239,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1240,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1241,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1242,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1243,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1243,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1245,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1246,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1247,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 71
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1251
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - std::string::data
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - test_bin_eq
    - std::vector::size
    - TEST_FFI_RC
    - std::vector::resize
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - Botan::hex_encode
    - test_sz_eq
    - ViewStringSink::callback
    - std::string::resize
    - std::vector::data
    - TEST_FFI_INIT
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1256
    functionName: Botan_Tests::FFI_Cert_ExtKeyUsages_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1271,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1274,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1278,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1279,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1280,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1281,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1284,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1285,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1288,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1289,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1292,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1293,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1296,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1299,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1300,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1305,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1306,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1307,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1310,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1311,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1312,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1314
    functionName: Botan_Tests::FFI_Cert_ExtKeyUsages_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - Botan_Tests::Test::data_file
    - TEST_FFI_INIT
    - TEST_FFI_OK
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_ffi.cpp:1320,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_ffi.cpp:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1324
    functionName: Botan_Tests::read_distinguished_name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_DN::decode_from
    - Botan::BER_Decoder
    linkageType: ''
    returnType: auto
    signature: auto read_distinguished_name(std::span<const uint8_t> bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enumerator_fn
      Src: /src/botan/src/tests/test_ffi.cpp:1339,1
    - Dst: visitor_fn
      Src: /src/botan/src/tests/test_ffi.cpp:1341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1342,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1347,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1349,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1350,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - visitor_fn
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - VisitorT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1353
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - test_sz_eq
    - TEST_FFI_OK
    - visitor_fn
    - botan_error_description
    - enumerator_fn
    - test_note
    linkageType: ''
    returnType: void
    signature: "void visit_general_names(Test::Result& result,\n                                      botan_x509_cert_t
      cert,\n                                      EnumeratorT enumerator_fn,\n                                      CountFnT
      count_fn,\n                                      VisitorT visitor_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
      Src: /src/botan/src/tests/test_ffi.cpp:1363,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1365,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ffi.cpp:1369,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - botan_x509_general_name_types
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1374
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - std::vector::push_back
    - ViewStringSink::callback
    - TEST_FFI_OK
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    - static_cast<botan_x509_general_name_types>
    - ViewStringSink::delegate
    linkageType: ''
    returnType: auto
    signature: "auto read_string_alternative_names(Test::Result& result,\n                                                botan_x509_cert_t
      cert,\n                                                EnumeratorT enumerator_fn,\n
      \                                               CountFnT count_fn,\n                                                botan_x509_general_name_types
      type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
      Src: /src/botan/src/tests/test_ffi.cpp:1384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - botan_x509_general_name_types
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1377
    functionDepth: 2
    functionLinenumber: 1377
    functionLinenumberEnd: 1395
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    - static_cast<botan_x509_general_name_types>
    linkageType: ''
    returnType: auto
    signature: "auto read_binary_alternative_names(Test::Result& result,\n                                                botan_x509_cert_t
      cert,\n                                                EnumeratorT enumerator_fn,\n
      \                                               CountFnT count_fn,\n                                                botan_x509_general_name_types
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    - Dst: auto::get_first_attribute
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const std::vector<uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1404
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - read_distinguished_name
    - auto::get_first_attribute
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto read_common_names(std::span<const std::vector<uint8_t>> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1407
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1411,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1412,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1417,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1418,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1419,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1422,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1423,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1431,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1434,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1434,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1439,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1439,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1442,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1443,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1443,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1445,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1445,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1447,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1448,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1448,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1449,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1449,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1451,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1452,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1452,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1456,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1457,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1457,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
      Src: /src/botan/src/tests/test_ffi.cpp:1458,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1459,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1459,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1460,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1460,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1461,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1461,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1467,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1470,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1471,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1471,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1472,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1472,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1473,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1473,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1474,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1474,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1476,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1477,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1477,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1478,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1478,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1479,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1479,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1481,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1485,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
      Src: /src/botan/src/tests/test_ffi.cpp:1492,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1493,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1493,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1497,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1409
    functionDepth: 3
    functionLinenumber: 1409
    functionLinenumberEnd: 1499
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
    - TEST_FFI_RC
    - auto::size
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - Botan::store_be
    - TEST_FFI_OK
    - Botan::value_exists
    - TEST_FFI_INIT
    - test_bin_eq
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: botan_x509_cert_permitted_name_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1511,1
    - Dst: botan_x509_cert_excluded_name_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1513,1
    - Dst: botan_x509_general_name_get_type
      Src: /src/botan/src/tests/test_ffi.cpp:1521,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1523,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1529,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1530,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1530,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1531,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1531,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1534,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1539,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1543,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1552,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1554,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1556,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - ' result'
    - cert
    - permitted
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1563
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - ViewStringSink::get
    - std::vector::emplace_back
    - botan_x509_cert_permitted_name_constraints
    - ViewStringSink::callback
    - read_distinguished_name
    - botan_error_description
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - test_sz_eq
    - botan_x509_cert_excluded_name_constraints
    - test_failure
    - static_cast<botan_x509_general_name_types>
    - ViewStringSink::delegate
    - botan_x509_general_name_get_type
    - test_note
    linkageType: ''
    returnType: auto
    signature: auto read_constraints(Test::Result& result, botan_x509_cert_t cert,
      bool permitted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1566
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1570,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1571,1
    - Dst: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1575,1
    - Dst: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1576,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1579,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1579,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1582,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1582,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1583,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1584,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1586,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1589,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1589,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1598,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1599,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1600,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1603,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1605,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1606,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1606,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1607,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1608,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1609,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1610,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1610,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1617,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1619,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1619,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1623,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1629,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1630,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1640,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1641,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1642,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1568
    functionDepth: 2
    functionLinenumber: 1568
    functionLinenumberEnd: 1645
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan::value_exists
    - static_cast<botan_x509_general_name_types>
    - auto::size
    - read_distinguished_name
    - TEST_FFI_RC
    - Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - test_enum_eq
    - test_sz_eq
    - ViewStringSink::callback
    - TEST_FFI_INIT
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1654,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1656,1
    - Dst: static_cast<std::vector<std::string>*>
      Src: /src/botan/src/tests/test_ffi.cpp:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' result'
    - cert
    - value_type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - botan_x509_value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1650
    functionDepth: 1
    functionLinenumber: 1650
    functionLinenumberEnd: 1664
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<std::vector<std::string>*>
    - TEST_FFI_OK
    linkageType: ''
    returnType: auto
    signature: auto read_aia_string_list(Test::Result& result, botan_x509_cert_t cert,
      botan_x509_value_type value_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1667
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1672,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1675,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1679,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1680,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1684,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1689,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1690,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1690,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1691,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1692,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1696,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1699,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1703,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1704,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1704,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1706,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1669
    functionDepth: 2
    functionLinenumber: 1669
    functionLinenumberEnd: 1712
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
    - TEST_FFI_RC
    - auto::size
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - TEST_FFI_OK
    - Botan::value_exists
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1719
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1723,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1725,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1725,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1726,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1728,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1729,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1721
    functionDepth: 1
    functionLinenumber: 1721
    functionLinenumberEnd: 1736
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1741
    functionDepth: 0
    functionLinenumber: 1741
    functionLinenumberEnd: 1741
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1750,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1751,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1752,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1756,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1757,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1758,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1777,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1778,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1786,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1789,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1790,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1802,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1805,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1806,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1809,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1812,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1814,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1814,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1817,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1819,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1821,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1823,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1830,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1833,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1834,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1836,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1837,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1840,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1848,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1850
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1855
    functionName: Botan_Tests::FFI_GCM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1861,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1864,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1864,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1865,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1867,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1868,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1868,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1869,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1870,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1870,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1881,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1883,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1887,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1891,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1893,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1894,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1896,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1898,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1900,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1901,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1902,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1905,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1908,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1909,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1910,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1912,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1925,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1928,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1931,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1932,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1934,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1935,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1937,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1942,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1945,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1946,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1948,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1949,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1952,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1953,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1955,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1956,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1959,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1961,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1968,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1971,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1972,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1974,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1978,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1978,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1979,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1979,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1982,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1857
    functionDepth: 1
    functionLinenumber: 1857
    functionLinenumberEnd: 1988
    functionName: Botan_Tests::FFI_GCM_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1993
    functionDepth: 0
    functionLinenumber: 1993
    functionLinenumberEnd: 1993
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1999,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2002,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2002,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2003,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2005,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2007,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2018,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2019,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2021,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2024,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2025,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2026,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2028,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2031,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2034,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2037,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2040,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2041,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2042,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2044,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2060,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2063,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2064,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2066,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2074,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2077,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2078,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2080,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2081,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2084,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2085,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2089,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2091,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2092,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2094,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2101,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2107,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2115,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2121
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::string
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2126
    functionName: Botan_Tests::FFI_EAX_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2132,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2141,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2142,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2147,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2148,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2149,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2152,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2153,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2154,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2156,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2159,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2160,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2162,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2164,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2166,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2169,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2170,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2171,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2172,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2187,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2190,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2193,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2197,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2201,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2204,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2207,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2208,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2211,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2213,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2214,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2222,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2225,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2226,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2228,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2229,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2232,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2232,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2242
    functionName: Botan_Tests::FFI_EAX_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2247
    functionDepth: 0
    functionLinenumber: 2247
    functionLinenumberEnd: 2247
    functionName: Botan_Tests::FFI_AEAD_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:2257,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: botan_cipher_is_authenticated
      Src: /src/botan/src/tests/test_ffi.cpp:2263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: botan_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2265,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2279,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2280,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: botan_cipher_requires_entire_message
      Src: /src/botan/src/tests/test_ffi.cpp:2301,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2302,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2315,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ffi.cpp:2321,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2321,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:2322,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2328,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2329,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2331,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ffi.cpp:2335,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2337,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2340,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2342,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2343,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2352,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2356,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:2359,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2360,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2363,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2363,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2365,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2365,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2366,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2369,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2371,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2374,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2375,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2381,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2382,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2383,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2385,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2391,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2392,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2394,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2401,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2413,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:2419,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2420,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2422,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2425,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2426,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2428,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2429,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ffi.cpp:2432,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2433,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2433,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2434,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2437,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2439,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2440,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2444,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2444,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2450,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2453,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2454,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:2456,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2457,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2460,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2461,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2462,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2463,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2467,1
    - Dst: merge
      Src: /src/botan/src/tests/test_ffi.cpp:2469,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 69
    argCount: 2
    argNames:
    - ' merged_result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2249
    functionDepth: 1
    functionLinenumber: 2249
    functionLinenumberEnd: 2471
    functionName: Botan_Tests::FFI_AEAD_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::data
    - TEST_FFI_OK
    - Test::Result::test_sz_eq
    - merge
    - std::span::first
    - c_str
    - botan_cipher_destroy
    - std::span::data
    - std::span::size
    - auto::size
    - std::span::subspan
    - Test::Result::test_failure
    - BOTAN_ASSERT_NOMSG
    - std::vector::size
    - TEST_FFI_RC
    - Test::Result::test_bool_eq
    - botan_cipher_requires_entire_message
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gt
    - Test::Result::test_sz_lte
    - std::vector::data
    - std::span
    - TEST_FFI_INIT
    - botan_cipher_is_authenticated
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& merged_result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2476
    functionDepth: 0
    functionLinenumber: 2476
    functionLinenumberEnd: 2476
    functionName: Botan_Tests::FFI_StreamCipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2481,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2482,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2483,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2484,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2486,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2494,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2495,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2497,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2500,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2509,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2512,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2513,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2515,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2516,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2516,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2520,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2478
    functionDepth: 1
    functionLinenumber: 2478
    functionLinenumberEnd: 2524
    functionName: Botan_Tests::FFI_StreamCipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2528
    functionDepth: 0
    functionLinenumber: 2528
    functionLinenumberEnd: 2528
    functionName: Botan_Tests::FFI_XOF_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2537,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2538,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2540,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2546,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2548,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2551,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2552,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2560,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2564,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2568,1
    - Dst: test_sz_ne
      Src: /src/botan/src/tests/test_ffi.cpp:2569,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2569,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2570,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2572,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2579,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2582,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2583,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2583,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2588,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2590,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2530
    functionDepth: 1
    functionLinenumber: 2530
    functionLinenumberEnd: 2592
    functionName: Botan_Tests::FFI_XOF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - test_rc
    - TEST_FFI_INIT
    - test_sz_ne
    - test_bin_eq
    - std::array::data
    - botan_xof_accepts_input
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2597
    functionDepth: 0
    functionLinenumber: 2597
    functionLinenumberEnd: 2597
    functionName: Botan_Tests::FFI_HashFunction_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2603,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2604,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2606,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2610,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2612,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2614,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2619,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2620,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2624,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2634,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2638,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2648,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2649,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2650,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2650,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2653,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2653,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2654,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2657,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2662,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2666,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2599
    functionDepth: 1
    functionLinenumber: 2599
    functionLinenumberEnd: 2668
    functionName: Botan_Tests::FFI_HashFunction_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - std::strlen
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2673
    functionDepth: 0
    functionLinenumber: 2673
    functionLinenumberEnd: 2673
    functionName: Botan_Tests::FFI_MAC_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2680,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2681,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2683,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2686,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2686,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2687,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2689,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2690,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2690,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2691,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2692,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2692,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2698,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2700,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2701,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2703,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2704,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2705,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2708,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2717,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2718,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2718,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2719,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2721,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2722,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2724,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2724,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2726,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2675
    functionDepth: 1
    functionLinenumber: 2675
    functionLinenumberEnd: 2733
    functionName: Botan_Tests::FFI_MAC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - std::strlen
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2738
    functionDepth: 0
    functionLinenumber: 2738
    functionLinenumberEnd: 2738
    functionName: Botan_Tests::FFI_Scrypt_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2751,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2754,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2740
    functionDepth: 1
    functionLinenumber: 2740
    functionLinenumberEnd: 2759
    functionName: Botan_Tests::FFI_Scrypt_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2764
    functionDepth: 0
    functionLinenumber: 2764
    functionLinenumberEnd: 2764
    functionName: Botan_Tests::FFI_KDF_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2771,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2775,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2777,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2779,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2780,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2781,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2794,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2795,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2801,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2802,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2804,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2805,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:2810,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2813,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2814,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2816,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2818,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2820,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2821,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2822,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2823,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2824,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2825,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2828,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2833,1
    - Dst: botan_bcrypt_generate
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2766
    functionDepth: 1
    functionLinenumber: 2766
    functionLinenumberEnd: 2844
    functionName: Botan_Tests::FFI_KDF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::to_string
    - botan_bcrypt_generate
    - std::vector::resize
    - reinterpret_cast<uint8_t*>
    - TEST_FFI_FAIL
    - std::string::data
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_OK
    - std::string::resize
    - TEST_FFI_INIT
    - test_bin_eq
    - std::string::c_str
    - test_note
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2849
    functionDepth: 0
    functionLinenumber: 2849
    functionLinenumberEnd: 2849
    functionName: Botan_Tests::FFI_Blockcipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2857,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2857,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2858,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2861,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2861,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2862,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2863,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2863,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2869,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2871,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2872,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2872,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2874,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2874,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2876,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2877,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2879,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2884,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2885,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2886,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2887,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2896,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2899,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2902,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2905,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: botan_block_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2851
    functionDepth: 1
    functionLinenumber: 2851
    functionLinenumberEnd: 2910
    functionName: Botan_Tests::FFI_Blockcipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_block_cipher_destroy
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2915
    functionDepth: 0
    functionLinenumber: 2915
    functionLinenumberEnd: 2915
    functionName: Botan_Tests::FFI_ErrorHandling_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2919,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2924,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: reinterpret_cast<botan_hash_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2926,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:2931,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:2932,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:2938,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_ffi.cpp:2938,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_ffi.cpp:2939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2917
    functionDepth: 1
    functionLinenumber: 2917
    functionLinenumberEnd: 2943
    functionName: Botan_Tests::FFI_ErrorHandling_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::set::insert
    - std::set::contains
    - test_is_true
    - botan_mp_init
    - botan_error_description
    - reinterpret_cast<botan_hash_t>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2948
      start: 2948
    functionDepth: 0
    functionLinenumber: 2948
    functionLinenumberEnd: 2948
    functionName: Botan_Tests::FFI_Base64_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2955,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2957,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2960,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2969,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2971,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2974,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2974,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2976,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2977,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2950
    functionDepth: 1
    functionLinenumber: 2950
    functionLinenumberEnd: 2978
    functionName: Botan_Tests::FFI_Base64_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - std::string
    - TEST_FFI_RC
    - test_sz_eq
    - TEST_FFI_OK
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2983
    functionDepth: 0
    functionLinenumber: 2983
    functionLinenumberEnd: 2983
    functionName: Botan_Tests::FFI_Hex_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2989,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2991,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2997,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2998,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3001,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:3001,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2985
    functionDepth: 1
    functionLinenumber: 2985
    functionLinenumberEnd: 3005
    functionName: Botan_Tests::FFI_Hex_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - std::string
    - TEST_FFI_RC
    - TEST_FFI_OK
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3010
    functionDepth: 0
    functionLinenumber: 3010
    functionLinenumberEnd: 3010
    functionName: Botan_Tests::FFI_MP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3017,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3019,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3021,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3022,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3025,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3027,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3028,1
    - Dst: botan_mp_set_from_int
      Src: /src/botan/src/tests/test_ffi.cpp:3030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3031,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3032,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3034,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3035,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3036,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3039,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3040,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3040,1
    - Dst: botan_mp_sub_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3042,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3043,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3044,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3045,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3049,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3050,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3050,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3052,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3053,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3054,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3055,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3056,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3060,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3062,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3063,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3065,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3066,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3068,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3070,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3071,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3072,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3076,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3077,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3081,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3082,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3084,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3085,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3088,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3090,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3091,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3093,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3098,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3099,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3101,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3102,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3106,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3107,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3109,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3125,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3126,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3128,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3130,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3132,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3133,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3133,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3135,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3136,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3137,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3137,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3140,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3141,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3146,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3148,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3149,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3149,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3151,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3153,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3154,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3154,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3155,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3162,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3166,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3170,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3172,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3173,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3173,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3174,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3176,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3178,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3179,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3183,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3188,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3192,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3195,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3200,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3204,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3205,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3210,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3212,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3213,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3216,1
    - Dst: botan_mp_to_bin
      Src: /src/botan/src/tests/test_ffi.cpp:3217,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3217,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3220,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3221,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3223,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3227,1
    - Dst: botan_mp_rand_bits
      Src: /src/botan/src/tests/test_ffi.cpp:3230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3231,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:3232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3235,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3238,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3239,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3240,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3242,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3243,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3244,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3245,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 160
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3012
    functionDepth: 1
    functionLinenumber: 3012
    functionLinenumberEnd: 3247
    functionName: Botan_Tests::FFI_MP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - test_u32_eq
    - botan_mp_set_from_int
    - botan_mp_add_u32
    - std::string
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - botan_mp_sub_u32
    - botan_mp_to_bin
    - botan_mp_rand_bits
    - test_bin_eq
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::callback
    - test_sz_lte
    - ViewStringSink::delegate
    - test_sz_eq
    - ViewStringSink::callback
    - botan_mp_init
    - std::vector::data
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3252
    functionDepth: 0
    functionLinenumber: 3252
    functionLinenumberEnd: 3252
    functionName: Botan_Tests::FFI_FPE_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3258,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:3259,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3262,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3263,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3268,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:3269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3274,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3279,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3281,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3287
      start: 3254
    functionDepth: 1
    functionLinenumber: 3254
    functionLinenumberEnd: 3287
    functionName: Botan_Tests::FFI_FPE_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - test_sz_eq
    - TEST_FFI_OK
    - botan_mp_init
    - botan_mp_set_from_str
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3292
    functionDepth: 0
    functionLinenumber: 3292
    functionLinenumberEnd: 3292
    functionName: Botan_Tests::FFI_TOTP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3295,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3305,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3308,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3309,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3311,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3312,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3313,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3294
    functionDepth: 1
    functionLinenumber: 3294
    functionLinenumberEnd: 3316
    functionName: Botan_Tests::FFI_TOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3321
      start: 3321
    functionDepth: 0
    functionLinenumber: 3321
    functionLinenumberEnd: 3321
    functionName: Botan_Tests::FFI_HOTP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3324,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3334,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3335,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3336,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3337,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3338,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3339,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3340,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3346,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3347,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3348,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3349,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3353
      start: 3323
    functionDepth: 1
    functionLinenumber: 3323
    functionLinenumberEnd: 3353
    functionName: Botan_Tests::FFI_HOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_OK
    - std::vector::data
    - test_u64_eq
    - TEST_FFI_INIT
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3358
      start: 3358
    functionDepth: 0
    functionLinenumber: 3358
    functionLinenumberEnd: 3358
    functionName: Botan_Tests::FFI_Keywrap_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3367,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3372,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3379,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3360
    functionDepth: 1
    functionLinenumber: 3360
    functionLinenumberEnd: 3383
    functionName: Botan_Tests::FFI_Keywrap_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - test_sz_eq
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3388
      start: 3388
    functionDepth: 0
    functionLinenumber: 3388
    functionLinenumberEnd: 3388
    functionName: Botan_Tests::FFI_XMSS_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3392,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3393,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3395,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3396,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3399,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3403,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3404,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3408
      start: 3390
    functionDepth: 1
    functionLinenumber: 3390
    functionLinenumberEnd: 3408
    functionName: Botan_Tests::FFI_XMSS_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_is_true
    - test_u64_eq
    - TEST_FFI_OK
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3413
    functionDepth: 0
    functionLinenumber: 3413
    functionLinenumberEnd: 3413
    functionName: Botan_Tests::FFI_RSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3418,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3419,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3422,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3423,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:3426,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3430,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3432,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3439,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3440,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3441,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3442,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3443,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3445,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3446,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3448,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3451,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3452,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3458,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3459,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3461,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3463,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3464,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3466,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3469,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3473,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3478,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3480,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3485,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3486,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3493,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3494,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3496,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3497,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3498,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3499,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3500,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3503,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3508,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3509,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3512,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3512,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3513,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3516,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3520,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3521,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3526,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3526,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3529,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3535,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3540,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3540,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3543,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3550,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3552,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3554,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3559,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3562,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3567,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3568,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 84
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3570
      start: 3415
    functionDepth: 1
    functionLinenumber: 3415
    functionLinenumberEnd: 3570
    functionName: Botan_Tests::FFI_RSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_is_true
    - std::array::size
    - TEST_FFI_OK
    - botan_mp_init
    - std::vector::data
    - std::array::data
    - TEST_FFI_INIT
    - test_bin_eq
    - botan_privkey_destroy
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3575
    functionDepth: 0
    functionLinenumber: 3575
    functionLinenumberEnd: 3575
    functionName: Botan_Tests::FFI_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3580,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:3581,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3584,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:3585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3587
      start: 3577
    functionDepth: 1
    functionLinenumber: 3577
    functionLinenumberEnd: 3587
    functionName: Botan_Tests::FFI_DSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_DSA_Test::do_dsa_test
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3591,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3594,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3595,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3597,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3604,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3605,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3606,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3607,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3610,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3611,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3612,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3613,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3614,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3617,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3620,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3621,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3623,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3626,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3627,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3628,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3636,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3638,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3639,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3640,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3641,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3642,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3649,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3654,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3658,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3658,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:3659,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3662,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3674,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3675,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3675,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3684,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3691,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 63
    argCount: 3
    argNames:
    - priv
    - rng
    - ' result'
    argTypes:
    - botan_privkey_t
    - botan_rng_t
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3698
      start: 3590
    functionDepth: 1
    functionLinenumber: 3590
    functionLinenumberEnd: 3698
    functionName: Botan_Tests::FFI_DSA_Test::do_dsa_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - botan_mp_destroy
    - std::vector::empty
    - TEST_FFI_RC
    - std::vector::resize
    - botan_mp_init
    - TEST_FFI_OK
    - std::vector::data
    - test_sz_lte
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void do_dsa_test(botan_privkey_t priv, botan_rng_t rng, Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3703
      start: 3703
    functionDepth: 0
    functionLinenumber: 3703
    functionLinenumberEnd: 3703
    functionName: Botan_Tests::FFI_ECDSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3714,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3715,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3722,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3723,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3724,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3729,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3730,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3731,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3737,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3740,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3741,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3747,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3747,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3748,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3748,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3756,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3761,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3763,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3767,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3769,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3774,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3774,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3781,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3783,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3795,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3801,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3805,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3806,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3807,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3808,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3809,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3811,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3813
      start: 3705
    functionDepth: 1
    functionLinenumber: 3705
    functionLinenumberEnd: 3813
    functionName: Botan_Tests::FFI_ECDSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3818
      start: 3818
    functionDepth: 0
    functionLinenumber: 3818
    functionLinenumberEnd: 3818
    functionName: Botan_Tests::FFI_SM2_Sig_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3829,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3845,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3846,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3847,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3849,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3850,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3851,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3853,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3854,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3856,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3857,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3858,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3861,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3863,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3863,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3864,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3864,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3870,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3870,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3875,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3894,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3895,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3895,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3899,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3900,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3900,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3905,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3905,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3911,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3915,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3917,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3918,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3919,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3920,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3820
    functionDepth: 1
    functionLinenumber: 3820
    functionLinenumberEnd: 3922
    functionName: Botan_Tests::FFI_SM2_Sig_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - std::string::c_str
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3927
      start: 3927
    functionDepth: 0
    functionLinenumber: 3927
    functionLinenumberEnd: 3927
    functionName: Botan_Tests::FFI_SM2_Enc_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3937,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3941,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3946,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3953,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3954,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3955,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3957,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3959,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3961,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3962,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3966,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3969,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3971,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3971,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3972,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3982,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3982,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3984,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3989,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3991,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3997,1
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3999,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4003,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4005,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4006,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4007,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3929
    functionDepth: 1
    functionLinenumber: 3929
    functionLinenumberEnd: 4009
    functionName: Botan_Tests::FFI_SM2_Enc_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    - botan_pk_op_decrypt_destroy
    - REQUIRE_FFI_OK
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 4014
    functionDepth: 0
    functionLinenumber: 4014
    functionLinenumberEnd: 4014
    functionName: Botan_Tests::FFI_ECDH_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4018,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4023,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4026,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4029,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4036,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4037,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4038,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4040,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4041,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4042,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4048,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4049,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4051,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4052,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4053,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4055,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4056,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4057,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4069,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4071,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4074,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4080,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4093,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4097,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4101,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4103,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4104,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4106,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4107,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4108,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4109,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4110,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4111,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4112,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4115
      start: 4016
    functionDepth: 1
    functionLinenumber: 4016
    functionLinenumberEnd: 4115
    functionName: Botan_Tests::FFI_ECDH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - ViewBytesSink::data
    - TEST_FFI_OK
    - botan_mp_init
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - test_bin_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4120
      start: 4120
    functionDepth: 0
    functionLinenumber: 4120
    functionLinenumberEnd: 4120
    functionName: Botan_Tests::FFI_McEliece_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4126,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4128,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:4131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4132,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4132,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4133,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4133,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4138,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4122
    functionDepth: 1
    functionLinenumber: 4122
    functionLinenumberEnd: 4141
    functionName: Botan_Tests::FFI_McEliece_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4146
    functionDepth: 0
    functionLinenumber: 4146
    functionLinenumberEnd: 4146
    functionName: Botan_Tests::FFI_Ed25519_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4154,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4156,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4157,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4158,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4167,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4171,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4174,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4177,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4187,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4189,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4192,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4194,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4201,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4205,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4208,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4210
      start: 4148
    functionDepth: 1
    functionLinenumber: 4148
    functionLinenumberEnd: 4210
    functionName: Botan_Tests::FFI_Ed25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4215
      start: 4215
    functionDepth: 0
    functionLinenumber: 4215
    functionLinenumberEnd: 4215
    functionName: Botan_Tests::FFI_Ed448_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4222,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4224,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4227,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4238,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4244,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4245,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4245,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4254,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4256,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4258,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4258,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4259,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4261,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4264,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4268,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4272,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4217
    functionDepth: 1
    functionLinenumber: 4217
    functionLinenumberEnd: 4277
    functionName: Botan_Tests::FFI_Ed448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - auto::size
    - std::vector::resize
    - std::vector::data
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4282
    functionDepth: 0
    functionLinenumber: 4282
    functionLinenumberEnd: 4282
    functionName: Botan_Tests::FFI_X25519_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4288,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4290,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4292,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4294,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4303,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4309,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4309,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4310,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4313,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4313,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4315,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4318,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4321,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4322,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4325,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4328,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4329,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4284
    functionDepth: 1
    functionLinenumber: 4284
    functionLinenumberEnd: 4331
    functionName: Botan_Tests::FFI_X25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - REQUIRE_FFI_OK
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4336
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4336
    functionName: Botan_Tests::FFI_X448_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4340,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4342,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4344,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4346,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4350,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4350,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4355,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4355,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4356,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4361,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4363,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4366,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4367,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4367,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4368,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4375,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4378,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4380,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4381,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4382,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4384
      start: 4338
    functionDepth: 1
    functionLinenumber: 4338
    functionLinenumberEnd: 4384
    functionName: Botan_Tests::FFI_X448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - REQUIRE_FFI_OK
    - auto::size
    - std::vector::data
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: modes
      Src: /src/botan/src/tests/test_ffi.cpp:4403,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4407,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:4407,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4410,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4421,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4421,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4422,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4422,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4423,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4423,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4424,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4441,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4442,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4447,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:4460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4469,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4477,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4479,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4480,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4481,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4482,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4489,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4490,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4494,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4499,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4500,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4509,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4513,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4514,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4516,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4518,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4520,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4523,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4525,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4526,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4402
    functionDepth: 1
    functionLinenumber: 4402
    functionLinenumberEnd: 4530
    functionName: Botan_Tests::FFI_KEM_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - private_key_load_function
    - Botan::secure_vector::data
    - TEST_FFI_RC
    - std::vector::resize
    - public_key_load_function
    - test_is_true
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_INIT
    - algo
    - Botan::secure_vector::resize
    - test_bin_eq
    - modes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: modes
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4571,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4571,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4572,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4573,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4573,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4586,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4590,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4598,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4605,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4605,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4612,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4612,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4613,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4614,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4615,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4619,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4619,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4628,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4628,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4630,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4631,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4636,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4640
      start: 4549
    functionDepth: 1
    functionLinenumber: 4549
    functionLinenumberEnd: 4640
    functionName: Botan_Tests::FFI_Signature_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - private_key_load_function
    - Botan::secure_vector::data
    - TEST_FFI_RC
    - public_key_load_function
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - hash_algo_or_padding
    - TEST_FFI_INIT
    - algo
    - std::vector::data
    - test_bin_eq
    - Botan::secure_vector::resize
    - Botan::secure_vector::size
    - modes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4645
      start: 4645
    functionDepth: 0
    functionLinenumber: 4645
    functionLinenumberEnd: 4645
    functionName: Botan_Tests::FFI_Kyber512_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4648,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4650,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4652,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4656,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4656,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4664,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4664,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4665,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4665,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4674,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4674,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4675,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4675,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4678,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4678,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4680,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4682,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4683,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4685
      start: 4647
    functionDepth: 1
    functionLinenumber: 4647
    functionLinenumberEnd: 4685
    functionName: Botan_Tests::FFI_Kyber512_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4690
      start: 4690
    functionDepth: 0
    functionLinenumber: 4690
    functionLinenumberEnd: 4690
    functionName: Botan_Tests::FFI_Kyber768_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4693,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4695,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4697,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4701,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4701,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4709,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4709,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4710,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4719,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4719,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4720,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4720,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4723,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4725,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4728,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4730
      start: 4692
    functionDepth: 1
    functionLinenumber: 4692
    functionLinenumberEnd: 4730
    functionName: Botan_Tests::FFI_Kyber768_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4735
      start: 4735
    functionDepth: 0
    functionLinenumber: 4735
    functionLinenumberEnd: 4735
    functionName: Botan_Tests::FFI_Kyber1024_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4738,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4740,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4742,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4746,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4754,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4754,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4755,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4755,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4761,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4764,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4764,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4765,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4768,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4768,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4770,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4773,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4775
      start: 4737
    functionDepth: 1
    functionLinenumber: 4737
    functionLinenumberEnd: 4775
    functionName: Botan_Tests::FFI_Kyber1024_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4780
      start: 4780
    functionDepth: 0
    functionLinenumber: 4780
    functionLinenumberEnd: 4780
    functionName: Botan_Tests::FFI_ML_KEM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4783
      start: 4783
    functionDepth: 0
    functionLinenumber: 4783
    functionLinenumberEnd: 4783
    functionName: Botan_Tests::FFI_ML_KEM_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4785
      start: 4785
    functionDepth: 0
    functionLinenumber: 4785
    functionLinenumberEnd: 4785
    functionName: Botan_Tests::FFI_ML_KEM_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4787
    functionDepth: 0
    functionLinenumber: 4787
    functionLinenumberEnd: 4787
    functionName: Botan_Tests::FFI_ML_KEM_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4789
      start: 4789
    functionDepth: 0
    functionLinenumber: 4789
    functionLinenumberEnd: 4789
    functionName: Botan_Tests::FFI_ML_KEM_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4794
      start: 4794
    functionDepth: 0
    functionLinenumber: 4794
    functionLinenumberEnd: 4794
    functionName: Botan_Tests::FFI_FrodoKEM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4797
      start: 4797
    functionDepth: 0
    functionLinenumber: 4797
    functionLinenumberEnd: 4797
    functionName: Botan_Tests::FFI_FrodoKEM_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4799
      start: 4799
    functionDepth: 0
    functionLinenumber: 4799
    functionLinenumberEnd: 4799
    functionName: Botan_Tests::FFI_FrodoKEM_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4801
      start: 4801
    functionDepth: 0
    functionLinenumber: 4801
    functionLinenumberEnd: 4801
    functionName: Botan_Tests::FFI_FrodoKEM_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4818
      start: 4803
    functionDepth: 0
    functionLinenumber: 4803
    functionLinenumberEnd: 4818
    functionName: Botan_Tests::FFI_FrodoKEM_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4823
      start: 4823
    functionDepth: 0
    functionLinenumber: 4823
    functionLinenumberEnd: 4823
    functionName: Botan_Tests::FFI_ML_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4826
      start: 4826
    functionDepth: 0
    functionLinenumber: 4826
    functionLinenumberEnd: 4826
    functionName: Botan_Tests::FFI_ML_DSA_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4828
      start: 4828
    functionDepth: 0
    functionLinenumber: 4828
    functionLinenumberEnd: 4828
    functionName: Botan_Tests::FFI_ML_DSA_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4830
      start: 4830
    functionDepth: 0
    functionLinenumber: 4830
    functionLinenumberEnd: 4830
    functionName: Botan_Tests::FFI_ML_DSA_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4838
      start: 4832
    functionDepth: 0
    functionLinenumber: 4832
    functionLinenumberEnd: 4838
    functionName: Botan_Tests::FFI_ML_DSA_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4840
    functionDepth: 0
    functionLinenumber: 4840
    functionLinenumberEnd: 4840
    functionName: Botan_Tests::FFI_ML_DSA_Test::hash_algo_or_padding
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * hash_algo_or_padding() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4845
      start: 4845
    functionDepth: 0
    functionLinenumber: 4845
    functionLinenumberEnd: 4845
    functionName: Botan_Tests::FFI_SLH_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4848
      start: 4848
    functionDepth: 0
    functionLinenumber: 4848
    functionLinenumberEnd: 4848
    functionName: Botan_Tests::FFI_SLH_DSA_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4850
    functionDepth: 0
    functionLinenumber: 4850
    functionLinenumberEnd: 4850
    functionName: Botan_Tests::FFI_SLH_DSA_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4852
      start: 4852
    functionDepth: 0
    functionLinenumber: 4852
    functionLinenumberEnd: 4852
    functionName: Botan_Tests::FFI_SLH_DSA_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ffi.cpp:4864,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4877
      start: 4854
    functionDepth: 1
    functionLinenumber: 4854
    functionLinenumberEnd: 4877
    functionName: Botan_Tests::FFI_SLH_DSA_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - Botan::concat
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4879
      start: 4879
    functionDepth: 0
    functionLinenumber: 4879
    functionLinenumberEnd: 4879
    functionName: Botan_Tests::FFI_SLH_DSA_Test::hash_algo_or_padding
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * hash_algo_or_padding() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4884
      start: 4884
    functionDepth: 0
    functionLinenumber: 4884
    functionLinenumberEnd: 4884
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4887
      start: 4887
    functionDepth: 0
    functionLinenumber: 4887
    functionLinenumberEnd: 4887
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4889
      start: 4889
    functionDepth: 0
    functionLinenumber: 4889
    functionLinenumberEnd: 4889
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4891
    functionDepth: 0
    functionLinenumber: 4891
    functionLinenumberEnd: 4891
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ffi.cpp:4898,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4918
      start: 4893
    functionDepth: 1
    functionLinenumber: 4893
    functionLinenumberEnd: 4918
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - Botan::concat
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4923
      start: 4923
    functionDepth: 0
    functionLinenumber: 4923
    functionLinenumberEnd: 4923
    functionName: Botan_Tests::FFI_ElGamal_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4928,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4929,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4932,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4935
      start: 4925
    functionDepth: 1
    functionLinenumber: 4925
    functionLinenumberEnd: 4935
    functionName: Botan_Tests::FFI_ElGamal_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4939,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4943,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4945,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4950,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4951,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4952,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4953,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4955,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4956,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4957,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4961,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4967,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4969,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4970,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4971,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4986,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4988,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4988,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4989,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4990,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4993,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4998,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4998,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5000,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5000,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:5001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5002,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:5004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5005,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5008,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5010,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5011,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5012,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 3
    argNames:
    - priv
    - rng
    - ' result'
    argTypes:
    - botan_privkey_t
    - botan_rng_t
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5014
      start: 4938
    functionDepth: 1
    functionLinenumber: 4938
    functionLinenumberEnd: 5014
    functionName: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - botan_mp_destroy
    - std::vector::resize
    - botan_mp_init
    - TEST_FFI_OK
    - std::vector::data
    - test_bin_eq
    - std::string::c_str
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void do_elgamal_test(botan_privkey_t priv, botan_rng_t rng, Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5019
      start: 5019
    functionDepth: 0
    functionLinenumber: 5019
    functionLinenumberEnd: 5019
    functionName: Botan_Tests::FFI_DH_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:5023,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5028,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5031,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5034,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5042,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5043,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5044,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5045,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5047,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5048,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5049,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5050,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5054,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5055,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5058,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5063,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5064,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5065,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5068,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5073,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5076,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5077,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5079,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5080,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5083,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5085,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5088,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5092,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5092,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5094,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5098,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5103,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5109,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5116,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5119,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5121,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5123,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5126,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5127,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5128,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5130,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5133
      start: 5021
    functionDepth: 1
    functionLinenumber: 5021
    functionLinenumberEnd: 5133
    functionName: Botan_Tests::FFI_DH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - test_is_true
    - TEST_FFI_OK
    - botan_mp_init
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5138
      start: 5138
    functionDepth: 0
    functionLinenumber: 5138
    functionLinenumberEnd: 5138
    functionName: Botan_Tests::FFI_OID_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:5148,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5149,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5151,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5152,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5153,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5156,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5159,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5164,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5166,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5172,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5180,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5182,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5185,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:5188,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5189,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5198,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5199,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5200,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:5200,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5201,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5206,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5208,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5209,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5213,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5213,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5215,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5217,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5222,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5222,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5226,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5233
      start: 5140
    functionDepth: 1
    functionLinenumber: 5140
    functionLinenumberEnd: 5233
    functionName: Botan_Tests::FFI_OID_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - ViewStringSink::callback
    - test_is_true
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - ViewStringSink::delegate
    - std::string::c_str
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5238
    functionDepth: 0
    functionLinenumber: 5238
    functionLinenumberEnd: 5238
    functionName: Botan_Tests::FFI_EC_Group_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5243,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5244,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5245,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ffi.cpp:5247,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5248,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ffi.cpp:5249,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5263,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5265,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5287,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5289,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5299,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5300,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5320,1
    - Dst: botan_oid_register
      Src: /src/botan/src/tests/test_ffi.cpp:5321,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5322,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5323,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5324,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5325,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5326,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5327,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5329,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5330,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5331,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5332,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5334,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5339,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5349,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5361,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5364,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5366,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5367,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5378,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5379,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5382,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5383,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5384,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5385,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5386,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5387,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5389,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5390,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5391,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5392,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5395,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5398,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5401,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5402,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5405,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5406,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5407,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5417,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5418,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5419,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5426,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ffi.cpp:5427,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5431,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5432,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5433,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5434,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5435,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5437,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5443,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5449,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5452,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:5452,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5454,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5455,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5458,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5462,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5462,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5463,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5463,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5467,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5468,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5469,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5470,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5471,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 87
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5474
      start: 5240
    functionDepth: 2
    functionLinenumber: 5240
    functionLinenumberEnd: 5474
    functionName: Botan_Tests::FFI_EC_Group_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - ViewStringSink::get
    - std::array::size
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - test_bool_eq
    - ViewBytesSink::get
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::Test::read_data_file
    - botan_oid_register
    - std::string::c_str
    - TEST_FFI_RC
    - Botan::EC_Group::supports_named_group
    - ViewBytesSink::callback
    - botan_mp_set_from_str
    - std::array::data
    - ViewStringSink::delegate
    - botan_oid_destroy
    - reinterpret_cast<const uint8_t*>
    - Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    - ViewStringSink::callback
    - botan_mp_init
    - botan_privkey_destroy
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5488,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5491,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 9
    argNames:
    - ec_group
    - oid
    - p
    - a
    - b
    - g_x
    - g_y
    - order
    - ' result'
    argTypes:
    - botan_ec_group_t
    - botan_asn1_oid_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5493
      start: 5477
    functionDepth: 1
    functionLinenumber: 5477
    functionLinenumberEnd: 5493
    functionName: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - TEST_FFI_OK
    linkageType: ''
    returnType: void
    signature: "void get_group_parameters(botan_ec_group_t ec_group,\n                                       botan_asn1_oid_t*
      oid,\n                                       botan_mp_t* p,\n                                       botan_mp_t*
      a,\n                                       botan_mp_t* b,\n                                       botan_mp_t*
      g_x,\n                                       botan_mp_t* g_y,\n                                       botan_mp_t*
      order,\n                                       Test::Result& result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5498
      start: 5498
    functionDepth: 0
    functionLinenumber: 5498
    functionLinenumberEnd: 5498
    functionName: Botan_Tests::FFI_SRP6_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5506
      start: 5500
    functionDepth: 0
    functionLinenumber: 5500
    functionLinenumberEnd: 5506
    functionName: Botan_Tests::FFI_SRP6_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:5514,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5519,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5520,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5522,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5523,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5530,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5536,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5538,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5539,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5546,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5552,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5553,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5554,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5560,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5561,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5562,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5563,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5565,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5567,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5569,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5570,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5574,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5579,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5580,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5581,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5582,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5584,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5586,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5591,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5592,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5595,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5598,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5602,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5605
      start: 5508
    functionDepth: 1
    functionLinenumber: 5508
    functionLinenumberEnd: 5605
    functionName: Botan_Tests::FFI_SRP6_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - TEST_FFI_RC
    - auto::size
    - std::vector
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - test_bin_eq
    - std::array::data
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: _TEST_FFI_STR_HELPER
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_STR_HELPER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: _TEST_FFI_STR
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - func
    - ','
    - file
    - ','
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: _TEST_FFI_SOURCE_LOCATION
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_SOURCE_LOCATION(func, file, line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: TEST_FFI_OK
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 59
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_OK(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: TEST_FFI_INIT
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_INIT(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - msg
    - ','
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: TEST_FFI_FAIL
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_FAIL(msg, func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rc
    - ','
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: TEST_FFI_RC
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_RC(rc, func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: REQUIRE_FFI_OK
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FFI_OK(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_Tests::ViewBytesSink::delegate
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * delegate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan_Tests::ViewBytesSink::callback
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_view_bin_fn
    signature: botan_view_bin_fn callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_Tests::ViewBytesSink::get
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::ViewBytesSink::data
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::ViewBytesSink::data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_Tests::ViewBytesSink::size
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::ViewBytesSink::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewBytesSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:99,1
    - Dst: auto*::m_buf::assign
      Src: /src/botan/src/tests/test_ffi.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - void*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: Botan_Tests::ViewBytesSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ViewBytesSink*>
    - auto*::m_buf::assign
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const uint8_t buf[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan_Tests::ViewStringSink::delegate
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * delegate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan_Tests::ViewStringSink::callback
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_view_str_fn
    signature: botan_view_str_fn callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& get()'
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & get()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewStringSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:126,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - str
    - len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: Botan_Tests::ViewStringSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ViewStringSink*>
    - std::string
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const char* str, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Test::name
      Src: /src/botan/src/tests/test_ffi.cpp:142,1
    - Dst: Botan_Tests::FFI_Test::skip_this_test
      Src: /src/botan/src/tests/test_ffi.cpp:144,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:146,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:147,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ffi.cpp:151,1
    - Dst: ffi_test
      Src: /src/botan/src/tests/test_ffi.cpp:152,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ffi.cpp:153,1
    - Dst: botan_rng_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:155,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ffi.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 161
    functionName: Botan_Tests::FFI_Test::run
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_Test::name
    - Botan_Tests::FFI_Test::skip_this_test
    - Test::Result::test_note
    - Test::Result::start_timer
    - botan_rng_init
    - ffi_test
    - Test::Result::end_timer
    - Test::Result::test_failure
    - botan_rng_destroy
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: Botan_Tests::FFI_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:181,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:185,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:192,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:199,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:204,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:206,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:208,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_ffi.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:215,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:220,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:225,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:228,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:235,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:239,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:244,1
    - Dst: botan_privkey_load
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:248,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:251,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:255,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:256,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:258,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:260,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:279,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:286,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:290,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:293,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:304,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_ffi.cpp:305,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 4
    argNames:
    - ' result'
    - pub
    - priv
    - rng
    argTypes:
    - Test::Result
    - botan_pubkey_t
    - botan_privkey_t
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 313
    functionName: Botan_Tests::ffi_test_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - botan_privkey_destroy
    - test_sz_gte
    - std::string::c_str
    - botan_privkey_load
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test_pubkey_export(Test::Result& result, botan_pubkey_t pub,
      botan_privkey_t priv, botan_rng_t rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: Botan_Tests::FFI_Utils_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: botan_version_major
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: Botan::version_major
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: botan_version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: Botan::version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: botan_version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: Botan::version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: botan_version_string
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: botan_version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:329,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:333,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:333,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:336,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:336,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:338,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:338,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:348,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:353,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:355,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 359
    functionName: Botan_Tests::FFI_Utils_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - botan_version_major
    - std::string::data
    - test_is_true
    - botan_version_minor
    - TEST_FFI_OK
    - Botan::version_cstr
    - botan_version_string
    - botan_version_patch
    - botan_ffi_api_version
    - test_rc_ok
    - std::vector::size
    - TEST_FFI_RC
    - Botan::version_major
    - Botan::version_minor
    - botan_ffi_supports_api
    - Botan::version_datestamp
    - std::vector::data
    - test_rc
    - std::string::resize
    - botan_version_datestamp
    - Botan::version_patch
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: Botan_Tests::FFI_RNG_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:378,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:380,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:381,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:383,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:384,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:388,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:389,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:392,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:398,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:402,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:406,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:409,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:411,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:413,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:416,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:420,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:428,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:434,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:440,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:446,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:447,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:449,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:452,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:453,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:457,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:459,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:468,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:473,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_ffi.cpp:474,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:475,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:480,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:484,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:490,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:494,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:497,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:501,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:507,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:510,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:515,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:516,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:517,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:522,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:523,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:531,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:535,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:536,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:537,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:539,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:543,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:545,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:549,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:552,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:559,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:562,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 115
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 563
    functionName: Botan_Tests::FFI_RNG_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - test_is_true
    - TEST_FFI_OK
    - test_note
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    - botan_tpm2_supports_crypto_backend
    - Botan_Tests::test_encoding_options
    - test_bin_eq
    - std::vector::size
    - TEST_FFI_RC
    - botan_rng_init
    - BOTAN_UNUSED
    - static_cast<size_t*>
    - auto::empty
    - Botan::clear_mem
    - REQUIRE_FFI_OK
    - TEST_FFI_FAIL
    - tpm2_test_rng
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 568
    functionName: Botan_Tests::FFI_RSA_Cert_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:573,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:574,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:575,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:576,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:577,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:580,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:581,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:583,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 586
    functionName: Botan_Tests::FFI_RSA_Cert_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - Botan_Tests::Test::data_file
    - TEST_FFI_INIT
    - TEST_FFI_RC
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 591
    functionName: Botan_Tests::FFI_ZFEC_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:638,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:638,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:647,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:647,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:651,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:657,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:668,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 674
    functionName: Botan_Tests::FFI_ZFEC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - std::to_string
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::data
    - TEST_FFI_INIT
    - test_note
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 679
    functionName: Botan_Tests::FFI_CRL_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:702,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:702,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:707,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:709,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:715,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:717,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:718,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:719,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:720,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:721,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:724,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:730,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:730,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:732,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:734,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:734,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:736,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:738,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:741,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:741,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:744,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:744,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:746,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:753,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:755,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:758,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:760,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:761,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:764,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:766,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:767,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:771,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:771,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:785,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_ffi.cpp:788,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: Botan::to_underlying
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:795,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:796,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:798,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:799,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:802,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:803,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:803,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:806,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:809,1
    - Dst: std::erase
      Src: /src/botan/src/tests/test_ffi.cpp:810,1
    - Dst: std::erase
      Src: /src/botan/src/tests/test_ffi.cpp:811,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: remove_newlines
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: remove_newlines
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:817,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:818,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:819,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_ffi.cpp:822,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_ffi.cpp:822,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:840,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:840,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:841,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:841,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:851,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:854,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:859,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:860,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:865,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:871,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:875,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:881,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:884,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:885,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:892,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:895,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:897,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:900,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:904,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:906,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:907,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:908,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:909,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:911,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:912,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:913,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:915,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 104
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 918
    functionName: Botan_Tests::FFI_CRL_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - remove_newlines
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan::to_underlying
    - test_u64_eq
    - std::erase
    - test_bin_eq
    - test_u8_eq
    - static_cast<uint8_t>
    - std::chrono::duration_cast<std::chrono::seconds>
    - TEST_FFI_RC
    - std::vector::resize
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - REQUIRE_FFI_OK
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - ViewStringSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - Botan::TLS::detail::AsyncBase::complete_now
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 923
    functionName: Botan_Tests::FFI_Cert_Validation_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 931
    functionName: Botan_Tests::FFI_Cert_Validation_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:939,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:940,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:940,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:941,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:942,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:943,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:944,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:944,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:945,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:946,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:946,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:949,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:951,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:951,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:952,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:955,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:957,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:957,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:958,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:963,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:965,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:967,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:968,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:969,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:970,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_ffi.cpp:979,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:990,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 3
    argNames:
    - ' result'
    - ee
    - ca
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - botan_x509_cert_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 992
    functionName: Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - TEST_FFI_RC
    - ViewBytesSink::data
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - AlgorithmIdentifier
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void verify_bare_pkcs1_rsa_signature(Test::Result& result, botan_x509_cert_t
      ee, botan_x509_cert_t ca)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:998,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:998,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1005,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1005,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1007,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1010,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1013,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1014,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1015,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1016,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1019,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1020,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1021,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1023,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1024,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1025,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1026,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1031,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1031,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1034,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1035,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1036,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1037,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1040,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1041,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1042,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1042,1
    - Dst: Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
      Src: /src/botan/src/tests/test_ffi.cpp:1044,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1046,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1049,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1050,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1051,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1055,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1055,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1056,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1058,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1059,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1060,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1065,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1065,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1066,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1066,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1067,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1067,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1069,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1071,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1075,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1076,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1077,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1080,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1081,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1082,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1083,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1085
    functionName: Botan_Tests::FFI_Cert_Validation_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - TEST_FFI_OK
    - botan_x509_cert_validation_status
    - Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
    - TEST_FFI_INIT
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1090
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1096,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1105,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1108,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1111,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1121,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1130,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1134,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1139,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1147,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1147,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1155,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1159,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1161,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1161,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1174,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1188,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1189,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1190,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1195,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1197,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1198,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1201,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1211,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1215,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1219,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1220,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1231,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1233,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1238,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1239,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1240,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1241,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1242,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1243,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1243,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1245,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1246,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1247,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 71
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1251
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - std::string::data
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - test_bin_eq
    - std::vector::size
    - TEST_FFI_RC
    - std::vector::resize
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - Botan::hex_encode
    - test_sz_eq
    - ViewStringSink::callback
    - std::string::resize
    - std::vector::data
    - TEST_FFI_INIT
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1256
    functionName: Botan_Tests::FFI_Cert_ExtKeyUsages_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1271,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1274,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1278,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1279,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1280,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1281,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1284,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1285,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1288,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1289,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1292,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1293,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1296,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1299,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1300,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1305,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1306,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1307,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1310,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1311,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1312,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1314
    functionName: Botan_Tests::FFI_Cert_ExtKeyUsages_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - Botan_Tests::Test::data_file
    - TEST_FFI_INIT
    - TEST_FFI_OK
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_ffi.cpp:1320,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_ffi.cpp:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1324
    functionName: Botan_Tests::read_distinguished_name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_DN::decode_from
    - Botan::BER_Decoder
    linkageType: ''
    returnType: auto
    signature: auto read_distinguished_name(std::span<const uint8_t> bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enumerator_fn
      Src: /src/botan/src/tests/test_ffi.cpp:1339,1
    - Dst: visitor_fn
      Src: /src/botan/src/tests/test_ffi.cpp:1341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1342,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1347,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1349,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1350,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - visitor_fn
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - VisitorT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1353
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - Botan::fmt
    - test_sz_eq
    - TEST_FFI_OK
    - visitor_fn
    - botan_error_description
    - enumerator_fn
    - test_note
    linkageType: ''
    returnType: void
    signature: "void visit_general_names(Test::Result& result,\n                                      botan_x509_cert_t
      cert,\n                                      EnumeratorT enumerator_fn,\n                                      CountFnT
      count_fn,\n                                      VisitorT visitor_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
      Src: /src/botan/src/tests/test_ffi.cpp:1363,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1365,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ffi.cpp:1369,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - botan_x509_general_name_types
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1374
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - ViewStringSink::get
    - std::vector::push_back
    - ViewStringSink::callback
    - TEST_FFI_OK
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    - static_cast<botan_x509_general_name_types>
    - ViewStringSink::delegate
    linkageType: ''
    returnType: auto
    signature: "auto read_string_alternative_names(Test::Result& result,\n                                                botan_x509_cert_t
      cert,\n                                                EnumeratorT enumerator_fn,\n
      \                                               CountFnT count_fn,\n                                                botan_x509_general_name_types
      type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
      Src: /src/botan/src/tests/test_ffi.cpp:1384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - botan_x509_general_name_types
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1377
    functionDepth: 2
    functionLinenumber: 1377
    functionLinenumberEnd: 1395
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - std::vector::emplace_back
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    - static_cast<botan_x509_general_name_types>
    linkageType: ''
    returnType: auto
    signature: "auto read_binary_alternative_names(Test::Result& result,\n                                                botan_x509_cert_t
      cert,\n                                                EnumeratorT enumerator_fn,\n
      \                                               CountFnT count_fn,\n                                                botan_x509_general_name_types
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    - Dst: auto::get_first_attribute
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const std::vector<uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1404
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - read_distinguished_name
    - auto::get_first_attribute
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto read_common_names(std::span<const std::vector<uint8_t>> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1407
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1411,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1412,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1417,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1418,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1419,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1422,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1423,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1431,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1434,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1434,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1439,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1439,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1442,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1443,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1443,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1445,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1445,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1447,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1448,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1448,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1449,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1449,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1451,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1452,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1452,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1456,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1457,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1457,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
      Src: /src/botan/src/tests/test_ffi.cpp:1458,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1459,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1459,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1460,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1460,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1461,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1461,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1467,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1470,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1471,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1471,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1472,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1472,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1473,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1473,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1474,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1474,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1476,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1477,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1477,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1478,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1478,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1479,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1479,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1481,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1485,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
      Src: /src/botan/src/tests/test_ffi.cpp:1492,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1493,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1493,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1497,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1409
    functionDepth: 3
    functionLinenumber: 1409
    functionLinenumberEnd: 1499
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
    - TEST_FFI_RC
    - auto::size
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - Botan::store_be
    - TEST_FFI_OK
    - Botan::value_exists
    - TEST_FFI_INIT
    - test_bin_eq
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: botan_x509_cert_permitted_name_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1511,1
    - Dst: botan_x509_cert_excluded_name_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1513,1
    - Dst: botan_x509_general_name_get_type
      Src: /src/botan/src/tests/test_ffi.cpp:1521,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1523,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1529,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1530,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1530,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1531,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1531,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1534,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1539,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1543,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1552,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1554,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1556,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - ' result'
    - cert
    - permitted
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1563
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmt
    - ViewStringSink::get
    - std::vector::emplace_back
    - botan_x509_cert_permitted_name_constraints
    - ViewStringSink::callback
    - read_distinguished_name
    - botan_error_description
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - test_sz_eq
    - botan_x509_cert_excluded_name_constraints
    - test_failure
    - static_cast<botan_x509_general_name_types>
    - ViewStringSink::delegate
    - botan_x509_general_name_get_type
    - test_note
    linkageType: ''
    returnType: auto
    signature: auto read_constraints(Test::Result& result, botan_x509_cert_t cert,
      bool permitted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1566
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1570,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1571,1
    - Dst: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1575,1
    - Dst: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1576,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1579,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1579,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1582,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1582,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1583,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1584,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1586,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1589,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1589,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1598,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1599,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1600,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1603,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1605,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1606,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1606,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1607,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1608,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1609,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1610,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1610,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1617,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1619,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1619,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1623,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1629,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1630,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1640,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1641,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1642,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1568
    functionDepth: 2
    functionLinenumber: 1568
    functionLinenumberEnd: 1645
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan::value_exists
    - static_cast<botan_x509_general_name_types>
    - auto::size
    - read_distinguished_name
    - TEST_FFI_RC
    - Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - test_enum_eq
    - test_sz_eq
    - ViewStringSink::callback
    - TEST_FFI_INIT
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1654,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1656,1
    - Dst: static_cast<std::vector<std::string>*>
      Src: /src/botan/src/tests/test_ffi.cpp:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' result'
    - cert
    - value_type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - botan_x509_value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1650
    functionDepth: 1
    functionLinenumber: 1650
    functionLinenumberEnd: 1664
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - static_cast<std::vector<std::string>*>
    - TEST_FFI_OK
    linkageType: ''
    returnType: auto
    signature: auto read_aia_string_list(Test::Result& result, botan_x509_cert_t cert,
      botan_x509_value_type value_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1667
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1672,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1675,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1679,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1680,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1684,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1689,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1690,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1690,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1691,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1692,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1696,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1699,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1703,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1704,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1704,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1706,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1669
    functionDepth: 2
    functionLinenumber: 1669
    functionLinenumberEnd: 1712
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
    - TEST_FFI_RC
    - auto::size
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - TEST_FFI_OK
    - Botan::value_exists
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1719
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1723,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1725,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1725,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1726,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1728,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1729,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1721
    functionDepth: 1
    functionLinenumber: 1721
    functionLinenumberEnd: 1736
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1741
    functionDepth: 0
    functionLinenumber: 1741
    functionLinenumberEnd: 1741
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1750,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1751,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1752,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1756,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1757,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1758,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1777,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1778,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1786,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1789,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1790,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1802,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1805,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1806,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1809,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1812,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1814,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1814,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1817,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1819,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1821,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1823,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1830,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1833,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1834,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1836,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1837,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1840,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1848,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1850
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1855
    functionName: Botan_Tests::FFI_GCM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1861,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1864,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1864,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1865,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1867,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1868,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1868,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1869,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1870,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1870,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1881,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1883,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1887,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1891,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1893,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1894,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1896,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1898,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1900,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1901,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1902,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1905,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1908,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1909,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1910,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1912,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1925,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1928,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1931,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1932,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1934,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1935,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1937,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1942,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1945,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1946,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1948,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1949,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1952,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1953,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1955,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1956,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1959,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1961,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1968,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1971,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1972,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1974,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1978,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1978,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1979,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1979,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1982,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1857
    functionDepth: 1
    functionLinenumber: 1857
    functionLinenumberEnd: 1988
    functionName: Botan_Tests::FFI_GCM_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1993
    functionDepth: 0
    functionLinenumber: 1993
    functionLinenumberEnd: 1993
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1999,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2002,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2002,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2003,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2005,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2007,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2018,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2019,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2021,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2024,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2025,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2026,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2028,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2031,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2034,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2037,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2040,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2041,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2042,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2044,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2060,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2063,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2064,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2066,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2074,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2077,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2078,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2080,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2081,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2084,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2085,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2089,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2091,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2092,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2094,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2101,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2107,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2115,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2121
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::string
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2126
    functionName: Botan_Tests::FFI_EAX_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2132,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2141,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2142,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2147,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2148,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2149,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2152,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2153,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2154,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2156,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2159,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2160,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2162,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2164,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2166,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2169,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2170,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2171,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2172,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2187,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2190,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2193,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2197,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2201,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2204,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2207,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2208,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2211,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2213,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2214,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2222,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2225,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2226,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2228,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2229,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2232,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2232,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2242
    functionName: Botan_Tests::FFI_EAX_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2247
    functionDepth: 0
    functionLinenumber: 2247
    functionLinenumberEnd: 2247
    functionName: Botan_Tests::FFI_AEAD_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:2257,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: botan_cipher_is_authenticated
      Src: /src/botan/src/tests/test_ffi.cpp:2263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: botan_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2265,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2279,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2280,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: botan_cipher_requires_entire_message
      Src: /src/botan/src/tests/test_ffi.cpp:2301,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2302,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2315,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ffi.cpp:2321,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2321,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:2322,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2328,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2329,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2331,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ffi.cpp:2335,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2337,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2340,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2342,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2343,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2352,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2356,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:2359,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2360,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2363,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2363,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2365,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2365,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2366,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2369,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2371,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2374,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2375,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2381,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2382,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2383,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2385,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2391,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2392,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2394,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2401,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2413,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:2419,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2420,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2422,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2425,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2426,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2428,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2429,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ffi.cpp:2432,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2433,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2433,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2434,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2437,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2439,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2440,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2444,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2444,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2450,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2453,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2454,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:2456,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2457,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2460,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2461,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2462,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2463,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2467,1
    - Dst: merge
      Src: /src/botan/src/tests/test_ffi.cpp:2469,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 69
    argCount: 2
    argNames:
    - ' merged_result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2249
    functionDepth: 1
    functionLinenumber: 2249
    functionLinenumberEnd: 2471
    functionName: Botan_Tests::FFI_AEAD_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::data
    - TEST_FFI_OK
    - Test::Result::test_sz_eq
    - merge
    - std::span::first
    - c_str
    - botan_cipher_destroy
    - std::span::data
    - std::span::size
    - auto::size
    - std::span::subspan
    - Test::Result::test_failure
    - BOTAN_ASSERT_NOMSG
    - std::vector::size
    - TEST_FFI_RC
    - Test::Result::test_bool_eq
    - botan_cipher_requires_entire_message
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gt
    - Test::Result::test_sz_lte
    - std::vector::data
    - std::span
    - TEST_FFI_INIT
    - botan_cipher_is_authenticated
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& merged_result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2476
    functionDepth: 0
    functionLinenumber: 2476
    functionLinenumberEnd: 2476
    functionName: Botan_Tests::FFI_StreamCipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2481,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2482,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2483,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2484,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2486,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2494,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2495,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2497,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2500,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2509,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2512,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2513,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2515,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2516,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2516,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2520,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2478
    functionDepth: 1
    functionLinenumber: 2478
    functionLinenumberEnd: 2524
    functionName: Botan_Tests::FFI_StreamCipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2528
    functionDepth: 0
    functionLinenumber: 2528
    functionLinenumberEnd: 2528
    functionName: Botan_Tests::FFI_XOF_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2537,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2538,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2540,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2546,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2548,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2551,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2552,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2560,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2564,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2568,1
    - Dst: test_sz_ne
      Src: /src/botan/src/tests/test_ffi.cpp:2569,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2569,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2570,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2572,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2579,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2582,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2583,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2583,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2588,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2590,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2530
    functionDepth: 1
    functionLinenumber: 2530
    functionLinenumberEnd: 2592
    functionName: Botan_Tests::FFI_XOF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - test_rc
    - TEST_FFI_INIT
    - test_sz_ne
    - test_bin_eq
    - std::array::data
    - botan_xof_accepts_input
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2597
    functionDepth: 0
    functionLinenumber: 2597
    functionLinenumberEnd: 2597
    functionName: Botan_Tests::FFI_HashFunction_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2603,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2604,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2606,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2610,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2612,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2614,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2619,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2620,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2624,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2634,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2638,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2648,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2649,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2650,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2650,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2653,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2653,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2654,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2657,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2662,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2666,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2599
    functionDepth: 1
    functionLinenumber: 2599
    functionLinenumberEnd: 2668
    functionName: Botan_Tests::FFI_HashFunction_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - std::strlen
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2673
    functionDepth: 0
    functionLinenumber: 2673
    functionLinenumberEnd: 2673
    functionName: Botan_Tests::FFI_MAC_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2680,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2681,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2683,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2686,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2686,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2687,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2689,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2690,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2690,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2691,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2692,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2692,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2698,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2700,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2701,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2703,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2704,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2705,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2708,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2717,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2718,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2718,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2719,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2721,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2722,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2724,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2724,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2726,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2675
    functionDepth: 1
    functionLinenumber: 2675
    functionLinenumberEnd: 2733
    functionName: Botan_Tests::FFI_MAC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - std::strlen
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2738
    functionDepth: 0
    functionLinenumber: 2738
    functionLinenumberEnd: 2738
    functionName: Botan_Tests::FFI_Scrypt_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2751,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2754,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2740
    functionDepth: 1
    functionLinenumber: 2740
    functionLinenumberEnd: 2759
    functionName: Botan_Tests::FFI_Scrypt_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2764
    functionDepth: 0
    functionLinenumber: 2764
    functionLinenumberEnd: 2764
    functionName: Botan_Tests::FFI_KDF_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2771,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2775,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2777,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2779,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2780,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2781,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2794,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2795,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2801,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2802,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2804,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2805,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:2810,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2813,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2814,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2816,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2818,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2820,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2821,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2822,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2823,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2824,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2825,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2828,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2833,1
    - Dst: botan_bcrypt_generate
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2766
    functionDepth: 1
    functionLinenumber: 2766
    functionLinenumberEnd: 2844
    functionName: Botan_Tests::FFI_KDF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::to_string
    - botan_bcrypt_generate
    - std::vector::resize
    - reinterpret_cast<uint8_t*>
    - TEST_FFI_FAIL
    - std::string::data
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_OK
    - std::string::resize
    - TEST_FFI_INIT
    - test_bin_eq
    - std::string::c_str
    - test_note
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2849
    functionDepth: 0
    functionLinenumber: 2849
    functionLinenumberEnd: 2849
    functionName: Botan_Tests::FFI_Blockcipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2857,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2857,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2858,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2861,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2861,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2862,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2863,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2863,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2869,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2871,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2872,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2872,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2874,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2874,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2876,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2877,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2879,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2884,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2885,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2886,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2887,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2896,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2899,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2902,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2905,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: botan_block_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2851
    functionDepth: 1
    functionLinenumber: 2851
    functionLinenumberEnd: 2910
    functionName: Botan_Tests::FFI_Blockcipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_block_cipher_destroy
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2915
    functionDepth: 0
    functionLinenumber: 2915
    functionLinenumberEnd: 2915
    functionName: Botan_Tests::FFI_ErrorHandling_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2919,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2924,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: reinterpret_cast<botan_hash_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2926,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:2931,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:2932,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:2938,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_ffi.cpp:2938,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_ffi.cpp:2939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2917
    functionDepth: 1
    functionLinenumber: 2917
    functionLinenumberEnd: 2943
    functionName: Botan_Tests::FFI_ErrorHandling_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::set::insert
    - std::set::contains
    - test_is_true
    - botan_mp_init
    - botan_error_description
    - reinterpret_cast<botan_hash_t>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2948
      start: 2948
    functionDepth: 0
    functionLinenumber: 2948
    functionLinenumberEnd: 2948
    functionName: Botan_Tests::FFI_Base64_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2955,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2957,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2960,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2969,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2971,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2974,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2974,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2976,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2977,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2950
    functionDepth: 1
    functionLinenumber: 2950
    functionLinenumberEnd: 2978
    functionName: Botan_Tests::FFI_Base64_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - std::string
    - TEST_FFI_RC
    - test_sz_eq
    - TEST_FFI_OK
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2983
    functionDepth: 0
    functionLinenumber: 2983
    functionLinenumberEnd: 2983
    functionName: Botan_Tests::FFI_Hex_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2989,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2991,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2997,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2998,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3001,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:3001,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2985
    functionDepth: 1
    functionLinenumber: 2985
    functionLinenumberEnd: 3005
    functionName: Botan_Tests::FFI_Hex_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - std::string
    - TEST_FFI_RC
    - TEST_FFI_OK
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3010
    functionDepth: 0
    functionLinenumber: 3010
    functionLinenumberEnd: 3010
    functionName: Botan_Tests::FFI_MP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3017,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3019,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3021,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3022,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3025,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3027,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3028,1
    - Dst: botan_mp_set_from_int
      Src: /src/botan/src/tests/test_ffi.cpp:3030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3031,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3032,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3034,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3035,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3036,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3039,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3040,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3040,1
    - Dst: botan_mp_sub_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3042,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3043,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3044,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3045,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3049,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3050,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3050,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3052,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3053,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3054,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3055,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3056,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3060,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3062,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3063,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3065,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3066,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3068,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3070,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3071,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3072,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3076,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3077,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3081,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3082,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3084,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3085,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3088,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3090,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3091,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3093,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3098,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3099,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3101,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3102,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3106,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3107,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3109,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3125,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3126,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3128,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3130,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3132,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3133,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3133,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3135,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3136,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3137,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3137,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3140,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3141,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3146,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3148,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3149,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3149,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3151,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3153,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3154,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3154,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3155,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3162,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3166,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3170,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3172,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3173,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3173,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3174,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3176,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3178,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3179,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3183,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3188,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3192,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3195,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3200,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3204,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3205,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3210,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3212,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3213,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3216,1
    - Dst: botan_mp_to_bin
      Src: /src/botan/src/tests/test_ffi.cpp:3217,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3217,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3220,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3221,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3223,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3227,1
    - Dst: botan_mp_rand_bits
      Src: /src/botan/src/tests/test_ffi.cpp:3230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3231,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:3232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3235,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3238,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3239,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3240,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3242,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3243,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3244,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3245,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 160
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3012
    functionDepth: 1
    functionLinenumber: 3012
    functionLinenumberEnd: 3247
    functionName: Botan_Tests::FFI_MP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - test_u32_eq
    - botan_mp_set_from_int
    - botan_mp_add_u32
    - std::string
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - botan_mp_sub_u32
    - botan_mp_to_bin
    - botan_mp_rand_bits
    - test_bin_eq
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::callback
    - test_sz_lte
    - ViewStringSink::delegate
    - test_sz_eq
    - ViewStringSink::callback
    - botan_mp_init
    - std::vector::data
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3252
    functionDepth: 0
    functionLinenumber: 3252
    functionLinenumberEnd: 3252
    functionName: Botan_Tests::FFI_FPE_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3258,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:3259,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3262,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3263,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3268,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:3269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3274,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3279,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3281,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3287
      start: 3254
    functionDepth: 1
    functionLinenumber: 3254
    functionLinenumberEnd: 3287
    functionName: Botan_Tests::FFI_FPE_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - test_sz_eq
    - TEST_FFI_OK
    - botan_mp_init
    - botan_mp_set_from_str
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3292
    functionDepth: 0
    functionLinenumber: 3292
    functionLinenumberEnd: 3292
    functionName: Botan_Tests::FFI_TOTP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3295,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3305,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3308,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3309,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3311,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3312,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3313,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3294
    functionDepth: 1
    functionLinenumber: 3294
    functionLinenumberEnd: 3316
    functionName: Botan_Tests::FFI_TOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3321
      start: 3321
    functionDepth: 0
    functionLinenumber: 3321
    functionLinenumberEnd: 3321
    functionName: Botan_Tests::FFI_HOTP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3324,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3334,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3335,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3336,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3337,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3338,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3339,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3340,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3346,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3347,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3348,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3349,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3353
      start: 3323
    functionDepth: 1
    functionLinenumber: 3323
    functionLinenumberEnd: 3353
    functionName: Botan_Tests::FFI_HOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_OK
    - std::vector::data
    - test_u64_eq
    - TEST_FFI_INIT
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3358
      start: 3358
    functionDepth: 0
    functionLinenumber: 3358
    functionLinenumberEnd: 3358
    functionName: Botan_Tests::FFI_Keywrap_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3367,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3372,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3379,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3360
    functionDepth: 1
    functionLinenumber: 3360
    functionLinenumberEnd: 3383
    functionName: Botan_Tests::FFI_Keywrap_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - test_sz_eq
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3388
      start: 3388
    functionDepth: 0
    functionLinenumber: 3388
    functionLinenumberEnd: 3388
    functionName: Botan_Tests::FFI_XMSS_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3392,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3393,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3395,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3396,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3399,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3403,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3404,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3408
      start: 3390
    functionDepth: 1
    functionLinenumber: 3390
    functionLinenumberEnd: 3408
    functionName: Botan_Tests::FFI_XMSS_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_is_true
    - test_u64_eq
    - TEST_FFI_OK
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3413
    functionDepth: 0
    functionLinenumber: 3413
    functionLinenumberEnd: 3413
    functionName: Botan_Tests::FFI_RSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3418,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3419,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3422,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3423,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:3426,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3430,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3432,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3439,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3440,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3441,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3442,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3443,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3445,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3446,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3448,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3451,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3452,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3458,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3459,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3461,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3463,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3464,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3466,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3469,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3473,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3478,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3480,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3485,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3486,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3493,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3494,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3496,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3497,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3498,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3499,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3500,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3503,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3508,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3509,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3512,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3512,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3513,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3516,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3520,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3521,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3526,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3526,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3529,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3535,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3540,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3540,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3543,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3550,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3552,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3554,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3559,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3562,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3567,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3568,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 84
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3570
      start: 3415
    functionDepth: 1
    functionLinenumber: 3415
    functionLinenumberEnd: 3570
    functionName: Botan_Tests::FFI_RSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_is_true
    - std::array::size
    - TEST_FFI_OK
    - botan_mp_init
    - std::vector::data
    - std::array::data
    - TEST_FFI_INIT
    - test_bin_eq
    - botan_privkey_destroy
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3575
    functionDepth: 0
    functionLinenumber: 3575
    functionLinenumberEnd: 3575
    functionName: Botan_Tests::FFI_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3580,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:3581,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3584,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:3585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3587
      start: 3577
    functionDepth: 2
    functionLinenumber: 3577
    functionLinenumberEnd: 3587
    functionName: Botan_Tests::FFI_DSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_DSA_Test::do_dsa_test
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3591,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3594,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3595,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3597,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3604,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3605,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3606,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3607,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3610,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3611,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3612,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3613,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3614,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3617,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3620,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3621,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3623,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3626,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3627,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3628,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3636,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3638,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3639,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3640,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3641,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3642,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3649,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3654,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3658,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3658,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:3659,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3662,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3674,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3675,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3675,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3684,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3691,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 63
    argCount: 3
    argNames:
    - priv
    - rng
    - ' result'
    argTypes:
    - botan_privkey_t
    - botan_rng_t
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3698
      start: 3590
    functionDepth: 1
    functionLinenumber: 3590
    functionLinenumberEnd: 3698
    functionName: Botan_Tests::FFI_DSA_Test::do_dsa_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - botan_mp_destroy
    - std::vector::empty
    - TEST_FFI_RC
    - std::vector::resize
    - botan_mp_init
    - TEST_FFI_OK
    - std::vector::data
    - test_sz_lte
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void do_dsa_test(botan_privkey_t priv, botan_rng_t rng, Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3703
      start: 3703
    functionDepth: 0
    functionLinenumber: 3703
    functionLinenumberEnd: 3703
    functionName: Botan_Tests::FFI_ECDSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3714,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3715,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3722,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3723,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3724,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3729,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3730,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3731,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3737,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3740,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3741,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3747,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3747,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3748,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3748,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3756,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3761,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3763,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3767,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3769,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3774,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3774,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3781,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3783,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3795,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3801,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3805,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3806,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3807,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3808,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3809,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3811,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3813
      start: 3705
    functionDepth: 1
    functionLinenumber: 3705
    functionLinenumberEnd: 3813
    functionName: Botan_Tests::FFI_ECDSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3818
      start: 3818
    functionDepth: 0
    functionLinenumber: 3818
    functionLinenumberEnd: 3818
    functionName: Botan_Tests::FFI_SM2_Sig_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3829,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3845,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3846,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3847,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3849,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3850,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3851,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3853,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3854,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3856,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3857,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3858,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3861,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3863,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3863,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3864,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3864,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3870,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3870,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3875,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3894,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3895,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3895,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3899,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3900,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3900,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3905,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3905,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3911,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3915,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3917,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3918,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3919,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3920,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3820
    functionDepth: 1
    functionLinenumber: 3820
    functionLinenumberEnd: 3922
    functionName: Botan_Tests::FFI_SM2_Sig_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - std::string::c_str
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3927
      start: 3927
    functionDepth: 0
    functionLinenumber: 3927
    functionLinenumberEnd: 3927
    functionName: Botan_Tests::FFI_SM2_Enc_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3937,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3941,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3946,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3953,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3954,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3955,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3957,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3959,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3961,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3962,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3966,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3969,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3971,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3971,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3972,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3982,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3982,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3984,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3989,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3991,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3997,1
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3999,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4003,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4005,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4006,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4007,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3929
    functionDepth: 1
    functionLinenumber: 3929
    functionLinenumberEnd: 4009
    functionName: Botan_Tests::FFI_SM2_Enc_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    - botan_pk_op_decrypt_destroy
    - REQUIRE_FFI_OK
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 4014
    functionDepth: 0
    functionLinenumber: 4014
    functionLinenumberEnd: 4014
    functionName: Botan_Tests::FFI_ECDH_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4018,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4023,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4026,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4029,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4036,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4037,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4038,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4040,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4041,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4042,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4048,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4049,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4051,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4052,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4053,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4055,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4056,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4057,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4069,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4071,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4074,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4080,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4093,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4097,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4101,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4103,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4104,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4106,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4107,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4108,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4109,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4110,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4111,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4112,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4115
      start: 4016
    functionDepth: 1
    functionLinenumber: 4016
    functionLinenumberEnd: 4115
    functionName: Botan_Tests::FFI_ECDH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - ViewBytesSink::data
    - TEST_FFI_OK
    - botan_mp_init
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - test_bin_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4120
      start: 4120
    functionDepth: 0
    functionLinenumber: 4120
    functionLinenumberEnd: 4120
    functionName: Botan_Tests::FFI_McEliece_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4126,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4128,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:4131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4132,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4132,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4133,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4133,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4138,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4122
    functionDepth: 1
    functionLinenumber: 4122
    functionLinenumberEnd: 4141
    functionName: Botan_Tests::FFI_McEliece_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4146
    functionDepth: 0
    functionLinenumber: 4146
    functionLinenumberEnd: 4146
    functionName: Botan_Tests::FFI_Ed25519_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4154,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4156,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4157,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4158,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4167,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4171,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4174,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4177,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4187,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4189,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4192,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4194,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4201,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4205,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4208,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4210
      start: 4148
    functionDepth: 1
    functionLinenumber: 4148
    functionLinenumberEnd: 4210
    functionName: Botan_Tests::FFI_Ed25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4215
      start: 4215
    functionDepth: 0
    functionLinenumber: 4215
    functionLinenumberEnd: 4215
    functionName: Botan_Tests::FFI_Ed448_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4222,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4224,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4227,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4238,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4244,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4245,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4245,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4254,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4256,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4258,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4258,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4259,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4261,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4264,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4268,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4272,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4217
    functionDepth: 1
    functionLinenumber: 4217
    functionLinenumberEnd: 4277
    functionName: Botan_Tests::FFI_Ed448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - auto::size
    - std::vector::resize
    - std::vector::data
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4282
    functionDepth: 0
    functionLinenumber: 4282
    functionLinenumberEnd: 4282
    functionName: Botan_Tests::FFI_X25519_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4288,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4290,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4292,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4294,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4303,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4309,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4309,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4310,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4313,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4313,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4315,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4318,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4321,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4322,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4325,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4328,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4329,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4284
    functionDepth: 1
    functionLinenumber: 4284
    functionLinenumberEnd: 4331
    functionName: Botan_Tests::FFI_X25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - REQUIRE_FFI_OK
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4336
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4336
    functionName: Botan_Tests::FFI_X448_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4340,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4342,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4344,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4346,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4350,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4350,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4355,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4355,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4356,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4361,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4363,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4366,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4367,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4367,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4368,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4375,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4378,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4380,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4381,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4382,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4384
      start: 4338
    functionDepth: 1
    functionLinenumber: 4338
    functionLinenumberEnd: 4384
    functionName: Botan_Tests::FFI_X448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - REQUIRE_FFI_OK
    - auto::size
    - std::vector::data
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: modes
      Src: /src/botan/src/tests/test_ffi.cpp:4403,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4407,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:4407,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4410,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4421,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4421,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4422,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4422,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4423,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4423,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4424,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4441,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4442,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4447,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:4460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4469,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4477,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4479,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4480,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4481,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4482,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4489,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4490,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4494,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4499,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4500,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4509,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4513,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4514,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4516,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4518,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4520,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4523,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4525,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4526,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4402
    functionDepth: 1
    functionLinenumber: 4402
    functionLinenumberEnd: 4530
    functionName: Botan_Tests::FFI_KEM_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - private_key_load_function
    - Botan::secure_vector::data
    - TEST_FFI_RC
    - std::vector::resize
    - public_key_load_function
    - test_is_true
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_INIT
    - algo
    - Botan::secure_vector::resize
    - test_bin_eq
    - modes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: modes
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4571,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4571,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4572,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4573,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4573,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4586,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4590,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4598,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4605,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4605,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4612,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4612,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4613,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4614,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4615,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4619,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4619,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4628,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4628,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4630,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4631,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4636,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4640
      start: 4549
    functionDepth: 1
    functionLinenumber: 4549
    functionLinenumberEnd: 4640
    functionName: Botan_Tests::FFI_Signature_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - private_key_load_function
    - Botan::secure_vector::data
    - TEST_FFI_RC
    - public_key_load_function
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - hash_algo_or_padding
    - TEST_FFI_INIT
    - algo
    - std::vector::data
    - test_bin_eq
    - Botan::secure_vector::resize
    - Botan::secure_vector::size
    - modes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4645
      start: 4645
    functionDepth: 0
    functionLinenumber: 4645
    functionLinenumberEnd: 4645
    functionName: Botan_Tests::FFI_Kyber512_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4648,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4650,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4652,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4656,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4656,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4664,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4664,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4665,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4665,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4674,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4674,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4675,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4675,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4678,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4678,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4680,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4682,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4683,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4685
      start: 4647
    functionDepth: 1
    functionLinenumber: 4647
    functionLinenumberEnd: 4685
    functionName: Botan_Tests::FFI_Kyber512_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4690
      start: 4690
    functionDepth: 0
    functionLinenumber: 4690
    functionLinenumberEnd: 4690
    functionName: Botan_Tests::FFI_Kyber768_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4693,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4695,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4697,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4701,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4701,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4709,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4709,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4710,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4719,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4719,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4720,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4720,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4723,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4725,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4728,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4730
      start: 4692
    functionDepth: 1
    functionLinenumber: 4692
    functionLinenumberEnd: 4730
    functionName: Botan_Tests::FFI_Kyber768_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4735
      start: 4735
    functionDepth: 0
    functionLinenumber: 4735
    functionLinenumberEnd: 4735
    functionName: Botan_Tests::FFI_Kyber1024_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4738,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4740,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4742,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4746,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4754,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4754,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4755,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4755,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4761,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4764,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4764,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4765,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4768,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4768,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4770,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4773,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4775
      start: 4737
    functionDepth: 1
    functionLinenumber: 4737
    functionLinenumberEnd: 4775
    functionName: Botan_Tests::FFI_Kyber1024_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4780
      start: 4780
    functionDepth: 0
    functionLinenumber: 4780
    functionLinenumberEnd: 4780
    functionName: Botan_Tests::FFI_ML_KEM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4783
      start: 4783
    functionDepth: 0
    functionLinenumber: 4783
    functionLinenumberEnd: 4783
    functionName: Botan_Tests::FFI_ML_KEM_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4785
      start: 4785
    functionDepth: 0
    functionLinenumber: 4785
    functionLinenumberEnd: 4785
    functionName: Botan_Tests::FFI_ML_KEM_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4787
    functionDepth: 0
    functionLinenumber: 4787
    functionLinenumberEnd: 4787
    functionName: Botan_Tests::FFI_ML_KEM_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4789
      start: 4789
    functionDepth: 0
    functionLinenumber: 4789
    functionLinenumberEnd: 4789
    functionName: Botan_Tests::FFI_ML_KEM_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4794
      start: 4794
    functionDepth: 0
    functionLinenumber: 4794
    functionLinenumberEnd: 4794
    functionName: Botan_Tests::FFI_FrodoKEM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4797
      start: 4797
    functionDepth: 0
    functionLinenumber: 4797
    functionLinenumberEnd: 4797
    functionName: Botan_Tests::FFI_FrodoKEM_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4799
      start: 4799
    functionDepth: 0
    functionLinenumber: 4799
    functionLinenumberEnd: 4799
    functionName: Botan_Tests::FFI_FrodoKEM_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4801
      start: 4801
    functionDepth: 0
    functionLinenumber: 4801
    functionLinenumberEnd: 4801
    functionName: Botan_Tests::FFI_FrodoKEM_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4818
      start: 4803
    functionDepth: 0
    functionLinenumber: 4803
    functionLinenumberEnd: 4818
    functionName: Botan_Tests::FFI_FrodoKEM_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4823
      start: 4823
    functionDepth: 0
    functionLinenumber: 4823
    functionLinenumberEnd: 4823
    functionName: Botan_Tests::FFI_ML_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4826
      start: 4826
    functionDepth: 0
    functionLinenumber: 4826
    functionLinenumberEnd: 4826
    functionName: Botan_Tests::FFI_ML_DSA_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4828
      start: 4828
    functionDepth: 0
    functionLinenumber: 4828
    functionLinenumberEnd: 4828
    functionName: Botan_Tests::FFI_ML_DSA_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4830
      start: 4830
    functionDepth: 0
    functionLinenumber: 4830
    functionLinenumberEnd: 4830
    functionName: Botan_Tests::FFI_ML_DSA_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4838
      start: 4832
    functionDepth: 0
    functionLinenumber: 4832
    functionLinenumberEnd: 4838
    functionName: Botan_Tests::FFI_ML_DSA_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4840
    functionDepth: 0
    functionLinenumber: 4840
    functionLinenumberEnd: 4840
    functionName: Botan_Tests::FFI_ML_DSA_Test::hash_algo_or_padding
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * hash_algo_or_padding() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4845
      start: 4845
    functionDepth: 0
    functionLinenumber: 4845
    functionLinenumberEnd: 4845
    functionName: Botan_Tests::FFI_SLH_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4848
      start: 4848
    functionDepth: 0
    functionLinenumber: 4848
    functionLinenumberEnd: 4848
    functionName: Botan_Tests::FFI_SLH_DSA_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4850
    functionDepth: 0
    functionLinenumber: 4850
    functionLinenumberEnd: 4850
    functionName: Botan_Tests::FFI_SLH_DSA_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4852
      start: 4852
    functionDepth: 0
    functionLinenumber: 4852
    functionLinenumberEnd: 4852
    functionName: Botan_Tests::FFI_SLH_DSA_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ffi.cpp:4864,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4877
      start: 4854
    functionDepth: 1
    functionLinenumber: 4854
    functionLinenumberEnd: 4877
    functionName: Botan_Tests::FFI_SLH_DSA_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - Botan::concat
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4879
      start: 4879
    functionDepth: 0
    functionLinenumber: 4879
    functionLinenumberEnd: 4879
    functionName: Botan_Tests::FFI_SLH_DSA_Test::hash_algo_or_padding
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * hash_algo_or_padding() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4884
      start: 4884
    functionDepth: 0
    functionLinenumber: 4884
    functionLinenumberEnd: 4884
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4887
      start: 4887
    functionDepth: 0
    functionLinenumber: 4887
    functionLinenumberEnd: 4887
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4889
      start: 4889
    functionDepth: 0
    functionLinenumber: 4889
    functionLinenumberEnd: 4889
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4891
    functionDepth: 0
    functionLinenumber: 4891
    functionLinenumberEnd: 4891
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ffi.cpp:4898,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4918
      start: 4893
    functionDepth: 1
    functionLinenumber: 4893
    functionLinenumberEnd: 4918
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - Botan::concat
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4923
      start: 4923
    functionDepth: 0
    functionLinenumber: 4923
    functionLinenumberEnd: 4923
    functionName: Botan_Tests::FFI_ElGamal_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4928,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4929,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4932,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4935
      start: 4925
    functionDepth: 2
    functionLinenumber: 4925
    functionLinenumberEnd: 4935
    functionName: Botan_Tests::FFI_ElGamal_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4939,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4943,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4945,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4950,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4951,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4952,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4953,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4955,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4956,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4957,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4961,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4967,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4969,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4970,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4971,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4986,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4988,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4988,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4989,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4990,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4993,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4998,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4998,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5000,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5000,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:5001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5002,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:5004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5005,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5008,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5010,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5011,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5012,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 3
    argNames:
    - priv
    - rng
    - ' result'
    argTypes:
    - botan_privkey_t
    - botan_rng_t
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5014
      start: 4938
    functionDepth: 1
    functionLinenumber: 4938
    functionLinenumberEnd: 5014
    functionName: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - botan_mp_destroy
    - std::vector::resize
    - botan_mp_init
    - TEST_FFI_OK
    - std::vector::data
    - test_bin_eq
    - std::string::c_str
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void do_elgamal_test(botan_privkey_t priv, botan_rng_t rng, Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5019
      start: 5019
    functionDepth: 0
    functionLinenumber: 5019
    functionLinenumberEnd: 5019
    functionName: Botan_Tests::FFI_DH_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:5023,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5028,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5031,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5034,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5042,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5043,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5044,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5045,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5047,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5048,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5049,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5050,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5054,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5055,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5058,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5063,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5064,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5065,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5068,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5073,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5076,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5077,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5079,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5080,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5083,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5085,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5088,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5092,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5092,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5094,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5098,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5103,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5109,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5116,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5119,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5121,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5123,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5126,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5127,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5128,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5130,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5133
      start: 5021
    functionDepth: 1
    functionLinenumber: 5021
    functionLinenumberEnd: 5133
    functionName: Botan_Tests::FFI_DH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - test_is_true
    - TEST_FFI_OK
    - botan_mp_init
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5138
      start: 5138
    functionDepth: 0
    functionLinenumber: 5138
    functionLinenumberEnd: 5138
    functionName: Botan_Tests::FFI_OID_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:5148,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5149,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5151,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5152,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5153,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5156,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5159,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5164,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5166,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5172,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5180,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5182,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5185,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:5188,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5189,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5198,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5199,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5200,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:5200,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5201,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5206,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5208,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5209,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5213,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5213,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5215,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5217,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5222,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5222,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5226,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5233
      start: 5140
    functionDepth: 1
    functionLinenumber: 5140
    functionLinenumberEnd: 5233
    functionName: Botan_Tests::FFI_OID_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - ViewStringSink::callback
    - test_is_true
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - ViewStringSink::delegate
    - std::string::c_str
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5238
    functionDepth: 0
    functionLinenumber: 5238
    functionLinenumberEnd: 5238
    functionName: Botan_Tests::FFI_EC_Group_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5243,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5244,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5245,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ffi.cpp:5247,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5248,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ffi.cpp:5249,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5263,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5265,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5287,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5289,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5299,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5300,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5320,1
    - Dst: botan_oid_register
      Src: /src/botan/src/tests/test_ffi.cpp:5321,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5322,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5323,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5324,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5325,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5326,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5327,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5329,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5330,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5331,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5332,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5334,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5339,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5349,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5361,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5364,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5366,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5367,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5378,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5379,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5382,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5383,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5384,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5385,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5386,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5387,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5389,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5390,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5391,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5392,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5395,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5398,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5401,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5402,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5405,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5406,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5407,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5417,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5418,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5419,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5426,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ffi.cpp:5427,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5431,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5432,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5433,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5434,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5435,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5437,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5443,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5449,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5452,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:5452,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5454,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5455,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5458,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5462,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5462,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5463,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5463,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5467,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5468,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5469,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5470,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5471,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 87
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5474
      start: 5240
    functionDepth: 2
    functionLinenumber: 5240
    functionLinenumberEnd: 5474
    functionName: Botan_Tests::FFI_EC_Group_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - ViewStringSink::get
    - std::array::size
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - test_bool_eq
    - ViewBytesSink::get
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::Test::read_data_file
    - botan_oid_register
    - std::string::c_str
    - TEST_FFI_RC
    - Botan::EC_Group::supports_named_group
    - ViewBytesSink::callback
    - botan_mp_set_from_str
    - std::array::data
    - ViewStringSink::delegate
    - botan_oid_destroy
    - reinterpret_cast<const uint8_t*>
    - Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    - ViewStringSink::callback
    - botan_mp_init
    - botan_privkey_destroy
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5488,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5491,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 9
    argNames:
    - ec_group
    - oid
    - p
    - a
    - b
    - g_x
    - g_y
    - order
    - ' result'
    argTypes:
    - botan_ec_group_t
    - botan_asn1_oid_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5493
      start: 5477
    functionDepth: 1
    functionLinenumber: 5477
    functionLinenumberEnd: 5493
    functionName: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - TEST_FFI_OK
    linkageType: ''
    returnType: void
    signature: "void get_group_parameters(botan_ec_group_t ec_group,\n                                       botan_asn1_oid_t*
      oid,\n                                       botan_mp_t* p,\n                                       botan_mp_t*
      a,\n                                       botan_mp_t* b,\n                                       botan_mp_t*
      g_x,\n                                       botan_mp_t* g_y,\n                                       botan_mp_t*
      order,\n                                       Test::Result& result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5498
      start: 5498
    functionDepth: 0
    functionLinenumber: 5498
    functionLinenumberEnd: 5498
    functionName: Botan_Tests::FFI_SRP6_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5506
      start: 5500
    functionDepth: 0
    functionLinenumber: 5500
    functionLinenumberEnd: 5506
    functionName: Botan_Tests::FFI_SRP6_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:5514,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5519,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5520,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5522,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5523,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5530,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5536,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5538,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5539,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5546,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5552,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5553,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5554,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5560,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5561,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5562,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5563,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5565,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5567,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5569,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5570,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5574,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5579,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5580,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5581,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5582,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5584,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5586,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5591,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5592,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5595,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5598,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5602,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5605
      start: 5508
    functionDepth: 1
    functionLinenumber: 5508
    functionLinenumberEnd: 5605
    functionName: Botan_Tests::FFI_SRP6_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - TEST_FFI_RC
    - auto::size
    - std::vector
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - test_bin_eq
    - std::array::data
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: _TEST_FFI_STR_HELPER
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_STR_HELPER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: _TEST_FFI_STR
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - func
    - ','
    - file
    - ','
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: _TEST_FFI_SOURCE_LOCATION
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_SOURCE_LOCATION(func, file, line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: TEST_FFI_OK
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 118
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_OK(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: TEST_FFI_INIT
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 96
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_INIT(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - msg
    - ','
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: TEST_FFI_FAIL
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_FAIL(msg, func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rc
    - ','
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: TEST_FFI_RC
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_RC(rc, func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: REQUIRE_FFI_OK
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FFI_OK(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_Tests::ViewBytesSink::delegate
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * delegate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan_Tests::ViewBytesSink::callback
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_view_bin_fn
    signature: botan_view_bin_fn callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_Tests::ViewBytesSink::get
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::ViewBytesSink::data
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::ViewBytesSink::data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_Tests::ViewBytesSink::size
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::ViewBytesSink::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewBytesSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:99,1
    - Dst: auto*::m_buf::assign
      Src: /src/botan/src/tests/test_ffi.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - void*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: Botan_Tests::ViewBytesSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ViewBytesSink*>
    - auto*::m_buf::assign
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const uint8_t buf[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan_Tests::ViewStringSink::delegate
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * delegate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan_Tests::ViewStringSink::callback
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_view_str_fn
    signature: botan_view_str_fn callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& get()'
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & get()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewStringSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:126,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - str
    - len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: Botan_Tests::ViewStringSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ViewStringSink*>
    - std::string
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const char* str, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Test::name
      Src: /src/botan/src/tests/test_ffi.cpp:142,1
    - Dst: Botan_Tests::FFI_Test::skip_this_test
      Src: /src/botan/src/tests/test_ffi.cpp:144,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:146,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:147,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ffi.cpp:151,1
    - Dst: ffi_test
      Src: /src/botan/src/tests/test_ffi.cpp:152,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ffi.cpp:153,1
    - Dst: botan_rng_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:155,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ffi.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 161
    functionName: Botan_Tests::FFI_Test::run
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_Test::name
    - Botan_Tests::FFI_Test::skip_this_test
    - Test::Result::test_note
    - Test::Result::start_timer
    - botan_rng_init
    - ffi_test
    - Test::Result::end_timer
    - Test::Result::test_failure
    - botan_rng_destroy
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: Botan_Tests::FFI_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:181,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:185,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:192,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:199,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:204,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:206,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:208,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_ffi.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:215,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:220,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:225,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:228,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:235,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:239,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:244,1
    - Dst: botan_privkey_load
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:248,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:251,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:255,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:256,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:258,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:260,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:279,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:286,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:290,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:293,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:304,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_ffi.cpp:305,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 4
    argNames:
    - ' result'
    - pub
    - priv
    - rng
    argTypes:
    - Test::Result
    - botan_pubkey_t
    - botan_privkey_t
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 313
    functionName: Botan_Tests::ffi_test_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - botan_privkey_destroy
    - test_sz_gte
    - std::string::c_str
    - botan_privkey_load
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test_pubkey_export(Test::Result& result, botan_pubkey_t pub,
      botan_privkey_t priv, botan_rng_t rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: Botan_Tests::FFI_Utils_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: botan_version_major
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: Botan::version_major
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: botan_version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: Botan::version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: botan_version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: Botan::version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: botan_version_string
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: botan_version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:329,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:333,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:333,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:336,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:336,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:338,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:338,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:348,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:353,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:355,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 359
    functionName: Botan_Tests::FFI_Utils_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - botan_version_major
    - std::string::data
    - test_is_true
    - botan_version_minor
    - TEST_FFI_OK
    - Botan::version_cstr
    - botan_version_string
    - botan_version_patch
    - botan_ffi_api_version
    - test_rc_ok
    - std::vector::size
    - TEST_FFI_RC
    - Botan::version_major
    - Botan::version_minor
    - botan_ffi_supports_api
    - Botan::version_datestamp
    - std::vector::data
    - test_rc
    - std::string::resize
    - botan_version_datestamp
    - Botan::version_patch
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: Botan_Tests::FFI_RNG_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:378,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:380,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:381,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:383,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:384,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:388,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:389,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:392,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:398,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:402,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:406,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:409,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:411,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:413,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:416,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:420,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:428,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:434,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:440,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:446,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:447,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:449,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:452,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:453,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:457,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:459,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:468,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:473,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_ffi.cpp:474,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:475,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:480,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:484,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:490,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:494,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:497,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:501,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:507,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:510,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:515,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:516,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:517,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:522,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:523,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:531,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:535,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:536,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:537,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:539,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:543,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:545,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:549,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:552,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:559,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:562,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 115
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 563
    functionName: Botan_Tests::FFI_RNG_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - test_is_true
    - TEST_FFI_OK
    - test_note
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    - botan_tpm2_supports_crypto_backend
    - Botan_Tests::test_encoding_options
    - test_bin_eq
    - std::vector::size
    - TEST_FFI_RC
    - botan_rng_init
    - BOTAN_UNUSED
    - static_cast<size_t*>
    - auto::empty
    - Botan::clear_mem
    - REQUIRE_FFI_OK
    - TEST_FFI_FAIL
    - tpm2_test_rng
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 568
    functionName: Botan_Tests::FFI_RSA_Cert_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:573,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:574,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:575,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:576,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:577,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:580,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:581,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:583,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 586
    functionName: Botan_Tests::FFI_RSA_Cert_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - Botan_Tests::Test::data_file
    - TEST_FFI_INIT
    - TEST_FFI_RC
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 591
    functionName: Botan_Tests::FFI_ZFEC_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:638,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:638,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:647,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:647,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:651,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:657,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:668,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 674
    functionName: Botan_Tests::FFI_ZFEC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - std::to_string
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::data
    - TEST_FFI_INIT
    - test_note
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 679
    functionName: Botan_Tests::FFI_CRL_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:702,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:702,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:707,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:709,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:715,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:717,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:718,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:719,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:720,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:721,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:724,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:730,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:730,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:732,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:734,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:734,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:736,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:738,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:741,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:741,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:744,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:744,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:746,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:753,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:755,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:758,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:760,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:761,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:764,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:766,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:767,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:771,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:771,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:785,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_ffi.cpp:788,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: Botan::to_underlying
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:795,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:796,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:798,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:799,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:802,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:803,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:803,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:806,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:809,1
    - Dst: std::erase
      Src: /src/botan/src/tests/test_ffi.cpp:810,1
    - Dst: std::erase
      Src: /src/botan/src/tests/test_ffi.cpp:811,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: remove_newlines
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: remove_newlines
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:817,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:818,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:819,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_ffi.cpp:822,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_ffi.cpp:822,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:840,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:840,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:841,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:841,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:851,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:854,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:859,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:860,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:865,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:871,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:875,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:881,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:884,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:885,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:892,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:895,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:897,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:900,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:904,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:906,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:907,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:908,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:909,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:911,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:912,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:913,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:915,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 104
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 918
    functionName: Botan_Tests::FFI_CRL_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - remove_newlines
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan::to_underlying
    - test_u64_eq
    - std::erase
    - test_bin_eq
    - test_u8_eq
    - static_cast<uint8_t>
    - std::chrono::duration_cast<std::chrono::seconds>
    - TEST_FFI_RC
    - std::vector::resize
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - REQUIRE_FFI_OK
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - ViewStringSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - Botan::TLS::detail::AsyncBase::complete_now
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 923
    functionName: Botan_Tests::FFI_Cert_Validation_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 931
    functionName: Botan_Tests::FFI_Cert_Validation_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:939,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:940,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:940,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:941,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:942,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:943,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:944,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:944,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:945,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:946,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:946,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:949,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:951,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:951,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:952,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:955,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:957,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:957,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:958,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:963,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:965,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:967,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:968,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:969,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:970,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_ffi.cpp:979,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:990,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 3
    argNames:
    - ' result'
    - ee
    - ca
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - botan_x509_cert_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 992
    functionName: Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - TEST_FFI_RC
    - ViewBytesSink::data
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - AlgorithmIdentifier
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void verify_bare_pkcs1_rsa_signature(Test::Result& result, botan_x509_cert_t
      ee, botan_x509_cert_t ca)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:998,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:998,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1005,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1005,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1007,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1010,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1013,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1014,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1015,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1016,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1019,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1020,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1021,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1023,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1024,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1025,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1026,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1031,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1031,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1034,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1035,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1036,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1037,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1040,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1041,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1042,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1042,1
    - Dst: Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
      Src: /src/botan/src/tests/test_ffi.cpp:1044,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1046,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1049,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1050,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1051,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1055,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1055,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1056,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1058,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1059,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1060,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1065,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1065,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1066,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1066,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1067,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1067,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1069,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1071,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1075,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1076,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1077,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1080,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1081,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1082,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1083,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1085
    functionName: Botan_Tests::FFI_Cert_Validation_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - TEST_FFI_OK
    - botan_x509_cert_validation_status
    - Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
    - TEST_FFI_INIT
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1090
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1096,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1105,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1108,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1111,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1121,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1130,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1134,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1139,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1147,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1147,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1155,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1159,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1161,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1161,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1174,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1188,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1189,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1190,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1195,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1197,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1198,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1201,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1211,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1215,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1219,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1220,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1231,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1233,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1238,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1239,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1240,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1241,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1242,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1243,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1243,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1245,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1246,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1247,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 71
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1251
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - std::string::data
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - test_bin_eq
    - std::vector::size
    - TEST_FFI_RC
    - std::vector::resize
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - Botan::hex_encode
    - test_sz_eq
    - ViewStringSink::callback
    - std::string::resize
    - std::vector::data
    - TEST_FFI_INIT
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1256
    functionName: Botan_Tests::FFI_Cert_ExtKeyUsages_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1271,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1274,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1278,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1279,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1280,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1281,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1284,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1285,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1288,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1289,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1292,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1293,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1296,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1299,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1300,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1305,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1306,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1307,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1310,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1311,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1312,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1314
    functionName: Botan_Tests::FFI_Cert_ExtKeyUsages_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - Botan_Tests::Test::data_file
    - TEST_FFI_INIT
    - TEST_FFI_OK
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_ffi.cpp:1320,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_ffi.cpp:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1324
    functionName: Botan_Tests::read_distinguished_name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_DN::decode_from
    - Botan::BER_Decoder
    linkageType: ''
    returnType: auto
    signature: auto read_distinguished_name(std::span<const uint8_t> bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enumerator_fn
      Src: /src/botan/src/tests/test_ffi.cpp:1339,1
    - Dst: visitor_fn
      Src: /src/botan/src/tests/test_ffi.cpp:1341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1342,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1347,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1349,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1350,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - visitor_fn
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - VisitorT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1353
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 4
    functionsReached:
    - Botan::fmt
    - test_sz_eq
    - TEST_FFI_OK
    - visitor_fn
    - botan_error_description
    - enumerator_fn
    - test_note
    linkageType: ''
    returnType: void
    signature: "void visit_general_names(Test::Result& result,\n                                      botan_x509_cert_t
      cert,\n                                      EnumeratorT enumerator_fn,\n                                      CountFnT
      count_fn,\n                                      VisitorT visitor_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
      Src: /src/botan/src/tests/test_ffi.cpp:1363,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1365,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ffi.cpp:1369,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - botan_x509_general_name_types
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1374
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - ViewStringSink::get
    - std::vector::push_back
    - ViewStringSink::callback
    - TEST_FFI_OK
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    - static_cast<botan_x509_general_name_types>
    - ViewStringSink::delegate
    linkageType: ''
    returnType: auto
    signature: "auto read_string_alternative_names(Test::Result& result,\n                                                botan_x509_cert_t
      cert,\n                                                EnumeratorT enumerator_fn,\n
      \                                               CountFnT count_fn,\n                                                botan_x509_general_name_types
      type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
      Src: /src/botan/src/tests/test_ffi.cpp:1384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - botan_x509_general_name_types
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1377
    functionDepth: 2
    functionLinenumber: 1377
    functionLinenumberEnd: 1395
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - std::vector::emplace_back
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    - static_cast<botan_x509_general_name_types>
    linkageType: ''
    returnType: auto
    signature: "auto read_binary_alternative_names(Test::Result& result,\n                                                botan_x509_cert_t
      cert,\n                                                EnumeratorT enumerator_fn,\n
      \                                               CountFnT count_fn,\n                                                botan_x509_general_name_types
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    - Dst: auto::get_first_attribute
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const std::vector<uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1404
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - read_distinguished_name
    - auto::get_first_attribute
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto read_common_names(std::span<const std::vector<uint8_t>> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1407
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1411,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1412,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1417,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1418,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1419,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1422,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1423,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1431,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1434,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1434,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1439,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1439,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1442,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1443,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1443,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1445,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1445,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1447,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1448,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1448,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1449,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1449,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1451,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1452,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1452,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1456,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1457,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1457,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
      Src: /src/botan/src/tests/test_ffi.cpp:1458,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1459,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1459,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1460,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1460,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1461,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1461,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1467,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1470,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1471,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1471,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1472,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1472,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1473,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1473,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1474,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1474,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1476,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1477,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1477,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1478,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1478,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1479,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1479,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1481,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1485,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
      Src: /src/botan/src/tests/test_ffi.cpp:1492,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1493,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1493,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1497,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1409
    functionDepth: 3
    functionLinenumber: 1409
    functionLinenumberEnd: 1499
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
    - TEST_FFI_RC
    - auto::size
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - Botan::store_be
    - TEST_FFI_OK
    - Botan::value_exists
    - TEST_FFI_INIT
    - test_bin_eq
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: botan_x509_cert_permitted_name_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1511,1
    - Dst: botan_x509_cert_excluded_name_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1513,1
    - Dst: botan_x509_general_name_get_type
      Src: /src/botan/src/tests/test_ffi.cpp:1521,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1523,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1529,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1530,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1530,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1531,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1531,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1534,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1539,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1543,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1552,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1554,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1556,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - ' result'
    - cert
    - permitted
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1563
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - Botan::fmt
    - ViewStringSink::get
    - std::vector::emplace_back
    - botan_x509_cert_permitted_name_constraints
    - ViewStringSink::callback
    - read_distinguished_name
    - botan_error_description
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - test_sz_eq
    - botan_x509_cert_excluded_name_constraints
    - test_failure
    - static_cast<botan_x509_general_name_types>
    - ViewStringSink::delegate
    - botan_x509_general_name_get_type
    - test_note
    linkageType: ''
    returnType: auto
    signature: auto read_constraints(Test::Result& result, botan_x509_cert_t cert,
      bool permitted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1566
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1570,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1571,1
    - Dst: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1575,1
    - Dst: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1576,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1579,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1579,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1582,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1582,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1583,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1584,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1586,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1589,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1589,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1598,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1599,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1600,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1603,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1605,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1606,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1606,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1607,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1608,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1609,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1610,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1610,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1617,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1619,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1619,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1623,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1629,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1630,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1640,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1641,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1642,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1568
    functionDepth: 2
    functionLinenumber: 1568
    functionLinenumberEnd: 1645
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan::value_exists
    - static_cast<botan_x509_general_name_types>
    - auto::size
    - read_distinguished_name
    - TEST_FFI_RC
    - Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - test_enum_eq
    - test_sz_eq
    - ViewStringSink::callback
    - TEST_FFI_INIT
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1654,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1656,1
    - Dst: static_cast<std::vector<std::string>*>
      Src: /src/botan/src/tests/test_ffi.cpp:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' result'
    - cert
    - value_type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - botan_x509_value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1650
    functionDepth: 1
    functionLinenumber: 1650
    functionLinenumberEnd: 1664
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - static_cast<std::vector<std::string>*>
    - TEST_FFI_OK
    linkageType: ''
    returnType: auto
    signature: auto read_aia_string_list(Test::Result& result, botan_x509_cert_t cert,
      botan_x509_value_type value_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1667
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1672,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1675,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1679,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1680,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1684,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1689,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1690,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1690,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1691,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1692,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1696,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1699,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1703,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1704,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1704,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1706,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1669
    functionDepth: 2
    functionLinenumber: 1669
    functionLinenumberEnd: 1712
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
    - TEST_FFI_RC
    - auto::size
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - TEST_FFI_OK
    - Botan::value_exists
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1719
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1723,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1725,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1725,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1726,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1728,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1729,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1721
    functionDepth: 1
    functionLinenumber: 1721
    functionLinenumberEnd: 1736
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1741
    functionDepth: 0
    functionLinenumber: 1741
    functionLinenumberEnd: 1741
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1750,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1751,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1752,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1756,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1757,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1758,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1777,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1778,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1786,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1789,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1790,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1802,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1805,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1806,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1809,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1812,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1814,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1814,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1817,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1819,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1821,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1823,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1830,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1833,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1834,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1836,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1837,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1840,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1848,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1850
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1855
    functionName: Botan_Tests::FFI_GCM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1861,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1864,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1864,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1865,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1867,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1868,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1868,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1869,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1870,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1870,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1881,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1883,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1887,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1891,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1893,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1894,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1896,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1898,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1900,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1901,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1902,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1905,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1908,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1909,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1910,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1912,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1925,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1928,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1931,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1932,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1934,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1935,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1937,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1942,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1945,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1946,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1948,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1949,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1952,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1953,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1955,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1956,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1959,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1961,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1968,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1971,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1972,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1974,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1978,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1978,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1979,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1979,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1982,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1857
    functionDepth: 1
    functionLinenumber: 1857
    functionLinenumberEnd: 1988
    functionName: Botan_Tests::FFI_GCM_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1993
    functionDepth: 0
    functionLinenumber: 1993
    functionLinenumberEnd: 1993
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1999,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2002,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2002,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2003,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2005,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2007,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2018,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2019,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2021,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2024,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2025,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2026,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2028,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2031,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2034,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2037,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2040,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2041,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2042,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2044,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2060,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2063,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2064,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2066,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2074,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2077,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2078,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2080,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2081,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2084,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2085,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2089,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2091,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2092,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2094,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2101,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2107,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2115,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2121
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::string
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2126
    functionName: Botan_Tests::FFI_EAX_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2132,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2141,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2142,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2147,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2148,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2149,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2152,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2153,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2154,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2156,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2159,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2160,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2162,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2164,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2166,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2169,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2170,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2171,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2172,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2187,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2190,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2193,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2197,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2201,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2204,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2207,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2208,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2211,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2213,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2214,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2222,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2225,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2226,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2228,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2229,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2232,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2232,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2242
    functionName: Botan_Tests::FFI_EAX_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2247
    functionDepth: 0
    functionLinenumber: 2247
    functionLinenumberEnd: 2247
    functionName: Botan_Tests::FFI_AEAD_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:2257,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: botan_cipher_is_authenticated
      Src: /src/botan/src/tests/test_ffi.cpp:2263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: botan_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2265,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2279,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2280,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: botan_cipher_requires_entire_message
      Src: /src/botan/src/tests/test_ffi.cpp:2301,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2302,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2315,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ffi.cpp:2321,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2321,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:2322,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2328,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2329,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2331,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ffi.cpp:2335,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2337,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2340,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2342,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2343,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2352,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2356,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:2359,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2360,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2363,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2363,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2365,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2365,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2366,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2369,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2371,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2374,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2375,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2381,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2382,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2383,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2385,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2391,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2392,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2394,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2401,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2413,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:2419,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2420,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2422,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2425,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2426,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2428,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2429,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ffi.cpp:2432,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2433,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2433,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2434,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2437,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2439,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2440,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2444,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2444,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2450,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2453,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2454,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:2456,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2457,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2460,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2461,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2462,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2463,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2467,1
    - Dst: merge
      Src: /src/botan/src/tests/test_ffi.cpp:2469,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 69
    argCount: 2
    argNames:
    - ' merged_result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2249
    functionDepth: 1
    functionLinenumber: 2249
    functionLinenumberEnd: 2471
    functionName: Botan_Tests::FFI_AEAD_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::data
    - TEST_FFI_OK
    - Test::Result::test_sz_eq
    - merge
    - std::span::first
    - c_str
    - botan_cipher_destroy
    - std::span::data
    - std::span::size
    - auto::size
    - std::span::subspan
    - Test::Result::test_failure
    - BOTAN_ASSERT_NOMSG
    - std::vector::size
    - TEST_FFI_RC
    - Test::Result::test_bool_eq
    - botan_cipher_requires_entire_message
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gt
    - Test::Result::test_sz_lte
    - std::vector::data
    - std::span
    - TEST_FFI_INIT
    - botan_cipher_is_authenticated
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& merged_result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2476
    functionDepth: 0
    functionLinenumber: 2476
    functionLinenumberEnd: 2476
    functionName: Botan_Tests::FFI_StreamCipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2481,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2482,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2483,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2484,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2486,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2494,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2495,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2497,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2500,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2509,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2512,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2513,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2515,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2516,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2516,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2520,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2478
    functionDepth: 1
    functionLinenumber: 2478
    functionLinenumberEnd: 2524
    functionName: Botan_Tests::FFI_StreamCipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2528
    functionDepth: 0
    functionLinenumber: 2528
    functionLinenumberEnd: 2528
    functionName: Botan_Tests::FFI_XOF_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2537,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2538,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2540,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2546,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2548,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2551,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2552,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2560,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2564,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2568,1
    - Dst: test_sz_ne
      Src: /src/botan/src/tests/test_ffi.cpp:2569,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2569,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2570,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2572,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2579,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2582,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2583,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2583,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2588,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2590,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2530
    functionDepth: 1
    functionLinenumber: 2530
    functionLinenumberEnd: 2592
    functionName: Botan_Tests::FFI_XOF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - test_rc
    - TEST_FFI_INIT
    - test_sz_ne
    - test_bin_eq
    - std::array::data
    - botan_xof_accepts_input
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2597
    functionDepth: 0
    functionLinenumber: 2597
    functionLinenumberEnd: 2597
    functionName: Botan_Tests::FFI_HashFunction_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2603,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2604,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2606,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2610,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2612,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2614,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2619,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2620,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2624,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2634,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2638,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2648,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2649,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2650,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2650,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2653,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2653,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2654,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2657,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2662,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2666,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2599
    functionDepth: 1
    functionLinenumber: 2599
    functionLinenumberEnd: 2668
    functionName: Botan_Tests::FFI_HashFunction_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - std::strlen
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2673
    functionDepth: 0
    functionLinenumber: 2673
    functionLinenumberEnd: 2673
    functionName: Botan_Tests::FFI_MAC_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2680,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2681,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2683,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2686,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2686,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2687,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2689,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2690,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2690,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2691,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2692,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2692,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2698,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2700,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2701,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2703,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2704,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2705,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2708,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2717,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2718,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2718,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2719,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2721,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2722,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2724,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2724,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2726,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2675
    functionDepth: 1
    functionLinenumber: 2675
    functionLinenumberEnd: 2733
    functionName: Botan_Tests::FFI_MAC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - std::strlen
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2738
    functionDepth: 0
    functionLinenumber: 2738
    functionLinenumberEnd: 2738
    functionName: Botan_Tests::FFI_Scrypt_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2751,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2754,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2740
    functionDepth: 1
    functionLinenumber: 2740
    functionLinenumberEnd: 2759
    functionName: Botan_Tests::FFI_Scrypt_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2764
    functionDepth: 0
    functionLinenumber: 2764
    functionLinenumberEnd: 2764
    functionName: Botan_Tests::FFI_KDF_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2771,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2775,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2777,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2779,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2780,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2781,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2794,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2795,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2801,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2802,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2804,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2805,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:2810,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2813,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2814,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2816,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2818,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2820,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2821,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2822,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2823,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2824,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2825,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2828,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2833,1
    - Dst: botan_bcrypt_generate
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2766
    functionDepth: 1
    functionLinenumber: 2766
    functionLinenumberEnd: 2844
    functionName: Botan_Tests::FFI_KDF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::to_string
    - botan_bcrypt_generate
    - std::vector::resize
    - reinterpret_cast<uint8_t*>
    - TEST_FFI_FAIL
    - std::string::data
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_OK
    - std::string::resize
    - TEST_FFI_INIT
    - test_bin_eq
    - std::string::c_str
    - test_note
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2849
    functionDepth: 0
    functionLinenumber: 2849
    functionLinenumberEnd: 2849
    functionName: Botan_Tests::FFI_Blockcipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2857,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2857,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2858,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2861,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2861,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2862,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2863,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2863,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2869,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2871,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2872,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2872,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2874,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2874,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2876,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2877,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2879,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2884,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2885,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2886,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2887,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2896,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2899,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2902,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2905,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: botan_block_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2851
    functionDepth: 1
    functionLinenumber: 2851
    functionLinenumberEnd: 2910
    functionName: Botan_Tests::FFI_Blockcipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_block_cipher_destroy
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2915
    functionDepth: 0
    functionLinenumber: 2915
    functionLinenumberEnd: 2915
    functionName: Botan_Tests::FFI_ErrorHandling_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2919,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2924,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: reinterpret_cast<botan_hash_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2926,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:2931,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:2932,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:2938,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_ffi.cpp:2938,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_ffi.cpp:2939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2917
    functionDepth: 1
    functionLinenumber: 2917
    functionLinenumberEnd: 2943
    functionName: Botan_Tests::FFI_ErrorHandling_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::set::insert
    - std::set::contains
    - test_is_true
    - botan_mp_init
    - botan_error_description
    - reinterpret_cast<botan_hash_t>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2948
      start: 2948
    functionDepth: 0
    functionLinenumber: 2948
    functionLinenumberEnd: 2948
    functionName: Botan_Tests::FFI_Base64_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2955,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2957,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2960,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2969,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2971,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2974,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2974,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2976,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2977,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2950
    functionDepth: 1
    functionLinenumber: 2950
    functionLinenumberEnd: 2978
    functionName: Botan_Tests::FFI_Base64_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - std::string
    - TEST_FFI_RC
    - test_sz_eq
    - TEST_FFI_OK
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2983
    functionDepth: 0
    functionLinenumber: 2983
    functionLinenumberEnd: 2983
    functionName: Botan_Tests::FFI_Hex_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2989,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2991,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2997,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2998,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3001,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:3001,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2985
    functionDepth: 1
    functionLinenumber: 2985
    functionLinenumberEnd: 3005
    functionName: Botan_Tests::FFI_Hex_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - std::string
    - TEST_FFI_RC
    - TEST_FFI_OK
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3010
    functionDepth: 0
    functionLinenumber: 3010
    functionLinenumberEnd: 3010
    functionName: Botan_Tests::FFI_MP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3017,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3019,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3021,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3022,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3025,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3027,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3028,1
    - Dst: botan_mp_set_from_int
      Src: /src/botan/src/tests/test_ffi.cpp:3030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3031,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3032,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3034,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3035,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3036,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3039,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3040,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3040,1
    - Dst: botan_mp_sub_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3042,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3043,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3044,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3045,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3049,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3050,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3050,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3052,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3053,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3054,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3055,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3056,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3060,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3062,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3063,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3065,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3066,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3068,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3070,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3071,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3072,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3076,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3077,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3081,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3082,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3084,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3085,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3088,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3090,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3091,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3093,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3098,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3099,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3101,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3102,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3106,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3107,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3109,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3125,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3126,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3128,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3130,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3132,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3133,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3133,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3135,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3136,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3137,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3137,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3140,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3141,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3146,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3148,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3149,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3149,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3151,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3153,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3154,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3154,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3155,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3162,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3166,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3170,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3172,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3173,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3173,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3174,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3176,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3178,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3179,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3183,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3188,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3192,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3195,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3200,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3204,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3205,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3210,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3212,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3213,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3216,1
    - Dst: botan_mp_to_bin
      Src: /src/botan/src/tests/test_ffi.cpp:3217,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3217,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3220,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3221,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3223,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3227,1
    - Dst: botan_mp_rand_bits
      Src: /src/botan/src/tests/test_ffi.cpp:3230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3231,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:3232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3235,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3238,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3239,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3240,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3242,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3243,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3244,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3245,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 160
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3012
    functionDepth: 1
    functionLinenumber: 3012
    functionLinenumberEnd: 3247
    functionName: Botan_Tests::FFI_MP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - test_u32_eq
    - botan_mp_set_from_int
    - botan_mp_add_u32
    - std::string
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - botan_mp_sub_u32
    - botan_mp_to_bin
    - botan_mp_rand_bits
    - test_bin_eq
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::callback
    - test_sz_lte
    - ViewStringSink::delegate
    - test_sz_eq
    - ViewStringSink::callback
    - botan_mp_init
    - std::vector::data
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3252
    functionDepth: 0
    functionLinenumber: 3252
    functionLinenumberEnd: 3252
    functionName: Botan_Tests::FFI_FPE_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3258,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:3259,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3262,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3263,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3268,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:3269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3274,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3279,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3281,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3287
      start: 3254
    functionDepth: 1
    functionLinenumber: 3254
    functionLinenumberEnd: 3287
    functionName: Botan_Tests::FFI_FPE_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - test_sz_eq
    - TEST_FFI_OK
    - botan_mp_init
    - botan_mp_set_from_str
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3292
    functionDepth: 0
    functionLinenumber: 3292
    functionLinenumberEnd: 3292
    functionName: Botan_Tests::FFI_TOTP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3295,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3305,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3308,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3309,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3311,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3312,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3313,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3294
    functionDepth: 1
    functionLinenumber: 3294
    functionLinenumberEnd: 3316
    functionName: Botan_Tests::FFI_TOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3321
      start: 3321
    functionDepth: 0
    functionLinenumber: 3321
    functionLinenumberEnd: 3321
    functionName: Botan_Tests::FFI_HOTP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3324,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3334,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3335,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3336,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3337,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3338,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3339,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3340,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3346,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3347,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3348,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3349,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3353
      start: 3323
    functionDepth: 1
    functionLinenumber: 3323
    functionLinenumberEnd: 3353
    functionName: Botan_Tests::FFI_HOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_OK
    - std::vector::data
    - test_u64_eq
    - TEST_FFI_INIT
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3358
      start: 3358
    functionDepth: 0
    functionLinenumber: 3358
    functionLinenumberEnd: 3358
    functionName: Botan_Tests::FFI_Keywrap_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3367,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3372,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3379,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3360
    functionDepth: 1
    functionLinenumber: 3360
    functionLinenumberEnd: 3383
    functionName: Botan_Tests::FFI_Keywrap_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - test_sz_eq
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3388
      start: 3388
    functionDepth: 0
    functionLinenumber: 3388
    functionLinenumberEnd: 3388
    functionName: Botan_Tests::FFI_XMSS_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3392,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3393,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3395,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3396,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3399,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3403,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3404,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3408
      start: 3390
    functionDepth: 1
    functionLinenumber: 3390
    functionLinenumberEnd: 3408
    functionName: Botan_Tests::FFI_XMSS_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_is_true
    - test_u64_eq
    - TEST_FFI_OK
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3413
    functionDepth: 0
    functionLinenumber: 3413
    functionLinenumberEnd: 3413
    functionName: Botan_Tests::FFI_RSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3418,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3419,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3422,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3423,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:3426,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3430,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3432,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3439,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3440,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3441,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3442,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3443,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3445,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3446,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3448,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3451,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3452,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3458,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3459,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3461,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3463,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3464,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3466,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3469,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3473,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3478,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3480,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3485,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3486,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3493,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3494,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3496,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3497,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3498,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3499,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3500,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3503,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3508,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3509,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3512,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3512,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3513,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3516,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3520,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3521,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3526,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3526,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3529,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3535,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3540,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3540,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3543,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3550,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3552,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3554,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3559,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3562,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3567,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3568,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 84
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3570
      start: 3415
    functionDepth: 1
    functionLinenumber: 3415
    functionLinenumberEnd: 3570
    functionName: Botan_Tests::FFI_RSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_is_true
    - std::array::size
    - TEST_FFI_OK
    - botan_mp_init
    - std::vector::data
    - std::array::data
    - TEST_FFI_INIT
    - test_bin_eq
    - botan_privkey_destroy
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3575
    functionDepth: 0
    functionLinenumber: 3575
    functionLinenumberEnd: 3575
    functionName: Botan_Tests::FFI_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3580,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:3581,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3584,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:3585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3587
      start: 3577
    functionDepth: 2
    functionLinenumber: 3577
    functionLinenumberEnd: 3587
    functionName: Botan_Tests::FFI_DSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_DSA_Test::do_dsa_test
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3591,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3594,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3595,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3597,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3604,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3605,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3606,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3607,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3610,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3611,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3612,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3613,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3614,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3617,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3620,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3621,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3623,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3626,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3627,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3628,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3636,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3638,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3639,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3640,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3641,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3642,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3649,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3654,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3658,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3658,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:3659,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3662,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3674,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3675,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3675,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3684,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3691,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 63
    argCount: 3
    argNames:
    - priv
    - rng
    - ' result'
    argTypes:
    - botan_privkey_t
    - botan_rng_t
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3698
      start: 3590
    functionDepth: 1
    functionLinenumber: 3590
    functionLinenumberEnd: 3698
    functionName: Botan_Tests::FFI_DSA_Test::do_dsa_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - botan_mp_destroy
    - std::vector::empty
    - TEST_FFI_RC
    - std::vector::resize
    - botan_mp_init
    - TEST_FFI_OK
    - std::vector::data
    - test_sz_lte
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void do_dsa_test(botan_privkey_t priv, botan_rng_t rng, Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3703
      start: 3703
    functionDepth: 0
    functionLinenumber: 3703
    functionLinenumberEnd: 3703
    functionName: Botan_Tests::FFI_ECDSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3714,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3715,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3722,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3723,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3724,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3729,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3730,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3731,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3737,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3740,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3741,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3747,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3747,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3748,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3748,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3756,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3761,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3763,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3767,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3769,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3774,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3774,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3781,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3783,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3795,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3801,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3805,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3806,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3807,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3808,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3809,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3811,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3813
      start: 3705
    functionDepth: 1
    functionLinenumber: 3705
    functionLinenumberEnd: 3813
    functionName: Botan_Tests::FFI_ECDSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3818
      start: 3818
    functionDepth: 0
    functionLinenumber: 3818
    functionLinenumberEnd: 3818
    functionName: Botan_Tests::FFI_SM2_Sig_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3829,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3845,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3846,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3847,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3849,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3850,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3851,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3853,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3854,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3856,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3857,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3858,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3861,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3863,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3863,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3864,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3864,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3870,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3870,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3875,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3894,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3895,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3895,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3899,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3900,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3900,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3905,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3905,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3911,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3915,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3917,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3918,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3919,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3920,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3820
    functionDepth: 1
    functionLinenumber: 3820
    functionLinenumberEnd: 3922
    functionName: Botan_Tests::FFI_SM2_Sig_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - std::string::c_str
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3927
      start: 3927
    functionDepth: 0
    functionLinenumber: 3927
    functionLinenumberEnd: 3927
    functionName: Botan_Tests::FFI_SM2_Enc_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3937,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3941,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3946,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3953,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3954,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3955,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3957,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3959,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3961,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3962,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3966,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3969,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3971,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3971,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3972,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3982,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3982,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3984,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3989,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3991,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3997,1
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3999,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4003,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4005,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4006,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4007,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3929
    functionDepth: 1
    functionLinenumber: 3929
    functionLinenumberEnd: 4009
    functionName: Botan_Tests::FFI_SM2_Enc_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    - botan_pk_op_decrypt_destroy
    - REQUIRE_FFI_OK
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 4014
    functionDepth: 0
    functionLinenumber: 4014
    functionLinenumberEnd: 4014
    functionName: Botan_Tests::FFI_ECDH_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4018,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4023,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4026,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4029,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4036,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4037,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4038,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4040,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4041,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4042,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4048,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4049,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4051,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4052,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4053,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4055,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4056,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4057,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4069,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4071,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4074,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4080,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4093,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4097,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4101,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4103,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4104,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4106,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4107,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4108,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4109,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4110,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4111,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4112,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4115
      start: 4016
    functionDepth: 1
    functionLinenumber: 4016
    functionLinenumberEnd: 4115
    functionName: Botan_Tests::FFI_ECDH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - ViewBytesSink::data
    - TEST_FFI_OK
    - botan_mp_init
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - test_bin_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4120
      start: 4120
    functionDepth: 0
    functionLinenumber: 4120
    functionLinenumberEnd: 4120
    functionName: Botan_Tests::FFI_McEliece_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4126,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4128,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:4131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4132,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4132,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4133,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4133,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4138,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4122
    functionDepth: 1
    functionLinenumber: 4122
    functionLinenumberEnd: 4141
    functionName: Botan_Tests::FFI_McEliece_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4146
    functionDepth: 0
    functionLinenumber: 4146
    functionLinenumberEnd: 4146
    functionName: Botan_Tests::FFI_Ed25519_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4154,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4156,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4157,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4158,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4167,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4171,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4174,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4177,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4187,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4189,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4192,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4194,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4201,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4205,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4208,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4210
      start: 4148
    functionDepth: 1
    functionLinenumber: 4148
    functionLinenumberEnd: 4210
    functionName: Botan_Tests::FFI_Ed25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4215
      start: 4215
    functionDepth: 0
    functionLinenumber: 4215
    functionLinenumberEnd: 4215
    functionName: Botan_Tests::FFI_Ed448_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4222,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4224,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4227,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4238,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4244,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4245,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4245,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4254,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4256,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4258,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4258,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4259,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4261,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4264,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4268,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4272,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4217
    functionDepth: 1
    functionLinenumber: 4217
    functionLinenumberEnd: 4277
    functionName: Botan_Tests::FFI_Ed448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - auto::size
    - std::vector::resize
    - std::vector::data
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4282
    functionDepth: 0
    functionLinenumber: 4282
    functionLinenumberEnd: 4282
    functionName: Botan_Tests::FFI_X25519_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4288,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4290,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4292,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4294,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4303,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4309,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4309,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4310,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4313,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4313,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4315,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4318,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4321,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4322,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4325,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4328,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4329,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4284
    functionDepth: 1
    functionLinenumber: 4284
    functionLinenumberEnd: 4331
    functionName: Botan_Tests::FFI_X25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - REQUIRE_FFI_OK
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4336
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4336
    functionName: Botan_Tests::FFI_X448_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4340,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4342,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4344,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4346,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4350,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4350,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4355,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4355,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4356,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4361,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4363,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4366,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4367,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4367,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4368,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4375,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4378,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4380,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4381,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4382,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4384
      start: 4338
    functionDepth: 1
    functionLinenumber: 4338
    functionLinenumberEnd: 4384
    functionName: Botan_Tests::FFI_X448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - REQUIRE_FFI_OK
    - auto::size
    - std::vector::data
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: modes
      Src: /src/botan/src/tests/test_ffi.cpp:4403,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4407,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:4407,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4410,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4421,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4421,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4422,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4422,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4423,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4423,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4424,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4441,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4442,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4447,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:4460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4469,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4477,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4479,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4480,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4481,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4482,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4489,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4490,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4494,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4499,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4500,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4509,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4513,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4514,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4516,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4518,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4520,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4523,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4525,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4526,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4402
    functionDepth: 1
    functionLinenumber: 4402
    functionLinenumberEnd: 4530
    functionName: Botan_Tests::FFI_KEM_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - private_key_load_function
    - Botan::secure_vector::data
    - TEST_FFI_RC
    - std::vector::resize
    - public_key_load_function
    - test_is_true
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_INIT
    - algo
    - Botan::secure_vector::resize
    - test_bin_eq
    - modes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: modes
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4571,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4571,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4572,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4573,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4573,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4586,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4590,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4598,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4605,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4605,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4612,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4612,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4613,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4614,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4615,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4619,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4619,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4628,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4628,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4630,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4631,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4636,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4640
      start: 4549
    functionDepth: 1
    functionLinenumber: 4549
    functionLinenumberEnd: 4640
    functionName: Botan_Tests::FFI_Signature_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - private_key_load_function
    - Botan::secure_vector::data
    - TEST_FFI_RC
    - public_key_load_function
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - hash_algo_or_padding
    - TEST_FFI_INIT
    - algo
    - std::vector::data
    - test_bin_eq
    - Botan::secure_vector::resize
    - Botan::secure_vector::size
    - modes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4645
      start: 4645
    functionDepth: 0
    functionLinenumber: 4645
    functionLinenumberEnd: 4645
    functionName: Botan_Tests::FFI_Kyber512_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4648,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4650,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4652,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4656,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4656,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4664,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4664,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4665,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4665,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4674,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4674,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4675,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4675,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4678,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4678,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4680,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4682,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4683,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4685
      start: 4647
    functionDepth: 1
    functionLinenumber: 4647
    functionLinenumberEnd: 4685
    functionName: Botan_Tests::FFI_Kyber512_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4690
      start: 4690
    functionDepth: 0
    functionLinenumber: 4690
    functionLinenumberEnd: 4690
    functionName: Botan_Tests::FFI_Kyber768_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4693,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4695,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4697,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4701,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4701,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4709,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4709,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4710,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4719,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4719,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4720,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4720,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4723,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4725,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4728,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4730
      start: 4692
    functionDepth: 1
    functionLinenumber: 4692
    functionLinenumberEnd: 4730
    functionName: Botan_Tests::FFI_Kyber768_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4735
      start: 4735
    functionDepth: 0
    functionLinenumber: 4735
    functionLinenumberEnd: 4735
    functionName: Botan_Tests::FFI_Kyber1024_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4738,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4740,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4742,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4746,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4754,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4754,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4755,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4755,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4761,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4764,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4764,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4765,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4768,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4768,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4770,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4773,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4775
      start: 4737
    functionDepth: 1
    functionLinenumber: 4737
    functionLinenumberEnd: 4775
    functionName: Botan_Tests::FFI_Kyber1024_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4780
      start: 4780
    functionDepth: 0
    functionLinenumber: 4780
    functionLinenumberEnd: 4780
    functionName: Botan_Tests::FFI_ML_KEM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4783
      start: 4783
    functionDepth: 0
    functionLinenumber: 4783
    functionLinenumberEnd: 4783
    functionName: Botan_Tests::FFI_ML_KEM_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4785
      start: 4785
    functionDepth: 0
    functionLinenumber: 4785
    functionLinenumberEnd: 4785
    functionName: Botan_Tests::FFI_ML_KEM_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4787
    functionDepth: 0
    functionLinenumber: 4787
    functionLinenumberEnd: 4787
    functionName: Botan_Tests::FFI_ML_KEM_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4789
      start: 4789
    functionDepth: 0
    functionLinenumber: 4789
    functionLinenumberEnd: 4789
    functionName: Botan_Tests::FFI_ML_KEM_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4794
      start: 4794
    functionDepth: 0
    functionLinenumber: 4794
    functionLinenumberEnd: 4794
    functionName: Botan_Tests::FFI_FrodoKEM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4797
      start: 4797
    functionDepth: 0
    functionLinenumber: 4797
    functionLinenumberEnd: 4797
    functionName: Botan_Tests::FFI_FrodoKEM_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4799
      start: 4799
    functionDepth: 0
    functionLinenumber: 4799
    functionLinenumberEnd: 4799
    functionName: Botan_Tests::FFI_FrodoKEM_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4801
      start: 4801
    functionDepth: 0
    functionLinenumber: 4801
    functionLinenumberEnd: 4801
    functionName: Botan_Tests::FFI_FrodoKEM_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4818
      start: 4803
    functionDepth: 0
    functionLinenumber: 4803
    functionLinenumberEnd: 4818
    functionName: Botan_Tests::FFI_FrodoKEM_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4823
      start: 4823
    functionDepth: 0
    functionLinenumber: 4823
    functionLinenumberEnd: 4823
    functionName: Botan_Tests::FFI_ML_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4826
      start: 4826
    functionDepth: 0
    functionLinenumber: 4826
    functionLinenumberEnd: 4826
    functionName: Botan_Tests::FFI_ML_DSA_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4828
      start: 4828
    functionDepth: 0
    functionLinenumber: 4828
    functionLinenumberEnd: 4828
    functionName: Botan_Tests::FFI_ML_DSA_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4830
      start: 4830
    functionDepth: 0
    functionLinenumber: 4830
    functionLinenumberEnd: 4830
    functionName: Botan_Tests::FFI_ML_DSA_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4838
      start: 4832
    functionDepth: 0
    functionLinenumber: 4832
    functionLinenumberEnd: 4838
    functionName: Botan_Tests::FFI_ML_DSA_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4840
    functionDepth: 0
    functionLinenumber: 4840
    functionLinenumberEnd: 4840
    functionName: Botan_Tests::FFI_ML_DSA_Test::hash_algo_or_padding
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * hash_algo_or_padding() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4845
      start: 4845
    functionDepth: 0
    functionLinenumber: 4845
    functionLinenumberEnd: 4845
    functionName: Botan_Tests::FFI_SLH_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4848
      start: 4848
    functionDepth: 0
    functionLinenumber: 4848
    functionLinenumberEnd: 4848
    functionName: Botan_Tests::FFI_SLH_DSA_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4850
    functionDepth: 0
    functionLinenumber: 4850
    functionLinenumberEnd: 4850
    functionName: Botan_Tests::FFI_SLH_DSA_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4852
      start: 4852
    functionDepth: 0
    functionLinenumber: 4852
    functionLinenumberEnd: 4852
    functionName: Botan_Tests::FFI_SLH_DSA_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ffi.cpp:4864,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4877
      start: 4854
    functionDepth: 1
    functionLinenumber: 4854
    functionLinenumberEnd: 4877
    functionName: Botan_Tests::FFI_SLH_DSA_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - Botan::concat
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4879
      start: 4879
    functionDepth: 0
    functionLinenumber: 4879
    functionLinenumberEnd: 4879
    functionName: Botan_Tests::FFI_SLH_DSA_Test::hash_algo_or_padding
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * hash_algo_or_padding() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4884
      start: 4884
    functionDepth: 0
    functionLinenumber: 4884
    functionLinenumberEnd: 4884
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4887
      start: 4887
    functionDepth: 0
    functionLinenumber: 4887
    functionLinenumberEnd: 4887
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4889
      start: 4889
    functionDepth: 0
    functionLinenumber: 4889
    functionLinenumberEnd: 4889
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4891
    functionDepth: 0
    functionLinenumber: 4891
    functionLinenumberEnd: 4891
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ffi.cpp:4898,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4918
      start: 4893
    functionDepth: 1
    functionLinenumber: 4893
    functionLinenumberEnd: 4918
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - Botan::concat
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4923
      start: 4923
    functionDepth: 0
    functionLinenumber: 4923
    functionLinenumberEnd: 4923
    functionName: Botan_Tests::FFI_ElGamal_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4928,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4929,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4932,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4935
      start: 4925
    functionDepth: 2
    functionLinenumber: 4925
    functionLinenumberEnd: 4935
    functionName: Botan_Tests::FFI_ElGamal_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4939,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4943,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4945,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4950,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4951,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4952,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4953,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4955,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4956,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4957,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4961,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4967,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4969,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4970,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4971,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4986,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4988,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4988,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4989,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4990,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4993,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4998,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4998,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5000,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5000,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:5001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5002,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:5004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5005,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5008,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5010,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5011,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5012,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 3
    argNames:
    - priv
    - rng
    - ' result'
    argTypes:
    - botan_privkey_t
    - botan_rng_t
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5014
      start: 4938
    functionDepth: 1
    functionLinenumber: 4938
    functionLinenumberEnd: 5014
    functionName: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - botan_mp_destroy
    - std::vector::resize
    - botan_mp_init
    - TEST_FFI_OK
    - std::vector::data
    - test_bin_eq
    - std::string::c_str
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void do_elgamal_test(botan_privkey_t priv, botan_rng_t rng, Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5019
      start: 5019
    functionDepth: 0
    functionLinenumber: 5019
    functionLinenumberEnd: 5019
    functionName: Botan_Tests::FFI_DH_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:5023,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5028,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5031,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5034,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5042,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5043,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5044,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5045,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5047,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5048,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5049,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5050,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5054,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5055,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5058,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5063,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5064,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5065,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5068,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5073,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5076,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5077,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5079,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5080,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5083,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5085,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5088,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5092,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5092,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5094,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5098,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5103,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5109,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5116,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5119,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5121,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5123,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5126,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5127,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5128,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5130,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5133
      start: 5021
    functionDepth: 1
    functionLinenumber: 5021
    functionLinenumberEnd: 5133
    functionName: Botan_Tests::FFI_DH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - test_is_true
    - TEST_FFI_OK
    - botan_mp_init
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5138
      start: 5138
    functionDepth: 0
    functionLinenumber: 5138
    functionLinenumberEnd: 5138
    functionName: Botan_Tests::FFI_OID_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:5148,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5149,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5151,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5152,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5153,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5156,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5159,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5164,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5166,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5172,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5180,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5182,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5185,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:5188,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5189,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5198,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5199,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5200,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:5200,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5201,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5206,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5208,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5209,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5213,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5213,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5215,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5217,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5222,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5222,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5226,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5233
      start: 5140
    functionDepth: 1
    functionLinenumber: 5140
    functionLinenumberEnd: 5233
    functionName: Botan_Tests::FFI_OID_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - ViewStringSink::callback
    - test_is_true
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - ViewStringSink::delegate
    - std::string::c_str
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5238
    functionDepth: 0
    functionLinenumber: 5238
    functionLinenumberEnd: 5238
    functionName: Botan_Tests::FFI_EC_Group_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5243,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5244,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5245,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ffi.cpp:5247,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5248,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ffi.cpp:5249,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5263,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5265,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5287,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5289,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5299,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5300,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5320,1
    - Dst: botan_oid_register
      Src: /src/botan/src/tests/test_ffi.cpp:5321,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5322,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5323,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5324,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5325,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5326,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5327,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5329,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5330,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5331,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5332,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5334,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5339,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5349,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5361,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5364,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5366,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5367,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5378,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5379,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5382,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5383,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5384,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5385,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5386,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5387,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5389,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5390,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5391,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5392,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5395,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5398,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5401,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5402,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5405,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5406,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5407,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5417,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5418,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5419,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5426,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ffi.cpp:5427,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5431,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5432,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5433,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5434,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5435,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5437,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5443,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5449,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5452,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:5452,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5454,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5455,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5458,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5462,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5462,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5463,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5463,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5467,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5468,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5469,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5470,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5471,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 87
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5474
      start: 5240
    functionDepth: 2
    functionLinenumber: 5240
    functionLinenumberEnd: 5474
    functionName: Botan_Tests::FFI_EC_Group_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - ViewStringSink::get
    - std::array::size
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - test_bool_eq
    - ViewBytesSink::get
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::Test::read_data_file
    - botan_oid_register
    - std::string::c_str
    - TEST_FFI_RC
    - Botan::EC_Group::supports_named_group
    - ViewBytesSink::callback
    - botan_mp_set_from_str
    - std::array::data
    - ViewStringSink::delegate
    - botan_oid_destroy
    - reinterpret_cast<const uint8_t*>
    - Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    - ViewStringSink::callback
    - botan_mp_init
    - botan_privkey_destroy
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5488,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5491,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 9
    argNames:
    - ec_group
    - oid
    - p
    - a
    - b
    - g_x
    - g_y
    - order
    - ' result'
    argTypes:
    - botan_ec_group_t
    - botan_asn1_oid_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5493
      start: 5477
    functionDepth: 1
    functionLinenumber: 5477
    functionLinenumberEnd: 5493
    functionName: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - TEST_FFI_OK
    linkageType: ''
    returnType: void
    signature: "void get_group_parameters(botan_ec_group_t ec_group,\n                                       botan_asn1_oid_t*
      oid,\n                                       botan_mp_t* p,\n                                       botan_mp_t*
      a,\n                                       botan_mp_t* b,\n                                       botan_mp_t*
      g_x,\n                                       botan_mp_t* g_y,\n                                       botan_mp_t*
      order,\n                                       Test::Result& result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5498
      start: 5498
    functionDepth: 0
    functionLinenumber: 5498
    functionLinenumberEnd: 5498
    functionName: Botan_Tests::FFI_SRP6_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5506
      start: 5500
    functionDepth: 0
    functionLinenumber: 5500
    functionLinenumberEnd: 5506
    functionName: Botan_Tests::FFI_SRP6_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:5514,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5519,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5520,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5522,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5523,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5530,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5536,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5538,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5539,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5546,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5552,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5553,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5554,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5560,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5561,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5562,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5563,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5565,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5567,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5569,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5570,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5574,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5579,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5580,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5581,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5582,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5584,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5586,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5591,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5592,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5595,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5598,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5602,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5605
      start: 5508
    functionDepth: 1
    functionLinenumber: 5508
    functionLinenumberEnd: 5605
    functionName: Botan_Tests::FFI_SRP6_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - TEST_FFI_RC
    - auto::size
    - std::vector
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - test_bin_eq
    - std::array::data
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: _TEST_FFI_STR_HELPER
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_STR_HELPER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: _TEST_FFI_STR
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - func
    - ','
    - file
    - ','
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: _TEST_FFI_SOURCE_LOCATION
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEST_FFI_SOURCE_LOCATION(func, file, line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: TEST_FFI_OK
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 177
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_OK(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: TEST_FFI_INIT
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 144
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_INIT(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - msg
    - ','
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: TEST_FFI_FAIL
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_FAIL(msg, func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rc
    - ','
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: TEST_FFI_RC
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FFI_RC(rc, func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: REQUIRE_FFI_OK
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FFI_OK(func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_Tests::ViewBytesSink::delegate
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * delegate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan_Tests::ViewBytesSink::callback
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_view_bin_fn
    signature: botan_view_bin_fn callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_Tests::ViewBytesSink::get
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_Tests::ViewBytesSink::data
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::ViewBytesSink::data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_Tests::ViewBytesSink::size
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::ViewBytesSink::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewBytesSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:99,1
    - Dst: auto*::m_buf::assign
      Src: /src/botan/src/tests/test_ffi.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - void*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: Botan_Tests::ViewBytesSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ViewBytesSink*>
    - auto*::m_buf::assign
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const uint8_t buf[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan_Tests::ViewStringSink::delegate
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * delegate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan_Tests::ViewStringSink::callback
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_view_str_fn
    signature: botan_view_str_fn callback()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& get()'
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & get()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewStringSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:126,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - str
    - len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: Botan_Tests::ViewStringSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ViewStringSink*>
    - std::string
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const char* str, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Test::name
      Src: /src/botan/src/tests/test_ffi.cpp:142,1
    - Dst: Botan_Tests::FFI_Test::skip_this_test
      Src: /src/botan/src/tests/test_ffi.cpp:144,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:146,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:147,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ffi.cpp:151,1
    - Dst: ffi_test
      Src: /src/botan/src/tests/test_ffi.cpp:152,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ffi.cpp:153,1
    - Dst: botan_rng_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:155,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_ffi.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 161
    functionName: Botan_Tests::FFI_Test::run
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_Test::name
    - Botan_Tests::FFI_Test::skip_this_test
    - Test::Result::test_note
    - Test::Result::start_timer
    - botan_rng_init
    - ffi_test
    - Test::Result::end_timer
    - Test::Result::test_failure
    - botan_rng_destroy
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: Botan_Tests::FFI_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:181,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:185,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:192,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:199,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:204,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:206,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:208,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_ffi.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:214,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:215,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:220,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:225,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:228,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:235,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:239,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:242,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:244,1
    - Dst: botan_privkey_load
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:248,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:251,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:255,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:256,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:258,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:260,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:279,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:286,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:290,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:293,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:298,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:304,1
    - Dst: test_sz_gte
      Src: /src/botan/src/tests/test_ffi.cpp:305,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 4
    argNames:
    - ' result'
    - pub
    - priv
    - rng
    argTypes:
    - Test::Result
    - botan_pubkey_t
    - botan_privkey_t
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 313
    functionName: Botan_Tests::ffi_test_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - botan_privkey_destroy
    - test_sz_gte
    - std::string::c_str
    - botan_privkey_load
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test_pubkey_export(Test::Result& result, botan_pubkey_t pub,
      botan_privkey_t priv, botan_rng_t rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: Botan_Tests::FFI_Utils_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: botan_version_major
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: Botan::version_major
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: botan_version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: Botan::version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: botan_version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: Botan::version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:324,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: botan_version_string
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: botan_version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:326,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:327,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:329,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:333,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:333,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: test_rc_ok
      Src: /src/botan/src/tests/test_ffi.cpp:336,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:336,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:338,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:338,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:348,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:353,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:354,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:355,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:357,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 359
    functionName: Botan_Tests::FFI_Utils_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - botan_version_major
    - std::string::data
    - test_is_true
    - botan_version_minor
    - TEST_FFI_OK
    - Botan::version_cstr
    - botan_version_string
    - botan_version_patch
    - botan_ffi_api_version
    - test_rc_ok
    - std::vector::size
    - TEST_FFI_RC
    - Botan::version_major
    - Botan::version_minor
    - botan_ffi_supports_api
    - Botan::version_datestamp
    - std::vector::data
    - test_rc
    - std::string::resize
    - botan_version_datestamp
    - Botan::version_patch
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: Botan_Tests::FFI_RNG_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:378,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:380,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:381,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:383,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:384,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:388,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:389,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:392,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:398,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:402,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:404,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:406,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:409,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:410,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:411,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:413,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:416,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:420,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:428,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:434,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:440,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:443,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:444,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:446,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:447,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:449,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:452,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:453,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:457,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:459,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:467,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:468,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:473,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_ffi.cpp:474,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:475,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:480,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:484,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:490,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:494,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:497,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:498,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:500,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:501,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:507,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:510,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:514,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:515,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:516,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:517,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:522,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:523,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:530,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:531,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:535,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:536,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:537,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:539,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:543,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:545,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:549,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:552,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:559,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:562,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 115
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 563
    functionName: Botan_Tests::FFI_RNG_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - test_is_true
    - TEST_FFI_OK
    - test_note
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    - botan_tpm2_supports_crypto_backend
    - Botan_Tests::test_encoding_options
    - test_bin_eq
    - std::vector::size
    - TEST_FFI_RC
    - botan_rng_init
    - BOTAN_UNUSED
    - static_cast<size_t*>
    - auto::empty
    - Botan::clear_mem
    - REQUIRE_FFI_OK
    - TEST_FFI_FAIL
    - tpm2_test_rng
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 568
    functionName: Botan_Tests::FFI_RSA_Cert_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:573,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:574,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:575,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:576,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:577,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:580,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:581,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:583,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 586
    functionName: Botan_Tests::FFI_RSA_Cert_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - Botan_Tests::Test::data_file
    - TEST_FFI_INIT
    - TEST_FFI_RC
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 591
    functionName: Botan_Tests::FFI_ZFEC_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:638,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:638,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:647,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:647,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:651,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:652,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:657,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:668,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 674
    functionName: Botan_Tests::FFI_ZFEC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - std::to_string
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::data
    - TEST_FFI_INIT
    - test_note
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 679
    functionName: Botan_Tests::FFI_CRL_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:702,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:702,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:707,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:709,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:715,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:717,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:718,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:719,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:720,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:721,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:724,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:730,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:730,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:732,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:734,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:734,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:736,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:738,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:741,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:741,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:744,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:744,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:746,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:753,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:755,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:758,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:760,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:761,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:764,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:766,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:767,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:770,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:771,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:771,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:785,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_ffi.cpp:788,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: Botan::to_underlying
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:794,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:795,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:796,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:798,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:799,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:802,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:803,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:803,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:805,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:806,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:809,1
    - Dst: std::erase
      Src: /src/botan/src/tests/test_ffi.cpp:810,1
    - Dst: std::erase
      Src: /src/botan/src/tests/test_ffi.cpp:811,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: remove_newlines
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: remove_newlines
      Src: /src/botan/src/tests/test_ffi.cpp:815,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:817,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:818,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:819,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_ffi.cpp:822,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_ffi.cpp:822,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:840,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:840,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:841,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:841,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:851,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:854,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:859,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:860,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:865,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:871,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:875,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:881,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:884,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:885,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:892,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:895,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:897,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:900,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:904,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:906,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:907,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:908,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:909,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:911,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:912,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:913,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:915,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 104
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 918
    functionName: Botan_Tests::FFI_CRL_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - remove_newlines
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan::to_underlying
    - test_u64_eq
    - std::erase
    - test_bin_eq
    - test_u8_eq
    - static_cast<uint8_t>
    - std::chrono::duration_cast<std::chrono::seconds>
    - TEST_FFI_RC
    - std::vector::resize
    - Botan::calendar_point
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - REQUIRE_FFI_OK
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - ViewStringSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - Botan::TLS::detail::AsyncBase::complete_now
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 923
    functionName: Botan_Tests::FFI_Cert_Validation_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 931
    functionName: Botan_Tests::FFI_Cert_Validation_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:939,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:940,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:940,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:941,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:942,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:943,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:944,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:944,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:945,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:946,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:946,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:949,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:951,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:951,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:952,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:955,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:957,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:957,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:958,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:963,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:965,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:967,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:968,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:969,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:970,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/tests/test_ffi.cpp:979,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:983,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:987,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:990,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 3
    argNames:
    - ' result'
    - ee
    - ca
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - botan_x509_cert_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 992
    functionName: Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - TEST_FFI_RC
    - ViewBytesSink::data
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - AlgorithmIdentifier
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void verify_bare_pkcs1_rsa_signature(Test::Result& result, botan_x509_cert_t
      ee, botan_x509_cert_t ca)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:998,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:998,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1005,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1005,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1007,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1010,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1013,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1014,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1015,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1016,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1019,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1020,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1021,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1023,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1024,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1025,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1026,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1031,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1031,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1034,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1035,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1036,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1037,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1040,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1041,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1042,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1042,1
    - Dst: Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
      Src: /src/botan/src/tests/test_ffi.cpp:1044,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1046,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1049,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1050,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1051,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1055,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1055,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1056,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1058,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1059,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1060,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1065,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1065,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1066,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1066,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1067,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1067,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1069,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1071,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:1073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1075,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1076,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1077,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1080,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1081,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1082,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1083,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1085
    functionName: Botan_Tests::FFI_Cert_Validation_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - TEST_FFI_OK
    - botan_x509_cert_validation_status
    - Botan_Tests::FFI_Cert_Validation_Test::verify_bare_pkcs1_rsa_signature
    - TEST_FFI_INIT
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1090
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1096,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1105,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1108,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1111,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1116,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1120,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1121,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1130,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1134,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1139,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1147,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1147,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1155,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1159,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1161,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1161,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1171,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1174,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1188,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1189,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1190,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1195,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1197,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1198,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1201,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1211,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1215,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1219,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1220,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1221,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1231,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1233,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1238,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1239,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1240,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1241,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1242,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1242,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1243,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1243,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1245,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1246,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1247,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 71
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1251
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - std::string::data
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - test_bin_eq
    - std::vector::size
    - TEST_FFI_RC
    - std::vector::resize
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - Botan::hex_encode
    - test_sz_eq
    - ViewStringSink::callback
    - std::string::resize
    - std::vector::data
    - TEST_FFI_INIT
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1256
    functionName: Botan_Tests::FFI_Cert_ExtKeyUsages_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1271,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1274,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1278,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1279,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1280,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1281,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1284,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1285,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1288,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1289,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1292,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1293,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1296,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1299,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1300,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1305,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1306,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1307,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1310,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1311,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1312,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1314
    functionName: Botan_Tests::FFI_Cert_ExtKeyUsages_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - Botan_Tests::Test::data_file
    - TEST_FFI_INIT
    - TEST_FFI_OK
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_ffi.cpp:1320,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_ffi.cpp:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1324
    functionName: Botan_Tests::read_distinguished_name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_DN::decode_from
    - Botan::BER_Decoder
    linkageType: ''
    returnType: auto
    signature: auto read_distinguished_name(std::span<const uint8_t> bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enumerator_fn
      Src: /src/botan/src/tests/test_ffi.cpp:1339,1
    - Dst: visitor_fn
      Src: /src/botan/src/tests/test_ffi.cpp:1341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1342,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1346,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1347,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1349,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1350,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - visitor_fn
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - VisitorT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1353
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 6
    functionsReached:
    - Botan::fmt
    - test_sz_eq
    - TEST_FFI_OK
    - visitor_fn
    - botan_error_description
    - enumerator_fn
    - test_note
    linkageType: ''
    returnType: void
    signature: "void visit_general_names(Test::Result& result,\n                                      botan_x509_cert_t
      cert,\n                                      EnumeratorT enumerator_fn,\n                                      CountFnT
      count_fn,\n                                      VisitorT visitor_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
      Src: /src/botan/src/tests/test_ffi.cpp:1363,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1365,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ffi.cpp:1369,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - botan_x509_general_name_types
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1374
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - ViewStringSink::get
    - std::vector::push_back
    - ViewStringSink::callback
    - TEST_FFI_OK
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    - static_cast<botan_x509_general_name_types>
    - ViewStringSink::delegate
    linkageType: ''
    returnType: auto
    signature: "auto read_string_alternative_names(Test::Result& result,\n                                                botan_x509_cert_t
      cert,\n                                                EnumeratorT enumerator_fn,\n
      \                                               CountFnT count_fn,\n                                                botan_x509_general_name_types
      type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
      Src: /src/botan/src/tests/test_ffi.cpp:1384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1389,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' result'
    - cert
    - enumerator_fn
    - count_fn
    - type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - EnumeratorT
    - CountFnT
    - botan_x509_general_name_types
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1377
    functionDepth: 2
    functionLinenumber: 1377
    functionLinenumberEnd: 1395
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - std::vector::emplace_back
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::visit_general_names
    - static_cast<botan_x509_general_name_types>
    linkageType: ''
    returnType: auto
    signature: "auto read_binary_alternative_names(Test::Result& result,\n                                                botan_x509_cert_t
      cert,\n                                                EnumeratorT enumerator_fn,\n
      \                                               CountFnT count_fn,\n                                                botan_x509_general_name_types
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    - Dst: auto::get_first_attribute
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const std::vector<uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1404
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - read_distinguished_name
    - auto::get_first_attribute
    - std::vector::push_back
    linkageType: ''
    returnType: auto
    signature: auto read_common_names(std::span<const std::vector<uint8_t>> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1407
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1411,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1412,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1417,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1418,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1419,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1422,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1423,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1431,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1434,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1434,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1439,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1439,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1442,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1443,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1443,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1445,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1445,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1447,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1448,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1448,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1449,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1449,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1451,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1452,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1452,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ffi.cpp:1453,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1456,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1457,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1457,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
      Src: /src/botan/src/tests/test_ffi.cpp:1458,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1459,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1459,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1460,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1460,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1461,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1461,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1467,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1470,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1471,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1471,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1472,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1472,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1473,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1473,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1474,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1474,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1476,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1477,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1477,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1478,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1478,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1479,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1479,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1481,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1485,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_ffi.cpp:1487,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
      Src: /src/botan/src/tests/test_ffi.cpp:1492,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1493,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1493,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1497,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1409
    functionDepth: 3
    functionLinenumber: 1409
    functionLinenumberEnd: 1499
    functionName: Botan_Tests::FFI_Cert_AlternativeNames_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_string_alternative_names
    - TEST_FFI_RC
    - auto::size
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_common_names
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - Botan::store_be
    - TEST_FFI_OK
    - Botan::value_exists
    - TEST_FFI_INIT
    - test_bin_eq
    - Botan_Tests::FFI_Cert_AlternativeNames_Test::read_binary_alternative_names
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: botan_x509_cert_permitted_name_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1511,1
    - Dst: botan_x509_cert_excluded_name_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1513,1
    - Dst: botan_x509_general_name_get_type
      Src: /src/botan/src/tests/test_ffi.cpp:1521,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1523,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1529,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1530,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1530,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1531,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1531,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1534,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_ffi.cpp:1539,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1543,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1552,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1554,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1556,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:1558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - ' result'
    - cert
    - permitted
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1563
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - Botan::fmt
    - ViewStringSink::get
    - std::vector::emplace_back
    - botan_x509_cert_permitted_name_constraints
    - ViewStringSink::callback
    - read_distinguished_name
    - botan_error_description
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - test_sz_eq
    - botan_x509_cert_excluded_name_constraints
    - test_failure
    - static_cast<botan_x509_general_name_types>
    - ViewStringSink::delegate
    - botan_x509_general_name_get_type
    - test_note
    linkageType: ''
    returnType: auto
    signature: auto read_constraints(Test::Result& result, botan_x509_cert_t cert,
      bool permitted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1566
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1570,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1571,1
    - Dst: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1575,1
    - Dst: Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
      Src: /src/botan/src/tests/test_ffi.cpp:1576,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1579,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1579,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1582,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1582,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1583,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1584,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1586,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1589,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1589,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1598,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1599,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1600,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1603,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1605,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1606,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1606,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1607,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1608,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1609,1
    - Dst: test_enum_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1610,1
    - Dst: static_cast<botan_x509_general_name_types>
      Src: /src/botan/src/tests/test_ffi.cpp:1610,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1615,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1617,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1619,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1619,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1621,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1623,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1627,1
    - Dst: read_distinguished_name
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1629,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1630,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1634,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1640,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1641,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1642,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1568
    functionDepth: 2
    functionLinenumber: 1568
    functionLinenumberEnd: 1645
    functionName: Botan_Tests::FFI_Cert_NameConstraints_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - Botan::value_exists
    - static_cast<botan_x509_general_name_types>
    - auto::size
    - read_distinguished_name
    - TEST_FFI_RC
    - Botan_Tests::FFI_Cert_NameConstraints_Test::read_constraints
    - Botan_Tests::Test::data_file
    - ViewBytesSink::callback
    - ViewStringSink::delegate
    - test_enum_eq
    - test_sz_eq
    - ViewStringSink::callback
    - TEST_FFI_INIT
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1654,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1656,1
    - Dst: static_cast<std::vector<std::string>*>
      Src: /src/botan/src/tests/test_ffi.cpp:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' result'
    - cert
    - value_type
    argTypes:
    - Test::Result
    - botan_x509_cert_t
    - botan_x509_value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1650
    functionDepth: 1
    functionLinenumber: 1650
    functionLinenumberEnd: 1664
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - static_cast<std::vector<std::string>*>
    - TEST_FFI_OK
    linkageType: ''
    returnType: auto
    signature: auto read_aia_string_list(Test::Result& result, botan_x509_cert_t cert,
      botan_x509_value_type value_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1667
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1672,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1675,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1679,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:1680,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1684,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1689,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1690,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1690,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1691,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1692,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1696,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1699,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1703,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1704,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1704,1
    - Dst: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
      Src: /src/botan/src/tests/test_ffi.cpp:1706,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1669
    functionDepth: 2
    functionLinenumber: 1669
    functionLinenumberEnd: 1712
    functionName: Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_Cert_AuthorityInformationAccess_Test::read_aia_string_list
    - TEST_FFI_RC
    - auto::size
    - Botan_Tests::Test::data_file
    - test_sz_eq
    - test_is_true
    - TEST_FFI_OK
    - Botan::value_exists
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1719
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1723,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1725,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1725,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1726,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1728,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1729,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1732,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1721
    functionDepth: 1
    functionLinenumber: 1721
    functionLinenumberEnd: 1736
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1741
    functionDepth: 0
    functionLinenumber: 1741
    functionLinenumberEnd: 1741
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1750,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1751,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1752,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1756,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1757,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1758,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1777,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1778,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1786,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1789,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1790,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1797,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1798,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1802,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1805,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1806,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1809,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1812,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1814,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1814,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1817,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1819,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1821,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1823,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1828,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1829,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1830,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1833,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1834,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1836,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1837,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1840,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1848,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1850
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1855
    functionName: Botan_Tests::FFI_GCM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1861,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1864,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1864,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1865,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1867,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1868,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1868,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1869,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1870,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1870,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1881,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1883,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1887,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1891,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1893,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1894,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1896,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1898,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1900,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1901,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1902,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1905,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1908,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1909,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1910,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1912,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1921,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1924,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1925,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1928,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1931,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1932,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1934,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1935,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1937,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1940,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1941,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1942,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1945,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1946,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1948,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1949,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1952,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1953,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1955,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1956,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1959,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1961,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1968,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1971,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1972,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1974,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1978,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1978,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1979,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1979,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1982,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1857
    functionDepth: 1
    functionLinenumber: 1857
    functionLinenumberEnd: 1988
    functionName: Botan_Tests::FFI_GCM_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1993
    functionDepth: 0
    functionLinenumber: 1993
    functionLinenumberEnd: 1993
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1999,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2002,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2002,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2003,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2005,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2007,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2018,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2019,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2021,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2024,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2025,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2026,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2028,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2031,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2034,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2037,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2040,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2041,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2042,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2044,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2053,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2056,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2060,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2063,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2064,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2066,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2074,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2077,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2078,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2080,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2081,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2084,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2085,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2089,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2091,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2092,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2094,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2098,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2099,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2101,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2107,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2115,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2121
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::string
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2126
    functionName: Botan_Tests::FFI_EAX_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2132,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2141,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2142,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2147,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2148,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2149,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2152,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2153,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2154,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2156,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2159,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2160,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2162,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2164,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2166,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2169,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2170,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2171,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2172,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2182,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2187,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2188,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2190,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2193,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2195,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2197,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2201,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2204,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2207,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2208,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2210,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2211,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2213,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2214,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2220,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2222,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2225,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2226,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2228,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2229,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2232,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2232,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2242
    functionName: Botan_Tests::FFI_EAX_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::resize
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2247
    functionDepth: 0
    functionLinenumber: 2247
    functionLinenumberEnd: 2247
    functionName: Botan_Tests::FFI_AEAD_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ffi.cpp:2257,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: botan_cipher_is_authenticated
      Src: /src/botan/src/tests/test_ffi.cpp:2263,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: botan_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2265,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2279,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2280,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2290,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: botan_cipher_requires_entire_message
      Src: /src/botan/src/tests/test_ffi.cpp:2301,1
    - Dst: Test::Result::test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2302,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2315,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ffi.cpp:2321,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2321,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:2322,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2328,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2329,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2331,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ffi.cpp:2335,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2337,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2340,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2342,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2343,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2352,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2356,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:2359,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2360,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2363,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2363,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2365,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2365,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2366,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2369,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2371,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2374,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2375,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2381,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2382,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2383,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2385,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2391,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2392,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2394,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2398,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2401,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2413,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:2419,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2420,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2422,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2425,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2426,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2428,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2429,1
    - Dst: Test::Result::test_sz_gt
      Src: /src/botan/src/tests/test_ffi.cpp:2432,1
    - Dst: Test::Result::test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2433,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2433,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2434,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2437,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2439,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:2440,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2444,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2444,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2450,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:2453,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:2454,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:2456,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2457,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2460,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:2461,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2462,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2463,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2467,1
    - Dst: merge
      Src: /src/botan/src/tests/test_ffi.cpp:2469,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 69
    argCount: 2
    argNames:
    - ' merged_result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2249
    functionDepth: 1
    functionLinenumber: 2249
    functionLinenumberEnd: 2471
    functionName: Botan_Tests::FFI_AEAD_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::data
    - TEST_FFI_OK
    - Test::Result::test_sz_eq
    - merge
    - std::span::first
    - c_str
    - botan_cipher_destroy
    - std::span::data
    - std::span::size
    - auto::size
    - std::span::subspan
    - Test::Result::test_failure
    - BOTAN_ASSERT_NOMSG
    - std::vector::size
    - TEST_FFI_RC
    - Test::Result::test_bool_eq
    - botan_cipher_requires_entire_message
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_gt
    - Test::Result::test_sz_lte
    - std::vector::data
    - std::span
    - TEST_FFI_INIT
    - botan_cipher_is_authenticated
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& merged_result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2476
    functionDepth: 0
    functionLinenumber: 2476
    functionLinenumberEnd: 2476
    functionName: Botan_Tests::FFI_StreamCipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2481,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2482,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2483,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2484,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2486,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2494,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2495,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2497,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2500,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2505,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2509,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2512,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2513,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2515,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2516,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2516,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2520,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2478
    functionDepth: 1
    functionLinenumber: 2478
    functionLinenumberEnd: 2524
    functionName: Botan_Tests::FFI_StreamCipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - test_sz_eq
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2528
    functionDepth: 0
    functionLinenumber: 2528
    functionLinenumberEnd: 2528
    functionName: Botan_Tests::FFI_XOF_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2537,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2538,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2540,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2546,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2548,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2551,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2552,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2560,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2564,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2566,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2568,1
    - Dst: test_sz_ne
      Src: /src/botan/src/tests/test_ffi.cpp:2569,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2569,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2570,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2572,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2577,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2579,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2582,1
    - Dst: test_rc
      Src: /src/botan/src/tests/test_ffi.cpp:2583,1
    - Dst: botan_xof_accepts_input
      Src: /src/botan/src/tests/test_ffi.cpp:2583,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2587,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2588,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2590,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2530
    functionDepth: 1
    functionLinenumber: 2530
    functionLinenumberEnd: 2592
    functionName: Botan_Tests::FFI_XOF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - test_rc
    - TEST_FFI_INIT
    - test_sz_ne
    - test_bin_eq
    - std::array::data
    - botan_xof_accepts_input
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2597
    functionDepth: 0
    functionLinenumber: 2597
    functionLinenumberEnd: 2597
    functionName: Botan_Tests::FFI_HashFunction_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2603,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2604,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2606,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2610,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2612,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2614,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2619,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2620,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2624,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2634,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2638,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2648,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2649,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2650,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2650,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2653,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2653,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2654,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2654,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2657,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2662,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2666,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2599
    functionDepth: 1
    functionLinenumber: 2599
    functionLinenumberEnd: 2668
    functionName: Botan_Tests::FFI_HashFunction_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - std::strlen
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2673
    functionDepth: 0
    functionLinenumber: 2673
    functionLinenumberEnd: 2673
    functionName: Botan_Tests::FFI_MAC_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2680,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2681,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2683,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2686,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2686,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2687,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2689,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2690,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2690,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2691,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2692,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2692,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2698,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2700,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2701,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2703,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2704,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2705,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2708,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2717,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2718,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2718,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2719,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2721,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2722,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2724,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2724,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2726,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2675
    functionDepth: 1
    functionLinenumber: 2675
    functionLinenumberEnd: 2733
    functionName: Botan_Tests::FFI_MAC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - reinterpret_cast<const uint8_t*>
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - std::strlen
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2738
    functionDepth: 0
    functionLinenumber: 2738
    functionLinenumberEnd: 2738
    functionName: Botan_Tests::FFI_Scrypt_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2745,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2751,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2754,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2740
    functionDepth: 1
    functionLinenumber: 2740
    functionLinenumberEnd: 2759
    functionName: Botan_Tests::FFI_Scrypt_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2764
    functionDepth: 0
    functionLinenumber: 2764
    functionLinenumberEnd: 2764
    functionName: Botan_Tests::FFI_KDF_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2771,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2775,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2777,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2779,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2780,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2781,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2794,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2795,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2801,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2802,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2804,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2805,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:2810,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2813,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:2814,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2816,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2818,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2820,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2821,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2822,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2823,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2824,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2825,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2828,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2833,1
    - Dst: botan_bcrypt_generate
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2836,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2766
    functionDepth: 1
    functionLinenumber: 2766
    functionLinenumberEnd: 2844
    functionName: Botan_Tests::FFI_KDF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::to_string
    - botan_bcrypt_generate
    - std::vector::resize
    - reinterpret_cast<uint8_t*>
    - TEST_FFI_FAIL
    - std::string::data
    - test_sz_eq
    - std::vector::data
    - TEST_FFI_OK
    - std::string::resize
    - TEST_FFI_INIT
    - test_bin_eq
    - std::string::c_str
    - test_note
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2849
    functionDepth: 0
    functionLinenumber: 2849
    functionLinenumberEnd: 2849
    functionName: Botan_Tests::FFI_Blockcipher_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2857,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2857,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2858,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2861,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2861,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2862,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2863,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2863,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2869,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2871,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2872,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2872,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2874,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2874,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2876,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2877,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2879,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2884,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2885,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2886,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2887,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2893,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2896,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2899,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2902,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2905,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: botan_block_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2851
    functionDepth: 1
    functionLinenumber: 2851
    functionLinenumberEnd: 2910
    functionName: Botan_Tests::FFI_Blockcipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_block_cipher_destroy
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::array::data
    - test_str_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2915
    functionDepth: 0
    functionLinenumber: 2915
    functionLinenumberEnd: 2915
    functionName: Botan_Tests::FFI_ErrorHandling_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2919,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2924,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: reinterpret_cast<botan_hash_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2926,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:2931,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:2932,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:2938,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_ffi.cpp:2938,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_ffi.cpp:2939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2917
    functionDepth: 1
    functionLinenumber: 2917
    functionLinenumberEnd: 2943
    functionName: Botan_Tests::FFI_ErrorHandling_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::set::insert
    - std::set::contains
    - test_is_true
    - botan_mp_init
    - botan_error_description
    - reinterpret_cast<botan_hash_t>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2948
      start: 2948
    functionDepth: 0
    functionLinenumber: 2948
    functionLinenumberEnd: 2948
    functionName: Botan_Tests::FFI_Base64_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2955,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2957,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2960,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2969,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2971,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2974,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2974,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2976,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2977,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2950
    functionDepth: 1
    functionLinenumber: 2950
    functionLinenumberEnd: 2978
    functionName: Botan_Tests::FFI_Base64_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - std::string
    - TEST_FFI_RC
    - test_sz_eq
    - TEST_FFI_OK
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2983
    functionDepth: 0
    functionLinenumber: 2983
    functionLinenumberEnd: 2983
    functionName: Botan_Tests::FFI_Hex_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2989,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2991,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2997,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2998,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3001,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:3001,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2985
    functionDepth: 1
    functionLinenumber: 2985
    functionLinenumberEnd: 3005
    functionName: Botan_Tests::FFI_Hex_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - std::string
    - TEST_FFI_RC
    - TEST_FFI_OK
    - test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3010
    functionDepth: 0
    functionLinenumber: 3010
    functionLinenumberEnd: 3010
    functionName: Botan_Tests::FFI_MP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3017,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3019,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3021,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3022,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3025,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3027,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3028,1
    - Dst: botan_mp_set_from_int
      Src: /src/botan/src/tests/test_ffi.cpp:3030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3031,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3032,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3034,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3035,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3036,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3039,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3040,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3040,1
    - Dst: botan_mp_sub_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3042,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3043,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:3044,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3045,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3049,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3050,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3050,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3052,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3053,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3054,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3055,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3056,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3060,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3062,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3063,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3065,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3066,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3068,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3070,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3071,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3072,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3076,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3077,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3081,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3082,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3084,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3085,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3088,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3090,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3091,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3093,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3098,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3099,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3101,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3102,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3106,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3107,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3109,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3113,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3125,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3126,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3128,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3130,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3132,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3133,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3133,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3135,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3136,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3137,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3137,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3140,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3141,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3146,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3148,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3149,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3149,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3151,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3153,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3154,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3154,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3155,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3162,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3166,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3170,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3172,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3173,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3173,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3174,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3176,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3178,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3179,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3183,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3188,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3192,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3195,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3196,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3200,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3204,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3205,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3210,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3212,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3213,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3216,1
    - Dst: botan_mp_to_bin
      Src: /src/botan/src/tests/test_ffi.cpp:3217,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3217,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3220,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3221,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3223,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3227,1
    - Dst: botan_mp_rand_bits
      Src: /src/botan/src/tests/test_ffi.cpp:3230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3231,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:3232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3234,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3235,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3238,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3239,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3240,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3242,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3243,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3244,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3245,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 160
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3012
    functionDepth: 1
    functionLinenumber: 3012
    functionLinenumberEnd: 3247
    functionName: Botan_Tests::FFI_MP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - test_u32_eq
    - botan_mp_set_from_int
    - botan_mp_add_u32
    - std::string
    - ViewStringSink::get
    - test_is_true
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - botan_mp_sub_u32
    - botan_mp_to_bin
    - botan_mp_rand_bits
    - test_bin_eq
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::callback
    - test_sz_lte
    - ViewStringSink::delegate
    - test_sz_eq
    - ViewStringSink::callback
    - botan_mp_init
    - std::vector::data
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3252
    functionDepth: 0
    functionLinenumber: 3252
    functionLinenumberEnd: 3252
    functionName: Botan_Tests::FFI_FPE_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3258,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:3259,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3262,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3263,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3268,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:3269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3274,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3279,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3281,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3287
      start: 3254
    functionDepth: 1
    functionLinenumber: 3254
    functionLinenumberEnd: 3287
    functionName: Botan_Tests::FFI_FPE_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - test_sz_eq
    - TEST_FFI_OK
    - botan_mp_init
    - botan_mp_set_from_str
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3292
    functionDepth: 0
    functionLinenumber: 3292
    functionLinenumberEnd: 3292
    functionName: Botan_Tests::FFI_TOTP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3295,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3300,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3305,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3308,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3309,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3311,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3312,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3313,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3294
    functionDepth: 1
    functionLinenumber: 3294
    functionLinenumberEnd: 3316
    functionName: Botan_Tests::FFI_TOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3321
      start: 3321
    functionDepth: 0
    functionLinenumber: 3321
    functionLinenumberEnd: 3321
    functionName: Botan_Tests::FFI_HOTP_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3324,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3330,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3334,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3335,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3336,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3337,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3338,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3339,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3340,1
    - Dst: test_u32_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3346,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3347,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3348,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3349,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3353
      start: 3323
    functionDepth: 1
    functionLinenumber: 3323
    functionLinenumberEnd: 3353
    functionName: Botan_Tests::FFI_HOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_u32_eq
    - Botan::hex_decode
    - TEST_FFI_RC
    - TEST_FFI_OK
    - std::vector::data
    - test_u64_eq
    - TEST_FFI_INIT
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3358
      start: 3358
    functionDepth: 0
    functionLinenumber: 3358
    functionLinenumberEnd: 3358
    functionName: Botan_Tests::FFI_Keywrap_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3367,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3372,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3379,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3360
    functionDepth: 1
    functionLinenumber: 3360
    functionLinenumberEnd: 3383
    functionName: Botan_Tests::FFI_Keywrap_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - test_sz_eq
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3388
      start: 3388
    functionDepth: 0
    functionLinenumber: 3388
    functionLinenumberEnd: 3388
    functionName: Botan_Tests::FFI_XMSS_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3392,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3393,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3395,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3396,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3399,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3403,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3404,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3408
      start: 3390
    functionDepth: 1
    functionLinenumber: 3390
    functionLinenumberEnd: 3408
    functionName: Botan_Tests::FFI_XMSS_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_is_true
    - test_u64_eq
    - TEST_FFI_OK
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3413
    functionDepth: 0
    functionLinenumber: 3413
    functionLinenumberEnd: 3413
    functionName: Botan_Tests::FFI_RSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3418,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3419,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3422,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:3423,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:3426,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3430,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3432,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3439,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3440,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3441,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3442,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3443,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3445,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3446,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3448,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3451,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3452,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3458,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3459,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3461,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3463,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3464,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3466,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3469,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3473,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3478,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3480,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3485,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3486,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3493,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3494,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3496,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3497,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3498,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3499,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3500,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3503,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3508,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3509,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3512,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3512,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3513,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3516,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3520,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3521,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3526,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3526,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3529,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3535,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3540,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3540,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3543,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3550,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3552,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3553,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3554,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3559,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3562,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3567,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3568,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 84
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3570
      start: 3415
    functionDepth: 1
    functionLinenumber: 3415
    functionLinenumberEnd: 3570
    functionName: Botan_Tests::FFI_RSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - std::vector::resize
    - test_is_true
    - std::array::size
    - TEST_FFI_OK
    - botan_mp_init
    - std::vector::data
    - std::array::data
    - TEST_FFI_INIT
    - test_bin_eq
    - botan_privkey_destroy
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3575
    functionDepth: 0
    functionLinenumber: 3575
    functionLinenumberEnd: 3575
    functionName: Botan_Tests::FFI_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3580,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:3581,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3584,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:3585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3587
      start: 3577
    functionDepth: 2
    functionLinenumber: 3577
    functionLinenumberEnd: 3587
    functionName: Botan_Tests::FFI_DSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_DSA_Test::do_dsa_test
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3591,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3594,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3595,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3597,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3604,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3605,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3606,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3607,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3610,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3611,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3612,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3613,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3614,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3617,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3620,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3621,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3623,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3626,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3627,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3628,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3636,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3638,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3639,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3640,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3641,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3642,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3649,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3651,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3654,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3658,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3658,1
    - Dst: test_sz_lte
      Src: /src/botan/src/tests/test_ffi.cpp:3659,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3662,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3668,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3669,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3673,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3674,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3675,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3675,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3678,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3683,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3684,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3689,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3691,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 63
    argCount: 3
    argNames:
    - priv
    - rng
    - ' result'
    argTypes:
    - botan_privkey_t
    - botan_rng_t
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3698
      start: 3590
    functionDepth: 1
    functionLinenumber: 3590
    functionLinenumberEnd: 3698
    functionName: Botan_Tests::FFI_DSA_Test::do_dsa_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 4
    functionsReached:
    - botan_mp_destroy
    - std::vector::empty
    - TEST_FFI_RC
    - std::vector::resize
    - botan_mp_init
    - TEST_FFI_OK
    - std::vector::data
    - test_sz_lte
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void do_dsa_test(botan_privkey_t priv, botan_rng_t rng, Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3703
      start: 3703
    functionDepth: 0
    functionLinenumber: 3703
    functionLinenumberEnd: 3703
    functionName: Botan_Tests::FFI_ECDSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3714,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3715,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3722,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3723,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3724,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3729,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3730,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3731,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3732,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3737,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3739,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3740,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3741,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3747,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3747,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3748,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3748,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3756,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3758,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3761,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3763,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3767,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3769,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3774,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3774,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3780,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3781,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3783,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3792,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3795,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3799,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3801,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3805,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3806,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3807,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3808,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3809,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3811,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3813
      start: 3705
    functionDepth: 1
    functionLinenumber: 3705
    functionLinenumberEnd: 3813
    functionName: Botan_Tests::FFI_ECDSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3818
      start: 3818
    functionDepth: 0
    functionLinenumber: 3818
    functionLinenumberEnd: 3818
    functionName: Botan_Tests::FFI_SM2_Sig_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3829,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3845,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3846,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3847,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3849,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3850,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3851,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3852,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3853,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3854,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3856,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3857,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3858,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3861,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3863,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3863,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3864,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3864,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3870,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3870,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3872,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3875,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3893,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3894,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3895,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3895,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3898,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3899,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3900,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3900,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3903,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3904,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3905,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3905,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3908,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3909,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3911,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3915,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3917,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3918,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3919,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3920,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3820
    functionDepth: 1
    functionLinenumber: 3820
    functionLinenumberEnd: 3922
    functionName: Botan_Tests::FFI_SM2_Sig_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - std::string::c_str
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3927
      start: 3927
    functionDepth: 0
    functionLinenumber: 3927
    functionLinenumberEnd: 3927
    functionName: Botan_Tests::FFI_SM2_Enc_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3937,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3941,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3946,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3953,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3954,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3955,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3957,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3959,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3960,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3961,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3962,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3963,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3966,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3969,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3971,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3971,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3972,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3977,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3982,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3982,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3984,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3985,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3989,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3991,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3995,1
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3997,1
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3999,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4003,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4005,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4006,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4007,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3929
    functionDepth: 1
    functionLinenumber: 3929
    functionLinenumberEnd: 4009
    functionName: Botan_Tests::FFI_SM2_Enc_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    - botan_pk_op_decrypt_destroy
    - REQUIRE_FFI_OK
    - std::vector::resize
    - ViewBytesSink::data
    - std::array::size
    - botan_mp_init
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 4014
    functionDepth: 0
    functionLinenumber: 4014
    functionLinenumberEnd: 4014
    functionName: Botan_Tests::FFI_ECDH_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4018,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4023,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4026,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4029,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4036,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4037,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4038,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4040,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4041,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4042,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4048,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4049,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:4050,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4051,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4052,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4053,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4055,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4056,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4057,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4069,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4071,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4074,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4080,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4087,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4093,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4094,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4097,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4099,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4101,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4103,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4104,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4106,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4107,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4108,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4109,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4110,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4111,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4112,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4113,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4115
      start: 4016
    functionDepth: 1
    functionLinenumber: 4016
    functionLinenumberEnd: 4115
    functionName: Botan_Tests::FFI_ECDH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - ViewBytesSink::data
    - TEST_FFI_OK
    - botan_mp_init
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - std::vector::data
    - TEST_FFI_INIT
    - ViewBytesSink::size
    - test_bin_eq
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4120
      start: 4120
    functionDepth: 0
    functionLinenumber: 4120
    functionLinenumberEnd: 4120
    functionName: Botan_Tests::FFI_McEliece_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4126,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4128,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:4131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4132,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4132,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4133,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4133,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4138,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4122
    functionDepth: 1
    functionLinenumber: 4122
    functionLinenumberEnd: 4141
    functionName: Botan_Tests::FFI_McEliece_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::array::size
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - std::array::data
    - test_str_eq
    - ffi_test_pubkey_export
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4146
    functionDepth: 0
    functionLinenumber: 4146
    functionLinenumberEnd: 4146
    functionName: Botan_Tests::FFI_Ed25519_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4154,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4156,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4157,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4158,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4167,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4171,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4174,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4177,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4187,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4189,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4192,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4194,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4201,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4205,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4208,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4210
      start: 4148
    functionDepth: 1
    functionLinenumber: 4148
    functionLinenumberEnd: 4210
    functionName: Botan_Tests::FFI_Ed25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4215
      start: 4215
    functionDepth: 0
    functionLinenumber: 4215
    functionLinenumberEnd: 4215
    functionName: Botan_Tests::FFI_Ed448_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4222,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4224,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4227,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4238,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4244,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4245,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4245,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4251,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4254,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4256,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4258,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4258,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4259,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4261,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4264,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4268,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4269,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4272,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4217
    functionDepth: 1
    functionLinenumber: 4217
    functionLinenumberEnd: 4277
    functionName: Botan_Tests::FFI_Ed448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - auto::size
    - std::vector::resize
    - std::vector::data
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4282
    functionDepth: 0
    functionLinenumber: 4282
    functionLinenumberEnd: 4282
    functionName: Botan_Tests::FFI_X25519_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4288,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4290,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4292,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4294,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4303,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4308,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4309,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4309,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4310,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4313,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4313,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4315,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4318,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4321,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4322,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4325,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4328,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4329,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4284
    functionDepth: 1
    functionLinenumber: 4284
    functionLinenumberEnd: 4331
    functionName: Botan_Tests::FFI_X25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - REQUIRE_FFI_OK
    - TEST_FFI_OK
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4336
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4336
    functionName: Botan_Tests::FFI_X448_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4340,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4342,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4344,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4346,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4350,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4350,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4355,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4355,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4356,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4361,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4363,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4366,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4367,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4367,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4368,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4375,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:4376,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4378,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4380,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4381,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4382,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4384
      start: 4338
    functionDepth: 1
    functionLinenumber: 4338
    functionLinenumberEnd: 4384
    functionName: Botan_Tests::FFI_X448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - REQUIRE_FFI_OK
    - auto::size
    - std::vector::data
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: modes
      Src: /src/botan/src/tests/test_ffi.cpp:4403,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4407,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:4407,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4410,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4416,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4421,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4421,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4422,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4422,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4423,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4423,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4424,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4429,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4430,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4431,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4432,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4441,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4442,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4447,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:4460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4469,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4475,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4477,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4479,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4480,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4481,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4482,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4489,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4490,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4494,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4499,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4500,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4509,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4513,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4514,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4516,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4518,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4520,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4523,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4525,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4526,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4402
    functionDepth: 1
    functionLinenumber: 4402
    functionLinenumberEnd: 4530
    functionName: Botan_Tests::FFI_KEM_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - private_key_load_function
    - Botan::secure_vector::data
    - TEST_FFI_RC
    - std::vector::resize
    - public_key_load_function
    - test_is_true
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_INIT
    - algo
    - Botan::secure_vector::resize
    - test_bin_eq
    - modes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: modes
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4571,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4571,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4572,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4573,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:4573,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4579,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4580,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4581,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4582,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4586,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4590,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4593,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4594,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4598,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4605,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4605,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4606,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4607,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4612,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4612,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4613,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4614,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4615,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4619,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4619,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4620,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4621,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4625,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4628,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:4628,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4629,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4630,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4631,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4631,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4632,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4635,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4636,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4640
      start: 4549
    functionDepth: 1
    functionLinenumber: 4549
    functionLinenumberEnd: 4640
    functionName: Botan_Tests::FFI_Signature_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - private_key_load_function
    - Botan::secure_vector::data
    - TEST_FFI_RC
    - public_key_load_function
    - test_sz_eq
    - TEST_FFI_OK
    - ViewBytesSink::callback
    - ViewBytesSink::delegate
    - ViewBytesSink::get
    - hash_algo_or_padding
    - TEST_FFI_INIT
    - algo
    - std::vector::data
    - test_bin_eq
    - Botan::secure_vector::resize
    - Botan::secure_vector::size
    - modes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4645
      start: 4645
    functionDepth: 0
    functionLinenumber: 4645
    functionLinenumberEnd: 4645
    functionName: Botan_Tests::FFI_Kyber512_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4648,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4650,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4652,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4656,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4656,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4662,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4663,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4664,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4664,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4665,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4665,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4672,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4673,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4674,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4674,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4675,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4675,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4678,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4678,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4679,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4680,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4682,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4683,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4685
      start: 4647
    functionDepth: 1
    functionLinenumber: 4647
    functionLinenumberEnd: 4685
    functionName: Botan_Tests::FFI_Kyber512_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4690
      start: 4690
    functionDepth: 0
    functionLinenumber: 4690
    functionLinenumberEnd: 4690
    functionName: Botan_Tests::FFI_Kyber768_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4693,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4695,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4697,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4701,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4701,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4708,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4709,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4709,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4710,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4710,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4716,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4717,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4718,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4719,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4719,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4720,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4720,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4723,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4724,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4725,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4728,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4730
      start: 4692
    functionDepth: 1
    functionLinenumber: 4692
    functionLinenumberEnd: 4730
    functionName: Botan_Tests::FFI_Kyber768_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4735
      start: 4735
    functionDepth: 0
    functionLinenumber: 4735
    functionLinenumberEnd: 4735
    functionName: Botan_Tests::FFI_Kyber1024_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4738,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4740,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:4742,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4746,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4752,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4753,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4754,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4754,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4755,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4755,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4761,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4762,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4763,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4764,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4764,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4765,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4768,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4768,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4769,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4770,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4773,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4775
      start: 4737
    functionDepth: 1
    functionLinenumber: 4737
    functionLinenumberEnd: 4775
    functionName: Botan_Tests::FFI_Kyber1024_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_OK
    - std::vector::data
    - ViewBytesSink::delegate
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - TEST_FFI_INIT
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t /*unused*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4780
      start: 4780
    functionDepth: 0
    functionLinenumber: 4780
    functionLinenumberEnd: 4780
    functionName: Botan_Tests::FFI_ML_KEM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4783
      start: 4783
    functionDepth: 0
    functionLinenumber: 4783
    functionLinenumberEnd: 4783
    functionName: Botan_Tests::FFI_ML_KEM_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4785
      start: 4785
    functionDepth: 0
    functionLinenumber: 4785
    functionLinenumberEnd: 4785
    functionName: Botan_Tests::FFI_ML_KEM_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4787
    functionDepth: 0
    functionLinenumber: 4787
    functionLinenumberEnd: 4787
    functionName: Botan_Tests::FFI_ML_KEM_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4789
      start: 4789
    functionDepth: 0
    functionLinenumber: 4789
    functionLinenumberEnd: 4789
    functionName: Botan_Tests::FFI_ML_KEM_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4794
      start: 4794
    functionDepth: 0
    functionLinenumber: 4794
    functionLinenumberEnd: 4794
    functionName: Botan_Tests::FFI_FrodoKEM_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4797
      start: 4797
    functionDepth: 0
    functionLinenumber: 4797
    functionLinenumberEnd: 4797
    functionName: Botan_Tests::FFI_FrodoKEM_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4799
      start: 4799
    functionDepth: 0
    functionLinenumber: 4799
    functionLinenumberEnd: 4799
    functionName: Botan_Tests::FFI_FrodoKEM_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4801
      start: 4801
    functionDepth: 0
    functionLinenumber: 4801
    functionLinenumberEnd: 4801
    functionName: Botan_Tests::FFI_FrodoKEM_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4818
      start: 4803
    functionDepth: 0
    functionLinenumber: 4803
    functionLinenumberEnd: 4818
    functionName: Botan_Tests::FFI_FrodoKEM_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4823
      start: 4823
    functionDepth: 0
    functionLinenumber: 4823
    functionLinenumberEnd: 4823
    functionName: Botan_Tests::FFI_ML_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4826
      start: 4826
    functionDepth: 0
    functionLinenumber: 4826
    functionLinenumberEnd: 4826
    functionName: Botan_Tests::FFI_ML_DSA_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4828
      start: 4828
    functionDepth: 0
    functionLinenumber: 4828
    functionLinenumberEnd: 4828
    functionName: Botan_Tests::FFI_ML_DSA_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4830
      start: 4830
    functionDepth: 0
    functionLinenumber: 4830
    functionLinenumberEnd: 4830
    functionName: Botan_Tests::FFI_ML_DSA_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4838
      start: 4832
    functionDepth: 0
    functionLinenumber: 4832
    functionLinenumberEnd: 4838
    functionName: Botan_Tests::FFI_ML_DSA_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4840
    functionDepth: 0
    functionLinenumber: 4840
    functionLinenumberEnd: 4840
    functionName: Botan_Tests::FFI_ML_DSA_Test::hash_algo_or_padding
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * hash_algo_or_padding() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4845
      start: 4845
    functionDepth: 0
    functionLinenumber: 4845
    functionLinenumberEnd: 4845
    functionName: Botan_Tests::FFI_SLH_DSA_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4848
      start: 4848
    functionDepth: 0
    functionLinenumber: 4848
    functionLinenumberEnd: 4848
    functionName: Botan_Tests::FFI_SLH_DSA_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4850
    functionDepth: 0
    functionLinenumber: 4850
    functionLinenumberEnd: 4850
    functionName: Botan_Tests::FFI_SLH_DSA_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4852
      start: 4852
    functionDepth: 0
    functionLinenumber: 4852
    functionLinenumberEnd: 4852
    functionName: Botan_Tests::FFI_SLH_DSA_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ffi.cpp:4864,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4877
      start: 4854
    functionDepth: 1
    functionLinenumber: 4854
    functionLinenumberEnd: 4877
    functionName: Botan_Tests::FFI_SLH_DSA_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - Botan::concat
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4879
      start: 4879
    functionDepth: 0
    functionLinenumber: 4879
    functionLinenumberEnd: 4879
    functionName: Botan_Tests::FFI_SLH_DSA_Test::hash_algo_or_padding
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * hash_algo_or_padding() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4884
      start: 4884
    functionDepth: 0
    functionLinenumber: 4884
    functionLinenumberEnd: 4884
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4887
      start: 4887
    functionDepth: 0
    functionLinenumber: 4887
    functionLinenumberEnd: 4887
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::algo
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4889
      start: 4889
    functionDepth: 0
    functionLinenumber: 4889
    functionLinenumberEnd: 4889
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::private_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: privkey_loader_fn_t
    signature: privkey_loader_fn_t private_key_load_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4891
    functionDepth: 0
    functionLinenumber: 4891
    functionLinenumberEnd: 4891
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::public_key_load_function
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pubkey_loader_fn_t
    signature: pubkey_loader_fn_t public_key_load_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ffi.cpp:4898,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4918
      start: 4893
    functionDepth: 1
    functionLinenumber: 4893
    functionLinenumberEnd: 4918
    functionName: Botan_Tests::FFI_Classic_McEliece_Test::modes
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - Botan::concat
    linkageType: ''
    returnType: std::vector<const char*>
    signature: std::vector<const char*> modes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4923
      start: 4923
    functionDepth: 0
    functionLinenumber: 4923
    functionLinenumberEnd: 4923
    functionName: Botan_Tests::FFI_ElGamal_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4928,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4929,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4932,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4935
      start: 4925
    functionDepth: 2
    functionLinenumber: 4925
    functionLinenumberEnd: 4935
    functionName: Botan_Tests::FFI_ElGamal_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    - TEST_FFI_INIT
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4939,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4942,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4943,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4945,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4950,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4951,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4952,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4953,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4955,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4956,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4957,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4958,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4961,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4967,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4969,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4970,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4971,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4986,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4988,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4988,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4989,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4990,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4991,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4993,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4998,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4998,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5000,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5000,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:5001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5002,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5003,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:5004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5005,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5008,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5010,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5011,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5012,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 3
    argNames:
    - priv
    - rng
    - ' result'
    argTypes:
    - botan_privkey_t
    - botan_rng_t
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5014
      start: 4938
    functionDepth: 1
    functionLinenumber: 4938
    functionLinenumberEnd: 5014
    functionName: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 4
    functionsReached:
    - botan_mp_destroy
    - std::vector::resize
    - botan_mp_init
    - TEST_FFI_OK
    - std::vector::data
    - test_bin_eq
    - std::string::c_str
    - ffi_test_pubkey_export
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void do_elgamal_test(botan_privkey_t priv, botan_rng_t rng, Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5019
      start: 5019
    functionDepth: 0
    functionLinenumber: 5019
    functionLinenumberEnd: 5019
    functionName: Botan_Tests::FFI_DH_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:5023,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5028,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5031,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5034,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5042,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5043,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5044,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5045,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5047,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5048,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5049,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5050,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5054,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5055,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5058,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5063,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5064,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5065,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5068,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5073,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5076,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5077,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5079,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5080,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5083,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5085,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5088,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5092,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5092,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5094,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5098,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5098,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5103,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5106,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5109,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:5112,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5116,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5119,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5121,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5123,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5126,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5127,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5128,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5130,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5133
      start: 5021
    functionDepth: 1
    functionLinenumber: 5021
    functionLinenumberEnd: 5133
    functionName: Botan_Tests::FFI_DH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - REQUIRE_FFI_OK
    - TEST_FFI_RC
    - test_is_true
    - TEST_FFI_OK
    - botan_mp_init
    - std::vector::data
    - TEST_FFI_INIT
    - test_bin_eq
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5138
      start: 5138
    functionDepth: 0
    functionLinenumber: 5138
    functionLinenumberEnd: 5138
    functionName: Botan_Tests::FFI_OID_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:5148,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5149,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5151,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5152,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5153,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5156,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5159,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5164,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5166,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5172,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5175,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ffi.cpp:5178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5180,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5182,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5183,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5185,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:5188,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5189,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5198,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5199,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5200,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:5200,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5201,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5206,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5208,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5209,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5212,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5213,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5213,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5215,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5217,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5221,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5222,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5222,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5226,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5233
      start: 5140
    functionDepth: 1
    functionLinenumber: 5140
    functionLinenumberEnd: 5233
    functionName: Botan_Tests::FFI_OID_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - ViewStringSink::get
    - TEST_FFI_RC
    - TEST_FFI_FAIL
    - ViewStringSink::callback
    - test_is_true
    - TEST_FFI_OK
    - TEST_FFI_INIT
    - ViewStringSink::delegate
    - std::string::c_str
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5238
    functionDepth: 0
    functionLinenumber: 5238
    functionLinenumberEnd: 5238
    functionName: Botan_Tests::FFI_EC_Group_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5243,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5244,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5245,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ffi.cpp:5247,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5248,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ffi.cpp:5249,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5263,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5265,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5287,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5289,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5299,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5300,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5320,1
    - Dst: botan_oid_register
      Src: /src/botan/src/tests/test_ffi.cpp:5321,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5322,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5323,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5324,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5325,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5326,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:5327,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5329,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5330,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5331,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5332,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5334,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:5336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5339,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:5349,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5361,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5364,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5366,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5367,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5378,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5379,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5382,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5383,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5384,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5385,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5386,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5387,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5389,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5390,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5391,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5392,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5395,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5398,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5401,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5402,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5405,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5406,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5407,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5417,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5418,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5419,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5426,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ffi.cpp:5427,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5431,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5432,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5433,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5434,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5435,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5437,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5441,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5443,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:5448,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5449,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:5449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5452,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:5452,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5454,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5455,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5458,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5460,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5462,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5462,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5463,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5463,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:5465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5467,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5468,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5469,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5470,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5471,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 87
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5474
      start: 5240
    functionDepth: 2
    functionLinenumber: 5240
    functionLinenumberEnd: 5474
    functionName: Botan_Tests::FFI_EC_Group_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    - ViewStringSink::get
    - std::array::size
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - test_bool_eq
    - ViewBytesSink::get
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::Test::read_data_file
    - botan_oid_register
    - std::string::c_str
    - TEST_FFI_RC
    - Botan::EC_Group::supports_named_group
    - ViewBytesSink::callback
    - botan_mp_set_from_str
    - std::array::data
    - ViewStringSink::delegate
    - botan_oid_destroy
    - reinterpret_cast<const uint8_t*>
    - Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    - ViewStringSink::callback
    - botan_mp_init
    - botan_privkey_destroy
    - test_str_eq
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5488,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5489,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5491,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 9
    argNames:
    - ec_group
    - oid
    - p
    - a
    - b
    - g_x
    - g_y
    - order
    - ' result'
    argTypes:
    - botan_ec_group_t
    - botan_asn1_oid_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - botan_mp_t*
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5493
      start: 5477
    functionDepth: 1
    functionLinenumber: 5477
    functionLinenumberEnd: 5493
    functionName: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 4
    functionsReached:
    - TEST_FFI_OK
    linkageType: ''
    returnType: void
    signature: "void get_group_parameters(botan_ec_group_t ec_group,\n                                       botan_asn1_oid_t*
      oid,\n                                       botan_mp_t* p,\n                                       botan_mp_t*
      a,\n                                       botan_mp_t* b,\n                                       botan_mp_t*
      g_x,\n                                       botan_mp_t* g_y,\n                                       botan_mp_t*
      order,\n                                       Test::Result& result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5498
      start: 5498
    functionDepth: 0
    functionLinenumber: 5498
    functionLinenumberEnd: 5498
    functionName: Botan_Tests::FFI_SRP6_Test::name
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5506
      start: 5500
    functionDepth: 0
    functionLinenumber: 5500
    functionLinenumberEnd: 5506
    functionName: Botan_Tests::FFI_SRP6_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:5514,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5519,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5520,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5522,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5523,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5526,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5530,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5532,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5536,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5538,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5539,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5542,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5546,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5548,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5549,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5552,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5553,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5554,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5560,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5561,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5562,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5563,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5565,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5567,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5569,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5570,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5574,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5579,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5580,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5581,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5582,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5584,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5586,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5588,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5589,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:5591,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:5592,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5594,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5595,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5598,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5599,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:5600,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_ffi.cpp:5602,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:5604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5605
      start: 5508
    functionDepth: 1
    functionLinenumber: 5508
    functionLinenumberEnd: 5605
    functionName: Botan_Tests::FFI_SRP6_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::data
    - TEST_FFI_RC
    - auto::size
    - std::vector
    - test_sz_eq
    - std::array::size
    - TEST_FFI_OK
    - test_bin_eq
    - std::array::data
    linkageType: ''
    returnType: void
    signature: void ffi_test(Test::Result& result, botan_rng_t rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:27,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:27,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:31,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:31,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - address_buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_be<uint32_t>
    - Botan::Sphincs_Address
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: Botan::Sphincs_Address
    signature: Botan::Sphincs_Address read_address(std::span<const uint8_t> address_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::SPHINCS_Plus_FORS_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_FORS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:43,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:43,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - auto::is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:50,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:50,1
    - Dst: Botan::SphincsSecretSeed
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:52,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:52,1
    - Dst: Botan::SphincsPublicSeed
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:53,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:53,1
    - Dst: Botan::SphincsHashedMessage
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:55,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:61,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:67,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:70,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:74,1
    - Dst: Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:75,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:75,1
    - Dst: auto::fors_signature_bytes
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:77,1
    - Dst: Botan::fors_sign_and_pkgen
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:79,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:81,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:82,1
    - Dst: Botan::ForsSignature
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:84,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: Botan::fors_public_key_from_signature
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 91
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - auto::process
    - Botan::SphincsHashedMessage
    - Botan::fors_public_key_from_signature
    - Botan::SphincsTreeNode
    - Botan::SphincsSecretSeed
    - auto::fors_signature_bytes
    - get_req_bin
    - Botan::SphincsPublicSeed
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Botan::fors_sign_and_pkgen
    - Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
    - get_req_str
    - Test::Result::test_note
    - Botan::Sphincs_Hash_Functions::create
    - Botan::ForsSignature
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:27,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:27,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:31,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:31,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - address_buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_be<uint32_t>
    - Botan::Sphincs_Address
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: Botan::Sphincs_Address
    signature: Botan::Sphincs_Address read_address(std::span<const uint8_t> address_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::SPHINCS_Plus_FORS_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_FORS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:43,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:43,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - auto::is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:50,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:50,1
    - Dst: Botan::SphincsSecretSeed
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:52,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:52,1
    - Dst: Botan::SphincsPublicSeed
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:53,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:53,1
    - Dst: Botan::SphincsHashedMessage
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:55,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:61,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:67,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:70,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:74,1
    - Dst: Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:75,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:75,1
    - Dst: auto::fors_signature_bytes
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:77,1
    - Dst: Botan::fors_sign_and_pkgen
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:79,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:81,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:82,1
    - Dst: Botan::ForsSignature
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:84,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: Botan::fors_public_key_from_signature
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 91
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - auto::process
    - Botan::SphincsHashedMessage
    - Botan::fors_public_key_from_signature
    - Botan::SphincsTreeNode
    - Botan::SphincsSecretSeed
    - auto::fors_signature_bytes
    - get_req_bin
    - Botan::SphincsPublicSeed
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Botan::fors_sign_and_pkgen
    - Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
    - get_req_str
    - Test::Result::test_note
    - Botan::Sphincs_Hash_Functions::create
    - Botan::ForsSignature
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:27,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:27,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:31,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:31,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - address_buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 2
    functionsReached:
    - Botan::load_be<uint32_t>
    - Botan::Sphincs_Address
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: Botan::Sphincs_Address
    signature: Botan::Sphincs_Address read_address(std::span<const uint8_t> address_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::SPHINCS_Plus_FORS_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_FORS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:43,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:43,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - auto::is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:50,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:50,1
    - Dst: Botan::SphincsSecretSeed
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:52,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:52,1
    - Dst: Botan::SphincsPublicSeed
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:53,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:53,1
    - Dst: Botan::SphincsHashedMessage
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:55,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:61,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:67,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:70,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:74,1
    - Dst: Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:75,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:75,1
    - Dst: auto::fors_signature_bytes
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:77,1
    - Dst: Botan::fors_sign_and_pkgen
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:79,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:81,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:82,1
    - Dst: Botan::ForsSignature
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:84,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: Botan::fors_public_key_from_signature
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 91
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - auto::process
    - Botan::SphincsHashedMessage
    - Botan::fors_public_key_from_signature
    - Botan::SphincsTreeNode
    - Botan::SphincsSecretSeed
    - auto::fors_signature_bytes
    - get_req_bin
    - Botan::SphincsPublicSeed
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Botan::fors_sign_and_pkgen
    - Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
    - get_req_str
    - Test::Result::test_note
    - Botan::Sphincs_Hash_Functions::create
    - Botan::ForsSignature
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:27,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:27,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:31,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:31,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - address_buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 3
    functionsReached:
    - Botan::load_be<uint32_t>
    - Botan::Sphincs_Address
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: Botan::Sphincs_Address
    signature: Botan::Sphincs_Address read_address(std::span<const uint8_t> address_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::SPHINCS_Plus_FORS_Test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SPHINCS_Plus_FORS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:43,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:43,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::Sphincs_Parameters::create
    - auto::is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:50,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:50,1
    - Dst: Botan::SphincsSecretSeed
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:52,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:52,1
    - Dst: Botan::SphincsPublicSeed
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:53,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:53,1
    - Dst: Botan::SphincsHashedMessage
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:55,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:55,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:61,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:67,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:70,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:74,1
    - Dst: Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:75,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:75,1
    - Dst: auto::fors_signature_bytes
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:77,1
    - Dst: Botan::fors_sign_and_pkgen
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:79,1
    - Dst: Botan::SphincsTreeNode
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:81,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:81,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:82,1
    - Dst: Botan::ForsSignature
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:84,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:84,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: Botan::fors_public_key_from_signature
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 91
    functionName: Botan_Tests::SPHINCS_Plus_FORS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_fors.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - auto::process
    - Botan::SphincsHashedMessage
    - Botan::fors_public_key_from_signature
    - Botan::SphincsTreeNode
    - Botan::SphincsSecretSeed
    - auto::fors_signature_bytes
    - get_req_bin
    - Botan::SphincsPublicSeed
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Botan::fors_sign_and_pkgen
    - Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
    - get_req_str
    - Test::Result::test_note
    - Botan::Sphincs_Hash_Functions::create
    - Botan::ForsSignature
    - Botan::Sphincs_Parameters::create
    - auto::hash_type
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - ' bin'
    argTypes:
    - Fixed_Output_RNG
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::add_entropy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::add_entropy
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void add_entropy(Fixed_Output_RNG& rng, const std::vector<uint8_t>&
      bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:61,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: Botan_Tests::server_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate server_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:71,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: Botan_Tests::alternative_server_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate alternative_server_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:78,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: Botan_Tests::client_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate client_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:84,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: Botan_Tests::client_raw_public_key_pair
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> client_raw_public_key_pair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:90,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: Botan_Tests::server_raw_public_key_pair
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> server_raw_public_key_pair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Extension_Code
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: Botan_Tests::Padding::static_type
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Extension_Code
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code static_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan_Tests::Padding::type
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Padding::static_type
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Padding::Padding
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Padding(const size_t padding_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Botan_Tests::Padding::serialize
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize(Botan::TLS::Connection_Side /*whoami*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::Padding::empty
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:126,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:126,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:127,1
    - Dst: static_cast<time_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:127,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msecs
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: Botan_Tests::from_milliseconds_since_epoch
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::system_clock::from_time_t
    - Botan_CLI::Timer::milliseconds
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - static_cast<time_t>
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point from_milliseconds_since_epoch(uint64_t
      msecs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:158,1
    - Dst: from_milliseconds_since_epoch
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - modify_exts_cb
    - mock_signatures
    - timestamp
    argTypes:
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Test_TLS_13_Callbacks::Test_TLS_13_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - from_milliseconds_since_epoch
    linkageType: ''
    returnType: void
    signature: "void Test_TLS_13_Callbacks(Modify_Exts_Fn modify_exts_cb,\n                            std::vector<MockSignature>
      mock_signatures,\n                            uint64_t timestamp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:167,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seq_no
    - data
    argTypes:
    - uint64_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t seq_no, std::span<const uint8_t>
      data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:173,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: external_psk_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:185,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' summary'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - external_psk_identity
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& summary)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_should_persist_resumption_information
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: bool tls_should_persist_resumption_information(const Session& /*session*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cert_chain'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      /*ocsp*/,\n                                 const std::vector<Botan::Certificate_Store*>&
      /*trusted*/,\n                                 Botan::Usage_Type /*usage*/,\n
      \                                std::string_view /*hostname*/,\n                                 const
      Botan::TLS::Policy& /*policy*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:215,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:217,1
    - Dst: subject_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' raw_pk'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::load_key
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - subject_public_key
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Public_Key& raw_pk,\n                                     Usage_Type
      /*usage*/,\n                                     std::string_view /*hostname*/,\n
      \                                    const TLS::Policy& /*policy*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:221,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_cert_chain_ocsp_timeout
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_CLI::Timer::milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds tls_verify_cert_chain_ocsp_timeout() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:227,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' chain'
    - ' csr'
    argTypes:
    - std::vector<X509_Certificate>
    - Certificate_Status_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_provide_cert_status(const std::vector<X509_Certificate>&
      chain,\n                                                   const Certificate_Status_Request&
      csr) override"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:236,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:237,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:239,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:241,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:245,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:245,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:247,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:253,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:253,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:256,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:256,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:265,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:265,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - ' msg'
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 266
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::string
    - algo_name
    - BOTAN_UNUSED
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Test_Error
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_sign_message(const Private_Key& key,\n                                            RandomNumberGenerator&
      rng,\n                                            std::string_view padding,\n
      \                                           Signature_Format format,\n                                            const
      std::vector<uint8_t>& msg) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:273,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' key'
    - padding
    - format
    - ' msg'
    - ' sig'
    argTypes:
    - Public_Key
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: "bool tls_verify_message(const Public_Key& key,\n                              std::string_view
      padding,\n                              Signature_Format format,\n                              const
      std::vector<uint8_t>& msg,\n                              const std::vector<uint8_t>&
      sig) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:279,1
    - Dst: Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Callbacks::tls_generate_ephemeral_key
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> tls_generate_ephemeral_key(\n
      \        const std::variant<TLS::Group_Params, DL_Group>& group, RandomNumberGenerator&
      rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:288,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' group'
    - ' private_key'
    - ' public_value'
    - ' rng'
    - ' policy'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - PK_Key_Agreement_Key
    - std::vector<uint8_t>
    - RandomNumberGenerator
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> tls_ephemeral_key_agreement(const std::variant<TLS::Group_Params,
      DL_Group>& group,\n                                                         const
      PK_Key_Agreement_Key& private_key,\n                                                         const
      std::vector<uint8_t>& public_value,\n                                                         RandomNumberGenerator&
      rng,\n                                                         const Policy&
      policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:293,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:293,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:296,1
    - Dst: try_emplace
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: second::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:299,1
    - Dst: PeerCallbacks::tls_inspect_handshake_msg
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - second::emplace_back
    - try_emplace
    - type_string
    - serialize
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - PeerCallbacks::tls_inspect_handshake_msg
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Handshake_Message& message) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      client_protos) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: m_modify_exts
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' exts'
    - side
    - which_message
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    - Botan::TLS::Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    - std::string
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - m_modify_exts
    - handshake_type_to_string
    linkageType: ''
    returnType: void
    signature: "void tls_modify_extensions(Botan::TLS::Extensions& exts,\n                                 Botan::TLS::Connection_Side
      side,\n                                 Botan::TLS::Handshake_Type which_message)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' extn'
    - which_side
    - which_message
    argTypes:
    - Botan::TLS::Extensions
    - Connection_Side
    - Botan::TLS::Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - handshake_type_to_string
    - std::string
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    linkageType: ''
    returnType: void
    signature: "void tls_examine_extensions(const Botan::TLS::Extensions& extn,\n
      \                                 Connection_Side which_side,\n                                  Botan::TLS::Handshake_Type
      which_message) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:330,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::string
    signature: std::string tls_peer_network_identity() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_current_timestamp
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point tls_current_timestamp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:339,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: Botan_Tests::Test_TLS_13_Callbacks::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:341,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 341
    functionName: Botan_Tests::Test_TLS_13_Callbacks::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_receive_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: Botan_Tests::Test_TLS_13_Callbacks::last_received_seq_no
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t last_received_seq_no() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 345
    functionName: '& callback_invocations() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, unsigned int>
    signature: std::map<std::string, unsigned int> & callback_invocations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: Botan_Tests::Test_TLS_13_Callbacks::reset_callback_invocation_counters
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void reset_callback_invocation_counters()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' callback_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 21
    functionsReached:
    - contains
    linkageType: ''
    returnType: void
    signature: void count_callback_invocation(const std::string& callback_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:381,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:382,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:389,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:390,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:390,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:392,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - use_alternative_server_certificate
    - external_psk
    argTypes:
    - bool
    - std::optional<ExternalPSK>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: Botan_Tests::Test_Credentials::Test_Credentials
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - reset
    - create_private_key
    - std::move
    - Botan_Tests::Test::read_data_file
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void Test_Credentials(bool use_alternative_server_certificate, std::optional<ExternalPSK>
      external_psk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:399,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:401,1
    - Dst: alternative_server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:403,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' cert_key_types'
    - ' cert_signature_schemes'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::vector<AlgorithmIdentifier>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: Botan_Tests::Test_Credentials::cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - alternative_server_certificate
    - BOTAN_UNUSED
    - server_certificate
    - client_certificate
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> cert_chain(const std::vector<std::string>&
      cert_key_types,\n                                                      const
      std::vector<AlgorithmIdentifier>& cert_signature_schemes,\n                                                      const
      std::string& type,\n                                                      const
      std::string& context) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:412,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:413,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key_types'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: Botan_Tests::Test_Credentials::find_raw_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - client_raw_public_key_pair
    - server_raw_public_key_pair
    linkageType: ''
    returnType: std::shared_ptr<Public_Key>
    signature: "std::shared_ptr<Public_Key> find_raw_public_key(const std::vector<std::string>&
      key_types,\n                                                      const std::string&
      type,\n                                                      const std::string&
      context) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' cert'
    - ' type'
    - ' context'
    argTypes:
    - Botan::X509_Certificate
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: Botan_Tests::Test_Credentials::private_key_for
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      cert,\n                                                          const std::string&
      type,\n                                                          const std::string&
      context) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:436,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:438,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:438,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:439,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:439,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:441,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:441,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' raw_public_key'
    - ' type'
    - ' context'
    argTypes:
    - Public_Key
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 446
    functionName: Botan_Tests::Test_Credentials::private_key_for
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::emplace_back
    - BOTAN_UNUSED
    - fingerprint_public
    - server_raw_public_key_pair
    - client_raw_public_key_pair
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Public_Key&
      raw_public_key,\n                                                          const
      std::string& type,\n                                                          const
      std::string& context) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:452,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:456,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:458,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:458,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: extract_master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:468,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' identities'
    - ' prf'
    argTypes:
    - std::vector<std::string>
    - std::optional<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 473
    functionName: Botan_Tests::Test_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - extract_master_secret
    - empty
    - std::find
    - std::vector::emplace_back
    - has_value
    - begin
    - prf_algo
    - value
    - identity
    - ExternalPSK
    - end
    linkageType: ''
    returnType: std::vector<TLS::ExternalPSK>
    signature: "std::vector<TLS::ExternalPSK> find_preshared_keys(std::string_view
      /* host */,\n                                                        TLS::Connection_Side
      /* whoami */,\n                                                        const
      std::vector<std::string>& identities,\n                                                        const
      std::optional<std::string>& prf) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:486,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:488,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:489,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:490,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: Botan_Tests::RFC8448_Text_Policy::read_policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - Test_Error
    - std::string::c_str
    - Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    linkageType: ''
    returnType: Botan::TLS::Text_Policy
    signature: Botan::TLS::Text_Policy read_policy(const std::string& policy_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_Text_Policy::read_policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 498
    functionName: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::read_policy
    linkageType: ''
    returnType: void
    signature: void RFC8448_Text_Policy(const std::string& policy_file, bool rfc8448
      = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:502,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:521,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:522,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:523,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 526
    functionName: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    linkageType: ''
    returnType: std::vector<Botan::TLS::Signature_Scheme>
    signature: std::vector<Botan::TLS::Signature_Scheme> allowed_signature_schemes()
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:533,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:535,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: value_exists
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:538,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' supported_by_peer'
    - ' offered_by_peer'
    argTypes:
    - std::vector<Group_Params>
    - std::vector<Group_Params>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 542
    functionName: Botan_Tests::RFC8448_Text_Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - BOTAN_UNUSED
    - value_exists
    - key_exchange_groups
    - std::find_if
    - auto::end
    linkageType: ''
    returnType: Named_Group
    signature: "Named_Group choose_key_exchange_group(const std::vector<Group_Params>&
      supported_by_peer,\n                                            const std::vector<Group_Params>&
      offered_by_peer) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:557,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:557,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:558,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:558,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:561,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:561,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:562,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 567
    functionName: Botan_Tests::RFC8448_Session_Manager::find_by_handle
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - handle::id
    - handle::ticket
    - ticket
    - id
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) find_by_handle(const Session_Handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::Null_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 570
    functionName: Botan_Tests::RFC8448_Session_Manager::RFC8448_Session_Manager
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Botan::Null_RNG>
    linkageType: ''
    returnType: void
    signature: void RFC8448_Session_Manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 572
    functionName: '& all_sessions() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> & all_sessions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 576
    functionName: Botan_Tests::RFC8448_Session_Manager::store
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void store(const Session& session, const Session_Handle& handle) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:585,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:586,1
    - Dst: front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: Botan_Tests::RFC8448_Session_Manager::establish
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - front
    - Test_Error
    - master_secret
    - size
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> establish(const Session& session,\n
      \                                             const std::optional<Session_ID>&
      /*session*/,\n                                              bool /*no_ticket*/)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 604
    functionName: Botan_Tests::RFC8448_Session_Manager::retrieve_one
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    functionsReached:
    - end
    - std::find_if
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    - begin
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> retrieve_one(const Session_Handle& handle) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:610,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 616
    functionName: Botan_Tests::RFC8448_Session_Manager::find_some
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - server_info
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find_some(const Server_Information&
      info,\n                                                 const size_t /*max_sessions_hint*/)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erase_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:618,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 618
    functionName: Botan_Tests::RFC8448_Session_Manager::remove
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - std::erase_if
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:621,1
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: Botan_Tests::RFC8448_Session_Manager::remove_all
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - size
    - clear
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_TLS_13_Callbacks>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:646,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:647,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:647,1
    - Dst: std::make_shared<Test_Credentials>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:648,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:648,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:649,1
    - Dst: std::make_shared<RFC8448_Session_Manager>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:650,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:651,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:652,1
    - Dst: store
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: std::get<Session>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: Botan::TLS::Session_Handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - rng_in
    - policy
    - modify_exts_cb
    - mock_signatures
    - timestamp
    - session_and_ticket
    - external_psk
    - use_alternative_server_certificate
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    - uint64_t
    - std::optional<std::pair<Session, Session_Ticket>>
    - std::optional<ExternalPSK>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 656
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<RFC8448_Session_Manager>
    - std::get<Session_Ticket>
    - std::make_shared<Test_TLS_13_Callbacks>
    - std::move
    - std::get<Session>
    - Botan::TLS::Session_Handle
    - std::optional<std::pair<Session, Session_Ticket>>::has_value
    - std::make_shared<Test_Credentials>
    - std::optional<std::pair<Session, Session_Ticket>>::value
    - store
    linkageType: ''
    returnType: void
    signature: "void TLS_Context(std::shared_ptr<Botan::RandomNumberGenerator> rng_in,\n
      \                 std::shared_ptr<const RFC8448_Text_Policy> policy,\n                  Modify_Exts_Fn
      modify_exts_cb,\n                  std::vector<MockSignature> mock_signatures,\n
      \                 uint64_t timestamp,\n                  std::optional<std::pair<Session,
      Session_Ticket>> session_and_ticket,\n                  std::optional<ExternalPSK>
      external_psk,\n                  bool use_alternative_server_certificate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 659
    functionName: ~TLS_Context()
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TLS_Context()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 661
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Context(TLS_Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 662
    functionName: '& operator=(const TLS_Context&)'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Context
    signature: TLS_Context & operator=(const TLS_Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 664
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Context(TLS_Context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 665
    functionName: '& operator=(TLS_Context&&)'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Context
    signature: TLS_Context & operator=(TLS_Context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 667
    functionName: Botan_Tests::TLS_Context::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::TLS_Context::pull_send_buffer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 669
    functionName: Botan_Tests::TLS_Context::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::TLS_Context::pull_receive_buffer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_receive_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 671
    functionName: Botan_Tests::TLS_Context::last_received_seq_no
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::TLS_Context::last_received_seq_no
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t last_received_seq_no() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:681,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:684,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:684,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:691,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: reset_callback_invocation_counters
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:696,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ' result'
    - ' context'
    - ' callback_names'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 697
    functionName: Botan_Tests::TLS_Context::check_callback_invocations
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::find
    - cbegin
    - contains
    - callback_invocations
    - cend
    - test_is_true
    - at
    - reset_callback_invocation_counters
    linkageType: ''
    returnType: void
    signature: "void check_callback_invocations(Test::Result& result,\n                                      const
      std::string& context,\n                                      const std::vector<std::string>&
      callback_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: all_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 699
    functionName: '& stored_sessions() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - all_sessions
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> & stored_sessions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 701
    functionName: '& certs_verified() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> & certs_verified() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 703
    functionName: '& psk_identity_negotiated() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & psk_identity_negotiated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: Botan_Tests::TLS_Context::observed_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) observed_handshake_messages() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:730,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:731,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:732,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:733,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:735,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - rng_in
    - policy
    - timestamp
    - modify_exts_cb
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - uint64_t
    - Modify_Exts_Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 744
    functionName: Botan_Tests::Client_Context::Client_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Server_Information
    linkageType: ''
    returnType: void
    signature: "void Client_Context(std::shared_ptr<Botan::RandomNumberGenerator>
      rng_in,\n                     std::shared_ptr<const RFC8448_Text_Policy> policy,\n
      \                    uint64_t timestamp,\n                     Modify_Exts_Fn
      modify_exts_cb,\n                     std::optional<std::pair<Session, Session_Ticket>>
      session_and_ticket = std::nullopt,\n                     std::optional<ExternalPSK>
      external_psk = std::nullopt,\n                     std::vector<MockSignature>
      mock_signatures = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Client_Context::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan_Tests::Client_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Client_Context::send
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void send(const std::vector<uint8_t>& data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:762,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:763,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:764,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:766,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - rng
    - policy
    - timestamp
    - modify_exts_cb
    - mock_signatures
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - uint64_t
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 769
    functionName: Botan_Tests::Server_Context::Server_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Server_Context(std::shared_ptr<Botan::RandomNumberGenerator>
      rng,\n                     std::shared_ptr<const RFC8448_Text_Policy> policy,\n
      \                    uint64_t timestamp,\n                     Modify_Exts_Fn
      modify_exts_cb,\n                     std::vector<MockSignature> mock_signatures,\n
      \                    bool use_alternative_server_certificate = false,\n                     std::optional<std::pair<Session,
      Session_Ticket>> session_and_ticket = std::nullopt,\n                     std::optional<ExternalPSK>
      external_psk = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Server_Context::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: Botan_Tests::Server_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Server_Context::send
    - data
    - size
    linkageType: ''
    returnType: void
    signature: void send(const std::vector<uint8_t>& data) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:778,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:780,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' exts'
    - ' expected_order'
    argTypes:
    - Botan::TLS::Extensions
    - std::vector<Botan::TLS::Extension_Code>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 783
    functionName: Botan_Tests::sort_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - add
    - take
    linkageType: ''
    returnType: void
    signature: void sort_extensions(Botan::TLS::Extensions& exts, const std::vector<Botan::TLS::Extension_Code>&
      expected_order)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:793,1
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:806,1
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' exts'
    - side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 822
    functionName: Botan_Tests::sort_rfc8448_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Padding::static_type
    - Botan_Tests::sort_extensions
    linkageType: ''
    returnType: void
    signature: "void sort_rfc8448_extensions(Botan::TLS::Extensions& exts,\n                             Botan::TLS::Connection_Side
      side,\n                             Botan::TLS::Handshake_Type /*type*/ = Botan::TLS::Handshake_Type::ClientHello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:827,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 828
    functionName: Botan_Tests::add_renegotiation_extension
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - add
    - Renegotiation_Extension::Renegotiation_Extension
    linkageType: ''
    returnType: void
    signature: void add_renegotiation_extension(Botan::TLS::Extensions& exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:831,1
    - Dst: Botan::TLS::EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 832
    functionName: Botan_Tests::add_early_data_indication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::EarlyDataIndication::EarlyDataIndication
    - add
    linkageType: ''
    returnType: void
    signature: void add_early_data_indication(Botan::TLS::Extensions& exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:835,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:835,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:836,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 837
    functionName: Botan_Tests::strip_message_header
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - end
    - size
    - begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> strip_message_header(const std::vector<uint8_t>&
      msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:843,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:843,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:848,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 852
    functionName: Botan_Tests::make_mock_signatures
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - mock
    - std::vector::push_back
    - get_opt_bin
    - has_key
    linkageType: ''
    returnType: std::vector<MockSignature>
    signature: std::vector<MockSignature> make_mock_signatures(const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 943
    functionName: Botan_Tests::Test_TLS_RFC8448::Test_TLS_RFC8448
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_TLS_RFC8448()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: simple_1_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: resumed_handshake_with_0_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:951,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:951,1
    - Dst: hello_retry_request
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:952,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: middlebox_compatibility
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:958,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:958,1
    - Dst: externally_provided_psk_with_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:959,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:961,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:961,1
    - Dst: raw_public_key_with_client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:962,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:964,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 966
    functionName: Botan_Tests::Test_TLS_RFC8448::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - side
    - Botan::Path_Validation_Result::Path_Validation_Result
    - middlebox_compatibility
    - resumed_handshake_with_0_rtt
    - simple_1_rtt
    - hello_retry_request
    - client_authentication
    - externally_provided_psk_with_ephemeral_key
    - raw_public_key_with_client_authentication
    - Botan_Tests::Test::Result::Failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 971
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::side
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string side() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:974,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:978,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:978,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:987,1
    - Dst: Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:987,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:989,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:990,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:997,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:999,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1000,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1001,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1004,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1004,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1005,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1015,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1019,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1021,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1022,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1024,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1024,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1025,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1025,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1027,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1028,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1030,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1031,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1037,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1037,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1038,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1038,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1041,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1043,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1044,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1044,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1046,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1060,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1060,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1062,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1062,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1063,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1063,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1065,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1066,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1067,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1070,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1072,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1073,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1073,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1074,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1074,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1076,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1081,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1081,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1082,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1083,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1083,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1084,1
    - Dst: DER_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1085,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1086,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1090,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1092,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1093,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1093,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1095,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1097,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1098,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1099,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1102,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1104,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1105,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1105,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1107,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1109,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1110,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1110,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1111,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1111,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1114,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1116,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1117,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1119,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1120,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1121,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1123,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1123,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1124,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1127,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 59
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 1130
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::unique_ptr::stored_sessions
    - ticket
    - DER_encode
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::client::received_data
    - test_u64_eq
    - std::make_unique<Client_Context>
    - std::make_shared<Fixed_Output_RNG>
    - test_bin_eq
    - auto::end
    - get_req_bin
    - std::unique_ptr::client::is_active
    - std::unique_ptr::send
    - auto::begin
    - require
    - server_certificate
    - add
    - std::unique_ptr::certs_verified
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - test_sz_eq
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - add_renegotiation_extension
    - Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> simple_1_rtt(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1133,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1137,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1137,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1143,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1143,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1145,1
    - Dst: add_early_data_indication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1151,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1152,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1159,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1161,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1162,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1163,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1164,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1166,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1166,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1167,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1167,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1169,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1169,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1170,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1180,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1181,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1188
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - Padding::Padding
    - add
    - sort_rfc8448_extensions
    - add_early_data_indication
    - std::unique_ptr::pull_send_buffer
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - add_renegotiation_extension
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> resumed_handshake_with_0_rtt(const VarMap&
      vars) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1198,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1204,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1204,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1207,1
    - Dst: Botan_Tests::Test_TLS_RFC8448_Client::rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1212,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1213,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1218,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1218,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1223,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1225,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1225,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1226,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1229,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1229,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1231,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1241,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1242,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1242,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1245,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1247,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1248,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1248,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1250,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1261,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1262,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1262,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1265,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1267,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1268,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1268,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1270,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1279,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1281,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1282,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1282,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1284,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1299,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1300,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1300,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1303,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1305,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1306,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1307,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1309,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1310,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1310,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1312,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1312,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1313,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1316,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1319
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - Botan_Tests::Test_TLS_RFC8448_Client::rng
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - Padding::Padding
    - require
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - add_entropy
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1322,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1326,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1326,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1332,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1333,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1340,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1342,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1342,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1343,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1344,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1348,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1350,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1360,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1361,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1361,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1364,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1366,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1367,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1367,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1369,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1378,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1380,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1381,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1381,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1406,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1407,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1407,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1410,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1412,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1413,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1414,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1415,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1415,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1417,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1423,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1424,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1424,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1430
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - require
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::client::close
    - add_entropy
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> client_authentication(const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1433,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1438,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1438,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1444,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1445,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1452,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1455,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1455,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1456,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1457,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1462,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1473,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1475,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1476,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1477,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1477,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1479,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1481,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1501,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1502,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1504,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1506,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1510,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1512,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1513,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1515,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1516,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1516,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1518,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1518,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1519,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1519,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1520,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1520,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1522,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1522,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1524,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1527
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::client::is_active
    - Botan::concat
    - require
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> middlebox_compatibility(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1530,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1534,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1534,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1542,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1558,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1560,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1561,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1562,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1563,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1566,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1566,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1567,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1568,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1568,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1570,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1570,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1571,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1581,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1582,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1582,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1585,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1587,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1588,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1589,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1590,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1596,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1596,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1597,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1597,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1600,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1603,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1604,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1604,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1606,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1616,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1616,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1619,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1620,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1620,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1623,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1625,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1626,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1626,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1628,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1630,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1631,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1632,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1635,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1637,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1638,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1638,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1640,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1642,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1643,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1643,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1647,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1649,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1650,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1652,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1653,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1653,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1654,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1656,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1656,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1657,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1660,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1663
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::externally_provided_psk_with_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - test_u64_eq
    - std::make_unique<Client_Context>
    - sort_extensions
    - test_bin_eq
    - ExternalPSK
    - get_req_bin
    - std::unique_ptr::client::is_active
    - std::unique_ptr::send
    - require
    - lock
    - get_req_str
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - std::unique_ptr::psk_identity_negotiated
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> externally_provided_psk_with_ephemeral_key(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1666,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1670,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1670,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1679,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1696,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1698,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1698,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1699,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1700,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1704,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1706,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1716,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1717,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1717,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1720,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1722,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1723,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1723,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1725,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1734,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1736,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1737,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1737,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1739,1
    - Dst: std::unique_ptr::client::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1761,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1763,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1763,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1767,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1768,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1768,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1771,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1773,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1774,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1775,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1776,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1776,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1778,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1784,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1784,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1785,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1785,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1665
    functionDepth: 1
    functionLinenumber: 1665
    functionLinenumberEnd: 1791
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::raw_public_key_with_client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - auto::fingerprint_public
    - server_raw_public_key_pair
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - sort_extensions
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::client::peer_raw_public_key
    - require
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::client::close
    - add_entropy
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> raw_public_key_with_client_authentication(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1796
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::side
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string side() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1799,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1804,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1804,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1809,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1815,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1815,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1817,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1820,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1821,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1822,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1823,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1825,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1827,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1827,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1828,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1828,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1829,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1829,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1831,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1831,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1833,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1851,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1853,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1854,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1856,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1857,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1858,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1858,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1859,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1860,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1862,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1863,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1864,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1864,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1865,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1866,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1867,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1867,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1869,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1870,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1871,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1871,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1872,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1879,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1879,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1880,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1880,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1883,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1885,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1886,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1886,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1888,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1896,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1898,1
    - Dst: std::unique_ptr::server::send_new_session_tickets
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1899,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1901,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1903,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1912,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1914,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1915,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1916,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1916,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1919,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1921,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1922,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1922,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1923,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1925,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1926,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1926,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1927,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1927,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1930,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1932,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1933,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1933,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1935,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1937,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1938,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1939,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1942,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1944,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1945,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1945,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1947,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1952,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1952,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1955,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1957,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1958,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1960,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1960,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1961,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1961,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1962,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1962,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1963,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1964,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1798
    functionDepth: 2
    functionLinenumber: 1798
    functionLinenumberEnd: 1968
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - EarlyDataIndication::EarlyDataIndication
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::unique_ptr::server::send_new_session_tickets
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_u64_eq
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::send
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - test_sz_eq
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - strip_message_header
    - std::unique_ptr::server::close
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> simple_1_rtt(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1971,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1975,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1975,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1980,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1986,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1986,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1988,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1991,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1992,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1993,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1994,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1996,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1998,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1998,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1999,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1999,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2000,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2000,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2002,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2002,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2004,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2021,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2023,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2024,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2026,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2027,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2028,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2028,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2029,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2030,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2031,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2031,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2033,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2034,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2035,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2035,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2036,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2043,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2043,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2044,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 1970
    functionDepth: 2
    functionLinenumber: 1970
    functionLinenumberEnd: 2051
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - EarlyDataIndication::EarlyDataIndication
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - strip_message_header
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> resumed_handshake_with_0_rtt(const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_RFC8448_Server::rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2055,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2056,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2060,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2060,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2065,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2072,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: Cookie::Cookie
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2075,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2078,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2078,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2079,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2080,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2082,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2083,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2083,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2085,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2085,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2087,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2096,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2098,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2099,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2100,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2102,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2102,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2103,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2103,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2106,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2108,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2109,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2109,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2111,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2129,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2131,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2132,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2134,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2135,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2136,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2136,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2137,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2138,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2139,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2139,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2140,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2141,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2143,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2144,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2145,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2145,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2146,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2147,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2148,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2148,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2150,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2151,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2152,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2152,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2153,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2154,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2154,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2155,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2156,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2159,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2161,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2171,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2172,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2172,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2175,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2177,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2178,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2178,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2185,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2185,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2188,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2190,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2191,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2193,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2193,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2194,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2194,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2195,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2195,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2196,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2197,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2053
    functionDepth: 1
    functionLinenumber: 2053
    functionLinenumberEnd: 2202
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - Botan_Tests::Test_TLS_RFC8448_Server::rng
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - Cookie::Cookie
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request(const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2205,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2209,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2209,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2214,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2216,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2217,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2218,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2219,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2221,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2223,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2223,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2225,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2225,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2227,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2247,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2249,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2250,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2252,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2253,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2254,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2254,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2255,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2256,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2257,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2257,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2258,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2259,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2260,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2260,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2261,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2262,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2264,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2265,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2267,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2268,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2269,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2269,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2271,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2272,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2273,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2273,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2276,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2276,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2277,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2277,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2278,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2279,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2282,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2284,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2289,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2289,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2291,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2304,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2307,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2308,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2308,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2311,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2313,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2314,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2314,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2321,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2321,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2324,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2326,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2329,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2329,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2330,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2331,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2331,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2332,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2333,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2204
    functionDepth: 1
    functionLinenumber: 2204
    functionLinenumberEnd: 2338
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - client_certificate
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - std::unique_ptr::server::peer_cert_chain
    - auto::empty
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> client_authentication(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2341,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2345,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2345,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2350,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2353,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2353,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2354,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2355,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2358,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2358,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2360,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2360,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2362,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2380,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2382,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2385,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2386,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2387,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2387,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2388,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2389,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2390,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2390,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2391,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2392,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2393,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2393,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2394,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2395,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2396,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2396,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2397,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2398,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2399,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2402,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2403,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2404,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2404,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2405,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2407,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2407,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2408,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2409,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2412,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2414,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2417,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2424,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2424,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2425,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2425,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2428,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2430,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2431,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2431,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2438,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2438,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2441,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2443,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2446,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2446,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2447,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2447,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2448,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2448,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2449,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2450,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2340
    functionDepth: 1
    functionLinenumber: 2340
    functionLinenumberEnd: 2455
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> middlebox_compatibility(const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2458,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2462,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2462,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2467,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2476,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2483,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2492,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2493,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2494,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2495,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2497,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2500,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2500,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2501,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2502,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2502,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2503,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2503,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2505,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2505,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2507,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2521,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2523,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2524,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2526,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2527,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2529,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2530,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2532,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2533,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2534,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2534,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2536,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2537,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2538,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2538,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2539,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2542,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2543,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2546,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2548,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2549,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2549,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2550,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2551,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2551,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2553,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2561,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2563,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2564,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2564,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2565,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2567,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2568,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2568,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2569,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2569,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2571,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2571,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2572,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2573,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2574,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2575,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2578,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2580,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2581,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2581,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2586,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2586,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2587,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2587,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2588,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2588,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2590,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2592,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2592,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2593,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2593,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2594,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2594,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2595,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2596,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2457
    functionDepth: 1
    functionLinenumber: 2457
    functionLinenumberEnd: 2600
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::externally_provided_psk_with_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_u64_eq
    - sort_extensions
    - test_bin_eq
    - ExternalPSK
    - get_req_bin
    - std::unique_ptr::send
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - lock
    - std::unique_ptr::server::is_handshake_complete
    - get_req_str
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::unique_ptr::psk_identity_negotiated
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> externally_provided_psk_with_ephemeral_key(const
      VarMap& vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2603,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2607,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2607,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2616,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2625,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2636,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2638,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2639,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2640,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2642,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2643,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2643,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2645,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2645,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2647,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2667,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2669,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2670,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2672,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2673,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2674,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2674,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2675,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2676,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2677,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2677,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2678,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2679,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2680,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2680,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2681,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2682,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2684,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2685,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2687,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2688,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2689,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2689,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2691,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2692,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2693,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2693,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2694,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2696,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2696,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2697,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2697,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2698,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2699,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2702,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2704,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2709,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2709,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2711,1
    - Dst: std::unique_ptr::server::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2724,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2726,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2726,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2728,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2728,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2729,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2729,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2732,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2734,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2735,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2735,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2737,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2742,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2742,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2745,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2747,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2750,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2751,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2752,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2752,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2753,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2754,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2602
    functionDepth: 1
    functionLinenumber: 2602
    functionLinenumberEnd: 2758
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::raw_public_key_with_client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - auto::fingerprint_public
    - at
    - client_raw_public_key_pair
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - sort_extensions
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - std::unique_ptr::server::peer_cert_chain
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::server::peer_raw_public_key
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> raw_public_key_with_client_authentication(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - ' bin'
    argTypes:
    - Fixed_Output_RNG
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::add_entropy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::add_entropy
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void add_entropy(Fixed_Output_RNG& rng, const std::vector<uint8_t>&
      bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:61,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: Botan_Tests::server_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate server_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:71,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: Botan_Tests::alternative_server_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate alternative_server_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:78,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: Botan_Tests::client_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate client_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:84,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: Botan_Tests::client_raw_public_key_pair
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> client_raw_public_key_pair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:90,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: Botan_Tests::server_raw_public_key_pair
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> server_raw_public_key_pair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Extension_Code
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: Botan_Tests::Padding::static_type
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Extension_Code
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code static_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan_Tests::Padding::type
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Padding::static_type
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Padding::Padding
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Padding(const size_t padding_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Botan_Tests::Padding::serialize
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize(Botan::TLS::Connection_Side /*whoami*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::Padding::empty
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:126,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:126,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:127,1
    - Dst: static_cast<time_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:127,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msecs
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: Botan_Tests::from_milliseconds_since_epoch
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::system_clock::from_time_t
    - Botan_CLI::Timer::milliseconds
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - static_cast<time_t>
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point from_milliseconds_since_epoch(uint64_t
      msecs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:158,1
    - Dst: from_milliseconds_since_epoch
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - modify_exts_cb
    - mock_signatures
    - timestamp
    argTypes:
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Test_TLS_13_Callbacks::Test_TLS_13_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - from_milliseconds_since_epoch
    linkageType: ''
    returnType: void
    signature: "void Test_TLS_13_Callbacks(Modify_Exts_Fn modify_exts_cb,\n                            std::vector<MockSignature>
      mock_signatures,\n                            uint64_t timestamp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:167,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seq_no
    - data
    argTypes:
    - uint64_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t seq_no, std::span<const uint8_t>
      data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:173,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: external_psk_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:185,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' summary'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - external_psk_identity
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& summary)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_should_persist_resumption_information
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: bool tls_should_persist_resumption_information(const Session& /*session*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cert_chain'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      /*ocsp*/,\n                                 const std::vector<Botan::Certificate_Store*>&
      /*trusted*/,\n                                 Botan::Usage_Type /*usage*/,\n
      \                                std::string_view /*hostname*/,\n                                 const
      Botan::TLS::Policy& /*policy*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:215,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:217,1
    - Dst: subject_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' raw_pk'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::load_key
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - subject_public_key
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Public_Key& raw_pk,\n                                     Usage_Type
      /*usage*/,\n                                     std::string_view /*hostname*/,\n
      \                                    const TLS::Policy& /*policy*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:221,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_cert_chain_ocsp_timeout
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_CLI::Timer::milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds tls_verify_cert_chain_ocsp_timeout() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:227,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' chain'
    - ' csr'
    argTypes:
    - std::vector<X509_Certificate>
    - Certificate_Status_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_provide_cert_status(const std::vector<X509_Certificate>&
      chain,\n                                                   const Certificate_Status_Request&
      csr) override"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:236,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:237,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:239,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:241,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:245,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:245,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:247,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:253,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:253,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:256,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:256,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:265,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:265,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - ' msg'
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 266
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::string
    - algo_name
    - BOTAN_UNUSED
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Test_Error
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_sign_message(const Private_Key& key,\n                                            RandomNumberGenerator&
      rng,\n                                            std::string_view padding,\n
      \                                           Signature_Format format,\n                                            const
      std::vector<uint8_t>& msg) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:273,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' key'
    - padding
    - format
    - ' msg'
    - ' sig'
    argTypes:
    - Public_Key
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: "bool tls_verify_message(const Public_Key& key,\n                              std::string_view
      padding,\n                              Signature_Format format,\n                              const
      std::vector<uint8_t>& msg,\n                              const std::vector<uint8_t>&
      sig) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:279,1
    - Dst: Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Callbacks::tls_generate_ephemeral_key
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> tls_generate_ephemeral_key(\n
      \        const std::variant<TLS::Group_Params, DL_Group>& group, RandomNumberGenerator&
      rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:288,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' group'
    - ' private_key'
    - ' public_value'
    - ' rng'
    - ' policy'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - PK_Key_Agreement_Key
    - std::vector<uint8_t>
    - RandomNumberGenerator
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> tls_ephemeral_key_agreement(const std::variant<TLS::Group_Params,
      DL_Group>& group,\n                                                         const
      PK_Key_Agreement_Key& private_key,\n                                                         const
      std::vector<uint8_t>& public_value,\n                                                         RandomNumberGenerator&
      rng,\n                                                         const Policy&
      policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:293,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:293,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:296,1
    - Dst: try_emplace
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: second::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:299,1
    - Dst: PeerCallbacks::tls_inspect_handshake_msg
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - second::emplace_back
    - try_emplace
    - type_string
    - serialize
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - PeerCallbacks::tls_inspect_handshake_msg
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Handshake_Message& message) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      client_protos) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: m_modify_exts
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' exts'
    - side
    - which_message
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    - Botan::TLS::Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    - std::string
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - m_modify_exts
    - handshake_type_to_string
    linkageType: ''
    returnType: void
    signature: "void tls_modify_extensions(Botan::TLS::Extensions& exts,\n                                 Botan::TLS::Connection_Side
      side,\n                                 Botan::TLS::Handshake_Type which_message)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' extn'
    - which_side
    - which_message
    argTypes:
    - Botan::TLS::Extensions
    - Connection_Side
    - Botan::TLS::Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - handshake_type_to_string
    - std::string
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    linkageType: ''
    returnType: void
    signature: "void tls_examine_extensions(const Botan::TLS::Extensions& extn,\n
      \                                 Connection_Side which_side,\n                                  Botan::TLS::Handshake_Type
      which_message) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:330,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::string
    signature: std::string tls_peer_network_identity() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_current_timestamp
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point tls_current_timestamp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:339,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: Botan_Tests::Test_TLS_13_Callbacks::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:341,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 341
    functionName: Botan_Tests::Test_TLS_13_Callbacks::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_receive_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: Botan_Tests::Test_TLS_13_Callbacks::last_received_seq_no
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t last_received_seq_no() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 345
    functionName: '& callback_invocations() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, unsigned int>
    signature: std::map<std::string, unsigned int> & callback_invocations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: Botan_Tests::Test_TLS_13_Callbacks::reset_callback_invocation_counters
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void reset_callback_invocation_counters()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' callback_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 42
    functionsReached:
    - contains
    linkageType: ''
    returnType: void
    signature: void count_callback_invocation(const std::string& callback_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:381,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:382,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:389,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:390,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:390,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:392,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - use_alternative_server_certificate
    - external_psk
    argTypes:
    - bool
    - std::optional<ExternalPSK>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: Botan_Tests::Test_Credentials::Test_Credentials
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - reset
    - create_private_key
    - std::move
    - Botan_Tests::Test::read_data_file
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void Test_Credentials(bool use_alternative_server_certificate, std::optional<ExternalPSK>
      external_psk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:399,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:401,1
    - Dst: alternative_server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:403,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' cert_key_types'
    - ' cert_signature_schemes'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::vector<AlgorithmIdentifier>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: Botan_Tests::Test_Credentials::cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - alternative_server_certificate
    - BOTAN_UNUSED
    - server_certificate
    - client_certificate
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> cert_chain(const std::vector<std::string>&
      cert_key_types,\n                                                      const
      std::vector<AlgorithmIdentifier>& cert_signature_schemes,\n                                                      const
      std::string& type,\n                                                      const
      std::string& context) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:412,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:413,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key_types'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: Botan_Tests::Test_Credentials::find_raw_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - client_raw_public_key_pair
    - server_raw_public_key_pair
    linkageType: ''
    returnType: std::shared_ptr<Public_Key>
    signature: "std::shared_ptr<Public_Key> find_raw_public_key(const std::vector<std::string>&
      key_types,\n                                                      const std::string&
      type,\n                                                      const std::string&
      context) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' cert'
    - ' type'
    - ' context'
    argTypes:
    - Botan::X509_Certificate
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: Botan_Tests::Test_Credentials::private_key_for
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      cert,\n                                                          const std::string&
      type,\n                                                          const std::string&
      context) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:436,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:438,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:438,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:439,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:439,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:441,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:441,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' raw_public_key'
    - ' type'
    - ' context'
    argTypes:
    - Public_Key
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 446
    functionName: Botan_Tests::Test_Credentials::private_key_for
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::emplace_back
    - BOTAN_UNUSED
    - fingerprint_public
    - server_raw_public_key_pair
    - client_raw_public_key_pair
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Public_Key&
      raw_public_key,\n                                                          const
      std::string& type,\n                                                          const
      std::string& context) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:452,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:456,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:458,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:458,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: extract_master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:468,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' identities'
    - ' prf'
    argTypes:
    - std::vector<std::string>
    - std::optional<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 473
    functionName: Botan_Tests::Test_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - extract_master_secret
    - empty
    - std::find
    - std::vector::emplace_back
    - has_value
    - begin
    - prf_algo
    - value
    - identity
    - ExternalPSK
    - end
    linkageType: ''
    returnType: std::vector<TLS::ExternalPSK>
    signature: "std::vector<TLS::ExternalPSK> find_preshared_keys(std::string_view
      /* host */,\n                                                        TLS::Connection_Side
      /* whoami */,\n                                                        const
      std::vector<std::string>& identities,\n                                                        const
      std::optional<std::string>& prf) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:486,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:488,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:489,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:490,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: Botan_Tests::RFC8448_Text_Policy::read_policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - Test_Error
    - std::string::c_str
    - Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    linkageType: ''
    returnType: Botan::TLS::Text_Policy
    signature: Botan::TLS::Text_Policy read_policy(const std::string& policy_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_Text_Policy::read_policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 498
    functionName: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::read_policy
    linkageType: ''
    returnType: void
    signature: void RFC8448_Text_Policy(const std::string& policy_file, bool rfc8448
      = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:502,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:521,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:522,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:523,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 526
    functionName: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    linkageType: ''
    returnType: std::vector<Botan::TLS::Signature_Scheme>
    signature: std::vector<Botan::TLS::Signature_Scheme> allowed_signature_schemes()
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:533,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:535,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: value_exists
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:538,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' supported_by_peer'
    - ' offered_by_peer'
    argTypes:
    - std::vector<Group_Params>
    - std::vector<Group_Params>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 542
    functionName: Botan_Tests::RFC8448_Text_Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - BOTAN_UNUSED
    - value_exists
    - key_exchange_groups
    - std::find_if
    - auto::end
    linkageType: ''
    returnType: Named_Group
    signature: "Named_Group choose_key_exchange_group(const std::vector<Group_Params>&
      supported_by_peer,\n                                            const std::vector<Group_Params>&
      offered_by_peer) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:557,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:557,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:558,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:558,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:561,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:561,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:562,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 567
    functionName: Botan_Tests::RFC8448_Session_Manager::find_by_handle
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - handle::id
    - handle::ticket
    - ticket
    - id
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) find_by_handle(const Session_Handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::Null_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 570
    functionName: Botan_Tests::RFC8448_Session_Manager::RFC8448_Session_Manager
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Botan::Null_RNG>
    linkageType: ''
    returnType: void
    signature: void RFC8448_Session_Manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 572
    functionName: '& all_sessions() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> & all_sessions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 576
    functionName: Botan_Tests::RFC8448_Session_Manager::store
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void store(const Session& session, const Session_Handle& handle) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:585,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:586,1
    - Dst: front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: Botan_Tests::RFC8448_Session_Manager::establish
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - front
    - Test_Error
    - master_secret
    - size
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> establish(const Session& session,\n
      \                                             const std::optional<Session_ID>&
      /*session*/,\n                                              bool /*no_ticket*/)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 604
    functionName: Botan_Tests::RFC8448_Session_Manager::retrieve_one
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    functionsReached:
    - end
    - std::find_if
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    - begin
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> retrieve_one(const Session_Handle& handle) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:610,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 616
    functionName: Botan_Tests::RFC8448_Session_Manager::find_some
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - server_info
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find_some(const Server_Information&
      info,\n                                                 const size_t /*max_sessions_hint*/)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erase_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:618,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 618
    functionName: Botan_Tests::RFC8448_Session_Manager::remove
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - std::erase_if
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:621,1
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: Botan_Tests::RFC8448_Session_Manager::remove_all
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - size
    - clear
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_TLS_13_Callbacks>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:646,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:647,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:647,1
    - Dst: std::make_shared<Test_Credentials>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:648,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:648,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:649,1
    - Dst: std::make_shared<RFC8448_Session_Manager>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:650,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:651,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:652,1
    - Dst: store
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: std::get<Session>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: Botan::TLS::Session_Handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - rng_in
    - policy
    - modify_exts_cb
    - mock_signatures
    - timestamp
    - session_and_ticket
    - external_psk
    - use_alternative_server_certificate
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    - uint64_t
    - std::optional<std::pair<Session, Session_Ticket>>
    - std::optional<ExternalPSK>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 656
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<RFC8448_Session_Manager>
    - std::get<Session_Ticket>
    - std::make_shared<Test_TLS_13_Callbacks>
    - std::move
    - std::get<Session>
    - Botan::TLS::Session_Handle
    - std::optional<std::pair<Session, Session_Ticket>>::has_value
    - std::make_shared<Test_Credentials>
    - std::optional<std::pair<Session, Session_Ticket>>::value
    - store
    linkageType: ''
    returnType: void
    signature: "void TLS_Context(std::shared_ptr<Botan::RandomNumberGenerator> rng_in,\n
      \                 std::shared_ptr<const RFC8448_Text_Policy> policy,\n                  Modify_Exts_Fn
      modify_exts_cb,\n                  std::vector<MockSignature> mock_signatures,\n
      \                 uint64_t timestamp,\n                  std::optional<std::pair<Session,
      Session_Ticket>> session_and_ticket,\n                  std::optional<ExternalPSK>
      external_psk,\n                  bool use_alternative_server_certificate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 659
    functionName: ~TLS_Context()
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TLS_Context()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 661
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Context(TLS_Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 662
    functionName: '& operator=(const TLS_Context&)'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Context
    signature: TLS_Context & operator=(const TLS_Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 664
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Context(TLS_Context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 665
    functionName: '& operator=(TLS_Context&&)'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Context
    signature: TLS_Context & operator=(TLS_Context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 667
    functionName: Botan_Tests::TLS_Context::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::TLS_Context::pull_send_buffer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 669
    functionName: Botan_Tests::TLS_Context::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::TLS_Context::pull_receive_buffer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_receive_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 671
    functionName: Botan_Tests::TLS_Context::last_received_seq_no
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::TLS_Context::last_received_seq_no
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t last_received_seq_no() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:681,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:684,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:684,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:691,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: reset_callback_invocation_counters
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:696,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ' result'
    - ' context'
    - ' callback_names'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 697
    functionName: Botan_Tests::TLS_Context::check_callback_invocations
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::find
    - cbegin
    - contains
    - callback_invocations
    - cend
    - test_is_true
    - at
    - reset_callback_invocation_counters
    linkageType: ''
    returnType: void
    signature: "void check_callback_invocations(Test::Result& result,\n                                      const
      std::string& context,\n                                      const std::vector<std::string>&
      callback_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: all_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 699
    functionName: '& stored_sessions() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - all_sessions
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> & stored_sessions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 701
    functionName: '& certs_verified() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> & certs_verified() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 703
    functionName: '& psk_identity_negotiated() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & psk_identity_negotiated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: Botan_Tests::TLS_Context::observed_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) observed_handshake_messages() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:730,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:731,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:732,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:733,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:735,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - rng_in
    - policy
    - timestamp
    - modify_exts_cb
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - uint64_t
    - Modify_Exts_Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 744
    functionName: Botan_Tests::Client_Context::Client_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Server_Information
    linkageType: ''
    returnType: void
    signature: "void Client_Context(std::shared_ptr<Botan::RandomNumberGenerator>
      rng_in,\n                     std::shared_ptr<const RFC8448_Text_Policy> policy,\n
      \                    uint64_t timestamp,\n                     Modify_Exts_Fn
      modify_exts_cb,\n                     std::optional<std::pair<Session, Session_Ticket>>
      session_and_ticket = std::nullopt,\n                     std::optional<ExternalPSK>
      external_psk = std::nullopt,\n                     std::vector<MockSignature>
      mock_signatures = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Client_Context::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan_Tests::Client_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Client_Context::send
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void send(const std::vector<uint8_t>& data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:762,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:763,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:764,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:766,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - rng
    - policy
    - timestamp
    - modify_exts_cb
    - mock_signatures
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - uint64_t
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 769
    functionName: Botan_Tests::Server_Context::Server_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Server_Context(std::shared_ptr<Botan::RandomNumberGenerator>
      rng,\n                     std::shared_ptr<const RFC8448_Text_Policy> policy,\n
      \                    uint64_t timestamp,\n                     Modify_Exts_Fn
      modify_exts_cb,\n                     std::vector<MockSignature> mock_signatures,\n
      \                    bool use_alternative_server_certificate = false,\n                     std::optional<std::pair<Session,
      Session_Ticket>> session_and_ticket = std::nullopt,\n                     std::optional<ExternalPSK>
      external_psk = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Server_Context::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: Botan_Tests::Server_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Server_Context::send
    - data
    - size
    linkageType: ''
    returnType: void
    signature: void send(const std::vector<uint8_t>& data) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:778,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:780,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' exts'
    - ' expected_order'
    argTypes:
    - Botan::TLS::Extensions
    - std::vector<Botan::TLS::Extension_Code>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 783
    functionName: Botan_Tests::sort_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - add
    - take
    linkageType: ''
    returnType: void
    signature: void sort_extensions(Botan::TLS::Extensions& exts, const std::vector<Botan::TLS::Extension_Code>&
      expected_order)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:793,1
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:806,1
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' exts'
    - side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 822
    functionName: Botan_Tests::sort_rfc8448_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Padding::static_type
    - Botan_Tests::sort_extensions
    linkageType: ''
    returnType: void
    signature: "void sort_rfc8448_extensions(Botan::TLS::Extensions& exts,\n                             Botan::TLS::Connection_Side
      side,\n                             Botan::TLS::Handshake_Type /*type*/ = Botan::TLS::Handshake_Type::ClientHello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:827,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 828
    functionName: Botan_Tests::add_renegotiation_extension
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - add
    - Renegotiation_Extension::Renegotiation_Extension
    linkageType: ''
    returnType: void
    signature: void add_renegotiation_extension(Botan::TLS::Extensions& exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:831,1
    - Dst: Botan::TLS::EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 832
    functionName: Botan_Tests::add_early_data_indication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::EarlyDataIndication::EarlyDataIndication
    - add
    linkageType: ''
    returnType: void
    signature: void add_early_data_indication(Botan::TLS::Extensions& exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:835,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:835,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:836,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 837
    functionName: Botan_Tests::strip_message_header
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - end
    - size
    - begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> strip_message_header(const std::vector<uint8_t>&
      msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:843,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:843,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:848,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 852
    functionName: Botan_Tests::make_mock_signatures
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - mock
    - std::vector::push_back
    - get_opt_bin
    - has_key
    linkageType: ''
    returnType: std::vector<MockSignature>
    signature: std::vector<MockSignature> make_mock_signatures(const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 943
    functionName: Botan_Tests::Test_TLS_RFC8448::Test_TLS_RFC8448
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_TLS_RFC8448()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: simple_1_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: resumed_handshake_with_0_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:951,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:951,1
    - Dst: hello_retry_request
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:952,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: middlebox_compatibility
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:958,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:958,1
    - Dst: externally_provided_psk_with_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:959,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:961,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:961,1
    - Dst: raw_public_key_with_client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:962,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:964,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 966
    functionName: Botan_Tests::Test_TLS_RFC8448::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - side
    - Botan::Path_Validation_Result::Path_Validation_Result
    - middlebox_compatibility
    - resumed_handshake_with_0_rtt
    - simple_1_rtt
    - hello_retry_request
    - client_authentication
    - externally_provided_psk_with_ephemeral_key
    - raw_public_key_with_client_authentication
    - Botan_Tests::Test::Result::Failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 971
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::side
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string side() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:974,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:978,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:978,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:987,1
    - Dst: Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:987,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:989,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:990,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:997,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:999,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1000,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1001,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1004,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1004,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1005,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1015,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1019,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1021,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1022,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1024,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1024,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1025,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1025,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1027,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1028,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1030,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1031,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1037,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1037,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1038,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1038,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1041,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1043,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1044,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1044,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1046,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1060,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1060,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1062,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1062,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1063,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1063,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1065,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1066,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1067,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1070,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1072,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1073,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1073,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1074,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1074,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1076,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1081,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1081,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1082,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1083,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1083,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1084,1
    - Dst: DER_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1085,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1086,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1090,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1092,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1093,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1093,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1095,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1097,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1098,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1099,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1102,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1104,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1105,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1105,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1107,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1109,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1110,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1110,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1111,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1111,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1114,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1116,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1117,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1119,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1120,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1121,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1123,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1123,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1124,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1127,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 59
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 1130
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::unique_ptr::stored_sessions
    - ticket
    - DER_encode
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::client::received_data
    - test_u64_eq
    - std::make_unique<Client_Context>
    - std::make_shared<Fixed_Output_RNG>
    - test_bin_eq
    - auto::end
    - get_req_bin
    - std::unique_ptr::client::is_active
    - std::unique_ptr::send
    - auto::begin
    - require
    - server_certificate
    - add
    - std::unique_ptr::certs_verified
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - test_sz_eq
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - add_renegotiation_extension
    - Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> simple_1_rtt(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1133,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1137,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1137,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1143,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1143,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1145,1
    - Dst: add_early_data_indication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1151,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1152,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1159,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1161,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1162,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1163,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1164,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1166,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1166,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1167,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1167,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1169,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1169,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1170,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1180,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1181,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1188
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - Padding::Padding
    - add
    - sort_rfc8448_extensions
    - add_early_data_indication
    - std::unique_ptr::pull_send_buffer
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - add_renegotiation_extension
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> resumed_handshake_with_0_rtt(const VarMap&
      vars) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1198,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1204,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1204,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1207,1
    - Dst: Botan_Tests::Test_TLS_RFC8448_Client::rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1212,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1213,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1218,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1218,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1223,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1225,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1225,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1226,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1229,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1229,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1231,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1241,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1242,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1242,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1245,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1247,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1248,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1248,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1250,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1261,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1262,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1262,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1265,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1267,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1268,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1268,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1270,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1279,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1281,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1282,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1282,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1284,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1299,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1300,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1300,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1303,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1305,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1306,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1307,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1309,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1310,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1310,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1312,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1312,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1313,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1316,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1319
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - Botan_Tests::Test_TLS_RFC8448_Client::rng
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - Padding::Padding
    - require
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - add_entropy
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1322,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1326,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1326,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1332,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1333,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1340,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1342,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1342,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1343,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1344,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1348,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1350,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1360,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1361,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1361,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1364,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1366,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1367,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1367,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1369,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1378,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1380,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1381,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1381,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1406,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1407,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1407,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1410,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1412,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1413,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1414,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1415,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1415,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1417,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1423,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1424,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1424,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1430
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - require
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::client::close
    - add_entropy
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> client_authentication(const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1433,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1438,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1438,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1444,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1445,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1452,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1455,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1455,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1456,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1457,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1462,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1473,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1475,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1476,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1477,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1477,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1479,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1481,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1501,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1502,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1504,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1506,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1510,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1512,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1513,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1515,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1516,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1516,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1518,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1518,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1519,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1519,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1520,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1520,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1522,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1522,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1524,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1527
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::client::is_active
    - Botan::concat
    - require
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> middlebox_compatibility(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1530,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1534,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1534,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1542,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1558,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1560,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1561,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1562,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1563,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1566,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1566,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1567,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1568,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1568,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1570,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1570,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1571,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1581,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1582,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1582,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1585,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1587,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1588,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1589,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1590,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1596,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1596,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1597,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1597,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1600,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1603,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1604,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1604,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1606,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1616,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1616,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1619,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1620,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1620,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1623,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1625,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1626,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1626,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1628,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1630,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1631,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1632,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1635,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1637,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1638,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1638,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1640,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1642,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1643,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1643,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1647,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1649,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1650,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1652,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1653,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1653,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1654,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1656,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1656,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1657,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1660,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1663
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::externally_provided_psk_with_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - test_u64_eq
    - std::make_unique<Client_Context>
    - sort_extensions
    - test_bin_eq
    - ExternalPSK
    - get_req_bin
    - std::unique_ptr::client::is_active
    - std::unique_ptr::send
    - require
    - lock
    - get_req_str
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - std::unique_ptr::psk_identity_negotiated
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> externally_provided_psk_with_ephemeral_key(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1666,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1670,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1670,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1679,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1696,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1698,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1698,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1699,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1700,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1704,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1706,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1716,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1717,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1717,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1720,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1722,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1723,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1723,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1725,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1734,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1736,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1737,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1737,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1739,1
    - Dst: std::unique_ptr::client::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1761,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1763,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1763,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1767,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1768,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1768,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1771,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1773,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1774,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1775,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1776,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1776,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1778,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1784,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1784,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1785,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1785,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1665
    functionDepth: 1
    functionLinenumber: 1665
    functionLinenumberEnd: 1791
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::raw_public_key_with_client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - auto::fingerprint_public
    - server_raw_public_key_pair
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - sort_extensions
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::client::peer_raw_public_key
    - require
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::client::close
    - add_entropy
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> raw_public_key_with_client_authentication(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1796
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::side
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string side() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1799,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1804,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1804,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1809,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1815,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1815,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1817,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1820,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1821,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1822,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1823,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1825,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1827,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1827,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1828,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1828,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1829,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1829,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1831,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1831,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1833,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1851,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1853,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1854,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1856,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1857,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1858,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1858,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1859,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1860,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1862,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1863,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1864,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1864,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1865,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1866,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1867,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1867,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1869,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1870,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1871,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1871,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1872,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1879,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1879,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1880,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1880,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1883,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1885,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1886,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1886,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1888,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1896,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1898,1
    - Dst: std::unique_ptr::server::send_new_session_tickets
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1899,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1901,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1903,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1912,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1914,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1915,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1916,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1916,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1919,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1921,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1922,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1922,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1923,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1925,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1926,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1926,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1927,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1927,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1930,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1932,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1933,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1933,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1935,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1937,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1938,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1939,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1942,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1944,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1945,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1945,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1947,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1952,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1952,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1955,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1957,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1958,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1960,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1960,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1961,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1961,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1962,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1962,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1963,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1964,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1798
    functionDepth: 2
    functionLinenumber: 1798
    functionLinenumberEnd: 1968
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - EarlyDataIndication::EarlyDataIndication
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::unique_ptr::server::send_new_session_tickets
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_u64_eq
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::send
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - test_sz_eq
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - strip_message_header
    - std::unique_ptr::server::close
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> simple_1_rtt(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1971,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1975,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1975,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1980,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1986,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1986,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1988,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1991,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1992,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1993,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1994,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1996,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1998,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1998,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1999,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1999,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2000,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2000,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2002,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2002,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2004,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2021,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2023,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2024,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2026,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2027,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2028,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2028,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2029,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2030,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2031,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2031,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2033,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2034,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2035,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2035,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2036,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2043,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2043,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2044,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 1970
    functionDepth: 2
    functionLinenumber: 1970
    functionLinenumberEnd: 2051
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - EarlyDataIndication::EarlyDataIndication
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - strip_message_header
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> resumed_handshake_with_0_rtt(const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_RFC8448_Server::rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2055,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2056,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2060,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2060,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2065,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2072,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: Cookie::Cookie
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2075,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2078,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2078,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2079,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2080,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2082,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2083,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2083,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2085,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2085,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2087,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2096,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2098,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2099,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2100,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2102,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2102,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2103,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2103,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2106,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2108,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2109,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2109,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2111,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2129,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2131,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2132,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2134,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2135,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2136,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2136,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2137,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2138,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2139,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2139,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2140,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2141,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2143,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2144,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2145,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2145,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2146,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2147,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2148,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2148,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2150,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2151,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2152,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2152,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2153,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2154,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2154,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2155,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2156,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2159,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2161,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2171,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2172,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2172,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2175,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2177,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2178,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2178,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2185,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2185,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2188,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2190,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2191,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2193,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2193,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2194,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2194,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2195,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2195,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2196,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2197,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2053
    functionDepth: 1
    functionLinenumber: 2053
    functionLinenumberEnd: 2202
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - Botan_Tests::Test_TLS_RFC8448_Server::rng
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - Cookie::Cookie
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request(const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2205,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2209,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2209,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2214,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2216,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2217,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2218,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2219,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2221,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2223,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2223,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2225,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2225,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2227,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2247,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2249,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2250,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2252,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2253,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2254,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2254,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2255,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2256,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2257,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2257,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2258,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2259,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2260,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2260,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2261,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2262,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2264,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2265,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2267,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2268,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2269,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2269,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2271,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2272,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2273,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2273,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2276,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2276,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2277,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2277,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2278,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2279,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2282,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2284,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2289,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2289,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2291,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2304,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2307,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2308,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2308,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2311,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2313,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2314,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2314,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2321,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2321,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2324,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2326,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2329,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2329,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2330,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2331,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2331,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2332,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2333,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2204
    functionDepth: 1
    functionLinenumber: 2204
    functionLinenumberEnd: 2338
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - client_certificate
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - std::unique_ptr::server::peer_cert_chain
    - auto::empty
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> client_authentication(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2341,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2345,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2345,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2350,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2353,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2353,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2354,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2355,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2358,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2358,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2360,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2360,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2362,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2380,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2382,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2385,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2386,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2387,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2387,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2388,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2389,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2390,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2390,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2391,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2392,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2393,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2393,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2394,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2395,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2396,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2396,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2397,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2398,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2399,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2402,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2403,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2404,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2404,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2405,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2407,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2407,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2408,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2409,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2412,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2414,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2417,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2424,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2424,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2425,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2425,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2428,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2430,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2431,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2431,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2438,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2438,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2441,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2443,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2446,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2446,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2447,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2447,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2448,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2448,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2449,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2450,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2340
    functionDepth: 1
    functionLinenumber: 2340
    functionLinenumberEnd: 2455
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> middlebox_compatibility(const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2458,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2462,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2462,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2467,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2476,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2483,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2492,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2493,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2494,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2495,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2497,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2500,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2500,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2501,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2502,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2502,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2503,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2503,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2505,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2505,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2507,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2521,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2523,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2524,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2526,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2527,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2529,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2530,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2532,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2533,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2534,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2534,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2536,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2537,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2538,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2538,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2539,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2542,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2543,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2546,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2548,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2549,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2549,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2550,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2551,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2551,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2553,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2561,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2563,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2564,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2564,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2565,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2567,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2568,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2568,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2569,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2569,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2571,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2571,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2572,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2573,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2574,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2575,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2578,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2580,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2581,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2581,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2586,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2586,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2587,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2587,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2588,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2588,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2590,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2592,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2592,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2593,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2593,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2594,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2594,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2595,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2596,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2457
    functionDepth: 1
    functionLinenumber: 2457
    functionLinenumberEnd: 2600
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::externally_provided_psk_with_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_u64_eq
    - sort_extensions
    - test_bin_eq
    - ExternalPSK
    - get_req_bin
    - std::unique_ptr::send
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - lock
    - std::unique_ptr::server::is_handshake_complete
    - get_req_str
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::unique_ptr::psk_identity_negotiated
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> externally_provided_psk_with_ephemeral_key(const
      VarMap& vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2603,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2607,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2607,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2616,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2625,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2636,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2638,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2639,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2640,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2642,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2643,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2643,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2645,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2645,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2647,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2667,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2669,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2670,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2672,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2673,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2674,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2674,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2675,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2676,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2677,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2677,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2678,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2679,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2680,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2680,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2681,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2682,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2684,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2685,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2687,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2688,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2689,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2689,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2691,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2692,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2693,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2693,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2694,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2696,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2696,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2697,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2697,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2698,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2699,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2702,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2704,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2709,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2709,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2711,1
    - Dst: std::unique_ptr::server::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2724,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2726,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2726,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2728,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2728,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2729,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2729,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2732,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2734,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2735,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2735,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2737,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2742,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2742,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2745,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2747,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2750,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2751,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2752,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2752,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2753,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2754,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2602
    functionDepth: 1
    functionLinenumber: 2602
    functionLinenumberEnd: 2758
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::raw_public_key_with_client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - auto::fingerprint_public
    - at
    - client_raw_public_key_pair
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - sort_extensions
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - std::unique_ptr::server::peer_cert_chain
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::server::peer_raw_public_key
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> raw_public_key_with_client_authentication(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - ' bin'
    argTypes:
    - Fixed_Output_RNG
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::add_entropy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::add_entropy
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void add_entropy(Fixed_Output_RNG& rng, const std::vector<uint8_t>&
      bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:61,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: Botan_Tests::server_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate server_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:71,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: Botan_Tests::alternative_server_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate alternative_server_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:78,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: Botan_Tests::client_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate client_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:84,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: Botan_Tests::client_raw_public_key_pair
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> client_raw_public_key_pair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:90,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: Botan_Tests::server_raw_public_key_pair
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> server_raw_public_key_pair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Extension_Code
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: Botan_Tests::Padding::static_type
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Extension_Code
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code static_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan_Tests::Padding::type
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Padding::static_type
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Padding::Padding
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Padding(const size_t padding_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Botan_Tests::Padding::serialize
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize(Botan::TLS::Connection_Side /*whoami*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::Padding::empty
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:126,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:126,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:127,1
    - Dst: static_cast<time_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:127,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msecs
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: Botan_Tests::from_milliseconds_since_epoch
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::system_clock::from_time_t
    - Botan_CLI::Timer::milliseconds
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - static_cast<time_t>
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point from_milliseconds_since_epoch(uint64_t
      msecs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:158,1
    - Dst: from_milliseconds_since_epoch
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - modify_exts_cb
    - mock_signatures
    - timestamp
    argTypes:
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Test_TLS_13_Callbacks::Test_TLS_13_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - from_milliseconds_since_epoch
    linkageType: ''
    returnType: void
    signature: "void Test_TLS_13_Callbacks(Modify_Exts_Fn modify_exts_cb,\n                            std::vector<MockSignature>
      mock_signatures,\n                            uint64_t timestamp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:167,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seq_no
    - data
    argTypes:
    - uint64_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t seq_no, std::span<const uint8_t>
      data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:173,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: external_psk_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:185,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' summary'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - external_psk_identity
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& summary)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_should_persist_resumption_information
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: bool tls_should_persist_resumption_information(const Session& /*session*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cert_chain'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      /*ocsp*/,\n                                 const std::vector<Botan::Certificate_Store*>&
      /*trusted*/,\n                                 Botan::Usage_Type /*usage*/,\n
      \                                std::string_view /*hostname*/,\n                                 const
      Botan::TLS::Policy& /*policy*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:215,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:217,1
    - Dst: subject_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' raw_pk'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::load_key
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - subject_public_key
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Public_Key& raw_pk,\n                                     Usage_Type
      /*usage*/,\n                                     std::string_view /*hostname*/,\n
      \                                    const TLS::Policy& /*policy*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:221,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_cert_chain_ocsp_timeout
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_CLI::Timer::milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds tls_verify_cert_chain_ocsp_timeout() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:227,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' chain'
    - ' csr'
    argTypes:
    - std::vector<X509_Certificate>
    - Certificate_Status_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_provide_cert_status(const std::vector<X509_Certificate>&
      chain,\n                                                   const Certificate_Status_Request&
      csr) override"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:236,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:237,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:239,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:241,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:245,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:245,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:247,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:253,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:253,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:256,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:256,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:265,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:265,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - ' msg'
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 266
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::string
    - algo_name
    - BOTAN_UNUSED
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Test_Error
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_sign_message(const Private_Key& key,\n                                            RandomNumberGenerator&
      rng,\n                                            std::string_view padding,\n
      \                                           Signature_Format format,\n                                            const
      std::vector<uint8_t>& msg) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:273,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' key'
    - padding
    - format
    - ' msg'
    - ' sig'
    argTypes:
    - Public_Key
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: "bool tls_verify_message(const Public_Key& key,\n                              std::string_view
      padding,\n                              Signature_Format format,\n                              const
      std::vector<uint8_t>& msg,\n                              const std::vector<uint8_t>&
      sig) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:279,1
    - Dst: Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Callbacks::tls_generate_ephemeral_key
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> tls_generate_ephemeral_key(\n
      \        const std::variant<TLS::Group_Params, DL_Group>& group, RandomNumberGenerator&
      rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:288,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' group'
    - ' private_key'
    - ' public_value'
    - ' rng'
    - ' policy'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - PK_Key_Agreement_Key
    - std::vector<uint8_t>
    - RandomNumberGenerator
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> tls_ephemeral_key_agreement(const std::variant<TLS::Group_Params,
      DL_Group>& group,\n                                                         const
      PK_Key_Agreement_Key& private_key,\n                                                         const
      std::vector<uint8_t>& public_value,\n                                                         RandomNumberGenerator&
      rng,\n                                                         const Policy&
      policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:293,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:293,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:296,1
    - Dst: try_emplace
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: second::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:299,1
    - Dst: PeerCallbacks::tls_inspect_handshake_msg
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - second::emplace_back
    - try_emplace
    - type_string
    - serialize
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - PeerCallbacks::tls_inspect_handshake_msg
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Handshake_Message& message) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      client_protos) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: m_modify_exts
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' exts'
    - side
    - which_message
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    - Botan::TLS::Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    - std::string
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - m_modify_exts
    - handshake_type_to_string
    linkageType: ''
    returnType: void
    signature: "void tls_modify_extensions(Botan::TLS::Extensions& exts,\n                                 Botan::TLS::Connection_Side
      side,\n                                 Botan::TLS::Handshake_Type which_message)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' extn'
    - which_side
    - which_message
    argTypes:
    - Botan::TLS::Extensions
    - Connection_Side
    - Botan::TLS::Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - handshake_type_to_string
    - std::string
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    linkageType: ''
    returnType: void
    signature: "void tls_examine_extensions(const Botan::TLS::Extensions& extn,\n
      \                                 Connection_Side which_side,\n                                  Botan::TLS::Handshake_Type
      which_message) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:330,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::string
    signature: std::string tls_peer_network_identity() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_current_timestamp
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point tls_current_timestamp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:339,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: Botan_Tests::Test_TLS_13_Callbacks::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:341,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 341
    functionName: Botan_Tests::Test_TLS_13_Callbacks::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_receive_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: Botan_Tests::Test_TLS_13_Callbacks::last_received_seq_no
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t last_received_seq_no() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 345
    functionName: '& callback_invocations() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, unsigned int>
    signature: std::map<std::string, unsigned int> & callback_invocations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: Botan_Tests::Test_TLS_13_Callbacks::reset_callback_invocation_counters
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void reset_callback_invocation_counters()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' callback_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 63
    functionsReached:
    - contains
    linkageType: ''
    returnType: void
    signature: void count_callback_invocation(const std::string& callback_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:381,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:382,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:389,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:390,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:390,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:392,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - use_alternative_server_certificate
    - external_psk
    argTypes:
    - bool
    - std::optional<ExternalPSK>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: Botan_Tests::Test_Credentials::Test_Credentials
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - reset
    - create_private_key
    - std::move
    - Botan_Tests::Test::read_data_file
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void Test_Credentials(bool use_alternative_server_certificate, std::optional<ExternalPSK>
      external_psk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:399,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:401,1
    - Dst: alternative_server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:403,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' cert_key_types'
    - ' cert_signature_schemes'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::vector<AlgorithmIdentifier>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: Botan_Tests::Test_Credentials::cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - alternative_server_certificate
    - BOTAN_UNUSED
    - server_certificate
    - client_certificate
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> cert_chain(const std::vector<std::string>&
      cert_key_types,\n                                                      const
      std::vector<AlgorithmIdentifier>& cert_signature_schemes,\n                                                      const
      std::string& type,\n                                                      const
      std::string& context) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:412,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:413,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key_types'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: Botan_Tests::Test_Credentials::find_raw_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - client_raw_public_key_pair
    - server_raw_public_key_pair
    linkageType: ''
    returnType: std::shared_ptr<Public_Key>
    signature: "std::shared_ptr<Public_Key> find_raw_public_key(const std::vector<std::string>&
      key_types,\n                                                      const std::string&
      type,\n                                                      const std::string&
      context) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' cert'
    - ' type'
    - ' context'
    argTypes:
    - Botan::X509_Certificate
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: Botan_Tests::Test_Credentials::private_key_for
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      cert,\n                                                          const std::string&
      type,\n                                                          const std::string&
      context) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:436,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:438,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:438,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:439,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:439,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:441,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:441,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' raw_public_key'
    - ' type'
    - ' context'
    argTypes:
    - Public_Key
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 446
    functionName: Botan_Tests::Test_Credentials::private_key_for
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::emplace_back
    - BOTAN_UNUSED
    - fingerprint_public
    - server_raw_public_key_pair
    - client_raw_public_key_pair
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Public_Key&
      raw_public_key,\n                                                          const
      std::string& type,\n                                                          const
      std::string& context) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:452,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:456,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:458,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:458,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: extract_master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:468,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' identities'
    - ' prf'
    argTypes:
    - std::vector<std::string>
    - std::optional<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 473
    functionName: Botan_Tests::Test_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - extract_master_secret
    - empty
    - std::find
    - std::vector::emplace_back
    - has_value
    - begin
    - prf_algo
    - value
    - identity
    - ExternalPSK
    - end
    linkageType: ''
    returnType: std::vector<TLS::ExternalPSK>
    signature: "std::vector<TLS::ExternalPSK> find_preshared_keys(std::string_view
      /* host */,\n                                                        TLS::Connection_Side
      /* whoami */,\n                                                        const
      std::vector<std::string>& identities,\n                                                        const
      std::optional<std::string>& prf) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:486,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:488,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:489,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:490,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: Botan_Tests::RFC8448_Text_Policy::read_policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - Test_Error
    - std::string::c_str
    - Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    linkageType: ''
    returnType: Botan::TLS::Text_Policy
    signature: Botan::TLS::Text_Policy read_policy(const std::string& policy_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_Text_Policy::read_policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 498
    functionName: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::read_policy
    linkageType: ''
    returnType: void
    signature: void RFC8448_Text_Policy(const std::string& policy_file, bool rfc8448
      = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:502,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:521,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:522,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:523,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 526
    functionName: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    linkageType: ''
    returnType: std::vector<Botan::TLS::Signature_Scheme>
    signature: std::vector<Botan::TLS::Signature_Scheme> allowed_signature_schemes()
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:533,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:535,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: value_exists
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:538,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' supported_by_peer'
    - ' offered_by_peer'
    argTypes:
    - std::vector<Group_Params>
    - std::vector<Group_Params>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 542
    functionName: Botan_Tests::RFC8448_Text_Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - BOTAN_UNUSED
    - value_exists
    - key_exchange_groups
    - std::find_if
    - auto::end
    linkageType: ''
    returnType: Named_Group
    signature: "Named_Group choose_key_exchange_group(const std::vector<Group_Params>&
      supported_by_peer,\n                                            const std::vector<Group_Params>&
      offered_by_peer) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:557,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:557,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:558,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:558,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:561,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:561,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:562,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 567
    functionName: Botan_Tests::RFC8448_Session_Manager::find_by_handle
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - handle::id
    - handle::ticket
    - ticket
    - id
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) find_by_handle(const Session_Handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::Null_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 570
    functionName: Botan_Tests::RFC8448_Session_Manager::RFC8448_Session_Manager
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Botan::Null_RNG>
    linkageType: ''
    returnType: void
    signature: void RFC8448_Session_Manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 572
    functionName: '& all_sessions() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> & all_sessions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 576
    functionName: Botan_Tests::RFC8448_Session_Manager::store
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void store(const Session& session, const Session_Handle& handle) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:585,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:586,1
    - Dst: front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: Botan_Tests::RFC8448_Session_Manager::establish
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - front
    - Test_Error
    - master_secret
    - size
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> establish(const Session& session,\n
      \                                             const std::optional<Session_ID>&
      /*session*/,\n                                              bool /*no_ticket*/)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 604
    functionName: Botan_Tests::RFC8448_Session_Manager::retrieve_one
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    functionsReached:
    - end
    - std::find_if
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    - begin
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> retrieve_one(const Session_Handle& handle) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:610,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 616
    functionName: Botan_Tests::RFC8448_Session_Manager::find_some
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - server_info
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find_some(const Server_Information&
      info,\n                                                 const size_t /*max_sessions_hint*/)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erase_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:618,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 618
    functionName: Botan_Tests::RFC8448_Session_Manager::remove
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - std::erase_if
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:621,1
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: Botan_Tests::RFC8448_Session_Manager::remove_all
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - size
    - clear
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_TLS_13_Callbacks>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:646,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:647,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:647,1
    - Dst: std::make_shared<Test_Credentials>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:648,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:648,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:649,1
    - Dst: std::make_shared<RFC8448_Session_Manager>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:650,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:651,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:652,1
    - Dst: store
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: std::get<Session>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: Botan::TLS::Session_Handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - rng_in
    - policy
    - modify_exts_cb
    - mock_signatures
    - timestamp
    - session_and_ticket
    - external_psk
    - use_alternative_server_certificate
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    - uint64_t
    - std::optional<std::pair<Session, Session_Ticket>>
    - std::optional<ExternalPSK>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 656
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<RFC8448_Session_Manager>
    - std::get<Session_Ticket>
    - std::make_shared<Test_TLS_13_Callbacks>
    - std::move
    - std::get<Session>
    - Botan::TLS::Session_Handle
    - std::optional<std::pair<Session, Session_Ticket>>::has_value
    - std::make_shared<Test_Credentials>
    - std::optional<std::pair<Session, Session_Ticket>>::value
    - store
    linkageType: ''
    returnType: void
    signature: "void TLS_Context(std::shared_ptr<Botan::RandomNumberGenerator> rng_in,\n
      \                 std::shared_ptr<const RFC8448_Text_Policy> policy,\n                  Modify_Exts_Fn
      modify_exts_cb,\n                  std::vector<MockSignature> mock_signatures,\n
      \                 uint64_t timestamp,\n                  std::optional<std::pair<Session,
      Session_Ticket>> session_and_ticket,\n                  std::optional<ExternalPSK>
      external_psk,\n                  bool use_alternative_server_certificate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 659
    functionName: ~TLS_Context()
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TLS_Context()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 661
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Context(TLS_Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 662
    functionName: '& operator=(const TLS_Context&)'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Context
    signature: TLS_Context & operator=(const TLS_Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 664
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Context(TLS_Context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 665
    functionName: '& operator=(TLS_Context&&)'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Context
    signature: TLS_Context & operator=(TLS_Context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 667
    functionName: Botan_Tests::TLS_Context::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::TLS_Context::pull_send_buffer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 669
    functionName: Botan_Tests::TLS_Context::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::TLS_Context::pull_receive_buffer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_receive_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 671
    functionName: Botan_Tests::TLS_Context::last_received_seq_no
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::TLS_Context::last_received_seq_no
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t last_received_seq_no() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:681,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:684,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:684,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:691,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: reset_callback_invocation_counters
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:696,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ' result'
    - ' context'
    - ' callback_names'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 697
    functionName: Botan_Tests::TLS_Context::check_callback_invocations
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::find
    - cbegin
    - contains
    - callback_invocations
    - cend
    - test_is_true
    - at
    - reset_callback_invocation_counters
    linkageType: ''
    returnType: void
    signature: "void check_callback_invocations(Test::Result& result,\n                                      const
      std::string& context,\n                                      const std::vector<std::string>&
      callback_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: all_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 699
    functionName: '& stored_sessions() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - all_sessions
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> & stored_sessions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 701
    functionName: '& certs_verified() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> & certs_verified() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 703
    functionName: '& psk_identity_negotiated() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & psk_identity_negotiated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: Botan_Tests::TLS_Context::observed_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) observed_handshake_messages() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:730,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:731,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:732,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:733,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:735,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - rng_in
    - policy
    - timestamp
    - modify_exts_cb
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - uint64_t
    - Modify_Exts_Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 744
    functionName: Botan_Tests::Client_Context::Client_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Server_Information
    linkageType: ''
    returnType: void
    signature: "void Client_Context(std::shared_ptr<Botan::RandomNumberGenerator>
      rng_in,\n                     std::shared_ptr<const RFC8448_Text_Policy> policy,\n
      \                    uint64_t timestamp,\n                     Modify_Exts_Fn
      modify_exts_cb,\n                     std::optional<std::pair<Session, Session_Ticket>>
      session_and_ticket = std::nullopt,\n                     std::optional<ExternalPSK>
      external_psk = std::nullopt,\n                     std::vector<MockSignature>
      mock_signatures = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Client_Context::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan_Tests::Client_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Client_Context::send
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void send(const std::vector<uint8_t>& data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:762,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:763,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:764,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:766,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - rng
    - policy
    - timestamp
    - modify_exts_cb
    - mock_signatures
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - uint64_t
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 769
    functionName: Botan_Tests::Server_Context::Server_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Server_Context(std::shared_ptr<Botan::RandomNumberGenerator>
      rng,\n                     std::shared_ptr<const RFC8448_Text_Policy> policy,\n
      \                    uint64_t timestamp,\n                     Modify_Exts_Fn
      modify_exts_cb,\n                     std::vector<MockSignature> mock_signatures,\n
      \                    bool use_alternative_server_certificate = false,\n                     std::optional<std::pair<Session,
      Session_Ticket>> session_and_ticket = std::nullopt,\n                     std::optional<ExternalPSK>
      external_psk = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Server_Context::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: Botan_Tests::Server_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Server_Context::send
    - data
    - size
    linkageType: ''
    returnType: void
    signature: void send(const std::vector<uint8_t>& data) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:778,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:780,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' exts'
    - ' expected_order'
    argTypes:
    - Botan::TLS::Extensions
    - std::vector<Botan::TLS::Extension_Code>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 783
    functionName: Botan_Tests::sort_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - add
    - take
    linkageType: ''
    returnType: void
    signature: void sort_extensions(Botan::TLS::Extensions& exts, const std::vector<Botan::TLS::Extension_Code>&
      expected_order)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:793,1
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:806,1
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' exts'
    - side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 822
    functionName: Botan_Tests::sort_rfc8448_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Padding::static_type
    - Botan_Tests::sort_extensions
    linkageType: ''
    returnType: void
    signature: "void sort_rfc8448_extensions(Botan::TLS::Extensions& exts,\n                             Botan::TLS::Connection_Side
      side,\n                             Botan::TLS::Handshake_Type /*type*/ = Botan::TLS::Handshake_Type::ClientHello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:827,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 828
    functionName: Botan_Tests::add_renegotiation_extension
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - add
    - Renegotiation_Extension::Renegotiation_Extension
    linkageType: ''
    returnType: void
    signature: void add_renegotiation_extension(Botan::TLS::Extensions& exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:831,1
    - Dst: Botan::TLS::EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 832
    functionName: Botan_Tests::add_early_data_indication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::EarlyDataIndication::EarlyDataIndication
    - add
    linkageType: ''
    returnType: void
    signature: void add_early_data_indication(Botan::TLS::Extensions& exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:835,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:835,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:836,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 837
    functionName: Botan_Tests::strip_message_header
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - end
    - size
    - begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> strip_message_header(const std::vector<uint8_t>&
      msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:843,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:843,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:848,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 852
    functionName: Botan_Tests::make_mock_signatures
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - mock
    - std::vector::push_back
    - get_opt_bin
    - has_key
    linkageType: ''
    returnType: std::vector<MockSignature>
    signature: std::vector<MockSignature> make_mock_signatures(const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 943
    functionName: Botan_Tests::Test_TLS_RFC8448::Test_TLS_RFC8448
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_TLS_RFC8448()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: simple_1_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: resumed_handshake_with_0_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:951,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:951,1
    - Dst: hello_retry_request
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:952,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: middlebox_compatibility
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:958,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:958,1
    - Dst: externally_provided_psk_with_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:959,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:961,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:961,1
    - Dst: raw_public_key_with_client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:962,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:964,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 966
    functionName: Botan_Tests::Test_TLS_RFC8448::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - side
    - Botan::Path_Validation_Result::Path_Validation_Result
    - middlebox_compatibility
    - resumed_handshake_with_0_rtt
    - simple_1_rtt
    - hello_retry_request
    - client_authentication
    - externally_provided_psk_with_ephemeral_key
    - raw_public_key_with_client_authentication
    - Botan_Tests::Test::Result::Failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 971
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::side
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string side() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:974,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:978,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:978,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:987,1
    - Dst: Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:987,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:989,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:990,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:997,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:999,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1000,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1001,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1004,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1004,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1005,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1015,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1019,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1021,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1022,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1024,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1024,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1025,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1025,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1027,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1028,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1030,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1031,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1037,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1037,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1038,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1038,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1041,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1043,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1044,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1044,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1046,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1060,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1060,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1062,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1062,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1063,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1063,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1065,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1066,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1067,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1070,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1072,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1073,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1073,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1074,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1074,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1076,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1081,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1081,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1082,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1083,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1083,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1084,1
    - Dst: DER_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1085,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1086,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1090,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1092,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1093,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1093,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1095,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1097,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1098,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1099,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1102,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1104,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1105,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1105,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1107,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1109,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1110,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1110,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1111,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1111,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1114,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1116,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1117,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1119,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1120,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1121,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1123,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1123,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1124,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1127,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 59
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 1130
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::unique_ptr::stored_sessions
    - ticket
    - DER_encode
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::client::received_data
    - test_u64_eq
    - std::make_unique<Client_Context>
    - std::make_shared<Fixed_Output_RNG>
    - test_bin_eq
    - auto::end
    - get_req_bin
    - std::unique_ptr::client::is_active
    - std::unique_ptr::send
    - auto::begin
    - require
    - server_certificate
    - add
    - std::unique_ptr::certs_verified
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - test_sz_eq
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - add_renegotiation_extension
    - Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> simple_1_rtt(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1133,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1137,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1137,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1143,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1143,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1145,1
    - Dst: add_early_data_indication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1151,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1152,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1159,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1161,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1162,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1163,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1164,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1166,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1166,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1167,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1167,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1169,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1169,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1170,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1180,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1181,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1188
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - Padding::Padding
    - add
    - sort_rfc8448_extensions
    - add_early_data_indication
    - std::unique_ptr::pull_send_buffer
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - add_renegotiation_extension
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> resumed_handshake_with_0_rtt(const VarMap&
      vars) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1198,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1204,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1204,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1207,1
    - Dst: Botan_Tests::Test_TLS_RFC8448_Client::rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1212,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1213,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1218,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1218,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1223,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1225,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1225,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1226,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1229,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1229,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1231,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1241,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1242,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1242,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1245,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1247,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1248,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1248,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1250,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1261,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1262,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1262,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1265,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1267,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1268,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1268,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1270,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1279,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1281,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1282,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1282,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1284,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1299,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1300,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1300,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1303,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1305,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1306,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1307,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1309,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1310,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1310,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1312,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1312,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1313,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1316,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1319
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - Botan_Tests::Test_TLS_RFC8448_Client::rng
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - Padding::Padding
    - require
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - add_entropy
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1322,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1326,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1326,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1332,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1333,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1340,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1342,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1342,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1343,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1344,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1348,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1350,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1360,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1361,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1361,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1364,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1366,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1367,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1367,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1369,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1378,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1380,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1381,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1381,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1406,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1407,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1407,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1410,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1412,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1413,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1414,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1415,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1415,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1417,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1423,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1424,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1424,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1430
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - require
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::client::close
    - add_entropy
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> client_authentication(const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1433,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1438,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1438,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1444,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1445,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1452,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1455,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1455,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1456,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1457,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1462,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1473,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1475,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1476,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1477,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1477,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1479,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1481,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1501,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1502,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1504,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1506,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1510,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1512,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1513,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1515,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1516,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1516,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1518,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1518,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1519,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1519,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1520,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1520,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1522,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1522,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1524,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1527
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::client::is_active
    - Botan::concat
    - require
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> middlebox_compatibility(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1530,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1534,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1534,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1542,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1558,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1560,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1561,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1562,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1563,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1566,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1566,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1567,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1568,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1568,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1570,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1570,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1571,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1581,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1582,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1582,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1585,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1587,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1588,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1589,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1590,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1596,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1596,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1597,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1597,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1600,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1603,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1604,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1604,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1606,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1616,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1616,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1619,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1620,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1620,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1623,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1625,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1626,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1626,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1628,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1630,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1631,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1632,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1635,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1637,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1638,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1638,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1640,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1642,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1643,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1643,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1647,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1649,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1650,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1652,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1653,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1653,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1654,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1656,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1656,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1657,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1660,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1663
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::externally_provided_psk_with_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - test_u64_eq
    - std::make_unique<Client_Context>
    - sort_extensions
    - test_bin_eq
    - ExternalPSK
    - get_req_bin
    - std::unique_ptr::client::is_active
    - std::unique_ptr::send
    - require
    - lock
    - get_req_str
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - std::unique_ptr::psk_identity_negotiated
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> externally_provided_psk_with_ephemeral_key(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1666,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1670,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1670,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1679,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1696,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1698,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1698,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1699,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1700,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1704,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1706,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1716,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1717,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1717,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1720,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1722,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1723,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1723,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1725,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1734,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1736,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1737,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1737,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1739,1
    - Dst: std::unique_ptr::client::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1761,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1763,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1763,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1767,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1768,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1768,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1771,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1773,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1774,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1775,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1776,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1776,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1778,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1784,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1784,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1785,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1785,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1665
    functionDepth: 1
    functionLinenumber: 1665
    functionLinenumberEnd: 1791
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::raw_public_key_with_client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - auto::fingerprint_public
    - server_raw_public_key_pair
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - sort_extensions
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::client::peer_raw_public_key
    - require
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::client::close
    - add_entropy
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> raw_public_key_with_client_authentication(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1796
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::side
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string side() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1799,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1804,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1804,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1809,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1815,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1815,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1817,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1820,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1821,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1822,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1823,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1825,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1827,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1827,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1828,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1828,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1829,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1829,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1831,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1831,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1833,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1851,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1853,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1854,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1856,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1857,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1858,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1858,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1859,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1860,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1862,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1863,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1864,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1864,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1865,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1866,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1867,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1867,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1869,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1870,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1871,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1871,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1872,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1879,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1879,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1880,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1880,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1883,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1885,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1886,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1886,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1888,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1896,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1898,1
    - Dst: std::unique_ptr::server::send_new_session_tickets
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1899,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1901,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1903,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1912,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1914,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1915,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1916,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1916,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1919,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1921,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1922,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1922,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1923,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1925,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1926,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1926,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1927,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1927,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1930,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1932,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1933,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1933,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1935,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1937,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1938,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1939,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1942,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1944,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1945,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1945,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1947,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1952,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1952,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1955,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1957,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1958,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1960,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1960,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1961,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1961,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1962,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1962,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1963,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1964,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1798
    functionDepth: 2
    functionLinenumber: 1798
    functionLinenumberEnd: 1968
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - EarlyDataIndication::EarlyDataIndication
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::unique_ptr::server::send_new_session_tickets
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_u64_eq
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::send
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - test_sz_eq
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - strip_message_header
    - std::unique_ptr::server::close
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> simple_1_rtt(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1971,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1975,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1975,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1980,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1986,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1986,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1988,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1991,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1992,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1993,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1994,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1996,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1998,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1998,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1999,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1999,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2000,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2000,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2002,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2002,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2004,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2021,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2023,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2024,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2026,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2027,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2028,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2028,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2029,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2030,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2031,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2031,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2033,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2034,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2035,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2035,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2036,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2043,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2043,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2044,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 1970
    functionDepth: 2
    functionLinenumber: 1970
    functionLinenumberEnd: 2051
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - EarlyDataIndication::EarlyDataIndication
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - strip_message_header
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> resumed_handshake_with_0_rtt(const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_RFC8448_Server::rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2055,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2056,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2060,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2060,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2065,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2072,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: Cookie::Cookie
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2075,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2078,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2078,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2079,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2080,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2082,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2083,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2083,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2085,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2085,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2087,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2096,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2098,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2099,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2100,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2102,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2102,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2103,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2103,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2106,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2108,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2109,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2109,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2111,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2129,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2131,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2132,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2134,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2135,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2136,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2136,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2137,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2138,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2139,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2139,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2140,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2141,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2143,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2144,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2145,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2145,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2146,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2147,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2148,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2148,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2150,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2151,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2152,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2152,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2153,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2154,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2154,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2155,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2156,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2159,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2161,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2171,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2172,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2172,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2175,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2177,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2178,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2178,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2185,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2185,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2188,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2190,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2191,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2193,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2193,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2194,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2194,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2195,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2195,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2196,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2197,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2053
    functionDepth: 1
    functionLinenumber: 2053
    functionLinenumberEnd: 2202
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - Botan_Tests::Test_TLS_RFC8448_Server::rng
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - Cookie::Cookie
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request(const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2205,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2209,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2209,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2214,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2216,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2217,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2218,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2219,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2221,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2223,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2223,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2225,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2225,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2227,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2247,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2249,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2250,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2252,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2253,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2254,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2254,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2255,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2256,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2257,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2257,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2258,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2259,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2260,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2260,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2261,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2262,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2264,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2265,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2267,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2268,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2269,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2269,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2271,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2272,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2273,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2273,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2276,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2276,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2277,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2277,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2278,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2279,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2282,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2284,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2289,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2289,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2291,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2304,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2307,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2308,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2308,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2311,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2313,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2314,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2314,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2321,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2321,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2324,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2326,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2329,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2329,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2330,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2331,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2331,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2332,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2333,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2204
    functionDepth: 1
    functionLinenumber: 2204
    functionLinenumberEnd: 2338
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - client_certificate
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - std::unique_ptr::server::peer_cert_chain
    - auto::empty
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> client_authentication(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2341,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2345,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2345,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2350,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2353,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2353,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2354,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2355,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2358,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2358,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2360,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2360,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2362,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2380,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2382,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2385,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2386,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2387,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2387,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2388,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2389,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2390,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2390,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2391,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2392,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2393,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2393,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2394,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2395,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2396,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2396,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2397,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2398,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2399,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2402,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2403,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2404,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2404,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2405,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2407,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2407,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2408,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2409,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2412,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2414,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2417,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2424,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2424,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2425,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2425,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2428,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2430,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2431,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2431,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2438,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2438,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2441,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2443,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2446,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2446,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2447,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2447,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2448,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2448,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2449,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2450,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2340
    functionDepth: 1
    functionLinenumber: 2340
    functionLinenumberEnd: 2455
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> middlebox_compatibility(const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2458,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2462,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2462,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2467,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2476,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2483,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2492,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2493,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2494,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2495,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2497,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2500,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2500,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2501,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2502,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2502,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2503,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2503,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2505,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2505,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2507,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2521,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2523,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2524,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2526,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2527,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2529,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2530,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2532,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2533,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2534,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2534,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2536,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2537,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2538,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2538,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2539,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2542,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2543,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2546,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2548,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2549,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2549,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2550,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2551,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2551,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2553,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2561,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2563,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2564,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2564,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2565,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2567,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2568,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2568,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2569,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2569,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2571,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2571,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2572,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2573,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2574,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2575,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2578,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2580,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2581,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2581,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2586,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2586,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2587,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2587,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2588,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2588,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2590,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2592,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2592,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2593,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2593,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2594,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2594,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2595,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2596,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2457
    functionDepth: 1
    functionLinenumber: 2457
    functionLinenumberEnd: 2600
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::externally_provided_psk_with_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_u64_eq
    - sort_extensions
    - test_bin_eq
    - ExternalPSK
    - get_req_bin
    - std::unique_ptr::send
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - lock
    - std::unique_ptr::server::is_handshake_complete
    - get_req_str
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::unique_ptr::psk_identity_negotiated
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> externally_provided_psk_with_ephemeral_key(const
      VarMap& vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2603,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2607,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2607,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2616,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2625,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2636,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2638,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2639,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2640,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2642,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2643,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2643,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2645,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2645,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2647,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2667,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2669,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2670,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2672,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2673,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2674,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2674,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2675,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2676,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2677,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2677,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2678,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2679,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2680,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2680,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2681,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2682,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2684,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2685,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2687,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2688,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2689,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2689,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2691,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2692,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2693,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2693,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2694,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2696,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2696,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2697,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2697,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2698,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2699,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2702,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2704,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2709,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2709,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2711,1
    - Dst: std::unique_ptr::server::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2724,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2726,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2726,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2728,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2728,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2729,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2729,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2732,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2734,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2735,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2735,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2737,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2742,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2742,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2745,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2747,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2750,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2751,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2752,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2752,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2753,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2754,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2602
    functionDepth: 1
    functionLinenumber: 2602
    functionLinenumberEnd: 2758
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::raw_public_key_with_client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - auto::fingerprint_public
    - at
    - client_raw_public_key_pair
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - sort_extensions
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - std::unique_ptr::server::peer_cert_chain
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::server::peer_raw_public_key
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> raw_public_key_with_client_authentication(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - ' bin'
    argTypes:
    - Fixed_Output_RNG
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::add_entropy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::add_entropy
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void add_entropy(Fixed_Output_RNG& rng, const std::vector<uint8_t>&
      bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:61,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: Botan_Tests::server_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate server_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:71,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: Botan_Tests::alternative_server_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate alternative_server_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:78,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: Botan_Tests::client_certificate
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::X509_Certificate
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate client_certificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:84,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: Botan_Tests::client_raw_public_key_pair
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> client_raw_public_key_pair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:90,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: Botan_Tests::server_raw_public_key_pair
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> server_raw_public_key_pair()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Extension_Code
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: Botan_Tests::Padding::static_type
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 6
    functionsReached:
    - Botan::TLS::Extension_Code
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code static_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan_Tests::Padding::type
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Padding::static_type
    linkageType: ''
    returnType: Botan::TLS::Extension_Code
    signature: Botan::TLS::Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Padding::Padding
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Padding(const size_t padding_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Botan_Tests::Padding::serialize
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize(Botan::TLS::Connection_Side /*whoami*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_Tests::Padding::empty
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:126,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:126,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:127,1
    - Dst: static_cast<time_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:127,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msecs
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: Botan_Tests::from_milliseconds_since_epoch
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::system_clock::from_time_t
    - Botan_CLI::Timer::milliseconds
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - static_cast<time_t>
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point from_milliseconds_since_epoch(uint64_t
      msecs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:158,1
    - Dst: from_milliseconds_since_epoch
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - modify_exts_cb
    - mock_signatures
    - timestamp
    argTypes:
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: Botan_Tests::Test_TLS_13_Callbacks::Test_TLS_13_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - from_milliseconds_since_epoch
    linkageType: ''
    returnType: void
    signature: "void Test_TLS_13_Callbacks(Modify_Exts_Fn modify_exts_cb,\n                            std::vector<MockSignature>
      mock_signatures,\n                            uint64_t timestamp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:167,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seq_no
    - data
    argTypes:
    - uint64_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t seq_no, std::span<const uint8_t>
      data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:173,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: external_psk_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:185,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' summary'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - external_psk_identity
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& summary)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_should_persist_resumption_information
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: bool tls_should_persist_resumption_information(const Session& /*session*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cert_chain'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      /*ocsp*/,\n                                 const std::vector<Botan::Certificate_Store*>&
      /*trusted*/,\n                                 Botan::Usage_Type /*usage*/,\n
      \                                std::string_view /*hostname*/,\n                                 const
      Botan::TLS::Policy& /*policy*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:215,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:217,1
    - Dst: subject_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' raw_pk'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::load_key
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - subject_public_key
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Public_Key& raw_pk,\n                                     Usage_Type
      /*usage*/,\n                                     std::string_view /*hostname*/,\n
      \                                    const TLS::Policy& /*policy*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:221,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_cert_chain_ocsp_timeout
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_CLI::Timer::milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds tls_verify_cert_chain_ocsp_timeout() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:227,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' chain'
    - ' csr'
    argTypes:
    - std::vector<X509_Certificate>
    - Certificate_Status_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_provide_cert_status(const std::vector<X509_Certificate>&
      chain,\n                                                   const Certificate_Status_Request&
      csr) override"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:236,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:237,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:239,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:241,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:245,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:245,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:247,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:253,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:253,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:256,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:256,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:265,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:265,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - ' msg'
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 266
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::string
    - algo_name
    - BOTAN_UNUSED
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Test_Error
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_sign_message(const Private_Key& key,\n                                            RandomNumberGenerator&
      rng,\n                                            std::string_view padding,\n
      \                                           Signature_Format format,\n                                            const
      std::vector<uint8_t>& msg) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:273,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' key'
    - padding
    - format
    - ' msg'
    - ' sig'
    argTypes:
    - Public_Key
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: bool
    signature: "bool tls_verify_message(const Public_Key& key,\n                              std::string_view
      padding,\n                              Signature_Format format,\n                              const
      std::vector<uint8_t>& msg,\n                              const std::vector<uint8_t>&
      sig) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:279,1
    - Dst: Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Callbacks::tls_generate_ephemeral_key
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> tls_generate_ephemeral_key(\n
      \        const std::variant<TLS::Group_Params, DL_Group>& group, RandomNumberGenerator&
      rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:288,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' group'
    - ' private_key'
    - ' public_value'
    - ' rng'
    - ' policy'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - PK_Key_Agreement_Key
    - std::vector<uint8_t>
    - RandomNumberGenerator
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> tls_ephemeral_key_agreement(const std::variant<TLS::Group_Params,
      DL_Group>& group,\n                                                         const
      PK_Key_Agreement_Key& private_key,\n                                                         const
      std::vector<uint8_t>& public_value,\n                                                         RandomNumberGenerator&
      rng,\n                                                         const Policy&
      policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:293,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:293,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:296,1
    - Dst: try_emplace
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: second::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:299,1
    - Dst: PeerCallbacks::tls_inspect_handshake_msg
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - second::emplace_back
    - try_emplace
    - type_string
    - serialize
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - PeerCallbacks::tls_inspect_handshake_msg
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Handshake_Message& message) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      client_protos) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:317,1
    - Dst: m_modify_exts
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' exts'
    - side
    - which_message
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    - Botan::TLS::Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    - std::string
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - m_modify_exts
    - handshake_type_to_string
    linkageType: ''
    returnType: void
    signature: "void tls_modify_extensions(Botan::TLS::Extensions& exts,\n                                 Botan::TLS::Connection_Side
      side,\n                                 Botan::TLS::Handshake_Type which_message)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:325,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' extn'
    - which_side
    - which_message
    argTypes:
    - Botan::TLS::Extensions
    - Connection_Side
    - Botan::TLS::Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - handshake_type_to_string
    - std::string
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    linkageType: ''
    returnType: void
    signature: "void tls_examine_extensions(const Botan::TLS::Extensions& extn,\n
      \                                 Connection_Side which_side,\n                                  Botan::TLS::Handshake_Type
      which_message) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:330,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::string
    signature: std::string tls_peer_network_identity() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_current_timestamp
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point tls_current_timestamp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:339,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: Botan_Tests::Test_TLS_13_Callbacks::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:341,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 341
    functionName: Botan_Tests::Test_TLS_13_Callbacks::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_receive_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: Botan_Tests::Test_TLS_13_Callbacks::last_received_seq_no
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t last_received_seq_no() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 345
    functionName: '& callback_invocations() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, unsigned int>
    signature: std::map<std::string, unsigned int> & callback_invocations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: Botan_Tests::Test_TLS_13_Callbacks::reset_callback_invocation_counters
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void reset_callback_invocation_counters()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' callback_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 84
    functionsReached:
    - contains
    linkageType: ''
    returnType: void
    signature: void count_callback_invocation(const std::string& callback_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:381,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:382,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:389,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:390,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:390,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:392,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - use_alternative_server_certificate
    - external_psk
    argTypes:
    - bool
    - std::optional<ExternalPSK>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: Botan_Tests::Test_Credentials::Test_Credentials
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - reset
    - create_private_key
    - std::move
    - Botan_Tests::Test::read_data_file
    - Botan_Tests::Test::new_rng
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void Test_Credentials(bool use_alternative_server_certificate, std::optional<ExternalPSK>
      external_psk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:399,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:401,1
    - Dst: alternative_server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:403,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' cert_key_types'
    - ' cert_signature_schemes'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::vector<AlgorithmIdentifier>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: Botan_Tests::Test_Credentials::cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - alternative_server_certificate
    - BOTAN_UNUSED
    - server_certificate
    - client_certificate
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> cert_chain(const std::vector<std::string>&
      cert_key_types,\n                                                      const
      std::vector<AlgorithmIdentifier>& cert_signature_schemes,\n                                                      const
      std::string& type,\n                                                      const
      std::string& context) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:412,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:413,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key_types'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: Botan_Tests::Test_Credentials::find_raw_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - client_raw_public_key_pair
    - server_raw_public_key_pair
    linkageType: ''
    returnType: std::shared_ptr<Public_Key>
    signature: "std::shared_ptr<Public_Key> find_raw_public_key(const std::vector<std::string>&
      key_types,\n                                                      const std::string&
      type,\n                                                      const std::string&
      context) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' cert'
    - ' type'
    - ' context'
    argTypes:
    - Botan::X509_Certificate
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: Botan_Tests::Test_Credentials::private_key_for
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      cert,\n                                                          const std::string&
      type,\n                                                          const std::string&
      context) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:436,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:438,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:438,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:439,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:439,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:441,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:441,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' raw_public_key'
    - ' type'
    - ' context'
    argTypes:
    - Public_Key
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 446
    functionName: Botan_Tests::Test_Credentials::private_key_for
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::emplace_back
    - BOTAN_UNUSED
    - fingerprint_public
    - server_raw_public_key_pair
    - client_raw_public_key_pair
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Public_Key&
      raw_public_key,\n                                                          const
      std::string& type,\n                                                          const
      std::string& context) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:452,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:456,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:457,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:458,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:458,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: extract_master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:468,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:469,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:471,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ' identities'
    - ' prf'
    argTypes:
    - std::vector<std::string>
    - std::optional<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 473
    functionName: Botan_Tests::Test_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - extract_master_secret
    - empty
    - std::find
    - std::vector::emplace_back
    - has_value
    - begin
    - prf_algo
    - value
    - identity
    - ExternalPSK
    - end
    linkageType: ''
    returnType: std::vector<TLS::ExternalPSK>
    signature: "std::vector<TLS::ExternalPSK> find_preshared_keys(std::string_view
      /* host */,\n                                                        TLS::Connection_Side
      /* whoami */,\n                                                        const
      std::vector<std::string>& identities,\n                                                        const
      std::optional<std::string>& prf) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:486,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:488,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:489,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:490,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: Botan_Tests::RFC8448_Text_Policy::read_policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - Test_Error
    - std::string::c_str
    - Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    linkageType: ''
    returnType: Botan::TLS::Text_Policy
    signature: Botan::TLS::Text_Policy read_policy(const std::string& policy_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_Text_Policy::read_policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 498
    functionName: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::read_policy
    linkageType: ''
    returnType: void
    signature: void RFC8448_Text_Policy(const std::string& policy_file, bool rfc8448
      = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:502,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:521,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:522,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:523,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 526
    functionName: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    linkageType: ''
    returnType: std::vector<Botan::TLS::Signature_Scheme>
    signature: std::vector<Botan::TLS::Signature_Scheme> allowed_signature_schemes()
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:533,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:535,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:537,1
    - Dst: value_exists
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:538,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' supported_by_peer'
    - ' offered_by_peer'
    argTypes:
    - std::vector<Group_Params>
    - std::vector<Group_Params>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 542
    functionName: Botan_Tests::RFC8448_Text_Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - BOTAN_UNUSED
    - value_exists
    - key_exchange_groups
    - std::find_if
    - auto::end
    linkageType: ''
    returnType: Named_Group
    signature: "Named_Group choose_key_exchange_group(const std::vector<Group_Params>&
      supported_by_peer,\n                                            const std::vector<Group_Params>&
      offered_by_peer) const override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:557,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:557,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:558,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:558,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:561,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:561,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:562,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 567
    functionName: Botan_Tests::RFC8448_Session_Manager::find_by_handle
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 6
    functionsReached:
    - handle::id
    - handle::ticket
    - ticket
    - id
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) find_by_handle(const Session_Handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Botan::Null_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 570
    functionName: Botan_Tests::RFC8448_Session_Manager::RFC8448_Session_Manager
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Botan::Null_RNG>
    linkageType: ''
    returnType: void
    signature: void RFC8448_Session_Manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 572
    functionName: '& all_sessions() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> & all_sessions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 576
    functionName: Botan_Tests::RFC8448_Session_Manager::store
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void store(const Session& session, const Session_Handle& handle) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:585,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:586,1
    - Dst: front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: Botan_Tests::RFC8448_Session_Manager::establish
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - front
    - Test_Error
    - master_secret
    - size
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> establish(const Session& session,\n
      \                                             const std::optional<Session_ID>&
      /*session*/,\n                                              bool /*no_ticket*/)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:598,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 604
    functionName: Botan_Tests::RFC8448_Session_Manager::retrieve_one
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    functionsReached:
    - end
    - std::find_if
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    - begin
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> retrieve_one(const Session_Handle& handle) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:610,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 616
    functionName: Botan_Tests::RFC8448_Session_Manager::find_some
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - server_info
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find_some(const Server_Information&
      info,\n                                                 const size_t /*max_sessions_hint*/)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erase_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:618,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 618
    functionName: Botan_Tests::RFC8448_Session_Manager::remove
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - std::erase_if
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:621,1
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: Botan_Tests::RFC8448_Session_Manager::remove_all
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - size
    - clear
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Test_TLS_13_Callbacks>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:646,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:647,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:647,1
    - Dst: std::make_shared<Test_Credentials>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:648,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:648,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:649,1
    - Dst: std::make_shared<RFC8448_Session_Manager>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:650,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:651,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:652,1
    - Dst: store
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: std::get<Session>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:653,1
    - Dst: Botan::TLS::Session_Handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - rng_in
    - policy
    - modify_exts_cb
    - mock_signatures
    - timestamp
    - session_and_ticket
    - external_psk
    - use_alternative_server_certificate
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    - uint64_t
    - std::optional<std::pair<Session, Session_Ticket>>
    - std::optional<ExternalPSK>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 656
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<RFC8448_Session_Manager>
    - std::get<Session_Ticket>
    - std::make_shared<Test_TLS_13_Callbacks>
    - std::move
    - std::get<Session>
    - Botan::TLS::Session_Handle
    - std::optional<std::pair<Session, Session_Ticket>>::has_value
    - std::make_shared<Test_Credentials>
    - std::optional<std::pair<Session, Session_Ticket>>::value
    - store
    linkageType: ''
    returnType: void
    signature: "void TLS_Context(std::shared_ptr<Botan::RandomNumberGenerator> rng_in,\n
      \                 std::shared_ptr<const RFC8448_Text_Policy> policy,\n                  Modify_Exts_Fn
      modify_exts_cb,\n                  std::vector<MockSignature> mock_signatures,\n
      \                 uint64_t timestamp,\n                  std::optional<std::pair<Session,
      Session_Ticket>> session_and_ticket,\n                  std::optional<ExternalPSK>
      external_psk,\n                  bool use_alternative_server_certificate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 659
    functionName: ~TLS_Context()
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TLS_Context()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 661
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Context(TLS_Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 662
    functionName: '& operator=(const TLS_Context&)'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Context
    signature: TLS_Context & operator=(const TLS_Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 664
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Context(TLS_Context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 665
    functionName: '& operator=(TLS_Context&&)'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Context
    signature: TLS_Context & operator=(TLS_Context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 667
    functionName: Botan_Tests::TLS_Context::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::TLS_Context::pull_send_buffer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 669
    functionName: Botan_Tests::TLS_Context::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::TLS_Context::pull_receive_buffer
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pull_receive_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_Context::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 671
    functionName: Botan_Tests::TLS_Context::last_received_seq_no
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::TLS_Context::last_received_seq_no
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t last_received_seq_no() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:681,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:684,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:684,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:691,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:693,1
    - Dst: reset_callback_invocation_counters
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:696,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ' result'
    - ' context'
    - ' callback_names'
    argTypes:
    - Test::Result
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 697
    functionName: Botan_Tests::TLS_Context::check_callback_invocations
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::find
    - cbegin
    - contains
    - callback_invocations
    - cend
    - test_is_true
    - at
    - reset_callback_invocation_counters
    linkageType: ''
    returnType: void
    signature: "void check_callback_invocations(Test::Result& result,\n                                      const
      std::string& context,\n                                      const std::vector<std::string>&
      callback_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: all_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 699
    functionName: '& stored_sessions() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - all_sessions
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> & stored_sessions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 701
    functionName: '& certs_verified() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> & certs_verified() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 703
    functionName: '& psk_identity_negotiated() const'
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & psk_identity_negotiated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: Botan_Tests::TLS_Context::observed_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) observed_handshake_messages() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:730,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:731,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:732,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:733,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:735,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - rng_in
    - policy
    - timestamp
    - modify_exts_cb
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - uint64_t
    - Modify_Exts_Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 744
    functionName: Botan_Tests::Client_Context::Client_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Server_Information
    linkageType: ''
    returnType: void
    signature: "void Client_Context(std::shared_ptr<Botan::RandomNumberGenerator>
      rng_in,\n                     std::shared_ptr<const RFC8448_Text_Policy> policy,\n
      \                    uint64_t timestamp,\n                     Modify_Exts_Fn
      modify_exts_cb,\n                     std::optional<std::pair<Session, Session_Ticket>>
      session_and_ticket = std::nullopt,\n                     std::optional<ExternalPSK>
      external_psk = std::nullopt,\n                     std::vector<MockSignature>
      mock_signatures = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Client_Context::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan_Tests::Client_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::Client_Context::send
    - size
    - data
    linkageType: ''
    returnType: void
    signature: void send(const std::vector<uint8_t>& data) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:762,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:763,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:764,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:766,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - rng
    - policy
    - timestamp
    - modify_exts_cb
    - mock_signatures
    argTypes:
    - std::shared_ptr<Botan::RandomNumberGenerator>
    - std::shared_ptr<const RFC8448_Text_Policy>
    - uint64_t
    - Modify_Exts_Fn
    - std::vector<MockSignature>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 769
    functionName: Botan_Tests::Server_Context::Server_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Server_Context(std::shared_ptr<Botan::RandomNumberGenerator>
      rng,\n                     std::shared_ptr<const RFC8448_Text_Policy> policy,\n
      \                    uint64_t timestamp,\n                     Modify_Exts_Fn
      modify_exts_cb,\n                     std::vector<MockSignature> mock_signatures,\n
      \                    bool use_alternative_server_certificate = false,\n                     std::optional<std::pair<Session,
      Session_Ticket>> session_and_ticket = std::nullopt,\n                     std::optional<ExternalPSK>
      external_psk = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Server_Context::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: Botan_Tests::Server_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::Server_Context::send
    - data
    - size
    linkageType: ''
    returnType: void
    signature: void send(const std::vector<uint8_t>& data) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:778,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:780,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' exts'
    - ' expected_order'
    argTypes:
    - Botan::TLS::Extensions
    - std::vector<Botan::TLS::Extension_Code>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 783
    functionName: Botan_Tests::sort_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - std::move
    - add
    - take
    linkageType: ''
    returnType: void
    signature: void sort_extensions(Botan::TLS::Extensions& exts, const std::vector<Botan::TLS::Extension_Code>&
      expected_order)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:793,1
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:806,1
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' exts'
    - side
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 822
    functionName: Botan_Tests::sort_rfc8448_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Padding::static_type
    - Botan_Tests::sort_extensions
    linkageType: ''
    returnType: void
    signature: "void sort_rfc8448_extensions(Botan::TLS::Extensions& exts,\n                             Botan::TLS::Connection_Side
      side,\n                             Botan::TLS::Handshake_Type /*type*/ = Botan::TLS::Handshake_Type::ClientHello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:827,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 828
    functionName: Botan_Tests::add_renegotiation_extension
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - add
    - Renegotiation_Extension::Renegotiation_Extension
    linkageType: ''
    returnType: void
    signature: void add_renegotiation_extension(Botan::TLS::Extensions& exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:831,1
    - Dst: Botan::TLS::EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 832
    functionName: Botan_Tests::add_early_data_indication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::EarlyDataIndication::EarlyDataIndication
    - add
    linkageType: ''
    returnType: void
    signature: void add_early_data_indication(Botan::TLS::Extensions& exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:835,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:835,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:836,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 837
    functionName: Botan_Tests::strip_message_header
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - end
    - size
    - begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> strip_message_header(const std::vector<uint8_t>&
      msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:843,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:843,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:844,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:848,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 852
    functionName: Botan_Tests::make_mock_signatures
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - mock
    - std::vector::push_back
    - get_opt_bin
    - has_key
    linkageType: ''
    returnType: std::vector<MockSignature>
    signature: std::vector<MockSignature> make_mock_signatures(const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 943
    functionName: Botan_Tests::Test_TLS_RFC8448::Test_TLS_RFC8448
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_TLS_RFC8448()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: simple_1_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:947,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: resumed_handshake_with_0_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:949,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:951,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:951,1
    - Dst: hello_retry_request
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:952,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: middlebox_compatibility
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:958,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:958,1
    - Dst: externally_provided_psk_with_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:959,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:961,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:961,1
    - Dst: raw_public_key_with_client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:962,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:964,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 966
    functionName: Botan_Tests::Test_TLS_RFC8448::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - side
    - Botan::Path_Validation_Result::Path_Validation_Result
    - middlebox_compatibility
    - resumed_handshake_with_0_rtt
    - simple_1_rtt
    - hello_retry_request
    - client_authentication
    - externally_provided_psk_with_ephemeral_key
    - raw_public_key_with_client_authentication
    - Botan_Tests::Test::Result::Failure
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 971
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::side
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string side() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:974,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:978,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:978,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:987,1
    - Dst: Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:987,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:989,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:990,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:997,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:999,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1000,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1001,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1004,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1004,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1005,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1015,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1019,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1021,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1022,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1024,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1024,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1025,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1025,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1027,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1028,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1030,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1031,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1037,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1037,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1038,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1038,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1041,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1043,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1044,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1044,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1046,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1060,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1060,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1061,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1062,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1062,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1063,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1063,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1065,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1066,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1067,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1070,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1072,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1073,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1073,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1074,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1074,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1076,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1081,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1081,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1082,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1083,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1083,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1084,1
    - Dst: DER_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1085,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1086,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1090,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1092,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1093,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1093,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1095,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1097,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1098,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1099,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1102,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1104,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1105,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1105,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1107,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1109,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1110,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1110,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1111,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1111,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1114,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1116,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1117,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1119,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1120,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1121,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1123,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1123,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1124,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1127,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 59
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 1130
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::unique_ptr::stored_sessions
    - ticket
    - DER_encode
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::client::received_data
    - test_u64_eq
    - std::make_unique<Client_Context>
    - std::make_shared<Fixed_Output_RNG>
    - test_bin_eq
    - auto::end
    - get_req_bin
    - std::unique_ptr::client::is_active
    - std::unique_ptr::send
    - auto::begin
    - require
    - server_certificate
    - add
    - std::unique_ptr::certs_verified
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - test_sz_eq
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - add_renegotiation_extension
    - Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> simple_1_rtt(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1133,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1137,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1137,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1143,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1143,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1145,1
    - Dst: add_early_data_indication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1151,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1152,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1159,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1161,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1162,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1163,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1164,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1166,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1166,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1167,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1167,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1169,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1169,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1170,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1180,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1181,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1188
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - Padding::Padding
    - add
    - sort_rfc8448_extensions
    - add_early_data_indication
    - std::unique_ptr::pull_send_buffer
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - add_renegotiation_extension
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> resumed_handshake_with_0_rtt(const VarMap&
      vars) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1198,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1204,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1204,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1207,1
    - Dst: Botan_Tests::Test_TLS_RFC8448_Client::rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1212,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1213,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1218,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1218,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1223,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1225,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1225,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1226,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1229,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1229,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1231,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1241,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1242,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1242,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1245,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1247,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1248,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1248,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1250,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1261,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1262,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1262,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1265,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1267,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1268,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1268,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1270,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1279,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1281,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1282,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1282,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1284,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1299,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1300,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1300,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1303,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1305,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1306,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1307,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1309,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1310,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1310,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1312,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1312,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1313,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1316,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1319
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - Botan_Tests::Test_TLS_RFC8448_Client::rng
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - Padding::Padding
    - require
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - add_entropy
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1322,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1326,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1326,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1332,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1333,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1340,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1342,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1342,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1343,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1344,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1348,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1350,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1360,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1361,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1361,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1364,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1366,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1367,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1367,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1369,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1378,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1380,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1381,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1381,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1406,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1407,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1407,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1410,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1412,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1413,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1414,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1415,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1415,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1417,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1423,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1423,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1424,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1424,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1430
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - require
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::client::close
    - add_entropy
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> client_authentication(const VarMap& vars)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1433,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1438,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1438,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1444,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1445,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1452,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1455,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1455,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1456,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1457,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1460,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1462,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1473,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1475,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1476,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1477,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1477,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1479,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1481,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1501,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1502,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1504,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1506,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1506,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1510,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1512,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1513,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1515,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1516,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1516,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1518,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1518,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1519,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1519,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1520,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1520,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1522,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1522,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1524,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1527
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::client::is_active
    - Botan::concat
    - require
    - sort_rfc8448_extensions
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - add_renegotiation_extension
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> middlebox_compatibility(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1530,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1534,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1534,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1542,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1558,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1560,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1561,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1562,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1563,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1566,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1566,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1567,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1568,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1568,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1570,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1570,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1571,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1581,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1582,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1582,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1585,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1587,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1588,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1589,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1590,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1596,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1596,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1597,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1597,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1600,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1603,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1604,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1604,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1606,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1615,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1616,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1616,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1619,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1620,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1620,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1623,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1625,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1626,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1626,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1628,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1630,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1631,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1632,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1635,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1637,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1638,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1638,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1640,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1642,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1643,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1643,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1647,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1649,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1650,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1652,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1653,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1653,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1654,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1656,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1656,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1657,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1660,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1663
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::externally_provided_psk_with_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - test_u64_eq
    - std::make_unique<Client_Context>
    - sort_extensions
    - test_bin_eq
    - ExternalPSK
    - get_req_bin
    - std::unique_ptr::client::is_active
    - std::unique_ptr::send
    - require
    - lock
    - get_req_str
    - std::unique_ptr::pull_send_buffer
    - std::unique_ptr::client::close
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::client::is_handshake_complete
    - std::unique_ptr::psk_identity_negotiated
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> externally_provided_psk_with_ephemeral_key(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1666,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1670,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1670,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1679,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1696,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1698,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1698,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1699,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1700,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1704,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1706,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1716,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1717,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1717,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1720,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1722,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1723,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1723,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1725,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1734,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1736,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1737,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1737,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1739,1
    - Dst: std::unique_ptr::client::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1760,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1761,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1763,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1763,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1767,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1768,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1768,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1771,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1773,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1774,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1775,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1776,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1776,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1778,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1784,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1784,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1785,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1785,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1665
    functionDepth: 1
    functionLinenumber: 1665
    functionLinenumberEnd: 1791
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::raw_public_key_with_client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - std::unique_ptr::client::is_closed
    - CHECK
    - test_is_true
    - auto::fingerprint_public
    - server_raw_public_key_pair
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - std::unique_ptr::client::received_data
    - std::make_unique<Client_Context>
    - sort_extensions
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::client::peer_raw_public_key
    - require
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::client::close
    - add_entropy
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> raw_public_key_with_client_authentication(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1796
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::side
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string side() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1799,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1804,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1804,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1809,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1815,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1815,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1817,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1820,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1821,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1822,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1823,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1825,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1827,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1827,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1828,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1828,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1829,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1829,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1831,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1831,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1833,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1851,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1853,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1854,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1856,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1857,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1858,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1858,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1859,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1860,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1862,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1863,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1864,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1864,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1865,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1866,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1867,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1867,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1869,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1870,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1871,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1871,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1872,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1879,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1879,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1880,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1880,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1883,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1885,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1886,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1886,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1888,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1896,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1898,1
    - Dst: std::unique_ptr::server::send_new_session_tickets
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1899,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1901,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1903,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1912,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1914,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1915,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1916,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1916,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1919,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1921,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1922,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1922,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1923,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1925,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1926,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1926,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1927,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1927,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1930,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1932,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1933,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1933,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1935,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1937,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1938,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1939,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1942,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1944,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1945,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1945,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1947,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1952,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1952,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1955,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1957,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1958,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1960,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1960,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1961,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1961,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1962,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1962,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1963,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1964,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1798
    functionDepth: 2
    functionLinenumber: 1798
    functionLinenumberEnd: 1968
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - EarlyDataIndication::EarlyDataIndication
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::unique_ptr::server::send_new_session_tickets
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_u64_eq
    - test_bin_eq
    - get_req_bin
    - std::unique_ptr::send
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - test_sz_eq
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - strip_message_header
    - std::unique_ptr::server::close
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> simple_1_rtt(const VarMap& vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1971,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1975,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1975,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1980,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1986,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1986,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1988,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1991,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1992,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1993,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1994,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1996,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1998,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1998,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1999,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1999,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2000,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2000,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2002,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2002,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2004,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2021,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2023,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2024,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2026,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2027,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2028,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2028,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2029,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2030,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2031,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2031,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2033,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2034,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2035,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2035,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2036,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2043,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2043,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2044,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 1970
    functionDepth: 2
    functionLinenumber: 1970
    functionLinenumberEnd: 2051
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - EarlyDataIndication::EarlyDataIndication
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - TestSession::TestSession
    - std::make_unique<Fixed_Output_RNG>
    - strip_message_header
    - Botan::TLS::Session_Ticket
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> resumed_handshake_with_0_rtt(const VarMap&
      vars) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_RFC8448_Server::rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2055,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2056,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2060,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2060,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2065,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2072,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: Cookie::Cookie
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2075,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2078,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2078,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2079,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2080,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2082,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2083,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2083,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2085,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2085,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2087,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2096,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2098,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2099,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2100,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2101,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2102,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2102,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2103,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2103,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2106,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2108,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2109,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2109,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2111,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2129,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2131,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2132,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2134,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2135,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2136,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2136,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2137,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2138,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2139,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2139,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2140,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2141,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2143,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2144,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2145,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2145,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2146,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2147,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2148,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2148,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2150,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2151,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2152,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2152,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2153,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2154,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2154,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2155,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2156,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2159,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2161,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2164,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2171,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2171,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2172,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2172,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2175,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2177,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2178,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2178,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2180,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2185,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2185,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2188,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2190,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2191,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2193,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2193,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2194,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2194,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2195,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2195,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2196,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2197,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2053
    functionDepth: 1
    functionLinenumber: 2053
    functionLinenumberEnd: 2202
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - Botan_Tests::Test_TLS_RFC8448_Server::rng
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - Cookie::Cookie
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - add
    - sort_rfc8448_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> hello_retry_request(const VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2205,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2209,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2209,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2214,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2216,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2217,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2218,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2219,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2221,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2223,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2223,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2225,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2225,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2227,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2247,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2249,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2250,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2252,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2253,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2254,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2254,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2255,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2256,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2257,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2257,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2258,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2259,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2260,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2260,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2261,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2262,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2264,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2265,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2267,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2268,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2269,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2269,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2271,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2272,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2273,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2273,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2274,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2276,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2276,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2277,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2277,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2278,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2279,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2282,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2284,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2289,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2289,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2291,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2303,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2304,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2305,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2307,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2307,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2308,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2308,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2311,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2313,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2314,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2314,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2321,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2321,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2324,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2326,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2327,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2329,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2329,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2330,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2330,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2331,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2331,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2332,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2333,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2204
    functionDepth: 1
    functionLinenumber: 2204
    functionLinenumberEnd: 2338
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - client_certificate
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - std::unique_ptr::server::peer_cert_chain
    - auto::empty
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> client_authentication(const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2341,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2345,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2345,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2350,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2353,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2353,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2354,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2355,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2357,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2358,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2358,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2360,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2360,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2362,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2380,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2382,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2383,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2385,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2386,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2387,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2387,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2388,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2389,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2390,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2390,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2391,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2392,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2393,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2393,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2394,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2395,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2396,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2396,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2397,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2398,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2399,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2399,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2402,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2403,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2404,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2404,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2405,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2407,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2407,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2408,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2409,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2412,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2414,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2417,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2424,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2424,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2425,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2425,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2428,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2430,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2431,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2431,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2433,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2438,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2438,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2441,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2443,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2444,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2446,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2446,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2447,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2447,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2448,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2448,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2449,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2450,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2340
    functionDepth: 1
    functionLinenumber: 2340
    functionLinenumberEnd: 2455
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> middlebox_compatibility(const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2458,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2462,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2462,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2467,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2476,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2483,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2492,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2493,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2494,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2495,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2497,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2500,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2500,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2501,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2502,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2502,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2503,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2503,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2505,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2505,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2507,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2521,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2523,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2524,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2526,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2527,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2529,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2530,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2532,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2533,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2534,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2534,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2536,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2537,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2538,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2538,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2539,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2542,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2543,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2546,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2548,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2549,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2549,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2550,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2551,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2551,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2553,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2561,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2563,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2564,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2564,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2565,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2567,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2568,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2568,1
    - Dst: test_u64_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2569,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2569,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2571,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2571,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2572,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2573,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2574,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2575,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2578,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2580,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2581,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2581,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2583,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2586,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2586,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2587,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2587,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2588,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2588,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2590,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2592,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2592,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2593,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2593,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2594,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2594,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2595,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2596,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2457
    functionDepth: 1
    functionLinenumber: 2457
    functionLinenumberEnd: 2600
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::externally_provided_psk_with_ephemeral_key
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - at
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - test_u64_eq
    - sort_extensions
    - test_bin_eq
    - ExternalPSK
    - get_req_bin
    - std::unique_ptr::send
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - get_opt_bin
    - lock
    - std::unique_ptr::server::is_handshake_complete
    - get_req_str
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::unique_ptr::psk_identity_negotiated
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> externally_provided_psk_with_ephemeral_key(const
      VarMap& vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2603,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2607,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2607,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2616,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2625,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2636,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2638,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2639,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2640,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2642,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2643,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2643,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2645,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2645,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2647,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2667,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2669,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2670,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2672,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2673,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2674,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2674,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2675,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2676,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2677,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2677,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2678,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2679,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2680,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2680,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2681,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2682,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2684,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2685,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2687,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2688,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2689,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2689,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2691,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2692,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2693,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2693,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2694,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2696,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2696,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2697,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2697,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2698,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2699,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2702,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2704,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2709,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2709,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2711,1
    - Dst: std::unique_ptr::server::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2723,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2724,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2726,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2726,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2728,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2728,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2729,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2729,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2732,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2734,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2735,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2735,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2737,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2742,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2742,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2745,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2747,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2748,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2750,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2750,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2751,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2751,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2752,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2752,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2753,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2754,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2602
    functionDepth: 1
    functionLinenumber: 2602
    functionLinenumberEnd: 2758
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::raw_public_key_with_client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::check_callback_invocations
    - get_req_u64
    - CHECK
    - test_is_true
    - auto::fingerprint_public
    - at
    - client_raw_public_key_pair
    - std::unique_ptr::server::is_active
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::move
    - sort_extensions
    - test_bin_eq
    - get_req_bin
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::received_data
    - std::unique_ptr::server::is_closed
    - require
    - std::unique_ptr::server::peer_cert_chain
    - get_opt_bin
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::pull_send_buffer
    - make_mock_signatures
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::server::peer_raw_public_key
    - add_entropy
    - std::unique_ptr::server::close
    - strip_message_header
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> raw_public_key_with_client_authentication(const
      VarMap& vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_Tests::RFC6979_KAT_Tests::RFC6979_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rfc6979.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6979_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:27,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:28,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_rfc6979.cpp:32,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rfc6979.cpp:35,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:39,1
    - Dst: Botan::generate_rfc6979_nonce
      Src: /src/botan/src/tests/test_rfc6979.cpp:39,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_rfc6979.cpp:41,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:43,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:43,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_rfc6979.cpp:44,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:44,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:45,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' hash'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 48
    functionName: Botan_Tests::RFC6979_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rfc6979.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_note
    - Test::Result::test_bn_eq
    - Botan::RFC6979_Nonce_Generator::nonce_for
    - Botan::HashFunction::create
    - BigInt::bits
    - get_req_bn
    - Test::Result::test_bn_ne
    - Botan::generate_rfc6979_nonce
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_Tests::RFC6979_KAT_Tests::RFC6979_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rfc6979.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6979_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:27,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:28,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_rfc6979.cpp:32,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rfc6979.cpp:35,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:39,1
    - Dst: Botan::generate_rfc6979_nonce
      Src: /src/botan/src/tests/test_rfc6979.cpp:39,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_rfc6979.cpp:41,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:43,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:43,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_rfc6979.cpp:44,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:44,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:45,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' hash'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 48
    functionName: Botan_Tests::RFC6979_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rfc6979.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_note
    - Test::Result::test_bn_eq
    - Botan::RFC6979_Nonce_Generator::nonce_for
    - Botan::HashFunction::create
    - BigInt::bits
    - get_req_bn
    - Test::Result::test_bn_ne
    - Botan::generate_rfc6979_nonce
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_Tests::RFC6979_KAT_Tests::RFC6979_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rfc6979.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6979_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:27,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:28,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_rfc6979.cpp:32,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rfc6979.cpp:35,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:39,1
    - Dst: Botan::generate_rfc6979_nonce
      Src: /src/botan/src/tests/test_rfc6979.cpp:39,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_rfc6979.cpp:41,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:43,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:43,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_rfc6979.cpp:44,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:44,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:45,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' hash'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 48
    functionName: Botan_Tests::RFC6979_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rfc6979.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_note
    - Test::Result::test_bn_eq
    - Botan::RFC6979_Nonce_Generator::nonce_for
    - Botan::HashFunction::create
    - BigInt::bits
    - get_req_bn
    - Test::Result::test_bn_ne
    - Botan::generate_rfc6979_nonce
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_Tests::RFC6979_KAT_Tests::RFC6979_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_rfc6979.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6979_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:25,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:26,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:27,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rfc6979.cpp:28,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_rfc6979.cpp:32,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rfc6979.cpp:35,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:39,1
    - Dst: Botan::generate_rfc6979_nonce
      Src: /src/botan/src/tests/test_rfc6979.cpp:39,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_rfc6979.cpp:41,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:43,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:43,1
    - Dst: Test::Result::test_bn_ne
      Src: /src/botan/src/tests/test_rfc6979.cpp:44,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:44,1
    - Dst: Test::Result::test_bn_eq
      Src: /src/botan/src/tests/test_rfc6979.cpp:45,1
    - Dst: Botan::RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/tests/test_rfc6979.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' hash'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 48
    functionName: Botan_Tests::RFC6979_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rfc6979.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_note
    - Test::Result::test_bn_eq
    - Botan::RFC6979_Nonce_Generator::nonce_for
    - Botan::HashFunction::create
    - BigInt::bits
    - get_req_bn
    - Test::Result::test_bn_ne
    - Botan::generate_rfc6979_nonce
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& hash, const VarMap& vars)
      override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:23,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:23,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:24,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:24,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:25,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:25,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:27,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:27,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:28,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:28,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:29,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:29,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:33,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:33,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:35,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:35,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:36,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:36,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:37,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:37,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:39,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:39,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:40,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:40,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:41,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:41,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:43,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:43,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:44,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:44,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:45,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:45,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:46,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:46,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ct_utils.cpp:52,1
    - Dst: Botan_Tests::CT_Mask_Tests::rng
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: Botan::CT::copy_output
      Src: /src/botan/src/tests/test_ct_utils.cpp:59,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:62,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:65,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:65,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:67,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:68,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 80
    functionName: Botan_Tests::CT_Mask_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Choice::from_int
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - auto::value
    - std::vector::size
    - std::vector::data
    - Botan::bigint_ct_is_lt
    - Botan::Sodium::sodium_is_zero
    - Botan::CT::copy_output
    - auto::has_value
    - Test::Result::test_sz_eq
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - Test::Result::test_u8_eq
    - Botan_Tests::CT_Mask_Tests::rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:90,1
    - Dst: Botan::CT::Choice::yes
      Src: /src/botan/src/tests/test_ct_utils.cpp:90,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:91,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_ct_utils.cpp:91,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:93,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:94,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:95,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: Botan_Tests::CT_Choice_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Choice::yes
    - Test::Result::test_is_false
    - Botan_Tests::CT_Choice_Tests::test_choice_from_int
    - Botan::CT::Choice::no
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ct_utils.cpp:104,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:107,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:107,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:109,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:109,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:110,1
    - Dst: auto::as_bool
      Src: /src/botan/src/tests/test_ct_utils.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type_name
    - ' result'
    argTypes:
    - char*
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: Botan_Tests::CT_Choice_Tests::test_choice_from_int
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 1
    functionsReached:
    - test_is_false
    - Botan::fmt
    - auto::as_bool
    - test_is_true
    - Botan::CT::Choice::from_int<T>
    - static_cast<T>
    linkageType: ''
    returnType: void
    signature: void test_choice_from_int(const char* type_name, Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/tests/test_ct_utils.cpp:129,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_ct_utils.cpp:132,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:145,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:146,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:147,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: Botan_Tests::CT_Option_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::conditional_assign_mem
    - std::memcmp
    - Botan_Tests::CT_Option_Tests::test_ct_option
    - Val
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_Tests::CT_Option_Tests::Val::Val
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Val()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_Tests::CT_Option_Tests::Val::Val
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Val(uint8_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/tests/test_ct_utils.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - choice
    - ' other'
    argTypes:
    - Botan::CT::Choice
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan_Tests::CT_Option_Tests::Val::conditional_assign
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::conditional_assign_mem
    linkageType: ''
    returnType: void
    signature: void conditional_assign(Botan::CT::Choice choice, const Val& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_ct_utils.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: operator==(const Val& other) const
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Val& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: '& operator++()'
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Val
    signature: Val & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Option<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:156,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:157,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:157,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ct_utils.cpp:158,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:158,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:159,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:159,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:160,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:160,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:161,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:162,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: Botan::CT::Option<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:172,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:173,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:174,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:175,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:175,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:178,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:179,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:179,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    - Dst: next
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ' result'
    - ' value'
    - ' value2'
    argTypes:
    - Test::Result
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 182
    functionName: Botan_Tests::CT_Option_Tests::test_ct_option
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 1
    functionsReached:
    - test_is_false
    - auto::as_optional_vartime
    - test_is_true
    - test_throws
    - auto::has_value
    - Botan::CT::Option<T>
    - auto::value_or
    - auto::transform
    - auto::value
    - next
    linkageType: ''
    returnType: void
    signature: void test_ct_option(Test::Result& result, const T& value, const T&
      value2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: Botan_Tests::_const_time_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::_const_time_unpoison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:198,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:201,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:203,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:205,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:216,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:217,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:218,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:219,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:220,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:223,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:231,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:241,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:248,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::all_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: Botan::CT::unpoison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:251,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:255,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:258,1
    - Dst: Botan::CT::driveby_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:261,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:262,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:263,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:264,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 267
    functionName: Botan_Tests::test_higher_level_ct_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    - Botan_Tests::CHECK
    - Botan::CT::poison_range
    - Botan::CT::driveby_poison
    - std::vector::end
    - std::move
    - test_is_true
    - test_bool_eq
    - Botan::CT::poison
    - std::vector::begin
    - Botan::CT::poison_all
    - std::all_of
    - Botan::CT::driveby_unpoison
    - std::none_of
    - Botan::CT::unpoison
    - Botan::CT::unpoison_range
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_higher_level_ct_poison()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:23,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:23,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:24,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:24,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:25,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:25,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:27,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:27,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:28,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:28,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:29,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:29,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:33,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:33,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:35,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:35,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:36,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:36,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:37,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:37,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:39,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:39,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:40,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:40,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:41,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:41,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:43,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:43,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:44,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:44,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:45,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:45,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:46,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:46,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ct_utils.cpp:52,1
    - Dst: Botan_Tests::CT_Mask_Tests::rng
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: Botan::CT::copy_output
      Src: /src/botan/src/tests/test_ct_utils.cpp:59,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:62,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:65,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:65,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:67,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:68,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 80
    functionName: Botan_Tests::CT_Mask_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Choice::from_int
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - auto::value
    - std::vector::size
    - std::vector::data
    - Botan::bigint_ct_is_lt
    - Botan::Sodium::sodium_is_zero
    - Botan::CT::copy_output
    - auto::has_value
    - Test::Result::test_sz_eq
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - Test::Result::test_u8_eq
    - Botan_Tests::CT_Mask_Tests::rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:90,1
    - Dst: Botan::CT::Choice::yes
      Src: /src/botan/src/tests/test_ct_utils.cpp:90,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:91,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_ct_utils.cpp:91,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:93,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:94,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:95,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: Botan_Tests::CT_Choice_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Choice::yes
    - Test::Result::test_is_false
    - Botan_Tests::CT_Choice_Tests::test_choice_from_int
    - Botan::CT::Choice::no
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ct_utils.cpp:104,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:107,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:107,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:109,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:109,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:110,1
    - Dst: auto::as_bool
      Src: /src/botan/src/tests/test_ct_utils.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type_name
    - ' result'
    argTypes:
    - char*
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: Botan_Tests::CT_Choice_Tests::test_choice_from_int
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 2
    functionsReached:
    - test_is_false
    - Botan::fmt
    - auto::as_bool
    - test_is_true
    - Botan::CT::Choice::from_int<T>
    - static_cast<T>
    linkageType: ''
    returnType: void
    signature: void test_choice_from_int(const char* type_name, Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/tests/test_ct_utils.cpp:129,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_ct_utils.cpp:132,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:145,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:146,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:147,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: Botan_Tests::CT_Option_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::conditional_assign_mem
    - std::memcmp
    - Botan_Tests::CT_Option_Tests::test_ct_option
    - Val
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_Tests::CT_Option_Tests::Val::Val
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Val()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_Tests::CT_Option_Tests::Val::Val
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Val(uint8_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/tests/test_ct_utils.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - choice
    - ' other'
    argTypes:
    - Botan::CT::Choice
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan_Tests::CT_Option_Tests::Val::conditional_assign
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::conditional_assign_mem
    linkageType: ''
    returnType: void
    signature: void conditional_assign(Botan::CT::Choice choice, const Val& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_ct_utils.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: operator==(const Val& other) const
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Val& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: '& operator++()'
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Val
    signature: Val & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Option<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:156,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:157,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:157,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ct_utils.cpp:158,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:158,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:159,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:159,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:160,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:160,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:161,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:162,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: Botan::CT::Option<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:172,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:173,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:174,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:175,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:175,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:178,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:179,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:179,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    - Dst: next
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ' result'
    - ' value'
    - ' value2'
    argTypes:
    - Test::Result
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 182
    functionName: Botan_Tests::CT_Option_Tests::test_ct_option
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 2
    functionsReached:
    - test_is_false
    - auto::as_optional_vartime
    - test_is_true
    - test_throws
    - auto::has_value
    - Botan::CT::Option<T>
    - auto::value_or
    - auto::transform
    - auto::value
    - next
    linkageType: ''
    returnType: void
    signature: void test_ct_option(Test::Result& result, const T& value, const T&
      value2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: Botan_Tests::_const_time_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::_const_time_unpoison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:198,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:201,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:203,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:205,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:216,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:217,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:218,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:219,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:220,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:223,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:231,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:241,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:248,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::all_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: Botan::CT::unpoison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:251,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:255,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:258,1
    - Dst: Botan::CT::driveby_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:261,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:262,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:263,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:264,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 267
    functionName: Botan_Tests::test_higher_level_ct_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    - Botan_Tests::CHECK
    - Botan::CT::poison_range
    - Botan::CT::driveby_poison
    - std::vector::end
    - std::move
    - test_is_true
    - test_bool_eq
    - Botan::CT::poison
    - std::vector::begin
    - Botan::CT::poison_all
    - std::all_of
    - Botan::CT::driveby_unpoison
    - std::none_of
    - Botan::CT::unpoison
    - Botan::CT::unpoison_range
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_higher_level_ct_poison()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:23,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:23,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:24,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:24,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:25,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:25,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:27,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:27,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:28,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:28,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:29,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:29,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:33,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:33,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:35,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:35,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:36,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:36,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:37,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:37,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:39,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:39,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:40,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:40,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:41,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:41,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:43,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:43,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:44,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:44,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:45,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:45,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:46,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:46,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ct_utils.cpp:52,1
    - Dst: Botan_Tests::CT_Mask_Tests::rng
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: Botan::CT::copy_output
      Src: /src/botan/src/tests/test_ct_utils.cpp:59,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:62,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:65,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:65,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:67,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:68,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 80
    functionName: Botan_Tests::CT_Mask_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Choice::from_int
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - auto::value
    - std::vector::size
    - std::vector::data
    - Botan::bigint_ct_is_lt
    - Botan::Sodium::sodium_is_zero
    - Botan::CT::copy_output
    - auto::has_value
    - Test::Result::test_sz_eq
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - Test::Result::test_u8_eq
    - Botan_Tests::CT_Mask_Tests::rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:90,1
    - Dst: Botan::CT::Choice::yes
      Src: /src/botan/src/tests/test_ct_utils.cpp:90,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:91,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_ct_utils.cpp:91,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:93,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:94,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:95,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: Botan_Tests::CT_Choice_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Choice::yes
    - Test::Result::test_is_false
    - Botan_Tests::CT_Choice_Tests::test_choice_from_int
    - Botan::CT::Choice::no
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ct_utils.cpp:104,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:107,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:107,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:109,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:109,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:110,1
    - Dst: auto::as_bool
      Src: /src/botan/src/tests/test_ct_utils.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type_name
    - ' result'
    argTypes:
    - char*
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: Botan_Tests::CT_Choice_Tests::test_choice_from_int
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 3
    functionsReached:
    - test_is_false
    - Botan::fmt
    - auto::as_bool
    - test_is_true
    - Botan::CT::Choice::from_int<T>
    - static_cast<T>
    linkageType: ''
    returnType: void
    signature: void test_choice_from_int(const char* type_name, Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/tests/test_ct_utils.cpp:129,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_ct_utils.cpp:132,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:145,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:146,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:147,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: Botan_Tests::CT_Option_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::conditional_assign_mem
    - std::memcmp
    - Botan_Tests::CT_Option_Tests::test_ct_option
    - Val
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_Tests::CT_Option_Tests::Val::Val
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Val()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_Tests::CT_Option_Tests::Val::Val
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Val(uint8_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/tests/test_ct_utils.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - choice
    - ' other'
    argTypes:
    - Botan::CT::Choice
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan_Tests::CT_Option_Tests::Val::conditional_assign
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::conditional_assign_mem
    linkageType: ''
    returnType: void
    signature: void conditional_assign(Botan::CT::Choice choice, const Val& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_ct_utils.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: operator==(const Val& other) const
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Val& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: '& operator++()'
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Val
    signature: Val & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Option<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:156,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:157,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:157,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ct_utils.cpp:158,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:158,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:159,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:159,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:160,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:160,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:161,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:162,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: Botan::CT::Option<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:172,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:173,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:174,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:175,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:175,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:178,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:179,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:179,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    - Dst: next
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ' result'
    - ' value'
    - ' value2'
    argTypes:
    - Test::Result
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 182
    functionName: Botan_Tests::CT_Option_Tests::test_ct_option
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 3
    functionsReached:
    - test_is_false
    - auto::as_optional_vartime
    - test_is_true
    - test_throws
    - auto::has_value
    - Botan::CT::Option<T>
    - auto::value_or
    - auto::transform
    - auto::value
    - next
    linkageType: ''
    returnType: void
    signature: void test_ct_option(Test::Result& result, const T& value, const T&
      value2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: Botan_Tests::_const_time_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::_const_time_unpoison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:198,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:201,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:203,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:205,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:216,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:217,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:218,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:219,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:220,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:223,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:231,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:241,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:248,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::all_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: Botan::CT::unpoison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:251,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:255,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:258,1
    - Dst: Botan::CT::driveby_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:261,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:262,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:263,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:264,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 267
    functionName: Botan_Tests::test_higher_level_ct_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    - Botan_Tests::CHECK
    - Botan::CT::poison_range
    - Botan::CT::driveby_poison
    - std::vector::end
    - std::move
    - test_is_true
    - test_bool_eq
    - Botan::CT::poison
    - std::vector::begin
    - Botan::CT::poison_all
    - std::all_of
    - Botan::CT::driveby_unpoison
    - std::none_of
    - Botan::CT::unpoison
    - Botan::CT::unpoison_range
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_higher_level_ct_poison()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:23,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:23,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:24,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:24,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:25,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:25,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:27,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:27,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:28,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:28,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:29,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:29,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:33,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:33,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:35,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:35,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:36,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:36,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:37,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:37,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:39,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:39,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:40,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:40,1
    - Dst: Test::Result::test_u16_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:41,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:41,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:43,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:43,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:44,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:44,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:45,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:45,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:46,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:46,1
    - Dst: Test::Result::test_u32_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ct_utils.cpp:52,1
    - Dst: Botan_Tests::CT_Mask_Tests::rng
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:55,1
    - Dst: Botan::CT::copy_output
      Src: /src/botan/src/tests/test_ct_utils.cpp:59,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:62,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:65,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:65,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:67,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:68,1
    - Dst: Test::Result::test_u8_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 80
    functionName: Botan_Tests::CT_Mask_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Choice::from_int
    - static_cast<uint32_t>
    - Test::Result::test_u16_eq
    - auto::value
    - std::vector::size
    - std::vector::data
    - Botan::bigint_ct_is_lt
    - Botan::Sodium::sodium_is_zero
    - Botan::CT::copy_output
    - auto::has_value
    - Test::Result::test_sz_eq
    - Test::Result::test_u32_eq
    - Test::Result::test_is_true
    - Test::Result::test_u8_eq
    - Botan_Tests::CT_Mask_Tests::rng
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:90,1
    - Dst: Botan::CT::Choice::yes
      Src: /src/botan/src/tests/test_ct_utils.cpp:90,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:91,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_ct_utils.cpp:91,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:93,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:94,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:95,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: Botan_Tests::CT_Choice_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Choice::yes
    - Test::Result::test_is_false
    - Botan_Tests::CT_Choice_Tests::test_choice_from_int
    - Botan::CT::Choice::no
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ct_utils.cpp:104,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:107,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:107,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:109,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:109,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:110,1
    - Dst: auto::as_bool
      Src: /src/botan/src/tests/test_ct_utils.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type_name
    - ' result'
    argTypes:
    - char*
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: Botan_Tests::CT_Choice_Tests::test_choice_from_int
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 4
    functionsReached:
    - test_is_false
    - Botan::fmt
    - auto::as_bool
    - test_is_true
    - Botan::CT::Choice::from_int<T>
    - static_cast<T>
    linkageType: ''
    returnType: void
    signature: void test_choice_from_int(const char* type_name, Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/tests/test_ct_utils.cpp:129,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_ct_utils.cpp:132,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:144,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:145,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:146,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:147,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: Botan_Tests::CT_Option_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::conditional_assign_mem
    - std::memcmp
    - Botan_Tests::CT_Option_Tests::test_ct_option
    - Val
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_Tests::CT_Option_Tests::Val::Val
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Val()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_Tests::CT_Option_Tests::Val::Val
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Val(uint8_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/tests/test_ct_utils.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - choice
    - ' other'
    argTypes:
    - Botan::CT::Choice
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan_Tests::CT_Option_Tests::Val::conditional_assign
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::conditional_assign_mem
    linkageType: ''
    returnType: void
    signature: void conditional_assign(Botan::CT::Choice choice, const Val& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_ct_utils.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: operator==(const Val& other) const
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Val& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: '& operator++()'
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Val
    signature: Val & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Option<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:156,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:157,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:157,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ct_utils.cpp:158,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:158,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:159,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:159,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:160,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:160,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:161,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:162,1
    - Dst: test_is_false
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: Botan::CT::Option<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:172,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:173,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:173,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:174,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:174,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:175,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:175,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:177,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:178,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:179,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:179,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    - Dst: next
      Src: /src/botan/src/tests/test_ct_utils.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ' result'
    - ' value'
    - ' value2'
    argTypes:
    - Test::Result
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 182
    functionName: Botan_Tests::CT_Option_Tests::test_ct_option
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 4
    functionsReached:
    - test_is_false
    - auto::as_optional_vartime
    - test_is_true
    - test_throws
    - auto::has_value
    - Botan::CT::Option<T>
    - auto::value_or
    - auto::transform
    - auto::value
    - next
    linkageType: ''
    returnType: void
    signature: void test_ct_option(Test::Result& result, const T& value, const T&
      value2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: Botan_Tests::_const_time_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan_Tests::_const_time_unpoison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:198,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:201,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:203,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:204,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:205,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:208,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:216,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:217,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:218,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:219,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:220,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:223,1
    - Dst: test_bool_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:231,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:234,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:235,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:238,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:241,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:248,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::all_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: Botan::CT::unpoison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:251,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:255,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:258,1
    - Dst: Botan::CT::driveby_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:261,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:262,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:263,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_ct_utils.cpp:264,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 267
    functionName: Botan_Tests::test_higher_level_ct_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    - Botan_Tests::CHECK
    - Botan::CT::poison_range
    - Botan::CT::driveby_poison
    - std::vector::end
    - std::move
    - test_is_true
    - test_bool_eq
    - Botan::CT::poison
    - std::vector::begin
    - Botan::CT::poison_all
    - std::all_of
    - Botan::CT::driveby_unpoison
    - std::none_of
    - Botan::CT::unpoison
    - Botan::CT::unpoison_range
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_higher_level_ct_poison()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_compression.cpp:61,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_compression.cpp:67,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:69,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:70,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:73,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: Botan_Tests::Compression_Tests::rng
      Src: /src/botan/src/tests/test_compression.cpp:81,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_compression.cpp:84,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:87,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:88,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:89,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:90,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:91,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:92,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:93,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:94,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:95,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:96,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:98,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:99,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:104,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:105,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:106,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:107,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:108,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_compression.cpp:111,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_compression.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_compression.cpp:114,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:116,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Compression_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Botan::Compression_Algorithm::create
    - Test::Result::start_timer
    - Test::Result::end_timer
    - reinterpret_cast<const uint8_t*>
    - std::vector::emplace_back
    - Test::Result::test_str_ne
    - Test::Result::test_sz_lt
    - auto::name
    - Botan::Decompression_Algorithm::create
    - Test::Result::test_sz_gte
    - Botan_Tests::Test::Result::Failure
    - Botan_Tests::Compression_Tests::run_compression
    - what
    - Botan_Tests::Compression_Tests::rng
    - std::strlen
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_compression.cpp:132,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:138,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:139,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:143,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:148,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:152,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:153,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:156,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_compression.cpp:160,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_compression.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:162,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_compression.cpp:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - ' result'
    - level
    - ' c'
    - ' d'
    - ' msg'
    argTypes:
    - Test::Result
    - size_t
    - Botan::Compression_Algorithm
    - Botan::Decompression_Algorithm
    - Botan::secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 167
    functionName: Botan_Tests::Compression_Tests::run_compression
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 1
    functionsReached:
    - finish
    - start
    - Botan::secure_vector::size
    - size
    - test_failure
    - test_bin_eq
    - what
    - update
    linkageType: ''
    returnType: size_t
    signature: "size_t run_compression(Test::Result& result,\n                             size_t
      level,\n                             Botan::Compression_Algorithm& c,\n                             Botan::Decompression_Algorithm&
      d,\n                             const Botan::secure_vector<uint8_t>& msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:181,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:182,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:190,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:191,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:199,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:207,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:208,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:210,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:211,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 217
    functionName: Botan_Tests::CompressionCreate_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Botan::Compression_Algorithm::create
    - std::vector::emplace_back
    - Test::Result::test_str_ne
    - auto::name
    - Botan::Decompression_Algorithm::create
    - what
    - Test::Result::test_throws
    - Botan_Tests::Test::Result::Failure
    - Botan::Compression_Algorithm::create_or_throw
    - Botan::Decompression_Algorithm::create_or_throw
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_compression.cpp:61,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_compression.cpp:67,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:69,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:70,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:73,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: Botan_Tests::Compression_Tests::rng
      Src: /src/botan/src/tests/test_compression.cpp:81,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_compression.cpp:84,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:87,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:88,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:89,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:90,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:91,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:92,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:93,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:94,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:95,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:96,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:98,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:99,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:104,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:105,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:106,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:107,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:108,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_compression.cpp:111,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_compression.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_compression.cpp:114,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:116,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Compression_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Botan::Compression_Algorithm::create
    - Test::Result::start_timer
    - Test::Result::end_timer
    - reinterpret_cast<const uint8_t*>
    - std::vector::emplace_back
    - Test::Result::test_str_ne
    - Test::Result::test_sz_lt
    - auto::name
    - Botan::Decompression_Algorithm::create
    - Test::Result::test_sz_gte
    - Botan_Tests::Test::Result::Failure
    - Botan_Tests::Compression_Tests::run_compression
    - what
    - Botan_Tests::Compression_Tests::rng
    - std::strlen
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_compression.cpp:132,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:138,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:139,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:143,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:148,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:152,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:153,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:156,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_compression.cpp:160,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_compression.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:162,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_compression.cpp:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - ' result'
    - level
    - ' c'
    - ' d'
    - ' msg'
    argTypes:
    - Test::Result
    - size_t
    - Botan::Compression_Algorithm
    - Botan::Decompression_Algorithm
    - Botan::secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 167
    functionName: Botan_Tests::Compression_Tests::run_compression
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 2
    functionsReached:
    - finish
    - start
    - Botan::secure_vector::size
    - size
    - test_failure
    - test_bin_eq
    - what
    - update
    linkageType: ''
    returnType: size_t
    signature: "size_t run_compression(Test::Result& result,\n                             size_t
      level,\n                             Botan::Compression_Algorithm& c,\n                             Botan::Decompression_Algorithm&
      d,\n                             const Botan::secure_vector<uint8_t>& msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:181,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:182,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:190,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:191,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:199,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:207,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:208,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:210,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:211,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 217
    functionName: Botan_Tests::CompressionCreate_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Botan::Compression_Algorithm::create
    - std::vector::emplace_back
    - Test::Result::test_str_ne
    - auto::name
    - Botan::Decompression_Algorithm::create
    - what
    - Test::Result::test_throws
    - Botan_Tests::Test::Result::Failure
    - Botan::Compression_Algorithm::create_or_throw
    - Botan::Decompression_Algorithm::create_or_throw
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_compression.cpp:61,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_compression.cpp:67,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:69,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:70,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:73,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: Botan_Tests::Compression_Tests::rng
      Src: /src/botan/src/tests/test_compression.cpp:81,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_compression.cpp:84,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:87,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:88,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:89,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:90,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:91,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:92,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:93,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:94,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:95,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:96,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:98,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:99,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:104,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:105,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:106,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:107,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:108,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_compression.cpp:111,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_compression.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_compression.cpp:114,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:116,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Compression_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Botan::Compression_Algorithm::create
    - Test::Result::start_timer
    - Test::Result::end_timer
    - reinterpret_cast<const uint8_t*>
    - std::vector::emplace_back
    - Test::Result::test_str_ne
    - Test::Result::test_sz_lt
    - auto::name
    - Botan::Decompression_Algorithm::create
    - Test::Result::test_sz_gte
    - Botan_Tests::Test::Result::Failure
    - Botan_Tests::Compression_Tests::run_compression
    - what
    - Botan_Tests::Compression_Tests::rng
    - std::strlen
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_compression.cpp:132,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:138,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:139,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:143,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:148,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:152,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:153,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:156,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_compression.cpp:160,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_compression.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:162,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_compression.cpp:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - ' result'
    - level
    - ' c'
    - ' d'
    - ' msg'
    argTypes:
    - Test::Result
    - size_t
    - Botan::Compression_Algorithm
    - Botan::Decompression_Algorithm
    - Botan::secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 167
    functionName: Botan_Tests::Compression_Tests::run_compression
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 3
    functionsReached:
    - finish
    - start
    - Botan::secure_vector::size
    - size
    - test_failure
    - test_bin_eq
    - what
    - update
    linkageType: ''
    returnType: size_t
    signature: "size_t run_compression(Test::Result& result,\n                             size_t
      level,\n                             Botan::Compression_Algorithm& c,\n                             Botan::Decompression_Algorithm&
      d,\n                             const Botan::secure_vector<uint8_t>& msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:181,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:182,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:190,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:191,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:199,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:207,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:208,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:210,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:211,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 217
    functionName: Botan_Tests::CompressionCreate_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Botan::Compression_Algorithm::create
    - std::vector::emplace_back
    - Test::Result::test_str_ne
    - auto::name
    - Botan::Decompression_Algorithm::create
    - what
    - Test::Result::test_throws
    - Botan_Tests::Test::Result::Failure
    - Botan::Compression_Algorithm::create_or_throw
    - Botan::Decompression_Algorithm::create_or_throw
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_compression.cpp:61,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_compression.cpp:67,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:69,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:70,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:73,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:77,1
    - Dst: Botan_Tests::Compression_Tests::rng
      Src: /src/botan/src/tests/test_compression.cpp:81,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_compression.cpp:84,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:87,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:88,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:89,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:90,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:91,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:92,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:93,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:94,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:95,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:96,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:98,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:99,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:104,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:105,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:106,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:107,1
    - Dst: Test::Result::test_sz_gte
      Src: /src/botan/src/tests/test_compression.cpp:108,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_compression.cpp:111,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_compression.cpp:112,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_compression.cpp:114,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:116,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Compression_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Botan::Compression_Algorithm::create
    - Test::Result::start_timer
    - Test::Result::end_timer
    - reinterpret_cast<const uint8_t*>
    - std::vector::emplace_back
    - Test::Result::test_str_ne
    - Test::Result::test_sz_lt
    - auto::name
    - Botan::Decompression_Algorithm::create
    - Test::Result::test_sz_gte
    - Botan_Tests::Test::Result::Failure
    - Botan_Tests::Compression_Tests::run_compression
    - what
    - Botan_Tests::Compression_Tests::rng
    - std::strlen
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/test_compression.cpp:132,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:138,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:139,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:143,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:148,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:152,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:153,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:156,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_compression.cpp:160,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_compression.cpp:162,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:162,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_compression.cpp:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - ' result'
    - level
    - ' c'
    - ' d'
    - ' msg'
    argTypes:
    - Test::Result
    - size_t
    - Botan::Compression_Algorithm
    - Botan::Decompression_Algorithm
    - Botan::secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 167
    functionName: Botan_Tests::Compression_Tests::run_compression
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 4
    functionsReached:
    - finish
    - start
    - Botan::secure_vector::size
    - size
    - test_failure
    - test_bin_eq
    - what
    - update
    linkageType: ''
    returnType: size_t
    signature: "size_t run_compression(Test::Result& result,\n                             size_t
      level,\n                             Botan::Compression_Algorithm& c,\n                             Botan::Decompression_Algorithm&
      d,\n                             const Botan::secure_vector<uint8_t>& msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:181,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:182,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:190,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:191,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: Test::Result::test_str_ne
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:197,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:199,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:201,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:207,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:208,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:210,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:211,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 217
    functionName: Botan_Tests::CompressionCreate_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Botan::Compression_Algorithm::create
    - std::vector::emplace_back
    - Test::Result::test_str_ne
    - auto::name
    - Botan::Decompression_Algorithm::create
    - what
    - Test::Result::test_throws
    - Botan_Tests::Test::Result::Failure
    - Botan::Compression_Algorithm::create_or_throw
    - Botan::Decompression_Algorithm::create_or_throw
    - Test::Result::note_missing
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Roughtime_Request_Tests::Roughtime_Request_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_Request_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:35,1
    - Dst: Botan::Roughtime::encode_request
      Src: /src/botan/src/tests/test_roughtime.cpp:37,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 1024>>
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 1024>>
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: Botan_Tests::Roughtime_Request_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::encode_request
    - auto::data
    - Botan::Roughtime::Nonce
    - Botan::typecast_copy<std::array<uint8_t, 1024>>
    - Test::Result::test_is_true
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Roughtime_Response_Tests::Roughtime_Response_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_Response_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:62,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:69,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:70,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_roughtime.cpp:71,1
    - Dst: auto::validate
      Src: /src/botan/src/tests/test_roughtime.cpp:74,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:74,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:75,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/tests/test_roughtime.cpp:77,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:78,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_roughtime.cpp:78,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:79,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_roughtime.cpp:79,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:81,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:81,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:82,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:83,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:86,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 90
    functionName: Botan_Tests::Roughtime_Response_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - get_req_u64
    - auto::size
    - std::vector<uint8_t>
    - Botan_CLI::Timer::microseconds
    - auto::utc_midpoint
    - get_opt_bin
    - has_key
    - auto::utc_radius
    - auto::validate
    - Botan::Roughtime::Response::from_bits
    - what
    - Botan::Roughtime::Response::sys_microseconds64
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bin
    - get_req_u32
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Roughtime_nonce_from_blind_Tests::Roughtime_nonce_from_blind_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_nonce_from_blind_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:103,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:104,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:104,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:105,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:105,1
    - Dst: Botan::Roughtime::nonce_from_blind
      Src: /src/botan/src/tests/test_roughtime.cpp:107,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:110,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_roughtime.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Roughtime_nonce_from_blind_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::Nonce
    - Botan::Roughtime::nonce_from_blind
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_roughtime.cpp:126,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:126,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:128,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:130,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:131,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: auto::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:133,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:134,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:136,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:137,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 142
    functionName: Botan_Tests::Roughtime::test_nonce
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::unlock
    - random_vec
    - auto::data
    - auto::pop_back
    - Botan::Roughtime::Nonce::get_nonce
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - auto::push_back
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_nonce(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Chain::Chain
      Src: /src/botan/src/tests/test_roughtime.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_roughtime.cpp:150,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:152,1
    - Dst: Botan::Roughtime::Chain::next_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:162,1
    - Dst: Botan::Roughtime::Chain::to_string
      Src: /src/botan/src/tests/test_roughtime.cpp:162,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:164,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:164,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:166,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:170,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:178,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:182,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:186,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 196
    functionName: Botan_Tests::Roughtime::test_chain
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::Chain::to_string
    - Botan::unlock
    - Test::Result::test_throws
    - Botan::Roughtime::Chain::responses
    - random_vec
    - auto::data
    - Botan::Roughtime::Chain::next_nonce
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - Botan::Roughtime::Chain::links
    - Botan::Roughtime::Chain::append
    - Botan::Roughtime::Chain::Chain
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_chain(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:201,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:208,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:208,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:209,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:209,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:210,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:211,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_roughtime.cpp:213,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:214,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_roughtime.cpp:214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:216,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:216,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:217,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:217,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:219,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:219,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:220,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:220,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:221,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:222,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:224,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:227,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:228,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:230,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:231,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:234,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:235,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:238,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 244
    functionName: Botan_Tests::Roughtime::test_server_information
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - auto::size
    - Botan::Roughtime::servers_from_str
    - Test::Result::test_str_eq
    - name
    - public_key
    - Botan::base64_decode
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - addresses
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_server_information()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::online_request
      Src: /src/botan/src/tests/test_roughtime.cpp:252,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_roughtime.cpp:252,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_roughtime.cpp:253,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:254,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_roughtime.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: Botan_Tests::Roughtime::test_request_online
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::online_request
    - auto::utc_midpoint
    - auto::utc_radius
    - Botan_CLI::Timer::seconds
    - Botan::Roughtime::Response::from_bits
    - Test::Result::test_failure
    - Botan::TLS::detail::AsyncBase::complete_now
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_request_online(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Roughtime::rng
      Src: /src/botan/src/tests/test_roughtime.cpp:267,1
    - Dst: Botan_Tests::Roughtime::test_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::Roughtime::test_chain
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::Roughtime::test_server_information
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_roughtime.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:272,1
    - Dst: Botan_Tests::Roughtime::test_request_online
      Src: /src/botan/src/tests/test_roughtime.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Roughtime::run
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Roughtime::test_nonce
    - std::vector::push_back
    - Botan_Tests::Roughtime::test_request_online
    - Botan_Tests::Roughtime::rng
    - Botan_Tests::Roughtime::test_server_information
    - Botan_Tests::test_encoding_options
    - Botan_Tests::Roughtime::test_chain
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Roughtime_Request_Tests::Roughtime_Request_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_Request_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:35,1
    - Dst: Botan::Roughtime::encode_request
      Src: /src/botan/src/tests/test_roughtime.cpp:37,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 1024>>
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 1024>>
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: Botan_Tests::Roughtime_Request_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::encode_request
    - auto::data
    - Botan::Roughtime::Nonce
    - Botan::typecast_copy<std::array<uint8_t, 1024>>
    - Test::Result::test_is_true
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Roughtime_Response_Tests::Roughtime_Response_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_Response_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:62,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:69,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:70,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_roughtime.cpp:71,1
    - Dst: auto::validate
      Src: /src/botan/src/tests/test_roughtime.cpp:74,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:74,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:75,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/tests/test_roughtime.cpp:77,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:78,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_roughtime.cpp:78,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:79,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_roughtime.cpp:79,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:81,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:81,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:82,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:83,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:86,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 90
    functionName: Botan_Tests::Roughtime_Response_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - get_req_u64
    - auto::size
    - std::vector<uint8_t>
    - Botan_CLI::Timer::microseconds
    - auto::utc_midpoint
    - get_opt_bin
    - has_key
    - auto::utc_radius
    - auto::validate
    - Botan::Roughtime::Response::from_bits
    - what
    - Botan::Roughtime::Response::sys_microseconds64
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bin
    - get_req_u32
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Roughtime_nonce_from_blind_Tests::Roughtime_nonce_from_blind_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_nonce_from_blind_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:103,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:104,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:104,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:105,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:105,1
    - Dst: Botan::Roughtime::nonce_from_blind
      Src: /src/botan/src/tests/test_roughtime.cpp:107,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:110,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_roughtime.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Roughtime_nonce_from_blind_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::Nonce
    - Botan::Roughtime::nonce_from_blind
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_roughtime.cpp:126,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:126,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:128,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:130,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:131,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: auto::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:133,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:134,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:136,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:137,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 142
    functionName: Botan_Tests::Roughtime::test_nonce
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 1
    functionsReached:
    - Botan::unlock
    - random_vec
    - auto::data
    - auto::pop_back
    - Botan::Roughtime::Nonce::get_nonce
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - auto::push_back
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_nonce(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Chain::Chain
      Src: /src/botan/src/tests/test_roughtime.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_roughtime.cpp:150,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:152,1
    - Dst: Botan::Roughtime::Chain::next_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:162,1
    - Dst: Botan::Roughtime::Chain::to_string
      Src: /src/botan/src/tests/test_roughtime.cpp:162,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:164,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:164,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:166,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:170,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:178,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:182,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:186,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 196
    functionName: Botan_Tests::Roughtime::test_chain
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 1
    functionsReached:
    - Botan::Roughtime::Chain::to_string
    - Botan::unlock
    - Test::Result::test_throws
    - Botan::Roughtime::Chain::responses
    - random_vec
    - auto::data
    - Botan::Roughtime::Chain::next_nonce
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - Botan::Roughtime::Chain::links
    - Botan::Roughtime::Chain::append
    - Botan::Roughtime::Chain::Chain
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_chain(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:201,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:208,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:208,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:209,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:209,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:210,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:211,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_roughtime.cpp:213,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:214,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_roughtime.cpp:214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:216,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:216,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:217,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:217,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:219,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:219,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:220,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:220,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:221,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:222,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:224,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:227,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:228,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:230,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:231,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:234,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:235,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:238,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 244
    functionName: Botan_Tests::Roughtime::test_server_information
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 1
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - auto::size
    - Botan::Roughtime::servers_from_str
    - Test::Result::test_str_eq
    - name
    - public_key
    - Botan::base64_decode
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - addresses
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_server_information()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::online_request
      Src: /src/botan/src/tests/test_roughtime.cpp:252,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_roughtime.cpp:252,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_roughtime.cpp:253,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:254,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_roughtime.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: Botan_Tests::Roughtime::test_request_online
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 1
    functionsReached:
    - Botan::Roughtime::online_request
    - auto::utc_midpoint
    - auto::utc_radius
    - Botan_CLI::Timer::seconds
    - Botan::Roughtime::Response::from_bits
    - Test::Result::test_failure
    - Botan::TLS::detail::AsyncBase::complete_now
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_request_online(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Roughtime::rng
      Src: /src/botan/src/tests/test_roughtime.cpp:267,1
    - Dst: Botan_Tests::Roughtime::test_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::Roughtime::test_chain
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::Roughtime::test_server_information
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_roughtime.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:272,1
    - Dst: Botan_Tests::Roughtime::test_request_online
      Src: /src/botan/src/tests/test_roughtime.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Roughtime::run
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Roughtime::test_nonce
    - std::vector::push_back
    - Botan_Tests::Roughtime::test_request_online
    - Botan_Tests::Roughtime::rng
    - Botan_Tests::Roughtime::test_server_information
    - Botan_Tests::test_encoding_options
    - Botan_Tests::Roughtime::test_chain
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Roughtime_Request_Tests::Roughtime_Request_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_Request_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:35,1
    - Dst: Botan::Roughtime::encode_request
      Src: /src/botan/src/tests/test_roughtime.cpp:37,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 1024>>
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 1024>>
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: Botan_Tests::Roughtime_Request_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::encode_request
    - auto::data
    - Botan::Roughtime::Nonce
    - Botan::typecast_copy<std::array<uint8_t, 1024>>
    - Test::Result::test_is_true
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Roughtime_Response_Tests::Roughtime_Response_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_Response_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:62,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:69,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:70,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_roughtime.cpp:71,1
    - Dst: auto::validate
      Src: /src/botan/src/tests/test_roughtime.cpp:74,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:74,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:75,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/tests/test_roughtime.cpp:77,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:78,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_roughtime.cpp:78,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:79,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_roughtime.cpp:79,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:81,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:81,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:82,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:83,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:86,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 90
    functionName: Botan_Tests::Roughtime_Response_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - get_req_u64
    - auto::size
    - std::vector<uint8_t>
    - Botan_CLI::Timer::microseconds
    - auto::utc_midpoint
    - get_opt_bin
    - has_key
    - auto::utc_radius
    - auto::validate
    - Botan::Roughtime::Response::from_bits
    - what
    - Botan::Roughtime::Response::sys_microseconds64
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bin
    - get_req_u32
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Roughtime_nonce_from_blind_Tests::Roughtime_nonce_from_blind_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_nonce_from_blind_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:103,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:104,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:104,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:105,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:105,1
    - Dst: Botan::Roughtime::nonce_from_blind
      Src: /src/botan/src/tests/test_roughtime.cpp:107,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:110,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_roughtime.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Roughtime_nonce_from_blind_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::Nonce
    - Botan::Roughtime::nonce_from_blind
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_roughtime.cpp:126,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:126,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:128,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:130,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:131,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: auto::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:133,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:134,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:136,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:137,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 142
    functionName: Botan_Tests::Roughtime::test_nonce
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 2
    functionsReached:
    - Botan::unlock
    - random_vec
    - auto::data
    - auto::pop_back
    - Botan::Roughtime::Nonce::get_nonce
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - auto::push_back
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_nonce(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Chain::Chain
      Src: /src/botan/src/tests/test_roughtime.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_roughtime.cpp:150,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:152,1
    - Dst: Botan::Roughtime::Chain::next_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:162,1
    - Dst: Botan::Roughtime::Chain::to_string
      Src: /src/botan/src/tests/test_roughtime.cpp:162,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:164,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:164,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:166,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:170,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:178,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:182,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:186,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 196
    functionName: Botan_Tests::Roughtime::test_chain
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 2
    functionsReached:
    - Botan::Roughtime::Chain::to_string
    - Botan::unlock
    - Test::Result::test_throws
    - Botan::Roughtime::Chain::responses
    - random_vec
    - auto::data
    - Botan::Roughtime::Chain::next_nonce
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - Botan::Roughtime::Chain::links
    - Botan::Roughtime::Chain::append
    - Botan::Roughtime::Chain::Chain
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_chain(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:201,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:208,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:208,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:209,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:209,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:210,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:211,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_roughtime.cpp:213,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:214,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_roughtime.cpp:214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:216,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:216,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:217,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:217,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:219,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:219,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:220,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:220,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:221,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:222,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:224,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:227,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:228,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:230,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:231,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:234,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:235,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:238,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 244
    functionName: Botan_Tests::Roughtime::test_server_information
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 2
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - auto::size
    - Botan::Roughtime::servers_from_str
    - Test::Result::test_str_eq
    - name
    - public_key
    - Botan::base64_decode
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - addresses
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_server_information()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::online_request
      Src: /src/botan/src/tests/test_roughtime.cpp:252,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_roughtime.cpp:252,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_roughtime.cpp:253,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:254,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_roughtime.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: Botan_Tests::Roughtime::test_request_online
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 2
    functionsReached:
    - Botan::Roughtime::online_request
    - auto::utc_midpoint
    - auto::utc_radius
    - Botan_CLI::Timer::seconds
    - Botan::Roughtime::Response::from_bits
    - Test::Result::test_failure
    - Botan::TLS::detail::AsyncBase::complete_now
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_request_online(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Roughtime::rng
      Src: /src/botan/src/tests/test_roughtime.cpp:267,1
    - Dst: Botan_Tests::Roughtime::test_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::Roughtime::test_chain
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::Roughtime::test_server_information
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_roughtime.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:272,1
    - Dst: Botan_Tests::Roughtime::test_request_online
      Src: /src/botan/src/tests/test_roughtime.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Roughtime::run
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Roughtime::test_nonce
    - std::vector::push_back
    - Botan_Tests::Roughtime::test_request_online
    - Botan_Tests::Roughtime::rng
    - Botan_Tests::Roughtime::test_server_information
    - Botan_Tests::test_encoding_options
    - Botan_Tests::Roughtime::test_chain
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Roughtime_Request_Tests::Roughtime_Request_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_Request_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:35,1
    - Dst: Botan::Roughtime::encode_request
      Src: /src/botan/src/tests/test_roughtime.cpp:37,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 1024>>
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:41,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 1024>>
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: Botan_Tests::Roughtime_Request_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::encode_request
    - auto::data
    - Botan::Roughtime::Nonce
    - Botan::typecast_copy<std::array<uint8_t, 1024>>
    - Test::Result::test_is_true
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Roughtime_Response_Tests::Roughtime_Response_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_Response_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:62,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:69,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:70,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_roughtime.cpp:71,1
    - Dst: auto::validate
      Src: /src/botan/src/tests/test_roughtime.cpp:74,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:74,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:75,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/tests/test_roughtime.cpp:77,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:78,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_roughtime.cpp:78,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:79,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_roughtime.cpp:79,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:81,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:81,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:82,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:82,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:83,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:86,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 90
    functionName: Botan_Tests::Roughtime_Response_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - get_req_u64
    - auto::size
    - std::vector<uint8_t>
    - Botan_CLI::Timer::microseconds
    - auto::utc_midpoint
    - get_opt_bin
    - has_key
    - auto::utc_radius
    - auto::validate
    - Botan::Roughtime::Response::from_bits
    - what
    - Botan::Roughtime::Response::sys_microseconds64
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bin
    - get_req_u32
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: Botan_Tests::Roughtime_nonce_from_blind_Tests::Roughtime_nonce_from_blind_Tests
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime_nonce_from_blind_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:103,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:104,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:104,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:105,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:105,1
    - Dst: Botan::Roughtime::nonce_from_blind
      Src: /src/botan/src/tests/test_roughtime.cpp:107,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:110,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_roughtime.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Roughtime_nonce_from_blind_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::Nonce
    - Botan::Roughtime::nonce_from_blind
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& type, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_roughtime.cpp:126,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:126,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:128,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:129,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:130,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:131,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:132,1
    - Dst: auto::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:133,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:134,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:136,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:137,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 142
    functionName: Botan_Tests::Roughtime::test_nonce
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 3
    functionsReached:
    - Botan::unlock
    - random_vec
    - auto::data
    - auto::pop_back
    - Botan::Roughtime::Nonce::get_nonce
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - auto::push_back
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_nonce(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Chain::Chain
      Src: /src/botan/src/tests/test_roughtime.cpp:147,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:148,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_roughtime.cpp:150,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:150,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:152,1
    - Dst: Botan::Roughtime::Chain::next_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:161,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:162,1
    - Dst: Botan::Roughtime::Chain::to_string
      Src: /src/botan/src/tests/test_roughtime.cpp:162,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:164,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:164,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:165,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:166,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:166,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:169,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:170,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:178,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:182,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:186,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 196
    functionName: Botan_Tests::Roughtime::test_chain
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 3
    functionsReached:
    - Botan::Roughtime::Chain::to_string
    - Botan::unlock
    - Test::Result::test_throws
    - Botan::Roughtime::Chain::responses
    - random_vec
    - auto::data
    - Botan::Roughtime::Chain::next_nonce
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - Botan::Roughtime::Chain::links
    - Botan::Roughtime::Chain::append
    - Botan::Roughtime::Chain::Chain
    - Test::Result::test_is_true
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_chain(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:201,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:208,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:208,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:209,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:209,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:210,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:211,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_roughtime.cpp:213,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:214,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_roughtime.cpp:214,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:216,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:216,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:217,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:217,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:219,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:219,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:220,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:220,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:221,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:222,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:224,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:227,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:228,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:230,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:231,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:234,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:235,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:238,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 244
    functionName: Botan_Tests::Roughtime::test_server_information
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 3
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - auto::size
    - Botan::Roughtime::servers_from_str
    - Test::Result::test_str_eq
    - name
    - public_key
    - Botan::base64_decode
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - addresses
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_server_information()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::online_request
      Src: /src/botan/src/tests/test_roughtime.cpp:252,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_roughtime.cpp:252,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_roughtime.cpp:253,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:254,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_roughtime.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: Botan_Tests::Roughtime::test_request_online
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 3
    functionsReached:
    - Botan::Roughtime::online_request
    - auto::utc_midpoint
    - auto::utc_radius
    - Botan_CLI::Timer::seconds
    - Botan::Roughtime::Response::from_bits
    - Test::Result::test_failure
    - Botan::TLS::detail::AsyncBase::complete_now
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_request_online(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Roughtime::rng
      Src: /src/botan/src/tests/test_roughtime.cpp:267,1
    - Dst: Botan_Tests::Roughtime::test_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::Roughtime::test_chain
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::Roughtime::test_server_information
      Src: /src/botan/src/tests/test_roughtime.cpp:269,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_roughtime.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:272,1
    - Dst: Botan_Tests::Roughtime::test_request_online
      Src: /src/botan/src/tests/test_roughtime.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Roughtime::run
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Roughtime::test_nonce
    - std::vector::push_back
    - Botan_Tests::Roughtime::test_request_online
    - Botan_Tests::Roughtime::rng
    - Botan_Tests::Roughtime::test_server_information
    - Botan_Tests::test_encoding_options
    - Botan_Tests::Roughtime::test_chain
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Bcrypt_Tests::Bcrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bcrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:33,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:36,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:39,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:39,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:43,1
    - Dst: Botan_Tests::Bcrypt_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:43,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:44,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: Botan_Tests::Bcrypt_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_is_true
    - Botan::check_bcrypt
    - std::vector::data
    - Botan_Tests::Bcrypt_Tests::rng
    - Botan::generate_bcrypt
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_passhash.cpp:53,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_passhash.cpp:57,1
    - Dst: Botan_Tests::Bcrypt_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:59,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:63,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:63,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:66,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:67,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_passhash.cpp:70,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_passhash.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: Botan_Tests::Bcrypt_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::set_ns_consumed
    - Botan_Tests::Test::timestamp
    - Botan::check_bcrypt
    - Botan_Tests::Bcrypt_Tests::rng
    - Botan_Tests::Test::run_long_tests
    - Botan::generate_bcrypt
    - Test::Result::test_throws
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_Tests::Argon2_Tests::Argon2_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Argon2_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:86,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:87,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:95,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_passhash.cpp:96,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:97,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:98,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:99,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:100,1
    - Dst: Botan::argon2_generate_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_passhash.cpp:107,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_passhash.cpp:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 115
    functionName: Botan_Tests::Argon2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::string::data
    - Botan::argon2_generate_pwhash
    - std::string::size
    - Test::Result::test_str_eq
    - get_req_u8
    - Botan::argon2_check_pwhash
    - get_req_sz
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Passhash9_Tests::Passhash9_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Passhash9_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:129,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:132,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:133,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:137,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:138,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:138,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:142,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:143,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:143,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:145,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:145,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_passhash.cpp:146,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_passhash.cpp:151,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:155,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:156,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:156,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:157,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:157,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_passhash.cpp:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Passhash9_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::Passhash9_Tests::rng
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::is_passhash9_alg_supported
    - std::vector::data
    - Botan::generate_passhash9
    - Botan_Tests::Test::run_long_tests
    - get_req_sz
    - Botan::check_passhash9
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_passhash.cpp:169,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:169,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:173,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:175,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:177,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Passhash9_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Passhash9_Tests::rng
    - Botan::is_passhash9_alg_supported
    - Botan::generate_passhash9
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Botan::check_passhash9
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Bcrypt_Tests::Bcrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bcrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:33,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:36,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:39,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:39,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:43,1
    - Dst: Botan_Tests::Bcrypt_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:43,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:44,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: Botan_Tests::Bcrypt_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_is_true
    - Botan::check_bcrypt
    - std::vector::data
    - Botan_Tests::Bcrypt_Tests::rng
    - Botan::generate_bcrypt
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_passhash.cpp:53,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_passhash.cpp:57,1
    - Dst: Botan_Tests::Bcrypt_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:59,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:63,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:63,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:66,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:67,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_passhash.cpp:70,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_passhash.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: Botan_Tests::Bcrypt_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::set_ns_consumed
    - Botan_Tests::Test::timestamp
    - Botan::check_bcrypt
    - Botan_Tests::Bcrypt_Tests::rng
    - Botan_Tests::Test::run_long_tests
    - Botan::generate_bcrypt
    - Test::Result::test_throws
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_Tests::Argon2_Tests::Argon2_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Argon2_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:86,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:87,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:95,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_passhash.cpp:96,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:97,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:98,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:99,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:100,1
    - Dst: Botan::argon2_generate_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_passhash.cpp:107,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_passhash.cpp:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 115
    functionName: Botan_Tests::Argon2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::string::data
    - Botan::argon2_generate_pwhash
    - std::string::size
    - Test::Result::test_str_eq
    - get_req_u8
    - Botan::argon2_check_pwhash
    - get_req_sz
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Passhash9_Tests::Passhash9_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Passhash9_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:129,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:132,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:133,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:137,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:138,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:138,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:142,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:143,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:143,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:145,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:145,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_passhash.cpp:146,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_passhash.cpp:151,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:155,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:156,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:156,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:157,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:157,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_passhash.cpp:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Passhash9_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::Passhash9_Tests::rng
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::is_passhash9_alg_supported
    - std::vector::data
    - Botan::generate_passhash9
    - Botan_Tests::Test::run_long_tests
    - get_req_sz
    - Botan::check_passhash9
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_passhash.cpp:169,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:169,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:173,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:175,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:177,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Passhash9_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Passhash9_Tests::rng
    - Botan::is_passhash9_alg_supported
    - Botan::generate_passhash9
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Botan::check_passhash9
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Bcrypt_Tests::Bcrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bcrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:33,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:36,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:39,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:39,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:43,1
    - Dst: Botan_Tests::Bcrypt_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:43,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:44,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: Botan_Tests::Bcrypt_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_is_true
    - Botan::check_bcrypt
    - std::vector::data
    - Botan_Tests::Bcrypt_Tests::rng
    - Botan::generate_bcrypt
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_passhash.cpp:53,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_passhash.cpp:57,1
    - Dst: Botan_Tests::Bcrypt_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:59,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:63,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:63,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:66,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:67,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_passhash.cpp:70,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_passhash.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: Botan_Tests::Bcrypt_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::set_ns_consumed
    - Botan_Tests::Test::timestamp
    - Botan::check_bcrypt
    - Botan_Tests::Bcrypt_Tests::rng
    - Botan_Tests::Test::run_long_tests
    - Botan::generate_bcrypt
    - Test::Result::test_throws
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_Tests::Argon2_Tests::Argon2_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Argon2_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:86,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:87,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:95,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_passhash.cpp:96,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:97,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:98,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:99,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:100,1
    - Dst: Botan::argon2_generate_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_passhash.cpp:107,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_passhash.cpp:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 115
    functionName: Botan_Tests::Argon2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::string::data
    - Botan::argon2_generate_pwhash
    - std::string::size
    - Test::Result::test_str_eq
    - get_req_u8
    - Botan::argon2_check_pwhash
    - get_req_sz
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Passhash9_Tests::Passhash9_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Passhash9_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:129,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:132,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:133,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:137,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:138,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:138,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:142,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:143,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:143,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:145,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:145,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_passhash.cpp:146,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_passhash.cpp:151,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:155,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:156,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:156,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:157,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:157,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_passhash.cpp:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Passhash9_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::Passhash9_Tests::rng
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::is_passhash9_alg_supported
    - std::vector::data
    - Botan::generate_passhash9
    - Botan_Tests::Test::run_long_tests
    - get_req_sz
    - Botan::check_passhash9
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_passhash.cpp:169,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:169,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:173,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:175,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:177,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Passhash9_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Passhash9_Tests::rng
    - Botan::is_passhash9_alg_supported
    - Botan::generate_passhash9
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Botan::check_passhash9
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_Tests::Bcrypt_Tests::Bcrypt_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bcrypt_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:33,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:36,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:39,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:39,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:43,1
    - Dst: Botan_Tests::Bcrypt_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:43,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:44,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: Botan_Tests::Bcrypt_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Test::Result::test_is_true
    - Botan::check_bcrypt
    - std::vector::data
    - Botan_Tests::Bcrypt_Tests::rng
    - Botan::generate_bcrypt
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_passhash.cpp:53,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_passhash.cpp:57,1
    - Dst: Botan_Tests::Bcrypt_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:59,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:62,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:63,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:63,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:66,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/tests/test_passhash.cpp:67,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_passhash.cpp:70,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_passhash.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: Botan_Tests::Bcrypt_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::set_ns_consumed
    - Botan_Tests::Test::timestamp
    - Botan::check_bcrypt
    - Botan_Tests::Bcrypt_Tests::rng
    - Botan_Tests::Test::run_long_tests
    - Botan::generate_bcrypt
    - Test::Result::test_throws
    - Test::Result::test_is_true
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_Tests::Argon2_Tests::Argon2_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Argon2_Tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:86,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:87,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:92,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:95,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_passhash.cpp:96,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:97,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:98,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:99,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:100,1
    - Dst: Botan::argon2_generate_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:105,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_passhash.cpp:107,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_passhash.cpp:108,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:109,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_passhash.cpp:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 115
    functionName: Botan_Tests::Argon2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::string::data
    - Botan::argon2_generate_pwhash
    - std::string::size
    - Test::Result::test_str_eq
    - get_req_u8
    - Botan::argon2_check_pwhash
    - get_req_sz
    - Test_Error
    - Test::Result::test_is_true
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_Tests::Passhash9_Tests::Passhash9_Tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Passhash9_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_passhash.cpp:129,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_passhash.cpp:130,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_passhash.cpp:132,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_passhash.cpp:133,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:137,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:138,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:138,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:142,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:143,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:143,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:145,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:145,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_passhash.cpp:146,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_passhash.cpp:151,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:155,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:156,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:156,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_passhash.cpp:157,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:157,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_passhash.cpp:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Passhash9_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan_Tests::Passhash9_Tests::rng
    - Test::Result::test_is_true
    - Test::Result::test_note
    - Botan::is_passhash9_alg_supported
    - std::vector::data
    - Botan::generate_passhash9
    - Botan_Tests::Test::run_long_tests
    - get_req_sz
    - Botan::check_passhash9
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_passhash.cpp:169,1
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/tests/test_passhash.cpp:169,1
    - Dst: Botan_Tests::Passhash9_Tests::rng
      Src: /src/botan/src/tests/test_passhash.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:173,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:175,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_passhash.cpp:177,1
    - Dst: Botan::check_passhash9
      Src: /src/botan/src/tests/test_passhash.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Passhash9_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_passhash.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Passhash9_Tests::rng
    - Botan::is_passhash9_alg_supported
    - Botan::generate_passhash9
    - Test::Result::test_is_false
    - Test::Result::test_throws
    - Botan::check_passhash9
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::TSS_Recovery_Tests::TSS_Recovery_Tests
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Recovery_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:28,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tss.cpp:29,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tss.cpp:30,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:31,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tss.cpp:35,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:35,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:42,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:45,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: Botan_Tests::TSS_Recovery_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:51,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:51,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:53,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:54,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    - Dst: what
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tss.cpp:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 71
    functionName: Botan_Tests::TSS_Recovery_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TSS_Recovery_Tests::rng
    - data
    - Test::Result::test_success
    - std::to_string
    - std::vector::push_back
    - std::vector::erase
    - Botan::RTSS_Share::reconstruct
    - std::vector::reserve
    - Botan::RTSS_Share
    - Test::Result::test_bin_eq
    - size
    - std::vector::begin
    - get_req_bin_list
    - get_req_sz
    - Test::Result::test_failure
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::TSS_Generation_Tests::TSS_Generation_Tests
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Generation_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: Botan_Tests::TSS_Generation_Tests::tss_hash_len
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: size_t
    signature: size_t tss_hash_len(const std::string& hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:95,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:96,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:97,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:98,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:99,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tss.cpp:100,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:101,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:103,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: Botan_Tests::TSS_Generation_Tests::tss_hash_len
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:108,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tss.cpp:116,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:116,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:119,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:119,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:122,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: Botan_Tests::TSS_Generation_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:127,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:127,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:128,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:128,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:131,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 140
    functionName: Botan_Tests::TSS_Generation_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::RTSS_Share::split
    - Test::Result::test_sz_eq
    - std::vector::begin
    - Botan_Tests::TSS_Generation_Tests::tss_hash_len
    - std::to_string
    - Botan_Tests::TSS_Generation_Tests::rng
    - std::vector::erase
    - get_req_u8
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - Test::Result::test_bin_eq
    - get_req_str
    - static_cast<uint16_t>
    - std::vector::data
    - Botan::RTSS_Share::reconstruct
    - get_req_bin_list
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::TSS_Recovery_Tests::TSS_Recovery_Tests
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Recovery_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:28,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tss.cpp:29,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tss.cpp:30,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:31,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tss.cpp:35,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:35,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:42,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:45,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: Botan_Tests::TSS_Recovery_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:51,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:51,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:53,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:54,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    - Dst: what
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tss.cpp:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 71
    functionName: Botan_Tests::TSS_Recovery_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TSS_Recovery_Tests::rng
    - data
    - Test::Result::test_success
    - std::to_string
    - std::vector::push_back
    - std::vector::erase
    - Botan::RTSS_Share::reconstruct
    - std::vector::reserve
    - Botan::RTSS_Share
    - Test::Result::test_bin_eq
    - size
    - std::vector::begin
    - get_req_bin_list
    - get_req_sz
    - Test::Result::test_failure
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::TSS_Generation_Tests::TSS_Generation_Tests
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Generation_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: Botan_Tests::TSS_Generation_Tests::tss_hash_len
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 1
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: size_t
    signature: size_t tss_hash_len(const std::string& hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:95,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:96,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:97,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:98,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:99,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tss.cpp:100,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:101,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:103,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: Botan_Tests::TSS_Generation_Tests::tss_hash_len
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:108,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tss.cpp:116,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:116,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:119,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:119,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:122,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: Botan_Tests::TSS_Generation_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:127,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:127,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:128,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:128,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:131,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 140
    functionName: Botan_Tests::TSS_Generation_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::RTSS_Share::split
    - Test::Result::test_sz_eq
    - std::vector::begin
    - Botan_Tests::TSS_Generation_Tests::tss_hash_len
    - std::to_string
    - Botan_Tests::TSS_Generation_Tests::rng
    - std::vector::erase
    - get_req_u8
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - Test::Result::test_bin_eq
    - get_req_str
    - static_cast<uint16_t>
    - std::vector::data
    - Botan::RTSS_Share::reconstruct
    - get_req_bin_list
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::TSS_Recovery_Tests::TSS_Recovery_Tests
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Recovery_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:28,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tss.cpp:29,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tss.cpp:30,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:31,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tss.cpp:35,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:35,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:42,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:45,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: Botan_Tests::TSS_Recovery_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:51,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:51,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:53,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:54,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    - Dst: what
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tss.cpp:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 71
    functionName: Botan_Tests::TSS_Recovery_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TSS_Recovery_Tests::rng
    - data
    - Test::Result::test_success
    - std::to_string
    - std::vector::push_back
    - std::vector::erase
    - Botan::RTSS_Share::reconstruct
    - std::vector::reserve
    - Botan::RTSS_Share
    - Test::Result::test_bin_eq
    - size
    - std::vector::begin
    - get_req_bin_list
    - get_req_sz
    - Test::Result::test_failure
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::TSS_Generation_Tests::TSS_Generation_Tests
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Generation_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: Botan_Tests::TSS_Generation_Tests::tss_hash_len
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 2
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: size_t
    signature: size_t tss_hash_len(const std::string& hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:95,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:96,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:97,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:98,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:99,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tss.cpp:100,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:101,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:103,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: Botan_Tests::TSS_Generation_Tests::tss_hash_len
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:108,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tss.cpp:116,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:116,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:119,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:119,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:122,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: Botan_Tests::TSS_Generation_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:127,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:127,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:128,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:128,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:131,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 140
    functionName: Botan_Tests::TSS_Generation_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::RTSS_Share::split
    - Test::Result::test_sz_eq
    - std::vector::begin
    - Botan_Tests::TSS_Generation_Tests::tss_hash_len
    - std::to_string
    - Botan_Tests::TSS_Generation_Tests::rng
    - std::vector::erase
    - get_req_u8
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - Test::Result::test_bin_eq
    - get_req_str
    - static_cast<uint16_t>
    - std::vector::data
    - Botan::RTSS_Share::reconstruct
    - get_req_bin_list
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_Tests::TSS_Recovery_Tests::TSS_Recovery_Tests
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Recovery_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:28,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tss.cpp:29,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tss.cpp:30,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:31,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tss.cpp:35,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:35,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_tss.cpp:38,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:41,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:42,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:45,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: Botan_Tests::TSS_Recovery_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:51,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:51,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:53,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:54,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:57,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    - Dst: what
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tss.cpp:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 71
    functionName: Botan_Tests::TSS_Recovery_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TSS_Recovery_Tests::rng
    - data
    - Test::Result::test_success
    - std::to_string
    - std::vector::push_back
    - std::vector::erase
    - Botan::RTSS_Share::reconstruct
    - std::vector::reserve
    - Botan::RTSS_Share
    - Test::Result::test_bin_eq
    - size
    - std::vector::begin
    - get_req_bin_list
    - get_req_sz
    - Test::Result::test_failure
    - get_req_bin
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& header, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::TSS_Generation_Tests::TSS_Generation_Tests
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Generation_Tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: Botan_Tests::TSS_Generation_Tests::tss_hash_len
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 3
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: size_t
    signature: size_t tss_hash_len(const std::string& hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:95,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:96,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:97,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:98,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:99,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tss.cpp:100,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:101,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:103,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: Botan_Tests::TSS_Generation_Tests::tss_hash_len
      Src: /src/botan/src/tests/test_tss.cpp:107,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:108,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:114,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tss.cpp:116,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:116,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:119,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:119,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:122,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: Botan_Tests::TSS_Generation_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:127,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:127,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:128,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:128,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:131,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 140
    functionName: Botan_Tests::TSS_Generation_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::RTSS_Share::split
    - Test::Result::test_sz_eq
    - std::vector::begin
    - Botan_Tests::TSS_Generation_Tests::tss_hash_len
    - std::to_string
    - Botan_Tests::TSS_Generation_Tests::rng
    - std::vector::erase
    - get_req_u8
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - Test::Result::test_bin_eq
    - get_req_str
    - static_cast<uint16_t>
    - std::vector::data
    - Botan::RTSS_Share::reconstruct
    - get_req_bin_list
    - Test_Error
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:25,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:29,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:29,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:31,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:31,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:33,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:33,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:44,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:44,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:46,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:47,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:47,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:50,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:51,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:56,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:60,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:61,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:63,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:67,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:68,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:70,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:70,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:72,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:77,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:84,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:84,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:94,1
    - Dst: Botan::BufferSlicer::copy
      Src: /src/botan/src/tests/test_utils_buffer.cpp:95,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:96,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:97,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:98,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:99,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:101,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 105
    functionName: Botan_Tests::test_buffer_slicer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferSlicer::copy_as_vector
    - Botan_Tests::CHECK
    - Botan::BufferSlicer::skip
    - Botan::BufferSlicer::take
    - auto::size
    - Botan::BufferSlicer::remaining
    - Botan::BufferSlicer::copy
    - require
    - test_sz_eq
    - test_is_true
    - Botan::concat<std::vector<uint8_t>>
    - test_throws
    - test_bin_eq
    - Botan::BufferSlicer::empty
    - Botan::BufferSlicer::copy_into
    - test_u8_eq
    - Botan::BufferSlicer::copy_as_secure_vector
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_buffer_slicer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:109,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:114,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:114,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:115,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:115,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:116,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:116,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:118,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:118,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:125,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:131,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:131,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:133,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:134,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:134,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:141,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:142,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:142,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:144,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:145,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:146,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:148,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:148,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:153,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:153,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:155,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:157,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:165,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:165,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:166,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 175
    functionName: Botan_Tests::test_buffer_stuffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferStuffer::next
    - Botan::BufferStuffer::full
    - Botan::BufferStuffer::append
    - Botan_Tests::CHECK
    - auto::size
    - auto::get
    - require
    - test_sz_eq
    - test_is_true
    - std::vector::size
    - Botan::cast_uint8_ptr_to_char
    - std::vector::data
    - test_throws
    - test_str_eq
    - Botan::BufferStuffer::remaining_capacity
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_buffer_stuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:184,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:186,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:187,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:187,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:188,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:188,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:189,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:189,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:190,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:190,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:198,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:200,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:200,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:202,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:204,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:204,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:210,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:210,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:212,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:212,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:219,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:221,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:221,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:222,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:225,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:225,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:228,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:228,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:237,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:237,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:239,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:246,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:252,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:255,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:259,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:261,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:261,1
    - Dst: Botan::AlignmentBuffer::clear
      Src: /src/botan/src/tests/test_utils_buffer.cpp:262,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:265,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:268,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:268,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:275,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:277,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:277,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:278,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:281,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:281,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:284,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:284,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: auto::last
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:295,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:295,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:297,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:298,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:303,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:310,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:311,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:311,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:312,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:312,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:314,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:314,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:323,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:323,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:336,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:337,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:337,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:339,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:339,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:340,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:340,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:346,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:346,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:347,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:348,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:348,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:354,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:354,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:365,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:366,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:367,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:367,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:369,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:369,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:378,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:378,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:387,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:387,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:400,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:401,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:401,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:403,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:403,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:404,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:404,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:410,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:410,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:416,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:416,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:417,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:417,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:418,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:418,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:426,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:426,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:429,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:432,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:432,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:434,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:436,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:438,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:439,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:440,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:440,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:446,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:447,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:448,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:448,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:451,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:454,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:454,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:457,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:461,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:465,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:465,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:467,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:467,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:473,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:473,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:475,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:475,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:481,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:481,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:487,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:487,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:490,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:493,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:493,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:495,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:497,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:499,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:500,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:501,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:501,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:507,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:508,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:509,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:512,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:515,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:515,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:518,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:522,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:526,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:526,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:528,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:528,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:534,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:534,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:536,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:536,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 543
    functionName: Botan_Tests::test_alignment_buffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlignmentBuffer::AlignmentBuffer
    - test_is_true
    - Botan::AlignmentBuffer::handle_unaligned_data
    - Botan::AlignmentBuffer::size
    - empty
    - Botan::AlignmentBuffer::clear
    - auto::size
    - Botan::BufferSlicer::remaining
    - auto::value
    - Botan::AlignmentBuffer::consume_partial
    - test_bin_eq
    - Botan::AlignmentBuffer::next_aligned_block_to_process
    - Botan::AlignmentBuffer::consume
    - Botan::AlignmentBuffer::elements_until_alignment
    - require
    - auto::empty
    - Botan::AlignmentBuffer::ready_to_consume
    - auto::has_value
    - Botan::BufferSlicer::empty
    - auto::last
    - Botan_Tests::CHECK
    - Botan::concat<std::vector<uint8_t>>
    - test_sz_eq
    - Botan::AlignmentBuffer::in_alignment
    - std::vector<uint8_t>
    - Botan::AlignmentBuffer::append
    - Botan::AlignmentBuffer::elements_in_buffer
    - size
    - Botan::AlignmentBuffer::aligned_data_to_process
    - Botan::AlignmentBuffer::fill_up_with_zeros
    - auto::first
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_alignment_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:547,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:550,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:551,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:551,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:554,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:554,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:562,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:564,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:567,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:570,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:571,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:574,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:575,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:578,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:578,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:579,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:583,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:589,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: std::array<uint8_t, 1>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: std::array<uint8_t, 3>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:595,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: Botan::concat<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:604,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:605,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:608,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:609,1
    - Dst: Botan::concat<std::array<uint8_t, 10>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:612,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:613,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: std::span<const uint8_t, 5>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:617,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:618,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:622,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:623,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:628,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:633,1
    - Dst: Botan::concat<std::array<uint8_t, 4>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:634,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:635,1
    - Dst: Botan::concat<std::array<uint8_t, 20>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:636,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:639,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:652,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:653,1
    - Dst: Botan::concat<StrongV>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:656,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 660
    functionName: Botan_Tests::test_concat
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - test_is_true
    - std::span<const uint8_t, 5>
    - std::array<uint8_t, 3>
    - std::array<uint8_t, 1>
    - Botan::concat<StrongV>
    - test_bin_eq
    - Botan::concat<Botan::secure_vector<uint8_t>>
    - Botan::concat
    - auto::empty
    - Botan::secure_vector<uint8_t>
    - Botan::concat<std::array<uint8_t, 20>>
    - Botan::concat<std::array<uint8_t, 0>>
    - Botan::concat<std::array<uint8_t, 10>>
    - Botan_Tests::CHECK
    - Botan::concat<std::vector<uint8_t>>
    - std::vector<uint8_t>
    - std::array<uint8_t, 0>
    - test_throws
    - Botan::concat<std::array<uint8_t, 4>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_concat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:25,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:29,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:29,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:31,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:31,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:33,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:33,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:44,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:44,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:46,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:47,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:47,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:50,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:51,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:56,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:60,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:61,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:63,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:67,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:68,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:70,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:70,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:72,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:77,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:84,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:84,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:94,1
    - Dst: Botan::BufferSlicer::copy
      Src: /src/botan/src/tests/test_utils_buffer.cpp:95,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:96,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:97,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:98,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:99,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:101,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 105
    functionName: Botan_Tests::test_buffer_slicer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferSlicer::copy_as_vector
    - Botan_Tests::CHECK
    - Botan::BufferSlicer::skip
    - Botan::BufferSlicer::take
    - auto::size
    - Botan::BufferSlicer::remaining
    - Botan::BufferSlicer::copy
    - require
    - test_sz_eq
    - test_is_true
    - Botan::concat<std::vector<uint8_t>>
    - test_throws
    - test_bin_eq
    - Botan::BufferSlicer::empty
    - Botan::BufferSlicer::copy_into
    - test_u8_eq
    - Botan::BufferSlicer::copy_as_secure_vector
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_buffer_slicer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:109,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:114,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:114,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:115,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:115,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:116,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:116,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:118,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:118,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:125,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:131,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:131,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:133,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:134,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:134,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:141,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:142,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:142,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:144,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:145,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:146,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:148,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:148,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:153,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:153,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:155,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:157,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:165,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:165,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:166,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 175
    functionName: Botan_Tests::test_buffer_stuffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferStuffer::next
    - Botan::BufferStuffer::full
    - Botan::BufferStuffer::append
    - Botan_Tests::CHECK
    - auto::size
    - auto::get
    - require
    - test_sz_eq
    - test_is_true
    - std::vector::size
    - Botan::cast_uint8_ptr_to_char
    - std::vector::data
    - test_throws
    - test_str_eq
    - Botan::BufferStuffer::remaining_capacity
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_buffer_stuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:184,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:186,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:187,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:187,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:188,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:188,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:189,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:189,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:190,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:190,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:198,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:200,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:200,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:202,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:204,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:204,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:210,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:210,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:212,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:212,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:219,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:221,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:221,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:222,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:225,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:225,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:228,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:228,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:237,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:237,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:239,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:246,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:252,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:255,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:259,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:261,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:261,1
    - Dst: Botan::AlignmentBuffer::clear
      Src: /src/botan/src/tests/test_utils_buffer.cpp:262,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:265,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:268,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:268,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:275,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:277,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:277,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:278,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:281,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:281,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:284,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:284,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: auto::last
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:295,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:295,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:297,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:298,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:303,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:310,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:311,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:311,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:312,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:312,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:314,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:314,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:323,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:323,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:336,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:337,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:337,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:339,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:339,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:340,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:340,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:346,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:346,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:347,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:348,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:348,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:354,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:354,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:365,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:366,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:367,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:367,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:369,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:369,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:378,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:378,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:387,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:387,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:400,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:401,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:401,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:403,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:403,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:404,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:404,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:410,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:410,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:416,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:416,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:417,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:417,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:418,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:418,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:426,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:426,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:429,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:432,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:432,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:434,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:436,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:438,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:439,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:440,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:440,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:446,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:447,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:448,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:448,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:451,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:454,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:454,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:457,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:461,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:465,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:465,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:467,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:467,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:473,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:473,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:475,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:475,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:481,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:481,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:487,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:487,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:490,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:493,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:493,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:495,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:497,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:499,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:500,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:501,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:501,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:507,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:508,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:509,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:512,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:515,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:515,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:518,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:522,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:526,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:526,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:528,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:528,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:534,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:534,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:536,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:536,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 543
    functionName: Botan_Tests::test_alignment_buffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlignmentBuffer::AlignmentBuffer
    - test_is_true
    - Botan::AlignmentBuffer::handle_unaligned_data
    - Botan::AlignmentBuffer::size
    - empty
    - Botan::AlignmentBuffer::clear
    - auto::size
    - Botan::BufferSlicer::remaining
    - auto::value
    - Botan::AlignmentBuffer::consume_partial
    - test_bin_eq
    - Botan::AlignmentBuffer::next_aligned_block_to_process
    - Botan::AlignmentBuffer::consume
    - Botan::AlignmentBuffer::elements_until_alignment
    - require
    - auto::empty
    - Botan::AlignmentBuffer::ready_to_consume
    - auto::has_value
    - Botan::BufferSlicer::empty
    - auto::last
    - Botan_Tests::CHECK
    - Botan::concat<std::vector<uint8_t>>
    - test_sz_eq
    - Botan::AlignmentBuffer::in_alignment
    - std::vector<uint8_t>
    - Botan::AlignmentBuffer::append
    - Botan::AlignmentBuffer::elements_in_buffer
    - size
    - Botan::AlignmentBuffer::aligned_data_to_process
    - Botan::AlignmentBuffer::fill_up_with_zeros
    - auto::first
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_alignment_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:547,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:550,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:551,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:551,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:554,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:554,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:562,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:564,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:567,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:570,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:571,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:574,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:575,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:578,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:578,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:579,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:583,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:589,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: std::array<uint8_t, 1>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: std::array<uint8_t, 3>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:595,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: Botan::concat<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:604,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:605,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:608,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:609,1
    - Dst: Botan::concat<std::array<uint8_t, 10>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:612,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:613,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: std::span<const uint8_t, 5>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:617,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:618,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:622,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:623,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:628,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:633,1
    - Dst: Botan::concat<std::array<uint8_t, 4>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:634,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:635,1
    - Dst: Botan::concat<std::array<uint8_t, 20>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:636,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:639,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:652,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:653,1
    - Dst: Botan::concat<StrongV>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:656,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 660
    functionName: Botan_Tests::test_concat
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - test_is_true
    - std::span<const uint8_t, 5>
    - std::array<uint8_t, 3>
    - std::array<uint8_t, 1>
    - Botan::concat<StrongV>
    - test_bin_eq
    - Botan::concat<Botan::secure_vector<uint8_t>>
    - Botan::concat
    - auto::empty
    - Botan::secure_vector<uint8_t>
    - Botan::concat<std::array<uint8_t, 20>>
    - Botan::concat<std::array<uint8_t, 0>>
    - Botan::concat<std::array<uint8_t, 10>>
    - Botan_Tests::CHECK
    - Botan::concat<std::vector<uint8_t>>
    - std::vector<uint8_t>
    - std::array<uint8_t, 0>
    - test_throws
    - Botan::concat<std::array<uint8_t, 4>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_concat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:25,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:29,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:29,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:31,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:31,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:33,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:33,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:44,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:44,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:46,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:47,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:47,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:50,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:51,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:56,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:60,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:61,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:63,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:67,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:68,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:70,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:70,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:72,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:77,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:84,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:84,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:94,1
    - Dst: Botan::BufferSlicer::copy
      Src: /src/botan/src/tests/test_utils_buffer.cpp:95,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:96,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:97,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:98,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:99,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:101,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 105
    functionName: Botan_Tests::test_buffer_slicer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferSlicer::copy_as_vector
    - Botan_Tests::CHECK
    - Botan::BufferSlicer::skip
    - Botan::BufferSlicer::take
    - auto::size
    - Botan::BufferSlicer::remaining
    - Botan::BufferSlicer::copy
    - require
    - test_sz_eq
    - test_is_true
    - Botan::concat<std::vector<uint8_t>>
    - test_throws
    - test_bin_eq
    - Botan::BufferSlicer::empty
    - Botan::BufferSlicer::copy_into
    - test_u8_eq
    - Botan::BufferSlicer::copy_as_secure_vector
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_buffer_slicer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:109,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:114,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:114,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:115,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:115,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:116,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:116,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:118,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:118,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:125,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:131,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:131,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:133,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:134,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:134,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:141,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:142,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:142,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:144,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:145,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:146,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:148,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:148,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:153,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:153,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:155,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:157,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:165,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:165,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:166,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 175
    functionName: Botan_Tests::test_buffer_stuffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferStuffer::next
    - Botan::BufferStuffer::full
    - Botan::BufferStuffer::append
    - Botan_Tests::CHECK
    - auto::size
    - auto::get
    - require
    - test_sz_eq
    - test_is_true
    - std::vector::size
    - Botan::cast_uint8_ptr_to_char
    - std::vector::data
    - test_throws
    - test_str_eq
    - Botan::BufferStuffer::remaining_capacity
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_buffer_stuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:184,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:186,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:187,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:187,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:188,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:188,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:189,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:189,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:190,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:190,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:198,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:200,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:200,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:202,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:204,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:204,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:210,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:210,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:212,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:212,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:219,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:221,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:221,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:222,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:225,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:225,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:228,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:228,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:237,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:237,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:239,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:246,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:252,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:255,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:259,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:261,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:261,1
    - Dst: Botan::AlignmentBuffer::clear
      Src: /src/botan/src/tests/test_utils_buffer.cpp:262,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:265,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:268,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:268,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:275,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:277,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:277,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:278,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:281,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:281,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:284,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:284,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: auto::last
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:295,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:295,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:297,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:298,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:303,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:310,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:311,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:311,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:312,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:312,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:314,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:314,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:323,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:323,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:336,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:337,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:337,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:339,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:339,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:340,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:340,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:346,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:346,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:347,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:348,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:348,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:354,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:354,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:365,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:366,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:367,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:367,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:369,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:369,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:378,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:378,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:387,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:387,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:400,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:401,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:401,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:403,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:403,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:404,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:404,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:410,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:410,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:416,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:416,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:417,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:417,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:418,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:418,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:426,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:426,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:429,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:432,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:432,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:434,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:436,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:438,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:439,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:440,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:440,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:446,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:447,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:448,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:448,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:451,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:454,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:454,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:457,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:461,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:465,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:465,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:467,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:467,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:473,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:473,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:475,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:475,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:481,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:481,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:487,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:487,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:490,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:493,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:493,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:495,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:497,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:499,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:500,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:501,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:501,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:507,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:508,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:509,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:512,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:515,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:515,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:518,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:522,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:526,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:526,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:528,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:528,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:534,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:534,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:536,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:536,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 543
    functionName: Botan_Tests::test_alignment_buffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlignmentBuffer::AlignmentBuffer
    - test_is_true
    - Botan::AlignmentBuffer::handle_unaligned_data
    - Botan::AlignmentBuffer::size
    - empty
    - Botan::AlignmentBuffer::clear
    - auto::size
    - Botan::BufferSlicer::remaining
    - auto::value
    - Botan::AlignmentBuffer::consume_partial
    - test_bin_eq
    - Botan::AlignmentBuffer::next_aligned_block_to_process
    - Botan::AlignmentBuffer::consume
    - Botan::AlignmentBuffer::elements_until_alignment
    - require
    - auto::empty
    - Botan::AlignmentBuffer::ready_to_consume
    - auto::has_value
    - Botan::BufferSlicer::empty
    - auto::last
    - Botan_Tests::CHECK
    - Botan::concat<std::vector<uint8_t>>
    - test_sz_eq
    - Botan::AlignmentBuffer::in_alignment
    - std::vector<uint8_t>
    - Botan::AlignmentBuffer::append
    - Botan::AlignmentBuffer::elements_in_buffer
    - size
    - Botan::AlignmentBuffer::aligned_data_to_process
    - Botan::AlignmentBuffer::fill_up_with_zeros
    - auto::first
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_alignment_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:547,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:550,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:551,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:551,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:554,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:554,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:562,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:564,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:567,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:570,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:571,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:574,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:575,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:578,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:578,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:579,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:583,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:589,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: std::array<uint8_t, 1>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: std::array<uint8_t, 3>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:595,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: Botan::concat<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:604,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:605,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:608,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:609,1
    - Dst: Botan::concat<std::array<uint8_t, 10>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:612,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:613,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: std::span<const uint8_t, 5>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:617,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:618,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:622,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:623,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:628,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:633,1
    - Dst: Botan::concat<std::array<uint8_t, 4>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:634,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:635,1
    - Dst: Botan::concat<std::array<uint8_t, 20>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:636,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:639,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:652,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:653,1
    - Dst: Botan::concat<StrongV>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:656,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 660
    functionName: Botan_Tests::test_concat
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - test_is_true
    - std::span<const uint8_t, 5>
    - std::array<uint8_t, 3>
    - std::array<uint8_t, 1>
    - Botan::concat<StrongV>
    - test_bin_eq
    - Botan::concat<Botan::secure_vector<uint8_t>>
    - Botan::concat
    - auto::empty
    - Botan::secure_vector<uint8_t>
    - Botan::concat<std::array<uint8_t, 20>>
    - Botan::concat<std::array<uint8_t, 0>>
    - Botan::concat<std::array<uint8_t, 10>>
    - Botan_Tests::CHECK
    - Botan::concat<std::vector<uint8_t>>
    - std::vector<uint8_t>
    - std::array<uint8_t, 0>
    - test_throws
    - Botan::concat<std::array<uint8_t, 4>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_concat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:25,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:29,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:29,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:31,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:31,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:33,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:33,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:44,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:44,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:46,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:47,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:47,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:50,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:51,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:56,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:60,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:61,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:63,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:67,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:68,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:70,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:70,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:72,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: test_u8_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:76,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:77,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:84,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:84,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:94,1
    - Dst: Botan::BufferSlicer::copy
      Src: /src/botan/src/tests/test_utils_buffer.cpp:95,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:96,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:97,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:98,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:99,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:101,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 105
    functionName: Botan_Tests::test_buffer_slicer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferSlicer::copy_as_vector
    - Botan_Tests::CHECK
    - Botan::BufferSlicer::skip
    - Botan::BufferSlicer::take
    - auto::size
    - Botan::BufferSlicer::remaining
    - Botan::BufferSlicer::copy
    - require
    - test_sz_eq
    - test_is_true
    - Botan::concat<std::vector<uint8_t>>
    - test_throws
    - test_bin_eq
    - Botan::BufferSlicer::empty
    - Botan::BufferSlicer::copy_into
    - test_u8_eq
    - Botan::BufferSlicer::copy_as_secure_vector
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_buffer_slicer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:109,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:114,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:114,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:115,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:115,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:116,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:116,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:118,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:118,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:125,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:131,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:131,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:133,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:134,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:134,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:141,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:142,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:142,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:144,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:145,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:146,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:148,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:148,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:151,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:153,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:153,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:155,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:157,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:165,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:165,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:166,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: test_str_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 175
    functionName: Botan_Tests::test_buffer_stuffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferStuffer::next
    - Botan::BufferStuffer::full
    - Botan::BufferStuffer::append
    - Botan_Tests::CHECK
    - auto::size
    - auto::get
    - require
    - test_sz_eq
    - test_is_true
    - std::vector::size
    - Botan::cast_uint8_ptr_to_char
    - std::vector::data
    - test_throws
    - test_str_eq
    - Botan::BufferStuffer::remaining_capacity
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_buffer_stuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:184,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:186,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:187,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:187,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:188,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:188,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:189,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:189,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:190,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:190,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:198,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:200,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:200,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:202,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:202,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:204,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:204,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:210,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:210,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:212,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:212,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:219,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:221,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:221,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:222,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:225,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:225,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:228,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:228,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:237,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:237,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:238,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:239,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:239,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:246,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:252,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:255,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:259,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:261,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:261,1
    - Dst: Botan::AlignmentBuffer::clear
      Src: /src/botan/src/tests/test_utils_buffer.cpp:262,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:265,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:265,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:268,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:268,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:275,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:277,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:277,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:278,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:281,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:281,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:284,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:284,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: auto::last
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:295,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:295,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:297,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:298,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:303,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:310,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:311,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:311,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:312,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:312,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:314,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:314,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:323,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:323,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:336,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:337,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:337,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:339,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:339,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:340,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:340,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:346,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:346,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:347,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:347,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:348,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:348,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:354,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:354,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:365,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:366,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:366,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:367,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:367,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:369,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:369,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:378,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:378,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:387,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:387,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:400,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:401,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:401,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:403,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:403,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:404,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:404,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:410,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:410,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:416,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:416,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:417,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:417,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:418,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:418,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:426,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:426,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:429,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:432,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:432,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:434,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:436,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:438,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:439,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:440,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:440,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:446,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:447,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:448,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:448,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:451,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:454,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:454,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:457,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:461,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:465,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:465,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:467,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:467,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:473,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:473,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:475,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:475,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:481,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:481,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:487,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:487,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:490,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:493,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:493,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:495,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:497,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:499,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:500,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:501,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:501,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:507,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:508,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:509,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:509,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:512,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:515,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:515,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:518,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:522,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:526,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:526,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:528,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:528,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:534,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:534,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:536,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:536,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 543
    functionName: Botan_Tests::test_alignment_buffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlignmentBuffer::AlignmentBuffer
    - test_is_true
    - Botan::AlignmentBuffer::handle_unaligned_data
    - Botan::AlignmentBuffer::size
    - empty
    - Botan::AlignmentBuffer::clear
    - auto::size
    - Botan::BufferSlicer::remaining
    - auto::value
    - Botan::AlignmentBuffer::consume_partial
    - test_bin_eq
    - Botan::AlignmentBuffer::next_aligned_block_to_process
    - Botan::AlignmentBuffer::consume
    - Botan::AlignmentBuffer::elements_until_alignment
    - require
    - auto::empty
    - Botan::AlignmentBuffer::ready_to_consume
    - auto::has_value
    - Botan::BufferSlicer::empty
    - auto::last
    - Botan_Tests::CHECK
    - Botan::concat<std::vector<uint8_t>>
    - test_sz_eq
    - Botan::AlignmentBuffer::in_alignment
    - std::vector<uint8_t>
    - Botan::AlignmentBuffer::append
    - Botan::AlignmentBuffer::elements_in_buffer
    - size
    - Botan::AlignmentBuffer::aligned_data_to_process
    - Botan::AlignmentBuffer::fill_up_with_zeros
    - auto::first
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_alignment_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:547,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:550,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:551,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:551,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:554,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:554,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:558,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:562,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:564,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:564,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:567,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:570,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:571,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:574,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:575,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:578,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:578,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:579,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:582,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:583,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:589,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: std::array<uint8_t, 1>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: std::array<uint8_t, 3>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:595,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: Botan::concat<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:604,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:605,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:608,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:609,1
    - Dst: Botan::concat<std::array<uint8_t, 10>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:612,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:613,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: std::span<const uint8_t, 5>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:617,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:618,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:622,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:623,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_utils_buffer.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:628,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:633,1
    - Dst: Botan::concat<std::array<uint8_t, 4>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:634,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:635,1
    - Dst: Botan::concat<std::array<uint8_t, 20>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:636,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:639,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:652,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:653,1
    - Dst: Botan::concat<StrongV>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:656,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 660
    functionName: Botan_Tests::test_concat
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - test_is_true
    - std::span<const uint8_t, 5>
    - std::array<uint8_t, 3>
    - std::array<uint8_t, 1>
    - Botan::concat<StrongV>
    - test_bin_eq
    - Botan::concat<Botan::secure_vector<uint8_t>>
    - Botan::concat
    - auto::empty
    - Botan::secure_vector<uint8_t>
    - Botan::concat<std::array<uint8_t, 20>>
    - Botan::concat<std::array<uint8_t, 0>>
    - Botan::concat<std::array<uint8_t, 10>>
    - Botan_Tests::CHECK
    - Botan::concat<std::vector<uint8_t>>
    - std::vector<uint8_t>
    - std::array<uint8_t, 0>
    - test_throws
    - Botan::concat<std::array<uint8_t, 4>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_concat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls_messages.cpp:55,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:56,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:57,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tls_messages.cpp:58,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:60,1
    - Dst: Botan::TLS::Hello_Verify_Request::cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: Botan_Tests::test_hello_verify_request
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::set_key
    - Test::Result::test_bin_eq
    - Botan::TLS::Hello_Verify_Request::cookie
    - auto::final
    - auto::update_be
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_hello_verify_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan_Tests::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan_Tests::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan_Tests::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*rec_no*/, std::span<const uint8_t>
      /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan_Tests::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*session_info*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: Botan_Tests::TLS_Message_Parsing_Test::TLS_Message_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Message_Parsing_Test()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:95,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:96,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:97,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:98,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:99,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:100,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Client_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Client_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:114,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:115,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:116,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:117,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:117,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:119,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:127,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::TLS::Server_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Server_Hello_12::ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Server_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:135,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:136,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:138,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:140,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_tls_messages.cpp:144,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:146,1
    - Dst: Botan::TLS::Certificate_Status::response
      Src: /src/botan/src/tests/test_tls_messages.cpp:151,1
    - Dst: Botan::OCSP::Response::signer_name
      Src: /src/botan/src/tests/test_tls_messages.cpp:153,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:156,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:156,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:157,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:160,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:162,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:164,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:168,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:172,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:176,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:180,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:184,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:192,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:196,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:197,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:197,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:201,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 206
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte<1>
    - Botan::TLS::Protocol_Version::to_string
    - std::vector::begin
    - Test::Result::test_sz_eq
    - get_opt_str
    - Botan::TLS::Server_Hello_12::ciphersuite
    - Botan::get_byte<0>
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - Test::Result::test_success
    - std::string::empty
    - std::vector::end
    - Botan::TLS::Server_Hello_12::legacy_version
    - Botan::TLS::Alert::type_string
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - Test_Error
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::TLS::Ciphersuite::by_id
    - what
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - get_req_str
    - Botan::TLS::Certificate_Status::response
    - Botan::TLS::Server_Hello_12::extension_types
    - std::vector::push_back
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - Botan::OCSP::Response::signer_name
    - Test::Result::test_sz_lt
    - Botan::TLS::Client_Hello_12::extension_types
    - Botan::make_uint16
    - Botan::TLS::Client_Hello_12::legacy_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:211,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_hello_verify_request
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::TLS_Key_Share_CH_Generation_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Key_Share_CH_Generation_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:233,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:234,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:235,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:246,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 251
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::data
    - auto::size
    - Fixed_Output_RNG::add_entropy
    - Botan::TLS::Key_Share::serialize
    - Test::Result::test_bin_eq
    - get_opt_str
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& extension, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::TLS_Extension_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Extension_Parsing_Test()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:266,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:267,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:268,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:277,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:277,1
    - Dst: Botan::TLS::Supported_Versions::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:278,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tls_messages.cpp:280,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: Botan::TLS::Supported_Versions::supports
      Src: /src/botan/src/tests/test_tls_messages.cpp:283,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_messages.cpp:284,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:287,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: Botan::TLS::Supported_Groups::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:293,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:294,1
    - Dst: Botan::TLS::Supported_Groups::dh_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:296,1
    - Dst: Botan::TLS::Supported_Groups::ec_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:297,1
    - Dst: std::merge
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:301,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:303,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_tls_messages.cpp:304,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:306,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:307,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:307,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:309,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:313,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_tls_messages.cpp:315,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/tests/test_tls_messages.cpp:315,1
    - Dst: std::vector::cend
      Src: /src/botan/src/tests/test_tls_messages.cpp:316,1
    - Dst: static_cast<Botan::TLS::Named_Group>
      Src: /src/botan/src/tests/test_tls_messages.cpp:318,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:322,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:329,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:331,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:332,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:332,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:335,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_messages.cpp:340,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:345,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:349,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:349,1
    - Dst: Botan::TLS::Cookie::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:351,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: Botan::TLS::Cookie::get_cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:358,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:358,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:362,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:364,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:368,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:368,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:370,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:373,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:379,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:380,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:382,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:384,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:386,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:388,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:388,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 394
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - std::any_of
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    - Botan::TLS::Supported_Versions::supports
    - std::vector::cbegin
    - Botan::TLS::Signature_Algorithms_Cert::serialize
    - Botan::TLS::Supported_Groups::serialize
    - Test::Result::test_success
    - std::string::empty
    - auto::size
    - static_cast<Botan::TLS::Named_Group>
    - Botan::TLS::Cookie::get_cookie
    - Test::Result::test_failure
    - std::back_inserter
    - auto::end
    - get_req_bin
    - std::vector::size
    - auto::begin
    - Test_Error
    - std::vector::cend
    - Botan::TLS::Cookie::serialize
    - Test::Result::test_bin_eq
    - Botan::TLS::Supported_Groups::dh_groups
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Supported_Versions::serialize
    - what
    - Test::Result::test_is_true
    - get_req_str
    - auto::at
    - Botan::TLS::Key_Share::serialize
    - static_cast<uint16_t>
    - std::merge
    - Botan::TLS::Signature_Algorithms_Cert::supported_schemes
    - get_req_bin_list
    - Botan::make_uint16
    - Botan::TLS::Supported_Groups::ec_groups
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& extension, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:400,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_hello_verify_request
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 412
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::TLS_13_Message_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_13_Message_Parsing_Test()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:415,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:416,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:417,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:418,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:419,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:420,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:426,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:429,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:437,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:439,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:440,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:442,1
    - Dst: ciphersuites
      Src: /src/botan/src/tests/test_tls_messages.cpp:445,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:447,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:447,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:449,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:451,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:453,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:455,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:455,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:461,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:467,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:470,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: selected_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:473,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:475,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:481,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:482,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:486,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:488,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:490,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:490,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:491,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 496
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte<1>
    - std::visit
    - get_opt_str
    - Botan::get_byte<0>
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - std::string::empty
    - get_req_bin
    - ciphersuites
    - ciphersuite
    - extensions
    - get_opt_bin
    - Botan::TLS::Server_Hello_13::parse
    - Test::Result::test_bin_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Ciphersuite::by_id
    - what
    - Test::Result::test_is_true
    - get_req_str
    - std::vector::push_back
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - selected_version
    - Botan::make_uint16
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls_messages.cpp:55,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:56,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:57,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tls_messages.cpp:58,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:60,1
    - Dst: Botan::TLS::Hello_Verify_Request::cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: Botan_Tests::test_hello_verify_request
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::set_key
    - Test::Result::test_bin_eq
    - Botan::TLS::Hello_Verify_Request::cookie
    - auto::final
    - auto::update_be
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_hello_verify_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan_Tests::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan_Tests::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan_Tests::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*rec_no*/, std::span<const uint8_t>
      /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan_Tests::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*session_info*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: Botan_Tests::TLS_Message_Parsing_Test::TLS_Message_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Message_Parsing_Test()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:95,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:96,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:97,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:98,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:99,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:100,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Client_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Client_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:114,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:115,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:116,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:117,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:117,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:119,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:127,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::TLS::Server_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Server_Hello_12::ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Server_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:135,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:136,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:138,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:140,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_tls_messages.cpp:144,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:146,1
    - Dst: Botan::TLS::Certificate_Status::response
      Src: /src/botan/src/tests/test_tls_messages.cpp:151,1
    - Dst: Botan::OCSP::Response::signer_name
      Src: /src/botan/src/tests/test_tls_messages.cpp:153,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:156,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:156,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:157,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:160,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:162,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:164,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:168,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:172,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:176,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:180,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:184,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:192,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:196,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:197,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:197,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:201,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 206
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte<1>
    - Botan::TLS::Protocol_Version::to_string
    - std::vector::begin
    - Test::Result::test_sz_eq
    - get_opt_str
    - Botan::TLS::Server_Hello_12::ciphersuite
    - Botan::get_byte<0>
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - Test::Result::test_success
    - std::string::empty
    - std::vector::end
    - Botan::TLS::Server_Hello_12::legacy_version
    - Botan::TLS::Alert::type_string
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - Test_Error
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::TLS::Ciphersuite::by_id
    - what
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - get_req_str
    - Botan::TLS::Certificate_Status::response
    - Botan::TLS::Server_Hello_12::extension_types
    - std::vector::push_back
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - Botan::OCSP::Response::signer_name
    - Test::Result::test_sz_lt
    - Botan::TLS::Client_Hello_12::extension_types
    - Botan::make_uint16
    - Botan::TLS::Client_Hello_12::legacy_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:211,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_hello_verify_request
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::TLS_Key_Share_CH_Generation_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Key_Share_CH_Generation_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:233,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:234,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:235,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:246,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 251
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::data
    - auto::size
    - Fixed_Output_RNG::add_entropy
    - Botan::TLS::Key_Share::serialize
    - Test::Result::test_bin_eq
    - get_opt_str
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& extension, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::TLS_Extension_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Extension_Parsing_Test()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:266,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:267,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:268,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:277,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:277,1
    - Dst: Botan::TLS::Supported_Versions::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:278,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tls_messages.cpp:280,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: Botan::TLS::Supported_Versions::supports
      Src: /src/botan/src/tests/test_tls_messages.cpp:283,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_messages.cpp:284,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:287,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: Botan::TLS::Supported_Groups::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:293,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:294,1
    - Dst: Botan::TLS::Supported_Groups::dh_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:296,1
    - Dst: Botan::TLS::Supported_Groups::ec_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:297,1
    - Dst: std::merge
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:301,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:303,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_tls_messages.cpp:304,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:306,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:307,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:307,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:309,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:313,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_tls_messages.cpp:315,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/tests/test_tls_messages.cpp:315,1
    - Dst: std::vector::cend
      Src: /src/botan/src/tests/test_tls_messages.cpp:316,1
    - Dst: static_cast<Botan::TLS::Named_Group>
      Src: /src/botan/src/tests/test_tls_messages.cpp:318,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:322,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:329,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:331,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:332,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:332,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:335,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_messages.cpp:340,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:345,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:349,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:349,1
    - Dst: Botan::TLS::Cookie::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:351,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: Botan::TLS::Cookie::get_cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:358,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:358,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:362,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:364,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:368,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:368,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:370,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:373,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:379,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:380,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:382,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:384,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:386,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:388,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:388,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 394
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - std::any_of
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    - Botan::TLS::Supported_Versions::supports
    - std::vector::cbegin
    - Botan::TLS::Signature_Algorithms_Cert::serialize
    - Botan::TLS::Supported_Groups::serialize
    - Test::Result::test_success
    - std::string::empty
    - auto::size
    - static_cast<Botan::TLS::Named_Group>
    - Botan::TLS::Cookie::get_cookie
    - Test::Result::test_failure
    - std::back_inserter
    - auto::end
    - get_req_bin
    - std::vector::size
    - auto::begin
    - Test_Error
    - std::vector::cend
    - Botan::TLS::Cookie::serialize
    - Test::Result::test_bin_eq
    - Botan::TLS::Supported_Groups::dh_groups
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Supported_Versions::serialize
    - what
    - Test::Result::test_is_true
    - get_req_str
    - auto::at
    - Botan::TLS::Key_Share::serialize
    - static_cast<uint16_t>
    - std::merge
    - Botan::TLS::Signature_Algorithms_Cert::supported_schemes
    - get_req_bin_list
    - Botan::make_uint16
    - Botan::TLS::Supported_Groups::ec_groups
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& extension, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:400,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_hello_verify_request
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 412
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::TLS_13_Message_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_13_Message_Parsing_Test()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:415,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:416,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:417,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:418,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:419,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:420,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:426,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:429,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:437,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:439,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:440,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:442,1
    - Dst: ciphersuites
      Src: /src/botan/src/tests/test_tls_messages.cpp:445,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:447,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:447,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:449,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:451,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:453,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:455,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:455,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:461,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:467,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:470,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: selected_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:473,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:475,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:481,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:482,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:486,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:488,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:490,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:490,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:491,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 496
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte<1>
    - std::visit
    - get_opt_str
    - Botan::get_byte<0>
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - std::string::empty
    - get_req_bin
    - ciphersuites
    - ciphersuite
    - extensions
    - get_opt_bin
    - Botan::TLS::Server_Hello_13::parse
    - Test::Result::test_bin_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Ciphersuite::by_id
    - what
    - Test::Result::test_is_true
    - get_req_str
    - std::vector::push_back
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - selected_version
    - Botan::make_uint16
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls_messages.cpp:55,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:56,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:57,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tls_messages.cpp:58,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:60,1
    - Dst: Botan::TLS::Hello_Verify_Request::cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: Botan_Tests::test_hello_verify_request
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::set_key
    - Test::Result::test_bin_eq
    - Botan::TLS::Hello_Verify_Request::cookie
    - auto::final
    - auto::update_be
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_hello_verify_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan_Tests::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan_Tests::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan_Tests::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*rec_no*/, std::span<const uint8_t>
      /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan_Tests::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*session_info*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: Botan_Tests::TLS_Message_Parsing_Test::TLS_Message_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Message_Parsing_Test()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:95,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:96,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:97,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:98,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:99,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:100,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Client_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Client_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:114,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:115,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:116,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:117,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:117,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:119,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:127,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::TLS::Server_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Server_Hello_12::ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Server_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:135,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:136,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:138,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:140,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_tls_messages.cpp:144,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:146,1
    - Dst: Botan::TLS::Certificate_Status::response
      Src: /src/botan/src/tests/test_tls_messages.cpp:151,1
    - Dst: Botan::OCSP::Response::signer_name
      Src: /src/botan/src/tests/test_tls_messages.cpp:153,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:156,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:156,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:157,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:160,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:162,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:164,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:168,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:172,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:176,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:180,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:184,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:192,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:196,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:197,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:197,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:201,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 206
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte<1>
    - Botan::TLS::Protocol_Version::to_string
    - std::vector::begin
    - Test::Result::test_sz_eq
    - get_opt_str
    - Botan::TLS::Server_Hello_12::ciphersuite
    - Botan::get_byte<0>
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - Test::Result::test_success
    - std::string::empty
    - std::vector::end
    - Botan::TLS::Server_Hello_12::legacy_version
    - Botan::TLS::Alert::type_string
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - Test_Error
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::TLS::Ciphersuite::by_id
    - what
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - get_req_str
    - Botan::TLS::Certificate_Status::response
    - Botan::TLS::Server_Hello_12::extension_types
    - std::vector::push_back
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - Botan::OCSP::Response::signer_name
    - Test::Result::test_sz_lt
    - Botan::TLS::Client_Hello_12::extension_types
    - Botan::make_uint16
    - Botan::TLS::Client_Hello_12::legacy_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:211,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_hello_verify_request
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::TLS_Key_Share_CH_Generation_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Key_Share_CH_Generation_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:233,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:234,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:235,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:246,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 251
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::data
    - auto::size
    - Fixed_Output_RNG::add_entropy
    - Botan::TLS::Key_Share::serialize
    - Test::Result::test_bin_eq
    - get_opt_str
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& extension, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::TLS_Extension_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Extension_Parsing_Test()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:266,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:267,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:268,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:277,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:277,1
    - Dst: Botan::TLS::Supported_Versions::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:278,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tls_messages.cpp:280,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: Botan::TLS::Supported_Versions::supports
      Src: /src/botan/src/tests/test_tls_messages.cpp:283,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_messages.cpp:284,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:287,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: Botan::TLS::Supported_Groups::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:293,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:294,1
    - Dst: Botan::TLS::Supported_Groups::dh_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:296,1
    - Dst: Botan::TLS::Supported_Groups::ec_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:297,1
    - Dst: std::merge
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:301,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:303,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_tls_messages.cpp:304,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:306,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:307,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:307,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:309,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:313,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_tls_messages.cpp:315,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/tests/test_tls_messages.cpp:315,1
    - Dst: std::vector::cend
      Src: /src/botan/src/tests/test_tls_messages.cpp:316,1
    - Dst: static_cast<Botan::TLS::Named_Group>
      Src: /src/botan/src/tests/test_tls_messages.cpp:318,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:322,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:329,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:331,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:332,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:332,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:335,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_messages.cpp:340,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:345,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:349,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:349,1
    - Dst: Botan::TLS::Cookie::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:351,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: Botan::TLS::Cookie::get_cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:358,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:358,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:362,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:364,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:368,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:368,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:370,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:373,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:379,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:380,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:382,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:384,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:386,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:388,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:388,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 394
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - std::any_of
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    - Botan::TLS::Supported_Versions::supports
    - std::vector::cbegin
    - Botan::TLS::Signature_Algorithms_Cert::serialize
    - Botan::TLS::Supported_Groups::serialize
    - Test::Result::test_success
    - std::string::empty
    - auto::size
    - static_cast<Botan::TLS::Named_Group>
    - Botan::TLS::Cookie::get_cookie
    - Test::Result::test_failure
    - std::back_inserter
    - auto::end
    - get_req_bin
    - std::vector::size
    - auto::begin
    - Test_Error
    - std::vector::cend
    - Botan::TLS::Cookie::serialize
    - Test::Result::test_bin_eq
    - Botan::TLS::Supported_Groups::dh_groups
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Supported_Versions::serialize
    - what
    - Test::Result::test_is_true
    - get_req_str
    - auto::at
    - Botan::TLS::Key_Share::serialize
    - static_cast<uint16_t>
    - std::merge
    - Botan::TLS::Signature_Algorithms_Cert::supported_schemes
    - get_req_bin_list
    - Botan::make_uint16
    - Botan::TLS::Supported_Groups::ec_groups
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& extension, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:400,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_hello_verify_request
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 412
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::TLS_13_Message_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_13_Message_Parsing_Test()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:415,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:416,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:417,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:418,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:419,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:420,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:426,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:429,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:437,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:439,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:440,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:442,1
    - Dst: ciphersuites
      Src: /src/botan/src/tests/test_tls_messages.cpp:445,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:447,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:447,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:449,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:451,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:453,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:455,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:455,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:461,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:467,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:470,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: selected_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:473,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:475,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:481,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:482,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:486,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:488,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:490,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:490,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:491,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 496
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte<1>
    - std::visit
    - get_opt_str
    - Botan::get_byte<0>
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - std::string::empty
    - get_req_bin
    - ciphersuites
    - ciphersuite
    - extensions
    - get_opt_bin
    - Botan::TLS::Server_Hello_13::parse
    - Test::Result::test_bin_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Ciphersuite::by_id
    - what
    - Test::Result::test_is_true
    - get_req_str
    - std::vector::push_back
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - selected_version
    - Botan::make_uint16
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls_messages.cpp:55,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:56,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:57,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tls_messages.cpp:58,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:60,1
    - Dst: Botan::TLS::Hello_Verify_Request::cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: Botan_Tests::test_hello_verify_request
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - auto::set_key
    - Test::Result::test_bin_eq
    - Botan::TLS::Hello_Verify_Request::cookie
    - auto::final
    - auto::update_be
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_hello_verify_request()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan_Tests::Test_Callbacks::Test_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Callbacks(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan_Tests::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan_Tests::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*rec_no*/, std::span<const uint8_t>
      /*data*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_Tests::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert /*alert*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan_Tests::Test_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& /*session_info*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: Botan_Tests::TLS_Message_Parsing_Test::TLS_Message_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Message_Parsing_Test()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:95,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:96,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:97,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:98,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:99,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:100,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Client_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:112,1
    - Dst: Botan::TLS::Client_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:114,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:115,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:116,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:117,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:117,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:119,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:127,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::TLS::Server_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Server_Hello_12::ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:133,1
    - Dst: Botan::TLS::Server_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:135,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:136,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:138,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:138,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:140,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_tls_messages.cpp:144,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:146,1
    - Dst: Botan::TLS::Certificate_Status::response
      Src: /src/botan/src/tests/test_tls_messages.cpp:151,1
    - Dst: Botan::OCSP::Response::signer_name
      Src: /src/botan/src/tests/test_tls_messages.cpp:153,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:156,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:156,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:157,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:160,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:162,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:164,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:168,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:172,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:176,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:180,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:184,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:192,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:196,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:197,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:197,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:201,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 206
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte<1>
    - Botan::TLS::Protocol_Version::to_string
    - std::vector::begin
    - Test::Result::test_sz_eq
    - get_opt_str
    - Botan::TLS::Server_Hello_12::ciphersuite
    - Botan::get_byte<0>
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - Test::Result::test_success
    - std::string::empty
    - std::vector::end
    - Botan::TLS::Server_Hello_12::legacy_version
    - Botan::TLS::Alert::type_string
    - Test::Result::test_failure
    - get_req_bin
    - std::vector::size
    - Test_Error
    - get_opt_bin
    - Test::Result::test_bin_eq
    - Botan::TLS::Ciphersuite::by_id
    - what
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - get_req_str
    - Botan::TLS::Certificate_Status::response
    - Botan::TLS::Server_Hello_12::extension_types
    - std::vector::push_back
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - Botan::OCSP::Response::signer_name
    - Test::Result::test_sz_lt
    - Botan::TLS::Client_Hello_12::extension_types
    - Botan::make_uint16
    - Botan::TLS::Client_Hello_12::legacy_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:211,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_hello_verify_request
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::TLS_Key_Share_CH_Generation_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Key_Share_CH_Generation_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:233,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:234,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:235,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:243,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:246,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 251
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - auto::data
    - auto::size
    - Fixed_Output_RNG::add_entropy
    - Botan::TLS::Key_Share::serialize
    - Test::Result::test_bin_eq
    - get_opt_str
    - get_req_bin
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& extension, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::TLS_Extension_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Extension_Parsing_Test()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:266,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:267,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:268,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:277,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:277,1
    - Dst: Botan::TLS::Supported_Versions::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:278,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tls_messages.cpp:280,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: Botan::TLS::Supported_Versions::supports
      Src: /src/botan/src/tests/test_tls_messages.cpp:283,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_messages.cpp:284,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:287,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: Botan::TLS::Supported_Groups::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:293,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:294,1
    - Dst: Botan::TLS::Supported_Groups::dh_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:296,1
    - Dst: Botan::TLS::Supported_Groups::ec_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:297,1
    - Dst: std::merge
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:301,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:303,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_tls_messages.cpp:304,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:306,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:307,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:307,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:309,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:311,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:313,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_tls_messages.cpp:315,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/tests/test_tls_messages.cpp:315,1
    - Dst: std::vector::cend
      Src: /src/botan/src/tests/test_tls_messages.cpp:316,1
    - Dst: static_cast<Botan::TLS::Named_Group>
      Src: /src/botan/src/tests/test_tls_messages.cpp:318,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:322,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:329,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:331,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:332,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:332,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:335,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:337,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_messages.cpp:340,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:345,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:349,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:349,1
    - Dst: Botan::TLS::Cookie::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:351,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:352,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: Botan::TLS::Cookie::get_cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:358,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:358,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:362,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:364,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:368,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:368,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:370,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:373,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:379,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:380,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:382,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:384,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:386,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:388,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:388,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 394
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - std::any_of
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    - Botan::TLS::Supported_Versions::supports
    - std::vector::cbegin
    - Botan::TLS::Signature_Algorithms_Cert::serialize
    - Botan::TLS::Supported_Groups::serialize
    - Test::Result::test_success
    - std::string::empty
    - auto::size
    - static_cast<Botan::TLS::Named_Group>
    - Botan::TLS::Cookie::get_cookie
    - Test::Result::test_failure
    - std::back_inserter
    - auto::end
    - get_req_bin
    - std::vector::size
    - auto::begin
    - Test_Error
    - std::vector::cend
    - Botan::TLS::Cookie::serialize
    - Test::Result::test_bin_eq
    - Botan::TLS::Supported_Groups::dh_groups
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Supported_Versions::serialize
    - what
    - Test::Result::test_is_true
    - get_req_str
    - auto::at
    - Botan::TLS::Key_Share::serialize
    - static_cast<uint16_t>
    - std::merge
    - Botan::TLS::Signature_Algorithms_Cert::supported_schemes
    - get_req_bin_list
    - Botan::make_uint16
    - Botan::TLS::Supported_Groups::ec_groups
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& extension, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:400,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - test_hello_verify_request
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 412
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::TLS_13_Message_Parsing_Test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_13_Message_Parsing_Test()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:415,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:416,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:417,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:418,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:419,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:420,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:426,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:429,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:437,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:439,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:440,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:440,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:442,1
    - Dst: ciphersuites
      Src: /src/botan/src/tests/test_tls_messages.cpp:445,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:447,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:447,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:449,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:451,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:453,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:455,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:455,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:461,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:467,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:470,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: selected_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:473,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:475,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:478,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:481,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:482,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:486,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:488,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:490,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:490,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_tls_messages.cpp:491,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 496
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte<1>
    - std::visit
    - get_opt_str
    - Botan::get_byte<0>
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - std::string::empty
    - get_req_bin
    - ciphersuites
    - ciphersuite
    - extensions
    - get_opt_bin
    - Botan::TLS::Server_Hello_13::parse
    - Test::Result::test_bin_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Ciphersuite::by_id
    - what
    - Test::Result::test_is_true
    - get_req_str
    - std::vector::push_back
    - Test::Result::test_str_eq
    - static_cast<uint16_t>
    - selected_version
    - Botan::make_uint16
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:44,1
    - Dst: Botan_Tests::Filter_Tests::test_secqueue
      Src: /src/botan/src/tests/test_filters.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:45,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink
      Src: /src/botan/src/tests/test_filters.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:46,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink_flush
      Src: /src/botan/src/tests/test_filters.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:47,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_io
      Src: /src/botan/src/tests/test_filters.cpp:47,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:48,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_fd_io
      Src: /src/botan/src/tests/test_filters.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:49,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_errors
      Src: /src/botan/src/tests/test_filters.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:50,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_hash
      Src: /src/botan/src/tests/test_filters.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:51,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_mac
      Src: /src/botan/src/tests/test_filters.cpp:51,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:52,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_stream
      Src: /src/botan/src/tests/test_filters.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:53,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_cbc
      Src: /src/botan/src/tests/test_filters.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:54,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_cfb
      Src: /src/botan/src/tests/test_filters.cpp:54,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:55,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_compress
      Src: /src/botan/src/tests/test_filters.cpp:55,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:56,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
      Src: /src/botan/src/tests/test_filters.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:57,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_codec
      Src: /src/botan/src/tests/test_filters.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:58,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_filters.cpp:58,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:59,1
    - Dst: Botan_Tests::Filter_Tests::test_chain
      Src: /src/botan/src/tests/test_filters.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:60,1
    - Dst: Botan_Tests::Filter_Tests::test_threaded_fork
      Src: /src/botan/src/tests/test_filters.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Filter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Filter_Tests::test_pipe_mac
    - Botan_Tests::Filter_Tests::test_pipe_errors
    - Botan_Tests::Filter_Tests::test_pipe_hash
    - Botan_Tests::Filter_Tests::test_fork
    - Botan_Tests::Filter_Tests::test_data_src_sink_flush
    - Botan_Tests::Filter_Tests::test_secqueue
    - Botan_Tests::Filter_Tests::test_pipe_cbc
    - std::vector::push_back
    - Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    - Botan_Tests::Filter_Tests::test_chain
    - Botan_Tests::Filter_Tests::test_pipe_fd_io
    - Botan_Tests::Filter_Tests::test_threaded_fork
    - Botan_Tests::Filter_Tests::test_pipe_stream
    - Botan_Tests::Filter_Tests::test_pipe_codec
    - Botan_Tests::Filter_Tests::test_data_src_sink
    - Botan_Tests::Filter_Tests::test_pipe_compress
    - Botan_Tests::Filter_Tests::test_pipe_io
    - Botan_Tests::Filter_Tests::test_pipe_cfb
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SecureQueue::SecureQueue
      Src: /src/botan/src/tests/test_filters.cpp:70,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: Botan::SecureQueue::attachable
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: Botan::SecureQueue::write
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Botan::SecureQueue::size
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:79,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:79,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:80,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:80,1
    - Dst: Botan::SecureQueue::read_byte
      Src: /src/botan/src/tests/test_filters.cpp:82,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:83,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_filters.cpp:86,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:87,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:89,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:89,1
    - Dst: Botan::SecureQueue::SecureQueue
      Src: /src/botan/src/tests/test_filters.cpp:91,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:93,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:95,1
    - Dst: what
      Src: /src/botan/src/tests/test_filters.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 99
    functionName: Botan_Tests::Filter_Tests::test_secqueue
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - std::vector::at
    - Botan::SecureQueue::get_bytes_read
    - Botan::SecureQueue::write
    - Botan::SecureQueue::check_available
    - Botan::SecureQueue::attachable
    - Botan::SecureQueue::read_byte
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::SecureQueue::SecureQueue
    - Botan::SecureQueue::size
    - Test::Result::test_is_false
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_secqueue()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:107,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:107,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:110,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:112,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:115,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:117,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:117,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:121,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:123,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::DataSink_Stream::DataSink_Stream
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_data_src_sink()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_filters.cpp:133,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_filters.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:135,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:141,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:141,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:144,1
    - Dst: std::ifstream::rdbuf
      Src: /src/botan/src/tests/test_filters.cpp:148,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:150,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:150,1
    - Dst: std::ofstream::close
      Src: /src/botan/src/tests/test_filters.cpp:153,1
    - Dst: std::ifstream::close
      Src: /src/botan/src/tests/test_filters.cpp:154,1
    - Dst: std::remove
      Src: /src/botan/src/tests/test_filters.cpp:156,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_filters.cpp:156,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 161
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink_flush
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - std::remove
    - std::string::empty
    - Test::Result::test_str_eq
    - Botan_Tests::Test::temp_file_name
    - std::ifstream::close
    - Botan::Pipe::process_msg
    - Test::Result::test_failure
    - Botan::Hex_Decoder::Hex_Decoder
    - std::ifstream::rdbuf
    - std::string::c_str
    - Botan::DataSink_Stream::DataSink_Stream
    - std::ofstream::close
    - std::stringstream::str
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_data_src_sink_flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:167,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:169,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:173,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:173,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:176,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:178,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:180,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:182,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 186
    functionName: Botan_Tests::Filter_Tests::test_pipe_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::Pipe::process_msg
    - Botan::Pipe::set_default_msg
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Pipe::Pipe
      Src: /src/botan/src/tests/test_filters.cpp:191,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:193,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:194,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:195,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:196,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:197,1
    - Dst: std::make_shared<Botan::SecureQueue>
      Src: /src/botan/src/tests/test_filters.cpp:199,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:202,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:205,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:206,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:206,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:208,1
    - Dst: Botan::BitBucket::BitBucket
      Src: /src/botan/src/tests/test_filters.cpp:208,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:209,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:211,1
    - Dst: Botan::BitBucket::BitBucket
      Src: /src/botan/src/tests/test_filters.cpp:211,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:212,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:214,1
    - Dst: std::make_unique<Botan::BitBucket>
      Src: /src/botan/src/tests/test_filters.cpp:216,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:220,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:221,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:221,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:224,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:225,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:228,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:229,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:229,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:231,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:232,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:232,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:234,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:234,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:236,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:238,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:239,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:239,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:242,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:243,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:243,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:246,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:248,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:251,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:252,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 256
    functionName: Botan_Tests::Filter_Tests::test_pipe_errors
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Pipe::append_filter
    - Botan::Pipe::end_msg
    - Botan::Pipe::read
    - Botan::Pipe::Pipe
    - auto::get
    - std::make_unique<Botan::BitBucket>
    - Botan::Pipe::append
    - Botan::Pipe::prepend_filter
    - Botan::Pipe::prepend
    - Botan::Pipe::pop
    - Botan::BitBucket::BitBucket
    - Test::Result::test_throws
    - std::make_shared<Botan::SecureQueue>
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_errors()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MAC_Filter::MAC_Filter
      Src: /src/botan/src/tests/test_filters.cpp:264,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:266,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:266,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:268,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:270,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:270,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:274,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:275,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:276,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:278,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:278,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:279,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:279,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:280,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Filter_Tests::test_pipe_mac
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::MAC_Filter::MAC_Filter
    - Test::Result::test_str_eq
    - Botan::Pipe::process_msg
    - Botan::InitializationVector
    - Test::Result::test_throws
    - Botan::Pipe::read_all_as_string
    - Botan::Keyed_Filter*::set_iv
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_mac()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:291,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:295,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:295,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:297,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:299,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:300,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:300,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:301,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:302,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:304,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:304,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:305,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:305,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Botan::Pipe::peek
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:321,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:321,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:322,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:322,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:324,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:325,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:327,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:332,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:332,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:333,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 337
    functionName: Botan_Tests::Filter_Tests::test_pipe_hash
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Pipe::append
    - Test::Result::test_sz_eq
    - Botan::Chain::Chain
    - Botan::Pipe::get_bytes_read
    - Botan::Pipe::read
    - Botan::Pipe::reset
    - Botan::Pipe::peek
    - Botan::Pipe::end_of_data
    - Botan::Pipe::write
    - Botan::Pipe::message_count
    - Botan::Pipe::remaining
    - Test::Result::test_bin_eq
    - Botan::Pipe::prepend
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::pop
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher
      Src: /src/botan/src/tests/test_filters.cpp:369,1
    - Dst: get_cipher
      Src: /src/botan/src/tests/test_filters.cpp:372,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:373,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:374,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:374,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:377,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:378,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:379,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:381,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:384,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:384,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:385,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:385,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:387,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:388,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:388,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:391,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 397
    functionName: Botan_Tests::Filter_Tests::test_pipe_cfb
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_encode
    - Botan::Pipe::end_msg
    - get_cipher
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Keyed_Filter*::set_iv
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_cfb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_filters.cpp:404,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:403,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Botan::Cipher_Mode_Filter*::name
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:408,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:408,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:411,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:411,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:412,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:412,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:417,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:417,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:418,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:418,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:420,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:422,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:422,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:423,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:423,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:424,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:427,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:430,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:431,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:432,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:433,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:436,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:437,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_filters.cpp:440,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:439,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:441,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:442,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:442,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:443,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:443,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:446,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:446,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:450,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:451,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:452,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:454,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:455,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:455,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:456,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 462
    functionName: Botan_Tests::Filter_Tests::test_pipe_cbc
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Cipher_Mode_Filter*::set_key
    - Botan::SymmetricKey
    - Botan::Pipe::get_bytes_read
    - Test::Result::test_sz_eq
    - Botan::Pipe::append
    - Botan::Cipher_Mode_Filter*::name
    - auto::size
    - Botan::Cipher_Mode_Filter*::valid_iv_length
    - Botan::secure_vector::size
    - Botan::Pipe::write
    - Botan::Cipher_Mode::create
    - Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
    - Botan::Cipher_Mode_Filter*::key_spec
    - Botan::Pipe::message_count
    - Test::Result::test_bin_eq
    - Botan::InitializationVector
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::Pipe::set_default_msg
    - Botan::Cipher_Mode_Filter*::set_iv
    - Test::Result::test_str_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_cbc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Compression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:469,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:471,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:471,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:472,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:476,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:477,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:478,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:480,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:484,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:485,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:485,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:486,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:486,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:487,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:489,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:491,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 496
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Botan::Compression_Filter>
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::end_msg
    - auto::size
    - Test::Result::test_str_eq
    - std::string::size
    - Test::Result::test_sz_lt
    - auto::name
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_compress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Compression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:503,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:505,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:505,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:506,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:510,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:511,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:512,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:514,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:517,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:518,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:518,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:519,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:519,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:520,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:522,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:524,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 529
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Botan::Compression_Filter>
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::end_msg
    - Test::Result::test_str_eq
    - auto::name
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_compress_bzip2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:535,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:537,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:537,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:539,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:541,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:541,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:542,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:542,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:544,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:546,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Base64_Decoder::Base64_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:549,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:551,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:551,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:553,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:554,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:557,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:559,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:560,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:560,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:562,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:562,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:564,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:565,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:566,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:568,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:568,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:569,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:570,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:570,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:574,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:575,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:575,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:576,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:576,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:580,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:581,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:582,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:584,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:586,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:586,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:587,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:590,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:591,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:591,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:592,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:593,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:594,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:597,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:598,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:598,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:599,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:600,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 606
    functionName: Botan_Tests::Filter_Tests::test_pipe_codec
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Base64_Decoder::Base64_Decoder
    - Botan::Pipe::message_count
    - Botan::Pipe::remaining
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::reset
    - Test::Result::test_str_eq
    - Botan::Pipe::append
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Test::Result::test_bin_eq
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::set_default_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_codec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher_Filter::StreamCipher_Filter
      Src: /src/botan/src/tests/test_filters.cpp:616,1
    - Dst: Botan::Keyed_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:618,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:619,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:621,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:623,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:623,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:624,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:624,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:626,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:627,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 630
    functionName: Botan_Tests::Filter_Tests::test_pipe_stream
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::StreamCipher_Filter::StreamCipher_Filter
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Keyed_Filter*::set_key
    - Botan::Pipe::read_all
    - Botan::Keyed_Filter*::set_iv
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Botan::Fork::Fork
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:638,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:638,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:639,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:643,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:644,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:645,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 649
    functionName: Botan_Tests::Filter_Tests::test_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 5
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::Hash_Filter::Hash_Filter
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Fork::Fork
    - Test::Result::test_bin_eq
    - Botan::Pipe::read_all
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_fork()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:657,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:657,1
    - Dst: std::make_unique<Botan::Chain>
      Src: /src/botan/src/tests/test_filters.cpp:659,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:661,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:661,1
    - Dst: std::make_unique<Botan::Fork>
      Src: /src/botan/src/tests/test_filters.cpp:663,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:666,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:666,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:667,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:670,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:671,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:671,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:673,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:674,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:675,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 679
    functionName: Botan_Tests::Filter_Tests::test_chain
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - Botan::Hash_Filter::Hash_Filter
    - auto::name
    - Botan::Chain::Chain
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - std::make_unique<Botan::Chain>
    - Botan::Pipe::read_all_as_string
    - auto::release
    - std::make_unique<Botan::Fork>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_chain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_filters.cpp:686,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:690,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:691,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:693,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_filters.cpp:695,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:697,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:699,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_filters.cpp:700,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:702,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 708
    functionName: Botan_Tests::Filter_Tests::test_pipe_fd_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - Botan::Pipe::end_msg
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - ::pipe
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_fd_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:717,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:718,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:718,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:721,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:721,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:722,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:722,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:724,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:729,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:732,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:732,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:734,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:734,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:736,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:738,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:739,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:741,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:743,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:743,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:745,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:746,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 750
    functionName: Botan_Tests::Filter_Tests::test_threaded_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::reset
    - Test::Result::test_str_eq
    - Botan::Threaded_Fork::Threaded_Fork
    - Botan::Hash_Filter::Hash_Filter
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::append
    - Test::Result::test_bin_eq
    - Botan::Pipe::read_all
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::write
    - static_cast<uint8_t>
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_threaded_fork()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:44,1
    - Dst: Botan_Tests::Filter_Tests::test_secqueue
      Src: /src/botan/src/tests/test_filters.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:45,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink
      Src: /src/botan/src/tests/test_filters.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:46,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink_flush
      Src: /src/botan/src/tests/test_filters.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:47,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_io
      Src: /src/botan/src/tests/test_filters.cpp:47,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:48,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_fd_io
      Src: /src/botan/src/tests/test_filters.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:49,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_errors
      Src: /src/botan/src/tests/test_filters.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:50,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_hash
      Src: /src/botan/src/tests/test_filters.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:51,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_mac
      Src: /src/botan/src/tests/test_filters.cpp:51,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:52,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_stream
      Src: /src/botan/src/tests/test_filters.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:53,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_cbc
      Src: /src/botan/src/tests/test_filters.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:54,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_cfb
      Src: /src/botan/src/tests/test_filters.cpp:54,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:55,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_compress
      Src: /src/botan/src/tests/test_filters.cpp:55,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:56,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
      Src: /src/botan/src/tests/test_filters.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:57,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_codec
      Src: /src/botan/src/tests/test_filters.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:58,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_filters.cpp:58,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:59,1
    - Dst: Botan_Tests::Filter_Tests::test_chain
      Src: /src/botan/src/tests/test_filters.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:60,1
    - Dst: Botan_Tests::Filter_Tests::test_threaded_fork
      Src: /src/botan/src/tests/test_filters.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Filter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Filter_Tests::test_pipe_mac
    - Botan_Tests::Filter_Tests::test_pipe_errors
    - Botan_Tests::Filter_Tests::test_pipe_hash
    - Botan_Tests::Filter_Tests::test_fork
    - Botan_Tests::Filter_Tests::test_data_src_sink_flush
    - Botan_Tests::Filter_Tests::test_secqueue
    - Botan_Tests::Filter_Tests::test_pipe_cbc
    - std::vector::push_back
    - Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    - Botan_Tests::Filter_Tests::test_chain
    - Botan_Tests::Filter_Tests::test_pipe_fd_io
    - Botan_Tests::Filter_Tests::test_threaded_fork
    - Botan_Tests::Filter_Tests::test_pipe_stream
    - Botan_Tests::Filter_Tests::test_pipe_codec
    - Botan_Tests::Filter_Tests::test_data_src_sink
    - Botan_Tests::Filter_Tests::test_pipe_compress
    - Botan_Tests::Filter_Tests::test_pipe_io
    - Botan_Tests::Filter_Tests::test_pipe_cfb
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SecureQueue::SecureQueue
      Src: /src/botan/src/tests/test_filters.cpp:70,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: Botan::SecureQueue::attachable
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: Botan::SecureQueue::write
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Botan::SecureQueue::size
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:79,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:79,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:80,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:80,1
    - Dst: Botan::SecureQueue::read_byte
      Src: /src/botan/src/tests/test_filters.cpp:82,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:83,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_filters.cpp:86,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:87,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:89,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:89,1
    - Dst: Botan::SecureQueue::SecureQueue
      Src: /src/botan/src/tests/test_filters.cpp:91,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:93,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:95,1
    - Dst: what
      Src: /src/botan/src/tests/test_filters.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 99
    functionName: Botan_Tests::Filter_Tests::test_secqueue
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - std::vector::at
    - Botan::SecureQueue::get_bytes_read
    - Botan::SecureQueue::write
    - Botan::SecureQueue::check_available
    - Botan::SecureQueue::attachable
    - Botan::SecureQueue::read_byte
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::SecureQueue::SecureQueue
    - Botan::SecureQueue::size
    - Test::Result::test_is_false
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_secqueue()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:107,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:107,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:110,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:112,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:115,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:117,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:117,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:121,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:123,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::DataSink_Stream::DataSink_Stream
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_data_src_sink()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_filters.cpp:133,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_filters.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:135,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:141,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:141,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:144,1
    - Dst: std::ifstream::rdbuf
      Src: /src/botan/src/tests/test_filters.cpp:148,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:150,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:150,1
    - Dst: std::ofstream::close
      Src: /src/botan/src/tests/test_filters.cpp:153,1
    - Dst: std::ifstream::close
      Src: /src/botan/src/tests/test_filters.cpp:154,1
    - Dst: std::remove
      Src: /src/botan/src/tests/test_filters.cpp:156,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_filters.cpp:156,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 161
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink_flush
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - std::remove
    - std::string::empty
    - Test::Result::test_str_eq
    - Botan_Tests::Test::temp_file_name
    - std::ifstream::close
    - Botan::Pipe::process_msg
    - Test::Result::test_failure
    - Botan::Hex_Decoder::Hex_Decoder
    - std::ifstream::rdbuf
    - std::string::c_str
    - Botan::DataSink_Stream::DataSink_Stream
    - std::ofstream::close
    - std::stringstream::str
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_data_src_sink_flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:167,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:169,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:173,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:173,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:176,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:178,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:180,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:182,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 186
    functionName: Botan_Tests::Filter_Tests::test_pipe_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::Pipe::process_msg
    - Botan::Pipe::set_default_msg
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Pipe::Pipe
      Src: /src/botan/src/tests/test_filters.cpp:191,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:193,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:194,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:195,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:196,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:197,1
    - Dst: std::make_shared<Botan::SecureQueue>
      Src: /src/botan/src/tests/test_filters.cpp:199,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:202,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:205,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:206,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:206,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:208,1
    - Dst: Botan::BitBucket::BitBucket
      Src: /src/botan/src/tests/test_filters.cpp:208,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:209,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:211,1
    - Dst: Botan::BitBucket::BitBucket
      Src: /src/botan/src/tests/test_filters.cpp:211,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:212,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:214,1
    - Dst: std::make_unique<Botan::BitBucket>
      Src: /src/botan/src/tests/test_filters.cpp:216,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:220,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:221,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:221,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:224,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:225,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:228,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:229,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:229,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:231,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:232,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:232,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:234,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:234,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:236,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:238,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:239,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:239,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:242,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:243,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:243,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:246,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:248,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:251,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:252,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 256
    functionName: Botan_Tests::Filter_Tests::test_pipe_errors
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Pipe::append_filter
    - Botan::Pipe::end_msg
    - Botan::Pipe::read
    - Botan::Pipe::Pipe
    - auto::get
    - std::make_unique<Botan::BitBucket>
    - Botan::Pipe::append
    - Botan::Pipe::prepend_filter
    - Botan::Pipe::prepend
    - Botan::Pipe::pop
    - Botan::BitBucket::BitBucket
    - Test::Result::test_throws
    - std::make_shared<Botan::SecureQueue>
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_errors()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MAC_Filter::MAC_Filter
      Src: /src/botan/src/tests/test_filters.cpp:264,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:266,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:266,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:268,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:270,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:270,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:274,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:275,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:276,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:278,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:278,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:279,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:279,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:280,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Filter_Tests::test_pipe_mac
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::MAC_Filter::MAC_Filter
    - Test::Result::test_str_eq
    - Botan::Pipe::process_msg
    - Botan::InitializationVector
    - Test::Result::test_throws
    - Botan::Pipe::read_all_as_string
    - Botan::Keyed_Filter*::set_iv
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_mac()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:291,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:295,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:295,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:297,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:299,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:300,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:300,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:301,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:302,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:304,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:304,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:305,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:305,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Botan::Pipe::peek
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:321,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:321,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:322,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:322,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:324,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:325,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:327,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:332,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:332,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:333,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 337
    functionName: Botan_Tests::Filter_Tests::test_pipe_hash
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Pipe::append
    - Test::Result::test_sz_eq
    - Botan::Chain::Chain
    - Botan::Pipe::get_bytes_read
    - Botan::Pipe::read
    - Botan::Pipe::reset
    - Botan::Pipe::peek
    - Botan::Pipe::end_of_data
    - Botan::Pipe::write
    - Botan::Pipe::message_count
    - Botan::Pipe::remaining
    - Test::Result::test_bin_eq
    - Botan::Pipe::prepend
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::pop
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher
      Src: /src/botan/src/tests/test_filters.cpp:369,1
    - Dst: get_cipher
      Src: /src/botan/src/tests/test_filters.cpp:372,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:373,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:374,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:374,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:377,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:378,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:379,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:381,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:384,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:384,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:385,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:385,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:387,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:388,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:388,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:391,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 397
    functionName: Botan_Tests::Filter_Tests::test_pipe_cfb
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_encode
    - Botan::Pipe::end_msg
    - get_cipher
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Keyed_Filter*::set_iv
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_cfb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_filters.cpp:404,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:403,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Botan::Cipher_Mode_Filter*::name
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:408,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:408,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:411,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:411,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:412,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:412,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:417,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:417,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:418,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:418,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:420,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:422,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:422,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:423,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:423,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:424,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:427,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:430,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:431,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:432,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:433,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:436,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:437,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_filters.cpp:440,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:439,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:441,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:442,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:442,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:443,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:443,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:446,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:446,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:450,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:451,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:452,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:454,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:455,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:455,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:456,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 462
    functionName: Botan_Tests::Filter_Tests::test_pipe_cbc
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Cipher_Mode_Filter*::set_key
    - Botan::SymmetricKey
    - Botan::Pipe::get_bytes_read
    - Test::Result::test_sz_eq
    - Botan::Pipe::append
    - Botan::Cipher_Mode_Filter*::name
    - auto::size
    - Botan::Cipher_Mode_Filter*::valid_iv_length
    - Botan::secure_vector::size
    - Botan::Pipe::write
    - Botan::Cipher_Mode::create
    - Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
    - Botan::Cipher_Mode_Filter*::key_spec
    - Botan::Pipe::message_count
    - Test::Result::test_bin_eq
    - Botan::InitializationVector
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::Pipe::set_default_msg
    - Botan::Cipher_Mode_Filter*::set_iv
    - Test::Result::test_str_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_cbc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Compression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:469,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:471,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:471,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:472,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:476,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:477,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:478,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:480,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:484,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:485,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:485,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:486,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:486,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:487,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:489,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:491,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 496
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<Botan::Compression_Filter>
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::end_msg
    - auto::size
    - Test::Result::test_str_eq
    - std::string::size
    - Test::Result::test_sz_lt
    - auto::name
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_compress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Compression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:503,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:505,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:505,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:506,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:510,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:511,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:512,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:514,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:517,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:518,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:518,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:519,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:519,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:520,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:522,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:524,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 529
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<Botan::Compression_Filter>
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::end_msg
    - Test::Result::test_str_eq
    - auto::name
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_compress_bzip2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:535,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:537,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:537,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:539,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:541,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:541,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:542,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:542,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:544,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:546,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Base64_Decoder::Base64_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:549,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:551,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:551,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:553,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:554,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:557,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:559,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:560,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:560,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:562,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:562,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:564,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:565,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:566,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:568,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:568,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:569,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:570,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:570,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:574,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:575,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:575,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:576,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:576,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:580,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:581,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:582,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:584,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:586,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:586,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:587,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:590,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:591,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:591,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:592,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:593,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:594,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:597,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:598,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:598,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:599,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:600,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 606
    functionName: Botan_Tests::Filter_Tests::test_pipe_codec
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Base64_Decoder::Base64_Decoder
    - Botan::Pipe::message_count
    - Botan::Pipe::remaining
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::reset
    - Test::Result::test_str_eq
    - Botan::Pipe::append
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Test::Result::test_bin_eq
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::set_default_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_codec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher_Filter::StreamCipher_Filter
      Src: /src/botan/src/tests/test_filters.cpp:616,1
    - Dst: Botan::Keyed_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:618,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:619,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:621,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:623,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:623,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:624,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:624,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:626,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:627,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 630
    functionName: Botan_Tests::Filter_Tests::test_pipe_stream
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::StreamCipher_Filter::StreamCipher_Filter
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Keyed_Filter*::set_key
    - Botan::Pipe::read_all
    - Botan::Keyed_Filter*::set_iv
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Botan::Fork::Fork
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:638,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:638,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:639,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:643,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:644,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:645,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 649
    functionName: Botan_Tests::Filter_Tests::test_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 6
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::Hash_Filter::Hash_Filter
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Fork::Fork
    - Test::Result::test_bin_eq
    - Botan::Pipe::read_all
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_fork()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:657,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:657,1
    - Dst: std::make_unique<Botan::Chain>
      Src: /src/botan/src/tests/test_filters.cpp:659,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:661,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:661,1
    - Dst: std::make_unique<Botan::Fork>
      Src: /src/botan/src/tests/test_filters.cpp:663,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:666,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:666,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:667,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:670,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:671,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:671,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:673,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:674,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:675,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 679
    functionName: Botan_Tests::Filter_Tests::test_chain
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - Botan::Hash_Filter::Hash_Filter
    - auto::name
    - Botan::Chain::Chain
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - std::make_unique<Botan::Chain>
    - Botan::Pipe::read_all_as_string
    - auto::release
    - std::make_unique<Botan::Fork>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_chain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_filters.cpp:686,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:690,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:691,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:693,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_filters.cpp:695,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:697,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:699,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_filters.cpp:700,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:702,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 708
    functionName: Botan_Tests::Filter_Tests::test_pipe_fd_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - Botan::Pipe::end_msg
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - ::pipe
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_fd_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:717,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:718,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:718,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:721,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:721,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:722,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:722,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:724,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:729,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:732,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:732,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:734,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:734,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:736,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:738,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:739,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:741,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:743,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:743,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:745,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:746,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 750
    functionName: Botan_Tests::Filter_Tests::test_threaded_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::reset
    - Test::Result::test_str_eq
    - Botan::Threaded_Fork::Threaded_Fork
    - Botan::Hash_Filter::Hash_Filter
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::append
    - Test::Result::test_bin_eq
    - Botan::Pipe::read_all
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::write
    - static_cast<uint8_t>
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_threaded_fork()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:44,1
    - Dst: Botan_Tests::Filter_Tests::test_secqueue
      Src: /src/botan/src/tests/test_filters.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:45,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink
      Src: /src/botan/src/tests/test_filters.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:46,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink_flush
      Src: /src/botan/src/tests/test_filters.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:47,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_io
      Src: /src/botan/src/tests/test_filters.cpp:47,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:48,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_fd_io
      Src: /src/botan/src/tests/test_filters.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:49,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_errors
      Src: /src/botan/src/tests/test_filters.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:50,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_hash
      Src: /src/botan/src/tests/test_filters.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:51,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_mac
      Src: /src/botan/src/tests/test_filters.cpp:51,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:52,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_stream
      Src: /src/botan/src/tests/test_filters.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:53,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_cbc
      Src: /src/botan/src/tests/test_filters.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:54,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_cfb
      Src: /src/botan/src/tests/test_filters.cpp:54,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:55,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_compress
      Src: /src/botan/src/tests/test_filters.cpp:55,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:56,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
      Src: /src/botan/src/tests/test_filters.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:57,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_codec
      Src: /src/botan/src/tests/test_filters.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:58,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_filters.cpp:58,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:59,1
    - Dst: Botan_Tests::Filter_Tests::test_chain
      Src: /src/botan/src/tests/test_filters.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:60,1
    - Dst: Botan_Tests::Filter_Tests::test_threaded_fork
      Src: /src/botan/src/tests/test_filters.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Filter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Filter_Tests::test_pipe_mac
    - Botan_Tests::Filter_Tests::test_pipe_errors
    - Botan_Tests::Filter_Tests::test_pipe_hash
    - Botan_Tests::Filter_Tests::test_fork
    - Botan_Tests::Filter_Tests::test_data_src_sink_flush
    - Botan_Tests::Filter_Tests::test_secqueue
    - Botan_Tests::Filter_Tests::test_pipe_cbc
    - std::vector::push_back
    - Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    - Botan_Tests::Filter_Tests::test_chain
    - Botan_Tests::Filter_Tests::test_pipe_fd_io
    - Botan_Tests::Filter_Tests::test_threaded_fork
    - Botan_Tests::Filter_Tests::test_pipe_stream
    - Botan_Tests::Filter_Tests::test_pipe_codec
    - Botan_Tests::Filter_Tests::test_data_src_sink
    - Botan_Tests::Filter_Tests::test_pipe_compress
    - Botan_Tests::Filter_Tests::test_pipe_io
    - Botan_Tests::Filter_Tests::test_pipe_cfb
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SecureQueue::SecureQueue
      Src: /src/botan/src/tests/test_filters.cpp:70,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: Botan::SecureQueue::attachable
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: Botan::SecureQueue::write
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Botan::SecureQueue::size
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:79,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:79,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:80,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:80,1
    - Dst: Botan::SecureQueue::read_byte
      Src: /src/botan/src/tests/test_filters.cpp:82,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:83,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_filters.cpp:86,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:87,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:89,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:89,1
    - Dst: Botan::SecureQueue::SecureQueue
      Src: /src/botan/src/tests/test_filters.cpp:91,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:93,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:95,1
    - Dst: what
      Src: /src/botan/src/tests/test_filters.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 99
    functionName: Botan_Tests::Filter_Tests::test_secqueue
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - std::vector::at
    - Botan::SecureQueue::get_bytes_read
    - Botan::SecureQueue::write
    - Botan::SecureQueue::check_available
    - Botan::SecureQueue::attachable
    - Botan::SecureQueue::read_byte
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::SecureQueue::SecureQueue
    - Botan::SecureQueue::size
    - Test::Result::test_is_false
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_secqueue()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:107,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:107,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:110,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:112,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:115,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:117,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:117,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:121,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:123,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::DataSink_Stream::DataSink_Stream
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_data_src_sink()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_filters.cpp:133,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_filters.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:135,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:141,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:141,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:144,1
    - Dst: std::ifstream::rdbuf
      Src: /src/botan/src/tests/test_filters.cpp:148,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:150,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:150,1
    - Dst: std::ofstream::close
      Src: /src/botan/src/tests/test_filters.cpp:153,1
    - Dst: std::ifstream::close
      Src: /src/botan/src/tests/test_filters.cpp:154,1
    - Dst: std::remove
      Src: /src/botan/src/tests/test_filters.cpp:156,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_filters.cpp:156,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 161
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink_flush
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - std::remove
    - std::string::empty
    - Test::Result::test_str_eq
    - Botan_Tests::Test::temp_file_name
    - std::ifstream::close
    - Botan::Pipe::process_msg
    - Test::Result::test_failure
    - Botan::Hex_Decoder::Hex_Decoder
    - std::ifstream::rdbuf
    - std::string::c_str
    - Botan::DataSink_Stream::DataSink_Stream
    - std::ofstream::close
    - std::stringstream::str
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_data_src_sink_flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:167,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:169,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:173,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:173,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:176,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:178,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:180,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:182,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 186
    functionName: Botan_Tests::Filter_Tests::test_pipe_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::Pipe::process_msg
    - Botan::Pipe::set_default_msg
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Pipe::Pipe
      Src: /src/botan/src/tests/test_filters.cpp:191,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:193,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:194,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:195,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:196,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:197,1
    - Dst: std::make_shared<Botan::SecureQueue>
      Src: /src/botan/src/tests/test_filters.cpp:199,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:202,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:205,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:206,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:206,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:208,1
    - Dst: Botan::BitBucket::BitBucket
      Src: /src/botan/src/tests/test_filters.cpp:208,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:209,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:211,1
    - Dst: Botan::BitBucket::BitBucket
      Src: /src/botan/src/tests/test_filters.cpp:211,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:212,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:214,1
    - Dst: std::make_unique<Botan::BitBucket>
      Src: /src/botan/src/tests/test_filters.cpp:216,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:220,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:221,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:221,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:224,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:225,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:228,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:229,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:229,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:231,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:232,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:232,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:234,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:234,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:236,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:238,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:239,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:239,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:242,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:243,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:243,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:246,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:248,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:251,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:252,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 256
    functionName: Botan_Tests::Filter_Tests::test_pipe_errors
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Botan::Pipe::append_filter
    - Botan::Pipe::end_msg
    - Botan::Pipe::read
    - Botan::Pipe::Pipe
    - auto::get
    - std::make_unique<Botan::BitBucket>
    - Botan::Pipe::append
    - Botan::Pipe::prepend_filter
    - Botan::Pipe::prepend
    - Botan::Pipe::pop
    - Botan::BitBucket::BitBucket
    - Test::Result::test_throws
    - std::make_shared<Botan::SecureQueue>
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_errors()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MAC_Filter::MAC_Filter
      Src: /src/botan/src/tests/test_filters.cpp:264,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:266,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:266,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:268,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:270,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:270,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:274,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:275,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:276,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:278,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:278,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:279,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:279,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:280,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Filter_Tests::test_pipe_mac
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Botan::MAC_Filter::MAC_Filter
    - Test::Result::test_str_eq
    - Botan::Pipe::process_msg
    - Botan::InitializationVector
    - Test::Result::test_throws
    - Botan::Pipe::read_all_as_string
    - Botan::Keyed_Filter*::set_iv
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_mac()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:291,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:295,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:295,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:297,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:299,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:300,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:300,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:301,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:302,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:304,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:304,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:305,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:305,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Botan::Pipe::peek
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:321,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:321,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:322,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:322,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:324,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:325,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:327,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:332,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:332,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:333,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 337
    functionName: Botan_Tests::Filter_Tests::test_pipe_hash
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Pipe::append
    - Test::Result::test_sz_eq
    - Botan::Chain::Chain
    - Botan::Pipe::get_bytes_read
    - Botan::Pipe::read
    - Botan::Pipe::reset
    - Botan::Pipe::peek
    - Botan::Pipe::end_of_data
    - Botan::Pipe::write
    - Botan::Pipe::message_count
    - Botan::Pipe::remaining
    - Test::Result::test_bin_eq
    - Botan::Pipe::prepend
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::pop
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher
      Src: /src/botan/src/tests/test_filters.cpp:369,1
    - Dst: get_cipher
      Src: /src/botan/src/tests/test_filters.cpp:372,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:373,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:374,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:374,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:377,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:378,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:379,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:381,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:384,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:384,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:385,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:385,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:387,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:388,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:388,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:391,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 397
    functionName: Botan_Tests::Filter_Tests::test_pipe_cfb
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_encode
    - Botan::Pipe::end_msg
    - get_cipher
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Keyed_Filter*::set_iv
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_cfb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_filters.cpp:404,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:403,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Botan::Cipher_Mode_Filter*::name
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:408,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:408,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:411,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:411,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:412,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:412,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:417,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:417,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:418,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:418,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:420,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:422,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:422,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:423,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:423,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:424,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:427,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:430,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:431,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:432,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:433,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:436,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:437,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_filters.cpp:440,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:439,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:441,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:442,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:442,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:443,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:443,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:446,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:446,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:450,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:451,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:452,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:454,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:455,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:455,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:456,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 462
    functionName: Botan_Tests::Filter_Tests::test_pipe_cbc
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Cipher_Mode_Filter*::set_key
    - Botan::SymmetricKey
    - Botan::Pipe::get_bytes_read
    - Test::Result::test_sz_eq
    - Botan::Pipe::append
    - Botan::Cipher_Mode_Filter*::name
    - auto::size
    - Botan::Cipher_Mode_Filter*::valid_iv_length
    - Botan::secure_vector::size
    - Botan::Pipe::write
    - Botan::Cipher_Mode::create
    - Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
    - Botan::Cipher_Mode_Filter*::key_spec
    - Botan::Pipe::message_count
    - Test::Result::test_bin_eq
    - Botan::InitializationVector
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::Pipe::set_default_msg
    - Botan::Cipher_Mode_Filter*::set_iv
    - Test::Result::test_str_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_cbc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Compression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:469,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:471,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:471,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:472,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:476,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:477,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:478,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:480,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:484,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:485,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:485,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:486,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:486,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:487,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:489,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:491,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 496
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - std::make_unique<Botan::Compression_Filter>
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::end_msg
    - auto::size
    - Test::Result::test_str_eq
    - std::string::size
    - Test::Result::test_sz_lt
    - auto::name
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_compress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Compression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:503,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:505,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:505,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:506,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:510,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:511,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:512,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:514,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:517,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:518,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:518,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:519,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:519,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:520,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:522,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:524,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 529
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - std::make_unique<Botan::Compression_Filter>
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::end_msg
    - Test::Result::test_str_eq
    - auto::name
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_compress_bzip2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:535,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:537,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:537,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:539,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:541,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:541,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:542,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:542,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:544,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:546,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Base64_Decoder::Base64_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:549,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:551,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:551,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:553,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:554,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:557,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:559,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:560,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:560,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:562,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:562,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:564,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:565,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:566,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:568,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:568,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:569,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:570,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:570,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:574,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:575,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:575,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:576,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:576,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:580,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:581,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:582,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:584,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:586,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:586,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:587,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:590,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:591,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:591,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:592,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:593,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:594,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:597,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:598,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:598,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:599,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:600,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 606
    functionName: Botan_Tests::Filter_Tests::test_pipe_codec
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Botan::Base64_Decoder::Base64_Decoder
    - Botan::Pipe::message_count
    - Botan::Pipe::remaining
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::reset
    - Test::Result::test_str_eq
    - Botan::Pipe::append
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Test::Result::test_bin_eq
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::set_default_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_codec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher_Filter::StreamCipher_Filter
      Src: /src/botan/src/tests/test_filters.cpp:616,1
    - Dst: Botan::Keyed_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:618,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:619,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:621,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:623,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:623,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:624,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:624,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:626,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:627,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 630
    functionName: Botan_Tests::Filter_Tests::test_pipe_stream
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::StreamCipher_Filter::StreamCipher_Filter
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Keyed_Filter*::set_key
    - Botan::Pipe::read_all
    - Botan::Keyed_Filter*::set_iv
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Botan::Fork::Fork
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:638,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:638,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:639,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:643,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:644,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:645,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 649
    functionName: Botan_Tests::Filter_Tests::test_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 7
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::Hash_Filter::Hash_Filter
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Fork::Fork
    - Test::Result::test_bin_eq
    - Botan::Pipe::read_all
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_fork()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:657,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:657,1
    - Dst: std::make_unique<Botan::Chain>
      Src: /src/botan/src/tests/test_filters.cpp:659,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:661,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:661,1
    - Dst: std::make_unique<Botan::Fork>
      Src: /src/botan/src/tests/test_filters.cpp:663,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:666,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:666,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:667,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:670,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:671,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:671,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:673,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:674,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:675,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 679
    functionName: Botan_Tests::Filter_Tests::test_chain
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - Botan::Hash_Filter::Hash_Filter
    - auto::name
    - Botan::Chain::Chain
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - std::make_unique<Botan::Chain>
    - Botan::Pipe::read_all_as_string
    - auto::release
    - std::make_unique<Botan::Fork>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_chain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_filters.cpp:686,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:690,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:691,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:693,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_filters.cpp:695,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:697,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:699,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_filters.cpp:700,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:702,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 708
    functionName: Botan_Tests::Filter_Tests::test_pipe_fd_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - Botan::Pipe::end_msg
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - ::pipe
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_fd_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:717,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:718,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:718,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:721,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:721,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:722,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:722,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:724,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:729,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:732,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:732,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:734,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:734,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:736,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:738,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:739,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:741,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:743,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:743,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:745,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:746,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 750
    functionName: Botan_Tests::Filter_Tests::test_threaded_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 3
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::reset
    - Test::Result::test_str_eq
    - Botan::Threaded_Fork::Threaded_Fork
    - Botan::Hash_Filter::Hash_Filter
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::append
    - Test::Result::test_bin_eq
    - Botan::Pipe::read_all
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::write
    - static_cast<uint8_t>
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_threaded_fork()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:44,1
    - Dst: Botan_Tests::Filter_Tests::test_secqueue
      Src: /src/botan/src/tests/test_filters.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:45,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink
      Src: /src/botan/src/tests/test_filters.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:46,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink_flush
      Src: /src/botan/src/tests/test_filters.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:47,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_io
      Src: /src/botan/src/tests/test_filters.cpp:47,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:48,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_fd_io
      Src: /src/botan/src/tests/test_filters.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:49,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_errors
      Src: /src/botan/src/tests/test_filters.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:50,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_hash
      Src: /src/botan/src/tests/test_filters.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:51,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_mac
      Src: /src/botan/src/tests/test_filters.cpp:51,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:52,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_stream
      Src: /src/botan/src/tests/test_filters.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:53,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_cbc
      Src: /src/botan/src/tests/test_filters.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:54,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_cfb
      Src: /src/botan/src/tests/test_filters.cpp:54,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:55,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_compress
      Src: /src/botan/src/tests/test_filters.cpp:55,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:56,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
      Src: /src/botan/src/tests/test_filters.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:57,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_codec
      Src: /src/botan/src/tests/test_filters.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:58,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_filters.cpp:58,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:59,1
    - Dst: Botan_Tests::Filter_Tests::test_chain
      Src: /src/botan/src/tests/test_filters.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:60,1
    - Dst: Botan_Tests::Filter_Tests::test_threaded_fork
      Src: /src/botan/src/tests/test_filters.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: Botan_Tests::Filter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Filter_Tests::test_pipe_mac
    - Botan_Tests::Filter_Tests::test_pipe_errors
    - Botan_Tests::Filter_Tests::test_pipe_hash
    - Botan_Tests::Filter_Tests::test_fork
    - Botan_Tests::Filter_Tests::test_data_src_sink_flush
    - Botan_Tests::Filter_Tests::test_secqueue
    - Botan_Tests::Filter_Tests::test_pipe_cbc
    - std::vector::push_back
    - Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    - Botan_Tests::Filter_Tests::test_chain
    - Botan_Tests::Filter_Tests::test_pipe_fd_io
    - Botan_Tests::Filter_Tests::test_threaded_fork
    - Botan_Tests::Filter_Tests::test_pipe_stream
    - Botan_Tests::Filter_Tests::test_pipe_codec
    - Botan_Tests::Filter_Tests::test_data_src_sink
    - Botan_Tests::Filter_Tests::test_pipe_compress
    - Botan_Tests::Filter_Tests::test_pipe_io
    - Botan_Tests::Filter_Tests::test_pipe_cfb
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SecureQueue::SecureQueue
      Src: /src/botan/src/tests/test_filters.cpp:70,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: Botan::SecureQueue::attachable
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: Botan::SecureQueue::write
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Botan::SecureQueue::size
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:79,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:79,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:80,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:80,1
    - Dst: Botan::SecureQueue::read_byte
      Src: /src/botan/src/tests/test_filters.cpp:82,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:83,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_filters.cpp:86,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:87,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:89,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:89,1
    - Dst: Botan::SecureQueue::SecureQueue
      Src: /src/botan/src/tests/test_filters.cpp:91,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:93,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:95,1
    - Dst: what
      Src: /src/botan/src/tests/test_filters.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 99
    functionName: Botan_Tests::Filter_Tests::test_secqueue
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - std::vector::at
    - Botan::SecureQueue::get_bytes_read
    - Botan::SecureQueue::write
    - Botan::SecureQueue::check_available
    - Botan::SecureQueue::attachable
    - Botan::SecureQueue::read_byte
    - std::vector::data
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::SecureQueue::SecureQueue
    - Botan::SecureQueue::size
    - Test::Result::test_is_false
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_secqueue()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:107,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:107,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:110,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:112,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:115,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:117,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:117,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:121,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:123,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::DataSink_Stream::DataSink_Stream
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_data_src_sink()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_filters.cpp:133,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_filters.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:135,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:141,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:141,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:144,1
    - Dst: std::ifstream::rdbuf
      Src: /src/botan/src/tests/test_filters.cpp:148,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:150,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:150,1
    - Dst: std::ofstream::close
      Src: /src/botan/src/tests/test_filters.cpp:153,1
    - Dst: std::ifstream::close
      Src: /src/botan/src/tests/test_filters.cpp:154,1
    - Dst: std::remove
      Src: /src/botan/src/tests/test_filters.cpp:156,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_filters.cpp:156,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 161
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink_flush
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - std::remove
    - std::string::empty
    - Test::Result::test_str_eq
    - Botan_Tests::Test::temp_file_name
    - std::ifstream::close
    - Botan::Pipe::process_msg
    - Test::Result::test_failure
    - Botan::Hex_Decoder::Hex_Decoder
    - std::ifstream::rdbuf
    - std::string::c_str
    - Botan::DataSink_Stream::DataSink_Stream
    - std::ofstream::close
    - std::stringstream::str
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_data_src_sink_flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:167,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:169,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:173,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:173,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:176,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:178,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:180,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:182,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 186
    functionName: Botan_Tests::Filter_Tests::test_pipe_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - std::ostringstream::str
    - Botan::Pipe::process_msg
    - Botan::Pipe::set_default_msg
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Pipe::Pipe
      Src: /src/botan/src/tests/test_filters.cpp:191,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:193,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:194,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:195,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:196,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:197,1
    - Dst: std::make_shared<Botan::SecureQueue>
      Src: /src/botan/src/tests/test_filters.cpp:199,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:202,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:205,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:206,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:206,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:208,1
    - Dst: Botan::BitBucket::BitBucket
      Src: /src/botan/src/tests/test_filters.cpp:208,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:209,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:211,1
    - Dst: Botan::BitBucket::BitBucket
      Src: /src/botan/src/tests/test_filters.cpp:211,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:212,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:214,1
    - Dst: std::make_unique<Botan::BitBucket>
      Src: /src/botan/src/tests/test_filters.cpp:216,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:220,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:221,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:221,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:224,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:225,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:225,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:228,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:229,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:229,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:231,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:232,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:232,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:234,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:234,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:236,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:238,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:239,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:239,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:242,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:243,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:243,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:246,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:248,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:251,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:252,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 256
    functionName: Botan_Tests::Filter_Tests::test_pipe_errors
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Botan::Pipe::append_filter
    - Botan::Pipe::end_msg
    - Botan::Pipe::read
    - Botan::Pipe::Pipe
    - auto::get
    - std::make_unique<Botan::BitBucket>
    - Botan::Pipe::append
    - Botan::Pipe::prepend_filter
    - Botan::Pipe::prepend
    - Botan::Pipe::pop
    - Botan::BitBucket::BitBucket
    - Test::Result::test_throws
    - std::make_shared<Botan::SecureQueue>
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_errors()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MAC_Filter::MAC_Filter
      Src: /src/botan/src/tests/test_filters.cpp:264,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:266,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:266,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:268,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:270,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:270,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:274,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:275,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:276,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:278,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:278,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:279,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:279,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:280,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 283
    functionName: Botan_Tests::Filter_Tests::test_pipe_mac
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Botan::MAC_Filter::MAC_Filter
    - Test::Result::test_str_eq
    - Botan::Pipe::process_msg
    - Botan::InitializationVector
    - Test::Result::test_throws
    - Botan::Pipe::read_all_as_string
    - Botan::Keyed_Filter*::set_iv
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_mac()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:290,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:291,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:295,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:295,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:297,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:299,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:300,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:300,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:301,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:302,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:304,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:304,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:305,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:305,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Botan::Pipe::peek
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:321,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:321,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:322,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:322,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:324,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:325,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:327,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:332,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:332,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:333,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 337
    functionName: Botan_Tests::Filter_Tests::test_pipe_hash
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Pipe::append
    - Test::Result::test_sz_eq
    - Botan::Chain::Chain
    - Botan::Pipe::get_bytes_read
    - Botan::Pipe::read
    - Botan::Pipe::reset
    - Botan::Pipe::peek
    - Botan::Pipe::end_of_data
    - Botan::Pipe::write
    - Botan::Pipe::message_count
    - Botan::Pipe::remaining
    - Test::Result::test_bin_eq
    - Botan::Pipe::prepend
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - std::vector<uint8_t>
    - std::vector::data
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::pop
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher
      Src: /src/botan/src/tests/test_filters.cpp:369,1
    - Dst: get_cipher
      Src: /src/botan/src/tests/test_filters.cpp:372,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:373,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:374,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:374,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:377,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:378,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:379,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:381,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:384,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:384,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:385,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:385,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:387,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:388,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:388,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:391,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_filters.cpp:392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 397
    functionName: Botan_Tests::Filter_Tests::test_pipe_cfb
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_encode
    - Botan::Pipe::end_msg
    - get_cipher
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Keyed_Filter*::set_iv
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_cfb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_filters.cpp:404,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:403,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Botan::Cipher_Mode_Filter*::name
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_filters.cpp:408,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:408,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:411,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:411,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:412,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:412,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:417,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:417,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:418,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:418,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:420,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:422,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:422,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:423,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:423,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:424,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:427,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:430,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:431,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:432,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:433,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:436,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:437,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_filters.cpp:440,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:439,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:441,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:442,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:442,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:443,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:443,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:446,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:446,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:450,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:451,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:452,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:454,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:455,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:455,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:456,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_filters.cpp:457,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 462
    functionName: Botan_Tests::Filter_Tests::test_pipe_cbc
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Cipher_Mode_Filter*::set_key
    - Botan::SymmetricKey
    - Botan::Pipe::get_bytes_read
    - Test::Result::test_sz_eq
    - Botan::Pipe::append
    - Botan::Cipher_Mode_Filter*::name
    - auto::size
    - Botan::Cipher_Mode_Filter*::valid_iv_length
    - Botan::secure_vector::size
    - Botan::Pipe::write
    - Botan::Cipher_Mode::create
    - Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
    - Botan::Cipher_Mode_Filter*::key_spec
    - Botan::Pipe::message_count
    - Test::Result::test_bin_eq
    - Botan::InitializationVector
    - Test::Result::test_is_false
    - Test::Result::test_is_true
    - Botan::Pipe::set_default_msg
    - Botan::Cipher_Mode_Filter*::set_iv
    - Test::Result::test_str_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_cbc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Compression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:469,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:471,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:471,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:472,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:476,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:477,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:478,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:480,1
    - Dst: Test::Result::test_sz_lt
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:484,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:485,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:485,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:486,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:486,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:487,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:489,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:491,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 496
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<Botan::Compression_Filter>
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::end_msg
    - auto::size
    - Test::Result::test_str_eq
    - std::string::size
    - Test::Result::test_sz_lt
    - auto::name
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_compress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Compression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:503,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:505,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:505,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:506,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:510,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:511,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:512,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:514,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:517,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:518,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:518,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:519,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:519,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:520,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:522,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:524,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 529
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<Botan::Compression_Filter>
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::end_msg
    - Test::Result::test_str_eq
    - auto::name
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::write
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_compress_bzip2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:535,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:537,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:537,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:539,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:541,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:541,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:542,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:542,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:544,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:546,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Base64_Decoder::Base64_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:549,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:551,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:551,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:553,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:554,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:557,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:559,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:560,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:560,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:562,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:562,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:564,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:565,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:566,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:568,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:568,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:569,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:570,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:570,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:574,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:575,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:575,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:576,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:576,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:580,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:581,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:582,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:584,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:586,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:586,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:587,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:590,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:591,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:591,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:592,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:593,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:594,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:597,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:598,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:598,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:599,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:600,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 606
    functionName: Botan_Tests::Filter_Tests::test_pipe_codec
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Botan::Base64_Decoder::Base64_Decoder
    - Botan::Pipe::message_count
    - Botan::Pipe::remaining
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::reset
    - Test::Result::test_str_eq
    - Botan::Pipe::append
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::pop
    - Botan::Pipe::read_all
    - Test::Result::test_bin_eq
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::set_default_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_codec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher_Filter::StreamCipher_Filter
      Src: /src/botan/src/tests/test_filters.cpp:616,1
    - Dst: Botan::Keyed_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:618,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:619,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:621,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:623,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:623,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:624,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:624,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:626,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:627,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 630
    functionName: Botan_Tests::Filter_Tests::test_pipe_stream
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::StreamCipher_Filter::StreamCipher_Filter
    - Test::Result::test_bin_eq
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Keyed_Filter*::set_key
    - Botan::Pipe::read_all
    - Botan::Keyed_Filter*::set_iv
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Botan::Fork::Fork
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:638,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:638,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:639,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:643,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:644,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:645,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 649
    functionName: Botan_Tests::Filter_Tests::test_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 8
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::Hash_Filter::Hash_Filter
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Fork::Fork
    - Test::Result::test_bin_eq
    - Botan::Pipe::read_all
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_fork()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:657,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:657,1
    - Dst: std::make_unique<Botan::Chain>
      Src: /src/botan/src/tests/test_filters.cpp:659,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:661,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:661,1
    - Dst: std::make_unique<Botan::Fork>
      Src: /src/botan/src/tests/test_filters.cpp:663,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:666,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:666,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:667,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:670,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:671,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:671,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:673,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:674,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:675,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 679
    functionName: Botan_Tests::Filter_Tests::test_chain
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - Botan::Hash_Filter::Hash_Filter
    - auto::name
    - Botan::Chain::Chain
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - std::make_unique<Botan::Chain>
    - Botan::Pipe::read_all_as_string
    - auto::release
    - std::make_unique<Botan::Fork>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_chain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_filters.cpp:686,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:690,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:691,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:693,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_filters.cpp:695,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:697,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:699,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_filters.cpp:700,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:702,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 708
    functionName: Botan_Tests::Filter_Tests::test_pipe_fd_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - Botan::Pipe::end_msg
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_str_eq
    - ::pipe
    - Botan::Pipe::process_msg
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_pipe_fd_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:714,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:717,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:718,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:718,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:721,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:721,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_filters.cpp:722,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:722,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:724,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:729,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:732,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:732,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:734,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:734,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:736,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:738,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:739,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:741,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_filters.cpp:743,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:743,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_filters.cpp:745,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:746,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 750
    functionName: Botan_Tests::Filter_Tests::test_threaded_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 4
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::reset
    - Test::Result::test_str_eq
    - Botan::Threaded_Fork::Threaded_Fork
    - Botan::Hash_Filter::Hash_Filter
    - Test::Result::test_sz_eq
    - Botan::Pipe::process_msg
    - Botan::Pipe::append
    - Test::Result::test_bin_eq
    - Botan::Pipe::read_all
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::write
    - static_cast<uint8_t>
    - Botan::Pipe::start_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_threaded_fork()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Dilithium_KAT_Tests::Dilithium_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dilithium_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:40,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:41,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:42,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:43,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:44,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:45,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_dilithium.cpp:47,1
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_dilithium.cpp:49,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:53,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:54,1
    - Dst: Botan::Dilithium_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:54,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:56,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:57,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:57,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_dilithium.cpp:59,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:62,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:62,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dilithium.cpp:63,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:64,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:67,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_dilithium.cpp:68,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_dilithium.cpp:73,1
    - Dst: Botan_Tests::Dilithium_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dilithium.cpp:73,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:74,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - ' name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Dilithium_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::check_signature
    - auto::process
    - auto::size
    - Botan_Tests::Dilithium_KAT_Tests::rng
    - Botan_Tests::Test::mutate_vec
    - auto::update
    - Botan::Dilithium_PrivateKey::private_key_bits
    - get_req_bin
    - Botan::Dilithium_PrivateKey::public_key_bits
    - Botan::PK_Signer::PK_Signer
    - auto::empty
    - Botan::HashFunction::create_or_throw
    - get_opt_bin
    - Botan::PK_Verifier::PK_Verifier
    - Test::Result::test_bin_eq
    - Test::Result::test_is_true
    - auto::sign_message
    - std::make_unique<CTR_DRBG_AES256>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& name, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - rand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: REGISTER_DILITHIUM_KAT_TEST
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_DILITHIUM_KAT_TEST(m, rand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - rand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: REGISTER_ML_DSA_KAT_TEST
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_ML_DSA_KAT_TEST(m, rand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMode::is_available
      Src: /src/botan/src/tests/test_dilithium.cpp:136,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_dilithium.cpp:137,1
    - Dst: Botan::DilithiumMode::to_string
      Src: /src/botan/src/tests/test_dilithium.cpp:137,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_dilithium.cpp:141,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_dilithium.cpp:145,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_dilithium.cpp:146,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_dilithium.cpp:150,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:151,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:152,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:161,1
    - Dst: Botan::Dilithium_PrivateKey::estimated_strength
      Src: /src/botan/src/tests/test_dilithium.cpp:161,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:162,1
    - Dst: Botan::Dilithium_PrivateKey::key_length
      Src: /src/botan/src/tests/test_dilithium.cpp:162,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:163,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_dilithium.cpp:163,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:164,1
    - Dst: key_length
      Src: /src/botan/src/tests/test_dilithium.cpp:164,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:166,1
    - Dst: Botan::Dilithium_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:168,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:169,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:174,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:176,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:176,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:177,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:177,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:178,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:179,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:180,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:180,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:181,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:181,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_dilithium.cpp:184,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:185,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:186,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:187,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:188,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:189,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:190,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:191,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:192,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:193,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:194,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:195,1
    - Dst: Botan::load_public_key
      Src: /src/botan/src/tests/test_dilithium.cpp:198,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:198,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_dilithium.cpp:200,1
    - Dst: Botan::Dilithium_PrivateKey::algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:200,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:202,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:203,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:205,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:207,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:208,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:209,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:211,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 5
    argNames:
    - test_name
    - mode
    - randomized
    - strength
    - psid
    argTypes:
    - char*
    - Botan::DilithiumMode
    - bool
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 215
    functionName: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_PrivateKey::key_length
    - Botan::DilithiumMode::to_string
    - auto::front
    - Test::Result::test_not_null
    - std::string::data
    - Botan::DilithiumMode::is_available
    - auto::check_signature
    - Test::Result::test_sz_eq
    - estimated_strength
    - auto::update
    - Botan::Dilithium_PrivateKey::private_key_bits
    - Botan::load_private_key
    - Botan::Dilithium_PrivateKey::public_key_bits
    - algorithm_identifier
    - Botan::PK_Signer::PK_Signer
    - Botan::PK_Verifier::PK_Verifier
    - std::string::size
    - Botan::Dilithium_PrivateKey::estimated_strength
    - verify
    - Botan::load_public_key
    - Botan::Dilithium_PrivateKey::algorithm_identifier
    - sign
    - key_length
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto::sign_message
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result run_roundtrip(\n         const char* test_name, Botan::DilithiumMode
      mode, bool randomized, size_t strength, size_t psid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:219,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:220,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:221,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:222,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:223,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:224,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:225,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:226,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:227,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:228,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:229,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:230,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:231,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:232,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:233,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:234,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:235,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 238
    functionName: Botan_Tests::DilithiumRoundtripTests::run
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::DilithiumRoundtripTests::run_roundtrip
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:261,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dilithium.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 266
    functionName: Botan_Tests::Dilithium_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::DilithiumMode::DilithiumMode
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/tests/test_dilithium.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - param
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: Botan_Tests::Dilithium_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::starts_with
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name(std::string_view param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_dilithium.cpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Dilithium_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Dilithium_PublicKey>
      Src: /src/botan/src/tests/test_dilithium.cpp:281,1
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: Botan_Tests::Dilithium_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Dilithium_PublicKey>
    - Botan::DilithiumMode::DilithiumMode
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Dilithium_KAT_Tests::Dilithium_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dilithium_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:40,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:41,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:42,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:43,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:44,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:45,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_dilithium.cpp:47,1
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_dilithium.cpp:49,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:53,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:54,1
    - Dst: Botan::Dilithium_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:54,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:56,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:57,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:57,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_dilithium.cpp:59,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:62,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:62,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dilithium.cpp:63,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:64,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:67,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_dilithium.cpp:68,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_dilithium.cpp:73,1
    - Dst: Botan_Tests::Dilithium_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dilithium.cpp:73,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:74,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - ' name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Dilithium_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::check_signature
    - auto::process
    - auto::size
    - Botan_Tests::Dilithium_KAT_Tests::rng
    - Botan_Tests::Test::mutate_vec
    - auto::update
    - Botan::Dilithium_PrivateKey::private_key_bits
    - get_req_bin
    - Botan::Dilithium_PrivateKey::public_key_bits
    - Botan::PK_Signer::PK_Signer
    - auto::empty
    - Botan::HashFunction::create_or_throw
    - get_opt_bin
    - Botan::PK_Verifier::PK_Verifier
    - Test::Result::test_bin_eq
    - Test::Result::test_is_true
    - auto::sign_message
    - std::make_unique<CTR_DRBG_AES256>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& name, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - rand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: REGISTER_DILITHIUM_KAT_TEST
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_DILITHIUM_KAT_TEST(m, rand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - rand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: REGISTER_ML_DSA_KAT_TEST
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_ML_DSA_KAT_TEST(m, rand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMode::is_available
      Src: /src/botan/src/tests/test_dilithium.cpp:136,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_dilithium.cpp:137,1
    - Dst: Botan::DilithiumMode::to_string
      Src: /src/botan/src/tests/test_dilithium.cpp:137,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_dilithium.cpp:141,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_dilithium.cpp:145,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_dilithium.cpp:146,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_dilithium.cpp:150,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:151,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:152,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:161,1
    - Dst: Botan::Dilithium_PrivateKey::estimated_strength
      Src: /src/botan/src/tests/test_dilithium.cpp:161,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:162,1
    - Dst: Botan::Dilithium_PrivateKey::key_length
      Src: /src/botan/src/tests/test_dilithium.cpp:162,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:163,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_dilithium.cpp:163,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:164,1
    - Dst: key_length
      Src: /src/botan/src/tests/test_dilithium.cpp:164,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:166,1
    - Dst: Botan::Dilithium_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:168,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:169,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:174,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:176,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:176,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:177,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:177,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:178,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:179,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:180,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:180,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:181,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:181,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_dilithium.cpp:184,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:185,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:186,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:187,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:188,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:189,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:190,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:191,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:192,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:193,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:194,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:195,1
    - Dst: Botan::load_public_key
      Src: /src/botan/src/tests/test_dilithium.cpp:198,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:198,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_dilithium.cpp:200,1
    - Dst: Botan::Dilithium_PrivateKey::algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:200,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:202,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:203,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:205,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:207,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:208,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:209,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:211,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 5
    argNames:
    - test_name
    - mode
    - randomized
    - strength
    - psid
    argTypes:
    - char*
    - Botan::DilithiumMode
    - bool
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 215
    functionName: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_PrivateKey::key_length
    - Botan::DilithiumMode::to_string
    - auto::front
    - Test::Result::test_not_null
    - std::string::data
    - Botan::DilithiumMode::is_available
    - auto::check_signature
    - Test::Result::test_sz_eq
    - estimated_strength
    - auto::update
    - Botan::Dilithium_PrivateKey::private_key_bits
    - Botan::load_private_key
    - Botan::Dilithium_PrivateKey::public_key_bits
    - algorithm_identifier
    - Botan::PK_Signer::PK_Signer
    - Botan::PK_Verifier::PK_Verifier
    - std::string::size
    - Botan::Dilithium_PrivateKey::estimated_strength
    - verify
    - Botan::load_public_key
    - Botan::Dilithium_PrivateKey::algorithm_identifier
    - sign
    - key_length
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto::sign_message
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result run_roundtrip(\n         const char* test_name, Botan::DilithiumMode
      mode, bool randomized, size_t strength, size_t psid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:219,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:220,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:221,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:222,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:223,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:224,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:225,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:226,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:227,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:228,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:229,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:230,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:231,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:232,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:233,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:234,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:235,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 238
    functionName: Botan_Tests::DilithiumRoundtripTests::run
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::DilithiumRoundtripTests::run_roundtrip
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:261,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dilithium.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 266
    functionName: Botan_Tests::Dilithium_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::DilithiumMode::DilithiumMode
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/tests/test_dilithium.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - param
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: Botan_Tests::Dilithium_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::starts_with
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name(std::string_view param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_dilithium.cpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Dilithium_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Dilithium_PublicKey>
      Src: /src/botan/src/tests/test_dilithium.cpp:281,1
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: Botan_Tests::Dilithium_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Dilithium_PublicKey>
    - Botan::DilithiumMode::DilithiumMode
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Dilithium_KAT_Tests::Dilithium_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dilithium_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:40,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:41,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:42,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:43,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:44,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:45,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_dilithium.cpp:47,1
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_dilithium.cpp:49,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:53,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:54,1
    - Dst: Botan::Dilithium_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:54,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:56,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:57,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:57,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_dilithium.cpp:59,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:62,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:62,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dilithium.cpp:63,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:64,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:67,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_dilithium.cpp:68,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_dilithium.cpp:73,1
    - Dst: Botan_Tests::Dilithium_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dilithium.cpp:73,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:74,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - ' name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Dilithium_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::check_signature
    - auto::process
    - auto::size
    - Botan_Tests::Dilithium_KAT_Tests::rng
    - Botan_Tests::Test::mutate_vec
    - auto::update
    - Botan::Dilithium_PrivateKey::private_key_bits
    - get_req_bin
    - Botan::Dilithium_PrivateKey::public_key_bits
    - Botan::PK_Signer::PK_Signer
    - auto::empty
    - Botan::HashFunction::create_or_throw
    - get_opt_bin
    - Botan::PK_Verifier::PK_Verifier
    - Test::Result::test_bin_eq
    - Test::Result::test_is_true
    - auto::sign_message
    - std::make_unique<CTR_DRBG_AES256>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& name, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - rand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: REGISTER_DILITHIUM_KAT_TEST
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_DILITHIUM_KAT_TEST(m, rand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - rand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: REGISTER_ML_DSA_KAT_TEST
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_ML_DSA_KAT_TEST(m, rand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMode::is_available
      Src: /src/botan/src/tests/test_dilithium.cpp:136,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_dilithium.cpp:137,1
    - Dst: Botan::DilithiumMode::to_string
      Src: /src/botan/src/tests/test_dilithium.cpp:137,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_dilithium.cpp:141,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_dilithium.cpp:145,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_dilithium.cpp:146,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_dilithium.cpp:150,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:151,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:152,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:161,1
    - Dst: Botan::Dilithium_PrivateKey::estimated_strength
      Src: /src/botan/src/tests/test_dilithium.cpp:161,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:162,1
    - Dst: Botan::Dilithium_PrivateKey::key_length
      Src: /src/botan/src/tests/test_dilithium.cpp:162,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:163,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_dilithium.cpp:163,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:164,1
    - Dst: key_length
      Src: /src/botan/src/tests/test_dilithium.cpp:164,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:166,1
    - Dst: Botan::Dilithium_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:168,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:169,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:174,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:176,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:176,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:177,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:177,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:178,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:179,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:180,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:180,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:181,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:181,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_dilithium.cpp:184,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:185,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:186,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:187,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:188,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:189,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:190,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:191,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:192,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:193,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:194,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:195,1
    - Dst: Botan::load_public_key
      Src: /src/botan/src/tests/test_dilithium.cpp:198,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:198,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_dilithium.cpp:200,1
    - Dst: Botan::Dilithium_PrivateKey::algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:200,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:202,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:203,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:205,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:207,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:208,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:209,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:211,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 5
    argNames:
    - test_name
    - mode
    - randomized
    - strength
    - psid
    argTypes:
    - char*
    - Botan::DilithiumMode
    - bool
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 215
    functionName: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Dilithium_PrivateKey::key_length
    - Botan::DilithiumMode::to_string
    - auto::front
    - Test::Result::test_not_null
    - std::string::data
    - Botan::DilithiumMode::is_available
    - auto::check_signature
    - Test::Result::test_sz_eq
    - estimated_strength
    - auto::update
    - Botan::Dilithium_PrivateKey::private_key_bits
    - Botan::load_private_key
    - Botan::Dilithium_PrivateKey::public_key_bits
    - algorithm_identifier
    - Botan::PK_Signer::PK_Signer
    - Botan::PK_Verifier::PK_Verifier
    - std::string::size
    - Botan::Dilithium_PrivateKey::estimated_strength
    - verify
    - Botan::load_public_key
    - Botan::Dilithium_PrivateKey::algorithm_identifier
    - sign
    - key_length
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto::sign_message
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result run_roundtrip(\n         const char* test_name, Botan::DilithiumMode
      mode, bool randomized, size_t strength, size_t psid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:219,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:220,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:221,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:222,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:223,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:224,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:225,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:226,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:227,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:228,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:229,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:230,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:231,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:232,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:233,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:234,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:235,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 238
    functionName: Botan_Tests::DilithiumRoundtripTests::run
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::DilithiumRoundtripTests::run_roundtrip
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:261,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dilithium.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 266
    functionName: Botan_Tests::Dilithium_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::DilithiumMode::DilithiumMode
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/tests/test_dilithium.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - param
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: Botan_Tests::Dilithium_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::starts_with
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name(std::string_view param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_dilithium.cpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Dilithium_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Dilithium_PublicKey>
      Src: /src/botan/src/tests/test_dilithium.cpp:281,1
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: Botan_Tests::Dilithium_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Dilithium_PublicKey>
    - Botan::DilithiumMode::DilithiumMode
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Dilithium_KAT_Tests::Dilithium_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dilithium_KAT_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:40,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:41,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:42,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:43,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:44,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dilithium.cpp:45,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_dilithium.cpp:47,1
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_dilithium.cpp:49,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:53,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:54,1
    - Dst: Botan::Dilithium_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:54,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:56,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:57,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:57,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_dilithium.cpp:59,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:60,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:62,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_dilithium.cpp:62,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dilithium.cpp:63,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:64,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:67,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_dilithium.cpp:68,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:69,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:70,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_dilithium.cpp:73,1
    - Dst: Botan_Tests::Dilithium_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dilithium.cpp:73,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:74,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:75,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:77,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_dilithium.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - ' name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Dilithium_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::check_signature
    - auto::process
    - auto::size
    - Botan_Tests::Dilithium_KAT_Tests::rng
    - Botan_Tests::Test::mutate_vec
    - auto::update
    - Botan::Dilithium_PrivateKey::private_key_bits
    - get_req_bin
    - Botan::Dilithium_PrivateKey::public_key_bits
    - Botan::PK_Signer::PK_Signer
    - auto::empty
    - Botan::HashFunction::create_or_throw
    - get_opt_bin
    - Botan::PK_Verifier::PK_Verifier
    - Test::Result::test_bin_eq
    - Test::Result::test_is_true
    - auto::sign_message
    - std::make_unique<CTR_DRBG_AES256>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& name, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - rand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: REGISTER_DILITHIUM_KAT_TEST
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_DILITHIUM_KAT_TEST(m, rand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - rand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: REGISTER_ML_DSA_KAT_TEST
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_ML_DSA_KAT_TEST(m, rand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMode::is_available
      Src: /src/botan/src/tests/test_dilithium.cpp:136,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_dilithium.cpp:137,1
    - Dst: Botan::DilithiumMode::to_string
      Src: /src/botan/src/tests/test_dilithium.cpp:137,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_dilithium.cpp:141,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_dilithium.cpp:145,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_dilithium.cpp:146,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_dilithium.cpp:150,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_dilithium.cpp:151,1
    - Dst: auto::check_signature
      Src: /src/botan/src/tests/test_dilithium.cpp:152,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_dilithium.cpp:156,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:161,1
    - Dst: Botan::Dilithium_PrivateKey::estimated_strength
      Src: /src/botan/src/tests/test_dilithium.cpp:161,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:162,1
    - Dst: Botan::Dilithium_PrivateKey::key_length
      Src: /src/botan/src/tests/test_dilithium.cpp:162,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:163,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_dilithium.cpp:163,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_dilithium.cpp:164,1
    - Dst: key_length
      Src: /src/botan/src/tests/test_dilithium.cpp:164,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:166,1
    - Dst: Botan::Dilithium_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:168,1
    - Dst: Botan::Dilithium_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_dilithium.cpp:169,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:174,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:176,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:176,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:177,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:177,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:178,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:178,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:179,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:179,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:180,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:180,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:181,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:181,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_dilithium.cpp:184,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:185,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:186,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:187,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:187,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:188,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:189,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:190,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:191,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:192,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:193,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:194,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:195,1
    - Dst: Botan::load_public_key
      Src: /src/botan/src/tests/test_dilithium.cpp:198,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:198,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_dilithium.cpp:200,1
    - Dst: Botan::Dilithium_PrivateKey::algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:200,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:202,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:203,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:205,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:207,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:208,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:209,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:210,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_dilithium.cpp:211,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 5
    argNames:
    - test_name
    - mode
    - randomized
    - strength
    - psid
    argTypes:
    - char*
    - Botan::DilithiumMode
    - bool
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 215
    functionName: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 3
    functionsReached:
    - Botan::Dilithium_PrivateKey::key_length
    - Botan::DilithiumMode::to_string
    - auto::front
    - Test::Result::test_not_null
    - std::string::data
    - Botan::DilithiumMode::is_available
    - auto::check_signature
    - Test::Result::test_sz_eq
    - estimated_strength
    - auto::update
    - Botan::Dilithium_PrivateKey::private_key_bits
    - Botan::load_private_key
    - Botan::Dilithium_PrivateKey::public_key_bits
    - algorithm_identifier
    - Botan::PK_Signer::PK_Signer
    - Botan::PK_Verifier::PK_Verifier
    - std::string::size
    - Botan::Dilithium_PrivateKey::estimated_strength
    - verify
    - Botan::load_public_key
    - Botan::Dilithium_PrivateKey::algorithm_identifier
    - sign
    - key_length
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - auto::sign_message
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: "Test::Result run_roundtrip(\n         const char* test_name, Botan::DilithiumMode
      mode, bool randomized, size_t strength, size_t psid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:219,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:220,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:221,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:222,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:223,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:224,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:225,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:226,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:227,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:228,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:229,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:230,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:231,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:232,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:233,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:234,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:235,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 238
    functionName: Botan_Tests::DilithiumRoundtripTests::run
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::DilithiumRoundtripTests::run_roundtrip
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:261,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dilithium.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 266
    functionName: Botan_Tests::Dilithium_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::DilithiumMode::DilithiumMode
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/tests/test_dilithium.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - param
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: Botan_Tests::Dilithium_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::starts_with
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name(std::string_view param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_dilithium.cpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Dilithium_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Dilithium_PublicKey>
      Src: /src/botan/src/tests/test_dilithium.cpp:281,1
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: Botan_Tests::Dilithium_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Dilithium_PublicKey>
    - Botan::DilithiumMode::DilithiumMode
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::ECGDSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecgdsa.cpp:31,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:35,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecgdsa.cpp:36,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecgdsa.cpp:37,1
    - Dst: std::make_unique<Botan::ECGDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:39,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECGDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:47,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_ecgdsa.cpp:60,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecgdsa.cpp:61,1
    - Dst: std::make_unique<Botan::ECGDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECGDSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::ECGDSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecgdsa.cpp:31,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:35,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecgdsa.cpp:36,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecgdsa.cpp:37,1
    - Dst: std::make_unique<Botan::ECGDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:39,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECGDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:47,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_ecgdsa.cpp:60,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecgdsa.cpp:61,1
    - Dst: std::make_unique<Botan::ECGDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECGDSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::ECGDSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecgdsa.cpp:31,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:35,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecgdsa.cpp:36,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecgdsa.cpp:37,1
    - Dst: std::make_unique<Botan::ECGDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:39,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECGDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:47,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_ecgdsa.cpp:60,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecgdsa.cpp:61,1
    - Dst: std::make_unique<Botan::ECGDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECGDSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::ECGDSA_Signature_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Signature_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::clear_between_callbacks
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clear_between_callbacks() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecgdsa.cpp:31,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - Botan::EC_Group::supports_named_group
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:35,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecgdsa.cpp:36,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecgdsa.cpp:37,1
    - Dst: std::make_unique<Botan::ECGDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:39,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    - std::make_unique<Botan::ECGDSA_PrivateKey>
    - Botan::EC_Group::from_name
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - get_req_bn
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_str
    linkageType: ''
    returnType: std::string
    signature: std::string default_padding(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Fixed_Output_Position_RNG>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:47,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - std::make_unique<Fixed_Output_Position_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group
      Src: /src/botan/src/tests/test_ecgdsa.cpp:60,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecgdsa.cpp:61,1
    - Dst: std::make_unique<Botan::ECGDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECGDSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::is_available
      Src: /src/botan/src/tests/test_kyber.cpp:45,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_kyber.cpp:46,1
    - Dst: Botan::KyberMode::to_string
      Src: /src/botan/src/tests/test_kyber.cpp:46,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_kyber.cpp:50,1
    - Dst: Botan::Kyber_PrivateKey::public_key
      Src: /src/botan/src/tests/test_kyber.cpp:56,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_kyber.cpp:58,1
    - Dst: Botan::Kyber_PrivateKey::estimated_strength
      Src: /src/botan/src/tests/test_kyber.cpp:58,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_kyber.cpp:59,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_kyber.cpp:59,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_kyber.cpp:60,1
    - Dst: Botan::Kyber_PrivateKey::key_length
      Src: /src/botan/src/tests/test_kyber.cpp:60,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_kyber.cpp:61,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_kyber.cpp:61,1
    - Dst: Botan::Kyber_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_kyber.cpp:64,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_kyber.cpp:65,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_kyber.cpp:69,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_kyber.cpp:70,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_kyber.cpp:74,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_kyber.cpp:75,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:75,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kyber.cpp:76,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:76,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_kyber.cpp:83,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:84,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_kyber.cpp:85,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_kyber.cpp:86,1
    - Dst: copy
      Src: /src/botan/src/tests/test_kyber.cpp:91,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:91,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:92,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_kyber.cpp:93,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_kyber.cpp:94,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_kyber.cpp:95,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_kyber.cpp:98,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:98,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kyber.cpp:99,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - test_name
    - mode
    - strength
    - psid
    argTypes:
    - char*
    - Botan::KyberMode
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 102
    functionName: KYBER_Tests::run_kyber_test
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - auto::shared_key
    - Botan::KyberMode::is_available
    - Test::Result::test_sz_eq
    - Botan::Kyber_PrivateKey::key_length
    - Botan::Kyber_PrivateKey::private_key_bits
    - auto::public_key_bits
    - auto::pop_back
    - std::back_inserter
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - auto::decrypt
    - auto::key_length
    - Test::Result::test_bin_eq
    - auto::encrypt
    - Test::Result::test_throws
    - Test::Result::test_is_true
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - Botan::Kyber_PrivateKey::estimated_strength
    - Botan_Tests::Test::new_rng
    - copy
    - auto::encapsulated_shared_key
    - Botan::Kyber_PrivateKey::public_key
    - auto::estimated_strength
    - Botan::KyberMode::to_string
    - Test::Result::note_missing
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_kyber_test(const char* test_name, Botan::KyberMode
      mode, size_t strength, size_t psid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KYBER_Tests::run_kyber_test
      Src: /src/botan/src/tests/test_kyber.cpp:106,1
    - Dst: KYBER_Tests::run_kyber_test
      Src: /src/botan/src/tests/test_kyber.cpp:107,1
    - Dst: KYBER_Tests::run_kyber_test
      Src: /src/botan/src/tests/test_kyber.cpp:108,1
    - Dst: KYBER_Tests::run_kyber_test
      Src: /src/botan/src/tests/test_kyber.cpp:109,1
    - Dst: KYBER_Tests::run_kyber_test
      Src: /src/botan/src/tests/test_kyber.cpp:110,1
    - Dst: KYBER_Tests::run_kyber_test
      Src: /src/botan/src/tests/test_kyber.cpp:111,1
    - Dst: KYBER_Tests::run_kyber_test
      Src: /src/botan/src/tests/test_kyber.cpp:112,1
    - Dst: KYBER_Tests::run_kyber_test
      Src: /src/botan/src/tests/test_kyber.cpp:113,1
    - Dst: KYBER_Tests::run_kyber_test
      Src: /src/botan/src/tests/test_kyber.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 116
    functionName: KYBER_Tests::run
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - KYBER_Tests::run_kyber_test
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' kat_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: Kyber_KAT_Tests::Kyber_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Kyber_KAT_Tests(const std::string& algo_name,\n                      const
      std::string& kat_file,\n                      const std::string& further_optional_keys
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Kyber_KAT_Tests::get_mode
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::KyberMode::KyberMode
    linkageType: ''
    returnType: Botan::KyberMode
    signature: Botan::KyberMode get_mode(const std::string& mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Kyber_KAT_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Kyber_KAT_Tests::get_mode
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& mode) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_kyber.cpp:139,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_kyber.cpp:139,1
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:144,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_kyber.cpp:146,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_kyber.cpp:147,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kyber.cpp:148,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kyber.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' mode'
    - value
    - var_type
    argTypes:
    - std::string
    - std::span<const uint8_t>
    - VarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: Kyber_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Botan::HashFunction::create_or_throw
    - std::span<const uint8_t>::begin
    - auto::process
    - Kyber_KAT_Tests::get_mode
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> map_value(const std::string& mode,\n                                     std::span<const
      uint8_t> value,\n                                     VarType var_type) const
      final"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:152,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:153,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:154,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:155,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:155,1
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:156,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:157,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:158,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:159,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:159,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:161,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: Kyber_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Fixed_Output_RNG
    - random_vec
    - Kyber_KAT_Tests::get_mode
    - Botan::concat
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const std::string& mode, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:167,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: Kyber_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: "Fixed_Output_RNG rng_for_encapsulation(const std::string& /*mode*/,\n
      \                                            Botan::RandomNumberGenerator& rng)
      const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: KyberR3_KAT_Tests::KyberR3_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberR3_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: ML_KEM_KAT_Tests::ML_KEM_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ML_KEM_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: ML_KEM_ACVP_KAT_KeyGen_Tests::ML_KEM_ACVP_KAT_KeyGen_Tests
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ML_KEM_ACVP_KAT_KeyGen_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: ML_KEM_ACVP_KAT_KeyGen_Tests::get_mode
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::KyberMode::KyberMode
    linkageType: ''
    returnType: Botan::KyberMode
    signature: Botan::KyberMode get_mode(const std::string& mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ML_KEM_ACVP_KAT_KeyGen_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: ML_KEM_ACVP_KAT_KeyGen_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - ML_KEM_ACVP_KAT_KeyGen_Tests::get_mode
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& mode) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kyber.cpp:192,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kyber.cpp:193,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:194,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: ML_KEM_ACVP_KAT_KeyGen_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Fixed_Output_RNG
    - Botan::concat
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::KyberMode::KyberMode
    linkageType: ''
    returnType: Botan::KyberMode
    signature: Botan::KyberMode get_mode(const std::string& mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::is_available
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& mode) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Kyber_PublicKey>
      Src: /src/botan/src/tests/test_kyber.cpp:208,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kyber.cpp:208,1
    - Dst: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' vars'
    - ' mode'
    argTypes:
    - VarMap
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::load_public_key
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Kyber_PublicKey>
    - ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars,
      const std::string& mode) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' kat_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: Kyber_KAT_Tests::Kyber_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Kyber_KAT_Tests(const std::string& algo_name,\n                      const
      std::string& kat_file,\n                      const std::string& further_optional_keys
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Kyber_KAT_Tests::get_mode
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 3
    functionsReached:
    - Botan::KyberMode::KyberMode
    linkageType: ''
    returnType: Botan::KyberMode
    signature: Botan::KyberMode get_mode(const std::string& mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Kyber_KAT_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Kyber_KAT_Tests::get_mode
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& mode) const final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_kyber.cpp:139,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_kyber.cpp:139,1
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:144,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_kyber.cpp:146,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_kyber.cpp:147,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kyber.cpp:148,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kyber.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' mode'
    - value
    - var_type
    argTypes:
    - std::string
    - std::span<const uint8_t>
    - VarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: Kyber_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - Botan::HashFunction::create_or_throw
    - std::span<const uint8_t>::begin
    - auto::process
    - Kyber_KAT_Tests::get_mode
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> map_value(const std::string& mode,\n                                     std::span<const
      uint8_t> value,\n                                     VarType var_type) const
      final"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:152,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:153,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:154,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:155,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:155,1
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:156,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:157,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:158,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:159,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:159,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:161,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: Kyber_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Fixed_Output_RNG
    - random_vec
    - Kyber_KAT_Tests::get_mode
    - Botan::concat
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const std::string& mode, Botan::RandomNumberGenerator&
      rng) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:167,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: Kyber_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - Fixed_Output_RNG
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: "Fixed_Output_RNG rng_for_encapsulation(const std::string& /*mode*/,\n
      \                                            Botan::RandomNumberGenerator& rng)
      const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: KyberR3_KAT_Tests::KyberR3_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberR3_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: ML_KEM_KAT_Tests::ML_KEM_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ML_KEM_KAT_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: ML_KEM_ACVP_KAT_KeyGen_Tests::ML_KEM_ACVP_KAT_KeyGen_Tests
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ML_KEM_ACVP_KAT_KeyGen_Tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: ML_KEM_ACVP_KAT_KeyGen_Tests::get_mode
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 1
    functionsReached:
    - Botan::KyberMode::KyberMode
    linkageType: ''
    returnType: Botan::KyberMode
    signature: Botan::KyberMode get_mode(const std::string& mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ML_KEM_ACVP_KAT_KeyGen_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: ML_KEM_ACVP_KAT_KeyGen_Tests::is_available
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - ML_KEM_ACVP_KAT_KeyGen_Tests::get_mode
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& mode) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kyber.cpp:192,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kyber.cpp:193,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:194,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: ML_KEM_ACVP_KAT_KeyGen_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Fixed_Output_RNG
    - Botan::concat
    linkageType: ''
    returnType: Fixed_Output_RNG
    signature: Fixed_Output_RNG rng_for_keygen(const VarMap& vars) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 2
    functionsReached:
    - Botan::KyberMode::KyberMode
    linkageType: ''
    returnType: Botan::KyberMode
    signature: Botan::KyberMode get_mode(const std::string& mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::is_available
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
    linkageType: ''
    returnType: bool
    signature: bool is_available(const std::string& mode) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Kyber_PublicKey>
      Src: /src/botan/src/tests/test_kyber.cpp:208,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kyber.cpp:208,1
    - Dst: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' vars'
    - ' mode'
    argTypes:
    - VarMap
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::load_public_key
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Kyber_PublicKey>
    - ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
    - get_req_bin
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: std::unique_ptr<Botan::Public_Key> load_public_key(const VarMap& vars,
      const std::string& mode) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: Kyber_Encoding_Test::Kyber_Encoding_Test
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Kyber_Encoding_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: Kyber_Encoding_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::KyberMode::KyberMode
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& algo_name, const VarMap& /*vars*/)
      override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:235,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_kyber.cpp:236,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_kyber.cpp:236,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_kyber.cpp:237,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_kyber.cpp:237,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_kyber.cpp:238,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_kyber.cpp:240,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_kyber.cpp:243,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_kyber.cpp:244,1
    - Dst: Botan::Kyber_PrivateKey::Kyber_PrivateKey
      Src: /src/botan/src/tests/test_kyber.cpp:245,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_kyber.cpp:247,1
    - Dst: Botan::Kyber_PublicKey::Kyber_PublicKey
      Src: /src/botan/src/tests/test_kyber.cpp:248,1
    - Dst: std::make_unique<Botan::Kyber_PrivateKey>
      Src: /src/botan/src/tests/test_kyber.cpp:254,1
    - Dst: std::make_unique<Botan::Kyber_PublicKey>
      Src: /src/botan/src/tests/test_kyber.cpp:255,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kyber.cpp:257,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_kyber.cpp:257,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kyber.cpp:258,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_kyber.cpp:258,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kyber.cpp:259,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_kyber.cpp:259,1
    - Dst: auto::private_key_format
      Src: /src/botan/src/tests/test_kyber.cpp:262,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kyber.cpp:263,1
    - Dst: auto::private_key_bits_with_format
      Src: /src/botan/src/tests/test_kyber.cpp:264,1
    - Dst: std::make_unique<Botan::Kyber_PrivateKey>
      Src: /src/botan/src/tests/test_kyber.cpp:266,1
    - Dst: auto::private_key_bits_with_format
      Src: /src/botan/src/tests/test_kyber.cpp:267,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kyber.cpp:268,1
    - Dst: auto::private_key_bits_with_format
      Src: /src/botan/src/tests/test_kyber.cpp:269,1
    - Dst: auto::private_key_bits_with_format
      Src: /src/botan/src/tests/test_kyber.cpp:270,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_kyber.cpp:271,1
    - Dst: auto::private_key_bits_with_format
      Src: /src/botan/src/tests/test_kyber.cpp:272,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_kyber.cpp:275,1
    - Dst: rng
      Src: /src/botan/src/tests/test_kyber.cpp:275,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kyber.cpp:276,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_kyber.cpp:278,1
    - Dst: rng
      Src: /src/botan/src/tests/test_kyber.cpp:278,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:278,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:279,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_kyber.cpp:282,1
    - Dst: auto::private_key_bits_with_format
      Src: /src/botan/src/tests/test_kyber.cpp:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - ' algo_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 289
    functionName: Kyber_Encoding_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - auto::shared_key
    - Botan::KyberMode::KyberMode
    - auto::private_key_bits_with_format
    - get_opt_str
    - std::make_unique<Botan::Kyber_PrivateKey>
    - Botan::hex_decode
    - auto::public_key_bits
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - Botan::Kyber_PrivateKey::Kyber_PrivateKey
    - auto::private_key_bits
    - auto::empty
    - std::make_unique<Botan::Kyber_PublicKey>
    - Test::Result::test_bin_eq
    - Test::Result::test_throws
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - Botan::Kyber_PublicKey::Kyber_PublicKey
    - get_req_str
    - auto::encapsulated_shared_key
    - auto::private_key_format
    - rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo_name, const VarMap&
      vars) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_Keygen_Tests::algo_name
      Src: /src/botan/src/tests/test_kyber.cpp:310,1
    - Dst: starts_with
      Src: /src/botan/src/tests/test_kyber.cpp:311,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_kyber.cpp:318,1
    - Dst: std::make_unique<Botan::Kyber_PublicKey>
      Src: /src/botan/src/tests/test_kyber.cpp:323,1
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:323,1
    - Dst: BOTAN_REGISTER_TEST
      Src: /src/botan/src/tests/test_kyber.cpp:327,1
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:336,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:339,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:344,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:344,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:349,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:350,1
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:358,1
    - Dst: static_cast<from_t>
      Src: /src/botan/src/tests/test_kyber.cpp:361,1
    - Dst: from_t
      Src: /src/botan/src/tests/test_kyber.cpp:361,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:364,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:368,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:368,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_kyber.cpp:368,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:373,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:374,1
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:382,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:388,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:388,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:393,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:394,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:399,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:399,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:400,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:400,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:401,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:401,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:402,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:402,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:405,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:405,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:406,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:406,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:407,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:407,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:408,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:408,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:411,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:411,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:412,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:412,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:413,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:413,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:414,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:414,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:415,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:415,1
    - Dst: BOTAN_REGISTER_TEST_FN
      Src: /src/botan/src/tests/test_kyber.cpp:421,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 425
    functionName: Kyber_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    - Botan::KyberMode::KyberMode
    - test_success
    - Kyber_Algos::decompress<d>
    - Kyber_Keygen_Tests::algo_name
    - static_cast<from_t>
    - from_t
    - Kyber_Keygen_Tests::test_compress_roundtrip
    - end_timer
    - fmt
    - Kyber_Keygen_Tests::test_compress
    - std::make_unique<Botan::Kyber_PublicKey>
    - BOTAN_REGISTER_TEST
    - BOTAN_REGISTER_TEST_FN
    - Botan_Tests::CHECK
    - starts_with
    - Kyber_Algos::compress<d>
    - static_cast<uint16_t>
    - Kyber_Keygen_Tests::test_decompress
    - Test_Error
    - start_timer
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/botan/src/tests/test_kyber.cpp:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: ''
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 5701
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: override
    signature: 'override '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_kyber.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: Kyber_Keygen_Tests::algo_name
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 1
    functionsReached:
    - Test_Error
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::Kyber_PublicKey>
      Src: /src/botan/src/tests/test_kyber.cpp:323,1
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keygen_params
    - raw_pk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: Kyber_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::Kyber_PublicKey>
    - Botan::KyberMode::KyberMode
    linkageType: ''
    returnType: std::unique_ptr<Botan::Public_Key>
    signature: "std::unique_ptr<Botan::Public_Key> public_key_from_raw(std::string_view
      keygen_params,\n                                                             std::string_view
      /* provider */,\n                                                             std::span<const
      uint8_t> raw_pk) const override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:336,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:339,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:344,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:344,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:349,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' res'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 351
    functionName: Kyber_Keygen_Tests::test_compress
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 1
    functionsReached:
    - Kyber_Algos::compress<d>
    - test_failure
    - test_success
    - end_timer
    - start_timer
    - fmt
    linkageType: ''
    returnType: void
    signature: void test_compress(Test::Result& res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:358,1
    - Dst: static_cast<from_t>
      Src: /src/botan/src/tests/test_kyber.cpp:361,1
    - Dst: from_t
      Src: /src/botan/src/tests/test_kyber.cpp:361,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:364,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:368,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:368,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_kyber.cpp:368,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:373,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 375
    functionName: Kyber_Keygen_Tests::test_decompress
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 1
    functionsReached:
    - start_timer
    - static_cast<uint16_t>
    - test_failure
    - Kyber_Algos::decompress<d>
    - test_success
    - end_timer
    - static_cast<from_t>
    - from_t
    - fmt
    linkageType: ''
    returnType: void
    signature: void test_decompress(Test::Result& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:382,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:388,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:388,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:393,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 395
    functionName: Kyber_Keygen_Tests::test_compress_roundtrip
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 1
    functionsReached:
    - Kyber_Algos::compress<d>
    - test_failure
    - Kyber_Algos::decompress<d>
    - test_success
    - end_timer
    - start_timer
    - fmt
    linkageType: ''
    returnType: void
    signature: void test_compress_roundtrip(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:399,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:399,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:400,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:400,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:401,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:401,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:402,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:402,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:405,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:405,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:406,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:406,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:407,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:407,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:408,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:408,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:411,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:411,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:412,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:412,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:413,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:413,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:414,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:414,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:415,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 417
    functionName: Kyber_Keygen_Tests::test_kyber_helpers
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Kyber_Keygen_Tests::test_decompress
    - Kyber_Keygen_Tests::test_compress_roundtrip
    - Botan_Tests::CHECK
    - Kyber_Keygen_Tests::test_compress
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_kyber_helpers()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:336,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:339,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:344,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:344,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:349,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' res'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 351
    functionName: Kyber_Keygen_Tests::test_compress
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 2
    functionsReached:
    - Kyber_Algos::compress<d>
    - test_failure
    - test_success
    - end_timer
    - start_timer
    - fmt
    linkageType: ''
    returnType: void
    signature: void test_compress(Test::Result& res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:358,1
    - Dst: static_cast<from_t>
      Src: /src/botan/src/tests/test_kyber.cpp:361,1
    - Dst: from_t
      Src: /src/botan/src/tests/test_kyber.cpp:361,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:364,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:368,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:368,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_kyber.cpp:368,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:373,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 375
    functionName: Kyber_Keygen_Tests::test_decompress
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 2
    functionsReached:
    - start_timer
    - static_cast<uint16_t>
    - test_failure
    - Kyber_Algos::decompress<d>
    - test_success
    - end_timer
    - static_cast<from_t>
    - from_t
    - fmt
    linkageType: ''
    returnType: void
    signature: void test_decompress(Test::Result& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:382,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:388,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:388,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:393,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 395
    functionName: Kyber_Keygen_Tests::test_compress_roundtrip
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 2
    functionsReached:
    - Kyber_Algos::compress<d>
    - test_failure
    - Kyber_Algos::decompress<d>
    - test_success
    - end_timer
    - start_timer
    - fmt
    linkageType: ''
    returnType: void
    signature: void test_compress_roundtrip(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:399,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:399,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:400,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:400,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:401,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:401,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:402,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:402,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: Kyber_Keygen_Tests::test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:405,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:405,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:406,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:406,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:407,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:407,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:408,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:408,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: Kyber_Keygen_Tests::test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:411,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:411,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:412,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:412,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:413,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:413,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:414,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:414,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:415,1
    - Dst: Kyber_Keygen_Tests::test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 417
    functionName: Kyber_Keygen_Tests::test_kyber_helpers
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Kyber_Keygen_Tests::test_decompress
    - Kyber_Keygen_Tests::test_compress_roundtrip
    - Botan_Tests::CHECK
    - Kyber_Keygen_Tests::test_compress
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_kyber_helpers()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' res'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Test_Buf_Comp::Test_Buf_Comp
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Buf_Comp(Test::Result& res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::Test_Buf_Comp::output_length
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:31,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_bufcomp.cpp:31,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:32,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:33,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:34,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:35,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: Botan_Tests::Test_Buf_Comp::add_data
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    - test_is_true
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_bufcomp.cpp:43,1
    - Dst: copy
      Src: /src/botan/src/tests/test_bufcomp.cpp:44,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_bufcomp.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan_Tests::Test_Buf_Comp::final_result
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t*>
    - std::span<uint8_t>::begin
    - copy
    linkageType: ''
    returnType: void
    signature: void final_result(std::span<uint8_t> out) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_Tests::Test_Buf_Comp::counter
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t counter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/botan/src/tests/test_bufcomp.cpp:56,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' result'
    - produced
    - expected
    argTypes:
    - Test::Result
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan_Tests::check
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void check(Test::Result& result, std::span<const uint8_t> produced,
      size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:82,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:83,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:84,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_bufcomp.cpp:84,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:87,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:88,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:89,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:92,1
    - Dst: Test_Buf_Comp::final_stdvec
      Src: /src/botan/src/tests/test_bufcomp.cpp:93,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:94,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:97,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:98,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:99,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:101,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_bufcomp.cpp:104,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:105,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_bufcomp.cpp:106,1
    - Dst: Test_Buf_Comp::output_length
      Src: /src/botan/src/tests/test_bufcomp.cpp:106,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:107,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: Test_Buf_Comp::output_length
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:110,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:113,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:114,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_bufcomp.cpp:114,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:116,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:119,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:120,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:122,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:125,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:126,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 131
    functionName: Botan_Tests::test_buffered_computation_convenience_api
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - Test_Buf_Comp::output_length
    - std::string
    - Test_Buf_Comp::process
    - std::vector::resize
    - Test_Buf_Comp::update
    - std::vector::clear
    - Test_Buf_Comp::final_stdvec
    - std::vector::size
    - Test_Buf_Comp::final
    - Test::Result::test_sz_eq
    - Botan_Tests::check
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_buffered_computation_convenience_api()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' res'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Test_Buf_Comp::Test_Buf_Comp
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Buf_Comp(Test::Result& res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::Test_Buf_Comp::output_length
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:31,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_bufcomp.cpp:31,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:32,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:33,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:34,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:35,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: Botan_Tests::Test_Buf_Comp::add_data
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    - test_is_true
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_bufcomp.cpp:43,1
    - Dst: copy
      Src: /src/botan/src/tests/test_bufcomp.cpp:44,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_bufcomp.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan_Tests::Test_Buf_Comp::final_result
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t*>
    - std::span<uint8_t>::begin
    - copy
    linkageType: ''
    returnType: void
    signature: void final_result(std::span<uint8_t> out) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_Tests::Test_Buf_Comp::counter
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t counter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/botan/src/tests/test_bufcomp.cpp:56,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' result'
    - produced
    - expected
    argTypes:
    - Test::Result
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan_Tests::check
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 1
    functionsReached:
    - std::memcpy
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void check(Test::Result& result, std::span<const uint8_t> produced,
      size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:82,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:83,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:84,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_bufcomp.cpp:84,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:87,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:88,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:89,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:92,1
    - Dst: Test_Buf_Comp::final_stdvec
      Src: /src/botan/src/tests/test_bufcomp.cpp:93,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:94,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:97,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:98,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:99,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:101,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_bufcomp.cpp:104,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:105,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_bufcomp.cpp:106,1
    - Dst: Test_Buf_Comp::output_length
      Src: /src/botan/src/tests/test_bufcomp.cpp:106,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:107,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: Test_Buf_Comp::output_length
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:110,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:113,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:114,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_bufcomp.cpp:114,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:116,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:119,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:120,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:122,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:125,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:126,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 131
    functionName: Botan_Tests::test_buffered_computation_convenience_api
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - Test_Buf_Comp::output_length
    - std::string
    - Test_Buf_Comp::process
    - std::vector::resize
    - Test_Buf_Comp::update
    - std::vector::clear
    - Test_Buf_Comp::final_stdvec
    - std::vector::size
    - Test_Buf_Comp::final
    - Test::Result::test_sz_eq
    - Botan_Tests::check
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_buffered_computation_convenience_api()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' res'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Test_Buf_Comp::Test_Buf_Comp
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Buf_Comp(Test::Result& res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::Test_Buf_Comp::output_length
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:31,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_bufcomp.cpp:31,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:32,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:33,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:34,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:35,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: Botan_Tests::Test_Buf_Comp::add_data
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    - test_is_true
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_bufcomp.cpp:43,1
    - Dst: copy
      Src: /src/botan/src/tests/test_bufcomp.cpp:44,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_bufcomp.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan_Tests::Test_Buf_Comp::final_result
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t*>
    - std::span<uint8_t>::begin
    - copy
    linkageType: ''
    returnType: void
    signature: void final_result(std::span<uint8_t> out) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_Tests::Test_Buf_Comp::counter
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t counter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/botan/src/tests/test_bufcomp.cpp:56,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' result'
    - produced
    - expected
    argTypes:
    - Test::Result
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan_Tests::check
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void check(Test::Result& result, std::span<const uint8_t> produced,
      size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:82,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:83,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:84,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_bufcomp.cpp:84,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:87,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:88,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:89,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:92,1
    - Dst: Test_Buf_Comp::final_stdvec
      Src: /src/botan/src/tests/test_bufcomp.cpp:93,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:94,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:97,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:98,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:99,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:101,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_bufcomp.cpp:104,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:105,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_bufcomp.cpp:106,1
    - Dst: Test_Buf_Comp::output_length
      Src: /src/botan/src/tests/test_bufcomp.cpp:106,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:107,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: Test_Buf_Comp::output_length
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:110,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:113,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:114,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_bufcomp.cpp:114,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:116,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:119,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:120,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:122,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:125,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:126,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 131
    functionName: Botan_Tests::test_buffered_computation_convenience_api
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - Test_Buf_Comp::output_length
    - std::string
    - Test_Buf_Comp::process
    - std::vector::resize
    - Test_Buf_Comp::update
    - std::vector::clear
    - Test_Buf_Comp::final_stdvec
    - std::vector::size
    - Test_Buf_Comp::final
    - Test::Result::test_sz_eq
    - Botan_Tests::check
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_buffered_computation_convenience_api()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' res'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::Test_Buf_Comp::Test_Buf_Comp
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Buf_Comp(Test::Result& res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::Test_Buf_Comp::output_length
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_sz_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:31,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_bufcomp.cpp:31,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:32,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:33,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:34,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:35,1
    - Dst: test_is_true
      Src: /src/botan/src/tests/test_bufcomp.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: Botan_Tests::Test_Buf_Comp::add_data
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - test_sz_eq
    - test_is_true
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void add_data(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_bufcomp.cpp:43,1
    - Dst: copy
      Src: /src/botan/src/tests/test_bufcomp.cpp:44,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_bufcomp.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan_Tests::Test_Buf_Comp::final_result
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t*>
    - std::span<uint8_t>::begin
    - copy
    linkageType: ''
    returnType: void
    signature: void final_result(std::span<uint8_t> out) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_Tests::Test_Buf_Comp::counter
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t counter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/botan/src/tests/test_bufcomp.cpp:56,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' result'
    - produced
    - expected
    argTypes:
    - Test::Result
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan_Tests::check
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 3
    functionsReached:
    - std::memcpy
    - test_bin_eq
    linkageType: ''
    returnType: void
    signature: void check(Test::Result& result, std::span<const uint8_t> produced,
      size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:82,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:83,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:84,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_bufcomp.cpp:84,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:87,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:88,1
    - Dst: Test_Buf_Comp::update
      Src: /src/botan/src/tests/test_bufcomp.cpp:89,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:92,1
    - Dst: Test_Buf_Comp::final_stdvec
      Src: /src/botan/src/tests/test_bufcomp.cpp:93,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:94,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:97,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:98,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:99,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:101,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_bufcomp.cpp:104,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:105,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_bufcomp.cpp:106,1
    - Dst: Test_Buf_Comp::output_length
      Src: /src/botan/src/tests/test_bufcomp.cpp:106,1
    - Dst: Test_Buf_Comp::final
      Src: /src/botan/src/tests/test_bufcomp.cpp:107,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: Test_Buf_Comp::output_length
      Src: /src/botan/src/tests/test_bufcomp.cpp:108,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:110,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:113,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:114,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_bufcomp.cpp:114,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:116,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:119,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:120,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:122,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:125,1
    - Dst: Test_Buf_Comp::process
      Src: /src/botan/src/tests/test_bufcomp.cpp:126,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/tests/test_bufcomp.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 131
    functionName: Botan_Tests::test_buffered_computation_convenience_api
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - Test_Buf_Comp::output_length
    - std::string
    - Test_Buf_Comp::process
    - std::vector::resize
    - Test_Buf_Comp::update
    - std::vector::clear
    - Test_Buf_Comp::final_stdvec
    - std::vector::size
    - Test_Buf_Comp::final
    - Test::Result::test_sz_eq
    - Botan_Tests::check
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_buffered_computation_convenience_api()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::LMOTS_Test::LMOTS_Test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LMOTS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_lmots.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::LMOTS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lmots.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:35,1
    - Dst: Botan::LMS_Identifier
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lmots.cpp:38,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:38,1
    - Dst: Botan::LMOTS_K
      Src: /src/botan/src/tests/test_lmots.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:41,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lmots.cpp:43,1
    - Dst: static_cast<Botan::LMOTS_Algorithm_Type>
      Src: /src/botan/src/tests/test_lmots.cpp:45,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:46,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/tests/test_lmots.cpp:49,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:51,1
    - Dst: auto::K
      Src: /src/botan/src/tests/test_lmots.cpp:51,1
    - Dst: auto::sign
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:56,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lmots.cpp:56,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lmots.cpp:59,1
    - Dst: Botan::LMOTS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:60,1
    - Dst: Botan::lmots_compute_pubkey_from_sig
      Src: /src/botan/src/tests/test_lmots.cpp:61,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 65
    functionName: Botan_Tests::LMOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMOTS_Signature::from_bytes_or_throw
    - Botan::LMS_Identifier
    - Botan::LMOTS_K
    - Botan::LMOTS_Public_Key
    - auto::process
    - get_req_u32
    - Botan::LMS_Message
    - Botan::LMS_Tree_Node_Idx
    - auto::sign
    - get_req_bin
    - Botan::LMOTS_Private_Key
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Botan::lmots_compute_pubkey_from_sig
    - Botan::LMS_Seed
    - static_cast<Botan::LMOTS_Algorithm_Type>
    - auto::K
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMOTS_Params::create_or_throw
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::LMOTS_Test::LMOTS_Test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LMOTS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_lmots.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::LMOTS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lmots.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:35,1
    - Dst: Botan::LMS_Identifier
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lmots.cpp:38,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:38,1
    - Dst: Botan::LMOTS_K
      Src: /src/botan/src/tests/test_lmots.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:41,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lmots.cpp:43,1
    - Dst: static_cast<Botan::LMOTS_Algorithm_Type>
      Src: /src/botan/src/tests/test_lmots.cpp:45,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:46,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/tests/test_lmots.cpp:49,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:51,1
    - Dst: auto::K
      Src: /src/botan/src/tests/test_lmots.cpp:51,1
    - Dst: auto::sign
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:56,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lmots.cpp:56,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lmots.cpp:59,1
    - Dst: Botan::LMOTS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:60,1
    - Dst: Botan::lmots_compute_pubkey_from_sig
      Src: /src/botan/src/tests/test_lmots.cpp:61,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 65
    functionName: Botan_Tests::LMOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMOTS_Signature::from_bytes_or_throw
    - Botan::LMS_Identifier
    - Botan::LMOTS_K
    - Botan::LMOTS_Public_Key
    - auto::process
    - get_req_u32
    - Botan::LMS_Message
    - Botan::LMS_Tree_Node_Idx
    - auto::sign
    - get_req_bin
    - Botan::LMOTS_Private_Key
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Botan::lmots_compute_pubkey_from_sig
    - Botan::LMS_Seed
    - static_cast<Botan::LMOTS_Algorithm_Type>
    - auto::K
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMOTS_Params::create_or_throw
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::LMOTS_Test::LMOTS_Test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LMOTS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_lmots.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::LMOTS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lmots.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:35,1
    - Dst: Botan::LMS_Identifier
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lmots.cpp:38,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:38,1
    - Dst: Botan::LMOTS_K
      Src: /src/botan/src/tests/test_lmots.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:41,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lmots.cpp:43,1
    - Dst: static_cast<Botan::LMOTS_Algorithm_Type>
      Src: /src/botan/src/tests/test_lmots.cpp:45,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:46,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/tests/test_lmots.cpp:49,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:51,1
    - Dst: auto::K
      Src: /src/botan/src/tests/test_lmots.cpp:51,1
    - Dst: auto::sign
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:56,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lmots.cpp:56,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lmots.cpp:59,1
    - Dst: Botan::LMOTS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:60,1
    - Dst: Botan::lmots_compute_pubkey_from_sig
      Src: /src/botan/src/tests/test_lmots.cpp:61,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 65
    functionName: Botan_Tests::LMOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMOTS_Signature::from_bytes_or_throw
    - Botan::LMS_Identifier
    - Botan::LMOTS_K
    - Botan::LMOTS_Public_Key
    - auto::process
    - get_req_u32
    - Botan::LMS_Message
    - Botan::LMS_Tree_Node_Idx
    - auto::sign
    - get_req_bin
    - Botan::LMOTS_Private_Key
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Botan::lmots_compute_pubkey_from_sig
    - Botan::LMS_Seed
    - static_cast<Botan::LMOTS_Algorithm_Type>
    - auto::K
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMOTS_Params::create_or_throw
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_Tests::LMOTS_Test::LMOTS_Test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LMOTS_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_lmots.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan_Tests::LMOTS_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(const std::string& /*header*/, const VarMap& vars)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lmots.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:35,1
    - Dst: Botan::LMS_Identifier
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lmots.cpp:38,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:38,1
    - Dst: Botan::LMOTS_K
      Src: /src/botan/src/tests/test_lmots.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:39,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:41,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lmots.cpp:43,1
    - Dst: static_cast<Botan::LMOTS_Algorithm_Type>
      Src: /src/botan/src/tests/test_lmots.cpp:45,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:46,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/tests/test_lmots.cpp:49,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:51,1
    - Dst: auto::K
      Src: /src/botan/src/tests/test_lmots.cpp:51,1
    - Dst: auto::sign
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:56,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lmots.cpp:56,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lmots.cpp:59,1
    - Dst: Botan::LMOTS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:60,1
    - Dst: Botan::lmots_compute_pubkey_from_sig
      Src: /src/botan/src/tests/test_lmots.cpp:61,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_lmots.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 65
    functionName: Botan_Tests::LMOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMOTS_Signature::from_bytes_or_throw
    - Botan::LMS_Identifier
    - Botan::LMOTS_K
    - Botan::LMOTS_Public_Key
    - auto::process
    - get_req_u32
    - Botan::LMS_Message
    - Botan::LMS_Tree_Node_Idx
    - auto::sign
    - get_req_bin
    - Botan::LMOTS_Private_Key
    - Botan::HashFunction::create
    - Test::Result::test_bin_eq
    - Botan::lmots_compute_pubkey_from_sig
    - Botan::LMS_Seed
    - static_cast<Botan::LMOTS_Algorithm_Type>
    - auto::K
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMOTS_Params::create_or_throw
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:21,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:22,1
    - Dst: to_bytes
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:22,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:23,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:27,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:30,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:31,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:34,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:37,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:37,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:39,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:40,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:41,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:43,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:44,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:47,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:50,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:50,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:51,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:53,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:54,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:55,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:56,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:59,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:63,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:64,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:66,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:68,1
    - Dst: Botan::Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:70,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:72,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:75,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:80,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:84,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:85,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:87,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:89,1
    - Dst: Botan::Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:91,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:93,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:94,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:96,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 101
    functionName: Botan_Tests::test_sphincsplus_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::XmssTreeIndexInLayer
    - Botan::WotsChainIndex
    - Botan_Tests::CHECK
    - to_bytes
    - Botan::TreeNodeIndex
    - sha256
    - Botan::Sphincs_Address::copy_subtree_from
    - Botan::HashFunction::create_or_throw
    - Botan::Sphincs_Address::set_layer_address
    - Botan::TreeLayerIndex
    - Botan::as_keypair_from
    - auto::update
    - Botan::Sphincs_Address::copy_keypair_from
    - Botan::as_subtree_from
    - test_bin_eq
    - Botan::HypertreeLayerIndex
    - Botan::WotsHashIndex
    - auto::final_stdvec
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_sphincsplus_address()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:21,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:22,1
    - Dst: to_bytes
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:22,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:23,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:27,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:30,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:31,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:34,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:37,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:37,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:39,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:40,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:41,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:43,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:44,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:47,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:50,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:50,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:51,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:53,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:54,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:55,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:56,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:59,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:63,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:64,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:66,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:68,1
    - Dst: Botan::Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:70,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:72,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:75,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:80,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:84,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:85,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:87,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:89,1
    - Dst: Botan::Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:91,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:93,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:94,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:96,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 101
    functionName: Botan_Tests::test_sphincsplus_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::XmssTreeIndexInLayer
    - Botan::WotsChainIndex
    - Botan_Tests::CHECK
    - to_bytes
    - Botan::TreeNodeIndex
    - sha256
    - Botan::Sphincs_Address::copy_subtree_from
    - Botan::HashFunction::create_or_throw
    - Botan::Sphincs_Address::set_layer_address
    - Botan::TreeLayerIndex
    - Botan::as_keypair_from
    - auto::update
    - Botan::Sphincs_Address::copy_keypair_from
    - Botan::as_subtree_from
    - test_bin_eq
    - Botan::HypertreeLayerIndex
    - Botan::WotsHashIndex
    - auto::final_stdvec
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_sphincsplus_address()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:21,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:22,1
    - Dst: to_bytes
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:22,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:23,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:27,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:30,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:31,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:34,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:37,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:37,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:39,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:40,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:41,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:43,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:44,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:47,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:50,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:50,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:51,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:53,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:54,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:55,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:56,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:59,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:63,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:64,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:66,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:68,1
    - Dst: Botan::Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:70,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:72,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:75,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:80,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:84,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:85,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:87,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:89,1
    - Dst: Botan::Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:91,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:93,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:94,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:96,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 101
    functionName: Botan_Tests::test_sphincsplus_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::XmssTreeIndexInLayer
    - Botan::WotsChainIndex
    - Botan_Tests::CHECK
    - to_bytes
    - Botan::TreeNodeIndex
    - sha256
    - Botan::Sphincs_Address::copy_subtree_from
    - Botan::HashFunction::create_or_throw
    - Botan::Sphincs_Address::set_layer_address
    - Botan::TreeLayerIndex
    - Botan::as_keypair_from
    - auto::update
    - Botan::Sphincs_Address::copy_keypair_from
    - Botan::as_subtree_from
    - test_bin_eq
    - Botan::HypertreeLayerIndex
    - Botan::WotsHashIndex
    - auto::final_stdvec
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_sphincsplus_address()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:21,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:22,1
    - Dst: to_bytes
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:22,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:23,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:27,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:30,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:31,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:34,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:37,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:37,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:39,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:40,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:41,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:43,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:44,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:47,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:50,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:50,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:51,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:53,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:54,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:55,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:56,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:59,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:63,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:64,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:66,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:68,1
    - Dst: Botan::Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:70,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:72,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:73,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:75,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:80,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:84,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:85,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:87,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:89,1
    - Dst: Botan::Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:91,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:93,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:94,1
    - Dst: test_bin_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:96,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 101
    functionName: Botan_Tests::test_sphincsplus_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::XmssTreeIndexInLayer
    - Botan::WotsChainIndex
    - Botan_Tests::CHECK
    - to_bytes
    - Botan::TreeNodeIndex
    - sha256
    - Botan::Sphincs_Address::copy_subtree_from
    - Botan::HashFunction::create_or_throw
    - Botan::Sphincs_Address::set_layer_address
    - Botan::TreeLayerIndex
    - Botan::as_keypair_from
    - auto::update
    - Botan::Sphincs_Address::copy_keypair_from
    - Botan::as_subtree_from
    - test_bin_eq
    - Botan::HypertreeLayerIndex
    - Botan::WotsHashIndex
    - auto::final_stdvec
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_sphincsplus_address()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::DLIES_KAT_Tests::DLIES_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DLIES_KAT_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:29,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:36,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_dlies.cpp:37,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:38,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_dlies.cpp:40,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dlies.cpp:40,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:44,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:46,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:50,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:52,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:61,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:62,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:65,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/tests/test_dlies.cpp:69,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:72,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dlies.cpp:82,1
    - Dst: Botan::DLIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:83,1
    - Dst: Botan::DLIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:84,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:87,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:90,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:90,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:92,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - ' cipher_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 95
    functionName: Botan_Tests::DLIES_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - auto::new_object
    - std::unique_ptr::key_spec
    - Botan::DLIES_Decryptor::decrypt
    - get_req_bn
    - Botan::DH_PrivateKey::public_value
    - std::move
    - Botan::KDF::create
    - get_req_bin
    - Botan::Cipher_Mode::create
    - check_invalid_ciphertexts
    - Botan::DLIES_Encryptor::encrypt
    - auto::empty
    - get_opt_bin
    - Botan::DLIES_Encryptor::set_initialization_vector
    - Test::Result::test_bin_eq
    - Botan::InitializationVector
    - Botan::DLIES_Decryptor::set_initialization_vector
    - get_req_sz
    - get_req_str
    - Test::Result::test_note
    - Botan_Tests::DLIES_KAT_Tests::rng
    - Botan::DLIES_Encryptor::set_other_key
    - Botan::DL_Group::from_name
    - Botan_CLI::tls_proxy_session::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& cipher_algo, const VarMap&
      vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_dlies.cpp:111,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:113,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:119,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:122,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:127,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:130,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:134,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:134,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_dlies.cpp:137,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:139,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:140,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:143,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:145,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:145,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:150,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:150,1
    - Dst: Botan_Tests::check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:152,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_dlies.cpp:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 157
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - std::unique_ptr::new_object
    - Test::Result::test_note
    - Botan::DLIES_Encryptor::encrypt
    - Botan::DLIES_Encryptor::set_other_key
    - std::vector<uint8_t>
    - Botan::DL_Group::from_name
    - Botan::DH_PrivateKey::public_value
    - Botan::DLIES_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - unlock
    - Botan_CLI::tls_proxy_session::create
    - auto::random_vec
    - Botan_Tests::check_invalid_ciphertexts
    - Botan::KDF::create
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_dlies.cpp:166,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:168,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: Botan_Tests::DLIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::push_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::DLIES_KAT_Tests::DLIES_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DLIES_KAT_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:29,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:36,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_dlies.cpp:37,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:38,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_dlies.cpp:40,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dlies.cpp:40,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:44,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:46,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:50,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:52,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:61,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:62,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:65,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/tests/test_dlies.cpp:69,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:72,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dlies.cpp:82,1
    - Dst: Botan::DLIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:83,1
    - Dst: Botan::DLIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:84,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:87,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:90,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:90,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:92,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - ' cipher_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 95
    functionName: Botan_Tests::DLIES_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - auto::new_object
    - std::unique_ptr::key_spec
    - Botan::DLIES_Decryptor::decrypt
    - get_req_bn
    - Botan::DH_PrivateKey::public_value
    - std::move
    - Botan::KDF::create
    - get_req_bin
    - Botan::Cipher_Mode::create
    - check_invalid_ciphertexts
    - Botan::DLIES_Encryptor::encrypt
    - auto::empty
    - get_opt_bin
    - Botan::DLIES_Encryptor::set_initialization_vector
    - Test::Result::test_bin_eq
    - Botan::InitializationVector
    - Botan::DLIES_Decryptor::set_initialization_vector
    - get_req_sz
    - get_req_str
    - Test::Result::test_note
    - Botan_Tests::DLIES_KAT_Tests::rng
    - Botan::DLIES_Encryptor::set_other_key
    - Botan::DL_Group::from_name
    - Botan_CLI::tls_proxy_session::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& cipher_algo, const VarMap&
      vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_dlies.cpp:111,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:113,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:119,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:122,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:127,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:130,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:134,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:134,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_dlies.cpp:137,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:139,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:140,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:143,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:145,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:145,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:150,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:150,1
    - Dst: Botan_Tests::check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:152,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_dlies.cpp:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 157
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - std::unique_ptr::new_object
    - Test::Result::test_note
    - Botan::DLIES_Encryptor::encrypt
    - Botan::DLIES_Encryptor::set_other_key
    - std::vector<uint8_t>
    - Botan::DL_Group::from_name
    - Botan::DH_PrivateKey::public_value
    - Botan::DLIES_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - unlock
    - Botan_CLI::tls_proxy_session::create
    - auto::random_vec
    - Botan_Tests::check_invalid_ciphertexts
    - Botan::KDF::create
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_dlies.cpp:166,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:168,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: Botan_Tests::DLIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::push_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::DLIES_KAT_Tests::DLIES_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DLIES_KAT_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:29,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:36,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_dlies.cpp:37,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:38,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_dlies.cpp:40,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dlies.cpp:40,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:44,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:46,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:50,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:52,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:61,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:62,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:65,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/tests/test_dlies.cpp:69,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:72,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dlies.cpp:82,1
    - Dst: Botan::DLIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:83,1
    - Dst: Botan::DLIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:84,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:87,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:90,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:90,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:92,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - ' cipher_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 95
    functionName: Botan_Tests::DLIES_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - auto::new_object
    - std::unique_ptr::key_spec
    - Botan::DLIES_Decryptor::decrypt
    - get_req_bn
    - Botan::DH_PrivateKey::public_value
    - std::move
    - Botan::KDF::create
    - get_req_bin
    - Botan::Cipher_Mode::create
    - check_invalid_ciphertexts
    - Botan::DLIES_Encryptor::encrypt
    - auto::empty
    - get_opt_bin
    - Botan::DLIES_Encryptor::set_initialization_vector
    - Test::Result::test_bin_eq
    - Botan::InitializationVector
    - Botan::DLIES_Decryptor::set_initialization_vector
    - get_req_sz
    - get_req_str
    - Test::Result::test_note
    - Botan_Tests::DLIES_KAT_Tests::rng
    - Botan::DLIES_Encryptor::set_other_key
    - Botan::DL_Group::from_name
    - Botan_CLI::tls_proxy_session::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& cipher_algo, const VarMap&
      vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_dlies.cpp:111,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:113,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:119,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:122,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:127,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:130,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:134,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:134,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_dlies.cpp:137,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:139,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:140,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:143,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:145,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:145,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:150,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:150,1
    - Dst: Botan_Tests::check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:152,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_dlies.cpp:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 157
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - std::unique_ptr::new_object
    - Test::Result::test_note
    - Botan::DLIES_Encryptor::encrypt
    - Botan::DLIES_Encryptor::set_other_key
    - std::vector<uint8_t>
    - Botan::DL_Group::from_name
    - Botan::DH_PrivateKey::public_value
    - Botan::DLIES_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - unlock
    - Botan_CLI::tls_proxy_session::create
    - auto::random_vec
    - Botan_Tests::check_invalid_ciphertexts
    - Botan::KDF::create
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_dlies.cpp:166,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:168,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: Botan_Tests::DLIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::push_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::DLIES_KAT_Tests::DLIES_KAT_Tests
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DLIES_KAT_Tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:29,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:35,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:36,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_dlies.cpp:37,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:38,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_dlies.cpp:40,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dlies.cpp:40,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:44,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:46,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:50,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:52,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:61,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:62,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:65,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/tests/test_dlies.cpp:69,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:72,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:78,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:80,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dlies.cpp:82,1
    - Dst: Botan::DLIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:83,1
    - Dst: Botan::DLIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:84,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:87,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:90,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:90,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:92,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - ' cipher_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 95
    functionName: Botan_Tests::DLIES_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - auto::new_object
    - std::unique_ptr::key_spec
    - Botan::DLIES_Decryptor::decrypt
    - get_req_bn
    - Botan::DH_PrivateKey::public_value
    - std::move
    - Botan::KDF::create
    - get_req_bin
    - Botan::Cipher_Mode::create
    - check_invalid_ciphertexts
    - Botan::DLIES_Encryptor::encrypt
    - auto::empty
    - get_opt_bin
    - Botan::DLIES_Encryptor::set_initialization_vector
    - Test::Result::test_bin_eq
    - Botan::InitializationVector
    - Botan::DLIES_Decryptor::set_initialization_vector
    - get_req_sz
    - get_req_str
    - Test::Result::test_note
    - Botan_Tests::DLIES_KAT_Tests::rng
    - Botan::DLIES_Encryptor::set_other_key
    - Botan::DL_Group::from_name
    - Botan_CLI::tls_proxy_session::create
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& cipher_algo, const VarMap&
      vars) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_dlies.cpp:111,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:113,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:119,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:122,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:127,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:130,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:134,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:134,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_dlies.cpp:137,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:139,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:140,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:143,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:145,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:145,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_dlies.cpp:148,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_dlies.cpp:150,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:150,1
    - Dst: Botan_Tests::check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:152,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_dlies.cpp:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 157
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - std::unique_ptr::new_object
    - Test::Result::test_note
    - Botan::DLIES_Encryptor::encrypt
    - Botan::DLIES_Encryptor::set_other_key
    - std::vector<uint8_t>
    - Botan::DL_Group::from_name
    - Botan::DH_PrivateKey::public_value
    - Botan::DLIES_Decryptor::decrypt
    - Test::Result::test_bin_eq
    - unlock
    - Botan_CLI::tls_proxy_session::create
    - auto::random_vec
    - Botan_Tests::check_invalid_ciphertexts
    - Botan::KDF::create
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_dlies.cpp:166,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:168,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_dlies.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: Botan_Tests::DLIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::push_back
    - what
    - Botan_Tests::Test::Result::Failure
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_certstor.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' cert'
    - key
    argTypes:
    - Botan::X509_Certificate
    - std::shared_ptr<Botan::Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::CertificateAndKey::CertificateAndKey
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CertificateAndKey(const Botan::X509_Certificate& cert, std::shared_ptr<Botan::Private_Key>
      key)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CertificateAndKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: operator!=(const CertificateAndKey& rhs) const
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const CertificateAndKey& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& subject_dn() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - certificate
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN & subject_dn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& certificate() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate & certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: '& private_key() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::Private_Key
    signature: Botan::Private_Key & private_key() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:62,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:62,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_key
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:71,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:72,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:77,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:83,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:83,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_certs_for_key
      Src: /src/botan/src/tests/test_certstor.cpp:92,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:95,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:99,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:99,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:102,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_cert
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_key
      Src: /src/botan/src/tests/test_certstor.cpp:114,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:117,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:117,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:122,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 125
    functionName: Botan_Tests::test_certstor_sqlite3_insert_find_remove_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - std::any_of
    - Botan::Certificate_Store_In_SQLite::remove_key
    - Botan::Certificate_Store_In_SQLite::find_certs_for_key
    - subject_key_id
    - Botan::Certificate_Store_In_SQLite::remove_cert
    - Botan::Certificate_Store_In_SQLite::find_cert
    - private_key
    - auto::fingerprint
    - Botan::Certificate_Store_In_SQLite::find_key
    - fingerprint
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_SQLite::insert_key
    - auto::random_vec
    - auto::end
    - auto::begin
    - subject_dn
    - auto::private_key_bits
    - auto::empty
    - Test::Result::test_bin_eq
    - private_key_bits
    - what
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - certificate
    - Test::Result::test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_insert_find_remove_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:131,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:131,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:136,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:136,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:139,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:139,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:140,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:140,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:141,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:141,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:144,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:147,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:150,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: Botan::Certificate_Store_In_SQLite::affirm_cert
      Src: /src/botan/src/tests/test_certstor.cpp:155,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:155,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:158,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:160,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:160,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:165,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:165,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_certstor.cpp:167,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: auto::is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:172,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:172,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:174,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:178,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 181
    functionName: Botan_Tests::test_certstor_sqlite3_crl_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::is_revoked
    - Botan::Certificate_Store_In_SQLite::generate_crls
    - auto::get_revoked
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_SQLite::revoke_cert
    - Botan::Certificate_Store_In_SQLite::affirm_cert
    - auto::size
    - what
    - certificate
    - is_revoked
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - Botan::Certificate_Store_In_SQLite::find_crl_for
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_crl_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:186,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:187,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:187,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:192,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:192,1
    - Dst: Botan::Certificate_Store_In_SQLite::all_subjects
      Src: /src/botan/src/tests/test_certstor.cpp:195,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:197,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:197,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_certstor.cpp:200,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:202,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:203,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:203,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:204,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:204,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:205,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:205,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:209,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:209,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 212
    functionName: Botan_Tests::test_certstor_sqlite3_all_subjects_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - auto::size
    - to_string
    - Botan::Certificate_Store_In_SQLite::all_subjects
    - subject_dn
    - what
    - certificate
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_all_subjects_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:217,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:218,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:218,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:223,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:223,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:228,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:232,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:233,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:234,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:239,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:239,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:241,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:241,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:243,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:244,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:245,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:245,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:251,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:252,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:254,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:256,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:257,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 264
    functionName: Botan_Tests::test_certstor_sqlite3_find_all_certs_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::at
    - subject_dn
    - std::to_string
    - Botan_Tests::Test::data_file
    - what
    - certificate
    - Test::Result::test_str_eq
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Botan::X509_Certificate
    - Botan::X509_Certificate::subject_dn
    - Botan::Certificate_Store_In_SQLite::find_all_certs
    - Test::Result::test_failure
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_find_all_certs_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_certstor.cpp:272,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_certstor.cpp:275,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:275,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:279,1
    - Dst: raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:283,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:291,1
    - Dst: auto::raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:291,1
    - Dst: issuer_dn
      Src: /src/botan/src/tests/test_certstor.cpp:296,1
    - Dst: serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:297,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:299,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:305,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:305,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:309,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor.cpp:309,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:317,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 320
    functionName: Botan_Tests::test_certstor_all_finders
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - serial_number
    - Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::vector<uint8_t>
    - certificate
    - auto::raw_subject_dn_sha256
    - Test::Result::test_bin_eq
    - fingerprint
    - issuer_dn
    - Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_failure
    - raw_subject_dn_sha256
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_all_finders(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_dir
      Src: /src/botan/src/tests/test_certstor.cpp:326,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor.cpp:329,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:334,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:335,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:341,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 344
    functionName: Botan_Tests::test_certstor_load_allcert
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_note
    - Botan_Tests::Test::data_file
    - Botan::Certificate_Store_In_Memory::find_cert
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::data_dir
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_load_allcert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:364,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:367,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_certstor.cpp:369,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:373,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:377,1
    - Dst: CertificateAndKey
      Src: /src/botan/src/tests/test_certstor.cpp:377,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:382,1
    - Dst: test_certstor_all_finders
      Src: /src/botan/src/tests/test_certstor.cpp:382,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:383,1
    - Dst: test_certstor_load_allcert
      Src: /src/botan/src/tests/test_certstor.cpp:383,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: test_certstor_sqlite3_insert_find_remove_test
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:386,1
    - Dst: test_certstor_sqlite3_crl_test
      Src: /src/botan/src/tests/test_certstor.cpp:386,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: test_certstor_sqlite3_all_subjects_test
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    - Dst: test_certstor_sqlite3_find_all_certs_test
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: Botan_Tests::Certstor_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - CertificateAndKey
    - std::vector::push_back
    - Botan_Tests::Test::data_file
    - test_certstor_sqlite3_insert_find_remove_test
    - test_certstor_all_finders
    - test_certstor_sqlite3_all_subjects_test
    - test_certstor_load_allcert
    - Test::Result::test_failure
    - test_certstor_sqlite3_crl_test
    - test_certstor_sqlite3_find_all_certs_test
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_certstor.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' cert'
    - key
    argTypes:
    - Botan::X509_Certificate
    - std::shared_ptr<Botan::Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::CertificateAndKey::CertificateAndKey
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CertificateAndKey(const Botan::X509_Certificate& cert, std::shared_ptr<Botan::Private_Key>
      key)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CertificateAndKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: operator!=(const CertificateAndKey& rhs) const
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const CertificateAndKey& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& subject_dn() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - certificate
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN & subject_dn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& certificate() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate & certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: '& private_key() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::Private_Key
    signature: Botan::Private_Key & private_key() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:62,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:62,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_key
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:71,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:72,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:77,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:83,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:83,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_certs_for_key
      Src: /src/botan/src/tests/test_certstor.cpp:92,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:95,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:99,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:99,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:102,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_cert
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_key
      Src: /src/botan/src/tests/test_certstor.cpp:114,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:117,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:117,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:122,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 125
    functionName: Botan_Tests::test_certstor_sqlite3_insert_find_remove_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - std::any_of
    - Botan::Certificate_Store_In_SQLite::remove_key
    - Botan::Certificate_Store_In_SQLite::find_certs_for_key
    - subject_key_id
    - Botan::Certificate_Store_In_SQLite::remove_cert
    - Botan::Certificate_Store_In_SQLite::find_cert
    - private_key
    - auto::fingerprint
    - Botan::Certificate_Store_In_SQLite::find_key
    - fingerprint
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_SQLite::insert_key
    - auto::random_vec
    - auto::end
    - auto::begin
    - subject_dn
    - auto::private_key_bits
    - auto::empty
    - Test::Result::test_bin_eq
    - private_key_bits
    - what
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - certificate
    - Test::Result::test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_insert_find_remove_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:131,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:131,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:136,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:136,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:139,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:139,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:140,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:140,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:141,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:141,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:144,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:147,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:150,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: Botan::Certificate_Store_In_SQLite::affirm_cert
      Src: /src/botan/src/tests/test_certstor.cpp:155,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:155,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:158,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:160,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:160,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:165,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:165,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_certstor.cpp:167,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: auto::is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:172,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:172,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:174,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:178,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 181
    functionName: Botan_Tests::test_certstor_sqlite3_crl_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::is_revoked
    - Botan::Certificate_Store_In_SQLite::generate_crls
    - auto::get_revoked
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_SQLite::revoke_cert
    - Botan::Certificate_Store_In_SQLite::affirm_cert
    - auto::size
    - what
    - certificate
    - is_revoked
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - Botan::Certificate_Store_In_SQLite::find_crl_for
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_crl_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:186,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:187,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:187,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:192,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:192,1
    - Dst: Botan::Certificate_Store_In_SQLite::all_subjects
      Src: /src/botan/src/tests/test_certstor.cpp:195,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:197,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:197,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_certstor.cpp:200,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:202,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:203,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:203,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:204,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:204,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:205,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:205,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:209,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:209,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 212
    functionName: Botan_Tests::test_certstor_sqlite3_all_subjects_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - auto::size
    - to_string
    - Botan::Certificate_Store_In_SQLite::all_subjects
    - subject_dn
    - what
    - certificate
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_all_subjects_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:217,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:218,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:218,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:223,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:223,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:228,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:232,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:233,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:234,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:239,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:239,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:241,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:241,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:243,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:244,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:245,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:245,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:251,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:252,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:254,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:256,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:257,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 264
    functionName: Botan_Tests::test_certstor_sqlite3_find_all_certs_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::at
    - subject_dn
    - std::to_string
    - Botan_Tests::Test::data_file
    - what
    - certificate
    - Test::Result::test_str_eq
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Botan::X509_Certificate
    - Botan::X509_Certificate::subject_dn
    - Botan::Certificate_Store_In_SQLite::find_all_certs
    - Test::Result::test_failure
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_find_all_certs_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_certstor.cpp:272,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_certstor.cpp:275,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:275,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:279,1
    - Dst: raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:283,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:291,1
    - Dst: auto::raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:291,1
    - Dst: issuer_dn
      Src: /src/botan/src/tests/test_certstor.cpp:296,1
    - Dst: serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:297,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:299,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:305,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:305,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:309,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor.cpp:309,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:317,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 320
    functionName: Botan_Tests::test_certstor_all_finders
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - serial_number
    - Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::vector<uint8_t>
    - certificate
    - auto::raw_subject_dn_sha256
    - Test::Result::test_bin_eq
    - fingerprint
    - issuer_dn
    - Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_failure
    - raw_subject_dn_sha256
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_all_finders(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_dir
      Src: /src/botan/src/tests/test_certstor.cpp:326,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor.cpp:329,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:334,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:335,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:341,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 344
    functionName: Botan_Tests::test_certstor_load_allcert
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_note
    - Botan_Tests::Test::data_file
    - Botan::Certificate_Store_In_Memory::find_cert
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::data_dir
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_load_allcert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:364,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:367,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_certstor.cpp:369,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:373,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:377,1
    - Dst: CertificateAndKey
      Src: /src/botan/src/tests/test_certstor.cpp:377,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:382,1
    - Dst: test_certstor_all_finders
      Src: /src/botan/src/tests/test_certstor.cpp:382,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:383,1
    - Dst: test_certstor_load_allcert
      Src: /src/botan/src/tests/test_certstor.cpp:383,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: test_certstor_sqlite3_insert_find_remove_test
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:386,1
    - Dst: test_certstor_sqlite3_crl_test
      Src: /src/botan/src/tests/test_certstor.cpp:386,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: test_certstor_sqlite3_all_subjects_test
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    - Dst: test_certstor_sqlite3_find_all_certs_test
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: Botan_Tests::Certstor_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - CertificateAndKey
    - std::vector::push_back
    - Botan_Tests::Test::data_file
    - test_certstor_sqlite3_insert_find_remove_test
    - test_certstor_all_finders
    - test_certstor_sqlite3_all_subjects_test
    - test_certstor_load_allcert
    - Test::Result::test_failure
    - test_certstor_sqlite3_crl_test
    - test_certstor_sqlite3_find_all_certs_test
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_certstor.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' cert'
    - key
    argTypes:
    - Botan::X509_Certificate
    - std::shared_ptr<Botan::Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::CertificateAndKey::CertificateAndKey
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CertificateAndKey(const Botan::X509_Certificate& cert, std::shared_ptr<Botan::Private_Key>
      key)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CertificateAndKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: operator!=(const CertificateAndKey& rhs) const
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const CertificateAndKey& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& subject_dn() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - certificate
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN & subject_dn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& certificate() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate & certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: '& private_key() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::Private_Key
    signature: Botan::Private_Key & private_key() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:62,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:62,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_key
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:71,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:72,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:77,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:83,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:83,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_certs_for_key
      Src: /src/botan/src/tests/test_certstor.cpp:92,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:95,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:99,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:99,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:102,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_cert
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_key
      Src: /src/botan/src/tests/test_certstor.cpp:114,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:117,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:117,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:122,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 125
    functionName: Botan_Tests::test_certstor_sqlite3_insert_find_remove_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - std::any_of
    - Botan::Certificate_Store_In_SQLite::remove_key
    - Botan::Certificate_Store_In_SQLite::find_certs_for_key
    - subject_key_id
    - Botan::Certificate_Store_In_SQLite::remove_cert
    - Botan::Certificate_Store_In_SQLite::find_cert
    - private_key
    - auto::fingerprint
    - Botan::Certificate_Store_In_SQLite::find_key
    - fingerprint
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_SQLite::insert_key
    - auto::random_vec
    - auto::end
    - auto::begin
    - subject_dn
    - auto::private_key_bits
    - auto::empty
    - Test::Result::test_bin_eq
    - private_key_bits
    - what
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - certificate
    - Test::Result::test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_insert_find_remove_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:131,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:131,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:136,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:136,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:139,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:139,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:140,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:140,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:141,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:141,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:144,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:147,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:150,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: Botan::Certificate_Store_In_SQLite::affirm_cert
      Src: /src/botan/src/tests/test_certstor.cpp:155,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:155,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:158,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:160,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:160,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:165,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:165,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_certstor.cpp:167,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: auto::is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:172,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:172,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:174,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:178,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 181
    functionName: Botan_Tests::test_certstor_sqlite3_crl_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::is_revoked
    - Botan::Certificate_Store_In_SQLite::generate_crls
    - auto::get_revoked
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_SQLite::revoke_cert
    - Botan::Certificate_Store_In_SQLite::affirm_cert
    - auto::size
    - what
    - certificate
    - is_revoked
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - Botan::Certificate_Store_In_SQLite::find_crl_for
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_crl_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:186,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:187,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:187,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:192,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:192,1
    - Dst: Botan::Certificate_Store_In_SQLite::all_subjects
      Src: /src/botan/src/tests/test_certstor.cpp:195,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:197,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:197,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_certstor.cpp:200,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:202,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:203,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:203,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:204,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:204,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:205,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:205,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:209,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:209,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 212
    functionName: Botan_Tests::test_certstor_sqlite3_all_subjects_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - auto::size
    - to_string
    - Botan::Certificate_Store_In_SQLite::all_subjects
    - subject_dn
    - what
    - certificate
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_all_subjects_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:217,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:218,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:218,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:223,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:223,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:228,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:232,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:233,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:234,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:239,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:239,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:241,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:241,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:243,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:244,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:245,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:245,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:251,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:252,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:254,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:256,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:257,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 264
    functionName: Botan_Tests::test_certstor_sqlite3_find_all_certs_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::at
    - subject_dn
    - std::to_string
    - Botan_Tests::Test::data_file
    - what
    - certificate
    - Test::Result::test_str_eq
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Botan::X509_Certificate
    - Botan::X509_Certificate::subject_dn
    - Botan::Certificate_Store_In_SQLite::find_all_certs
    - Test::Result::test_failure
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_find_all_certs_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_certstor.cpp:272,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_certstor.cpp:275,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:275,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:279,1
    - Dst: raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:283,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:291,1
    - Dst: auto::raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:291,1
    - Dst: issuer_dn
      Src: /src/botan/src/tests/test_certstor.cpp:296,1
    - Dst: serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:297,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:299,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:305,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:305,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:309,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor.cpp:309,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:317,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 320
    functionName: Botan_Tests::test_certstor_all_finders
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - serial_number
    - Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::vector<uint8_t>
    - certificate
    - auto::raw_subject_dn_sha256
    - Test::Result::test_bin_eq
    - fingerprint
    - issuer_dn
    - Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_failure
    - raw_subject_dn_sha256
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_all_finders(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_dir
      Src: /src/botan/src/tests/test_certstor.cpp:326,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor.cpp:329,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:334,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:335,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:341,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 344
    functionName: Botan_Tests::test_certstor_load_allcert
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_note
    - Botan_Tests::Test::data_file
    - Botan::Certificate_Store_In_Memory::find_cert
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::data_dir
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_load_allcert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:364,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:367,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_certstor.cpp:369,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:373,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:377,1
    - Dst: CertificateAndKey
      Src: /src/botan/src/tests/test_certstor.cpp:377,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:382,1
    - Dst: test_certstor_all_finders
      Src: /src/botan/src/tests/test_certstor.cpp:382,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:383,1
    - Dst: test_certstor_load_allcert
      Src: /src/botan/src/tests/test_certstor.cpp:383,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: test_certstor_sqlite3_insert_find_remove_test
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:386,1
    - Dst: test_certstor_sqlite3_crl_test
      Src: /src/botan/src/tests/test_certstor.cpp:386,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: test_certstor_sqlite3_all_subjects_test
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    - Dst: test_certstor_sqlite3_find_all_certs_test
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: Botan_Tests::Certstor_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - CertificateAndKey
    - std::vector::push_back
    - Botan_Tests::Test::data_file
    - test_certstor_sqlite3_insert_find_remove_test
    - test_certstor_all_finders
    - test_certstor_sqlite3_all_subjects_test
    - test_certstor_load_allcert
    - Test::Result::test_failure
    - test_certstor_sqlite3_crl_test
    - test_certstor_sqlite3_find_all_certs_test
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_certstor.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' cert'
    - key
    argTypes:
    - Botan::X509_Certificate
    - std::shared_ptr<Botan::Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_Tests::CertificateAndKey::CertificateAndKey
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CertificateAndKey(const Botan::X509_Certificate& cert, std::shared_ptr<Botan::Private_Key>
      key)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CertificateAndKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: operator!=(const CertificateAndKey& rhs) const
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const CertificateAndKey& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& subject_dn() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - certificate
    linkageType: ''
    returnType: Botan::X509_DN
    signature: Botan::X509_DN & subject_dn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& certificate() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: Botan::X509_Certificate & certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: '& private_key() const'
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::Private_Key
    signature: Botan::Private_Key & private_key() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:62,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:62,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_key
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:67,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:71,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:72,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:74,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:77,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:81,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:83,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:83,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:87,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:90,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_certs_for_key
      Src: /src/botan/src/tests/test_certstor.cpp:92,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:95,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:99,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:99,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:102,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:107,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_cert
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:111,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_key
      Src: /src/botan/src/tests/test_certstor.cpp:114,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:117,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:117,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:122,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:122,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 125
    functionName: Botan_Tests::test_certstor_sqlite3_insert_find_remove_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - std::any_of
    - Botan::Certificate_Store_In_SQLite::remove_key
    - Botan::Certificate_Store_In_SQLite::find_certs_for_key
    - subject_key_id
    - Botan::Certificate_Store_In_SQLite::remove_cert
    - Botan::Certificate_Store_In_SQLite::find_cert
    - private_key
    - auto::fingerprint
    - Botan::Certificate_Store_In_SQLite::find_key
    - fingerprint
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_SQLite::insert_key
    - auto::random_vec
    - auto::end
    - auto::begin
    - subject_dn
    - auto::private_key_bits
    - auto::empty
    - Test::Result::test_bin_eq
    - private_key_bits
    - what
    - Test::Result::test_is_true
    - Botan_Tests::Test::new_rng
    - certificate
    - Test::Result::test_str_eq
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_insert_find_remove_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:131,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:131,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:136,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:136,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:139,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:139,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:140,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:140,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:141,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:141,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:144,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:147,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:149,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:150,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:152,1
    - Dst: Botan::Certificate_Store_In_SQLite::affirm_cert
      Src: /src/botan/src/tests/test_certstor.cpp:155,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:155,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:158,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:160,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:160,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:165,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:165,1
    - Dst: Test::Result::test_is_false
      Src: /src/botan/src/tests/test_certstor.cpp:167,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: auto::is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:172,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:172,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:174,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:178,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 181
    functionName: Botan_Tests::test_certstor_sqlite3_crl_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::is_revoked
    - Botan::Certificate_Store_In_SQLite::generate_crls
    - auto::get_revoked
    - Test::Result::test_is_true
    - Botan::Certificate_Store_In_SQLite::revoke_cert
    - Botan::Certificate_Store_In_SQLite::affirm_cert
    - auto::size
    - what
    - certificate
    - is_revoked
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - Test::Result::test_is_false
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - Botan::Certificate_Store_In_SQLite::find_crl_for
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_crl_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:186,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:187,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:187,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:192,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:192,1
    - Dst: Botan::Certificate_Store_In_SQLite::all_subjects
      Src: /src/botan/src/tests/test_certstor.cpp:195,1
    - Dst: Test::Result::test_sz_eq
      Src: /src/botan/src/tests/test_certstor.cpp:197,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:197,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_certstor.cpp:200,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:202,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:203,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:203,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:204,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:204,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:205,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:205,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:209,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:209,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 212
    functionName: Botan_Tests::test_certstor_sqlite3_all_subjects_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_is_true
    - auto::size
    - to_string
    - Botan::Certificate_Store_In_SQLite::all_subjects
    - subject_dn
    - what
    - certificate
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Test::Result::test_sz_eq
    - Test::Result::test_failure
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_all_subjects_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_certstor.cpp:217,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:218,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:218,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:223,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:223,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:227,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:228,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:232,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:233,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:234,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:239,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:239,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:241,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:241,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:243,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:244,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:245,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:245,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:248,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:251,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:252,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:254,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:256,1
    - Dst: Test::Result::test_str_eq
      Src: /src/botan/src/tests/test_certstor.cpp:257,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:260,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 264
    functionName: Botan_Tests::test_certstor_sqlite3_find_all_certs_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::at
    - subject_dn
    - std::to_string
    - Botan_Tests::Test::data_file
    - what
    - certificate
    - Test::Result::test_str_eq
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Botan::X509_Certificate
    - Botan::X509_Certificate::subject_dn
    - Botan::Certificate_Store_In_SQLite::find_all_certs
    - Test::Result::test_failure
    - auto::random_vec
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_sqlite3_find_all_certs_test(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_certstor.cpp:272,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_certstor.cpp:275,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:275,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:279,1
    - Dst: raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:283,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:291,1
    - Dst: auto::raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:291,1
    - Dst: issuer_dn
      Src: /src/botan/src/tests/test_certstor.cpp:296,1
    - Dst: serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:297,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:299,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: Test::Result::test_bin_eq
      Src: /src/botan/src/tests/test_certstor.cpp:305,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:305,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:309,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor.cpp:309,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:317,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 320
    functionName: Botan_Tests::test_certstor_all_finders
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - serial_number
    - Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::vector<uint8_t>
    - certificate
    - auto::raw_subject_dn_sha256
    - Test::Result::test_bin_eq
    - fingerprint
    - issuer_dn
    - Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_failure
    - raw_subject_dn_sha256
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - what
    - auto::serial_number
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_all_finders(const std::vector<CertificateAndKey>&
      certsandkeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_dir
      Src: /src/botan/src/tests/test_certstor.cpp:326,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor.cpp:329,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:334,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:335,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Test::Result::test_is_true
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:338,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:341,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 344
    functionName: Botan_Tests::test_certstor_load_allcert
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_note
    - Botan_Tests::Test::data_file
    - Botan::Certificate_Store_In_Memory::find_cert
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::data_dir
    - Test::Result::test_failure
    - Test::Result::test_is_true
    - what
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_certstor_load_allcert()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:364,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:367,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_certstor.cpp:369,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:373,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:377,1
    - Dst: CertificateAndKey
      Src: /src/botan/src/tests/test_certstor.cpp:377,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:382,1
    - Dst: test_certstor_all_finders
      Src: /src/botan/src/tests/test_certstor.cpp:382,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:383,1
    - Dst: test_certstor_load_allcert
      Src: /src/botan/src/tests/test_certstor.cpp:383,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: test_certstor_sqlite3_insert_find_remove_test
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:386,1
    - Dst: test_certstor_sqlite3_crl_test
      Src: /src/botan/src/tests/test_certstor.cpp:386,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: test_certstor_sqlite3_all_subjects_test
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    - Dst: test_certstor_sqlite3_find_all_certs_test
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: Botan_Tests::Certstor_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - CertificateAndKey
    - std::vector::push_back
    - Botan_Tests::Test::data_file
    - test_certstor_sqlite3_insert_find_remove_test
    - test_certstor_all_finders
    - test_certstor_sqlite3_all_subjects_test
    - test_certstor_load_allcert
    - Test::Result::test_failure
    - test_certstor_sqlite3_crl_test
    - test_certstor_sqlite3_find_all_certs_test
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verbose
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' opts'
    - ' output_stream'
    argTypes:
    - Test_Options
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: Botan_Tests::StdoutReporter::StdoutReporter
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 0
    functionsReached:
    - verbose
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::StdoutReporter(const Test_Options& opts, std::ostream&
      output_stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: current_test_run
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:18,1
    - Dst: Botan_Tests::StdoutReporter::render_preamble
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:19,1
    - Dst: Botan_Tests::StdoutReporter::clear
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: Botan_Tests::StdoutReporter::next_run
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::StdoutReporter::clear
    - Botan_Tests::StdoutReporter::render_preamble
    - current_test_run
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::next_run()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::StdoutReporter::next_testsuite
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::next_testsuite(const std::string& name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: result_string
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:29,1
    - Dst: tests_run
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:31,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:33,1
    - Dst: insert
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' name'
    - ' result'
    argTypes:
    - std::string
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: Botan_Tests::StdoutReporter::record
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 0
    functionsReached:
    - tests_run
    - insert
    - tests_failed
    - result_string
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::record(const std::string& name, const Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::StdoutReporter::render_summary
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan_Tests::StdoutReporter::render
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::StdoutReporter::render_summary
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::render() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::StdoutReporter::clear
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan_Tests::StdoutReporter::clear
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::StdoutReporter::clear
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::version_string
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:51,1
    - Dst: properties
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:53,1
    - Dst: properties
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: Botan_Tests::StdoutReporter::render_preamble
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 1
    functionsReached:
    - Botan::version_string
    - properties
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::render_preamble() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:63,1
    - Dst: total_test_runs
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:65,1
    - Dst: current_test_run
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:68,1
    - Dst: total_test_runs
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:68,1
    - Dst: Botan_Tests::Test::format_time
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:71,1
    - Dst: auto::count
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 91
    functionName: Botan_Tests::StdoutReporter::render_summary
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 1
    functionsReached:
    - auto::count
    - elapsed_time
    - current_test_run
    - Botan_Tests::Test::format_time
    - total_test_runs
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::render_summary() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verbose
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' opts'
    - ' output_stream'
    argTypes:
    - Test_Options
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: Botan_Tests::StdoutReporter::StdoutReporter
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 0
    functionsReached:
    - verbose
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::StdoutReporter(const Test_Options& opts, std::ostream&
      output_stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: current_test_run
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:18,1
    - Dst: Botan_Tests::StdoutReporter::render_preamble
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:19,1
    - Dst: Botan_Tests::StdoutReporter::clear
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: Botan_Tests::StdoutReporter::next_run
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::StdoutReporter::clear
    - Botan_Tests::StdoutReporter::render_preamble
    - current_test_run
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::next_run()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_Tests::StdoutReporter::next_testsuite
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::next_testsuite(const std::string& name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: result_string
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:29,1
    - Dst: tests_run
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:31,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:33,1
    - Dst: insert
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' name'
    - ' result'
    argTypes:
    - std::string
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: Botan_Tests::StdoutReporter::record
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 0
    functionsReached:
    - tests_run
    - insert
    - tests_failed
    - result_string
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::record(const std::string& name, const Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::StdoutReporter::render_summary
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan_Tests::StdoutReporter::render
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::StdoutReporter::render_summary
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::render() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::StdoutReporter::clear
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan_Tests::StdoutReporter::clear
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::StdoutReporter::clear
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::version_string
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:51,1
    - Dst: properties
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:53,1
    - Dst: properties
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: Botan_Tests::StdoutReporter::render_preamble
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 2
    functionsReached:
    - Botan::version_string
    - properties
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::render_preamble() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:63,1
    - Dst: total_test_runs
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:65,1
    - Dst: current_test_run
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:68,1
    - Dst: total_test_runs
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:68,1
    - Dst: Botan_Tests::Test::format_time
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:71,1
    - Dst: auto::count
      Src: /src/botan/src/tests/runner/test_stdout_reporter.cpp:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 91
    functionName: Botan_Tests::StdoutReporter::render_summary
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 2
    functionsReached:
    - auto::count
    - elapsed_time
    - current_test_run
    - Botan_Tests::Test::format_time
    - total_test_runs
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::render_summary() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/runner/test_reporter.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::TestSummary::passed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool passed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/runner/test_reporter.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::TestSummary::failed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool failed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& name() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: '& code_location() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<CodeLocation>
    signature: std::optional<CodeLocation> & code_location() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::TestSummary::assertions
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t assertions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& notes() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & notes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& failures() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & failures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& timestamp() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point & timestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& elapsed_time() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::chrono::nanoseconds>
    signature: std::optional<std::chrono::nanoseconds> & elapsed_time() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/runner/test_reporter.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Testsuite::tests_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t tests_run() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: '& name() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& results() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TestSummary>
    signature: std::vector<TestSummary> & results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: ~Reporter()
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Reporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan_Tests::Reporter::Reporter
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reporter(const Reporter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: '& operator=(const Reporter&)'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Reporter
    signature: Reporter & operator=(const Reporter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Reporter::Reporter
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reporter(Reporter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(Reporter&&)'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Reporter
    signature: Reporter & operator=(Reporter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: Botan_Tests::Reporter::render
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void render() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/runner/test_reporter.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: Botan_Tests::Reporter::next_testsuite
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void next_testsuite(const std::string& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: '& properties() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PropertyMap
    signature: PropertyMap & properties() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: '& testsuites() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestsuiteMap
    signature: TestsuiteMap & testsuites() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan_Tests::Reporter::current_test_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t current_test_run() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::Reporter::total_test_runs
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t total_test_runs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/runner/test_reporter.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_Tests::TestSummary::passed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool passed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/runner/test_reporter.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_Tests::TestSummary::failed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool failed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& name() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: '& code_location() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<CodeLocation>
    signature: std::optional<CodeLocation> & code_location() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_Tests::TestSummary::assertions
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t assertions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& notes() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & notes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& failures() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & failures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& timestamp() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point & timestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& elapsed_time() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::chrono::nanoseconds>
    signature: std::optional<std::chrono::nanoseconds> & elapsed_time() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/tests/runner/test_reporter.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan_Tests::Testsuite::tests_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t tests_run() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: '& name() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& results() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TestSummary>
    signature: std::vector<TestSummary> & results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: ~Reporter()
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Reporter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan_Tests::Reporter::Reporter
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reporter(const Reporter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: '& operator=(const Reporter&)'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Reporter
    signature: Reporter & operator=(const Reporter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_Tests::Reporter::Reporter
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reporter(Reporter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& operator=(Reporter&&)'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Reporter
    signature: Reporter & operator=(Reporter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: Botan_Tests::Reporter::render
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void render() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/runner/test_reporter.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: Botan_Tests::Reporter::next_testsuite
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void next_testsuite(const std::string& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: '& properties() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PropertyMap
    signature: PropertyMap & properties() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: '& testsuites() const'
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestsuiteMap
    signature: TestsuiteMap & testsuites() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan_Tests::Reporter::current_test_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t current_test_run() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan_Tests::Reporter::total_test_runs
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t total_test_runs() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:19,1
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:19,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:23,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - std::optional<T>
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: operator+(const std::optional<T>& a, const std::optional<T>& b)
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - value
    linkageType: ''
    returnType: std::optional<T>
    signature: std::optional<T> operator+(const std::optional<T>& a, const std::optional<T>&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:19,1
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:19,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:23,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - std::optional<T>
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: operator+(const std::optional<T>& a, const std::optional<T>& b)
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - value
    linkageType: ''
    returnType: std::optional<T>
    signature: std::optional<T> operator+(const std::optional<T>& a, const std::optional<T>&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: who
      Src: /src/botan/src/tests/runner/test_reporter.cpp:29,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_reporter.cpp:30,1
    - Dst: tests_run
      Src: /src/botan/src/tests/runner/test_reporter.cpp:31,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_reporter.cpp:32,1
    - Dst: failures
      Src: /src/botan/src/tests/runner/test_reporter.cpp:33,1
    - Dst: std::chrono::duration_cast<std::chrono::system_clock::duration>
      Src: /src/botan/src/tests/runner/test_reporter.cpp:35,1
    - Dst: Botan_CLI::Timer::nanoseconds
      Src: /src/botan/src/tests/runner/test_reporter.cpp:35,1
    - Dst: timestamp
      Src: /src/botan/src/tests/runner/test_reporter.cpp:35,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_reporter.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: Botan_Tests::TestSummary::TestSummary
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - failures
    - notes
    - tests_run
    - Botan_CLI::Timer::nanoseconds
    - std::chrono::duration_cast<std::chrono::system_clock::duration>
    - elapsed_time
    - timestamp
    - who
    - code_location
    linkageType: ''
    returnType: void
    signature: void TestSummary::TestSummary(const Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/runner/test_reporter.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_Tests::Testsuite::Testsuite
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Testsuite::Testsuite(std::string name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/botan/src/tests/runner/test_reporter.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan_Tests::Testsuite::record
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void Testsuite::record(const Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::count_if
      Src: /src/botan/src/tests/runner/test_reporter.cpp:45,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:45,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:45,1
    - Dst: passed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan_Tests::Testsuite::tests_passed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - passed
    - begin
    - end
    - std::count_if
    linkageType: ''
    returnType: size_t
    signature: size_t Testsuite::tests_passed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::count_if
      Src: /src/botan/src/tests/runner/test_reporter.cpp:49,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:49,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:49,1
    - Dst: failed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Testsuite::tests_failed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::count_if
    - failed
    linkageType: ''
    returnType: size_t
    signature: size_t Testsuite::tests_failed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform_reduce
      Src: /src/botan/src/tests/runner/test_reporter.cpp:53,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:54,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:55,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/runner/test_reporter.cpp:56,1
    - Dst: min
      Src: /src/botan/src/tests/runner/test_reporter.cpp:57,1
    - Dst: Botan_Tests::Testsuite::timestamp
      Src: /src/botan/src/tests/runner/test_reporter.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: Botan_Tests::Testsuite::timestamp
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 1
    functionsReached:
    - min
    - std::transform_reduce
    - begin
    - Botan_Tests::Testsuite::timestamp
    - Botan_Tests::random_bit_generator::max
    - end
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point Testsuite::timestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform_reduce
      Src: /src/botan/src/tests/runner/test_reporter.cpp:62,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:63,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:64,1
    - Dst: std::make_optional
      Src: /src/botan/src/tests/runner/test_reporter.cpp:65,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/runner/test_reporter.cpp:65,1
    - Dst: Botan_Tests::Testsuite::elapsed_time
      Src: /src/botan/src/tests/runner/test_reporter.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: Botan_Tests::Testsuite::elapsed_time
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 1
    functionsReached:
    - std::make_optional
    - std::transform_reduce
    - Botan::Sodium::sodium_memzero
    - begin
    - Botan_Tests::Testsuite::elapsed_time
    - end
    linkageType: ''
    returnType: std::optional<std::chrono::nanoseconds>
    signature: std::optional<std::chrono::nanoseconds> Testsuite::elapsed_time() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_runs
      Src: /src/botan/src/tests/runner/test_reporter.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' opts'
    argTypes:
    - Test_Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_Tests::Reporter::Reporter
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - test_runs
    linkageType: ''
    returnType: void
    signature: void Reporter::Reporter(const Test_Options& opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert_or_assign
      Src: /src/botan/src/tests/runner/test_reporter.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_Tests::Reporter::set_property
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - insert_or_assign
    linkageType: ''
    returnType: void
    signature: void Reporter::set_property(const std::string& name, const std::string&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/runner/test_reporter.cpp:77,1
    - Dst: clear
      Src: /src/botan/src/tests/runner/test_reporter.cpp:79,1
    - Dst: next_run
      Src: /src/botan/src/tests/runner/test_reporter.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan_Tests::Reporter::next_test_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - clear
    - next_run
    linkageType: ''
    returnType: void
    signature: void Reporter::next_test_run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: try_emplace
      Src: /src/botan/src/tests/runner/test_reporter.cpp:85,1
    - Dst: Botan_Tests::Reporter::record
      Src: /src/botan/src/tests/runner/test_reporter.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' result'
    argTypes:
    - std::string
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan_Tests::Reporter::record
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 1
    functionsReached:
    - try_emplace
    - Botan_Tests::Reporter::record
    linkageType: ''
    returnType: void
    signature: void Reporter::record(const std::string& name, const Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Reporter::next_testsuite
      Src: /src/botan/src/tests/runner/test_reporter.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan_Tests::Reporter::waiting_for_next_results
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Reporter::next_testsuite
    linkageType: ''
    returnType: void
    signature: void Reporter::waiting_for_next_results(const std::string& test_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: who
      Src: /src/botan/src/tests/runner/test_reporter.cpp:96,1
    - Dst: std::map::find
      Src: /src/botan/src/tests/runner/test_reporter.cpp:97,1
    - Dst: std::map::end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:98,1
    - Dst: std::map::insert
      Src: /src/botan/src/tests/runner/test_reporter.cpp:99,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/runner/test_reporter.cpp:99,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/runner/test_reporter.cpp:99,1
    - Dst: std::map::find
      Src: /src/botan/src/tests/runner/test_reporter.cpp:100,1
    - Dst: auto::second::merge
      Src: /src/botan/src/tests/runner/test_reporter.cpp:103,1
    - Dst: Botan_Tests::Reporter::record
      Src: /src/botan/src/tests/runner/test_reporter.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' testsuite_name'
    - ' results'
    argTypes:
    - std::string
    - std::vector<Botan_Tests::Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: Botan_Tests::Reporter::record
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 2
    functionsReached:
    - Botan::Path_Validation_Result::Path_Validation_Result
    - std::map::end
    - auto::second::merge
    - std::make_pair
    - std::map::insert
    - std::map::find
    - who
    - Botan_Tests::Reporter::record
    linkageType: ''
    returnType: void
    signature: void Reporter::record(const std::string& testsuite_name, const std::vector<Botan_Tests::Test::Result>&
      results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform_reduce
      Src: /src/botan/src/tests/runner/test_reporter.cpp:112,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:113,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:113,1
    - Dst: second::tests_run
      Src: /src/botan/src/tests/runner/test_reporter.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Reporter::tests_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::transform_reduce
    - second::tests_run
    - begin
    linkageType: ''
    returnType: size_t
    signature: size_t Reporter::tests_run() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform_reduce
      Src: /src/botan/src/tests/runner/test_reporter.cpp:119,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:120,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:120,1
    - Dst: second::tests_passed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Reporter::tests_passed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::transform_reduce
    - second::tests_passed
    - begin
    linkageType: ''
    returnType: size_t
    signature: size_t Reporter::tests_passed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform_reduce
      Src: /src/botan/src/tests/runner/test_reporter.cpp:126,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:127,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:127,1
    - Dst: second::tests_failed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: Botan_Tests::Reporter::tests_failed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - second::tests_failed
    - end
    - std::transform_reduce
    - begin
    linkageType: ''
    returnType: size_t
    signature: size_t Reporter::tests_failed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/runner/test_reporter.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: Botan_Tests::Reporter::elapsed_time
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: std::chrono::nanoseconds
    signature: std::chrono::nanoseconds Reporter::elapsed_time() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:19,1
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:19,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:23,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - std::optional<T>
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: operator+(const std::optional<T>& a, const std::optional<T>& b)
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - value
    linkageType: ''
    returnType: std::optional<T>
    signature: std::optional<T> operator+(const std::optional<T>& a, const std::optional<T>&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:19,1
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:19,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:23,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_reporter.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - std::optional<T>
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: operator+(const std::optional<T>& a, const std::optional<T>& b)
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - value
    linkageType: ''
    returnType: std::optional<T>
    signature: std::optional<T> operator+(const std::optional<T>& a, const std::optional<T>&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: who
      Src: /src/botan/src/tests/runner/test_reporter.cpp:29,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_reporter.cpp:30,1
    - Dst: tests_run
      Src: /src/botan/src/tests/runner/test_reporter.cpp:31,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_reporter.cpp:32,1
    - Dst: failures
      Src: /src/botan/src/tests/runner/test_reporter.cpp:33,1
    - Dst: std::chrono::duration_cast<std::chrono::system_clock::duration>
      Src: /src/botan/src/tests/runner/test_reporter.cpp:35,1
    - Dst: Botan_CLI::Timer::nanoseconds
      Src: /src/botan/src/tests/runner/test_reporter.cpp:35,1
    - Dst: timestamp
      Src: /src/botan/src/tests/runner/test_reporter.cpp:35,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_reporter.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: Botan_Tests::TestSummary::TestSummary
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - failures
    - notes
    - tests_run
    - Botan_CLI::Timer::nanoseconds
    - std::chrono::duration_cast<std::chrono::system_clock::duration>
    - elapsed_time
    - timestamp
    - who
    - code_location
    linkageType: ''
    returnType: void
    signature: void TestSummary::TestSummary(const Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/runner/test_reporter.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_Tests::Testsuite::Testsuite
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Testsuite::Testsuite(std::string name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/botan/src/tests/runner/test_reporter.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan_Tests::Testsuite::record
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void Testsuite::record(const Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::count_if
      Src: /src/botan/src/tests/runner/test_reporter.cpp:45,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:45,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:45,1
    - Dst: passed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan_Tests::Testsuite::tests_passed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - passed
    - begin
    - end
    - std::count_if
    linkageType: ''
    returnType: size_t
    signature: size_t Testsuite::tests_passed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::count_if
      Src: /src/botan/src/tests/runner/test_reporter.cpp:49,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:49,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:49,1
    - Dst: failed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Testsuite::tests_failed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::count_if
    - failed
    linkageType: ''
    returnType: size_t
    signature: size_t Testsuite::tests_failed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform_reduce
      Src: /src/botan/src/tests/runner/test_reporter.cpp:53,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:54,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:55,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/runner/test_reporter.cpp:56,1
    - Dst: min
      Src: /src/botan/src/tests/runner/test_reporter.cpp:57,1
    - Dst: Botan_Tests::Testsuite::timestamp
      Src: /src/botan/src/tests/runner/test_reporter.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: Botan_Tests::Testsuite::timestamp
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 2
    functionsReached:
    - min
    - std::transform_reduce
    - begin
    - Botan_Tests::Testsuite::timestamp
    - Botan_Tests::random_bit_generator::max
    - end
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point Testsuite::timestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform_reduce
      Src: /src/botan/src/tests/runner/test_reporter.cpp:62,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:63,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:64,1
    - Dst: std::make_optional
      Src: /src/botan/src/tests/runner/test_reporter.cpp:65,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/runner/test_reporter.cpp:65,1
    - Dst: Botan_Tests::Testsuite::elapsed_time
      Src: /src/botan/src/tests/runner/test_reporter.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: Botan_Tests::Testsuite::elapsed_time
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 2
    functionsReached:
    - std::make_optional
    - std::transform_reduce
    - Botan::Sodium::sodium_memzero
    - begin
    - Botan_Tests::Testsuite::elapsed_time
    - end
    linkageType: ''
    returnType: std::optional<std::chrono::nanoseconds>
    signature: std::optional<std::chrono::nanoseconds> Testsuite::elapsed_time() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_runs
      Src: /src/botan/src/tests/runner/test_reporter.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' opts'
    argTypes:
    - Test_Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_Tests::Reporter::Reporter
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - test_runs
    linkageType: ''
    returnType: void
    signature: void Reporter::Reporter(const Test_Options& opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert_or_assign
      Src: /src/botan/src/tests/runner/test_reporter.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_Tests::Reporter::set_property
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - insert_or_assign
    linkageType: ''
    returnType: void
    signature: void Reporter::set_property(const std::string& name, const std::string&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/runner/test_reporter.cpp:77,1
    - Dst: clear
      Src: /src/botan/src/tests/runner/test_reporter.cpp:79,1
    - Dst: next_run
      Src: /src/botan/src/tests/runner/test_reporter.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan_Tests::Reporter::next_test_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - clear
    - next_run
    linkageType: ''
    returnType: void
    signature: void Reporter::next_test_run()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: try_emplace
      Src: /src/botan/src/tests/runner/test_reporter.cpp:85,1
    - Dst: Botan_Tests::Reporter::record
      Src: /src/botan/src/tests/runner/test_reporter.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' result'
    argTypes:
    - std::string
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan_Tests::Reporter::record
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 3
    functionsReached:
    - try_emplace
    - Botan_Tests::Reporter::record
    linkageType: ''
    returnType: void
    signature: void Reporter::record(const std::string& name, const Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Reporter::next_testsuite
      Src: /src/botan/src/tests/runner/test_reporter.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan_Tests::Reporter::waiting_for_next_results
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Reporter::next_testsuite
    linkageType: ''
    returnType: void
    signature: void Reporter::waiting_for_next_results(const std::string& test_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: who
      Src: /src/botan/src/tests/runner/test_reporter.cpp:96,1
    - Dst: std::map::find
      Src: /src/botan/src/tests/runner/test_reporter.cpp:97,1
    - Dst: std::map::end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:98,1
    - Dst: std::map::insert
      Src: /src/botan/src/tests/runner/test_reporter.cpp:99,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/runner/test_reporter.cpp:99,1
    - Dst: Botan::Path_Validation_Result::Path_Validation_Result
      Src: /src/botan/src/tests/runner/test_reporter.cpp:99,1
    - Dst: std::map::find
      Src: /src/botan/src/tests/runner/test_reporter.cpp:100,1
    - Dst: auto::second::merge
      Src: /src/botan/src/tests/runner/test_reporter.cpp:103,1
    - Dst: Botan_Tests::Reporter::record
      Src: /src/botan/src/tests/runner/test_reporter.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' testsuite_name'
    - ' results'
    argTypes:
    - std::string
    - std::vector<Botan_Tests::Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: Botan_Tests::Reporter::record
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 4
    functionsReached:
    - Botan::Path_Validation_Result::Path_Validation_Result
    - std::map::end
    - auto::second::merge
    - std::make_pair
    - std::map::insert
    - std::map::find
    - who
    - Botan_Tests::Reporter::record
    linkageType: ''
    returnType: void
    signature: void Reporter::record(const std::string& testsuite_name, const std::vector<Botan_Tests::Test::Result>&
      results)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform_reduce
      Src: /src/botan/src/tests/runner/test_reporter.cpp:112,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:113,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:113,1
    - Dst: second::tests_run
      Src: /src/botan/src/tests/runner/test_reporter.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: Botan_Tests::Reporter::tests_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::transform_reduce
    - second::tests_run
    - begin
    linkageType: ''
    returnType: size_t
    signature: size_t Reporter::tests_run() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform_reduce
      Src: /src/botan/src/tests/runner/test_reporter.cpp:119,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:120,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:120,1
    - Dst: second::tests_passed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Reporter::tests_passed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::transform_reduce
    - second::tests_passed
    - begin
    linkageType: ''
    returnType: size_t
    signature: size_t Reporter::tests_passed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform_reduce
      Src: /src/botan/src/tests/runner/test_reporter.cpp:126,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:127,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:127,1
    - Dst: second::tests_failed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: Botan_Tests::Reporter::tests_failed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - second::tests_failed
    - end
    - std::transform_reduce
    - begin
    linkageType: ''
    returnType: size_t
    signature: size_t Reporter::tests_failed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/runner/test_reporter.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: Botan_Tests::Reporter::elapsed_time
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: std::chrono::nanoseconds
    signature: std::chrono::nanoseconds Reporter::elapsed_time() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Test_Runner::Test_Runner
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Runner::Test_Runner(std::ostream& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Test_Runner::~Test_Runner()
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Runner::~Test_Runner()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: no_stdout
      Src: /src/botan/src/tests/runner/test_runner.cpp:36,1
    - Dst: emplace_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:37,1
    - Dst: std::make_unique<StdoutReporter>
      Src: /src/botan/src/tests/runner/test_runner.cpp:37,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:37,1
    - Dst: xml_results_dir
      Src: /src/botan/src/tests/runner/test_runner.cpp:39,1
    - Dst: emplace_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:41,1
    - Dst: std::make_unique<XmlReporter>
      Src: /src/botan/src/tests/runner/test_runner.cpp:41,1
    - Dst: xml_results_dir
      Src: /src/botan/src/tests/runner/test_runner.cpp:41,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:43,1
    - Dst: Botan_Tests::Test::filter_registered_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:47,1
    - Dst: requested_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:47,1
    - Dst: skip_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:47,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:50,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:52,1
    - Dst: auto::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:52,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_runner.cpp:53,1
    - Dst: auto::erase
      Src: /src/botan/src/tests/runner/test_runner.cpp:54,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:61,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/runner/test_runner.cpp:62,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/runner/test_runner.cpp:65,1
    - Dst: drbg_seed
      Src: /src/botan/src/tests/runner/test_runner.cpp:65,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:66,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/runner/test_runner.cpp:67,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/runner/test_runner.cpp:68,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/runner/test_runner.cpp:69,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/runner/test_runner.cpp:69,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/tests/runner/test_runner.cpp:74,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:75,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:76,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:80,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:81,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:81,1
    - Dst: provider
      Src: /src/botan/src/tests/runner/test_runner.cpp:84,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:85,1
    - Dst: provider
      Src: /src/botan/src/tests/runner/test_runner.cpp:85,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:88,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/runner/test_runner.cpp:88,1
    - Dst: Botan_Tests::Test::set_test_options
      Src: /src/botan/src/tests/runner/test_runner.cpp:91,1
    - Dst: test_runs
      Src: /src/botan/src/tests/runner/test_runner.cpp:93,1
    - Dst: Botan_Tests::Test::set_test_rng_seed
      Src: /src/botan/src/tests/runner/test_runner.cpp:94,1
    - Dst: next_test_run
      Src: /src/botan/src/tests/runner/test_runner.cpp:97,1
    - Dst: test_threads
      Src: /src/botan/src/tests/runner/test_runner.cpp:101,1
    - Dst: Botan_Tests::Test_Runner::run_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:101,1
    - Dst: Botan_Tests::Test_Runner::run_tests_multithreaded
      Src: /src/botan/src/tests/runner/test_runner.cpp:101,1
    - Dst: test_threads
      Src: /src/botan/src/tests/runner/test_runner.cpp:101,1
    - Dst: render
      Src: /src/botan/src/tests/runner/test_runner.cpp:104,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Test_Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 113
    functionName: Botan_Tests::Test_Runner::run
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 1
    functionsReached:
    - skip_tests
    - Botan::store_be
    - Botan_Tests::Test::set_test_rng_seed
    - Botan_Tests::Test::filter_registered_tests
    - Botan_Tests::Test_Runner::run_tests
    - std::make_unique<StdoutReporter>
    - render
    - Botan::hex_decode
    - std::string::empty
    - Botan_Tests::Test::timestamp
    - emplace_back
    - next_test_run
    - auto::erase
    - auto::end
    - std::vector::empty
    - test_threads
    - Botan_Tests::Test_Runner::run_tests_multithreaded
    - auto::begin
    - drbg_seed
    - provider
    - std::vector::resize
    - auto::empty
    - test_runs
    - Botan::hex_encode
    - xml_results_dir
    - find
    - std::make_unique<XmlReporter>
    - Botan_Tests::Test::set_test_options
    - std::vector::data
    - requested_tests
    - no_stdout
    - set_property
    - Botan::CPUID::to_string
    - output
    - Test_Error
    - pkcs11_lib
    linkageType: ''
    returnType: bool
    signature: bool Test_Runner::run(const Test_Options& options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::get_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:121,1
    - Dst: std::unique_ptr::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:124,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:124,1
    - Dst: set_code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:132,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:132,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: what
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:137,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 141
    functionName: Botan_Tests::run_a_test
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::Test::Result::Note
    - std::vector::end
    - set_code_location
    - what
    - Botan_Tests::Test::get_test
    - std::vector::begin
    - std::unique_ptr::run
    - std::unique_ptr::registration_location
    - std::vector::insert
    - Botan_Tests::Test::Result::Failure
    - code_location
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_a_test(const std::string& test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Botan_Tests::all_passed
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::all_of
    - tests_failed
    - begin
    linkageType: ''
    returnType: bool
    signature: bool all_passed(const std::vector<Test::Result>& results)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::get_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:121,1
    - Dst: std::unique_ptr::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:124,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:124,1
    - Dst: set_code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:132,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:132,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: what
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:137,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 141
    functionName: Botan_Tests::run_a_test
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::Test::Result::Note
    - std::vector::end
    - set_code_location
    - what
    - Botan_Tests::Test::get_test
    - std::vector::begin
    - std::unique_ptr::run
    - std::unique_ptr::registration_location
    - std::vector::insert
    - Botan_Tests::Test::Result::Failure
    - code_location
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_a_test(const std::string& test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Botan_Tests::all_passed
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::all_of
    - tests_failed
    - begin
    linkageType: ''
    returnType: bool
    signature: bool all_passed(const std::vector<Test::Result>& results)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/runner/test_runner.cpp:151,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:154,1
    - Dst: Botan_Tests::Test_Runner::run_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:155,1
    - Dst: Botan::RWLock::RWLock
      Src: /src/botan/src/tests/runner/test_runner.cpp:159,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:165,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:170,1
    - Dst: Botan_Tests::Test::test_needs_serialization
      Src: /src/botan/src/tests/runner/test_runner.cpp:174,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:175,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:175,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:177,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:177,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/runner/test_runner.cpp:182,1
    - Dst: waiting_for_next_results
      Src: /src/botan/src/tests/runner/test_runner.cpp:184,1
    - Dst: get
      Src: /src/botan/src/tests/runner/test_runner.cpp:186,1
    - Dst: record
      Src: /src/botan/src/tests/runner/test_runner.cpp:188,1
    - Dst: all_passed
      Src: /src/botan/src/tests/runner/test_runner.cpp:190,1
    - Dst: Botan::Thread_Pool::shutdown
      Src: /src/botan/src/tests/runner/test_runner.cpp:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ' tests_to_run'
    - test_threads
    argTypes:
    - std::vector<std::string>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 197
    functionName: Botan_Tests::Test_Runner::run_tests_multithreaded
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::test_needs_serialization
    - all_passed
    - std::vector::push_back
    - waiting_for_next_results
    - record
    - get
    - Botan::RWLock::RWLock
    - run_a_test
    - Botan::Thread_Pool::run
    - output
    - Botan::Thread_Pool::shutdown
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::Test_Runner::run_tests
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: bool Test_Runner::run_tests_multithreaded(const std::vector<std::string>&
      tests_to_run, size_t test_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: waiting_for_next_results
      Src: /src/botan/src/tests/runner/test_runner.cpp:203,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:205,1
    - Dst: record
      Src: /src/botan/src/tests/runner/test_runner.cpp:208,1
    - Dst: all_passed
      Src: /src/botan/src/tests/runner/test_runner.cpp:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' tests_to_run'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 214
    functionName: Botan_Tests::Test_Runner::run_tests
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 2
    functionsReached:
    - run_a_test
    - waiting_for_next_results
    - record
    - all_passed
    linkageType: ''
    returnType: bool
    signature: bool Test_Runner::run_tests(const std::vector<std::string>& tests_to_run)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_Tests::Test_Runner::Test_Runner
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Runner::Test_Runner(std::ostream& out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Test_Runner::~Test_Runner()
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Runner::~Test_Runner()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: no_stdout
      Src: /src/botan/src/tests/runner/test_runner.cpp:36,1
    - Dst: emplace_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:37,1
    - Dst: std::make_unique<StdoutReporter>
      Src: /src/botan/src/tests/runner/test_runner.cpp:37,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:37,1
    - Dst: xml_results_dir
      Src: /src/botan/src/tests/runner/test_runner.cpp:39,1
    - Dst: emplace_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:41,1
    - Dst: std::make_unique<XmlReporter>
      Src: /src/botan/src/tests/runner/test_runner.cpp:41,1
    - Dst: xml_results_dir
      Src: /src/botan/src/tests/runner/test_runner.cpp:41,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:43,1
    - Dst: Botan_Tests::Test::filter_registered_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:47,1
    - Dst: requested_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:47,1
    - Dst: skip_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:47,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:50,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:52,1
    - Dst: auto::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:52,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_runner.cpp:53,1
    - Dst: auto::erase
      Src: /src/botan/src/tests/runner/test_runner.cpp:54,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:61,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/runner/test_runner.cpp:62,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/runner/test_runner.cpp:65,1
    - Dst: drbg_seed
      Src: /src/botan/src/tests/runner/test_runner.cpp:65,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:66,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/runner/test_runner.cpp:67,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/runner/test_runner.cpp:68,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/runner/test_runner.cpp:69,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/runner/test_runner.cpp:69,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/tests/runner/test_runner.cpp:74,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:75,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:76,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:80,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:81,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:81,1
    - Dst: provider
      Src: /src/botan/src/tests/runner/test_runner.cpp:84,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:85,1
    - Dst: provider
      Src: /src/botan/src/tests/runner/test_runner.cpp:85,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:88,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/runner/test_runner.cpp:88,1
    - Dst: Botan_Tests::Test::set_test_options
      Src: /src/botan/src/tests/runner/test_runner.cpp:91,1
    - Dst: test_runs
      Src: /src/botan/src/tests/runner/test_runner.cpp:93,1
    - Dst: Botan_Tests::Test::set_test_rng_seed
      Src: /src/botan/src/tests/runner/test_runner.cpp:94,1
    - Dst: next_test_run
      Src: /src/botan/src/tests/runner/test_runner.cpp:97,1
    - Dst: test_threads
      Src: /src/botan/src/tests/runner/test_runner.cpp:101,1
    - Dst: Botan_Tests::Test_Runner::run_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:101,1
    - Dst: Botan_Tests::Test_Runner::run_tests_multithreaded
      Src: /src/botan/src/tests/runner/test_runner.cpp:101,1
    - Dst: test_threads
      Src: /src/botan/src/tests/runner/test_runner.cpp:101,1
    - Dst: render
      Src: /src/botan/src/tests/runner/test_runner.cpp:104,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Test_Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 113
    functionName: Botan_Tests::Test_Runner::run
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 1
    functionsReached:
    - skip_tests
    - Botan::store_be
    - Botan_Tests::Test::set_test_rng_seed
    - Botan_Tests::Test::filter_registered_tests
    - Botan_Tests::Test_Runner::run_tests
    - std::make_unique<StdoutReporter>
    - render
    - Botan::hex_decode
    - std::string::empty
    - Botan_Tests::Test::timestamp
    - emplace_back
    - next_test_run
    - auto::erase
    - auto::end
    - std::vector::empty
    - test_threads
    - Botan_Tests::Test_Runner::run_tests_multithreaded
    - auto::begin
    - drbg_seed
    - provider
    - std::vector::resize
    - auto::empty
    - test_runs
    - Botan::hex_encode
    - xml_results_dir
    - find
    - std::make_unique<XmlReporter>
    - Botan_Tests::Test::set_test_options
    - std::vector::data
    - requested_tests
    - no_stdout
    - set_property
    - Botan::CPUID::to_string
    - output
    - Test_Error
    - pkcs11_lib
    linkageType: ''
    returnType: bool
    signature: bool Test_Runner::run(const Test_Options& options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::get_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:121,1
    - Dst: std::unique_ptr::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:124,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:124,1
    - Dst: set_code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:132,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:132,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: what
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:137,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 141
    functionName: Botan_Tests::run_a_test
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::Test::Result::Note
    - std::vector::end
    - set_code_location
    - what
    - Botan_Tests::Test::get_test
    - std::vector::begin
    - std::unique_ptr::run
    - std::unique_ptr::registration_location
    - std::vector::insert
    - Botan_Tests::Test::Result::Failure
    - code_location
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_a_test(const std::string& test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Botan_Tests::all_passed
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::all_of
    - tests_failed
    - begin
    linkageType: ''
    returnType: bool
    signature: bool all_passed(const std::vector<Test::Result>& results)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::get_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:121,1
    - Dst: std::unique_ptr::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:124,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:124,1
    - Dst: set_code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:132,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:132,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: what
      Src: /src/botan/src/tests/runner/test_runner.cpp:135,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:137,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 141
    functionName: Botan_Tests::run_a_test
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan_Tests::Test::Result::Note
    - std::vector::end
    - set_code_location
    - what
    - Botan_Tests::Test::get_test
    - std::vector::begin
    - std::unique_ptr::run
    - std::unique_ptr::registration_location
    - std::vector::insert
    - Botan_Tests::Test::Result::Failure
    - code_location
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_a_test(const std::string& test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_runner.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Botan_Tests::all_passed
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::all_of
    - tests_failed
    - begin
    linkageType: ''
    returnType: bool
    signature: bool all_passed(const std::vector<Test::Result>& results)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/runner/test_runner.cpp:151,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:154,1
    - Dst: Botan_Tests::Test_Runner::run_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:155,1
    - Dst: Botan::RWLock::RWLock
      Src: /src/botan/src/tests/runner/test_runner.cpp:159,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:165,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:170,1
    - Dst: Botan_Tests::Test::test_needs_serialization
      Src: /src/botan/src/tests/runner/test_runner.cpp:174,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:175,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:175,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:177,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:177,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/runner/test_runner.cpp:182,1
    - Dst: waiting_for_next_results
      Src: /src/botan/src/tests/runner/test_runner.cpp:184,1
    - Dst: get
      Src: /src/botan/src/tests/runner/test_runner.cpp:186,1
    - Dst: record
      Src: /src/botan/src/tests/runner/test_runner.cpp:188,1
    - Dst: all_passed
      Src: /src/botan/src/tests/runner/test_runner.cpp:190,1
    - Dst: Botan::Thread_Pool::shutdown
      Src: /src/botan/src/tests/runner/test_runner.cpp:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ' tests_to_run'
    - test_threads
    argTypes:
    - std::vector<std::string>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 197
    functionName: Botan_Tests::Test_Runner::run_tests_multithreaded
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Test::test_needs_serialization
    - all_passed
    - std::vector::push_back
    - waiting_for_next_results
    - record
    - get
    - Botan::RWLock::RWLock
    - run_a_test
    - Botan::Thread_Pool::run
    - output
    - Botan::Thread_Pool::shutdown
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::Test_Runner::run_tests
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: bool Test_Runner::run_tests_multithreaded(const std::vector<std::string>&
      tests_to_run, size_t test_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: waiting_for_next_results
      Src: /src/botan/src/tests/runner/test_runner.cpp:203,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:205,1
    - Dst: record
      Src: /src/botan/src/tests/runner/test_runner.cpp:208,1
    - Dst: all_passed
      Src: /src/botan/src/tests/runner/test_runner.cpp:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' tests_to_run'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 214
    functionName: Botan_Tests::Test_Runner::run_tests
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 4
    functionsReached:
    - run_a_test
    - waiting_for_next_results
    - record
    - all_passed
    linkageType: ''
    returnType: bool
    signature: bool Test_Runner::run_tests(const std::vector<std::string>& tests_to_run)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:45,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: Botan_Tests::full_compiler_version_string
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::setw
    - std::setfill
    linkageType: ''
    returnType: std::string
    signature: std::string full_compiler_version_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: Botan_Tests::full_compiler_name_string
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string full_compiler_name_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:71,1
    - Dst: Botan::OS::format_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:73,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' tp'
    argTypes:
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: Botan_Tests::format
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 4
    functionsReached:
    - std::chrono::system_clock::to_time_t
    - Botan::OS::format_time
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::system_clock::time_point& tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:80,1
    - Dst: count
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:80,1
    - Dst: std::ostringstream::precision
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:83,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' dur'
    argTypes:
    - std::chrono::nanoseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: Botan_Tests::format
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 4
    functionsReached:
    - count
    - std::ostringstream::precision
    - std::ostringstream::str
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::nanoseconds& dur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:92,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:95,1
    - Dst: std::map::insert_or_assign
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: substr
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: substr
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' report_properties'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: Botan_Tests::parse_report_properties
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find
    - std::map::insert_or_assign
    - size
    - Test_Error
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> parse_report_properties(const std::vector<std::string>&
      report_properties)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:45,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: Botan_Tests::full_compiler_version_string
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::setw
    - std::setfill
    linkageType: ''
    returnType: std::string
    signature: std::string full_compiler_version_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: Botan_Tests::full_compiler_name_string
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string full_compiler_name_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:71,1
    - Dst: Botan::OS::format_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:73,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' tp'
    argTypes:
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: Botan_Tests::format
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 4
    functionsReached:
    - std::chrono::system_clock::to_time_t
    - Botan::OS::format_time
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::system_clock::time_point& tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:80,1
    - Dst: count
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:80,1
    - Dst: std::ostringstream::precision
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:83,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' dur'
    argTypes:
    - std::chrono::nanoseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: Botan_Tests::format
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 4
    functionsReached:
    - count
    - std::ostringstream::precision
    - std::ostringstream::str
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::nanoseconds& dur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:92,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:95,1
    - Dst: std::map::insert_or_assign
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: substr
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: substr
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' report_properties'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: Botan_Tests::parse_report_properties
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find
    - std::map::insert_or_assign
    - size
    - Test_Error
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> parse_report_properties(const std::vector<std::string>&
      report_properties)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:107,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:108,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:109,1
    - Dst: full_compiler_name_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:109,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:110,1
    - Dst: full_compiler_version_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:110,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:111,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:111,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:111,1
    - Dst: parse_report_properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:112,1
    - Dst: report_properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:112,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' opts'
    - output_dir
    argTypes:
    - Test_Options
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: Botan_Tests::XmlReporter::XmlReporter
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - full_compiler_version_string
    - std::move
    - report_properties
    - full_compiler_name_string
    - set_property
    - format
    - Botan::TLS::detail::AsyncBase::complete_now
    - parse_report_properties
    linkageType: ''
    returnType: void
    signature: void XmlReporter::XmlReporter(const Test_Options& opts, std::string
      output_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:119,1
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:119,1
    - Dst: good
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:119,1
    - Dst: Botan_Tests::XmlReporter::render_preamble
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:121,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:121,1
    - Dst: Botan_Tests::XmlReporter::render_testsuites
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:122,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: Botan_Tests::XmlReporter::render
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::XmlReporter::render_preamble
    - value
    - good
    - Botan_Tests::XmlReporter::render_testsuites
    - has_value
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:126,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:128,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:128,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:132,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:132,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: Botan_Tests::XmlReporter::get_unique_output_filename
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan_Tests::Test::timestamp
    - Botan::store_be
    - std::vector::data
    - Botan::short_version_string
    - std::stringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string XmlReporter::get_unique_output_filename() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:138,1
    - Dst: reset
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:139,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:142,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:142,1
    - Dst: current_test_run
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:142,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:143,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:143,1
    - Dst: total_test_runs
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:143,1
    - Dst: Botan_Tests::XmlReporter::get_unique_output_filename
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:144,1
    - Dst: std::ofstream
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:145,1
    - Dst: good
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:147,1
    - Dst: Botan::System_Error::System_Error
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: Botan_Tests::XmlReporter::next_run
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - reset
    - Botan_Tests::XmlReporter::get_unique_output_filename
    - std::to_string
    - Botan::System_Error::System_Error
    - set_property
    - current_test_run
    - std::stringstream::str
    - good
    - total_test_runs
    - std::ofstream
    - has_value
    linkageType: ''
    returnType: void
    signature: void XmlReporter::next_run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:161,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:165,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:165,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:166,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' str'
    - ' from'
    - ' to'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: Botan_Tests::replace
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - size
    - Botan_Tests::replace
    - empty
    - find
    linkageType: ''
    returnType: void
    signature: void replace(std::string& str, const std::string& from, const std::string&
      to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:171,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:172,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:173,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:174,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: Botan_Tests::escape
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::replace
    linkageType: ''
    returnType: std::string
    signature: std::string escape(std::string str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:188,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: Botan_Tests::format_cdata
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan_Tests::replace
    linkageType: ''
    returnType: std::string
    signature: std::string format_cdata(std::string str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:161,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:165,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:165,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:166,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' str'
    - ' from'
    - ' to'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: Botan_Tests::replace
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 4
    functionsReached:
    - size
    - Botan_Tests::replace
    - empty
    - find
    linkageType: ''
    returnType: void
    signature: void replace(std::string& str, const std::string& from, const std::string&
      to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:171,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:172,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:173,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:174,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: Botan_Tests::escape
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::replace
    linkageType: ''
    returnType: std::string
    signature: std::string escape(std::string str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:188,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: Botan_Tests::format_cdata
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan_Tests::replace
    linkageType: ''
    returnType: std::string
    signature: std::string format_cdata(std::string str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan_Tests::XmlReporter::render_preamble
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_preamble(std::ostream& out) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:204,1
    - Dst: properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:209,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:211,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: Botan_Tests::XmlReporter::render_properties
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - escape
    - properties
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_properties(std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tests_run
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:221,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:222,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:223,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:223,1
    - Dst: Botan_Tests::XmlReporter::render_properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:228,1
    - Dst: testsuites
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:230,1
    - Dst: Botan_Tests::XmlReporter::render_testsuite
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 235
    functionName: Botan_Tests::XmlReporter::render_testsuites
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - testsuites
    - tests_run
    - Botan_Tests::XmlReporter::render_properties
    - tests_failed
    - Botan_Tests::XmlReporter::render_testsuite
    - elapsed_time
    - format
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_testsuites(std::ostream& out) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:239,1
    - Dst: name
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:239,1
    - Dst: tests_run
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:240,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:241,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:242,1
    - Dst: timestamp
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:242,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:244,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:245,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:246,1
    - Dst: auto::value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:246,1
    - Dst: results
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:249,1
    - Dst: results
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:254,1
    - Dst: Botan_Tests::XmlReporter::render_testcase
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' out'
    - ' suite'
    argTypes:
    - std::ostream
    - Testsuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 260
    functionName: Botan_Tests::XmlReporter::render_testsuite
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - results
    - tests_run
    - tests_failed
    - elapsed_time
    - Botan_Tests::XmlReporter::render_testcase
    - format
    - name
    - timestamp
    - auto::has_value
    - escape
    - auto::value
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_testsuite(std::ostream& out, const Testsuite&
      suite) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:264,1
    - Dst: name
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:264,1
    - Dst: assertions
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:265,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:266,1
    - Dst: timestamp
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:266,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:268,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:269,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:269,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:272,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:273,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:273,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:274,1
    - Dst: passed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:277,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:277,1
    - Dst: Botan_Tests::XmlReporter::render_failures_and_stdout
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' out'
    - ' test'
    argTypes:
    - std::ostream
    - TestSummary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 284
    functionName: Botan_Tests::XmlReporter::render_testcase
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - passed
    - notes
    - Botan_Tests::XmlReporter::render_failures_and_stdout
    - elapsed_time
    - assertions
    - format
    - name
    - timestamp
    - escape
    - code_location
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_testcase(std::ostream& out, const TestSummary&
      test) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failures
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:287,1
    - Dst: format_cdata
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:289,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:295,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:297,1
    - Dst: format_cdata
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' out'
    - ' test'
    argTypes:
    - std::ostream
    - TestSummary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 302
    functionName: Botan_Tests::XmlReporter::render_failures_and_stdout
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - format_cdata
    - failures
    - notes
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_failures_and_stdout(std::ostream& out, const
      TestSummary& test) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:45,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: Botan_Tests::full_compiler_version_string
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::setw
    - std::setfill
    linkageType: ''
    returnType: std::string
    signature: std::string full_compiler_version_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: Botan_Tests::full_compiler_name_string
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string full_compiler_name_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:71,1
    - Dst: Botan::OS::format_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:73,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' tp'
    argTypes:
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: Botan_Tests::format
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 4
    functionsReached:
    - std::chrono::system_clock::to_time_t
    - Botan::OS::format_time
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::system_clock::time_point& tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:80,1
    - Dst: count
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:80,1
    - Dst: std::ostringstream::precision
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:83,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' dur'
    argTypes:
    - std::chrono::nanoseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: Botan_Tests::format
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 4
    functionsReached:
    - count
    - std::ostringstream::precision
    - std::ostringstream::str
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::nanoseconds& dur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:92,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:95,1
    - Dst: std::map::insert_or_assign
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: substr
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: substr
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' report_properties'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: Botan_Tests::parse_report_properties
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find
    - std::map::insert_or_assign
    - size
    - Test_Error
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> parse_report_properties(const std::vector<std::string>&
      report_properties)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:44,1
    - Dst: std::setw
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:45,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: Botan_Tests::full_compiler_version_string
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::setw
    - std::setfill
    linkageType: ''
    returnType: std::string
    signature: std::string full_compiler_version_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: Botan_Tests::full_compiler_name_string
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string full_compiler_name_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:71,1
    - Dst: Botan::OS::format_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:73,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' tp'
    argTypes:
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: Botan_Tests::format
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 4
    functionsReached:
    - std::chrono::system_clock::to_time_t
    - Botan::OS::format_time
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::system_clock::time_point& tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:80,1
    - Dst: count
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:80,1
    - Dst: std::ostringstream::precision
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:83,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' dur'
    argTypes:
    - std::chrono::nanoseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: Botan_Tests::format
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 4
    functionsReached:
    - count
    - std::ostringstream::precision
    - std::ostringstream::str
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::nanoseconds& dur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:92,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:95,1
    - Dst: std::map::insert_or_assign
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: substr
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: substr
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' report_properties'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: Botan_Tests::parse_report_properties
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find
    - std::map::insert_or_assign
    - size
    - Test_Error
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> parse_report_properties(const std::vector<std::string>&
      report_properties)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:107,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:108,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:109,1
    - Dst: full_compiler_name_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:109,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:110,1
    - Dst: full_compiler_version_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:110,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:111,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:111,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:111,1
    - Dst: parse_report_properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:112,1
    - Dst: report_properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:112,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' opts'
    - output_dir
    argTypes:
    - Test_Options
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: Botan_Tests::XmlReporter::XmlReporter
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - full_compiler_version_string
    - std::move
    - report_properties
    - full_compiler_name_string
    - set_property
    - format
    - Botan::TLS::detail::AsyncBase::complete_now
    - parse_report_properties
    linkageType: ''
    returnType: void
    signature: void XmlReporter::XmlReporter(const Test_Options& opts, std::string
      output_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:119,1
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:119,1
    - Dst: good
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:119,1
    - Dst: Botan_Tests::XmlReporter::render_preamble
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:121,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:121,1
    - Dst: Botan_Tests::XmlReporter::render_testsuites
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:122,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: Botan_Tests::XmlReporter::render
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::XmlReporter::render_preamble
    - value
    - good
    - Botan_Tests::XmlReporter::render_testsuites
    - has_value
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:126,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:128,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:128,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:132,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:132,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: Botan_Tests::XmlReporter::get_unique_output_filename
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_encode
    - Botan_Tests::Test::timestamp
    - Botan::store_be
    - std::vector::data
    - Botan::short_version_string
    - std::stringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string XmlReporter::get_unique_output_filename() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:138,1
    - Dst: reset
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:139,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:142,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:142,1
    - Dst: current_test_run
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:142,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:143,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:143,1
    - Dst: total_test_runs
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:143,1
    - Dst: Botan_Tests::XmlReporter::get_unique_output_filename
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:144,1
    - Dst: std::ofstream
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:145,1
    - Dst: good
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:147,1
    - Dst: Botan::System_Error::System_Error
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: Botan_Tests::XmlReporter::next_run
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - reset
    - Botan_Tests::XmlReporter::get_unique_output_filename
    - std::to_string
    - Botan::System_Error::System_Error
    - set_property
    - current_test_run
    - std::stringstream::str
    - good
    - total_test_runs
    - std::ofstream
    - has_value
    linkageType: ''
    returnType: void
    signature: void XmlReporter::next_run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:161,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:165,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:165,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:166,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' str'
    - ' from'
    - ' to'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: Botan_Tests::replace
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 7
    functionsReached:
    - size
    - Botan_Tests::replace
    - empty
    - find
    linkageType: ''
    returnType: void
    signature: void replace(std::string& str, const std::string& from, const std::string&
      to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:171,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:172,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:173,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:174,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: Botan_Tests::escape
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::replace
    linkageType: ''
    returnType: std::string
    signature: std::string escape(std::string str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:188,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: Botan_Tests::format_cdata
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan_Tests::replace
    linkageType: ''
    returnType: std::string
    signature: std::string format_cdata(std::string str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:161,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:165,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:165,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:166,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' str'
    - ' from'
    - ' to'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: Botan_Tests::replace
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 10
    functionsReached:
    - size
    - Botan_Tests::replace
    - empty
    - find
    linkageType: ''
    returnType: void
    signature: void replace(std::string& str, const std::string& from, const std::string&
      to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:171,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:172,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:173,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:174,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: Botan_Tests::escape
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::replace
    linkageType: ''
    returnType: std::string
    signature: std::string escape(std::string str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:188,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: Botan_Tests::format_cdata
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan_Tests::replace
    linkageType: ''
    returnType: std::string
    signature: std::string format_cdata(std::string str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan_Tests::XmlReporter::render_preamble
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_preamble(std::ostream& out) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:204,1
    - Dst: properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:209,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:211,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: Botan_Tests::XmlReporter::render_properties
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - escape
    - properties
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_properties(std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tests_run
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:221,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:222,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:223,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:223,1
    - Dst: Botan_Tests::XmlReporter::render_properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:228,1
    - Dst: testsuites
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:230,1
    - Dst: Botan_Tests::XmlReporter::render_testsuite
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 235
    functionName: Botan_Tests::XmlReporter::render_testsuites
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 2
    functionsReached:
    - testsuites
    - tests_run
    - Botan_Tests::XmlReporter::render_properties
    - tests_failed
    - Botan_Tests::XmlReporter::render_testsuite
    - elapsed_time
    - format
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_testsuites(std::ostream& out) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:239,1
    - Dst: name
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:239,1
    - Dst: tests_run
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:240,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:241,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:242,1
    - Dst: timestamp
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:242,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:244,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:245,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:246,1
    - Dst: auto::value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:246,1
    - Dst: results
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:249,1
    - Dst: results
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:254,1
    - Dst: Botan_Tests::XmlReporter::render_testcase
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' out'
    - ' suite'
    argTypes:
    - std::ostream
    - Testsuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 260
    functionName: Botan_Tests::XmlReporter::render_testsuite
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 2
    functionsReached:
    - results
    - tests_run
    - tests_failed
    - elapsed_time
    - Botan_Tests::XmlReporter::render_testcase
    - format
    - name
    - timestamp
    - auto::has_value
    - escape
    - auto::value
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_testsuite(std::ostream& out, const Testsuite&
      suite) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:264,1
    - Dst: name
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:264,1
    - Dst: assertions
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:265,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:266,1
    - Dst: timestamp
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:266,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:268,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:269,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:269,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:272,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:273,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:273,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:274,1
    - Dst: passed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:277,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:277,1
    - Dst: Botan_Tests::XmlReporter::render_failures_and_stdout
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' out'
    - ' test'
    argTypes:
    - std::ostream
    - TestSummary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 284
    functionName: Botan_Tests::XmlReporter::render_testcase
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 2
    functionsReached:
    - passed
    - notes
    - Botan_Tests::XmlReporter::render_failures_and_stdout
    - elapsed_time
    - assertions
    - format
    - name
    - timestamp
    - escape
    - code_location
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_testcase(std::ostream& out, const TestSummary&
      test) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: failures
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:287,1
    - Dst: format_cdata
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:289,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:295,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:297,1
    - Dst: format_cdata
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' out'
    - ' test'
    argTypes:
    - std::ostream
    - TestSummary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 302
    functionName: Botan_Tests::XmlReporter::render_failures_and_stdout
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 2
    functionsReached:
    - format_cdata
    - failures
    - notes
    linkageType: ''
    returnType: void
    signature: void XmlReporter::render_failures_and_stdout(std::ostream& out, const
      TestSummary& test) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& output() const'
    functionSourceFile: /src/botan/src/tests/runner/test_runner.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & output() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& output() const'
    functionSourceFile: /src/botan/src/tests/runner/test_runner.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & output() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:28,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: test_conditional_jump_on_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_conditional_jump_on_poisoned_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:39,1
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:40,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: test_array_access_on_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - random_array
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_array_access_on_poisoned_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:48,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:49,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: test_conditional_jump_on_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_conditional_jump_on_transitively_poisoned_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:62,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:63,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:64,1
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: test_array_access_on_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - random_array
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_array_access_on_transitively_poisoned_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:75,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:76,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:77,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: test_unpoisen_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::unpoison
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_unpoisen_transitively_poisoned_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:89,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:90,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: test_poisoned_and_cleared_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_poisoned_and_cleared_data(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:102,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:103,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: test_conditional_branch_on_unpoisoned_bit
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_conditional_branch_on_unpoisoned_bit(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:118,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:119,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 131
    functionName: test_conditional_branch_on_poisoned_bit
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_conditional_branch_on_poisoned_bit(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:134,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:135,1
    - Dst: std::memset
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:138,1
    - Dst: std::array::data
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:150,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:157,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 159
    functionName: test_clang_conditional_jump_on_bare_metal_ct_mask
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::memset
    - next_byte
    - Botan::CT::poison
    - std::array::data
    - Botan::CT::unpoison
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void test_clang_conditional_jump_on_bare_metal_ct_mask(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:162,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:163,1
    - Dst: auto::back
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: test_poison_range
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - auto::back
    - random_array
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_poison_range(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:172,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:173,1
    - Dst: copy
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:177,1
    - Dst: auto::begin
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:177,1
    - Dst: auto::end
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:177,1
    - Dst: std::back_inserter
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:177,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:180,1
    - Dst: std::vector::back
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: test_unpoison_range
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - copy
    - Botan::CT::unpoison
    - Botan::CT::poison
    - std::vector::back
    - random_array
    - std::back_inserter
    - auto::end
    linkageType: ''
    returnType: void
    signature: void test_unpoison_range(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:189,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: test_scoped_poison_inner
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: void
    signature: void test_scoped_poison_inner(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:200,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:203,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: test_scoped_poison_outer
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: void
    signature: void test_scoped_poison_outer(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:217,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:218,1
    - Dst: std::memset
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:221,1
    - Dst: std::array::data
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:221,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:226,1
    - Dst: auto::select
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:228,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:231,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 233
    functionName: regression_test_conditional_jump_in_ct_mask
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::sha512_msg_expand
    - std::memset
    - next_byte
    - Botan::CT::poison
    - std::array::data
    - Botan::CT::unpoison
    - auto::select
    linkageType: ''
    returnType: void
    signature: void regression_test_conditional_jump_in_ct_mask(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:236,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 254
    functionName: cond_jump_on_shifted_out_secret_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - random_array
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void cond_jump_on_shifted_out_secret_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: print_help
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print_help(std::string_view path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:287,1
    - Dst: str
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:288,1
    - Dst: str
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::map<std::string, Test>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: list_tests
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - str
    linkageType: ''
    returnType: void
    signature: void list_tests(const std::map<std::string, Test>& tests)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:28,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: test_conditional_jump_on_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_conditional_jump_on_poisoned_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:39,1
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:40,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: test_array_access_on_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - random_array
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_array_access_on_poisoned_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:48,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:49,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: test_conditional_jump_on_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_conditional_jump_on_transitively_poisoned_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:62,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:63,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:64,1
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: test_array_access_on_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - random_array
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_array_access_on_transitively_poisoned_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:75,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:76,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:77,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: test_unpoisen_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::unpoison
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_unpoisen_transitively_poisoned_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:89,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:90,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: test_poisoned_and_cleared_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_poisoned_and_cleared_data(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:102,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:103,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: test_conditional_branch_on_unpoisoned_bit
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_conditional_branch_on_unpoisoned_bit(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:118,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:119,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 131
    functionName: test_conditional_branch_on_poisoned_bit
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_conditional_branch_on_poisoned_bit(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:134,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:135,1
    - Dst: std::memset
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:138,1
    - Dst: std::array::data
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:150,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:157,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 159
    functionName: test_clang_conditional_jump_on_bare_metal_ct_mask
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::memset
    - next_byte
    - Botan::CT::poison
    - std::array::data
    - Botan::CT::unpoison
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void test_clang_conditional_jump_on_bare_metal_ct_mask(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:162,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:163,1
    - Dst: auto::back
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: test_poison_range
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - auto::back
    - random_array
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void test_poison_range(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:172,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:173,1
    - Dst: copy
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:177,1
    - Dst: auto::begin
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:177,1
    - Dst: auto::end
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:177,1
    - Dst: std::back_inserter
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:177,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:180,1
    - Dst: std::vector::back
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: test_unpoison_range
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - copy
    - Botan::CT::unpoison
    - Botan::CT::poison
    - std::vector::back
    - random_array
    - std::back_inserter
    - auto::end
    linkageType: ''
    returnType: void
    signature: void test_unpoison_range(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:189,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: test_scoped_poison_inner
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: void
    signature: void test_scoped_poison_inner(Botan::RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:200,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:203,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: test_scoped_poison_outer
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: void
    signature: void test_scoped_poison_outer(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:217,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:218,1
    - Dst: std::memset
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:221,1
    - Dst: std::array::data
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:221,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:226,1
    - Dst: auto::select
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:228,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:231,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 233
    functionName: regression_test_conditional_jump_in_ct_mask
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::sha512_msg_expand
    - std::memset
    - next_byte
    - Botan::CT::poison
    - std::array::data
    - Botan::CT::unpoison
    - auto::select
    linkageType: ''
    returnType: void
    signature: void regression_test_conditional_jump_in_ct_mask(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:236,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 254
    functionName: cond_jump_on_shifted_out_secret_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - random_array
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void cond_jump_on_shifted_out_secret_data(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: print_help
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print_help(std::string_view path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:287,1
    - Dst: str
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:288,1
    - Dst: str
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::map<std::string, Test>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: list_tests
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - str
    linkageType: ''
    returnType: void
    signature: void list_tests(const std::map<std::string, Test>& tests)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: print_help
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:316,1
    - Dst: print_help
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:322,1
    - Dst: list_tests
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:327,1
    - Dst: std::map::find
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:331,1
    - Dst: std::map::end
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:332,1
    - Dst: Botan::CT::poison_has_effect
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:342,1
    - Dst: auto::second::test
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:348,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:348,1
    - Dst: what
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 356
    functionName: main
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 53
    functionsReached:
    - std::map::end
    - Botan::CT::poison_has_effect
    - Botan::system_rng
    - print_help
    - auto::second::test
    - list_tests
    - std::map::find
    - what
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::short_version_string
      Src: /src/botan/src/scripts/ci/cmake_tests/main.cpp:5,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 7
    functionName: main
    functionSourceFile: /src/botan/src/scripts/ci/cmake_tests/main.cpp
    functionUses: 53
    functionsReached:
    - Botan::short_version_string
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_CLI::HMAC::HMAC
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HMAC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::HMAC::group
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::HMAC::description
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/cli/hmac.cpp:31,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:32,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/hmac.cpp:34,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hmac.cpp:37,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hmac.cpp:42,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hmac.cpp:44,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hmac.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hmac.cpp:46,1
    - Dst: std::unique_ptr::update
      Src: /src/botan/src/cli/hmac.cpp:51,1
    - Dst: read_file
      Src: /src/botan/src/cli/hmac.cpp:52,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: std::unique_ptr::final
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:56,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:59,1
    - Dst: error_output
      Src: /src/botan/src/cli/hmac.cpp:61,1
    - Dst: what
      Src: /src/botan/src/cli/hmac.cpp:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_CLI::HMAC::go
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Botan::hex_encode
    - get_arg_sz
    - slurp_file
    - read_file
    - std::vector::push_back
    - flag_set
    - get_arg_list
    - get_arg
    - std::unique_ptr::set_key
    - std::unique_ptr::update
    - output
    - error_output
    - CLI_Error_Unsupported
    - std::unique_ptr::final
    - what
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_CLI::HMAC::HMAC
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HMAC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::HMAC::group
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::HMAC::description
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/cli/hmac.cpp:31,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:32,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/hmac.cpp:34,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hmac.cpp:37,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hmac.cpp:42,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hmac.cpp:44,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hmac.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hmac.cpp:46,1
    - Dst: std::unique_ptr::update
      Src: /src/botan/src/cli/hmac.cpp:51,1
    - Dst: read_file
      Src: /src/botan/src/cli/hmac.cpp:52,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: std::unique_ptr::final
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:56,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:59,1
    - Dst: error_output
      Src: /src/botan/src/cli/hmac.cpp:61,1
    - Dst: what
      Src: /src/botan/src/cli/hmac.cpp:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_CLI::HMAC::go
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Botan::hex_encode
    - get_arg_sz
    - slurp_file
    - read_file
    - std::vector::push_back
    - flag_set
    - get_arg_list
    - get_arg
    - std::unique_ptr::set_key
    - std::unique_ptr::update
    - output
    - error_output
    - CLI_Error_Unsupported
    - std::unique_ptr::final
    - what
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_CLI::HMAC::HMAC
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HMAC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::HMAC::group
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::HMAC::description
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/cli/hmac.cpp:31,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:32,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/hmac.cpp:34,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hmac.cpp:37,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hmac.cpp:42,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hmac.cpp:44,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hmac.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hmac.cpp:46,1
    - Dst: std::unique_ptr::update
      Src: /src/botan/src/cli/hmac.cpp:51,1
    - Dst: read_file
      Src: /src/botan/src/cli/hmac.cpp:52,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: std::unique_ptr::final
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:56,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:59,1
    - Dst: error_output
      Src: /src/botan/src/cli/hmac.cpp:61,1
    - Dst: what
      Src: /src/botan/src/cli/hmac.cpp:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_CLI::HMAC::go
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Botan::hex_encode
    - get_arg_sz
    - slurp_file
    - read_file
    - std::vector::push_back
    - flag_set
    - get_arg_list
    - get_arg
    - std::unique_ptr::set_key
    - std::unique_ptr::update
    - output
    - error_output
    - CLI_Error_Unsupported
    - std::unique_ptr::final
    - what
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_CLI::HMAC::HMAC
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HMAC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::HMAC::group
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::HMAC::description
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/cli/hmac.cpp:31,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:32,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/hmac.cpp:34,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hmac.cpp:37,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hmac.cpp:42,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hmac.cpp:44,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hmac.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hmac.cpp:46,1
    - Dst: std::unique_ptr::update
      Src: /src/botan/src/cli/hmac.cpp:51,1
    - Dst: read_file
      Src: /src/botan/src/cli/hmac.cpp:52,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: std::unique_ptr::final
      Src: /src/botan/src/cli/hmac.cpp:53,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:56,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:59,1
    - Dst: error_output
      Src: /src/botan/src/cli/hmac.cpp:61,1
    - Dst: what
      Src: /src/botan/src/cli/hmac.cpp:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_CLI::HMAC::go
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Botan::hex_encode
    - get_arg_sz
    - slurp_file
    - read_file
    - std::vector::push_back
    - flag_set
    - get_arg_list
    - get_arg
    - std::unique_ptr::set_key
    - std::unique_ptr::update
    - output
    - error_output
    - CLI_Error_Unsupported
    - std::unique_ptr::final
    - what
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::PerfTest_PKEnc::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKEnc::algo
      Src: /src/botan/src/cli/perf_pk_enc.cpp:29,1
    - Dst: Botan_CLI::PerfTest_PKEnc::keygen_params
      Src: /src/botan/src/cli/perf_pk_enc.cpp:31,1
    - Dst: Botan_CLI::PerfTest_PKEnc::format_name
      Src: /src/botan/src/cli/perf_pk_enc.cpp:34,1
    - Dst: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_enc.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: Botan_CLI::PerfTest_PKEnc::go
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKEnc::keygen_params
    - Botan_CLI::PerfTest_PKEnc::format_name
    - Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    - Botan_CLI::PerfTest_PKEnc::algo
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_enc.cpp:44,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_enc.cpp:45,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:50,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:56,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:67,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:68,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_enc.cpp:72,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:72,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_enc.cpp:73,1
    - Dst: Botan::PK_Encryptor_EME::maximum_input_size
      Src: /src/botan/src/cli/perf_pk_enc.cpp:73,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:74,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:74,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:77,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:78,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:78,1
    - Dst: Botan::unlock
      Src: /src/botan/src/cli/perf_pk_enc.cpp:81,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_enc.cpp:82,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:87,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:88,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:89,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 91
    functionName: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 1
    functionsReached:
    - Botan::unlock
    - random_vec
    - runtime
    - auto::public_key
    - make_timer
    - record_result
    - Botan::PK_Decryptor_EME::decrypt
    - auto::under
    - Botan::PK_Encryptor_EME::encrypt
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - Botan::PK_Encryptor_EME::maximum_input_size
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: "void bench_pk_ka(const PerfConfig& config,\n                              const
      std::string& nm,\n                              const std::string& algo,\n                              const
      std::string& params,\n                              const std::string& provider
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_CLI::PerfTest_ElGamal::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: Botan_CLI::PerfTest_ElGamal::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan_CLI::PerfTest_ElGamal::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::PerfTest_PKEnc::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKEnc::algo
      Src: /src/botan/src/cli/perf_pk_enc.cpp:29,1
    - Dst: Botan_CLI::PerfTest_PKEnc::keygen_params
      Src: /src/botan/src/cli/perf_pk_enc.cpp:31,1
    - Dst: Botan_CLI::PerfTest_PKEnc::format_name
      Src: /src/botan/src/cli/perf_pk_enc.cpp:34,1
    - Dst: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_enc.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: Botan_CLI::PerfTest_PKEnc::go
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKEnc::keygen_params
    - Botan_CLI::PerfTest_PKEnc::format_name
    - Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    - Botan_CLI::PerfTest_PKEnc::algo
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_enc.cpp:44,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_enc.cpp:45,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:50,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:56,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:67,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:68,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_enc.cpp:72,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:72,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_enc.cpp:73,1
    - Dst: Botan::PK_Encryptor_EME::maximum_input_size
      Src: /src/botan/src/cli/perf_pk_enc.cpp:73,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:74,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:74,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:77,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:78,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:78,1
    - Dst: Botan::unlock
      Src: /src/botan/src/cli/perf_pk_enc.cpp:81,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_enc.cpp:82,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:87,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:88,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:89,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 91
    functionName: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 2
    functionsReached:
    - Botan::unlock
    - random_vec
    - runtime
    - auto::public_key
    - make_timer
    - record_result
    - Botan::PK_Decryptor_EME::decrypt
    - auto::under
    - Botan::PK_Encryptor_EME::encrypt
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - Botan::PK_Encryptor_EME::maximum_input_size
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: "void bench_pk_ka(const PerfConfig& config,\n                              const
      std::string& nm,\n                              const std::string& algo,\n                              const
      std::string& params,\n                              const std::string& provider
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_CLI::PerfTest_ElGamal::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: Botan_CLI::PerfTest_ElGamal::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan_CLI::PerfTest_ElGamal::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::PerfTest_PKEnc::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKEnc::algo
      Src: /src/botan/src/cli/perf_pk_enc.cpp:29,1
    - Dst: Botan_CLI::PerfTest_PKEnc::keygen_params
      Src: /src/botan/src/cli/perf_pk_enc.cpp:31,1
    - Dst: Botan_CLI::PerfTest_PKEnc::format_name
      Src: /src/botan/src/cli/perf_pk_enc.cpp:34,1
    - Dst: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_enc.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: Botan_CLI::PerfTest_PKEnc::go
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKEnc::keygen_params
    - Botan_CLI::PerfTest_PKEnc::format_name
    - Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    - Botan_CLI::PerfTest_PKEnc::algo
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_enc.cpp:44,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_enc.cpp:45,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:50,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:56,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:67,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:68,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_enc.cpp:72,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:72,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_enc.cpp:73,1
    - Dst: Botan::PK_Encryptor_EME::maximum_input_size
      Src: /src/botan/src/cli/perf_pk_enc.cpp:73,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:74,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:74,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:77,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:78,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:78,1
    - Dst: Botan::unlock
      Src: /src/botan/src/cli/perf_pk_enc.cpp:81,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_enc.cpp:82,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:87,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:88,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:89,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 91
    functionName: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 3
    functionsReached:
    - Botan::unlock
    - random_vec
    - runtime
    - auto::public_key
    - make_timer
    - record_result
    - Botan::PK_Decryptor_EME::decrypt
    - auto::under
    - Botan::PK_Encryptor_EME::encrypt
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - Botan::PK_Encryptor_EME::maximum_input_size
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: "void bench_pk_ka(const PerfConfig& config,\n                              const
      std::string& nm,\n                              const std::string& algo,\n                              const
      std::string& params,\n                              const std::string& provider
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_CLI::PerfTest_ElGamal::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: Botan_CLI::PerfTest_ElGamal::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan_CLI::PerfTest_ElGamal::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::PerfTest_PKEnc::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKEnc::algo
      Src: /src/botan/src/cli/perf_pk_enc.cpp:29,1
    - Dst: Botan_CLI::PerfTest_PKEnc::keygen_params
      Src: /src/botan/src/cli/perf_pk_enc.cpp:31,1
    - Dst: Botan_CLI::PerfTest_PKEnc::format_name
      Src: /src/botan/src/cli/perf_pk_enc.cpp:34,1
    - Dst: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_enc.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: Botan_CLI::PerfTest_PKEnc::go
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKEnc::keygen_params
    - Botan_CLI::PerfTest_PKEnc::format_name
    - Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    - Botan_CLI::PerfTest_PKEnc::algo
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_enc.cpp:44,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_enc.cpp:45,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:50,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:56,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:67,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:68,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_enc.cpp:72,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:72,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_enc.cpp:73,1
    - Dst: Botan::PK_Encryptor_EME::maximum_input_size
      Src: /src/botan/src/cli/perf_pk_enc.cpp:73,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:74,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:74,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:77,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:78,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:78,1
    - Dst: Botan::unlock
      Src: /src/botan/src/cli/perf_pk_enc.cpp:81,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_enc.cpp:82,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:87,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:88,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:89,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 91
    functionName: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 4
    functionsReached:
    - Botan::unlock
    - random_vec
    - runtime
    - auto::public_key
    - make_timer
    - record_result
    - Botan::PK_Decryptor_EME::decrypt
    - auto::under
    - Botan::PK_Encryptor_EME::encrypt
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - Botan::PK_Encryptor_EME::maximum_input_size
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: "void bench_pk_ka(const PerfConfig& config,\n                              const
      std::string& nm,\n                              const std::string& algo,\n                              const
      std::string& params,\n                              const std::string& provider
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_CLI::PerfTest_ElGamal::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: Botan_CLI::PerfTest_ElGamal::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_enc.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan_CLI::PerfTest_ElGamal::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Print_Help::Print_Help
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_Help()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::registered_cmds
      Src: /src/botan/src/cli/utils.cpp:42,1
    - Dst: Botan_CLI::Command::get_cmd
      Src: /src/botan/src/cli/utils.cpp:44,1
    - Dst: auto::group
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: push_back
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/utils.cpp:78,1
    - Dst: std::map::find
      Src: /src/botan/src/cli/utils.cpp:83,1
    - Dst: std::map::end
      Src: /src/botan/src/cli/utils.cpp:84,1
    - Dst: std::setw
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: auto::cmd_name
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: auto::description
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/utils.cpp:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Print_Help::help_text
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::get_cmd
    - std::string::empty
    - std::move
    - std::map::end
    - Botan_CLI::Command::registered_cmds
    - std::ostringstream::str
    - std::setw
    - auto::group
    - std::map::find
    - auto::cmd_name
    - auto::description
    - push_back
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan_CLI::Print_Help::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Print_Help::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Print_Help::set_return_code
      Src: /src/botan/src/cli/utils.cpp:104,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:105,1
    - Dst: Botan_CLI::Print_Help::help_text
      Src: /src/botan/src/cli/utils.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Botan_CLI::Print_Help::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Print_Help::help_text
    - Botan_CLI::Print_Help::set_return_code
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_CLI::Has_Command::Has_Command
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Has_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan_CLI::Has_Command::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_CLI::Has_Command::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:120,1
    - Dst: Botan_CLI::Command::registered_cmds
      Src: /src/botan/src/cli/utils.cpp:123,1
    - Dst: verbose
      Src: /src/botan/src/cli/utils.cpp:130,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:131,1
    - Dst: Botan_CLI::Has_Command::set_return_code
      Src: /src/botan/src/cli/utils.cpp:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: Botan_CLI::Has_Command::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - verbose
    - Botan_CLI::Command::registered_cmds
    - get_arg
    - Botan_CLI::Has_Command::set_return_code
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: Botan_CLI::Config_Info::Config_Info
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Config_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Config_Info::help_text
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan_CLI::Config_Info::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan_CLI::Config_Info::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:159,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:162,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:164,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:167,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:169,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:171,1
    - Dst: Botan::version_major
      Src: /src/botan/src/cli/utils.cpp:171,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/utils.cpp:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 175
    functionName: Botan_CLI::Config_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Usage_Error
    - output
    - Botan::version_major
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: Botan_CLI::Version_Info::Version_Info
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Version_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: Botan_CLI::Version_Info::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: Botan_CLI::Version_Info::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/cli/utils.cpp:189,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:190,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/utils.cpp:190,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:192,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/cli/utils.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: Botan_CLI::Version_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::version_string
    - flag_set
    - output
    - Botan::short_version_string
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: Botan_CLI::Print_Cpuid::Print_Cpuid
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_Cpuid()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: Botan_CLI::Print_Cpuid::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: Botan_CLI::Print_Cpuid::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:211,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/utils.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan_CLI::Print_Cpuid::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CPUID::to_string
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: Botan_CLI::Cycle_Counter::Cycle_Counter
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cycle_Counter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: Botan_CLI::Cycle_Counter::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_CLI::Cycle_Counter::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:229,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:230,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:234,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:237,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:241,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:242,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:248,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:249,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:253,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:258,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/utils.cpp:265,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:269,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/utils.cpp:269,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:272,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/utils.cpp:272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 274
    functionName: Botan_CLI::Cycle_Counter::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - std::setprecision
    - static_cast<size_t>
    - output
    - Botan::OS::get_system_timestamp_ns
    - static_cast<double>
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: Botan_CLI::Print_UUID::Print_UUID
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_UUID()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_CLI::Print_UUID::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 289
    functionName: Botan_CLI::Print_UUID::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:293,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/cli/utils.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: Botan_CLI::Print_UUID::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::UUID::to_string
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: Botan_CLI::HTTP_Get::HTTP_Get
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HTTP_Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: Botan_CLI::HTTP_Get::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: Botan_CLI::HTTP_Get::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:312,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:313,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:314,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:316,1
    - Dst: Botan::HTTP::GET_sync
      Src: /src/botan/src/cli/utils.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: Botan_CLI::HTTP_Get::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::HTTP::GET_sync
    - get_arg_sz
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Print_Help::Print_Help
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_Help()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::registered_cmds
      Src: /src/botan/src/cli/utils.cpp:42,1
    - Dst: Botan_CLI::Command::get_cmd
      Src: /src/botan/src/cli/utils.cpp:44,1
    - Dst: auto::group
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: push_back
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/utils.cpp:78,1
    - Dst: std::map::find
      Src: /src/botan/src/cli/utils.cpp:83,1
    - Dst: std::map::end
      Src: /src/botan/src/cli/utils.cpp:84,1
    - Dst: std::setw
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: auto::cmd_name
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: auto::description
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/utils.cpp:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Print_Help::help_text
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::Command::get_cmd
    - std::string::empty
    - std::move
    - std::map::end
    - Botan_CLI::Command::registered_cmds
    - std::ostringstream::str
    - std::setw
    - auto::group
    - std::map::find
    - auto::cmd_name
    - auto::description
    - push_back
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan_CLI::Print_Help::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Print_Help::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Print_Help::set_return_code
      Src: /src/botan/src/cli/utils.cpp:104,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:105,1
    - Dst: Botan_CLI::Print_Help::help_text
      Src: /src/botan/src/cli/utils.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Botan_CLI::Print_Help::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Print_Help::help_text
    - Botan_CLI::Print_Help::set_return_code
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_CLI::Has_Command::Has_Command
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Has_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan_CLI::Has_Command::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_CLI::Has_Command::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:120,1
    - Dst: Botan_CLI::Command::registered_cmds
      Src: /src/botan/src/cli/utils.cpp:123,1
    - Dst: verbose
      Src: /src/botan/src/cli/utils.cpp:130,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:131,1
    - Dst: Botan_CLI::Has_Command::set_return_code
      Src: /src/botan/src/cli/utils.cpp:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: Botan_CLI::Has_Command::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - verbose
    - Botan_CLI::Command::registered_cmds
    - get_arg
    - Botan_CLI::Has_Command::set_return_code
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: Botan_CLI::Config_Info::Config_Info
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Config_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Config_Info::help_text
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan_CLI::Config_Info::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan_CLI::Config_Info::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:159,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:162,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:164,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:167,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:169,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:171,1
    - Dst: Botan::version_major
      Src: /src/botan/src/cli/utils.cpp:171,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/utils.cpp:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 175
    functionName: Botan_CLI::Config_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Usage_Error
    - output
    - Botan::version_major
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: Botan_CLI::Version_Info::Version_Info
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Version_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: Botan_CLI::Version_Info::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: Botan_CLI::Version_Info::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/cli/utils.cpp:189,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:190,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/utils.cpp:190,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:192,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/cli/utils.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: Botan_CLI::Version_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::version_string
    - flag_set
    - output
    - Botan::short_version_string
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: Botan_CLI::Print_Cpuid::Print_Cpuid
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_Cpuid()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: Botan_CLI::Print_Cpuid::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: Botan_CLI::Print_Cpuid::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:211,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/utils.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan_CLI::Print_Cpuid::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CPUID::to_string
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: Botan_CLI::Cycle_Counter::Cycle_Counter
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cycle_Counter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: Botan_CLI::Cycle_Counter::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_CLI::Cycle_Counter::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:229,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:230,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:234,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:237,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:241,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:242,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:248,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:249,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:253,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:258,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/utils.cpp:265,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:269,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/utils.cpp:269,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:272,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/utils.cpp:272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 274
    functionName: Botan_CLI::Cycle_Counter::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - std::setprecision
    - static_cast<size_t>
    - output
    - Botan::OS::get_system_timestamp_ns
    - static_cast<double>
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: Botan_CLI::Print_UUID::Print_UUID
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_UUID()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_CLI::Print_UUID::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 289
    functionName: Botan_CLI::Print_UUID::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:293,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/cli/utils.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: Botan_CLI::Print_UUID::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::UUID::to_string
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: Botan_CLI::HTTP_Get::HTTP_Get
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HTTP_Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: Botan_CLI::HTTP_Get::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: Botan_CLI::HTTP_Get::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:312,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:313,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:314,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:316,1
    - Dst: Botan::HTTP::GET_sync
      Src: /src/botan/src/cli/utils.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: Botan_CLI::HTTP_Get::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::HTTP::GET_sync
    - get_arg_sz
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Print_Help::Print_Help
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_Help()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::registered_cmds
      Src: /src/botan/src/cli/utils.cpp:42,1
    - Dst: Botan_CLI::Command::get_cmd
      Src: /src/botan/src/cli/utils.cpp:44,1
    - Dst: auto::group
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: push_back
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/utils.cpp:78,1
    - Dst: std::map::find
      Src: /src/botan/src/cli/utils.cpp:83,1
    - Dst: std::map::end
      Src: /src/botan/src/cli/utils.cpp:84,1
    - Dst: std::setw
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: auto::cmd_name
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: auto::description
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/utils.cpp:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Print_Help::help_text
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::Command::get_cmd
    - std::string::empty
    - std::move
    - std::map::end
    - Botan_CLI::Command::registered_cmds
    - std::ostringstream::str
    - std::setw
    - auto::group
    - std::map::find
    - auto::cmd_name
    - auto::description
    - push_back
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan_CLI::Print_Help::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Print_Help::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Print_Help::set_return_code
      Src: /src/botan/src/cli/utils.cpp:104,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:105,1
    - Dst: Botan_CLI::Print_Help::help_text
      Src: /src/botan/src/cli/utils.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Botan_CLI::Print_Help::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Print_Help::help_text
    - Botan_CLI::Print_Help::set_return_code
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_CLI::Has_Command::Has_Command
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Has_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan_CLI::Has_Command::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_CLI::Has_Command::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:120,1
    - Dst: Botan_CLI::Command::registered_cmds
      Src: /src/botan/src/cli/utils.cpp:123,1
    - Dst: verbose
      Src: /src/botan/src/cli/utils.cpp:130,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:131,1
    - Dst: Botan_CLI::Has_Command::set_return_code
      Src: /src/botan/src/cli/utils.cpp:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: Botan_CLI::Has_Command::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - verbose
    - Botan_CLI::Command::registered_cmds
    - get_arg
    - Botan_CLI::Has_Command::set_return_code
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: Botan_CLI::Config_Info::Config_Info
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Config_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Config_Info::help_text
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan_CLI::Config_Info::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan_CLI::Config_Info::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:159,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:162,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:164,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:167,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:169,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:171,1
    - Dst: Botan::version_major
      Src: /src/botan/src/cli/utils.cpp:171,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/utils.cpp:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 175
    functionName: Botan_CLI::Config_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Usage_Error
    - output
    - Botan::version_major
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: Botan_CLI::Version_Info::Version_Info
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Version_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: Botan_CLI::Version_Info::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: Botan_CLI::Version_Info::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/cli/utils.cpp:189,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:190,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/utils.cpp:190,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:192,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/cli/utils.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: Botan_CLI::Version_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::version_string
    - flag_set
    - output
    - Botan::short_version_string
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: Botan_CLI::Print_Cpuid::Print_Cpuid
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_Cpuid()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: Botan_CLI::Print_Cpuid::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: Botan_CLI::Print_Cpuid::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:211,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/utils.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan_CLI::Print_Cpuid::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CPUID::to_string
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: Botan_CLI::Cycle_Counter::Cycle_Counter
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cycle_Counter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: Botan_CLI::Cycle_Counter::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_CLI::Cycle_Counter::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:229,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:230,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:234,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:237,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:241,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:242,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:248,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:249,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:253,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:258,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/utils.cpp:265,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:269,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/utils.cpp:269,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:272,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/utils.cpp:272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 274
    functionName: Botan_CLI::Cycle_Counter::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - std::setprecision
    - static_cast<size_t>
    - output
    - Botan::OS::get_system_timestamp_ns
    - static_cast<double>
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: Botan_CLI::Print_UUID::Print_UUID
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_UUID()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_CLI::Print_UUID::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 289
    functionName: Botan_CLI::Print_UUID::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:293,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/cli/utils.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: Botan_CLI::Print_UUID::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::UUID::to_string
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: Botan_CLI::HTTP_Get::HTTP_Get
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HTTP_Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: Botan_CLI::HTTP_Get::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: Botan_CLI::HTTP_Get::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:312,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:313,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:314,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:316,1
    - Dst: Botan::HTTP::GET_sync
      Src: /src/botan/src/cli/utils.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: Botan_CLI::HTTP_Get::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::HTTP::GET_sync
    - get_arg_sz
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Print_Help::Print_Help
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_Help()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::registered_cmds
      Src: /src/botan/src/cli/utils.cpp:42,1
    - Dst: Botan_CLI::Command::get_cmd
      Src: /src/botan/src/cli/utils.cpp:44,1
    - Dst: auto::group
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: push_back
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/cli/utils.cpp:46,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/utils.cpp:78,1
    - Dst: std::map::find
      Src: /src/botan/src/cli/utils.cpp:83,1
    - Dst: std::map::end
      Src: /src/botan/src/cli/utils.cpp:84,1
    - Dst: std::setw
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: auto::cmd_name
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: auto::description
      Src: /src/botan/src/cli/utils.cpp:91,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/utils.cpp:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Print_Help::help_text
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 3
    functionsReached:
    - Botan_CLI::Command::get_cmd
    - std::string::empty
    - std::move
    - std::map::end
    - Botan_CLI::Command::registered_cmds
    - std::ostringstream::str
    - std::setw
    - auto::group
    - std::map::find
    - auto::cmd_name
    - auto::description
    - push_back
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan_CLI::Print_Help::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Print_Help::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Print_Help::set_return_code
      Src: /src/botan/src/cli/utils.cpp:104,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:105,1
    - Dst: Botan_CLI::Print_Help::help_text
      Src: /src/botan/src/cli/utils.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Botan_CLI::Print_Help::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Print_Help::help_text
    - Botan_CLI::Print_Help::set_return_code
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan_CLI::Has_Command::Has_Command
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Has_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan_CLI::Has_Command::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_CLI::Has_Command::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:120,1
    - Dst: Botan_CLI::Command::registered_cmds
      Src: /src/botan/src/cli/utils.cpp:123,1
    - Dst: verbose
      Src: /src/botan/src/cli/utils.cpp:130,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:131,1
    - Dst: Botan_CLI::Has_Command::set_return_code
      Src: /src/botan/src/cli/utils.cpp:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 137
    functionName: Botan_CLI::Has_Command::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - verbose
    - Botan_CLI::Command::registered_cmds
    - get_arg
    - Botan_CLI::Has_Command::set_return_code
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: Botan_CLI::Config_Info::Config_Info
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Config_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Config_Info::help_text
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan_CLI::Config_Info::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan_CLI::Config_Info::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:159,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:162,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:164,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:167,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:169,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:171,1
    - Dst: Botan::version_major
      Src: /src/botan/src/cli/utils.cpp:171,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/utils.cpp:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 175
    functionName: Botan_CLI::Config_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Usage_Error
    - output
    - Botan::version_major
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: Botan_CLI::Version_Info::Version_Info
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Version_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: Botan_CLI::Version_Info::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: Botan_CLI::Version_Info::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/cli/utils.cpp:189,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:190,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/utils.cpp:190,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:192,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/cli/utils.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: Botan_CLI::Version_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::version_string
    - flag_set
    - output
    - Botan::short_version_string
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: Botan_CLI::Print_Cpuid::Print_Cpuid
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_Cpuid()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: Botan_CLI::Print_Cpuid::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: Botan_CLI::Print_Cpuid::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:211,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/utils.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan_CLI::Print_Cpuid::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CPUID::to_string
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: Botan_CLI::Cycle_Counter::Cycle_Counter
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cycle_Counter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: Botan_CLI::Cycle_Counter::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_CLI::Cycle_Counter::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:229,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:230,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:234,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:237,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:241,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:242,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:248,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:249,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:253,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:258,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/utils.cpp:265,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:269,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/utils.cpp:269,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:272,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/utils.cpp:272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 274
    functionName: Botan_CLI::Cycle_Counter::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - std::setprecision
    - static_cast<size_t>
    - output
    - Botan::OS::get_system_timestamp_ns
    - static_cast<double>
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: Botan_CLI::Print_UUID::Print_UUID
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Print_UUID()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan_CLI::Print_UUID::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 289
    functionName: Botan_CLI::Print_UUID::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:293,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/cli/utils.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: Botan_CLI::Print_UUID::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::UUID::to_string
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: Botan_CLI::HTTP_Get::HTTP_Get
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HTTP_Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: Botan_CLI::HTTP_Get::group
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: Botan_CLI::HTTP_Get::description
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/utils.cpp:312,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:313,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:314,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:316,1
    - Dst: Botan::HTTP::GET_sync
      Src: /src/botan/src/cli/utils.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: Botan_CLI::HTTP_Get::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::HTTP::GET_sync
    - get_arg_sz
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:47,1
    - Dst: std::make_shared<Botan::System_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:48,1
    - Dst: std::make_shared<Botan::ESDM_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:54,1
    - Dst: std::make_shared<Botan::ESDM_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:57,1
    - Dst: std::make_shared<Botan::Jitter_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:63,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cli_rng.cpp:67,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:70,1
    - Dst: std::make_shared<Botan::AutoSeeded_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:75,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/cli/cli_rng.cpp:75,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:77,1
    - Dst: std::make_shared<Botan::AutoSeeded_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:80,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cli_rng.cpp:83,1
    - Dst: std::shared_ptr::add_entropy
      Src: /src/botan/src/cli/cli_rng.cpp:84,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli_rng.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cli_rng.cpp:84,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:91,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cli_rng.cpp:91,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/cli/cli_rng.cpp:92,1
    - Dst: std::make_shared<Botan::HMAC_DRBG>
      Src: /src/botan/src/cli/cli_rng.cpp:93,1
    - Dst: std::move
      Src: /src/botan/src/cli/cli_rng.cpp:93,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/cli/cli_rng.cpp:94,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli_rng.cpp:94,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cli_rng.cpp:94,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/cli/cli_rng.cpp:96,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cli_rng.cpp:97,1
    - Dst: auto::name
      Src: /src/botan/src/cli/cli_rng.cpp:97,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/cli_rng.cpp:97,1
    - Dst: auto::security_level
      Src: /src/botan/src/cli/cli_rng.cpp:97,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:106,1
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/cli/cli_rng.cpp:107,1
    - Dst: std::make_shared<Botan::Processor_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:108,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:109,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cli_rng.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:115,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:116,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:118,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 45
    argCount: 2
    argNames:
    - ' rng_type'
    - ' hex_drbg_seed'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 120
    functionName: Botan_CLI::cli_make_rng
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::add_entropy
    - std::make_shared<Botan::ESDM_RNG>
    - std::make_shared<Botan::AutoSeeded_RNG>
    - auto::add_entropy
    - Botan::Processor_RNG::available
    - empty
    - Botan::hex_decode
    - std::to_string
    - auto::security_level
    - std::move
    - auto::name
    - auto::is_seeded
    - std::vector::size
    - std::vector::empty
    - Botan::MessageAuthenticationCode::create_or_throw
    - CLI_Error
    - std::make_shared<Botan::System_RNG>
    - std::make_shared<Botan::Jitter_RNG>
    - std::make_shared<Botan::HMAC_DRBG>
    - std::vector::data
    - std::make_shared<Botan::Processor_RNG>
    - Botan::Entropy_Sources::global_sources
    - CLI_Error_Unsupported
    linkageType: ''
    returnType: std::shared_ptr<Botan::RandomNumberGenerator>
    signature: "std::shared_ptr<Botan::RandomNumberGenerator> cli_make_rng(const std::string&
      rng_type,\n                                                           const
      std::string& hex_drbg_seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: Botan_CLI::RNG::RNG
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RNG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_CLI::RNG::group
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_CLI::RNG::description
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:136,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:137,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/cli_rng.cpp:139,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cli_rng.cpp:143,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:150,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/cli_rng.cpp:151,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/cli_rng.cpp:153,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/cli/cli_rng.cpp:154,1
    - Dst: auto::random_vec
      Src: /src/botan/src/cli/cli_rng.cpp:155,1
    - Dst: write_output
      Src: /src/botan/src/cli/cli_rng.cpp:158,1
    - Dst: output
      Src: /src/botan/src/cli/cli_rng.cpp:160,1
    - Dst: format_blob
      Src: /src/botan/src/cli/cli_rng.cpp:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 163
    functionName: Botan_CLI::RNG::go
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - flag_set
    - Botan::to_u32bit
    - write_output
    - get_arg_list
    - get_arg
    - format_blob
    - output
    - auto::random_vec
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: Botan_CLI::RNG::RNG
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RNG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_CLI::RNG::group
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_CLI::RNG::description
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:136,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:137,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/cli_rng.cpp:139,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cli_rng.cpp:143,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:150,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/cli_rng.cpp:151,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/cli_rng.cpp:153,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/cli/cli_rng.cpp:154,1
    - Dst: auto::random_vec
      Src: /src/botan/src/cli/cli_rng.cpp:155,1
    - Dst: write_output
      Src: /src/botan/src/cli/cli_rng.cpp:158,1
    - Dst: output
      Src: /src/botan/src/cli/cli_rng.cpp:160,1
    - Dst: format_blob
      Src: /src/botan/src/cli/cli_rng.cpp:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 163
    functionName: Botan_CLI::RNG::go
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - flag_set
    - Botan::to_u32bit
    - write_output
    - get_arg_list
    - get_arg
    - format_blob
    - output
    - auto::random_vec
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:47,1
    - Dst: std::make_shared<Botan::System_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:48,1
    - Dst: std::make_shared<Botan::ESDM_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:54,1
    - Dst: std::make_shared<Botan::ESDM_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:57,1
    - Dst: std::make_shared<Botan::Jitter_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:63,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cli_rng.cpp:67,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:70,1
    - Dst: std::make_shared<Botan::AutoSeeded_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:75,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/cli/cli_rng.cpp:75,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:77,1
    - Dst: std::make_shared<Botan::AutoSeeded_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:80,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cli_rng.cpp:83,1
    - Dst: std::shared_ptr::add_entropy
      Src: /src/botan/src/cli/cli_rng.cpp:84,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli_rng.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cli_rng.cpp:84,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:91,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cli_rng.cpp:91,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/cli/cli_rng.cpp:92,1
    - Dst: std::make_shared<Botan::HMAC_DRBG>
      Src: /src/botan/src/cli/cli_rng.cpp:93,1
    - Dst: std::move
      Src: /src/botan/src/cli/cli_rng.cpp:93,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/cli/cli_rng.cpp:94,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli_rng.cpp:94,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cli_rng.cpp:94,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/cli/cli_rng.cpp:96,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cli_rng.cpp:97,1
    - Dst: auto::name
      Src: /src/botan/src/cli/cli_rng.cpp:97,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/cli_rng.cpp:97,1
    - Dst: auto::security_level
      Src: /src/botan/src/cli/cli_rng.cpp:97,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:106,1
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/cli/cli_rng.cpp:107,1
    - Dst: std::make_shared<Botan::Processor_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:108,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:109,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cli_rng.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:115,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:116,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:118,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 45
    argCount: 2
    argNames:
    - ' rng_type'
    - ' hex_drbg_seed'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 120
    functionName: Botan_CLI::cli_make_rng
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::add_entropy
    - std::make_shared<Botan::ESDM_RNG>
    - std::make_shared<Botan::AutoSeeded_RNG>
    - auto::add_entropy
    - Botan::Processor_RNG::available
    - empty
    - Botan::hex_decode
    - std::to_string
    - auto::security_level
    - std::move
    - auto::name
    - auto::is_seeded
    - std::vector::size
    - std::vector::empty
    - Botan::MessageAuthenticationCode::create_or_throw
    - CLI_Error
    - std::make_shared<Botan::System_RNG>
    - std::make_shared<Botan::Jitter_RNG>
    - std::make_shared<Botan::HMAC_DRBG>
    - std::vector::data
    - std::make_shared<Botan::Processor_RNG>
    - Botan::Entropy_Sources::global_sources
    - CLI_Error_Unsupported
    linkageType: ''
    returnType: std::shared_ptr<Botan::RandomNumberGenerator>
    signature: "std::shared_ptr<Botan::RandomNumberGenerator> cli_make_rng(const std::string&
      rng_type,\n                                                           const
      std::string& hex_drbg_seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: Botan_CLI::RNG::RNG
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RNG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_CLI::RNG::group
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_CLI::RNG::description
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:136,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:137,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/cli_rng.cpp:139,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cli_rng.cpp:143,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:150,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/cli_rng.cpp:151,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/cli_rng.cpp:153,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/cli/cli_rng.cpp:154,1
    - Dst: auto::random_vec
      Src: /src/botan/src/cli/cli_rng.cpp:155,1
    - Dst: write_output
      Src: /src/botan/src/cli/cli_rng.cpp:158,1
    - Dst: output
      Src: /src/botan/src/cli/cli_rng.cpp:160,1
    - Dst: format_blob
      Src: /src/botan/src/cli/cli_rng.cpp:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 163
    functionName: Botan_CLI::RNG::go
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - flag_set
    - Botan::to_u32bit
    - write_output
    - get_arg_list
    - get_arg
    - format_blob
    - output
    - auto::random_vec
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: Botan_CLI::RNG::RNG
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RNG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_CLI::RNG::group
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan_CLI::RNG::description
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:136,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:137,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/cli_rng.cpp:139,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cli_rng.cpp:143,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:150,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/cli_rng.cpp:151,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/cli_rng.cpp:153,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/cli/cli_rng.cpp:154,1
    - Dst: auto::random_vec
      Src: /src/botan/src/cli/cli_rng.cpp:155,1
    - Dst: write_output
      Src: /src/botan/src/cli/cli_rng.cpp:158,1
    - Dst: output
      Src: /src/botan/src/cli/cli_rng.cpp:160,1
    - Dst: format_blob
      Src: /src/botan/src/cli/cli_rng.cpp:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 163
    functionName: Botan_CLI::RNG::go
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - flag_set
    - Botan::to_u32bit
    - write_output
    - get_arg_list
    - get_arg
    - format_blob
    - output
    - auto::random_vec
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: invalid_socket
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type
    signature: socket_type invalid_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::closesocket
      Src: /src/botan/src/cli/socket_utils.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: close_socket
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 0
    functionsReached:
    - ::closesocket
    linkageType: ''
    returnType: void
    signature: void close_socket(socket_type s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/botan/src/cli/socket_utils.h:38,1
    - Dst: ::WSAStartup
      Src: /src/botan/src/cli/socket_utils.h:40,1
    - Dst: Botan_CLI::CLI_Error::CLI_Error
      Src: /src/botan/src/cli/socket_utils.h:41,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/socket_utils.h:41,1
    - Dst: WSAGetLastError
      Src: /src/botan/src/cli/socket_utils.h:41,1
    - Dst: LOBYTE
      Src: /src/botan/src/cli/socket_utils.h:44,1
    - Dst: HIBYTE
      Src: /src/botan/src/cli/socket_utils.h:44,1
    - Dst: ::WSACleanup
      Src: /src/botan/src/cli/socket_utils.h:45,1
    - Dst: Botan_CLI::CLI_Error::CLI_Error
      Src: /src/botan/src/cli/socket_utils.h:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: init_sockets
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::CLI_Error::CLI_Error
    - std::to_string
    - ::WSACleanup
    - WSAGetLastError
    - MAKEWORD
    - ::WSAStartup
    - LOBYTE
    - HIBYTE
    linkageType: ''
    returnType: void
    signature: void init_sockets()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::WSACleanup
      Src: /src/botan/src/cli/socket_utils.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: stop_sockets
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 0
    functionsReached:
    - ::WSACleanup
    linkageType: ''
    returnType: void
    signature: void stop_sockets()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strerror_s
      Src: /src/botan/src/cli/socket_utils.h:62,1
    - Dst: std::array::data
      Src: /src/botan/src/cli/socket_utils.h:62,1
    - Dst: std::array::size
      Src: /src/botan/src/cli/socket_utils.h:62,1
    - Dst: std::array::data
      Src: /src/botan/src/cli/socket_utils.h:63,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/socket_utils.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: err_to_string
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::array::data
    - std::array::size
    - strerror_s
    linkageType: ''
    returnType: std::string
    signature: std::string err_to_string(int e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::closesocket
      Src: /src/botan/src/cli/socket_utils.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: close
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 66
    functionsReached:
    - ::closesocket
    linkageType: ''
    returnType: int
    signature: int close(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::recv
      Src: /src/botan/src/cli/socket_utils.h:72,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/cli/socket_utils.h:72,1
    - Dst: static_cast<int>
      Src: /src/botan/src/cli/socket_utils.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - buf
    - len
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: read
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 52
    functionsReached:
    - ::recv
    - static_cast<int>
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: int
    signature: int read(int s, void* buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/cli/socket_utils.h:76,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/socket_utils.h:76,1
    - Dst: static_cast<int>
      Src: /src/botan/src/cli/socket_utils.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - buf
    - len
    - flags
    argTypes:
    - int
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: send
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 35
    functionsReached:
    - Botan_Tests::MockChannel::send
    - static_cast<int>
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: int
    signature: int send(int s, const uint8_t* buf, size_t len, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: invalid_socket
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socket_type
    signature: socket_type invalid_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/cli/socket_utils.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: close_socket
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    linkageType: ''
    returnType: void
    signature: void close_socket(socket_type s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: init_sockets
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_sockets()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: stop_sockets
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stop_sockets()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strerror
      Src: /src/botan/src/cli/socket_utils.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: err_to_string
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 0
    functionsReached:
    - std::strerror
    linkageType: ''
    returnType: std::string
    signature: std::string err_to_string(int e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:46,1
    - Dst: Botan::HMAC_DRBG::name
      Src: /src/botan/src/cli/perf_rng.cpp:46,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/cli/perf_rng.cpp:52,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:53,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:57,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:58,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:62,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:62,1
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/cli/perf_rng.cpp:66,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:67,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:68,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/perf_rng.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: Botan_CLI::PerfTest_Rng::go
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Botan_CLI::PerfTest_Rng::bench_rng
    - Botan::system_rng
    - BOTAN_UNUSED
    - Botan::secure_vector<uint8_t>
    - Botan::HMAC_DRBG::name
    - Botan::Processor_RNG::Processor_RNG
    - Botan::Processor_RNG::available
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_rng.cpp:76,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_rng.cpp:78,1
    - Dst: reseed_from_rng
      Src: /src/botan/src/cli/perf_rng.cpp:81,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:81,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_rng.cpp:84,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:84,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_rng.cpp:86,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_rng.cpp:88,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_rng.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' config'
    - ' rng'
    - ' rng_name'
    argTypes:
    - PerfConfig
    - Botan::RandomNumberGenerator
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_Rng::bench_rng
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 1
    functionsReached:
    - Botan::secure_vector::data
    - auto::run_until_elapsed
    - runtime
    - Botan::system_rng
    - make_timer
    - randomize
    - record_result
    - reseed_from_rng
    - Botan::secure_vector::size
    - buffer_sizes
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_rng(const PerfConfig& config, Botan::RandomNumberGenerator&
      rng, const std::string& rng_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:46,1
    - Dst: Botan::HMAC_DRBG::name
      Src: /src/botan/src/cli/perf_rng.cpp:46,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/cli/perf_rng.cpp:52,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:53,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:57,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:58,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:62,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:62,1
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/cli/perf_rng.cpp:66,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:67,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:68,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/perf_rng.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: Botan_CLI::PerfTest_Rng::go
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Botan_CLI::PerfTest_Rng::bench_rng
    - Botan::system_rng
    - BOTAN_UNUSED
    - Botan::secure_vector<uint8_t>
    - Botan::HMAC_DRBG::name
    - Botan::Processor_RNG::Processor_RNG
    - Botan::Processor_RNG::available
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_rng.cpp:76,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_rng.cpp:78,1
    - Dst: reseed_from_rng
      Src: /src/botan/src/cli/perf_rng.cpp:81,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:81,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_rng.cpp:84,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:84,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_rng.cpp:86,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_rng.cpp:88,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_rng.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' config'
    - ' rng'
    - ' rng_name'
    argTypes:
    - PerfConfig
    - Botan::RandomNumberGenerator
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_Rng::bench_rng
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 2
    functionsReached:
    - Botan::secure_vector::data
    - auto::run_until_elapsed
    - runtime
    - Botan::system_rng
    - make_timer
    - randomize
    - record_result
    - reseed_from_rng
    - Botan::secure_vector::size
    - buffer_sizes
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_rng(const PerfConfig& config, Botan::RandomNumberGenerator&
      rng, const std::string& rng_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:46,1
    - Dst: Botan::HMAC_DRBG::name
      Src: /src/botan/src/cli/perf_rng.cpp:46,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/cli/perf_rng.cpp:52,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:53,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:57,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:58,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:62,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:62,1
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/cli/perf_rng.cpp:66,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:67,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:68,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/perf_rng.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: Botan_CLI::PerfTest_Rng::go
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Botan_CLI::PerfTest_Rng::bench_rng
    - Botan::system_rng
    - BOTAN_UNUSED
    - Botan::secure_vector<uint8_t>
    - Botan::HMAC_DRBG::name
    - Botan::Processor_RNG::Processor_RNG
    - Botan::Processor_RNG::available
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_rng.cpp:76,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_rng.cpp:78,1
    - Dst: reseed_from_rng
      Src: /src/botan/src/cli/perf_rng.cpp:81,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:81,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_rng.cpp:84,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:84,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_rng.cpp:86,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_rng.cpp:88,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_rng.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' config'
    - ' rng'
    - ' rng_name'
    argTypes:
    - PerfConfig
    - Botan::RandomNumberGenerator
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_Rng::bench_rng
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 3
    functionsReached:
    - Botan::secure_vector::data
    - auto::run_until_elapsed
    - runtime
    - Botan::system_rng
    - make_timer
    - randomize
    - record_result
    - reseed_from_rng
    - Botan::secure_vector::size
    - buffer_sizes
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_rng(const PerfConfig& config, Botan::RandomNumberGenerator&
      rng, const std::string& rng_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:46,1
    - Dst: Botan::HMAC_DRBG::name
      Src: /src/botan/src/cli/perf_rng.cpp:46,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/cli/perf_rng.cpp:52,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:53,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:57,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:58,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:62,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:62,1
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/cli/perf_rng.cpp:66,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:67,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:68,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/perf_rng.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: Botan_CLI::PerfTest_Rng::go
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Botan_CLI::PerfTest_Rng::bench_rng
    - Botan::system_rng
    - BOTAN_UNUSED
    - Botan::secure_vector<uint8_t>
    - Botan::HMAC_DRBG::name
    - Botan::Processor_RNG::Processor_RNG
    - Botan::Processor_RNG::available
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_rng.cpp:76,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_rng.cpp:78,1
    - Dst: reseed_from_rng
      Src: /src/botan/src/cli/perf_rng.cpp:81,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:81,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_rng.cpp:84,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:84,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_rng.cpp:86,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_rng.cpp:88,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:90,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_rng.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' config'
    - ' rng'
    - ' rng_name'
    argTypes:
    - PerfConfig
    - Botan::RandomNumberGenerator
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_Rng::bench_rng
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 4
    functionsReached:
    - Botan::secure_vector::data
    - auto::run_until_elapsed
    - runtime
    - Botan::system_rng
    - make_timer
    - randomize
    - record_result
    - reseed_from_rng
    - Botan::secure_vector::size
    - buffer_sizes
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_rng(const PerfConfig& config, Botan::RandomNumberGenerator&
      rng, const std::string& rng_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: Botan_CLI::CLI_Error::CLI_Error
    functionSourceFile: /src/botan/src/cli/cli_exceptions.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_Error(const std::string& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' op'
    - ' who'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_CLI::CLI_IO_Error::CLI_IO_Error
    functionSourceFile: /src/botan/src/cli/cli_exceptions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_IO_Error(const std::string& op, const std::string& who)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::CLI_Usage_Error::CLI_Usage_Error
    functionSourceFile: /src/botan/src/cli/cli_exceptions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_Usage_Error(const std::string& what)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_CLI::CLI_Error_Unsupported::CLI_Error_Unsupported
    functionSourceFile: /src/botan/src/cli/cli_exceptions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_Error_Unsupported(const std::string& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' what'
    - ' who'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: Botan_CLI::CLI_Error_Unsupported::CLI_Error_Unsupported
    functionSourceFile: /src/botan/src/cli/cli_exceptions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_Error_Unsupported(const std::string& what, const std::string&
      who)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: Botan_CLI::CLI_Error::CLI_Error
    functionSourceFile: /src/botan/src/cli/cli_exceptions.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_Error(const std::string& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' op'
    - ' who'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_CLI::CLI_IO_Error::CLI_IO_Error
    functionSourceFile: /src/botan/src/cli/cli_exceptions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_IO_Error(const std::string& op, const std::string& who)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::CLI_Usage_Error::CLI_Usage_Error
    functionSourceFile: /src/botan/src/cli/cli_exceptions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_Usage_Error(const std::string& what)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_CLI::CLI_Error_Unsupported::CLI_Error_Unsupported
    functionSourceFile: /src/botan/src/cli/cli_exceptions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_Error_Unsupported(const std::string& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' what'
    - ' who'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: Botan_CLI::CLI_Error_Unsupported::CLI_Error_Unsupported
    functionSourceFile: /src/botan/src/cli/cli_exceptions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_Error_Unsupported(const std::string& what, const std::string&
      who)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<boost::asio::io_context&>
      Src: /src/botan/src/cli/tls_proxy.cpp:54,1
    - Dst: get_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:54,1
    - Dst: Botan_CLI::get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: Botan_CLI::get_io_service
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::get_io_service
    - static_cast<boost::asio::io_context&>
    - get_executor
    linkageType: ''
    returnType: boost::asio::io_context
    signature: boost::asio::io_context & get_io_service(T& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan_CLI::log_info
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_info(const std::string& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/botan/src/cli/tls_proxy.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' e'
    argTypes:
    - char*
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan_CLI::log_exception
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - what
    linkageType: ''
    returnType: void
    signature: void log_exception(const char* where, const std::exception& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: message
      Src: /src/botan/src/cli/tls_proxy.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' error'
    argTypes:
    - char*
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan_CLI::log_error
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - message
    linkageType: ''
    returnType: void
    signature: void log_error(const char* where, const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_CLI::log_error
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_error(const char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_proxy.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - where
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: Botan_CLI::log_binary_message
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void log_binary_message(const char* where, const uint8_t buf[], size_t
      buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_proxy.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - where
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: Botan_CLI::log_text_message
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void log_text_message(const char* where, const uint8_t buf[], size_t
      buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_clients
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_CLI::ServerStatus::ServerStatus
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ServerStatus(size_t max_clients)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::ServerStatus::clients_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: Botan_CLI::ServerStatus::should_exit
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::ServerStatus::clients_serviced
    linkageType: ''
    returnType: bool
    signature: bool should_exit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan_CLI::ServerStatus::client_serviced
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void client_serviced()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/botan/src/cli/tls_proxy.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::ServerStatus::clients_serviced
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - load
    linkageType: ''
    returnType: size_t
    signature: size_t clients_serviced() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<tls_proxy_session>
      Src: /src/botan/src/cli/tls_proxy.cpp:120,1
    - Dst: auto::setup
      Src: /src/botan/src/cli/tls_proxy.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' io'
    - ' session_manager'
    - ' credentials'
    - ' policy'
    - ' endpoints'
    argTypes:
    - boost::asio::io_context
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    - tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: Botan_CLI::tls_proxy_session::create
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 8
    functionsReached:
    - auto::setup
    - std::make_shared<tls_proxy_session>
    linkageType: ''
    returnType: pointer
    signature: "pointer create(boost::asio::io_context& io,\n                            const
      std::shared_ptr<Botan::TLS::Session_Manager>& session_manager,\n                            const
      std::shared_ptr<Botan::Credentials_Manager>& credentials,\n                            const
      std::shared_ptr<Botan::TLS::Policy>& policy,\n                            const
      tcp::resolver::results_type& endpoints)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '& client_socket()'
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tcp::socket
    signature: tcp::socket & client_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:133,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: Botan_CLI::tls_proxy_session::start
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - Botan_CLI::tls_proxy_session::client_read
    - resize
    linkageType: ''
    returnType: void
    signature: void start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:142,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:143,1
    - Dst: reset
      Src: /src/botan/src/cli/tls_proxy.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: Botan_CLI::tls_proxy_session::stop
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - close
    - reset
    linkageType: ''
    returnType: void
    signature: void stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:155,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/tls_proxy.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' io'
    - endpoints
    argTypes:
    - boost::asio::io_context
    - tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: Botan_CLI::tls_proxy_session::tls_proxy_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void tls_proxy_session(boost::asio::io_context& io, tcp::resolver::results_type
      endpoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/cli/tls_proxy.cpp:164,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' session_manager'
    - ' credentials'
    - ' policy'
    argTypes:
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: Botan_CLI::tls_proxy_session::setup
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::make_unique<Botan::TLS::Server>
    linkageType: ''
    returnType: void
    signature: "void setup(const std::shared_ptr<Botan::TLS::Session_Manager>& session_manager,\n
      \                const std::shared_ptr<Botan::Credentials_Manager>& credentials,\n
      \                const std::shared_ptr<Botan::TLS::Policy>& policy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:169,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:170,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:175,1
    - Dst: is_active
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:181,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:181,1
    - Dst: received_data
      Src: /src/botan/src/cli/tls_proxy.cpp:183,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:183,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:185,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:186,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:191,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:192,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:193,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 196
    functionName: Botan_CLI::tls_proxy_session::client_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - data
    - log_exception
    - Botan_CLI::tls_proxy_session::client_read
    - async_read_some
    - is_active
    - Peer::buffer
    - received_data
    - boost::asio::bind_executor
    - log_binary_message
    - shared_from_this
    linkageType: ''
    returnType: void
    signature: void client_read(const boost::system::error_code& error, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:200,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:201,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:207,1
    - Dst: is_closed
      Src: /src/botan/src/cli/tls_proxy.cpp:207,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:208,1
    - Dst: Botan_CLI::tls_proxy_session::tls_emit_data
      Src: /src/botan/src/cli/tls_proxy.cpp:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: Botan_CLI::tls_proxy_session::handle_client_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - is_closed
    - close
    - Botan_CLI::tls_proxy_session::tls_emit_data
    - clear
    - empty
    linkageType: ''
    returnType: void
    signature: void handle_client_write_completion(const boost::system::error_code&
      error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:215,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:216,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:220,1
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: Botan_CLI::tls_proxy_session::handle_server_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - clear
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    linkageType: ''
    returnType: void
    signature: void handle_server_write_completion(const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan_CLI::tls_proxy_session::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*rec_no*/, std::span<const uint8_t>
      buf) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:230,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:235,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:235,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:242,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:243,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:244,1
    - Dst: Botan_CLI::tls_proxy_session::handle_client_write_completion
      Src: /src/botan/src/cli/tls_proxy.cpp:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: Botan_CLI::tls_proxy_session::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::tls_proxy_session::handle_client_write_completion
    - data
    - std::swap
    - insert
    - std::span<const uint8_t>::begin
    - size
    - boost::asio::async_write
    - Peer::buffer
    - boost::asio::bind_executor
    - empty
    - std::span<const uint8_t>::empty
    - log_binary_message
    - shared_from_this
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:251,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:256,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:256,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:257,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:261,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:263,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:264,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:265,1
    - Dst: Botan_CLI::tls_proxy_session::handle_server_write_completion
      Src: /src/botan/src/cli/tls_proxy.cpp:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 269
    functionName: Botan_CLI::tls_proxy_session::proxy_write_to_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::tls_proxy_session::handle_server_write_completion
    - data
    - std::swap
    - log_text_message
    - insert
    - std::span<const uint8_t>::begin
    - size
    - boost::asio::async_write
    - Peer::buffer
    - empty
    - std::span<const uint8_t>::empty
    - boost::asio::bind_executor
    - shared_from_this
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void proxy_write_to_server(std::span<const uint8_t> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:273,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: send
      Src: /src/botan/src/cli/tls_proxy.cpp:282,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:282,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:285,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:290,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:292,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:293,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:294,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:295,1
    - Dst: Botan_CLI::tls_proxy_session::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 298
    functionName: Botan_CLI::tls_proxy_session::server_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - resize
    - data
    - send
    - log_exception
    - log_text_message
    - async_read_some
    - Botan_CLI::tls_proxy_session::server_read
    - size
    - Peer::buffer
    - boost::asio::bind_executor
    - log_binary_message
    - shared_from_this
    linkageType: ''
    returnType: void
    signature: void server_read(const boost::system::error_code& error, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: weak_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:301,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:304,1
    - Dst: lock
      Src: /src/botan/src/cli/tls_proxy.cpp:308,1
    - Dst: auto::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: auto::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:310,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:312,1
    - Dst: async_connect
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: Botan_CLI::tls_proxy_session::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - weak_from_this
    - Botan::TLS::error_code
    - auto::proxy_write_to_server
    - auto::server_read
    - begin
    - lock
    - async_connect
    - end
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/cli/tls_proxy.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: Botan_CLI::tls_proxy_session::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - server_info
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/cli/tls_proxy.cpp:324,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: Botan_CLI::tls_proxy_session::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - close
    - Botan::TLS::Alert::type
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcp::endpoint
      Src: /src/botan/src/cli/tls_proxy.cpp:363,1
    - Dst: Botan::GeneralName::matches_ipv4
      Src: /src/botan/src/cli/tls_proxy.cpp:363,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:364,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:365,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:366,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:367,1
    - Dst: log_info
      Src: /src/botan/src/cli/tls_proxy.cpp:369,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_proxy.cpp:369,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ' io'
    - port
    - endpoints
    - creds
    - policy
    - session_mgr
    - max_clients
    argTypes:
    - boost::asio::io_context
    - unsigned short
    - tcp::resolver::results_type
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 371
    functionName: Botan_CLI::tls_proxy_server::tls_proxy_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - log_info
    - std::move
    - Botan::GeneralName::matches_ipv4
    - Botan_CLI::tls_proxy_server::serve_one_session
    - tcp::endpoint
    linkageType: ''
    returnType: void
    signature: "void tls_proxy_server(boost::asio::io_context& io,\n                       unsigned
      short port,\n                       tcp::resolver::results_type endpoints,\n
      \                      std::shared_ptr<Botan::Credentials_Manager> creds,\n
      \                      std::shared_ptr<Botan::TLS::Policy> policy,\n                       std::shared_ptr<Botan::TLS::Session_Manager>
      session_mgr,\n                       size_t max_clients)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    - Dst: get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 376
    functionName: Botan_CLI::tls_proxy_server::make_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::create
    - get_io_service
    linkageType: ''
    returnType: session::pointer
    signature: session::pointer make_session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_server::make_session
      Src: /src/botan/src/cli/tls_proxy.cpp:379,1
    - Dst: async_accept
      Src: /src/botan/src/cli/tls_proxy.cpp:381,1
    - Dst: session::pointer::client_socket
      Src: /src/botan/src/cli/tls_proxy.cpp:382,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: Botan_CLI::tls_proxy_server::serve_one_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::tls_proxy_server::make_session
    - async_accept
    - boost::bind
    - session::pointer::client_socket
    linkageType: ''
    returnType: void
    signature: void serve_one_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/tls_proxy.cpp:388,1
    - Dst: client_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:389,1
    - Dst: should_exit
      Src: /src/botan/src/cli/tls_proxy.cpp:391,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' new_session'
    - ' error'
    argTypes:
    - session::pointer
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: Botan_CLI::tls_proxy_server::handle_accept
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - start
    - should_exit
    - Botan_CLI::tls_proxy_server::serve_one_session
    - client_serviced
    linkageType: ''
    returnType: void
    signature: void handle_accept(const session::pointer& new_session, const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<boost::asio::io_context&>
      Src: /src/botan/src/cli/tls_proxy.cpp:54,1
    - Dst: get_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:54,1
    - Dst: Botan_CLI::get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: Botan_CLI::get_io_service
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::get_io_service
    - static_cast<boost::asio::io_context&>
    - get_executor
    linkageType: ''
    returnType: boost::asio::io_context
    signature: boost::asio::io_context & get_io_service(T& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan_CLI::log_info
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_info(const std::string& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/botan/src/cli/tls_proxy.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' e'
    argTypes:
    - char*
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan_CLI::log_exception
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - what
    linkageType: ''
    returnType: void
    signature: void log_exception(const char* where, const std::exception& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: message
      Src: /src/botan/src/cli/tls_proxy.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' error'
    argTypes:
    - char*
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan_CLI::log_error
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - message
    linkageType: ''
    returnType: void
    signature: void log_error(const char* where, const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_CLI::log_error
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_error(const char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_proxy.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - where
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: Botan_CLI::log_binary_message
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void log_binary_message(const char* where, const uint8_t buf[], size_t
      buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_proxy.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - where
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: Botan_CLI::log_text_message
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void log_text_message(const char* where, const uint8_t buf[], size_t
      buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_clients
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_CLI::ServerStatus::ServerStatus
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ServerStatus(size_t max_clients)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::ServerStatus::clients_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: Botan_CLI::ServerStatus::should_exit
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::ServerStatus::clients_serviced
    linkageType: ''
    returnType: bool
    signature: bool should_exit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan_CLI::ServerStatus::client_serviced
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void client_serviced()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/botan/src/cli/tls_proxy.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::ServerStatus::clients_serviced
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - load
    linkageType: ''
    returnType: size_t
    signature: size_t clients_serviced() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<tls_proxy_session>
      Src: /src/botan/src/cli/tls_proxy.cpp:120,1
    - Dst: auto::setup
      Src: /src/botan/src/cli/tls_proxy.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' io'
    - ' session_manager'
    - ' credentials'
    - ' policy'
    - ' endpoints'
    argTypes:
    - boost::asio::io_context
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    - tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: Botan_CLI::tls_proxy_session::create
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 9
    functionsReached:
    - auto::setup
    - std::make_shared<tls_proxy_session>
    linkageType: ''
    returnType: pointer
    signature: "pointer create(boost::asio::io_context& io,\n                            const
      std::shared_ptr<Botan::TLS::Session_Manager>& session_manager,\n                            const
      std::shared_ptr<Botan::Credentials_Manager>& credentials,\n                            const
      std::shared_ptr<Botan::TLS::Policy>& policy,\n                            const
      tcp::resolver::results_type& endpoints)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '& client_socket()'
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tcp::socket
    signature: tcp::socket & client_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:133,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: Botan_CLI::tls_proxy_session::start
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - Botan_CLI::tls_proxy_session::client_read
    - resize
    linkageType: ''
    returnType: void
    signature: void start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:142,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:143,1
    - Dst: reset
      Src: /src/botan/src/cli/tls_proxy.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: Botan_CLI::tls_proxy_session::stop
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - close
    - reset
    linkageType: ''
    returnType: void
    signature: void stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:155,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/tls_proxy.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' io'
    - endpoints
    argTypes:
    - boost::asio::io_context
    - tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: Botan_CLI::tls_proxy_session::tls_proxy_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void tls_proxy_session(boost::asio::io_context& io, tcp::resolver::results_type
      endpoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/cli/tls_proxy.cpp:164,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' session_manager'
    - ' credentials'
    - ' policy'
    argTypes:
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: Botan_CLI::tls_proxy_session::setup
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::make_unique<Botan::TLS::Server>
    linkageType: ''
    returnType: void
    signature: "void setup(const std::shared_ptr<Botan::TLS::Session_Manager>& session_manager,\n
      \                const std::shared_ptr<Botan::Credentials_Manager>& credentials,\n
      \                const std::shared_ptr<Botan::TLS::Policy>& policy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:169,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:170,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:175,1
    - Dst: is_active
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:181,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:181,1
    - Dst: received_data
      Src: /src/botan/src/cli/tls_proxy.cpp:183,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:183,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:185,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:186,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:191,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:192,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:193,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 196
    functionName: Botan_CLI::tls_proxy_session::client_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - data
    - log_exception
    - Botan_CLI::tls_proxy_session::client_read
    - async_read_some
    - is_active
    - Peer::buffer
    - received_data
    - boost::asio::bind_executor
    - log_binary_message
    - shared_from_this
    linkageType: ''
    returnType: void
    signature: void client_read(const boost::system::error_code& error, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:200,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:201,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:207,1
    - Dst: is_closed
      Src: /src/botan/src/cli/tls_proxy.cpp:207,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:208,1
    - Dst: Botan_CLI::tls_proxy_session::tls_emit_data
      Src: /src/botan/src/cli/tls_proxy.cpp:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: Botan_CLI::tls_proxy_session::handle_client_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - is_closed
    - close
    - Botan_CLI::tls_proxy_session::tls_emit_data
    - clear
    - empty
    linkageType: ''
    returnType: void
    signature: void handle_client_write_completion(const boost::system::error_code&
      error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:215,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:216,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:220,1
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: Botan_CLI::tls_proxy_session::handle_server_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - clear
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    linkageType: ''
    returnType: void
    signature: void handle_server_write_completion(const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan_CLI::tls_proxy_session::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*rec_no*/, std::span<const uint8_t>
      buf) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:230,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:235,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:235,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:242,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:243,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:244,1
    - Dst: Botan_CLI::tls_proxy_session::handle_client_write_completion
      Src: /src/botan/src/cli/tls_proxy.cpp:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: Botan_CLI::tls_proxy_session::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::tls_proxy_session::handle_client_write_completion
    - data
    - std::swap
    - insert
    - std::span<const uint8_t>::begin
    - size
    - boost::asio::async_write
    - Peer::buffer
    - boost::asio::bind_executor
    - empty
    - std::span<const uint8_t>::empty
    - log_binary_message
    - shared_from_this
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:251,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:256,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:256,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:257,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:261,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:263,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:264,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:265,1
    - Dst: Botan_CLI::tls_proxy_session::handle_server_write_completion
      Src: /src/botan/src/cli/tls_proxy.cpp:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 269
    functionName: Botan_CLI::tls_proxy_session::proxy_write_to_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::tls_proxy_session::handle_server_write_completion
    - data
    - std::swap
    - log_text_message
    - insert
    - std::span<const uint8_t>::begin
    - size
    - boost::asio::async_write
    - Peer::buffer
    - empty
    - std::span<const uint8_t>::empty
    - boost::asio::bind_executor
    - shared_from_this
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void proxy_write_to_server(std::span<const uint8_t> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:273,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: send
      Src: /src/botan/src/cli/tls_proxy.cpp:282,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:282,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:285,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:290,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:292,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:293,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:294,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:295,1
    - Dst: Botan_CLI::tls_proxy_session::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 298
    functionName: Botan_CLI::tls_proxy_session::server_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - resize
    - data
    - send
    - log_exception
    - log_text_message
    - async_read_some
    - Botan_CLI::tls_proxy_session::server_read
    - size
    - Peer::buffer
    - boost::asio::bind_executor
    - log_binary_message
    - shared_from_this
    linkageType: ''
    returnType: void
    signature: void server_read(const boost::system::error_code& error, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: weak_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:301,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:304,1
    - Dst: lock
      Src: /src/botan/src/cli/tls_proxy.cpp:308,1
    - Dst: auto::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: auto::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:310,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:312,1
    - Dst: async_connect
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: Botan_CLI::tls_proxy_session::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - weak_from_this
    - Botan::TLS::error_code
    - auto::proxy_write_to_server
    - auto::server_read
    - begin
    - lock
    - async_connect
    - end
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/cli/tls_proxy.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: Botan_CLI::tls_proxy_session::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - server_info
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/cli/tls_proxy.cpp:324,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: Botan_CLI::tls_proxy_session::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - close
    - Botan::TLS::Alert::type
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcp::endpoint
      Src: /src/botan/src/cli/tls_proxy.cpp:363,1
    - Dst: Botan::GeneralName::matches_ipv4
      Src: /src/botan/src/cli/tls_proxy.cpp:363,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:364,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:365,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:366,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:367,1
    - Dst: log_info
      Src: /src/botan/src/cli/tls_proxy.cpp:369,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_proxy.cpp:369,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ' io'
    - port
    - endpoints
    - creds
    - policy
    - session_mgr
    - max_clients
    argTypes:
    - boost::asio::io_context
    - unsigned short
    - tcp::resolver::results_type
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 371
    functionName: Botan_CLI::tls_proxy_server::tls_proxy_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - log_info
    - std::move
    - Botan::GeneralName::matches_ipv4
    - Botan_CLI::tls_proxy_server::serve_one_session
    - tcp::endpoint
    linkageType: ''
    returnType: void
    signature: "void tls_proxy_server(boost::asio::io_context& io,\n                       unsigned
      short port,\n                       tcp::resolver::results_type endpoints,\n
      \                      std::shared_ptr<Botan::Credentials_Manager> creds,\n
      \                      std::shared_ptr<Botan::TLS::Policy> policy,\n                       std::shared_ptr<Botan::TLS::Session_Manager>
      session_mgr,\n                       size_t max_clients)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    - Dst: get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 376
    functionName: Botan_CLI::tls_proxy_server::make_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::tls_proxy_session::create
    - get_io_service
    linkageType: ''
    returnType: session::pointer
    signature: session::pointer make_session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_server::make_session
      Src: /src/botan/src/cli/tls_proxy.cpp:379,1
    - Dst: async_accept
      Src: /src/botan/src/cli/tls_proxy.cpp:381,1
    - Dst: session::pointer::client_socket
      Src: /src/botan/src/cli/tls_proxy.cpp:382,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: Botan_CLI::tls_proxy_server::serve_one_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - Botan_CLI::tls_proxy_server::make_session
    - async_accept
    - boost::bind
    - session::pointer::client_socket
    linkageType: ''
    returnType: void
    signature: void serve_one_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/tls_proxy.cpp:388,1
    - Dst: client_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:389,1
    - Dst: should_exit
      Src: /src/botan/src/cli/tls_proxy.cpp:391,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' new_session'
    - ' error'
    argTypes:
    - session::pointer
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: Botan_CLI::tls_proxy_server::handle_accept
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - start
    - should_exit
    - Botan_CLI::tls_proxy_server::serve_one_session
    - client_serviced
    linkageType: ''
    returnType: void
    signature: void handle_accept(const session::pointer& new_session, const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: Botan_CLI::TLS_Proxy::TLS_Proxy
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Proxy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 415
    functionName: Botan_CLI::TLS_Proxy::group
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 417
    functionName: Botan_CLI::TLS_Proxy::description
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_proxy.cpp:420,1
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/cli/tls_proxy.cpp:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 429
    functionName: Botan_CLI::TLS_Proxy::thread_count
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::OS::get_cpu_available
    linkageType: ''
    returnType: size_t
    signature: size_t thread_count() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_u16
      Src: /src/botan/src/cli/tls_proxy.cpp:432,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:433,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:434,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:436,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:437,1
    - Dst: Botan_CLI::TLS_Proxy::thread_count
      Src: /src/botan/src/cli/tls_proxy.cpp:439,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_proxy.cpp:440,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_proxy.cpp:442,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_proxy.cpp:444,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:444,1
    - Dst: tcp::resolver::resolve
      Src: /src/botan/src/cli/tls_proxy.cpp:449,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:454,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:455,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:457,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/cli/tls_proxy.cpp:459,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_proxy.cpp:459,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_proxy.cpp:463,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_proxy.cpp:463,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tls_proxy.cpp:473,1
    - Dst: std::make_shared<std::thread>
      Src: /src/botan/src/cli/tls_proxy.cpp:473,1
    - Dst: boost::asio::io_context::run
      Src: /src/botan/src/cli/tls_proxy.cpp:473,1
    - Dst: boost::asio::io_context::run
      Src: /src/botan/src/cli/tls_proxy.cpp:476,1
    - Dst: join
      Src: /src/botan/src/cli/tls_proxy.cpp:479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 481
    functionName: Botan_CLI::TLS_Proxy::go
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - std::make_shared<Basic_Credentials_Manager>
    - std::string::empty
    - std::vector::push_back
    - tcp::resolver::resolve
    - rng_as_shared
    - Botan_CLI::TLS_Proxy::thread_count
    - get_arg_u16
    - get_passphrase_arg
    - get_arg
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - std::make_shared<std::thread>
    - load_tls_policy
    - join
    - boost::asio::io_context::run
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<boost::asio::io_context&>
      Src: /src/botan/src/cli/tls_proxy.cpp:54,1
    - Dst: get_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:54,1
    - Dst: Botan_CLI::get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: Botan_CLI::get_io_service
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - Botan_CLI::get_io_service
    - static_cast<boost::asio::io_context&>
    - get_executor
    linkageType: ''
    returnType: boost::asio::io_context
    signature: boost::asio::io_context & get_io_service(T& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan_CLI::log_info
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_info(const std::string& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/botan/src/cli/tls_proxy.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' e'
    argTypes:
    - char*
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan_CLI::log_exception
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - what
    linkageType: ''
    returnType: void
    signature: void log_exception(const char* where, const std::exception& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: message
      Src: /src/botan/src/cli/tls_proxy.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' error'
    argTypes:
    - char*
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan_CLI::log_error
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - message
    linkageType: ''
    returnType: void
    signature: void log_error(const char* where, const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_CLI::log_error
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_error(const char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_proxy.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - where
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: Botan_CLI::log_binary_message
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void log_binary_message(const char* where, const uint8_t buf[], size_t
      buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_proxy.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - where
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: Botan_CLI::log_text_message
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void log_text_message(const char* where, const uint8_t buf[], size_t
      buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_clients
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_CLI::ServerStatus::ServerStatus
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ServerStatus(size_t max_clients)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::ServerStatus::clients_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: Botan_CLI::ServerStatus::should_exit
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::ServerStatus::clients_serviced
    linkageType: ''
    returnType: bool
    signature: bool should_exit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan_CLI::ServerStatus::client_serviced
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void client_serviced()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/botan/src/cli/tls_proxy.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::ServerStatus::clients_serviced
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - load
    linkageType: ''
    returnType: size_t
    signature: size_t clients_serviced() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<tls_proxy_session>
      Src: /src/botan/src/cli/tls_proxy.cpp:120,1
    - Dst: auto::setup
      Src: /src/botan/src/cli/tls_proxy.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' io'
    - ' session_manager'
    - ' credentials'
    - ' policy'
    - ' endpoints'
    argTypes:
    - boost::asio::io_context
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    - tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: Botan_CLI::tls_proxy_session::create
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 10
    functionsReached:
    - auto::setup
    - std::make_shared<tls_proxy_session>
    linkageType: ''
    returnType: pointer
    signature: "pointer create(boost::asio::io_context& io,\n                            const
      std::shared_ptr<Botan::TLS::Session_Manager>& session_manager,\n                            const
      std::shared_ptr<Botan::Credentials_Manager>& credentials,\n                            const
      std::shared_ptr<Botan::TLS::Policy>& policy,\n                            const
      tcp::resolver::results_type& endpoints)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '& client_socket()'
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tcp::socket
    signature: tcp::socket & client_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:133,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: Botan_CLI::tls_proxy_session::start
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - Botan_CLI::tls_proxy_session::client_read
    - resize
    linkageType: ''
    returnType: void
    signature: void start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:142,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:143,1
    - Dst: reset
      Src: /src/botan/src/cli/tls_proxy.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: Botan_CLI::tls_proxy_session::stop
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 8
    functionsReached:
    - close
    - reset
    linkageType: ''
    returnType: void
    signature: void stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:155,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/tls_proxy.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' io'
    - endpoints
    argTypes:
    - boost::asio::io_context
    - tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: Botan_CLI::tls_proxy_session::tls_proxy_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void tls_proxy_session(boost::asio::io_context& io, tcp::resolver::results_type
      endpoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/cli/tls_proxy.cpp:164,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' session_manager'
    - ' credentials'
    - ' policy'
    argTypes:
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: Botan_CLI::tls_proxy_session::setup
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::make_unique<Botan::TLS::Server>
    linkageType: ''
    returnType: void
    signature: "void setup(const std::shared_ptr<Botan::TLS::Session_Manager>& session_manager,\n
      \                const std::shared_ptr<Botan::Credentials_Manager>& credentials,\n
      \                const std::shared_ptr<Botan::TLS::Policy>& policy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:169,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:170,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:175,1
    - Dst: is_active
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:181,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:181,1
    - Dst: received_data
      Src: /src/botan/src/cli/tls_proxy.cpp:183,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:183,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:185,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:186,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:191,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:192,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:193,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 196
    functionName: Botan_CLI::tls_proxy_session::client_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 6
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - data
    - log_exception
    - Botan_CLI::tls_proxy_session::client_read
    - async_read_some
    - is_active
    - Peer::buffer
    - received_data
    - boost::asio::bind_executor
    - log_binary_message
    - shared_from_this
    linkageType: ''
    returnType: void
    signature: void client_read(const boost::system::error_code& error, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:200,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:201,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:207,1
    - Dst: is_closed
      Src: /src/botan/src/cli/tls_proxy.cpp:207,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:208,1
    - Dst: Botan_CLI::tls_proxy_session::tls_emit_data
      Src: /src/botan/src/cli/tls_proxy.cpp:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: Botan_CLI::tls_proxy_session::handle_client_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - is_closed
    - close
    - Botan_CLI::tls_proxy_session::tls_emit_data
    - clear
    - empty
    linkageType: ''
    returnType: void
    signature: void handle_client_write_completion(const boost::system::error_code&
      error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:215,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:216,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:220,1
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: Botan_CLI::tls_proxy_session::handle_server_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - clear
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    linkageType: ''
    returnType: void
    signature: void handle_server_write_completion(const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan_CLI::tls_proxy_session::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*rec_no*/, std::span<const uint8_t>
      buf) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:230,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:235,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:235,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:242,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:243,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:244,1
    - Dst: Botan_CLI::tls_proxy_session::handle_client_write_completion
      Src: /src/botan/src/cli/tls_proxy.cpp:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: Botan_CLI::tls_proxy_session::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - Botan_CLI::tls_proxy_session::handle_client_write_completion
    - data
    - std::swap
    - insert
    - std::span<const uint8_t>::begin
    - size
    - boost::asio::async_write
    - Peer::buffer
    - boost::asio::bind_executor
    - empty
    - std::span<const uint8_t>::empty
    - log_binary_message
    - shared_from_this
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:251,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:256,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:256,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:257,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:261,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:263,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:264,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:265,1
    - Dst: Botan_CLI::tls_proxy_session::handle_server_write_completion
      Src: /src/botan/src/cli/tls_proxy.cpp:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 269
    functionName: Botan_CLI::tls_proxy_session::proxy_write_to_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 6
    functionsReached:
    - Botan_CLI::tls_proxy_session::handle_server_write_completion
    - data
    - std::swap
    - log_text_message
    - insert
    - std::span<const uint8_t>::begin
    - size
    - boost::asio::async_write
    - Peer::buffer
    - empty
    - std::span<const uint8_t>::empty
    - boost::asio::bind_executor
    - shared_from_this
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void proxy_write_to_server(std::span<const uint8_t> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:273,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: send
      Src: /src/botan/src/cli/tls_proxy.cpp:282,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:282,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:285,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:290,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:292,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:293,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:294,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:295,1
    - Dst: Botan_CLI::tls_proxy_session::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 298
    functionName: Botan_CLI::tls_proxy_session::server_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - resize
    - data
    - send
    - log_exception
    - log_text_message
    - async_read_some
    - Botan_CLI::tls_proxy_session::server_read
    - size
    - Peer::buffer
    - boost::asio::bind_executor
    - log_binary_message
    - shared_from_this
    linkageType: ''
    returnType: void
    signature: void server_read(const boost::system::error_code& error, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: weak_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:301,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:304,1
    - Dst: lock
      Src: /src/botan/src/cli/tls_proxy.cpp:308,1
    - Dst: auto::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: auto::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:310,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:312,1
    - Dst: async_connect
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: Botan_CLI::tls_proxy_session::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - weak_from_this
    - Botan::TLS::error_code
    - auto::proxy_write_to_server
    - auto::server_read
    - begin
    - lock
    - async_connect
    - end
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/cli/tls_proxy.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: Botan_CLI::tls_proxy_session::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - server_info
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/cli/tls_proxy.cpp:324,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: Botan_CLI::tls_proxy_session::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - close
    - Botan::TLS::Alert::type
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcp::endpoint
      Src: /src/botan/src/cli/tls_proxy.cpp:363,1
    - Dst: Botan::GeneralName::matches_ipv4
      Src: /src/botan/src/cli/tls_proxy.cpp:363,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:364,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:365,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:366,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:367,1
    - Dst: log_info
      Src: /src/botan/src/cli/tls_proxy.cpp:369,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_proxy.cpp:369,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ' io'
    - port
    - endpoints
    - creds
    - policy
    - session_mgr
    - max_clients
    argTypes:
    - boost::asio::io_context
    - unsigned short
    - tcp::resolver::results_type
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 371
    functionName: Botan_CLI::tls_proxy_server::tls_proxy_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - log_info
    - std::move
    - Botan::GeneralName::matches_ipv4
    - Botan_CLI::tls_proxy_server::serve_one_session
    - tcp::endpoint
    linkageType: ''
    returnType: void
    signature: "void tls_proxy_server(boost::asio::io_context& io,\n                       unsigned
      short port,\n                       tcp::resolver::results_type endpoints,\n
      \                      std::shared_ptr<Botan::Credentials_Manager> creds,\n
      \                      std::shared_ptr<Botan::TLS::Policy> policy,\n                       std::shared_ptr<Botan::TLS::Session_Manager>
      session_mgr,\n                       size_t max_clients)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    - Dst: get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 376
    functionName: Botan_CLI::tls_proxy_server::make_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::tls_proxy_session::create
    - get_io_service
    linkageType: ''
    returnType: session::pointer
    signature: session::pointer make_session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_server::make_session
      Src: /src/botan/src/cli/tls_proxy.cpp:379,1
    - Dst: async_accept
      Src: /src/botan/src/cli/tls_proxy.cpp:381,1
    - Dst: session::pointer::client_socket
      Src: /src/botan/src/cli/tls_proxy.cpp:382,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: Botan_CLI::tls_proxy_server::serve_one_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 5
    functionsReached:
    - Botan_CLI::tls_proxy_server::make_session
    - async_accept
    - boost::bind
    - session::pointer::client_socket
    linkageType: ''
    returnType: void
    signature: void serve_one_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/tls_proxy.cpp:388,1
    - Dst: client_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:389,1
    - Dst: should_exit
      Src: /src/botan/src/cli/tls_proxy.cpp:391,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' new_session'
    - ' error'
    argTypes:
    - session::pointer
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: Botan_CLI::tls_proxy_server::handle_accept
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - start
    - should_exit
    - Botan_CLI::tls_proxy_server::serve_one_session
    - client_serviced
    linkageType: ''
    returnType: void
    signature: void handle_accept(const session::pointer& new_session, const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<boost::asio::io_context&>
      Src: /src/botan/src/cli/tls_proxy.cpp:54,1
    - Dst: get_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:54,1
    - Dst: Botan_CLI::get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: Botan_CLI::get_io_service
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::get_io_service
    - static_cast<boost::asio::io_context&>
    - get_executor
    linkageType: ''
    returnType: boost::asio::io_context
    signature: boost::asio::io_context & get_io_service(T& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan_CLI::log_info
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_info(const std::string& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/botan/src/cli/tls_proxy.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' e'
    argTypes:
    - char*
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan_CLI::log_exception
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - what
    linkageType: ''
    returnType: void
    signature: void log_exception(const char* where, const std::exception& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: message
      Src: /src/botan/src/cli/tls_proxy.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' error'
    argTypes:
    - char*
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan_CLI::log_error
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - message
    linkageType: ''
    returnType: void
    signature: void log_error(const char* where, const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan_CLI::log_error
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_error(const char* msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_proxy.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - where
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: Botan_CLI::log_binary_message
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void log_binary_message(const char* where, const uint8_t buf[], size_t
      buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_proxy.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - where
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: Botan_CLI::log_text_message
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void log_text_message(const char* where, const uint8_t buf[], size_t
      buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_clients
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_CLI::ServerStatus::ServerStatus
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ServerStatus(size_t max_clients)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::ServerStatus::clients_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: Botan_CLI::ServerStatus::should_exit
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::ServerStatus::clients_serviced
    linkageType: ''
    returnType: bool
    signature: bool should_exit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan_CLI::ServerStatus::client_serviced
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void client_serviced()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/botan/src/cli/tls_proxy.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::ServerStatus::clients_serviced
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - load
    linkageType: ''
    returnType: size_t
    signature: size_t clients_serviced() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<tls_proxy_session>
      Src: /src/botan/src/cli/tls_proxy.cpp:120,1
    - Dst: auto::setup
      Src: /src/botan/src/cli/tls_proxy.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' io'
    - ' session_manager'
    - ' credentials'
    - ' policy'
    - ' endpoints'
    argTypes:
    - boost::asio::io_context
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    - tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: Botan_CLI::tls_proxy_session::create
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 11
    functionsReached:
    - auto::setup
    - std::make_shared<tls_proxy_session>
    linkageType: ''
    returnType: pointer
    signature: "pointer create(boost::asio::io_context& io,\n                            const
      std::shared_ptr<Botan::TLS::Session_Manager>& session_manager,\n                            const
      std::shared_ptr<Botan::Credentials_Manager>& credentials,\n                            const
      std::shared_ptr<Botan::TLS::Policy>& policy,\n                            const
      tcp::resolver::results_type& endpoints)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '& client_socket()'
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tcp::socket
    signature: tcp::socket & client_socket()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:133,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: Botan_CLI::tls_proxy_session::start
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - Botan_CLI::tls_proxy_session::client_read
    - resize
    linkageType: ''
    returnType: void
    signature: void start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:142,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:143,1
    - Dst: reset
      Src: /src/botan/src/cli/tls_proxy.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: Botan_CLI::tls_proxy_session::stop
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 12
    functionsReached:
    - close
    - reset
    linkageType: ''
    returnType: void
    signature: void stop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:155,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/tls_proxy.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' io'
    - endpoints
    argTypes:
    - boost::asio::io_context
    - tcp::resolver::results_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: Botan_CLI::tls_proxy_session::tls_proxy_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void tls_proxy_session(boost::asio::io_context& io, tcp::resolver::results_type
      endpoints)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/cli/tls_proxy.cpp:164,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' session_manager'
    - ' credentials'
    - ' policy'
    argTypes:
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: Botan_CLI::tls_proxy_session::setup
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - shared_from_this
    - std::make_unique<Botan::TLS::Server>
    linkageType: ''
    returnType: void
    signature: "void setup(const std::shared_ptr<Botan::TLS::Session_Manager>& session_manager,\n
      \                const std::shared_ptr<Botan::Credentials_Manager>& credentials,\n
      \                const std::shared_ptr<Botan::TLS::Policy>& policy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:169,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:170,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:175,1
    - Dst: is_active
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:181,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:181,1
    - Dst: received_data
      Src: /src/botan/src/cli/tls_proxy.cpp:183,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:183,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:185,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:186,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:191,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:192,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:193,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 196
    functionName: Botan_CLI::tls_proxy_session::client_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 8
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - data
    - log_exception
    - Botan_CLI::tls_proxy_session::client_read
    - async_read_some
    - is_active
    - Peer::buffer
    - received_data
    - boost::asio::bind_executor
    - log_binary_message
    - shared_from_this
    linkageType: ''
    returnType: void
    signature: void client_read(const boost::system::error_code& error, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:200,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:201,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:207,1
    - Dst: is_closed
      Src: /src/botan/src/cli/tls_proxy.cpp:207,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:208,1
    - Dst: Botan_CLI::tls_proxy_session::tls_emit_data
      Src: /src/botan/src/cli/tls_proxy.cpp:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: Botan_CLI::tls_proxy_session::handle_client_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - is_closed
    - close
    - Botan_CLI::tls_proxy_session::tls_emit_data
    - clear
    - empty
    linkageType: ''
    returnType: void
    signature: void handle_client_write_completion(const boost::system::error_code&
      error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:215,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:216,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:220,1
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: Botan_CLI::tls_proxy_session::handle_server_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - clear
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    linkageType: ''
    returnType: void
    signature: void handle_server_write_completion(const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan_CLI::tls_proxy_session::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*rec_no*/, std::span<const uint8_t>
      buf) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:230,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:231,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:235,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:235,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:242,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:243,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:244,1
    - Dst: Botan_CLI::tls_proxy_session::handle_client_write_completion
      Src: /src/botan/src/cli/tls_proxy.cpp:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: Botan_CLI::tls_proxy_session::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::tls_proxy_session::handle_client_write_completion
    - data
    - std::swap
    - insert
    - std::span<const uint8_t>::begin
    - size
    - boost::asio::async_write
    - Peer::buffer
    - boost::asio::bind_executor
    - empty
    - std::span<const uint8_t>::empty
    - log_binary_message
    - shared_from_this
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:251,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:256,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:256,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:257,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:261,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:263,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:264,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:265,1
    - Dst: Botan_CLI::tls_proxy_session::handle_server_write_completion
      Src: /src/botan/src/cli/tls_proxy.cpp:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 269
    functionName: Botan_CLI::tls_proxy_session::proxy_write_to_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 8
    functionsReached:
    - Botan_CLI::tls_proxy_session::handle_server_write_completion
    - data
    - std::swap
    - log_text_message
    - insert
    - std::span<const uint8_t>::begin
    - size
    - boost::asio::async_write
    - Peer::buffer
    - empty
    - std::span<const uint8_t>::empty
    - boost::asio::bind_executor
    - shared_from_this
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void proxy_write_to_server(std::span<const uint8_t> buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:273,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:281,1
    - Dst: send
      Src: /src/botan/src/cli/tls_proxy.cpp:282,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:282,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:285,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:290,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:292,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:293,1
    - Dst: boost::asio::bind_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:294,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:295,1
    - Dst: Botan_CLI::tls_proxy_session::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 298
    functionName: Botan_CLI::tls_proxy_session::server_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - log_error
    - Botan_CLI::tls_proxy_session::stop
    - resize
    - data
    - send
    - log_exception
    - log_text_message
    - async_read_some
    - Botan_CLI::tls_proxy_session::server_read
    - size
    - Peer::buffer
    - boost::asio::bind_executor
    - log_binary_message
    - shared_from_this
    linkageType: ''
    returnType: void
    signature: void server_read(const boost::system::error_code& error, size_t bytes_transferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: weak_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:301,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:304,1
    - Dst: lock
      Src: /src/botan/src/cli/tls_proxy.cpp:308,1
    - Dst: auto::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: auto::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:310,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:312,1
    - Dst: async_connect
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: Botan_CLI::tls_proxy_session::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - weak_from_this
    - Botan::TLS::error_code
    - auto::proxy_write_to_server
    - auto::server_read
    - begin
    - lock
    - async_connect
    - end
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/cli/tls_proxy.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: Botan_CLI::tls_proxy_session::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - server_info
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/cli/tls_proxy.cpp:324,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: Botan_CLI::tls_proxy_session::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - close
    - Botan::TLS::Alert::type
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcp::endpoint
      Src: /src/botan/src/cli/tls_proxy.cpp:363,1
    - Dst: Botan::GeneralName::matches_ipv4
      Src: /src/botan/src/cli/tls_proxy.cpp:363,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:364,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:365,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:366,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:367,1
    - Dst: log_info
      Src: /src/botan/src/cli/tls_proxy.cpp:369,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_proxy.cpp:369,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ' io'
    - port
    - endpoints
    - creds
    - policy
    - session_mgr
    - max_clients
    argTypes:
    - boost::asio::io_context
    - unsigned short
    - tcp::resolver::results_type
    - std::shared_ptr<Botan::Credentials_Manager>
    - std::shared_ptr<Botan::TLS::Policy>
    - std::shared_ptr<Botan::TLS::Session_Manager>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 371
    functionName: Botan_CLI::tls_proxy_server::tls_proxy_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - log_info
    - std::move
    - Botan::GeneralName::matches_ipv4
    - Botan_CLI::tls_proxy_server::serve_one_session
    - tcp::endpoint
    linkageType: ''
    returnType: void
    signature: "void tls_proxy_server(boost::asio::io_context& io,\n                       unsigned
      short port,\n                       tcp::resolver::results_type endpoints,\n
      \                      std::shared_ptr<Botan::Credentials_Manager> creds,\n
      \                      std::shared_ptr<Botan::TLS::Policy> policy,\n                       std::shared_ptr<Botan::TLS::Session_Manager>
      session_mgr,\n                       size_t max_clients)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    - Dst: get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 376
    functionName: Botan_CLI::tls_proxy_server::make_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - Botan_CLI::tls_proxy_session::create
    - get_io_service
    linkageType: ''
    returnType: session::pointer
    signature: session::pointer make_session()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::tls_proxy_server::make_session
      Src: /src/botan/src/cli/tls_proxy.cpp:379,1
    - Dst: async_accept
      Src: /src/botan/src/cli/tls_proxy.cpp:381,1
    - Dst: session::pointer::client_socket
      Src: /src/botan/src/cli/tls_proxy.cpp:382,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: Botan_CLI::tls_proxy_server::serve_one_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 7
    functionsReached:
    - Botan_CLI::tls_proxy_server::make_session
    - async_accept
    - boost::bind
    - session::pointer::client_socket
    linkageType: ''
    returnType: void
    signature: void serve_one_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/tls_proxy.cpp:388,1
    - Dst: client_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:389,1
    - Dst: should_exit
      Src: /src/botan/src/cli/tls_proxy.cpp:391,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' new_session'
    - ' error'
    argTypes:
    - session::pointer
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: Botan_CLI::tls_proxy_server::handle_accept
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - start
    - should_exit
    - Botan_CLI::tls_proxy_server::serve_one_session
    - client_serviced
    linkageType: ''
    returnType: void
    signature: void handle_accept(const session::pointer& new_session, const boost::system::error_code&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: Botan_CLI::TLS_Proxy::TLS_Proxy
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Proxy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 415
    functionName: Botan_CLI::TLS_Proxy::group
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 417
    functionName: Botan_CLI::TLS_Proxy::description
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_proxy.cpp:420,1
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/cli/tls_proxy.cpp:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 429
    functionName: Botan_CLI::TLS_Proxy::thread_count
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - get_arg_sz
    - Botan::OS::get_cpu_available
    linkageType: ''
    returnType: size_t
    signature: size_t thread_count() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_u16
      Src: /src/botan/src/cli/tls_proxy.cpp:432,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:433,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:434,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:436,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:437,1
    - Dst: Botan_CLI::TLS_Proxy::thread_count
      Src: /src/botan/src/cli/tls_proxy.cpp:439,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_proxy.cpp:440,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_proxy.cpp:442,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_proxy.cpp:444,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:444,1
    - Dst: tcp::resolver::resolve
      Src: /src/botan/src/cli/tls_proxy.cpp:449,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:454,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:455,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:457,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/cli/tls_proxy.cpp:459,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_proxy.cpp:459,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_proxy.cpp:463,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_proxy.cpp:463,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tls_proxy.cpp:473,1
    - Dst: std::make_shared<std::thread>
      Src: /src/botan/src/cli/tls_proxy.cpp:473,1
    - Dst: boost::asio::io_context::run
      Src: /src/botan/src/cli/tls_proxy.cpp:473,1
    - Dst: boost::asio::io_context::run
      Src: /src/botan/src/cli/tls_proxy.cpp:476,1
    - Dst: join
      Src: /src/botan/src/cli/tls_proxy.cpp:479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 481
    functionName: Botan_CLI::TLS_Proxy::go
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - std::make_shared<Basic_Credentials_Manager>
    - std::string::empty
    - std::vector::push_back
    - tcp::resolver::resolve
    - rng_as_shared
    - Botan_CLI::TLS_Proxy::thread_count
    - get_arg_u16
    - get_passphrase_arg
    - get_arg
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - std::make_shared<std::thread>
    - load_tls_policy
    - join
    - boost::asio::io_context::run
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::format_time
      Src: /src/botan/src/cli/tls_http_server.cpp:72,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:72,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:74,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: Botan_CLI::Logger::timestamp
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - Botan::OS::format_time
    - std::time
    linkageType: ''
    returnType: std::string
    signature: std::string timestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' out'
    - ' err'
    argTypes:
    - std::ostream
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_CLI::Logger::Logger
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Logger(std::ostream& out, std::ostream& err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:83,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan_CLI::Logger::log
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::Logger::timestamp
    linkageType: ''
    returnType: void
    signature: void log(std::string_view out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:88,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Logger::error
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::Logger::timestamp
    linkageType: ''
    returnType: void
    signature: void error(std::string_view err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:93,1
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Logger::flush
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::Logger::flush
    linkageType: ''
    returnType: void
    signature: void flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/tls_http_server.cpp:108,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan::version_string
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:116,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:119,1
    - Dst: get
      Src: /src/botan/src/cli/tls_http_server.cpp:119,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:121,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:122,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - server_info
    - ciphersuite
    - version
    - get
    - std::ostringstream::str
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/cli/tls_http_server.cpp:129,1
    - Dst: dynamic_cast<const Botan::TLS::Client_Hello&>
      Src: /src/botan/src/cli/tls_http_server.cpp:130,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:134,1
    - Dst: random
      Src: /src/botan/src/cli/tls_http_server.cpp:134,1
    - Dst: ciphersuites
      Src: /src/botan/src/cli/tls_http_server.cpp:137,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_http_server.cpp:138,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:140,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:140,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:141,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:141,1
    - Dst: auto::valid
      Src: /src/botan/src/cli/tls_http_server.cpp:143,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:144,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 154
    functionName: Botan_CLI::TlsHttpCallbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const Botan::TLS::Client_Hello&>
    - Botan::hex_encode
    - auto::valid
    - std::ostringstream::str
    - Botan::TLS::Ciphersuite::by_id
    - std::setw
    - std::setfill
    - random
    - auto::to_string
    - type
    - ciphersuites
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Botan::TLS::Handshake_Message&
      message) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: Botan_CLI::TlsHttpCallbacks::summary
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::string
    signature: std::string summary() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:171,1
    - Dst: address
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: std::distance
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: end
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: name_string
      Src: /src/botan/src/cli/tls_http_server.cpp:179,1
    - Dst: value
      Src: /src/botan/src/cli/tls_http_server.cpp:179,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' tls_stream'
    - ' req'
    argTypes:
    - Botan::TLS::Stream<tcp_stream>
    - http::request<http::string_body>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: Botan_CLI::summarize_request
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - next_layer
    - address
    - std::distance
    - begin
    - name_string
    - end
    - std::ostringstream::str
    - method_string
    - value
    - target
    linkageType: ''
    returnType: std::string
    signature: "std::string summarize_request(const Botan::TLS::Stream<tcp_stream>&
      tls_stream,\n                              const http::request<http::string_body>&
      req)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_http_server.cpp:190,1
    - Dst: error
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    - Dst: what
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' logger'
    - ' context'
    argTypes:
    - std::shared_ptr<Logger>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: Botan_CLI::make_final_completion_handler
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - error
    - Botan::fmt
    - std::move
    - std::rethrow_exception
    - what
    linkageType: ''
    returnType: auto
    signature: auto make_final_completion_handler(const std::shared_ptr<Logger>& logger,
      const std::string& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: method
      Src: /src/botan/src/cli/tls_http_server.cpp:205,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: summary
      Src: /src/botan/src/cli/tls_http_server.cpp:208,1
    - Dst: Botan_CLI::summarize_request
      Src: /src/botan/src/cli/tls_http_server.cpp:208,1
    - Dst: std::make_shared<http::response<http::string_body>>
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: auto::body
      Src: /src/botan/src/cli/tls_http_server.cpp:215,1
    - Dst: auto::set
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:217,1
    - Dst: keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:217,1
    - Dst: auto::prepare_payload
      Src: /src/botan/src/cli/tls_http_server.cpp:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ' req'
    - ' callbacks'
    - ' tls_stream'
    - ' logger'
    argTypes:
    - http::request<http::string_body>
    - std::shared_ptr<TlsHttpCallbacks>
    - Botan::TLS::Stream<tcp_stream>
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: Botan_CLI::handle_response
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - auto::prepare_payload
    - method
    - std::make_shared<http::response<http::string_body>>
    - auto::keep_alive
    - version
    - keep_alive
    - auto::set
    - log
    - Botan_CLI::summarize_request
    - method_string
    - auto::body
    - target
    - summary
    linkageType: ''
    returnType: std::shared_ptr<http::response<http::string_body>>
    signature: "std::shared_ptr<http::response<http::string_body>> handle_response(const
      http::request<http::string_body>& req,\n                                                                   const
      std::shared_ptr<TlsHttpCallbacks>& callbacks,\n                                                                   const
      Botan::TLS::Stream<tcp_stream>& tls_stream,\n                                                                   const
      std::shared_ptr<Logger>& logger)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<TlsHttpCallbacks>
      Src: /src/botan/src/cli/tls_http_server.cpp:230,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_handshake
      Src: /src/botan/src/cli/tls_http_server.cpp:237,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:241,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/tls_http_server.cpp:241,1
    - Dst: http::async_read
      Src: /src/botan/src/cli/tls_http_server.cpp:245,1
    - Dst: Botan_CLI::handle_response
      Src: /src/botan/src/cli/tls_http_server.cpp:248,1
    - Dst: http::async_write
      Src: /src/botan/src/cli/tls_http_server.cpp:251,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:254,1
    - Dst: code
      Src: /src/botan/src/cli/tls_http_server.cpp:261,1
    - Dst: std::current_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:265,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_shutdown
      Src: /src/botan/src/cli/tls_http_server.cpp:273,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:274,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - stream
    - tls_ctx
    - logger
    argTypes:
    - tcp_stream
    - std::shared_ptr<Botan::TLS::Context>
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 291
    functionName: Botan_CLI::do_session
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - code
    - std::make_shared<TlsHttpCallbacks>
    - auto::keep_alive
    - Botan::TLS::Stream<tcp_stream>::next_layer
    - Botan::TLS::Stream<tcp_stream>::async_handshake
    - std::current_exception
    - std::rethrow_exception
    - Botan_CLI::Timer::seconds
    - http::async_write
    - Botan::TLS::Stream<tcp_stream>::async_shutdown
    - Botan_CLI::handle_response
    - http::async_read
    linkageType: ''
    returnType: net::awaitable<void>
    signature: "net::awaitable<void> do_session(tcp_stream stream,\n                                std::shared_ptr<Botan::TLS::Context>
      tls_ctx,\n                                std::shared_ptr<Logger> logger)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: as_default_on
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: tcp::acceptor
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: auto::open
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: tcp::endpoint::protocol
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: auto::set_option
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: auto::bind
      Src: /src/botan/src/cli/tls_http_server.cpp:300,1
    - Dst: auto::listen
      Src: /src/botan/src/cli/tls_http_server.cpp:301,1
    - Dst: std::shared_ptr<Logger>::log
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: tcp::endpoint::address
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: tcp::endpoint::port
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: std::shared_ptr<Logger>::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:309,1
    - Dst: done
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: auto::get_executor
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: Botan_CLI::do_session
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: tcp_stream
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: auto::async_accept
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: Botan_CLI::make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - endpoint
    - tls_ctx
    - max_clients
    - logger
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<Botan::TLS::Context>
    - size_t
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 324
    functionName: Botan_CLI::do_listen
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::make_final_completion_handler
    - tcp::endpoint::protocol
    - Botan::fmt
    - std::shared_ptr<Logger>::flush
    - boost::asio::co_spawn
    - Botan_CLI::do_session
    - tcp::acceptor
    - tcp::endpoint::port
    - auto::listen
    - auto::async_accept
    - as_default_on
    - net::socket_base::reuse_address
    - std::shared_ptr<Logger>::log
    - auto::set_option
    - done
    - auto::get_executor
    - tcp_stream
    - tcp::endpoint::address
    - auto::bind
    - auto::open
    linkageType: ''
    returnType: net::awaitable<void>
    signature: "net::awaitable<void> do_listen(tcp::endpoint endpoint,\n                               std::shared_ptr<Botan::TLS::Context>
      tls_ctx,\n                               size_t max_clients,\n                               std::shared_ptr<Logger>
      logger)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::format_time
      Src: /src/botan/src/cli/tls_http_server.cpp:72,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:72,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:74,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: Botan_CLI::Logger::timestamp
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 2
    functionsReached:
    - std::to_string
    - Botan::OS::format_time
    - std::time
    linkageType: ''
    returnType: std::string
    signature: std::string timestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' out'
    - ' err'
    argTypes:
    - std::ostream
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_CLI::Logger::Logger
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Logger(std::ostream& out, std::ostream& err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:83,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan_CLI::Logger::log
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::Logger::timestamp
    linkageType: ''
    returnType: void
    signature: void log(std::string_view out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:88,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Logger::error
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::Logger::timestamp
    linkageType: ''
    returnType: void
    signature: void error(std::string_view err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:93,1
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Logger::flush
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::Logger::flush
    linkageType: ''
    returnType: void
    signature: void flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/tls_http_server.cpp:108,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan::version_string
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:116,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:119,1
    - Dst: get
      Src: /src/botan/src/cli/tls_http_server.cpp:119,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:121,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:122,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - server_info
    - ciphersuite
    - version
    - get
    - std::ostringstream::str
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/cli/tls_http_server.cpp:129,1
    - Dst: dynamic_cast<const Botan::TLS::Client_Hello&>
      Src: /src/botan/src/cli/tls_http_server.cpp:130,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:134,1
    - Dst: random
      Src: /src/botan/src/cli/tls_http_server.cpp:134,1
    - Dst: ciphersuites
      Src: /src/botan/src/cli/tls_http_server.cpp:137,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_http_server.cpp:138,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:140,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:140,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:141,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:141,1
    - Dst: auto::valid
      Src: /src/botan/src/cli/tls_http_server.cpp:143,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:144,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 154
    functionName: Botan_CLI::TlsHttpCallbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const Botan::TLS::Client_Hello&>
    - Botan::hex_encode
    - auto::valid
    - std::ostringstream::str
    - Botan::TLS::Ciphersuite::by_id
    - std::setw
    - std::setfill
    - random
    - auto::to_string
    - type
    - ciphersuites
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Botan::TLS::Handshake_Message&
      message) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: Botan_CLI::TlsHttpCallbacks::summary
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::string
    signature: std::string summary() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:171,1
    - Dst: address
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: std::distance
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: end
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: name_string
      Src: /src/botan/src/cli/tls_http_server.cpp:179,1
    - Dst: value
      Src: /src/botan/src/cli/tls_http_server.cpp:179,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' tls_stream'
    - ' req'
    argTypes:
    - Botan::TLS::Stream<tcp_stream>
    - http::request<http::string_body>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: Botan_CLI::summarize_request
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 1
    functionsReached:
    - next_layer
    - address
    - std::distance
    - begin
    - name_string
    - end
    - std::ostringstream::str
    - method_string
    - value
    - target
    linkageType: ''
    returnType: std::string
    signature: "std::string summarize_request(const Botan::TLS::Stream<tcp_stream>&
      tls_stream,\n                              const http::request<http::string_body>&
      req)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_http_server.cpp:190,1
    - Dst: error
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    - Dst: what
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' logger'
    - ' context'
    argTypes:
    - std::shared_ptr<Logger>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: Botan_CLI::make_final_completion_handler
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 1
    functionsReached:
    - error
    - Botan::fmt
    - std::move
    - std::rethrow_exception
    - what
    linkageType: ''
    returnType: auto
    signature: auto make_final_completion_handler(const std::shared_ptr<Logger>& logger,
      const std::string& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: method
      Src: /src/botan/src/cli/tls_http_server.cpp:205,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: summary
      Src: /src/botan/src/cli/tls_http_server.cpp:208,1
    - Dst: Botan_CLI::summarize_request
      Src: /src/botan/src/cli/tls_http_server.cpp:208,1
    - Dst: std::make_shared<http::response<http::string_body>>
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: auto::body
      Src: /src/botan/src/cli/tls_http_server.cpp:215,1
    - Dst: auto::set
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:217,1
    - Dst: keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:217,1
    - Dst: auto::prepare_payload
      Src: /src/botan/src/cli/tls_http_server.cpp:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ' req'
    - ' callbacks'
    - ' tls_stream'
    - ' logger'
    argTypes:
    - http::request<http::string_body>
    - std::shared_ptr<TlsHttpCallbacks>
    - Botan::TLS::Stream<tcp_stream>
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: Botan_CLI::handle_response
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmt
    - auto::prepare_payload
    - method
    - std::make_shared<http::response<http::string_body>>
    - auto::keep_alive
    - version
    - keep_alive
    - auto::set
    - log
    - Botan_CLI::summarize_request
    - method_string
    - auto::body
    - target
    - summary
    linkageType: ''
    returnType: std::shared_ptr<http::response<http::string_body>>
    signature: "std::shared_ptr<http::response<http::string_body>> handle_response(const
      http::request<http::string_body>& req,\n                                                                   const
      std::shared_ptr<TlsHttpCallbacks>& callbacks,\n                                                                   const
      Botan::TLS::Stream<tcp_stream>& tls_stream,\n                                                                   const
      std::shared_ptr<Logger>& logger)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<TlsHttpCallbacks>
      Src: /src/botan/src/cli/tls_http_server.cpp:230,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_handshake
      Src: /src/botan/src/cli/tls_http_server.cpp:237,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:241,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/tls_http_server.cpp:241,1
    - Dst: http::async_read
      Src: /src/botan/src/cli/tls_http_server.cpp:245,1
    - Dst: Botan_CLI::handle_response
      Src: /src/botan/src/cli/tls_http_server.cpp:248,1
    - Dst: http::async_write
      Src: /src/botan/src/cli/tls_http_server.cpp:251,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:254,1
    - Dst: code
      Src: /src/botan/src/cli/tls_http_server.cpp:261,1
    - Dst: std::current_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:265,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_shutdown
      Src: /src/botan/src/cli/tls_http_server.cpp:273,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:274,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - stream
    - tls_ctx
    - logger
    argTypes:
    - tcp_stream
    - std::shared_ptr<Botan::TLS::Context>
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 291
    functionName: Botan_CLI::do_session
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 1
    functionsReached:
    - code
    - std::make_shared<TlsHttpCallbacks>
    - auto::keep_alive
    - Botan::TLS::Stream<tcp_stream>::next_layer
    - Botan::TLS::Stream<tcp_stream>::async_handshake
    - std::current_exception
    - std::rethrow_exception
    - Botan_CLI::Timer::seconds
    - http::async_write
    - Botan::TLS::Stream<tcp_stream>::async_shutdown
    - Botan_CLI::handle_response
    - http::async_read
    linkageType: ''
    returnType: net::awaitable<void>
    signature: "net::awaitable<void> do_session(tcp_stream stream,\n                                std::shared_ptr<Botan::TLS::Context>
      tls_ctx,\n                                std::shared_ptr<Logger> logger)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: as_default_on
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: tcp::acceptor
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: auto::open
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: tcp::endpoint::protocol
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: auto::set_option
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: auto::bind
      Src: /src/botan/src/cli/tls_http_server.cpp:300,1
    - Dst: auto::listen
      Src: /src/botan/src/cli/tls_http_server.cpp:301,1
    - Dst: std::shared_ptr<Logger>::log
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: tcp::endpoint::address
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: tcp::endpoint::port
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: std::shared_ptr<Logger>::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:309,1
    - Dst: done
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: auto::get_executor
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: Botan_CLI::do_session
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: tcp_stream
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: auto::async_accept
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: Botan_CLI::make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - endpoint
    - tls_ctx
    - max_clients
    - logger
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<Botan::TLS::Context>
    - size_t
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 324
    functionName: Botan_CLI::do_listen
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::make_final_completion_handler
    - tcp::endpoint::protocol
    - Botan::fmt
    - std::shared_ptr<Logger>::flush
    - boost::asio::co_spawn
    - Botan_CLI::do_session
    - tcp::acceptor
    - tcp::endpoint::port
    - auto::listen
    - auto::async_accept
    - as_default_on
    - net::socket_base::reuse_address
    - std::shared_ptr<Logger>::log
    - auto::set_option
    - done
    - auto::get_executor
    - tcp_stream
    - tcp::endpoint::address
    - auto::bind
    - auto::open
    linkageType: ''
    returnType: net::awaitable<void>
    signature: "net::awaitable<void> do_listen(tcp::endpoint endpoint,\n                               std::shared_ptr<Botan::TLS::Context>
      tls_ctx,\n                               size_t max_clients,\n                               std::shared_ptr<Logger>
      logger)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: Botan_CLI::TLS_HTTP_Server::TLS_HTTP_Server
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_HTTP_Server()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    functionName: Botan_CLI::TLS_HTTP_Server::group
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 338
    functionName: Botan_CLI::TLS_HTTP_Server::description
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_http_server.cpp:341,1
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/cli/tls_http_server.cpp:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 350
    functionName: Botan_CLI::TLS_HTTP_Server::thread_count
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::OS::get_cpu_available
    linkageType: ''
    returnType: size_t
    signature: size_t thread_count() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_u16
      Src: /src/botan/src/cli/tls_http_server.cpp:353,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:355,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:356,1
    - Dst: Botan_CLI::TLS_HTTP_Server::thread_count
      Src: /src/botan/src/cli/tls_http_server.cpp:358,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_http_server.cpp:359,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_http_server.cpp:361,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_http_server.cpp:363,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:363,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:367,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_http_server.cpp:369,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:371,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/cli/tls_http_server.cpp:373,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:373,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/tls_http_server.cpp:375,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_http_server.cpp:380,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:380,1
    - Dst: std::make_shared<Logger>
      Src: /src/botan/src/cli/tls_http_server.cpp:383,1
    - Dst: output
      Src: /src/botan/src/cli/tls_http_server.cpp:383,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_http_server.cpp:383,1
    - Dst: static_cast<int>
      Src: /src/botan/src/cli/tls_http_server.cpp:385,1
    - Dst: net::ip::make_address
      Src: /src/botan/src/cli/tls_http_server.cpp:386,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:387,1
    - Dst: do_listen
      Src: /src/botan/src/cli/tls_http_server.cpp:389,1
    - Dst: std::enable_shared_from_this<Context>
      Src: /src/botan/src/cli/tls_http_server.cpp:390,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:390,1
    - Dst: make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:393,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tls_http_server.cpp:399,1
    - Dst: std::make_shared<std::thread>
      Src: /src/botan/src/cli/tls_http_server.cpp:399,1
    - Dst: net::io_context::run
      Src: /src/botan/src/cli/tls_http_server.cpp:399,1
    - Dst: net::io_context::run
      Src: /src/botan/src/cli/tls_http_server.cpp:402,1
    - Dst: join
      Src: /src/botan/src/cli/tls_http_server.cpp:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 407
    functionName: Botan_CLI::TLS_HTTP_Server::go
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - net::ip::make_address
    - net::io_context::run
    - get_arg_u16
    - std::make_shared<std::thread>
    - join
    - load_tls_policy
    - make_final_completion_handler
    - boost::asio::co_spawn
    - get_arg_sz
    - std::make_shared<Basic_Credentials_Manager>
    - std::string::empty
    - get_passphrase_arg
    - static_cast<int>
    - std::make_shared<Logger>
    - do_listen
    - rng_as_shared
    - get_arg
    - std::enable_shared_from_this<Context>
    - std::vector::push_back
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - output
    - error_output
    - CLI_Error_Unsupported
    - Botan_CLI::TLS_HTTP_Server::thread_count
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::format_time
      Src: /src/botan/src/cli/tls_http_server.cpp:72,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:72,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:74,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: Botan_CLI::Logger::timestamp
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 4
    functionsReached:
    - std::to_string
    - Botan::OS::format_time
    - std::time
    linkageType: ''
    returnType: std::string
    signature: std::string timestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' out'
    - ' err'
    argTypes:
    - std::ostream
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_CLI::Logger::Logger
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Logger(std::ostream& out, std::ostream& err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:83,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan_CLI::Logger::log
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::Logger::timestamp
    linkageType: ''
    returnType: void
    signature: void log(std::string_view out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:88,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Logger::error
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::Logger::timestamp
    linkageType: ''
    returnType: void
    signature: void error(std::string_view err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:93,1
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Logger::flush
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 3
    functionsReached:
    - Botan_CLI::Logger::flush
    linkageType: ''
    returnType: void
    signature: void flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/tls_http_server.cpp:108,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan::version_string
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:116,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:119,1
    - Dst: get
      Src: /src/botan/src/cli/tls_http_server.cpp:119,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:121,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:122,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - server_info
    - ciphersuite
    - version
    - get
    - std::ostringstream::str
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/cli/tls_http_server.cpp:129,1
    - Dst: dynamic_cast<const Botan::TLS::Client_Hello&>
      Src: /src/botan/src/cli/tls_http_server.cpp:130,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:134,1
    - Dst: random
      Src: /src/botan/src/cli/tls_http_server.cpp:134,1
    - Dst: ciphersuites
      Src: /src/botan/src/cli/tls_http_server.cpp:137,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_http_server.cpp:138,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:140,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:140,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:141,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:141,1
    - Dst: auto::valid
      Src: /src/botan/src/cli/tls_http_server.cpp:143,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:144,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 154
    functionName: Botan_CLI::TlsHttpCallbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const Botan::TLS::Client_Hello&>
    - Botan::hex_encode
    - auto::valid
    - std::ostringstream::str
    - Botan::TLS::Ciphersuite::by_id
    - std::setw
    - std::setfill
    - random
    - auto::to_string
    - type
    - ciphersuites
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Botan::TLS::Handshake_Message&
      message) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: Botan_CLI::TlsHttpCallbacks::summary
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::string
    signature: std::string summary() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:171,1
    - Dst: address
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: std::distance
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: end
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: name_string
      Src: /src/botan/src/cli/tls_http_server.cpp:179,1
    - Dst: value
      Src: /src/botan/src/cli/tls_http_server.cpp:179,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' tls_stream'
    - ' req'
    argTypes:
    - Botan::TLS::Stream<tcp_stream>
    - http::request<http::string_body>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: Botan_CLI::summarize_request
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 2
    functionsReached:
    - next_layer
    - address
    - std::distance
    - begin
    - name_string
    - end
    - std::ostringstream::str
    - method_string
    - value
    - target
    linkageType: ''
    returnType: std::string
    signature: "std::string summarize_request(const Botan::TLS::Stream<tcp_stream>&
      tls_stream,\n                              const http::request<http::string_body>&
      req)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_http_server.cpp:190,1
    - Dst: error
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    - Dst: what
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' logger'
    - ' context'
    argTypes:
    - std::shared_ptr<Logger>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: Botan_CLI::make_final_completion_handler
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 2
    functionsReached:
    - error
    - Botan::fmt
    - std::move
    - std::rethrow_exception
    - what
    linkageType: ''
    returnType: auto
    signature: auto make_final_completion_handler(const std::shared_ptr<Logger>& logger,
      const std::string& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: method
      Src: /src/botan/src/cli/tls_http_server.cpp:205,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: summary
      Src: /src/botan/src/cli/tls_http_server.cpp:208,1
    - Dst: Botan_CLI::summarize_request
      Src: /src/botan/src/cli/tls_http_server.cpp:208,1
    - Dst: std::make_shared<http::response<http::string_body>>
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: auto::body
      Src: /src/botan/src/cli/tls_http_server.cpp:215,1
    - Dst: auto::set
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:217,1
    - Dst: keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:217,1
    - Dst: auto::prepare_payload
      Src: /src/botan/src/cli/tls_http_server.cpp:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ' req'
    - ' callbacks'
    - ' tls_stream'
    - ' logger'
    argTypes:
    - http::request<http::string_body>
    - std::shared_ptr<TlsHttpCallbacks>
    - Botan::TLS::Stream<tcp_stream>
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: Botan_CLI::handle_response
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::fmt
    - auto::prepare_payload
    - method
    - std::make_shared<http::response<http::string_body>>
    - auto::keep_alive
    - version
    - keep_alive
    - auto::set
    - log
    - Botan_CLI::summarize_request
    - method_string
    - auto::body
    - target
    - summary
    linkageType: ''
    returnType: std::shared_ptr<http::response<http::string_body>>
    signature: "std::shared_ptr<http::response<http::string_body>> handle_response(const
      http::request<http::string_body>& req,\n                                                                   const
      std::shared_ptr<TlsHttpCallbacks>& callbacks,\n                                                                   const
      Botan::TLS::Stream<tcp_stream>& tls_stream,\n                                                                   const
      std::shared_ptr<Logger>& logger)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<TlsHttpCallbacks>
      Src: /src/botan/src/cli/tls_http_server.cpp:230,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_handshake
      Src: /src/botan/src/cli/tls_http_server.cpp:237,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:241,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/tls_http_server.cpp:241,1
    - Dst: http::async_read
      Src: /src/botan/src/cli/tls_http_server.cpp:245,1
    - Dst: Botan_CLI::handle_response
      Src: /src/botan/src/cli/tls_http_server.cpp:248,1
    - Dst: http::async_write
      Src: /src/botan/src/cli/tls_http_server.cpp:251,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:254,1
    - Dst: code
      Src: /src/botan/src/cli/tls_http_server.cpp:261,1
    - Dst: std::current_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:265,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_shutdown
      Src: /src/botan/src/cli/tls_http_server.cpp:273,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:274,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - stream
    - tls_ctx
    - logger
    argTypes:
    - tcp_stream
    - std::shared_ptr<Botan::TLS::Context>
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 291
    functionName: Botan_CLI::do_session
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 2
    functionsReached:
    - code
    - std::make_shared<TlsHttpCallbacks>
    - auto::keep_alive
    - Botan::TLS::Stream<tcp_stream>::next_layer
    - Botan::TLS::Stream<tcp_stream>::async_handshake
    - std::current_exception
    - std::rethrow_exception
    - Botan_CLI::Timer::seconds
    - http::async_write
    - Botan::TLS::Stream<tcp_stream>::async_shutdown
    - Botan_CLI::handle_response
    - http::async_read
    linkageType: ''
    returnType: net::awaitable<void>
    signature: "net::awaitable<void> do_session(tcp_stream stream,\n                                std::shared_ptr<Botan::TLS::Context>
      tls_ctx,\n                                std::shared_ptr<Logger> logger)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: as_default_on
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: tcp::acceptor
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: auto::open
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: tcp::endpoint::protocol
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: auto::set_option
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: auto::bind
      Src: /src/botan/src/cli/tls_http_server.cpp:300,1
    - Dst: auto::listen
      Src: /src/botan/src/cli/tls_http_server.cpp:301,1
    - Dst: std::shared_ptr<Logger>::log
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: tcp::endpoint::address
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: tcp::endpoint::port
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: std::shared_ptr<Logger>::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:309,1
    - Dst: done
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: auto::get_executor
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: Botan_CLI::do_session
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: tcp_stream
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: auto::async_accept
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: Botan_CLI::make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - endpoint
    - tls_ctx
    - max_clients
    - logger
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<Botan::TLS::Context>
    - size_t
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 324
    functionName: Botan_CLI::do_listen
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::make_final_completion_handler
    - tcp::endpoint::protocol
    - Botan::fmt
    - std::shared_ptr<Logger>::flush
    - boost::asio::co_spawn
    - Botan_CLI::do_session
    - tcp::acceptor
    - tcp::endpoint::port
    - auto::listen
    - auto::async_accept
    - as_default_on
    - net::socket_base::reuse_address
    - std::shared_ptr<Logger>::log
    - auto::set_option
    - done
    - auto::get_executor
    - tcp_stream
    - tcp::endpoint::address
    - auto::bind
    - auto::open
    linkageType: ''
    returnType: net::awaitable<void>
    signature: "net::awaitable<void> do_listen(tcp::endpoint endpoint,\n                               std::shared_ptr<Botan::TLS::Context>
      tls_ctx,\n                               size_t max_clients,\n                               std::shared_ptr<Logger>
      logger)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::format_time
      Src: /src/botan/src/cli/tls_http_server.cpp:72,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:72,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:74,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: Botan_CLI::Logger::timestamp
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 6
    functionsReached:
    - std::to_string
    - Botan::OS::format_time
    - std::time
    linkageType: ''
    returnType: std::string
    signature: std::string timestamp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' out'
    - ' err'
    argTypes:
    - std::ostream
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_CLI::Logger::Logger
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Logger(std::ostream& out, std::ostream& err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:83,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan_CLI::Logger::log
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::Logger::timestamp
    linkageType: ''
    returnType: void
    signature: void log(std::string_view out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:88,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Logger::error
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::Logger::timestamp
    linkageType: ''
    returnType: void
    signature: void error(std::string_view err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:93,1
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Logger::flush
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::Logger::flush
    linkageType: ''
    returnType: void
    signature: void flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/tls_http_server.cpp:108,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan::version_string
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:116,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:119,1
    - Dst: get
      Src: /src/botan/src/cli/tls_http_server.cpp:119,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:121,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:122,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - server_info
    - ciphersuite
    - version
    - get
    - std::ostringstream::str
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/cli/tls_http_server.cpp:129,1
    - Dst: dynamic_cast<const Botan::TLS::Client_Hello&>
      Src: /src/botan/src/cli/tls_http_server.cpp:130,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:134,1
    - Dst: random
      Src: /src/botan/src/cli/tls_http_server.cpp:134,1
    - Dst: ciphersuites
      Src: /src/botan/src/cli/tls_http_server.cpp:137,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_http_server.cpp:138,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:140,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:140,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:141,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:141,1
    - Dst: auto::valid
      Src: /src/botan/src/cli/tls_http_server.cpp:143,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:144,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 154
    functionName: Botan_CLI::TlsHttpCallbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const Botan::TLS::Client_Hello&>
    - Botan::hex_encode
    - auto::valid
    - std::ostringstream::str
    - Botan::TLS::Ciphersuite::by_id
    - std::setw
    - std::setfill
    - random
    - auto::to_string
    - type
    - ciphersuites
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Botan::TLS::Handshake_Message&
      message) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: Botan_CLI::TlsHttpCallbacks::summary
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::string
    signature: std::string summary() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:171,1
    - Dst: address
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:173,1
    - Dst: std::distance
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: end
      Src: /src/botan/src/cli/tls_http_server.cpp:176,1
    - Dst: name_string
      Src: /src/botan/src/cli/tls_http_server.cpp:179,1
    - Dst: value
      Src: /src/botan/src/cli/tls_http_server.cpp:179,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' tls_stream'
    - ' req'
    argTypes:
    - Botan::TLS::Stream<tcp_stream>
    - http::request<http::string_body>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: Botan_CLI::summarize_request
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 3
    functionsReached:
    - next_layer
    - address
    - std::distance
    - begin
    - name_string
    - end
    - std::ostringstream::str
    - method_string
    - value
    - target
    linkageType: ''
    returnType: std::string
    signature: "std::string summarize_request(const Botan::TLS::Stream<tcp_stream>&
      tls_stream,\n                              const http::request<http::string_body>&
      req)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_http_server.cpp:190,1
    - Dst: error
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    - Dst: what
      Src: /src/botan/src/cli/tls_http_server.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' logger'
    - ' context'
    argTypes:
    - std::shared_ptr<Logger>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: Botan_CLI::make_final_completion_handler
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 3
    functionsReached:
    - error
    - Botan::fmt
    - std::move
    - std::rethrow_exception
    - what
    linkageType: ''
    returnType: auto
    signature: auto make_final_completion_handler(const std::shared_ptr<Logger>& logger,
      const std::string& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:202,1
    - Dst: method
      Src: /src/botan/src/cli/tls_http_server.cpp:205,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: summary
      Src: /src/botan/src/cli/tls_http_server.cpp:208,1
    - Dst: Botan_CLI::summarize_request
      Src: /src/botan/src/cli/tls_http_server.cpp:208,1
    - Dst: std::make_shared<http::response<http::string_body>>
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: auto::body
      Src: /src/botan/src/cli/tls_http_server.cpp:215,1
    - Dst: auto::set
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:217,1
    - Dst: keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:217,1
    - Dst: auto::prepare_payload
      Src: /src/botan/src/cli/tls_http_server.cpp:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ' req'
    - ' callbacks'
    - ' tls_stream'
    - ' logger'
    argTypes:
    - http::request<http::string_body>
    - std::shared_ptr<TlsHttpCallbacks>
    - Botan::TLS::Stream<tcp_stream>
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: Botan_CLI::handle_response
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 3
    functionsReached:
    - Botan::fmt
    - auto::prepare_payload
    - method
    - std::make_shared<http::response<http::string_body>>
    - auto::keep_alive
    - version
    - keep_alive
    - auto::set
    - log
    - Botan_CLI::summarize_request
    - method_string
    - auto::body
    - target
    - summary
    linkageType: ''
    returnType: std::shared_ptr<http::response<http::string_body>>
    signature: "std::shared_ptr<http::response<http::string_body>> handle_response(const
      http::request<http::string_body>& req,\n                                                                   const
      std::shared_ptr<TlsHttpCallbacks>& callbacks,\n                                                                   const
      Botan::TLS::Stream<tcp_stream>& tls_stream,\n                                                                   const
      std::shared_ptr<Logger>& logger)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<TlsHttpCallbacks>
      Src: /src/botan/src/cli/tls_http_server.cpp:230,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_handshake
      Src: /src/botan/src/cli/tls_http_server.cpp:237,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:241,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/tls_http_server.cpp:241,1
    - Dst: http::async_read
      Src: /src/botan/src/cli/tls_http_server.cpp:245,1
    - Dst: Botan_CLI::handle_response
      Src: /src/botan/src/cli/tls_http_server.cpp:248,1
    - Dst: http::async_write
      Src: /src/botan/src/cli/tls_http_server.cpp:251,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:254,1
    - Dst: code
      Src: /src/botan/src/cli/tls_http_server.cpp:261,1
    - Dst: std::current_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:265,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_shutdown
      Src: /src/botan/src/cli/tls_http_server.cpp:273,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:274,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - stream
    - tls_ctx
    - logger
    argTypes:
    - tcp_stream
    - std::shared_ptr<Botan::TLS::Context>
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 291
    functionName: Botan_CLI::do_session
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 3
    functionsReached:
    - code
    - std::make_shared<TlsHttpCallbacks>
    - auto::keep_alive
    - Botan::TLS::Stream<tcp_stream>::next_layer
    - Botan::TLS::Stream<tcp_stream>::async_handshake
    - std::current_exception
    - std::rethrow_exception
    - Botan_CLI::Timer::seconds
    - http::async_write
    - Botan::TLS::Stream<tcp_stream>::async_shutdown
    - Botan_CLI::handle_response
    - http::async_read
    linkageType: ''
    returnType: net::awaitable<void>
    signature: "net::awaitable<void> do_session(tcp_stream stream,\n                                std::shared_ptr<Botan::TLS::Context>
      tls_ctx,\n                                std::shared_ptr<Logger> logger)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: as_default_on
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: tcp::acceptor
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: auto::open
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: tcp::endpoint::protocol
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: auto::set_option
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: auto::bind
      Src: /src/botan/src/cli/tls_http_server.cpp:300,1
    - Dst: auto::listen
      Src: /src/botan/src/cli/tls_http_server.cpp:301,1
    - Dst: std::shared_ptr<Logger>::log
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: tcp::endpoint::address
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: tcp::endpoint::port
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: std::shared_ptr<Logger>::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:309,1
    - Dst: done
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: auto::get_executor
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: Botan_CLI::do_session
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: tcp_stream
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: auto::async_accept
      Src: /src/botan/src/cli/tls_http_server.cpp:321,1
    - Dst: Botan_CLI::make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - endpoint
    - tls_ctx
    - max_clients
    - logger
    argTypes:
    - tcp::endpoint
    - std::shared_ptr<Botan::TLS::Context>
    - size_t
    - std::shared_ptr<Logger>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 324
    functionName: Botan_CLI::do_listen
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::make_final_completion_handler
    - tcp::endpoint::protocol
    - Botan::fmt
    - std::shared_ptr<Logger>::flush
    - boost::asio::co_spawn
    - Botan_CLI::do_session
    - tcp::acceptor
    - tcp::endpoint::port
    - auto::listen
    - auto::async_accept
    - as_default_on
    - net::socket_base::reuse_address
    - std::shared_ptr<Logger>::log
    - auto::set_option
    - done
    - auto::get_executor
    - tcp_stream
    - tcp::endpoint::address
    - auto::bind
    - auto::open
    linkageType: ''
    returnType: net::awaitable<void>
    signature: "net::awaitable<void> do_listen(tcp::endpoint endpoint,\n                               std::shared_ptr<Botan::TLS::Context>
      tls_ctx,\n                               size_t max_clients,\n                               std::shared_ptr<Logger>
      logger)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: Botan_CLI::TLS_HTTP_Server::TLS_HTTP_Server
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_HTTP_Server()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    functionName: Botan_CLI::TLS_HTTP_Server::group
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 338
    functionName: Botan_CLI::TLS_HTTP_Server::description
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_http_server.cpp:341,1
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/cli/tls_http_server.cpp:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 350
    functionName: Botan_CLI::TLS_HTTP_Server::thread_count
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 1
    functionsReached:
    - get_arg_sz
    - Botan::OS::get_cpu_available
    linkageType: ''
    returnType: size_t
    signature: size_t thread_count() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_u16
      Src: /src/botan/src/cli/tls_http_server.cpp:353,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:355,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:356,1
    - Dst: Botan_CLI::TLS_HTTP_Server::thread_count
      Src: /src/botan/src/cli/tls_http_server.cpp:358,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_http_server.cpp:359,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_http_server.cpp:361,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_http_server.cpp:363,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:363,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:367,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_http_server.cpp:369,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:371,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/cli/tls_http_server.cpp:373,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:373,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/tls_http_server.cpp:375,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_http_server.cpp:380,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:380,1
    - Dst: std::make_shared<Logger>
      Src: /src/botan/src/cli/tls_http_server.cpp:383,1
    - Dst: output
      Src: /src/botan/src/cli/tls_http_server.cpp:383,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_http_server.cpp:383,1
    - Dst: static_cast<int>
      Src: /src/botan/src/cli/tls_http_server.cpp:385,1
    - Dst: net::ip::make_address
      Src: /src/botan/src/cli/tls_http_server.cpp:386,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:387,1
    - Dst: do_listen
      Src: /src/botan/src/cli/tls_http_server.cpp:389,1
    - Dst: std::enable_shared_from_this<Context>
      Src: /src/botan/src/cli/tls_http_server.cpp:390,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:390,1
    - Dst: make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:393,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tls_http_server.cpp:399,1
    - Dst: std::make_shared<std::thread>
      Src: /src/botan/src/cli/tls_http_server.cpp:399,1
    - Dst: net::io_context::run
      Src: /src/botan/src/cli/tls_http_server.cpp:399,1
    - Dst: net::io_context::run
      Src: /src/botan/src/cli/tls_http_server.cpp:402,1
    - Dst: join
      Src: /src/botan/src/cli/tls_http_server.cpp:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 407
    functionName: Botan_CLI::TLS_HTTP_Server::go
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - net::ip::make_address
    - net::io_context::run
    - get_arg_u16
    - std::make_shared<std::thread>
    - join
    - load_tls_policy
    - make_final_completion_handler
    - boost::asio::co_spawn
    - get_arg_sz
    - std::make_shared<Basic_Credentials_Manager>
    - std::string::empty
    - get_passphrase_arg
    - static_cast<int>
    - std::make_shared<Logger>
    - do_listen
    - rng_as_shared
    - get_arg
    - std::enable_shared_from_this<Context>
    - std::vector::push_back
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - output
    - error_output
    - CLI_Error_Unsupported
    - Botan_CLI::TLS_HTTP_Server::thread_count
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Generate_Bcrypt::Generate_Bcrypt
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_Bcrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Generate_Bcrypt::group
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Generate_Bcrypt::description
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/bcrypt.cpp:28,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/bcrypt.cpp:29,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:32,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/bcrypt.cpp:34,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    - Dst: rng
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Generate_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - static_cast<uint16_t>
    - get_passphrase_arg
    - output
    - error_output
    - Botan::generate_bcrypt
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::Check_Bcrypt::Check_Bcrypt
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Check_Bcrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::Check_Bcrypt::group
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_CLI::Check_Bcrypt::description
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/bcrypt.cpp:51,1
    - Dst: get_arg
      Src: /src/botan/src/cli/bcrypt.cpp:52,1
    - Dst: std::string::length
      Src: /src/botan/src/cli/bcrypt.cpp:54,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:55,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:58,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:60,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/bcrypt.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: Botan_CLI::Check_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::check_bcrypt
    - set_return_code
    - get_passphrase_arg
    - get_arg
    - output
    - error_output
    - std::string::length
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Generate_Bcrypt::Generate_Bcrypt
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_Bcrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Generate_Bcrypt::group
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Generate_Bcrypt::description
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/bcrypt.cpp:28,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/bcrypt.cpp:29,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:32,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/bcrypt.cpp:34,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    - Dst: rng
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Generate_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - static_cast<uint16_t>
    - get_passphrase_arg
    - output
    - error_output
    - Botan::generate_bcrypt
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::Check_Bcrypt::Check_Bcrypt
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Check_Bcrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::Check_Bcrypt::group
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_CLI::Check_Bcrypt::description
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/bcrypt.cpp:51,1
    - Dst: get_arg
      Src: /src/botan/src/cli/bcrypt.cpp:52,1
    - Dst: std::string::length
      Src: /src/botan/src/cli/bcrypt.cpp:54,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:55,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:58,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:60,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/bcrypt.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: Botan_CLI::Check_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::check_bcrypt
    - set_return_code
    - get_passphrase_arg
    - get_arg
    - output
    - error_output
    - std::string::length
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Generate_Bcrypt::Generate_Bcrypt
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_Bcrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Generate_Bcrypt::group
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Generate_Bcrypt::description
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/bcrypt.cpp:28,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/bcrypt.cpp:29,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:32,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/bcrypt.cpp:34,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    - Dst: rng
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Generate_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - static_cast<uint16_t>
    - get_passphrase_arg
    - output
    - error_output
    - Botan::generate_bcrypt
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::Check_Bcrypt::Check_Bcrypt
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Check_Bcrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::Check_Bcrypt::group
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_CLI::Check_Bcrypt::description
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/bcrypt.cpp:51,1
    - Dst: get_arg
      Src: /src/botan/src/cli/bcrypt.cpp:52,1
    - Dst: std::string::length
      Src: /src/botan/src/cli/bcrypt.cpp:54,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:55,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:58,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:60,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/bcrypt.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: Botan_CLI::Check_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::check_bcrypt
    - set_return_code
    - get_passphrase_arg
    - get_arg
    - output
    - error_output
    - std::string::length
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Generate_Bcrypt::Generate_Bcrypt
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_Bcrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Generate_Bcrypt::group
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Generate_Bcrypt::description
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/bcrypt.cpp:28,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/bcrypt.cpp:29,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:32,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/bcrypt.cpp:34,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    - Dst: rng
      Src: /src/botan/src/cli/bcrypt.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Generate_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - static_cast<uint16_t>
    - get_passphrase_arg
    - output
    - error_output
    - Botan::generate_bcrypt
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::Check_Bcrypt::Check_Bcrypt
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Check_Bcrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::Check_Bcrypt::group
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_CLI::Check_Bcrypt::description
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/bcrypt.cpp:51,1
    - Dst: get_arg
      Src: /src/botan/src/cli/bcrypt.cpp:52,1
    - Dst: std::string::length
      Src: /src/botan/src/cli/bcrypt.cpp:54,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:55,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:58,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:60,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/bcrypt.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: Botan_CLI::Check_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::check_bcrypt
    - set_return_code
    - get_passphrase_arg
    - get_arg
    - output
    - error_output
    - std::string::length
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:38,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:38,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: Botan_CLI::PerfTest_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_timer
    - static_cast<uint16_t>
    - record_result
    - Botan::generate_bcrypt
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/cli/perf_pwdhash.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:64,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:64,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:66,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: Botan_CLI::PerfTest_Passhash9::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::is_passhash9_alg_supported
    - make_timer
    - record_result
    - Botan::generate_passhash9
    - rng
    - auto::run
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/cli/perf_pwdhash.cpp:84,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:89,1
    - Dst: auto::total_memory_usage
      Src: /src/botan/src/cli/perf_pwdhash.cpp:91,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:92,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:92,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:96,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:98,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:100,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:101,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:102,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_pwdhash.cpp:103,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:107,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_pwdhash.cpp:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 115
    functionName: Botan_CLI::PerfTest_Scrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::total_memory_usage
    - Botan::fmt
    - runtime
    - auto::events
    - make_timer
    - record_result
    - auto::derive_key
    - auto::under
    - Botan::PasswordHashFamily::create_or_throw
    - std::memcpy
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:132,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:134,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:134,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:137,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:140,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:144,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:145,1
    - Dst: auto::hash
      Src: /src/botan/src/cli/perf_pwdhash.cpp:146,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: std::array::data
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: std::array::data
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 154
    functionName: Botan_CLI::PerfTest_PBKDF2::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - Botan::fmt
    - runtime
    - auto::hash
    - make_timer
    - record_result
    - Botan::PasswordHashFamily::create
    - auto::under
    - std::memcpy
    - std::array::data
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/cli/perf_pwdhash.cpp:166,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:168,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:173,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:174,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/perf_pwdhash.cpp:174,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:178,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:180,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:181,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:181,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: Botan_CLI::PerfTest_Argon2::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - runtime
    - make_timer
    - record_result
    - auto::derive_key
    - auto::under
    - Botan::PasswordHashFamily::create_or_throw
    - rng
    - auto::run
    - auto::to_string
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:38,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:38,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: Botan_CLI::PerfTest_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_timer
    - static_cast<uint16_t>
    - record_result
    - Botan::generate_bcrypt
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/cli/perf_pwdhash.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:64,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:64,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:66,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: Botan_CLI::PerfTest_Passhash9::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::is_passhash9_alg_supported
    - make_timer
    - record_result
    - Botan::generate_passhash9
    - rng
    - auto::run
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/cli/perf_pwdhash.cpp:84,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:89,1
    - Dst: auto::total_memory_usage
      Src: /src/botan/src/cli/perf_pwdhash.cpp:91,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:92,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:92,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:96,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:98,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:100,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:101,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:102,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_pwdhash.cpp:103,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:107,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_pwdhash.cpp:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 115
    functionName: Botan_CLI::PerfTest_Scrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::total_memory_usage
    - Botan::fmt
    - runtime
    - auto::events
    - make_timer
    - record_result
    - auto::derive_key
    - auto::under
    - Botan::PasswordHashFamily::create_or_throw
    - std::memcpy
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:132,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:134,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:134,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:137,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:140,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:144,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:145,1
    - Dst: auto::hash
      Src: /src/botan/src/cli/perf_pwdhash.cpp:146,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: std::array::data
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: std::array::data
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 154
    functionName: Botan_CLI::PerfTest_PBKDF2::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - Botan::fmt
    - runtime
    - auto::hash
    - make_timer
    - record_result
    - Botan::PasswordHashFamily::create
    - auto::under
    - std::memcpy
    - std::array::data
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/cli/perf_pwdhash.cpp:166,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:168,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:173,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:174,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/perf_pwdhash.cpp:174,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:178,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:180,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:181,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:181,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: Botan_CLI::PerfTest_Argon2::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - runtime
    - make_timer
    - record_result
    - auto::derive_key
    - auto::under
    - Botan::PasswordHashFamily::create_or_throw
    - rng
    - auto::run
    - auto::to_string
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:38,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:38,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: Botan_CLI::PerfTest_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_timer
    - static_cast<uint16_t>
    - record_result
    - Botan::generate_bcrypt
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/cli/perf_pwdhash.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:64,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:64,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:66,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: Botan_CLI::PerfTest_Passhash9::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::is_passhash9_alg_supported
    - make_timer
    - record_result
    - Botan::generate_passhash9
    - rng
    - auto::run
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/cli/perf_pwdhash.cpp:84,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:89,1
    - Dst: auto::total_memory_usage
      Src: /src/botan/src/cli/perf_pwdhash.cpp:91,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:92,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:92,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:96,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:98,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:100,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:101,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:102,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_pwdhash.cpp:103,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:107,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_pwdhash.cpp:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 115
    functionName: Botan_CLI::PerfTest_Scrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::total_memory_usage
    - Botan::fmt
    - runtime
    - auto::events
    - make_timer
    - record_result
    - auto::derive_key
    - auto::under
    - Botan::PasswordHashFamily::create_or_throw
    - std::memcpy
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:132,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:134,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:134,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:137,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:140,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:144,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:145,1
    - Dst: auto::hash
      Src: /src/botan/src/cli/perf_pwdhash.cpp:146,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: std::array::data
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: std::array::data
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 154
    functionName: Botan_CLI::PerfTest_PBKDF2::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - Botan::fmt
    - runtime
    - auto::hash
    - make_timer
    - record_result
    - Botan::PasswordHashFamily::create
    - auto::under
    - std::memcpy
    - std::array::data
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/cli/perf_pwdhash.cpp:166,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:168,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:173,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:174,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/perf_pwdhash.cpp:174,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:178,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:180,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:181,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:181,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: Botan_CLI::PerfTest_Argon2::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - runtime
    - make_timer
    - record_result
    - auto::derive_key
    - auto::under
    - Botan::PasswordHashFamily::create_or_throw
    - rng
    - auto::run
    - auto::to_string
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:38,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:38,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:40,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: Botan_CLI::PerfTest_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - make_timer
    - static_cast<uint16_t>
    - record_result
    - Botan::generate_bcrypt
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_passhash9_alg_supported
      Src: /src/botan/src/cli/perf_pwdhash.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:64,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:64,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:66,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:67,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: Botan_CLI::PerfTest_Passhash9::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::is_passhash9_alg_supported
    - make_timer
    - record_result
    - Botan::generate_passhash9
    - rng
    - auto::run
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/cli/perf_pwdhash.cpp:84,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:89,1
    - Dst: auto::total_memory_usage
      Src: /src/botan/src/cli/perf_pwdhash.cpp:91,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:92,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:92,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:96,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:98,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:100,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:101,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:102,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_pwdhash.cpp:103,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:107,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_pwdhash.cpp:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 115
    functionName: Botan_CLI::PerfTest_Scrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::total_memory_usage
    - Botan::fmt
    - runtime
    - auto::events
    - make_timer
    - record_result
    - auto::derive_key
    - auto::under
    - Botan::PasswordHashFamily::create_or_throw
    - std::memcpy
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:132,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:134,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:134,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:137,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:140,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:144,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:145,1
    - Dst: auto::hash
      Src: /src/botan/src/cli/perf_pwdhash.cpp:146,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: std::array::data
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: std::array::data
      Src: /src/botan/src/cli/perf_pwdhash.cpp:147,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 154
    functionName: Botan_CLI::PerfTest_PBKDF2::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - Botan::fmt
    - runtime
    - auto::hash
    - make_timer
    - record_result
    - Botan::PasswordHashFamily::create
    - auto::under
    - std::memcpy
    - std::array::data
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/cli/perf_pwdhash.cpp:166,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:168,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:173,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:174,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/perf_pwdhash.cpp:174,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:178,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:180,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:181,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:181,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: Botan_CLI::PerfTest_Argon2::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - auto::from_params
    - runtime
    - make_timer
    - record_result
    - auto::derive_key
    - auto::under
    - Botan::PasswordHashFamily::create_or_throw
    - rng
    - auto::run
    - auto::to_string
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/x509.cpp:37,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/x509.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' key_file'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_file, const std::string& passphrase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stateful_operation
      Src: /src/botan/src/cli/x509.cpp:50,1
    - Dst: empty
      Src: /src/botan/src/cli/x509.cpp:55,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:56,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - ' key_file'
    - ' pass'
    argTypes:
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: Botan_CLI::update_stateful_private_key
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - stateful_operation
    - Botan::PKCS8::PEM_encode
    - empty
    linkageType: ''
    returnType: void
    signature: "void update_stateful_private_key(const Botan::Private_Key& key,\n
      \                                Botan::RandomNumberGenerator& rng,\n                                 const
      std::string& key_file,\n                                 const std::string&
      pass)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_CLI::Trust_Root_Info::Trust_Root_Info
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust_Root_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan_CLI::Trust_Root_Info::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_CLI::Trust_Root_Info::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::System_Certificate_Store::System_Certificate_Store
      Src: /src/botan/src/cli/x509.cpp:73,1
    - Dst: Botan::System_Certificate_Store::all_subjects
      Src: /src/botan/src/cli/x509.cpp:75,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:77,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:79,1
    - Dst: Botan::System_Certificate_Store::find_all_certs
      Src: /src/botan/src/cli/x509.cpp:84,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/x509.cpp:84,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:85,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:86,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:89,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:90,1
    - Dst: to_string
      Src: /src/botan/src/cli/x509.cpp:90,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:93,1
    - Dst: PEM_encode
      Src: /src/botan/src/cli/x509.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Trust_Root_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::System_Certificate_Store::System_Certificate_Store
    - to_string
    - flag_set
    - std::vector<uint8_t>
    - PEM_encode
    - Botan::System_Certificate_Store::find_all_certs
    - output
    - Botan::System_Certificate_Store::all_subjects
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: Botan_CLI::Sign_Cert::Sign_Cert
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign_Cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_CLI::Sign_Cert::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Sign_Cert::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:114,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:116,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:117,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:121,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:122,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:123,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:125,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:128,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:132,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:134,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:136,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:138,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:140,1
    - Dst: days
      Src: /src/botan/src/cli/x509.cpp:146,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:146,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:149,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:149,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:151,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Sign_Cert::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - update_stateful_private_key
    - rng
    - Botan::TLS::detail::AsyncBase::complete_now
    - auto::empty
    - Botan::X509_CA::sign_request
    - get_passphrase_arg
    - get_arg
    - Botan::X509_Certificate::PEM_encode
    - CLI_Usage_Error
    - output
    - days
    - load_private_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_CLI::Cert_Info::Cert_Info
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cert_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan_CLI::Cert_Info::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: Botan_CLI::Cert_Info::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file
      Src: /src/botan/src/cli/x509.cpp:166,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:166,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:170,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:175,1
    - Dst: Botan::X509_Certificate::to_string
      Src: /src/botan/src/cli/x509.cpp:175,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:178,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:178,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:181,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:182,1
    - Dst: Botan::X509_Certificate::fingerprint
      Src: /src/botan/src/cli/x509.cpp:182,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:185,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:186,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 190
    functionName: Botan_CLI::Cert_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - slurp_file
    - Botan::X509_Certificate::fingerprint
    - flag_set
    - Botan::X509_Certificate::to_string
    - Botan::DataSource_Memory::end_of_data
    - get_arg
    - output
    - what
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan_CLI::OCSP_Check::OCSP_Check
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSP_Check()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: Botan_CLI::OCSP_Check::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan_CLI::OCSP_Check::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:208,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:209,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:210,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:212,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:213,1
    - Dst: Botan::OCSP::online_check
      Src: /src/botan/src/cli/x509.cpp:214,1
    - Dst: Botan::OCSP::Response::status_for
      Src: /src/botan/src/cli/x509.cpp:216,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:216,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:219,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:221,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/cli/x509.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 223
    functionName: Botan_CLI::OCSP_Check::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::OCSP::online_check
    - Botan::Path_Validation_Result::status_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::OCSP::Response::status_for
    - get_arg
    - output
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: Botan_CLI::Cert_Verify::Cert_Verify
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cert_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: Botan_CLI::Cert_Verify::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: Botan_CLI::Cert_Verify::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:241,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:242,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/x509.cpp:244,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:245,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/x509.cpp:245,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/cli/x509.cpp:248,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/cli/x509.cpp:250,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/cli/x509.cpp:252,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:253,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:255,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/x509.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: Botan_CLI::Cert_Verify::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::x509_path_validate
    - get_arg_list
    - get_arg
    - Botan::X509_Certificate
    - Botan::Path_Validation_Result::successful_validation
    - output
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: Botan_CLI::Gen_Self_Signed::Gen_Self_Signed
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_Self_Signed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: Botan_CLI::Gen_Self_Signed::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: Botan_CLI::Gen_Self_Signed::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:275,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:276,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:277,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/x509.cpp:279,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:279,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:283,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:284,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:285,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:286,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:287,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:287,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:288,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:292,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:293,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:294,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:296,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:299,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:303,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:304,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:307,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:308,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:308,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:312,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:312,1
    - Dst: Botan::X509_Certificate::BER_encode
      Src: /src/botan/src/cli/x509.cpp:315,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: auto::data
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: auto::size
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 320
    functionName: Botan_CLI::Gen_Self_Signed::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - update_stateful_private_key
    - static_cast<uint32_t>
    - auto::data
    - get_arg_sz
    - std::string::empty
    - auto::size
    - get_passphrase_arg
    - Botan::X509_Certificate::PEM_encode
    - load_private_key
    - Botan::X509_Cert_Options::CA_key
    - flag_set
    - auto::empty
    - Botan::X509_Certificate::BER_encode
    - get_arg
    - CLI_Usage_Error
    - Botan::X509_Cert_Options::set_padding_scheme
    - output
    - rng
    - Botan_CLI::Command::split_on
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: Botan_CLI::Generate_PKCS10::Generate_PKCS10
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_PKCS10()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 332
    functionName: Botan_CLI::Generate_PKCS10::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 334
    functionName: Botan_CLI::Generate_PKCS10::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:337,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:338,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:340,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/cli/x509.cpp:342,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:344,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:345,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:346,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:347,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:348,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:348,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:350,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:351,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:351,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:354,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:354,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/cli/x509.cpp:355,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:360,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:361,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:362,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:364,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:367,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:371,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:372,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:376,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:376,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:378,1
    - Dst: Botan::PKCS10_Request::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 379
    functionName: Botan_CLI::Generate_PKCS10::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::X509::create_cert_req
    - update_stateful_private_key
    - std::string::empty
    - rng
    - flag_set
    - auto::empty
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::PKCS10_Request::PEM_encode
    - get_passphrase_arg
    - get_arg
    - CLI_Usage_Error
    - output
    - load_private_key
    - Botan_CLI::Command::split_on
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::add_ex_constraint
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/x509.cpp:37,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/x509.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' key_file'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_file, const std::string& passphrase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stateful_operation
      Src: /src/botan/src/cli/x509.cpp:50,1
    - Dst: empty
      Src: /src/botan/src/cli/x509.cpp:55,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:56,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - ' key_file'
    - ' pass'
    argTypes:
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: Botan_CLI::update_stateful_private_key
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - stateful_operation
    - Botan::PKCS8::PEM_encode
    - empty
    linkageType: ''
    returnType: void
    signature: "void update_stateful_private_key(const Botan::Private_Key& key,\n
      \                                Botan::RandomNumberGenerator& rng,\n                                 const
      std::string& key_file,\n                                 const std::string&
      pass)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_CLI::Trust_Root_Info::Trust_Root_Info
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust_Root_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan_CLI::Trust_Root_Info::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_CLI::Trust_Root_Info::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::System_Certificate_Store::System_Certificate_Store
      Src: /src/botan/src/cli/x509.cpp:73,1
    - Dst: Botan::System_Certificate_Store::all_subjects
      Src: /src/botan/src/cli/x509.cpp:75,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:77,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:79,1
    - Dst: Botan::System_Certificate_Store::find_all_certs
      Src: /src/botan/src/cli/x509.cpp:84,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/x509.cpp:84,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:85,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:86,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:89,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:90,1
    - Dst: to_string
      Src: /src/botan/src/cli/x509.cpp:90,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:93,1
    - Dst: PEM_encode
      Src: /src/botan/src/cli/x509.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Trust_Root_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::System_Certificate_Store::System_Certificate_Store
    - to_string
    - flag_set
    - std::vector<uint8_t>
    - PEM_encode
    - Botan::System_Certificate_Store::find_all_certs
    - output
    - Botan::System_Certificate_Store::all_subjects
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: Botan_CLI::Sign_Cert::Sign_Cert
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign_Cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_CLI::Sign_Cert::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Sign_Cert::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:114,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:116,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:117,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:121,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:122,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:123,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:125,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:128,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:132,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:134,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:136,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:138,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:140,1
    - Dst: days
      Src: /src/botan/src/cli/x509.cpp:146,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:146,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:149,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:149,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:151,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Sign_Cert::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - update_stateful_private_key
    - rng
    - Botan::TLS::detail::AsyncBase::complete_now
    - auto::empty
    - Botan::X509_CA::sign_request
    - get_passphrase_arg
    - get_arg
    - Botan::X509_Certificate::PEM_encode
    - CLI_Usage_Error
    - output
    - days
    - load_private_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_CLI::Cert_Info::Cert_Info
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cert_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan_CLI::Cert_Info::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: Botan_CLI::Cert_Info::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file
      Src: /src/botan/src/cli/x509.cpp:166,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:166,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:170,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:175,1
    - Dst: Botan::X509_Certificate::to_string
      Src: /src/botan/src/cli/x509.cpp:175,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:178,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:178,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:181,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:182,1
    - Dst: Botan::X509_Certificate::fingerprint
      Src: /src/botan/src/cli/x509.cpp:182,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:185,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:186,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 190
    functionName: Botan_CLI::Cert_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - slurp_file
    - Botan::X509_Certificate::fingerprint
    - flag_set
    - Botan::X509_Certificate::to_string
    - Botan::DataSource_Memory::end_of_data
    - get_arg
    - output
    - what
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan_CLI::OCSP_Check::OCSP_Check
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSP_Check()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: Botan_CLI::OCSP_Check::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan_CLI::OCSP_Check::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:208,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:209,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:210,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:212,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:213,1
    - Dst: Botan::OCSP::online_check
      Src: /src/botan/src/cli/x509.cpp:214,1
    - Dst: Botan::OCSP::Response::status_for
      Src: /src/botan/src/cli/x509.cpp:216,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:216,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:219,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:221,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/cli/x509.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 223
    functionName: Botan_CLI::OCSP_Check::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::OCSP::online_check
    - Botan::Path_Validation_Result::status_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::OCSP::Response::status_for
    - get_arg
    - output
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: Botan_CLI::Cert_Verify::Cert_Verify
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cert_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: Botan_CLI::Cert_Verify::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: Botan_CLI::Cert_Verify::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:241,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:242,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/x509.cpp:244,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:245,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/x509.cpp:245,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/cli/x509.cpp:248,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/cli/x509.cpp:250,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/cli/x509.cpp:252,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:253,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:255,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/x509.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: Botan_CLI::Cert_Verify::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::x509_path_validate
    - get_arg_list
    - get_arg
    - Botan::X509_Certificate
    - Botan::Path_Validation_Result::successful_validation
    - output
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: Botan_CLI::Gen_Self_Signed::Gen_Self_Signed
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_Self_Signed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: Botan_CLI::Gen_Self_Signed::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: Botan_CLI::Gen_Self_Signed::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:275,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:276,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:277,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/x509.cpp:279,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:279,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:283,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:284,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:285,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:286,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:287,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:287,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:288,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:292,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:293,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:294,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:296,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:299,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:303,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:304,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:307,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:308,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:308,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:312,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:312,1
    - Dst: Botan::X509_Certificate::BER_encode
      Src: /src/botan/src/cli/x509.cpp:315,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: auto::data
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: auto::size
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 320
    functionName: Botan_CLI::Gen_Self_Signed::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - update_stateful_private_key
    - static_cast<uint32_t>
    - auto::data
    - get_arg_sz
    - std::string::empty
    - auto::size
    - get_passphrase_arg
    - Botan::X509_Certificate::PEM_encode
    - load_private_key
    - Botan::X509_Cert_Options::CA_key
    - flag_set
    - auto::empty
    - Botan::X509_Certificate::BER_encode
    - get_arg
    - CLI_Usage_Error
    - Botan::X509_Cert_Options::set_padding_scheme
    - output
    - rng
    - Botan_CLI::Command::split_on
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: Botan_CLI::Generate_PKCS10::Generate_PKCS10
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_PKCS10()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 332
    functionName: Botan_CLI::Generate_PKCS10::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 334
    functionName: Botan_CLI::Generate_PKCS10::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:337,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:338,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:340,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/cli/x509.cpp:342,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:344,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:345,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:346,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:347,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:348,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:348,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:350,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:351,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:351,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:354,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:354,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/cli/x509.cpp:355,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:360,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:361,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:362,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:364,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:367,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:371,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:372,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:376,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:376,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:378,1
    - Dst: Botan::PKCS10_Request::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 379
    functionName: Botan_CLI::Generate_PKCS10::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::X509::create_cert_req
    - update_stateful_private_key
    - std::string::empty
    - rng
    - flag_set
    - auto::empty
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::PKCS10_Request::PEM_encode
    - get_passphrase_arg
    - get_arg
    - CLI_Usage_Error
    - output
    - load_private_key
    - Botan_CLI::Command::split_on
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::add_ex_constraint
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/x509.cpp:37,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/x509.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' key_file'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_file, const std::string& passphrase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stateful_operation
      Src: /src/botan/src/cli/x509.cpp:50,1
    - Dst: empty
      Src: /src/botan/src/cli/x509.cpp:55,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:56,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - ' key_file'
    - ' pass'
    argTypes:
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: Botan_CLI::update_stateful_private_key
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - stateful_operation
    - Botan::PKCS8::PEM_encode
    - empty
    linkageType: ''
    returnType: void
    signature: "void update_stateful_private_key(const Botan::Private_Key& key,\n
      \                                Botan::RandomNumberGenerator& rng,\n                                 const
      std::string& key_file,\n                                 const std::string&
      pass)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_CLI::Trust_Root_Info::Trust_Root_Info
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust_Root_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan_CLI::Trust_Root_Info::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_CLI::Trust_Root_Info::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::System_Certificate_Store::System_Certificate_Store
      Src: /src/botan/src/cli/x509.cpp:73,1
    - Dst: Botan::System_Certificate_Store::all_subjects
      Src: /src/botan/src/cli/x509.cpp:75,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:77,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:79,1
    - Dst: Botan::System_Certificate_Store::find_all_certs
      Src: /src/botan/src/cli/x509.cpp:84,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/x509.cpp:84,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:85,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:86,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:89,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:90,1
    - Dst: to_string
      Src: /src/botan/src/cli/x509.cpp:90,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:93,1
    - Dst: PEM_encode
      Src: /src/botan/src/cli/x509.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Trust_Root_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::System_Certificate_Store::System_Certificate_Store
    - to_string
    - flag_set
    - std::vector<uint8_t>
    - PEM_encode
    - Botan::System_Certificate_Store::find_all_certs
    - output
    - Botan::System_Certificate_Store::all_subjects
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: Botan_CLI::Sign_Cert::Sign_Cert
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign_Cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_CLI::Sign_Cert::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Sign_Cert::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:114,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:116,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:117,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:121,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:122,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:123,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:125,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:128,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:132,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:134,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:136,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:138,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:140,1
    - Dst: days
      Src: /src/botan/src/cli/x509.cpp:146,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:146,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:149,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:149,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:151,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Sign_Cert::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - update_stateful_private_key
    - rng
    - Botan::TLS::detail::AsyncBase::complete_now
    - auto::empty
    - Botan::X509_CA::sign_request
    - get_passphrase_arg
    - get_arg
    - Botan::X509_Certificate::PEM_encode
    - CLI_Usage_Error
    - output
    - days
    - load_private_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_CLI::Cert_Info::Cert_Info
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cert_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan_CLI::Cert_Info::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: Botan_CLI::Cert_Info::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file
      Src: /src/botan/src/cli/x509.cpp:166,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:166,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:170,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:175,1
    - Dst: Botan::X509_Certificate::to_string
      Src: /src/botan/src/cli/x509.cpp:175,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:178,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:178,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:181,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:182,1
    - Dst: Botan::X509_Certificate::fingerprint
      Src: /src/botan/src/cli/x509.cpp:182,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:185,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:186,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 190
    functionName: Botan_CLI::Cert_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - slurp_file
    - Botan::X509_Certificate::fingerprint
    - flag_set
    - Botan::X509_Certificate::to_string
    - Botan::DataSource_Memory::end_of_data
    - get_arg
    - output
    - what
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan_CLI::OCSP_Check::OCSP_Check
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSP_Check()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: Botan_CLI::OCSP_Check::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan_CLI::OCSP_Check::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:208,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:209,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:210,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:212,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:213,1
    - Dst: Botan::OCSP::online_check
      Src: /src/botan/src/cli/x509.cpp:214,1
    - Dst: Botan::OCSP::Response::status_for
      Src: /src/botan/src/cli/x509.cpp:216,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:216,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:219,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:221,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/cli/x509.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 223
    functionName: Botan_CLI::OCSP_Check::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::OCSP::online_check
    - Botan::Path_Validation_Result::status_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::OCSP::Response::status_for
    - get_arg
    - output
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: Botan_CLI::Cert_Verify::Cert_Verify
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cert_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: Botan_CLI::Cert_Verify::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: Botan_CLI::Cert_Verify::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:241,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:242,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/x509.cpp:244,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:245,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/x509.cpp:245,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/cli/x509.cpp:248,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/cli/x509.cpp:250,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/cli/x509.cpp:252,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:253,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:255,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/x509.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: Botan_CLI::Cert_Verify::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::x509_path_validate
    - get_arg_list
    - get_arg
    - Botan::X509_Certificate
    - Botan::Path_Validation_Result::successful_validation
    - output
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: Botan_CLI::Gen_Self_Signed::Gen_Self_Signed
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_Self_Signed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: Botan_CLI::Gen_Self_Signed::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: Botan_CLI::Gen_Self_Signed::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:275,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:276,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:277,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/x509.cpp:279,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:279,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:283,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:284,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:285,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:286,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:287,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:287,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:288,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:292,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:293,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:294,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:296,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:299,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:303,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:304,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:307,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:308,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:308,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:312,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:312,1
    - Dst: Botan::X509_Certificate::BER_encode
      Src: /src/botan/src/cli/x509.cpp:315,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: auto::data
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: auto::size
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 320
    functionName: Botan_CLI::Gen_Self_Signed::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - update_stateful_private_key
    - static_cast<uint32_t>
    - auto::data
    - get_arg_sz
    - std::string::empty
    - auto::size
    - get_passphrase_arg
    - Botan::X509_Certificate::PEM_encode
    - load_private_key
    - Botan::X509_Cert_Options::CA_key
    - flag_set
    - auto::empty
    - Botan::X509_Certificate::BER_encode
    - get_arg
    - CLI_Usage_Error
    - Botan::X509_Cert_Options::set_padding_scheme
    - output
    - rng
    - Botan_CLI::Command::split_on
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: Botan_CLI::Generate_PKCS10::Generate_PKCS10
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_PKCS10()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 332
    functionName: Botan_CLI::Generate_PKCS10::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 334
    functionName: Botan_CLI::Generate_PKCS10::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:337,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:338,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:340,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/cli/x509.cpp:342,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:344,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:345,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:346,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:347,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:348,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:348,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:350,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:351,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:351,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:354,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:354,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/cli/x509.cpp:355,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:360,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:361,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:362,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:364,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:367,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:371,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:372,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:376,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:376,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:378,1
    - Dst: Botan::PKCS10_Request::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 379
    functionName: Botan_CLI::Generate_PKCS10::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::X509::create_cert_req
    - update_stateful_private_key
    - std::string::empty
    - rng
    - flag_set
    - auto::empty
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::PKCS10_Request::PEM_encode
    - get_passphrase_arg
    - get_arg
    - CLI_Usage_Error
    - output
    - load_private_key
    - Botan_CLI::Command::split_on
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::add_ex_constraint
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/x509.cpp:37,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/x509.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' key_file'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_file, const std::string& passphrase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stateful_operation
      Src: /src/botan/src/cli/x509.cpp:50,1
    - Dst: empty
      Src: /src/botan/src/cli/x509.cpp:55,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:56,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - ' key_file'
    - ' pass'
    argTypes:
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: Botan_CLI::update_stateful_private_key
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - stateful_operation
    - Botan::PKCS8::PEM_encode
    - empty
    linkageType: ''
    returnType: void
    signature: "void update_stateful_private_key(const Botan::Private_Key& key,\n
      \                                Botan::RandomNumberGenerator& rng,\n                                 const
      std::string& key_file,\n                                 const std::string&
      pass)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan_CLI::Trust_Root_Info::Trust_Root_Info
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust_Root_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan_CLI::Trust_Root_Info::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_CLI::Trust_Root_Info::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::System_Certificate_Store::System_Certificate_Store
      Src: /src/botan/src/cli/x509.cpp:73,1
    - Dst: Botan::System_Certificate_Store::all_subjects
      Src: /src/botan/src/cli/x509.cpp:75,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:77,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:79,1
    - Dst: Botan::System_Certificate_Store::find_all_certs
      Src: /src/botan/src/cli/x509.cpp:84,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/x509.cpp:84,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:85,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:86,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:89,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:90,1
    - Dst: to_string
      Src: /src/botan/src/cli/x509.cpp:90,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:93,1
    - Dst: PEM_encode
      Src: /src/botan/src/cli/x509.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Trust_Root_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::System_Certificate_Store::System_Certificate_Store
    - to_string
    - flag_set
    - std::vector<uint8_t>
    - PEM_encode
    - Botan::System_Certificate_Store::find_all_certs
    - output
    - Botan::System_Certificate_Store::all_subjects
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: Botan_CLI::Sign_Cert::Sign_Cert
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign_Cert()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan_CLI::Sign_Cert::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Sign_Cert::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:114,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:116,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:117,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:121,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:122,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:123,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:125,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:128,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:132,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:134,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:136,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:138,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:140,1
    - Dst: days
      Src: /src/botan/src/cli/x509.cpp:146,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:146,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:149,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:149,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:151,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Sign_Cert::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - update_stateful_private_key
    - rng
    - Botan::TLS::detail::AsyncBase::complete_now
    - auto::empty
    - Botan::X509_CA::sign_request
    - get_passphrase_arg
    - get_arg
    - Botan::X509_Certificate::PEM_encode
    - CLI_Usage_Error
    - output
    - days
    - load_private_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_CLI::Cert_Info::Cert_Info
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cert_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan_CLI::Cert_Info::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: Botan_CLI::Cert_Info::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file
      Src: /src/botan/src/cli/x509.cpp:166,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:166,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:170,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:175,1
    - Dst: Botan::X509_Certificate::to_string
      Src: /src/botan/src/cli/x509.cpp:175,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:178,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:178,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:181,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:182,1
    - Dst: Botan::X509_Certificate::fingerprint
      Src: /src/botan/src/cli/x509.cpp:182,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:185,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:186,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 190
    functionName: Botan_CLI::Cert_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - slurp_file
    - Botan::X509_Certificate::fingerprint
    - flag_set
    - Botan::X509_Certificate::to_string
    - Botan::DataSource_Memory::end_of_data
    - get_arg
    - output
    - what
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan_CLI::OCSP_Check::OCSP_Check
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSP_Check()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: Botan_CLI::OCSP_Check::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan_CLI::OCSP_Check::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:208,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:209,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:210,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:212,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:213,1
    - Dst: Botan::OCSP::online_check
      Src: /src/botan/src/cli/x509.cpp:214,1
    - Dst: Botan::OCSP::Response::status_for
      Src: /src/botan/src/cli/x509.cpp:216,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:216,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:219,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:221,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/cli/x509.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 223
    functionName: Botan_CLI::OCSP_Check::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::OCSP::online_check
    - Botan::Path_Validation_Result::status_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::OCSP::Response::status_for
    - get_arg
    - output
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: Botan_CLI::Cert_Verify::Cert_Verify
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cert_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: Botan_CLI::Cert_Verify::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: Botan_CLI::Cert_Verify::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:241,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:242,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/x509.cpp:244,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:245,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/x509.cpp:245,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/cli/x509.cpp:248,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/cli/x509.cpp:250,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/cli/x509.cpp:252,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:253,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:255,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/x509.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: Botan_CLI::Cert_Verify::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::x509_path_validate
    - get_arg_list
    - get_arg
    - Botan::X509_Certificate
    - Botan::Path_Validation_Result::successful_validation
    - output
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: Botan_CLI::Gen_Self_Signed::Gen_Self_Signed
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_Self_Signed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: Botan_CLI::Gen_Self_Signed::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: Botan_CLI::Gen_Self_Signed::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:275,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:276,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:277,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/x509.cpp:279,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:279,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:283,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:284,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:285,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:286,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:287,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:287,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:288,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:292,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:293,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:294,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:296,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:299,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:303,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:304,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:307,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:308,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:308,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:311,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:312,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:312,1
    - Dst: Botan::X509_Certificate::BER_encode
      Src: /src/botan/src/cli/x509.cpp:315,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: auto::data
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: auto::size
      Src: /src/botan/src/cli/x509.cpp:316,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 320
    functionName: Botan_CLI::Gen_Self_Signed::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - update_stateful_private_key
    - static_cast<uint32_t>
    - auto::data
    - get_arg_sz
    - std::string::empty
    - auto::size
    - get_passphrase_arg
    - Botan::X509_Certificate::PEM_encode
    - load_private_key
    - Botan::X509_Cert_Options::CA_key
    - flag_set
    - auto::empty
    - Botan::X509_Certificate::BER_encode
    - get_arg
    - CLI_Usage_Error
    - Botan::X509_Cert_Options::set_padding_scheme
    - output
    - rng
    - Botan_CLI::Command::split_on
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: Botan_CLI::Generate_PKCS10::Generate_PKCS10
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_PKCS10()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 332
    functionName: Botan_CLI::Generate_PKCS10::group
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 334
    functionName: Botan_CLI::Generate_PKCS10::description
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:337,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:338,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:340,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/cli/x509.cpp:342,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:344,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:345,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:346,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:347,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:348,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:348,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:350,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:351,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:351,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:354,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:354,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/cli/x509.cpp:355,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:360,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:361,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:362,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:364,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:367,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:371,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:372,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:375,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:376,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:376,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:378,1
    - Dst: Botan::PKCS10_Request::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 379
    functionName: Botan_CLI::Generate_PKCS10::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::X509::create_cert_req
    - update_stateful_private_key
    - std::string::empty
    - rng
    - flag_set
    - auto::empty
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::PKCS10_Request::PEM_encode
    - get_passphrase_arg
    - get_arg
    - CLI_Usage_Error
    - output
    - load_private_key
    - Botan_CLI::Command::split_on
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Cert_Options::add_ex_constraint
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::SeedCapturing_RNG::accepts_input
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::SeedCapturing_RNG::clear
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_CLI::SeedCapturing_RNG::is_seeded
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan_CLI::SeedCapturing_RNG::name
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_CLI::SeedCapturing_RNG::samples
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& seed_material() const'
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & seed_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/cli/entropy.cpp:41,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/entropy.cpp:42,1
    - Dst: insert
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: end
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/entropy.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: Botan_CLI::SeedCapturing_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - insert
    - std::span<const uint8_t>::begin
    - std::span<uint8_t>::empty
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_CLI::Entropy::Entropy
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Entropy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan_CLI::Entropy::group
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan_CLI::Entropy::description
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/entropy.cpp:63,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/entropy.cpp:64,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/cli/entropy.cpp:66,1
    - Dst: enabled_sources
      Src: /src/botan/src/cli/entropy.cpp:70,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/entropy.cpp:72,1
    - Dst: poll_just
      Src: /src/botan/src/cli/entropy.cpp:77,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:79,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:80,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/cli/entropy.cpp:84,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: empty
      Src: /src/botan/src/cli/entropy.cpp:90,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/cli/entropy.cpp:91,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: begin
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: end
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: auto::start
      Src: /src/botan/src/cli/entropy.cpp:96,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/entropy.cpp:97,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:99,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:100,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:100,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:101,1
    - Dst: error_output
      Src: /src/botan/src/cli/entropy.cpp:104,1
    - Dst: what
      Src: /src/botan/src/cli/entropy.cpp:104,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:110,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:111,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:111,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:113,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:113,1
    - Dst: data
      Src: /src/botan/src/cli/entropy.cpp:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 116
    functionName: Botan_CLI::Entropy::go
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::secure_vector::assign
    - empty
    - get_arg_sz
    - auto::start
    - auto::finish
    - Botan::secure_vector::size
    - SeedCapturing_RNG::samples
    - Botan::Compression_Algorithm::create
    - begin
    - get_arg
    - what
    - poll_just
    - Botan::hex_encode
    - std::vector::push_back
    - SeedCapturing_RNG::seed_material
    - size
    - Botan::Entropy_Sources::global_sources
    - output
    - error_output
    - enabled_sources
    - end
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::SeedCapturing_RNG::accepts_input
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::SeedCapturing_RNG::clear
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_CLI::SeedCapturing_RNG::is_seeded
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan_CLI::SeedCapturing_RNG::name
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_CLI::SeedCapturing_RNG::samples
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& seed_material() const'
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & seed_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/cli/entropy.cpp:41,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/entropy.cpp:42,1
    - Dst: insert
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: end
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/entropy.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: Botan_CLI::SeedCapturing_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - insert
    - std::span<const uint8_t>::begin
    - std::span<uint8_t>::empty
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_CLI::Entropy::Entropy
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Entropy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan_CLI::Entropy::group
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan_CLI::Entropy::description
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/entropy.cpp:63,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/entropy.cpp:64,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/cli/entropy.cpp:66,1
    - Dst: enabled_sources
      Src: /src/botan/src/cli/entropy.cpp:70,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/entropy.cpp:72,1
    - Dst: poll_just
      Src: /src/botan/src/cli/entropy.cpp:77,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:79,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:80,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/cli/entropy.cpp:84,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: empty
      Src: /src/botan/src/cli/entropy.cpp:90,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/cli/entropy.cpp:91,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: begin
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: end
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: auto::start
      Src: /src/botan/src/cli/entropy.cpp:96,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/entropy.cpp:97,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:99,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:100,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:100,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:101,1
    - Dst: error_output
      Src: /src/botan/src/cli/entropy.cpp:104,1
    - Dst: what
      Src: /src/botan/src/cli/entropy.cpp:104,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:110,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:111,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:111,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:113,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:113,1
    - Dst: data
      Src: /src/botan/src/cli/entropy.cpp:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 116
    functionName: Botan_CLI::Entropy::go
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::secure_vector::assign
    - empty
    - get_arg_sz
    - auto::start
    - auto::finish
    - Botan::secure_vector::size
    - SeedCapturing_RNG::samples
    - Botan::Compression_Algorithm::create
    - begin
    - get_arg
    - what
    - poll_just
    - Botan::hex_encode
    - std::vector::push_back
    - SeedCapturing_RNG::seed_material
    - size
    - Botan::Entropy_Sources::global_sources
    - output
    - error_output
    - enabled_sources
    - end
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::SeedCapturing_RNG::accepts_input
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::SeedCapturing_RNG::clear
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_CLI::SeedCapturing_RNG::is_seeded
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan_CLI::SeedCapturing_RNG::name
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_CLI::SeedCapturing_RNG::samples
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& seed_material() const'
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & seed_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/cli/entropy.cpp:41,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/entropy.cpp:42,1
    - Dst: insert
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: end
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/entropy.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: Botan_CLI::SeedCapturing_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - insert
    - std::span<const uint8_t>::begin
    - std::span<uint8_t>::empty
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_CLI::Entropy::Entropy
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Entropy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan_CLI::Entropy::group
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan_CLI::Entropy::description
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/entropy.cpp:63,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/entropy.cpp:64,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/cli/entropy.cpp:66,1
    - Dst: enabled_sources
      Src: /src/botan/src/cli/entropy.cpp:70,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/entropy.cpp:72,1
    - Dst: poll_just
      Src: /src/botan/src/cli/entropy.cpp:77,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:79,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:80,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/cli/entropy.cpp:84,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: empty
      Src: /src/botan/src/cli/entropy.cpp:90,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/cli/entropy.cpp:91,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: begin
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: end
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: auto::start
      Src: /src/botan/src/cli/entropy.cpp:96,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/entropy.cpp:97,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:99,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:100,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:100,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:101,1
    - Dst: error_output
      Src: /src/botan/src/cli/entropy.cpp:104,1
    - Dst: what
      Src: /src/botan/src/cli/entropy.cpp:104,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:110,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:111,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:111,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:113,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:113,1
    - Dst: data
      Src: /src/botan/src/cli/entropy.cpp:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 116
    functionName: Botan_CLI::Entropy::go
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::secure_vector::assign
    - empty
    - get_arg_sz
    - auto::start
    - auto::finish
    - Botan::secure_vector::size
    - SeedCapturing_RNG::samples
    - Botan::Compression_Algorithm::create
    - begin
    - get_arg
    - what
    - poll_just
    - Botan::hex_encode
    - std::vector::push_back
    - SeedCapturing_RNG::seed_material
    - size
    - Botan::Entropy_Sources::global_sources
    - output
    - error_output
    - enabled_sources
    - end
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::SeedCapturing_RNG::accepts_input
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool accepts_input() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::SeedCapturing_RNG::clear
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_CLI::SeedCapturing_RNG::is_seeded
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_seeded() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan_CLI::SeedCapturing_RNG::name
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_CLI::SeedCapturing_RNG::samples
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t samples() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& seed_material() const'
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & seed_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/cli/entropy.cpp:41,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/entropy.cpp:42,1
    - Dst: insert
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: end
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/entropy.cpp:46,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/entropy.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: Botan_CLI::SeedCapturing_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - insert
    - std::span<const uint8_t>::begin
    - std::span<uint8_t>::empty
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_CLI::Entropy::Entropy
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Entropy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan_CLI::Entropy::group
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan_CLI::Entropy::description
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/entropy.cpp:63,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/entropy.cpp:64,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/cli/entropy.cpp:66,1
    - Dst: enabled_sources
      Src: /src/botan/src/cli/entropy.cpp:70,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/entropy.cpp:72,1
    - Dst: poll_just
      Src: /src/botan/src/cli/entropy.cpp:77,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:79,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:80,1
    - Dst: SeedCapturing_RNG::seed_material
      Src: /src/botan/src/cli/entropy.cpp:84,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:86,1
    - Dst: empty
      Src: /src/botan/src/cli/entropy.cpp:90,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/cli/entropy.cpp:91,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: begin
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: end
      Src: /src/botan/src/cli/entropy.cpp:95,1
    - Dst: auto::start
      Src: /src/botan/src/cli/entropy.cpp:96,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/entropy.cpp:97,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:99,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:100,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:100,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:101,1
    - Dst: error_output
      Src: /src/botan/src/cli/entropy.cpp:104,1
    - Dst: what
      Src: /src/botan/src/cli/entropy.cpp:104,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:110,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:111,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:111,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:113,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:113,1
    - Dst: data
      Src: /src/botan/src/cli/entropy.cpp:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 116
    functionName: Botan_CLI::Entropy::go
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::secure_vector::assign
    - empty
    - get_arg_sz
    - auto::start
    - auto::finish
    - Botan::secure_vector::size
    - SeedCapturing_RNG::samples
    - Botan::Compression_Algorithm::create
    - begin
    - get_arg
    - what
    - poll_just
    - Botan::hex_encode
    - std::vector::push_back
    - SeedCapturing_RNG::seed_material
    - size
    - Botan::Entropy_Sources::global_sources
    - output
    - error_output
    - enabled_sources
    - end
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: '& cmd_spec() const'
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & cmd_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan_CLI::Command::set_return_code
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_return_code(int rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::flag_set
      Src: /src/botan/src/cli/cli.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_CLI::Command::verbose
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::flag_set
    linkageType: ''
    returnType: bool
    signature: bool verbose() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::format_blob
      Src: /src/botan/src/cli/cli.h:131,1
    - Dst: data
      Src: /src/botan/src/cli/cli.h:131,1
    - Dst: size
      Src: /src/botan/src/cli/cli.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' format'
    - ' vec'
    argTypes:
    - std::string
    - std::vector<uint8_t, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: Botan_CLI::Command::format_blob
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 1
    functionsReached:
    - Botan_CLI::Command::format_blob
    - size
    - data
    linkageType: ''
    returnType: std::string
    signature: std::string format_blob(const std::string& format, const std::vector<uint8_t,
      Alloc>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_binary
      Src: /src/botan/src/cli/cli.h:188,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/cli.h:188,1
    - Dst: data
      Src: /src/botan/src/cli/cli.h:188,1
    - Dst: size
      Src: /src/botan/src/cli/cli.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<uint8_t, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Botan_CLI::Command::write_output
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 0
    functionsReached:
    - data
    - size
    - reinterpret_cast<const char*>
    - output_binary
    linkageType: ''
    returnType: void
    signature: void write_output(const std::vector<uint8_t, Alloc>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - CLI_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: BOTAN_REGISTER_COMMAND
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_COMMAND(name, CLI_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: '& cmd_spec() const'
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & cmd_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan_CLI::Command::set_return_code
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_return_code(int rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::flag_set
      Src: /src/botan/src/cli/cli.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_CLI::Command::verbose
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::flag_set
    linkageType: ''
    returnType: bool
    signature: bool verbose() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::format_blob
      Src: /src/botan/src/cli/cli.h:131,1
    - Dst: data
      Src: /src/botan/src/cli/cli.h:131,1
    - Dst: size
      Src: /src/botan/src/cli/cli.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' format'
    - ' vec'
    argTypes:
    - std::string
    - std::vector<uint8_t, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: Botan_CLI::Command::format_blob
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 2
    functionsReached:
    - Botan_CLI::Command::format_blob
    - size
    - data
    linkageType: ''
    returnType: std::string
    signature: std::string format_blob(const std::string& format, const std::vector<uint8_t,
      Alloc>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_binary
      Src: /src/botan/src/cli/cli.h:188,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/cli.h:188,1
    - Dst: data
      Src: /src/botan/src/cli/cli.h:188,1
    - Dst: size
      Src: /src/botan/src/cli/cli.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<uint8_t, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Botan_CLI::Command::write_output
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 0
    functionsReached:
    - data
    - size
    - reinterpret_cast<const char*>
    - output_binary
    linkageType: ''
    returnType: void
    signature: void write_output(const std::vector<uint8_t, Alloc>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - CLI_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: BOTAN_REGISTER_COMMAND
    functionSourceFile: /src/botan/src/cli/cli.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_COMMAND(name, CLI_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::RoughtimeCheck::RoughtimeCheck
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoughtimeCheck()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::RoughtimeCheck::group
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::RoughtimeCheck::description
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Chain::Chain
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: auto::responses
      Src: /src/botan/src/cli/roughtime.cpp:35,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:36,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:36,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:37,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:38,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:39,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:39,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    - Dst: utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: Botan_CLI::RoughtimeCheck::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - utc_midpoint
    - utc_radius
    - auto::responses
    - Botan::calendar_point
    - flag_set
    - slurp_file_as_str
    - get_arg
    - Botan::Roughtime::Response::microseconds32
    - std::setw
    - output
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::Roughtime::Chain::Chain
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan_CLI::Roughtime::Roughtime
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timing_Test_Command::help_text
      Src: /src/botan/src/cli/roughtime.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: Botan_CLI::Roughtime::help_text
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timing_Test_Command::help_text
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan_CLI::Roughtime::group
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan_CLI::Roughtime::description
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/cli/roughtime.cpp:91,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:91,1
    - Dst: next_nonce
      Src: /src/botan/src/cli/roughtime.cpp:92,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/cli/roughtime.cpp:94,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:94,1
    - Dst: Botan::Roughtime::online_request
      Src: /src/botan/src/cli/roughtime.cpp:96,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:96,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/cli/roughtime.cpp:97,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:98,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:99,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:101,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:101,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: auto::validate
      Src: /src/botan/src/cli/roughtime.cpp:106,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:107,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:108,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/roughtime.cpp:111,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/roughtime.cpp:113,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:117,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:118,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:121,1
    - Dst: append
      Src: /src/botan/src/cli/roughtime.cpp:124,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - ' chain'
    - max_chain_size
    - ' address'
    - ' public_key'
    argTypes:
    - std::unique_ptr<Botan::Roughtime::Chain>
    - size_t
    - std::string
    - Botan::Ed25519_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 127
    functionName: Botan_CLI::Roughtime::query
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::Roughtime::online_request
    - append
    - get_arg_sz
    - auto::utc_midpoint
    - auto::utc_radius
    - Botan_CLI::Timer::seconds
    - Botan::Roughtime::Response::from_bits
    - Botan::calendar_point
    - flag_set
    - set_return_code
    - Botan::Roughtime::Response::microseconds32
    - auto::validate
    - Botan::Roughtime::Nonce
    - output
    - error_output
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::TLS::detail::AsyncBase::complete_now
    - next_nonce
    linkageType: ''
    returnType: void
    signature: "void query(std::unique_ptr<Botan::Roughtime::Chain>& chain,\n                 const
      size_t max_chain_size,\n                 const std::string& address,\n                 const
      Botan::Ed25519_PublicKey& public_key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/roughtime.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/roughtime.cpp:131,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:132,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:133,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:134,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:137,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:139,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:139,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:142,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:146,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:147,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:147,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:149,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:150,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:154,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/cli/roughtime.cpp:155,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:155,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: name
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: addresses
      Src: /src/botan/src/cli/roughtime.cpp:159,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:161,1
    - Dst: public_key
      Src: /src/botan/src/cli/roughtime.cpp:161,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:165,1
    - Dst: what
      Src: /src/botan/src/cli/roughtime.cpp:165,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/roughtime.cpp:176,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 178
    functionName: Botan_CLI::Roughtime::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - get_arg_or
    - std::make_unique<Botan::Roughtime::Chain>
    - std::setw
    - get_arg_sz
    - slurp_file_as_str
    - error_output
    - Botan::Roughtime::servers_from_str
    - auto::empty
    - set_return_code
    - get_arg
    - name
    - public_key
    - what
    - std::unique_ptr::to_string
    - Botan_CLI::Roughtime::query
    - output
    - Botan::base64_decode
    - addresses
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::RoughtimeCheck::RoughtimeCheck
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoughtimeCheck()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::RoughtimeCheck::group
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::RoughtimeCheck::description
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Chain::Chain
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: auto::responses
      Src: /src/botan/src/cli/roughtime.cpp:35,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:36,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:36,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:37,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:38,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:39,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:39,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    - Dst: utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: Botan_CLI::RoughtimeCheck::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - utc_midpoint
    - utc_radius
    - auto::responses
    - Botan::calendar_point
    - flag_set
    - slurp_file_as_str
    - get_arg
    - Botan::Roughtime::Response::microseconds32
    - std::setw
    - output
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::Roughtime::Chain::Chain
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan_CLI::Roughtime::Roughtime
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timing_Test_Command::help_text
      Src: /src/botan/src/cli/roughtime.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: Botan_CLI::Roughtime::help_text
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timing_Test_Command::help_text
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan_CLI::Roughtime::group
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan_CLI::Roughtime::description
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/cli/roughtime.cpp:91,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:91,1
    - Dst: next_nonce
      Src: /src/botan/src/cli/roughtime.cpp:92,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/cli/roughtime.cpp:94,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:94,1
    - Dst: Botan::Roughtime::online_request
      Src: /src/botan/src/cli/roughtime.cpp:96,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:96,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/cli/roughtime.cpp:97,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:98,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:99,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:101,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:101,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: auto::validate
      Src: /src/botan/src/cli/roughtime.cpp:106,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:107,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:108,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/roughtime.cpp:111,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/roughtime.cpp:113,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:117,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:118,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:121,1
    - Dst: append
      Src: /src/botan/src/cli/roughtime.cpp:124,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - ' chain'
    - max_chain_size
    - ' address'
    - ' public_key'
    argTypes:
    - std::unique_ptr<Botan::Roughtime::Chain>
    - size_t
    - std::string
    - Botan::Ed25519_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 127
    functionName: Botan_CLI::Roughtime::query
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 1
    functionsReached:
    - rng
    - Botan::Roughtime::online_request
    - append
    - get_arg_sz
    - auto::utc_midpoint
    - auto::utc_radius
    - Botan_CLI::Timer::seconds
    - Botan::Roughtime::Response::from_bits
    - Botan::calendar_point
    - flag_set
    - set_return_code
    - Botan::Roughtime::Response::microseconds32
    - auto::validate
    - Botan::Roughtime::Nonce
    - output
    - error_output
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::TLS::detail::AsyncBase::complete_now
    - next_nonce
    linkageType: ''
    returnType: void
    signature: "void query(std::unique_ptr<Botan::Roughtime::Chain>& chain,\n                 const
      size_t max_chain_size,\n                 const std::string& address,\n                 const
      Botan::Ed25519_PublicKey& public_key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/roughtime.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/roughtime.cpp:131,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:132,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:133,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:134,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:137,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:139,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:139,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:142,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:146,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:147,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:147,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:149,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:150,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:154,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/cli/roughtime.cpp:155,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:155,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: name
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: addresses
      Src: /src/botan/src/cli/roughtime.cpp:159,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:161,1
    - Dst: public_key
      Src: /src/botan/src/cli/roughtime.cpp:161,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:165,1
    - Dst: what
      Src: /src/botan/src/cli/roughtime.cpp:165,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/roughtime.cpp:176,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 178
    functionName: Botan_CLI::Roughtime::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - get_arg_or
    - std::make_unique<Botan::Roughtime::Chain>
    - std::setw
    - get_arg_sz
    - slurp_file_as_str
    - error_output
    - Botan::Roughtime::servers_from_str
    - auto::empty
    - set_return_code
    - get_arg
    - name
    - public_key
    - what
    - std::unique_ptr::to_string
    - Botan_CLI::Roughtime::query
    - output
    - Botan::base64_decode
    - addresses
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::RoughtimeCheck::RoughtimeCheck
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoughtimeCheck()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::RoughtimeCheck::group
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::RoughtimeCheck::description
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Chain::Chain
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: auto::responses
      Src: /src/botan/src/cli/roughtime.cpp:35,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:36,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:36,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:37,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:38,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:39,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:39,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    - Dst: utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: Botan_CLI::RoughtimeCheck::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - utc_midpoint
    - utc_radius
    - auto::responses
    - Botan::calendar_point
    - flag_set
    - slurp_file_as_str
    - get_arg
    - Botan::Roughtime::Response::microseconds32
    - std::setw
    - output
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::Roughtime::Chain::Chain
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan_CLI::Roughtime::Roughtime
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timing_Test_Command::help_text
      Src: /src/botan/src/cli/roughtime.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: Botan_CLI::Roughtime::help_text
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timing_Test_Command::help_text
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan_CLI::Roughtime::group
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan_CLI::Roughtime::description
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/cli/roughtime.cpp:91,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:91,1
    - Dst: next_nonce
      Src: /src/botan/src/cli/roughtime.cpp:92,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/cli/roughtime.cpp:94,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:94,1
    - Dst: Botan::Roughtime::online_request
      Src: /src/botan/src/cli/roughtime.cpp:96,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:96,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/cli/roughtime.cpp:97,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:98,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:99,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:101,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:101,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: auto::validate
      Src: /src/botan/src/cli/roughtime.cpp:106,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:107,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:108,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/roughtime.cpp:111,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/roughtime.cpp:113,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:117,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:118,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:121,1
    - Dst: append
      Src: /src/botan/src/cli/roughtime.cpp:124,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - ' chain'
    - max_chain_size
    - ' address'
    - ' public_key'
    argTypes:
    - std::unique_ptr<Botan::Roughtime::Chain>
    - size_t
    - std::string
    - Botan::Ed25519_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 127
    functionName: Botan_CLI::Roughtime::query
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 2
    functionsReached:
    - rng
    - Botan::Roughtime::online_request
    - append
    - get_arg_sz
    - auto::utc_midpoint
    - auto::utc_radius
    - Botan_CLI::Timer::seconds
    - Botan::Roughtime::Response::from_bits
    - Botan::calendar_point
    - flag_set
    - set_return_code
    - Botan::Roughtime::Response::microseconds32
    - auto::validate
    - Botan::Roughtime::Nonce
    - output
    - error_output
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::TLS::detail::AsyncBase::complete_now
    - next_nonce
    linkageType: ''
    returnType: void
    signature: "void query(std::unique_ptr<Botan::Roughtime::Chain>& chain,\n                 const
      size_t max_chain_size,\n                 const std::string& address,\n                 const
      Botan::Ed25519_PublicKey& public_key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/roughtime.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/roughtime.cpp:131,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:132,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:133,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:134,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:137,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:139,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:139,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:142,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:146,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:147,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:147,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:149,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:150,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:154,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/cli/roughtime.cpp:155,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:155,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: name
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: addresses
      Src: /src/botan/src/cli/roughtime.cpp:159,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:161,1
    - Dst: public_key
      Src: /src/botan/src/cli/roughtime.cpp:161,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:165,1
    - Dst: what
      Src: /src/botan/src/cli/roughtime.cpp:165,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/roughtime.cpp:176,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 178
    functionName: Botan_CLI::Roughtime::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - get_arg_or
    - std::make_unique<Botan::Roughtime::Chain>
    - std::setw
    - get_arg_sz
    - slurp_file_as_str
    - error_output
    - Botan::Roughtime::servers_from_str
    - auto::empty
    - set_return_code
    - get_arg
    - name
    - public_key
    - what
    - std::unique_ptr::to_string
    - Botan_CLI::Roughtime::query
    - output
    - Botan::base64_decode
    - addresses
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::RoughtimeCheck::RoughtimeCheck
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RoughtimeCheck()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::RoughtimeCheck::group
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::RoughtimeCheck::description
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Chain::Chain
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/roughtime.cpp:33,1
    - Dst: auto::responses
      Src: /src/botan/src/cli/roughtime.cpp:35,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:36,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:36,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:37,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:38,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:39,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:39,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:41,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    - Dst: utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: Botan_CLI::RoughtimeCheck::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - utc_midpoint
    - utc_radius
    - auto::responses
    - Botan::calendar_point
    - flag_set
    - slurp_file_as_str
    - get_arg
    - Botan::Roughtime::Response::microseconds32
    - std::setw
    - output
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::Roughtime::Chain::Chain
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan_CLI::Roughtime::Roughtime
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Roughtime()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timing_Test_Command::help_text
      Src: /src/botan/src/cli/roughtime.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: Botan_CLI::Roughtime::help_text
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timing_Test_Command::help_text
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan_CLI::Roughtime::group
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan_CLI::Roughtime::description
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/cli/roughtime.cpp:91,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:91,1
    - Dst: next_nonce
      Src: /src/botan/src/cli/roughtime.cpp:92,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/cli/roughtime.cpp:94,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:94,1
    - Dst: Botan::Roughtime::online_request
      Src: /src/botan/src/cli/roughtime.cpp:96,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:96,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/cli/roughtime.cpp:97,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:98,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:99,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:101,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:101,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:103,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:105,1
    - Dst: auto::validate
      Src: /src/botan/src/cli/roughtime.cpp:106,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:107,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:108,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/roughtime.cpp:111,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/roughtime.cpp:113,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:115,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:117,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:118,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:121,1
    - Dst: append
      Src: /src/botan/src/cli/roughtime.cpp:124,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - ' chain'
    - max_chain_size
    - ' address'
    - ' public_key'
    argTypes:
    - std::unique_ptr<Botan::Roughtime::Chain>
    - size_t
    - std::string
    - Botan::Ed25519_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 127
    functionName: Botan_CLI::Roughtime::query
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 3
    functionsReached:
    - rng
    - Botan::Roughtime::online_request
    - append
    - get_arg_sz
    - auto::utc_midpoint
    - auto::utc_radius
    - Botan_CLI::Timer::seconds
    - Botan::Roughtime::Response::from_bits
    - Botan::calendar_point
    - flag_set
    - set_return_code
    - Botan::Roughtime::Response::microseconds32
    - auto::validate
    - Botan::Roughtime::Nonce
    - output
    - error_output
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::TLS::detail::AsyncBase::complete_now
    - next_nonce
    linkageType: ''
    returnType: void
    signature: "void query(std::unique_ptr<Botan::Roughtime::Chain>& chain,\n                 const
      size_t max_chain_size,\n                 const std::string& address,\n                 const
      Botan::Ed25519_PublicKey& public_key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/roughtime.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/roughtime.cpp:131,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:132,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:133,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:134,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:137,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:139,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:139,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:142,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:146,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:147,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:147,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:149,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:150,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:154,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/cli/roughtime.cpp:155,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:155,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: name
      Src: /src/botan/src/cli/roughtime.cpp:158,1
    - Dst: addresses
      Src: /src/botan/src/cli/roughtime.cpp:159,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:161,1
    - Dst: public_key
      Src: /src/botan/src/cli/roughtime.cpp:161,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:165,1
    - Dst: what
      Src: /src/botan/src/cli/roughtime.cpp:165,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/roughtime.cpp:171,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/roughtime.cpp:176,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 178
    functionName: Botan_CLI::Roughtime::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - get_arg_or
    - std::make_unique<Botan::Roughtime::Chain>
    - std::setw
    - get_arg_sz
    - slurp_file_as_str
    - error_output
    - Botan::Roughtime::servers_from_str
    - auto::empty
    - set_return_code
    - get_arg
    - name
    - public_key
    - what
    - std::unique_ptr::to_string
    - Botan_CLI::Roughtime::query
    - output
    - Botan::base64_decode
    - addresses
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Generate_Argon2::Generate_Argon2
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_Argon2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Generate_Argon2::group
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Generate_Argon2::description
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/argon2.cpp:28,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:29,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:30,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: Botan::argon2_generate_pwhash
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/argon2.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_CLI::Generate_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::argon2_generate_pwhash
    - std::string::data
    - std::string::size
    - get_passphrase_arg
    - output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan_CLI::Check_Argon2::Check_Argon2
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Check_Argon2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan_CLI::Check_Argon2::group
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::Check_Argon2::description
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/argon2.cpp:48,1
    - Dst: get_arg
      Src: /src/botan/src/cli/argon2.cpp:49,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:53,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/argon2.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: Botan_CLI::Check_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - std::string::data
    - std::string::size
    - set_return_code
    - get_passphrase_arg
    - get_arg
    - Botan::argon2_check_pwhash
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Generate_Argon2::Generate_Argon2
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_Argon2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Generate_Argon2::group
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Generate_Argon2::description
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/argon2.cpp:28,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:29,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:30,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: Botan::argon2_generate_pwhash
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/argon2.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_CLI::Generate_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::argon2_generate_pwhash
    - std::string::data
    - std::string::size
    - get_passphrase_arg
    - output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan_CLI::Check_Argon2::Check_Argon2
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Check_Argon2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan_CLI::Check_Argon2::group
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::Check_Argon2::description
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/argon2.cpp:48,1
    - Dst: get_arg
      Src: /src/botan/src/cli/argon2.cpp:49,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:53,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/argon2.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: Botan_CLI::Check_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - std::string::data
    - std::string::size
    - set_return_code
    - get_passphrase_arg
    - get_arg
    - Botan::argon2_check_pwhash
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Generate_Argon2::Generate_Argon2
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_Argon2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Generate_Argon2::group
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Generate_Argon2::description
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/argon2.cpp:28,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:29,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:30,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: Botan::argon2_generate_pwhash
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/argon2.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_CLI::Generate_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::argon2_generate_pwhash
    - std::string::data
    - std::string::size
    - get_passphrase_arg
    - output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan_CLI::Check_Argon2::Check_Argon2
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Check_Argon2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan_CLI::Check_Argon2::group
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::Check_Argon2::description
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/argon2.cpp:48,1
    - Dst: get_arg
      Src: /src/botan/src/cli/argon2.cpp:49,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:53,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/argon2.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: Botan_CLI::Check_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - std::string::data
    - std::string::size
    - set_return_code
    - get_passphrase_arg
    - get_arg
    - Botan::argon2_check_pwhash
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Generate_Argon2::Generate_Argon2
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Generate_Argon2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Generate_Argon2::group
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Generate_Argon2::description
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/argon2.cpp:28,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:29,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:30,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: Botan::argon2_generate_pwhash
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/argon2.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan_CLI::Generate_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::argon2_generate_pwhash
    - std::string::data
    - std::string::size
    - get_passphrase_arg
    - output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan_CLI::Check_Argon2::Check_Argon2
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Check_Argon2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan_CLI::Check_Argon2::group
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::Check_Argon2::description
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/argon2.cpp:48,1
    - Dst: get_arg
      Src: /src/botan/src/cli/argon2.cpp:49,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:53,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/argon2.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: Botan_CLI::Check_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - std::string::data
    - std::string::size
    - set_return_code
    - get_passphrase_arg
    - get_arg
    - Botan::argon2_check_pwhash
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: Botan_CLI::PK_Keygen::PK_Keygen
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Keygen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::PK_Keygen::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_CLI::PK_Keygen::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:50,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:51,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/pubkey.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:54,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:57,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:60,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:61,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:63,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:66,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:67,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:67,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:69,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:70,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:70,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:73,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:73,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:79,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:79,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:81,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:82,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:82,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:85,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:85,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 90
    functionName: Botan_CLI::PK_Keygen::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - get_arg_sz
    - CLI_Error_Unsupported
    - Botan::PKCS8::BER_encode
    - std::string::empty
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::PEM_encode
    - flag_set
    - write_output
    - get_passphrase_arg
    - get_arg
    - output
    - Botan::create_private_key
    - rng
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:102,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:109,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ' key'
    - ' padding'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: Botan_CLI::choose_sig_padding
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string choose_sig_padding(const std::string& key, const std::string&
      padding, const std::string& hash)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:102,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:109,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ' key'
    - ' padding'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: Botan_CLI::choose_sig_padding
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string choose_sig_padding(const std::string& key, const std::string&
      padding, const std::string& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_CLI::PK_Fingerprint::PK_Fingerprint
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Fingerprint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan_CLI::PK_Fingerprint::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan_CLI::PK_Fingerprint::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:132,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:133,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pubkey.cpp:135,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:136,1
    - Dst: Botan_CLI::PK_Fingerprint::slurp_file
      Src: /src/botan/src/cli/pubkey.cpp:136,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:137,1
    - Dst: std::unique_ptr::fingerprint_public
      Src: /src/botan/src/cli/pubkey.cpp:139,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:142,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: Botan_CLI::PK_Fingerprint::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - get_arg_list
    - get_arg
    - output
    - Botan::X509::load_key
    - Botan_CLI::PK_Fingerprint::slurp_file
    - std::unique_ptr::fingerprint_public
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:159,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:161,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:164,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:167,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:169,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - empty
    - CLI_Error
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_filename, const std::string& passphrase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:159,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:161,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:164,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:167,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:169,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - empty
    - CLI_Error
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_filename, const std::string& passphrase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: Botan_CLI::PK_Sign::PK_Sign
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PK_Sign::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: Botan_CLI::PK_Sign::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:190,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:191,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/pubkey.cpp:193,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:195,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:197,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:197,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:198,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:205,1
    - Dst: auto::_signature_element_size_for_DER_encoding
      Src: /src/botan/src/cli/pubkey.cpp:206,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:207,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:207,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:213,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:215,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/pubkey.cpp:217,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/pubkey.cpp:220,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:220,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/cli/pubkey.cpp:222,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:224,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:225,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:227,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:227,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:231,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/pubkey.cpp:231,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 232
    functionName: Botan_CLI::PK_Sign::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - Botan::PKCS8::PEM_encode
    - auto::stateful_operation
    - Botan::PK_Signer::signature
    - std::string::empty
    - get_passphrase_arg
    - load_private_key
    - flag_set
    - auto::_signature_element_size_for_DER_encoding
    - get_arg
    - Botan::HashFunction::create
    - CLI_Usage_Error
    - Botan::PK_Signer::update
    - Botan::base64_encode
    - auto::algo_name
    - output
    - CLI_Error_Unsupported
    - rng
    - choose_sig_padding
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan_CLI::PK_Verify::PK_Verify
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: Botan_CLI::PK_Verify::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Botan_CLI::PK_Verify::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:248,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:248,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:250,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:253,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:255,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:255,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:256,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:262,1
    - Dst: auto::message_parts
      Src: /src/botan/src/cli/pubkey.cpp:263,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:264,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:264,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/pubkey.cpp:271,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:272,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:272,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: Botan_CLI::PK_Verify::slurp_file_as_str
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/pubkey.cpp:277,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:279,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 280
    functionName: Botan_CLI::PK_Verify::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - std::string::empty
    - CLI_Error
    - Botan_CLI::PK_Verify::slurp_file_as_str
    - flag_set
    - auto::message_parts
    - get_arg
    - Botan::HashFunction::create
    - auto::algo_name
    - CLI_Usage_Error
    - output
    - Botan::base64_decode
    - CLI_Error_Unsupported
    - Botan::PK_Verifier::update
    - choose_sig_padding
    - Botan::X509::load_key
    - Botan::PK_Verifier::check_signature
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: Botan_CLI::PKCS8_Tool::PKCS8_Tool
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS8_Tool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_CLI::PKCS8_Tool::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_CLI::PKCS8_Tool::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:297,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:298,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:303,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:304,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:306,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:309,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:310,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:312,1
    - Dst: std::unique_ptr::public_key
      Src: /src/botan/src/cli/pubkey.cpp:313,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:317,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:317,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:320,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:323,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:324,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:324,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:326,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:327,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:327,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:330,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:330,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:335,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:336,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:336,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:338,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:339,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:339,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:342,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:342,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 348
    functionName: Botan_CLI::PKCS8_Tool::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - get_arg_sz
    - Botan::PKCS8::BER_encode
    - std::string::empty
    - Botan::X509::BER_encode
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::PEM_encode
    - flag_set
    - write_output
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    - get_passphrase_arg
    - get_arg
    - output
    - std::unique_ptr::public_key
    - rng
    - Botan::X509::PEM_encode
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: Botan_CLI::EC_Group_Info::EC_Group_Info
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Botan_CLI::EC_Group_Info::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: Botan_CLI::EC_Group_Info::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/pubkey.cpp:368,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:368,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:370,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:373,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:373,1
    - Dst: auto::get_a
      Src: /src/botan/src/cli/pubkey.cpp:374,1
    - Dst: auto::get_b
      Src: /src/botan/src/cli/pubkey.cpp:375,1
    - Dst: auto::get_order
      Src: /src/botan/src/cli/pubkey.cpp:376,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/cli/pubkey.cpp:377,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/cli/pubkey.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 379
    functionName: Botan_CLI::EC_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::get_order
    - auto::get_g_x
    - flag_set
    - auto::get_a
    - Botan::EC_Group::from_name
    - get_arg
    - auto::get_p
    - auto::get_b
    - output
    - auto::get_g_y
    - auto::PEM_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: Botan_CLI::DL_Group_Info::DL_Group_Info
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_Group_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: Botan_CLI::DL_Group_Info::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: Botan_CLI::DL_Group_Info::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/pubkey.cpp:399,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:399,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:401,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:404,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:404,1
    - Dst: auto::get_g
      Src: /src/botan/src/cli/pubkey.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 407
    functionName: Botan_CLI::DL_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - auto::get_g
    - Botan::DL_Group::from_name
    - get_arg
    - auto::get_p
    - output
    - auto::PEM_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: Botan_CLI::PK_Workfactor::PK_Workfactor
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Workfactor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: Botan_CLI::PK_Workfactor::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 418
    functionName: Botan_CLI::PK_Workfactor::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:421,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:422,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:425,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/cli/pubkey.cpp:425,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:427,1
    - Dst: Botan::dl_work_factor
      Src: /src/botan/src/cli/pubkey.cpp:427,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:429,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/cli/pubkey.cpp:429,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 433
    functionName: Botan_CLI::PK_Workfactor::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::dl_exponent_size
    - Botan::if_work_factor
    - get_arg
    - Botan::dl_work_factor
    - output
    - CLI_Usage_Error
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: Botan_CLI::Gen_DL_Group::Gen_DL_Group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_DL_Group()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 443
    functionName: Botan_CLI::Gen_DL_Group::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 445
    functionName: Botan_CLI::Gen_DL_Group::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:448,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:449,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:451,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:452,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:455,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:456,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:459,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:459,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:461,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:462,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:465,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:465,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:474,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:478,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:480,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:480,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/pubkey.cpp:482,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:484,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:484,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:488,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 490
    functionName: Botan_CLI::Gen_DL_Group::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::hex_decode
    - std::string::empty
    - Botan::DL_Group::PEM_encode
    - get_arg
    - CLI_Usage_Error
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: Botan_CLI::PK_Keygen::PK_Keygen
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Keygen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::PK_Keygen::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_CLI::PK_Keygen::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:50,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:51,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/pubkey.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:54,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:57,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:60,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:61,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:63,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:66,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:67,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:67,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:69,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:70,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:70,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:73,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:73,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:79,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:79,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:81,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:82,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:82,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:85,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:85,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 90
    functionName: Botan_CLI::PK_Keygen::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - get_arg_sz
    - CLI_Error_Unsupported
    - Botan::PKCS8::BER_encode
    - std::string::empty
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::PEM_encode
    - flag_set
    - write_output
    - get_passphrase_arg
    - get_arg
    - output
    - Botan::create_private_key
    - rng
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:102,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:109,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ' key'
    - ' padding'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: Botan_CLI::choose_sig_padding
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string choose_sig_padding(const std::string& key, const std::string&
      padding, const std::string& hash)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:102,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:109,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ' key'
    - ' padding'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: Botan_CLI::choose_sig_padding
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string choose_sig_padding(const std::string& key, const std::string&
      padding, const std::string& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_CLI::PK_Fingerprint::PK_Fingerprint
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Fingerprint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan_CLI::PK_Fingerprint::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan_CLI::PK_Fingerprint::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:132,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:133,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pubkey.cpp:135,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:136,1
    - Dst: Botan_CLI::PK_Fingerprint::slurp_file
      Src: /src/botan/src/cli/pubkey.cpp:136,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:137,1
    - Dst: std::unique_ptr::fingerprint_public
      Src: /src/botan/src/cli/pubkey.cpp:139,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:142,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: Botan_CLI::PK_Fingerprint::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - get_arg_list
    - get_arg
    - output
    - Botan::X509::load_key
    - Botan_CLI::PK_Fingerprint::slurp_file
    - std::unique_ptr::fingerprint_public
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:159,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:161,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:164,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:167,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:169,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - empty
    - CLI_Error
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_filename, const std::string& passphrase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:159,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:161,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:164,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:167,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:169,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - empty
    - CLI_Error
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_filename, const std::string& passphrase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: Botan_CLI::PK_Sign::PK_Sign
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PK_Sign::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: Botan_CLI::PK_Sign::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:190,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:191,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/pubkey.cpp:193,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:195,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:197,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:197,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:198,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:205,1
    - Dst: auto::_signature_element_size_for_DER_encoding
      Src: /src/botan/src/cli/pubkey.cpp:206,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:207,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:207,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:213,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:215,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/pubkey.cpp:217,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/pubkey.cpp:220,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:220,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/cli/pubkey.cpp:222,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:224,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:225,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:227,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:227,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:231,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/pubkey.cpp:231,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 232
    functionName: Botan_CLI::PK_Sign::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - Botan::PKCS8::PEM_encode
    - auto::stateful_operation
    - Botan::PK_Signer::signature
    - std::string::empty
    - get_passphrase_arg
    - load_private_key
    - flag_set
    - auto::_signature_element_size_for_DER_encoding
    - get_arg
    - Botan::HashFunction::create
    - CLI_Usage_Error
    - Botan::PK_Signer::update
    - Botan::base64_encode
    - auto::algo_name
    - output
    - CLI_Error_Unsupported
    - rng
    - choose_sig_padding
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan_CLI::PK_Verify::PK_Verify
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: Botan_CLI::PK_Verify::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Botan_CLI::PK_Verify::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:248,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:248,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:250,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:253,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:255,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:255,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:256,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:262,1
    - Dst: auto::message_parts
      Src: /src/botan/src/cli/pubkey.cpp:263,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:264,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:264,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/pubkey.cpp:271,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:272,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:272,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: Botan_CLI::PK_Verify::slurp_file_as_str
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/pubkey.cpp:277,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:279,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 280
    functionName: Botan_CLI::PK_Verify::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - std::string::empty
    - CLI_Error
    - Botan_CLI::PK_Verify::slurp_file_as_str
    - flag_set
    - auto::message_parts
    - get_arg
    - Botan::HashFunction::create
    - auto::algo_name
    - CLI_Usage_Error
    - output
    - Botan::base64_decode
    - CLI_Error_Unsupported
    - Botan::PK_Verifier::update
    - choose_sig_padding
    - Botan::X509::load_key
    - Botan::PK_Verifier::check_signature
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: Botan_CLI::PKCS8_Tool::PKCS8_Tool
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS8_Tool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_CLI::PKCS8_Tool::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_CLI::PKCS8_Tool::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:297,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:298,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:303,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:304,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:306,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:309,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:310,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:312,1
    - Dst: std::unique_ptr::public_key
      Src: /src/botan/src/cli/pubkey.cpp:313,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:317,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:317,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:320,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:323,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:324,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:324,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:326,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:327,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:327,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:330,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:330,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:335,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:336,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:336,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:338,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:339,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:339,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:342,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:342,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 348
    functionName: Botan_CLI::PKCS8_Tool::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - get_arg_sz
    - Botan::PKCS8::BER_encode
    - std::string::empty
    - Botan::X509::BER_encode
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::PEM_encode
    - flag_set
    - write_output
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    - get_passphrase_arg
    - get_arg
    - output
    - std::unique_ptr::public_key
    - rng
    - Botan::X509::PEM_encode
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: Botan_CLI::EC_Group_Info::EC_Group_Info
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Botan_CLI::EC_Group_Info::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: Botan_CLI::EC_Group_Info::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/pubkey.cpp:368,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:368,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:370,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:373,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:373,1
    - Dst: auto::get_a
      Src: /src/botan/src/cli/pubkey.cpp:374,1
    - Dst: auto::get_b
      Src: /src/botan/src/cli/pubkey.cpp:375,1
    - Dst: auto::get_order
      Src: /src/botan/src/cli/pubkey.cpp:376,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/cli/pubkey.cpp:377,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/cli/pubkey.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 379
    functionName: Botan_CLI::EC_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::get_order
    - auto::get_g_x
    - flag_set
    - auto::get_a
    - Botan::EC_Group::from_name
    - get_arg
    - auto::get_p
    - auto::get_b
    - output
    - auto::get_g_y
    - auto::PEM_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: Botan_CLI::DL_Group_Info::DL_Group_Info
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_Group_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: Botan_CLI::DL_Group_Info::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: Botan_CLI::DL_Group_Info::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/pubkey.cpp:399,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:399,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:401,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:404,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:404,1
    - Dst: auto::get_g
      Src: /src/botan/src/cli/pubkey.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 407
    functionName: Botan_CLI::DL_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - auto::get_g
    - Botan::DL_Group::from_name
    - get_arg
    - auto::get_p
    - output
    - auto::PEM_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: Botan_CLI::PK_Workfactor::PK_Workfactor
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Workfactor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: Botan_CLI::PK_Workfactor::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 418
    functionName: Botan_CLI::PK_Workfactor::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:421,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:422,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:425,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/cli/pubkey.cpp:425,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:427,1
    - Dst: Botan::dl_work_factor
      Src: /src/botan/src/cli/pubkey.cpp:427,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:429,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/cli/pubkey.cpp:429,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 433
    functionName: Botan_CLI::PK_Workfactor::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::dl_exponent_size
    - Botan::if_work_factor
    - get_arg
    - Botan::dl_work_factor
    - output
    - CLI_Usage_Error
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: Botan_CLI::Gen_DL_Group::Gen_DL_Group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_DL_Group()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 443
    functionName: Botan_CLI::Gen_DL_Group::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 445
    functionName: Botan_CLI::Gen_DL_Group::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:448,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:449,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:451,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:452,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:455,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:456,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:459,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:459,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:461,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:462,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:465,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:465,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:474,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:478,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:480,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:480,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/pubkey.cpp:482,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:484,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:484,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:488,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 490
    functionName: Botan_CLI::Gen_DL_Group::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::hex_decode
    - std::string::empty
    - Botan::DL_Group::PEM_encode
    - get_arg
    - CLI_Usage_Error
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: Botan_CLI::PK_Keygen::PK_Keygen
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Keygen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::PK_Keygen::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_CLI::PK_Keygen::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:50,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:51,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/pubkey.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:54,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:57,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:60,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:61,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:63,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:66,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:67,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:67,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:69,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:70,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:70,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:73,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:73,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:79,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:79,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:81,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:82,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:82,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:85,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:85,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 90
    functionName: Botan_CLI::PK_Keygen::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - get_arg_sz
    - CLI_Error_Unsupported
    - Botan::PKCS8::BER_encode
    - std::string::empty
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::PEM_encode
    - flag_set
    - write_output
    - get_passphrase_arg
    - get_arg
    - output
    - Botan::create_private_key
    - rng
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:102,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:109,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ' key'
    - ' padding'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: Botan_CLI::choose_sig_padding
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string choose_sig_padding(const std::string& key, const std::string&
      padding, const std::string& hash)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:102,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:109,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ' key'
    - ' padding'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: Botan_CLI::choose_sig_padding
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string choose_sig_padding(const std::string& key, const std::string&
      padding, const std::string& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_CLI::PK_Fingerprint::PK_Fingerprint
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Fingerprint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan_CLI::PK_Fingerprint::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan_CLI::PK_Fingerprint::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:132,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:133,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pubkey.cpp:135,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:136,1
    - Dst: Botan_CLI::PK_Fingerprint::slurp_file
      Src: /src/botan/src/cli/pubkey.cpp:136,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:137,1
    - Dst: std::unique_ptr::fingerprint_public
      Src: /src/botan/src/cli/pubkey.cpp:139,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:142,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: Botan_CLI::PK_Fingerprint::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - get_arg_list
    - get_arg
    - output
    - Botan::X509::load_key
    - Botan_CLI::PK_Fingerprint::slurp_file
    - std::unique_ptr::fingerprint_public
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:159,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:161,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:164,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:167,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:169,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - empty
    - CLI_Error
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_filename, const std::string& passphrase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:159,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:161,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:164,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:167,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:169,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - empty
    - CLI_Error
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_filename, const std::string& passphrase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: Botan_CLI::PK_Sign::PK_Sign
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PK_Sign::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: Botan_CLI::PK_Sign::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:190,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:191,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/pubkey.cpp:193,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:195,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:197,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:197,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:198,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:205,1
    - Dst: auto::_signature_element_size_for_DER_encoding
      Src: /src/botan/src/cli/pubkey.cpp:206,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:207,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:207,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:213,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:215,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/pubkey.cpp:217,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/pubkey.cpp:220,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:220,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/cli/pubkey.cpp:222,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:224,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:225,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:227,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:227,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:231,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/pubkey.cpp:231,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 232
    functionName: Botan_CLI::PK_Sign::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - Botan::PKCS8::PEM_encode
    - auto::stateful_operation
    - Botan::PK_Signer::signature
    - std::string::empty
    - get_passphrase_arg
    - load_private_key
    - flag_set
    - auto::_signature_element_size_for_DER_encoding
    - get_arg
    - Botan::HashFunction::create
    - CLI_Usage_Error
    - Botan::PK_Signer::update
    - Botan::base64_encode
    - auto::algo_name
    - output
    - CLI_Error_Unsupported
    - rng
    - choose_sig_padding
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan_CLI::PK_Verify::PK_Verify
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: Botan_CLI::PK_Verify::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Botan_CLI::PK_Verify::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:248,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:248,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:250,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:253,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:255,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:255,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:256,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:262,1
    - Dst: auto::message_parts
      Src: /src/botan/src/cli/pubkey.cpp:263,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:264,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:264,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/pubkey.cpp:271,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:272,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:272,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: Botan_CLI::PK_Verify::slurp_file_as_str
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/pubkey.cpp:277,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:279,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 280
    functionName: Botan_CLI::PK_Verify::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - std::string::empty
    - CLI_Error
    - Botan_CLI::PK_Verify::slurp_file_as_str
    - flag_set
    - auto::message_parts
    - get_arg
    - Botan::HashFunction::create
    - auto::algo_name
    - CLI_Usage_Error
    - output
    - Botan::base64_decode
    - CLI_Error_Unsupported
    - Botan::PK_Verifier::update
    - choose_sig_padding
    - Botan::X509::load_key
    - Botan::PK_Verifier::check_signature
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: Botan_CLI::PKCS8_Tool::PKCS8_Tool
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS8_Tool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_CLI::PKCS8_Tool::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_CLI::PKCS8_Tool::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:297,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:298,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:303,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:304,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:306,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:309,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:310,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:312,1
    - Dst: std::unique_ptr::public_key
      Src: /src/botan/src/cli/pubkey.cpp:313,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:317,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:317,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:320,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:323,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:324,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:324,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:326,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:327,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:327,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:330,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:330,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:335,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:336,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:336,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:338,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:339,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:339,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:342,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:342,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 348
    functionName: Botan_CLI::PKCS8_Tool::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - get_arg_sz
    - Botan::PKCS8::BER_encode
    - std::string::empty
    - Botan::X509::BER_encode
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::PEM_encode
    - flag_set
    - write_output
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    - get_passphrase_arg
    - get_arg
    - output
    - std::unique_ptr::public_key
    - rng
    - Botan::X509::PEM_encode
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: Botan_CLI::EC_Group_Info::EC_Group_Info
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Botan_CLI::EC_Group_Info::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: Botan_CLI::EC_Group_Info::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/pubkey.cpp:368,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:368,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:370,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:373,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:373,1
    - Dst: auto::get_a
      Src: /src/botan/src/cli/pubkey.cpp:374,1
    - Dst: auto::get_b
      Src: /src/botan/src/cli/pubkey.cpp:375,1
    - Dst: auto::get_order
      Src: /src/botan/src/cli/pubkey.cpp:376,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/cli/pubkey.cpp:377,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/cli/pubkey.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 379
    functionName: Botan_CLI::EC_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::get_order
    - auto::get_g_x
    - flag_set
    - auto::get_a
    - Botan::EC_Group::from_name
    - get_arg
    - auto::get_p
    - auto::get_b
    - output
    - auto::get_g_y
    - auto::PEM_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: Botan_CLI::DL_Group_Info::DL_Group_Info
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_Group_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: Botan_CLI::DL_Group_Info::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: Botan_CLI::DL_Group_Info::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/pubkey.cpp:399,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:399,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:401,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:404,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:404,1
    - Dst: auto::get_g
      Src: /src/botan/src/cli/pubkey.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 407
    functionName: Botan_CLI::DL_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - auto::get_g
    - Botan::DL_Group::from_name
    - get_arg
    - auto::get_p
    - output
    - auto::PEM_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: Botan_CLI::PK_Workfactor::PK_Workfactor
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Workfactor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: Botan_CLI::PK_Workfactor::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 418
    functionName: Botan_CLI::PK_Workfactor::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:421,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:422,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:425,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/cli/pubkey.cpp:425,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:427,1
    - Dst: Botan::dl_work_factor
      Src: /src/botan/src/cli/pubkey.cpp:427,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:429,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/cli/pubkey.cpp:429,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 433
    functionName: Botan_CLI::PK_Workfactor::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::dl_exponent_size
    - Botan::if_work_factor
    - get_arg
    - Botan::dl_work_factor
    - output
    - CLI_Usage_Error
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: Botan_CLI::Gen_DL_Group::Gen_DL_Group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_DL_Group()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 443
    functionName: Botan_CLI::Gen_DL_Group::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 445
    functionName: Botan_CLI::Gen_DL_Group::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:448,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:449,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:451,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:452,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:455,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:456,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:459,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:459,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:461,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:462,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:465,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:465,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:474,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:478,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:480,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:480,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/pubkey.cpp:482,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:484,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:484,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:488,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 490
    functionName: Botan_CLI::Gen_DL_Group::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::hex_decode
    - std::string::empty
    - Botan::DL_Group::PEM_encode
    - get_arg
    - CLI_Usage_Error
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: Botan_CLI::PK_Keygen::PK_Keygen
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Keygen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::PK_Keygen::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_CLI::PK_Keygen::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:50,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:51,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/pubkey.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:54,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:57,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:60,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:61,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:63,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:66,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:67,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:67,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:69,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:70,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:70,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:73,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:73,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:79,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:79,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:81,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:82,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:82,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:85,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:85,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 90
    functionName: Botan_CLI::PK_Keygen::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - get_arg_sz
    - CLI_Error_Unsupported
    - Botan::PKCS8::BER_encode
    - std::string::empty
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::PEM_encode
    - flag_set
    - write_output
    - get_passphrase_arg
    - get_arg
    - output
    - Botan::create_private_key
    - rng
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:102,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:109,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ' key'
    - ' padding'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: Botan_CLI::choose_sig_padding
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string choose_sig_padding(const std::string& key, const std::string&
      padding, const std::string& hash)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:102,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:109,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:112,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ' key'
    - ' padding'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: Botan_CLI::choose_sig_padding
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string choose_sig_padding(const std::string& key, const std::string&
      padding, const std::string& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan_CLI::PK_Fingerprint::PK_Fingerprint
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Fingerprint()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan_CLI::PK_Fingerprint::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan_CLI::PK_Fingerprint::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:132,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:133,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pubkey.cpp:135,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:136,1
    - Dst: Botan_CLI::PK_Fingerprint::slurp_file
      Src: /src/botan/src/cli/pubkey.cpp:136,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:137,1
    - Dst: std::unique_ptr::fingerprint_public
      Src: /src/botan/src/cli/pubkey.cpp:139,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:142,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: Botan_CLI::PK_Fingerprint::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - get_arg_list
    - get_arg
    - output
    - Botan::X509::load_key
    - Botan_CLI::PK_Fingerprint::slurp_file
    - std::unique_ptr::fingerprint_public
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:159,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:161,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:164,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:167,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:169,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - empty
    - CLI_Error
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_filename, const std::string& passphrase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:159,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:161,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:164,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:167,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:169,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - empty
    - CLI_Error
    - what
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> load_private_key(const std::string&
      key_filename, const std::string& passphrase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: Botan_CLI::PK_Sign::PK_Sign
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PK_Sign::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: Botan_CLI::PK_Sign::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:190,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:191,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/pubkey.cpp:193,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:195,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:197,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:197,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:198,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:201,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:205,1
    - Dst: auto::_signature_element_size_for_DER_encoding
      Src: /src/botan/src/cli/pubkey.cpp:206,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:207,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:207,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:213,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:215,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/pubkey.cpp:217,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/pubkey.cpp:220,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:220,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/cli/pubkey.cpp:222,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:224,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:225,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:227,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:227,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:231,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/pubkey.cpp:231,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 232
    functionName: Botan_CLI::PK_Sign::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - Botan::PKCS8::PEM_encode
    - auto::stateful_operation
    - Botan::PK_Signer::signature
    - std::string::empty
    - get_passphrase_arg
    - load_private_key
    - flag_set
    - auto::_signature_element_size_for_DER_encoding
    - get_arg
    - Botan::HashFunction::create
    - CLI_Usage_Error
    - Botan::PK_Signer::update
    - Botan::base64_encode
    - auto::algo_name
    - output
    - CLI_Error_Unsupported
    - rng
    - choose_sig_padding
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan_CLI::PK_Verify::PK_Verify
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: Botan_CLI::PK_Verify::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Botan_CLI::PK_Verify::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:248,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:248,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:250,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:253,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:255,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:255,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:256,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:259,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:262,1
    - Dst: auto::message_parts
      Src: /src/botan/src/cli/pubkey.cpp:263,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:264,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:264,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/pubkey.cpp:271,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:272,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:272,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: Botan_CLI::PK_Verify::slurp_file_as_str
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/pubkey.cpp:277,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:279,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 280
    functionName: Botan_CLI::PK_Verify::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - std::string::empty
    - CLI_Error
    - Botan_CLI::PK_Verify::slurp_file_as_str
    - flag_set
    - auto::message_parts
    - get_arg
    - Botan::HashFunction::create
    - auto::algo_name
    - CLI_Usage_Error
    - output
    - Botan::base64_decode
    - CLI_Error_Unsupported
    - Botan::PK_Verifier::update
    - choose_sig_padding
    - Botan::X509::load_key
    - Botan::PK_Verifier::check_signature
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: Botan_CLI::PKCS8_Tool::PKCS8_Tool
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS8_Tool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan_CLI::PKCS8_Tool::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Botan_CLI::PKCS8_Tool::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:297,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:298,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:303,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:304,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:306,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:309,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:310,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:312,1
    - Dst: std::unique_ptr::public_key
      Src: /src/botan/src/cli/pubkey.cpp:313,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:317,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:317,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:320,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:323,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:324,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:324,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:326,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:327,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:327,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:330,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:330,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:331,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:335,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:336,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:336,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:338,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:339,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:339,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:342,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:342,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:343,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 348
    functionName: Botan_CLI::PKCS8_Tool::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - get_arg_sz
    - Botan::PKCS8::BER_encode
    - std::string::empty
    - Botan::X509::BER_encode
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::PEM_encode
    - flag_set
    - write_output
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    - get_passphrase_arg
    - get_arg
    - output
    - std::unique_ptr::public_key
    - rng
    - Botan::X509::PEM_encode
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: Botan_CLI::EC_Group_Info::EC_Group_Info
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Botan_CLI::EC_Group_Info::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: Botan_CLI::EC_Group_Info::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/pubkey.cpp:368,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:368,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:370,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:373,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:373,1
    - Dst: auto::get_a
      Src: /src/botan/src/cli/pubkey.cpp:374,1
    - Dst: auto::get_b
      Src: /src/botan/src/cli/pubkey.cpp:375,1
    - Dst: auto::get_order
      Src: /src/botan/src/cli/pubkey.cpp:376,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/cli/pubkey.cpp:377,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/cli/pubkey.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 379
    functionName: Botan_CLI::EC_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::get_order
    - auto::get_g_x
    - flag_set
    - auto::get_a
    - Botan::EC_Group::from_name
    - get_arg
    - auto::get_p
    - auto::get_b
    - output
    - auto::get_g_y
    - auto::PEM_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: Botan_CLI::DL_Group_Info::DL_Group_Info
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_Group_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: Botan_CLI::DL_Group_Info::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: Botan_CLI::DL_Group_Info::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/pubkey.cpp:399,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:399,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:401,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:404,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:404,1
    - Dst: auto::get_g
      Src: /src/botan/src/cli/pubkey.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 407
    functionName: Botan_CLI::DL_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - auto::get_g
    - Botan::DL_Group::from_name
    - get_arg
    - auto::get_p
    - output
    - auto::PEM_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: Botan_CLI::PK_Workfactor::PK_Workfactor
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Workfactor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: Botan_CLI::PK_Workfactor::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 418
    functionName: Botan_CLI::PK_Workfactor::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:421,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:422,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:425,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/cli/pubkey.cpp:425,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:427,1
    - Dst: Botan::dl_work_factor
      Src: /src/botan/src/cli/pubkey.cpp:427,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:429,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/cli/pubkey.cpp:429,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 433
    functionName: Botan_CLI::PK_Workfactor::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::dl_exponent_size
    - Botan::if_work_factor
    - get_arg
    - Botan::dl_work_factor
    - output
    - CLI_Usage_Error
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: Botan_CLI::Gen_DL_Group::Gen_DL_Group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_DL_Group()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 443
    functionName: Botan_CLI::Gen_DL_Group::group
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 445
    functionName: Botan_CLI::Gen_DL_Group::description
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:448,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:449,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:451,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:452,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:455,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:456,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:459,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:459,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:461,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:462,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:465,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:465,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:474,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:478,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:480,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:480,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/pubkey.cpp:482,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:484,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:484,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:488,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 490
    functionName: Botan_CLI::Gen_DL_Group::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - Botan::hex_decode
    - std::string::empty
    - Botan::DL_Group::PEM_encode
    - get_arg
    - CLI_Usage_Error
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_CLI::Modular_Inverse::Modular_Inverse
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Modular_Inverse()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_CLI::Modular_Inverse::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::Modular_Inverse::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:29,1
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:30,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/cli/math.cpp:32,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:33,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Modular_Inverse::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - Botan::inverse_mod_general
    - get_arg
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::Gen_Prime::Gen_Prime
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_Prime()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::Gen_Prime::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_CLI::Gen_Prime::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:51,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:52,1
    - Dst: flag_set
      Src: /src/botan/src/cli/math.cpp:53,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/math.cpp:56,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:56,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:59,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: Botan_CLI::Gen_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - flag_set
    - output
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan_CLI::Is_Prime::Is_Prime
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Is_Prime()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan_CLI::Is_Prime::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan_CLI::Is_Prime::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:78,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:79,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:80,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:80,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: Botan_CLI::Is_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - get_arg
    - output
    - rng
    - Botan::is_prime
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::Factor::Factor
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Factor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::Factor::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::Factor::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:101,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:103,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:103,1
    - Dst: std::sort
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:106,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:108,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Factor::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - std::sort
    - Botan_CLI::Factor::factorize
    - std::vector::end
    - get_arg
    - std::vector::begin
    - output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Factor::remove_small_factors
      Src: /src/botan/src/cli/math.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:119,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:120,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:124,1
    - Dst: Botan_CLI::Factor::rho
      Src: /src/botan/src/cli/math.cpp:126,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ' n_in'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 138
    functionName: Botan_CLI::Factor::factorize
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::Factor::remove_small_factors
    - std::vector::push_back
    - Botan_CLI::Factor::factorize
    - Botan_CLI::Factor::rho
    - Botan::is_prime
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: std::vector<Botan::BigInt>
    signature: std::vector<Botan::BigInt> factorize(const Botan::BigInt& n_in, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Montgomery_Int::one
      Src: /src/botan/src/cli/math.cpp:147,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:149,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:150,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/cli/math.cpp:151,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:155,1
    - Dst: Botan::Montgomery_Int::square_this_n_times
      Src: /src/botan/src/cli/math.cpp:170,1
    - Dst: Botan::Montgomery_Int::mul_by
      Src: /src/botan/src/cli/math.cpp:175,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:178,1
    - Dst: Botan::Montgomery_Int::value
      Src: /src/botan/src/cli/math.cpp:178,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/cli/math.cpp:198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - ' n'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 199
    functionName: Botan_CLI::Factor::rho
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 1
    functionsReached:
    - Botan::BigInt::BigInt
    - Botan::BigInt::random_integer
    - Botan::Sodium::sodium_memzero
    - Botan::BigInt::from_s32
    - Botan::Montgomery_Int::value
    - Botan::Montgomery_Int::one
    - Botan::gcd
    - Botan::Montgomery_Int::square_this_n_times
    - Botan::Montgomery_Int::mul_by
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt rho(const Botan::BigInt& n, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_even
      Src: /src/botan/src/cli/math.cpp:205,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:206,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:206,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:211,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:216,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 229
    functionName: Botan_CLI::Factor::remove_small_factors
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 1
    functionsReached:
    - Botan::BigInt::from_s32
    - Botan::gcd
    - is_even
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Botan::BigInt>
    signature: std::vector<Botan::BigInt> remove_small_factors(Botan::BigInt& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_CLI::Modular_Inverse::Modular_Inverse
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Modular_Inverse()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_CLI::Modular_Inverse::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::Modular_Inverse::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:29,1
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:30,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/cli/math.cpp:32,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:33,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Modular_Inverse::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - Botan::inverse_mod_general
    - get_arg
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::Gen_Prime::Gen_Prime
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_Prime()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::Gen_Prime::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_CLI::Gen_Prime::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:51,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:52,1
    - Dst: flag_set
      Src: /src/botan/src/cli/math.cpp:53,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/math.cpp:56,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:56,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:59,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: Botan_CLI::Gen_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - flag_set
    - output
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan_CLI::Is_Prime::Is_Prime
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Is_Prime()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan_CLI::Is_Prime::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan_CLI::Is_Prime::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:78,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:79,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:80,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:80,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: Botan_CLI::Is_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - get_arg
    - output
    - rng
    - Botan::is_prime
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::Factor::Factor
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Factor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::Factor::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::Factor::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:101,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:103,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:103,1
    - Dst: std::sort
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:106,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:108,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Factor::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - std::sort
    - Botan_CLI::Factor::factorize
    - std::vector::end
    - get_arg
    - std::vector::begin
    - output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Factor::remove_small_factors
      Src: /src/botan/src/cli/math.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:119,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:120,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:124,1
    - Dst: Botan_CLI::Factor::rho
      Src: /src/botan/src/cli/math.cpp:126,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ' n_in'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 138
    functionName: Botan_CLI::Factor::factorize
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::Factor::remove_small_factors
    - std::vector::push_back
    - Botan_CLI::Factor::factorize
    - Botan_CLI::Factor::rho
    - Botan::is_prime
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: std::vector<Botan::BigInt>
    signature: std::vector<Botan::BigInt> factorize(const Botan::BigInt& n_in, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Montgomery_Int::one
      Src: /src/botan/src/cli/math.cpp:147,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:149,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:150,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/cli/math.cpp:151,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:155,1
    - Dst: Botan::Montgomery_Int::square_this_n_times
      Src: /src/botan/src/cli/math.cpp:170,1
    - Dst: Botan::Montgomery_Int::mul_by
      Src: /src/botan/src/cli/math.cpp:175,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:178,1
    - Dst: Botan::Montgomery_Int::value
      Src: /src/botan/src/cli/math.cpp:178,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/cli/math.cpp:198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - ' n'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 199
    functionName: Botan_CLI::Factor::rho
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 2
    functionsReached:
    - Botan::BigInt::BigInt
    - Botan::BigInt::random_integer
    - Botan::Sodium::sodium_memzero
    - Botan::BigInt::from_s32
    - Botan::Montgomery_Int::value
    - Botan::Montgomery_Int::one
    - Botan::gcd
    - Botan::Montgomery_Int::square_this_n_times
    - Botan::Montgomery_Int::mul_by
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt rho(const Botan::BigInt& n, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_even
      Src: /src/botan/src/cli/math.cpp:205,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:206,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:206,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:211,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:216,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 229
    functionName: Botan_CLI::Factor::remove_small_factors
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 2
    functionsReached:
    - Botan::BigInt::from_s32
    - Botan::gcd
    - is_even
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Botan::BigInt>
    signature: std::vector<Botan::BigInt> remove_small_factors(Botan::BigInt& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_CLI::Modular_Inverse::Modular_Inverse
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Modular_Inverse()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_CLI::Modular_Inverse::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::Modular_Inverse::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:29,1
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:30,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/cli/math.cpp:32,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:33,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Modular_Inverse::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - Botan::inverse_mod_general
    - get_arg
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::Gen_Prime::Gen_Prime
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_Prime()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::Gen_Prime::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_CLI::Gen_Prime::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:51,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:52,1
    - Dst: flag_set
      Src: /src/botan/src/cli/math.cpp:53,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/math.cpp:56,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:56,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:59,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: Botan_CLI::Gen_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - flag_set
    - output
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan_CLI::Is_Prime::Is_Prime
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Is_Prime()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan_CLI::Is_Prime::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan_CLI::Is_Prime::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:78,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:79,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:80,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:80,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: Botan_CLI::Is_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - get_arg
    - output
    - rng
    - Botan::is_prime
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::Factor::Factor
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Factor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::Factor::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::Factor::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:101,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:103,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:103,1
    - Dst: std::sort
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:106,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:108,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Factor::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - std::sort
    - Botan_CLI::Factor::factorize
    - std::vector::end
    - get_arg
    - std::vector::begin
    - output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Factor::remove_small_factors
      Src: /src/botan/src/cli/math.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:119,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:120,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:124,1
    - Dst: Botan_CLI::Factor::rho
      Src: /src/botan/src/cli/math.cpp:126,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ' n_in'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 138
    functionName: Botan_CLI::Factor::factorize
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 6
    functionsReached:
    - Botan_CLI::Factor::remove_small_factors
    - std::vector::push_back
    - Botan_CLI::Factor::factorize
    - Botan_CLI::Factor::rho
    - Botan::is_prime
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: std::vector<Botan::BigInt>
    signature: std::vector<Botan::BigInt> factorize(const Botan::BigInt& n_in, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Montgomery_Int::one
      Src: /src/botan/src/cli/math.cpp:147,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:149,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:150,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/cli/math.cpp:151,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:155,1
    - Dst: Botan::Montgomery_Int::square_this_n_times
      Src: /src/botan/src/cli/math.cpp:170,1
    - Dst: Botan::Montgomery_Int::mul_by
      Src: /src/botan/src/cli/math.cpp:175,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:178,1
    - Dst: Botan::Montgomery_Int::value
      Src: /src/botan/src/cli/math.cpp:178,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/cli/math.cpp:198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - ' n'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 199
    functionName: Botan_CLI::Factor::rho
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 3
    functionsReached:
    - Botan::BigInt::BigInt
    - Botan::BigInt::random_integer
    - Botan::Sodium::sodium_memzero
    - Botan::BigInt::from_s32
    - Botan::Montgomery_Int::value
    - Botan::Montgomery_Int::one
    - Botan::gcd
    - Botan::Montgomery_Int::square_this_n_times
    - Botan::Montgomery_Int::mul_by
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt rho(const Botan::BigInt& n, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_even
      Src: /src/botan/src/cli/math.cpp:205,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:206,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:206,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:211,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:216,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 229
    functionName: Botan_CLI::Factor::remove_small_factors
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 3
    functionsReached:
    - Botan::BigInt::from_s32
    - Botan::gcd
    - is_even
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Botan::BigInt>
    signature: std::vector<Botan::BigInt> remove_small_factors(Botan::BigInt& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan_CLI::Modular_Inverse::Modular_Inverse
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Modular_Inverse()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan_CLI::Modular_Inverse::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::Modular_Inverse::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:29,1
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:30,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/cli/math.cpp:32,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:33,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Modular_Inverse::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - Botan::inverse_mod_general
    - get_arg
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::Gen_Prime::Gen_Prime
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Gen_Prime()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::Gen_Prime::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_CLI::Gen_Prime::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:51,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:52,1
    - Dst: flag_set
      Src: /src/botan/src/cli/math.cpp:53,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/math.cpp:56,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:56,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:59,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: Botan_CLI::Gen_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - flag_set
    - output
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan_CLI::Is_Prime::Is_Prime
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Is_Prime()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan_CLI::Is_Prime::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan_CLI::Is_Prime::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:78,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:79,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:80,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:80,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: Botan_CLI::Is_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - get_arg
    - output
    - rng
    - Botan::is_prime
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::Factor::Factor
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Factor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::Factor::group
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::Factor::description
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:101,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:103,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:103,1
    - Dst: std::sort
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/math.cpp:104,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:106,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:108,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Factor::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - std::sort
    - Botan_CLI::Factor::factorize
    - std::vector::end
    - get_arg
    - std::vector::begin
    - output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Factor::remove_small_factors
      Src: /src/botan/src/cli/math.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:119,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:120,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:124,1
    - Dst: Botan_CLI::Factor::rho
      Src: /src/botan/src/cli/math.cpp:126,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ' n_in'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 138
    functionName: Botan_CLI::Factor::factorize
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 8
    functionsReached:
    - Botan_CLI::Factor::remove_small_factors
    - std::vector::push_back
    - Botan_CLI::Factor::factorize
    - Botan_CLI::Factor::rho
    - Botan::is_prime
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: std::vector<Botan::BigInt>
    signature: std::vector<Botan::BigInt> factorize(const Botan::BigInt& n_in, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Montgomery_Int::one
      Src: /src/botan/src/cli/math.cpp:147,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:149,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:150,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/cli/math.cpp:151,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:155,1
    - Dst: Botan::Montgomery_Int::square_this_n_times
      Src: /src/botan/src/cli/math.cpp:170,1
    - Dst: Botan::Montgomery_Int::mul_by
      Src: /src/botan/src/cli/math.cpp:175,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:178,1
    - Dst: Botan::Montgomery_Int::value
      Src: /src/botan/src/cli/math.cpp:178,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/cli/math.cpp:198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - ' n'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 199
    functionName: Botan_CLI::Factor::rho
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 4
    functionsReached:
    - Botan::BigInt::BigInt
    - Botan::BigInt::random_integer
    - Botan::Sodium::sodium_memzero
    - Botan::BigInt::from_s32
    - Botan::Montgomery_Int::value
    - Botan::Montgomery_Int::one
    - Botan::gcd
    - Botan::Montgomery_Int::square_this_n_times
    - Botan::Montgomery_Int::mul_by
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt rho(const Botan::BigInt& n, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_even
      Src: /src/botan/src/cli/math.cpp:205,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:206,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:206,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:211,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:216,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 229
    functionName: Botan_CLI::Factor::remove_small_factors
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 4
    functionsReached:
    - Botan::BigInt::from_s32
    - Botan::gcd
    - is_even
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Botan::BigInt>
    signature: std::vector<Botan::BigInt> remove_small_factors(Botan::BigInt& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:47,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:54,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:56,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:58,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:58,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:59,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:61,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/perf_misc.cpp:61,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:64,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:67,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 70
    functionName: Botan_CLI::PerfTest_Hex::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::hex_decode
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::under
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:79,1
    - Dst: Botan::base32_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:82,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:86,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:88,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:90,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:90,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:93,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/perf_misc.cpp:93,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:99,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: Botan_CLI::PerfTest_Base32::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - Botan::base32_encode
    - std::vector::data
    - Botan::base32_decode
    - record_result
    - auto::under
    - Botan::base32_encode_max_output
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:113,1
    - Dst: Botan::base64_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:116,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:116,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:120,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:122,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:124,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:125,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:127,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/perf_misc.cpp:127,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:130,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:133,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: Botan_CLI::PerfTest_Base64::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::base64_encode_max_output
    - Botan::base64_encode
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::under
    - Botan::base64_decode
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:147,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:153,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:156,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:158,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/perf_misc.cpp:158,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:159,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/perf_misc.cpp:159,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:160,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:163,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: Botan_CLI::PerfTest_Base58::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - Botan::base58_encode
    - auto::under
    - Botan::base58_decode
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/perf_misc.cpp:178,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:180,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:181,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:183,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/cli/perf_misc.cpp:186,1
    - Dst: Botan::FPE_FE1::set_key
      Src: /src/botan/src/cli/perf_misc.cpp:189,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:191,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:193,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:194,1
    - Dst: Botan::FPE_FE1::encrypt
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:196,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:198,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_misc.cpp:200,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:201,1
    - Dst: Botan::FPE_FE1::decrypt
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:203,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:205,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 208
    functionName: Botan_CLI::PerfTest_FpeFe1::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - auto::events
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::start
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::BigInt::from_u64
    - auto::under
    - Botan::FPE_FE1::set_key
    - Botan::FPE_FE1::encrypt
    - Botan::FPE_FE1::decrypt
    - rng
    - auto::stop
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:218,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:219,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:221,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:224,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:226,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:227,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/cli/perf_misc.cpp:228,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:229,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:231,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/cli/perf_misc.cpp:232,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:233,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:238,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 240
    functionName: Botan_CLI::PerfTest_Rfc3394::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::rfc3394_keyunwrap
    - runtime
    - make_timer
    - record_result
    - auto::start
    - auto::under
    - Botan::rfc3394_keywrap
    - rng
    - auto::stop
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:265,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:268,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:276,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::map::size
      Src: /src/botan/src/cli/perf_misc.cpp:286,1
    - Dst: std::map::erase
      Src: /src/botan/src/cli/perf_misc.cpp:287,1
    - Dst: std::map::begin
      Src: /src/botan/src/cli/perf_misc.cpp:287,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:293,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:296,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/perf_misc.cpp:296,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:298,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_misc.cpp:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 303
    functionName: Botan_CLI::PerfTest_Zfec::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - auto::run_until_elapsed
    - Botan::fmt
    - runtime
    - std::map::size
    - make_timer
    - record_result
    - std::vector::data
    - std::map::erase
    - std::memcpy
    - error_output
    - Botan::ZFEC::decode_shares
    - std::map::begin
    - rng
    - Botan::ZFEC::encode
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:47,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:54,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:56,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:58,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:58,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:59,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:61,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/perf_misc.cpp:61,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:64,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:67,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 70
    functionName: Botan_CLI::PerfTest_Hex::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::hex_decode
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::under
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:79,1
    - Dst: Botan::base32_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:82,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:86,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:88,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:90,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:90,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:93,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/perf_misc.cpp:93,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:99,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: Botan_CLI::PerfTest_Base32::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - Botan::base32_encode
    - std::vector::data
    - Botan::base32_decode
    - record_result
    - auto::under
    - Botan::base32_encode_max_output
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:113,1
    - Dst: Botan::base64_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:116,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:116,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:120,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:122,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:124,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:125,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:127,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/perf_misc.cpp:127,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:130,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:133,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: Botan_CLI::PerfTest_Base64::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::base64_encode_max_output
    - Botan::base64_encode
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::under
    - Botan::base64_decode
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:147,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:153,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:156,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:158,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/perf_misc.cpp:158,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:159,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/perf_misc.cpp:159,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:160,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:163,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: Botan_CLI::PerfTest_Base58::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - Botan::base58_encode
    - auto::under
    - Botan::base58_decode
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/perf_misc.cpp:178,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:180,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:181,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:183,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/cli/perf_misc.cpp:186,1
    - Dst: Botan::FPE_FE1::set_key
      Src: /src/botan/src/cli/perf_misc.cpp:189,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:191,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:193,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:194,1
    - Dst: Botan::FPE_FE1::encrypt
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:196,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:198,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_misc.cpp:200,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:201,1
    - Dst: Botan::FPE_FE1::decrypt
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:203,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:205,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 208
    functionName: Botan_CLI::PerfTest_FpeFe1::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - auto::events
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::start
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::BigInt::from_u64
    - auto::under
    - Botan::FPE_FE1::set_key
    - Botan::FPE_FE1::encrypt
    - Botan::FPE_FE1::decrypt
    - rng
    - auto::stop
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:218,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:219,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:221,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:224,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:226,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:227,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/cli/perf_misc.cpp:228,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:229,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:231,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/cli/perf_misc.cpp:232,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:233,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:238,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 240
    functionName: Botan_CLI::PerfTest_Rfc3394::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::rfc3394_keyunwrap
    - runtime
    - make_timer
    - record_result
    - auto::start
    - auto::under
    - Botan::rfc3394_keywrap
    - rng
    - auto::stop
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:265,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:268,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:276,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::map::size
      Src: /src/botan/src/cli/perf_misc.cpp:286,1
    - Dst: std::map::erase
      Src: /src/botan/src/cli/perf_misc.cpp:287,1
    - Dst: std::map::begin
      Src: /src/botan/src/cli/perf_misc.cpp:287,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:293,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:296,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/perf_misc.cpp:296,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:298,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_misc.cpp:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 303
    functionName: Botan_CLI::PerfTest_Zfec::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - auto::run_until_elapsed
    - Botan::fmt
    - runtime
    - std::map::size
    - make_timer
    - record_result
    - std::vector::data
    - std::map::erase
    - std::memcpy
    - error_output
    - Botan::ZFEC::decode_shares
    - std::map::begin
    - rng
    - Botan::ZFEC::encode
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:47,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:54,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:56,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:58,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:58,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:59,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:61,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/perf_misc.cpp:61,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:64,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:67,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 70
    functionName: Botan_CLI::PerfTest_Hex::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::hex_decode
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::under
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:79,1
    - Dst: Botan::base32_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:82,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:86,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:88,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:90,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:90,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:93,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/perf_misc.cpp:93,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:99,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: Botan_CLI::PerfTest_Base32::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - Botan::base32_encode
    - std::vector::data
    - Botan::base32_decode
    - record_result
    - auto::under
    - Botan::base32_encode_max_output
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:113,1
    - Dst: Botan::base64_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:116,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:116,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:120,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:122,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:124,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:125,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:127,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/perf_misc.cpp:127,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:130,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:133,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: Botan_CLI::PerfTest_Base64::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::base64_encode_max_output
    - Botan::base64_encode
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::under
    - Botan::base64_decode
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:147,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:153,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:156,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:158,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/perf_misc.cpp:158,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:159,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/perf_misc.cpp:159,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:160,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:163,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: Botan_CLI::PerfTest_Base58::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - Botan::base58_encode
    - auto::under
    - Botan::base58_decode
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/perf_misc.cpp:178,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:180,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:181,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:183,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/cli/perf_misc.cpp:186,1
    - Dst: Botan::FPE_FE1::set_key
      Src: /src/botan/src/cli/perf_misc.cpp:189,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:191,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:193,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:194,1
    - Dst: Botan::FPE_FE1::encrypt
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:196,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:198,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_misc.cpp:200,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:201,1
    - Dst: Botan::FPE_FE1::decrypt
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:203,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:205,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 208
    functionName: Botan_CLI::PerfTest_FpeFe1::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - auto::events
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::start
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::BigInt::from_u64
    - auto::under
    - Botan::FPE_FE1::set_key
    - Botan::FPE_FE1::encrypt
    - Botan::FPE_FE1::decrypt
    - rng
    - auto::stop
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:218,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:219,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:221,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:224,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:226,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:227,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/cli/perf_misc.cpp:228,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:229,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:231,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/cli/perf_misc.cpp:232,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:233,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:238,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 240
    functionName: Botan_CLI::PerfTest_Rfc3394::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::rfc3394_keyunwrap
    - runtime
    - make_timer
    - record_result
    - auto::start
    - auto::under
    - Botan::rfc3394_keywrap
    - rng
    - auto::stop
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:265,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:268,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:276,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::map::size
      Src: /src/botan/src/cli/perf_misc.cpp:286,1
    - Dst: std::map::erase
      Src: /src/botan/src/cli/perf_misc.cpp:287,1
    - Dst: std::map::begin
      Src: /src/botan/src/cli/perf_misc.cpp:287,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:293,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:296,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/perf_misc.cpp:296,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:298,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_misc.cpp:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 303
    functionName: Botan_CLI::PerfTest_Zfec::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - auto::run_until_elapsed
    - Botan::fmt
    - runtime
    - std::map::size
    - make_timer
    - record_result
    - std::vector::data
    - std::map::erase
    - std::memcpy
    - error_output
    - Botan::ZFEC::decode_shares
    - std::map::begin
    - rng
    - Botan::ZFEC::encode
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:47,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:54,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:56,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:58,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:58,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:59,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:61,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/perf_misc.cpp:61,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:64,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:67,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 70
    functionName: Botan_CLI::PerfTest_Hex::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::hex_decode
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::under
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:79,1
    - Dst: Botan::base32_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:82,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:86,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:88,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:90,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:90,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:93,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/perf_misc.cpp:93,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:99,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: Botan_CLI::PerfTest_Base32::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - Botan::base32_encode
    - std::vector::data
    - Botan::base32_decode
    - record_result
    - auto::under
    - Botan::base32_encode_max_output
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:113,1
    - Dst: Botan::base64_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:116,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:116,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:120,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:122,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:124,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:125,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:127,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/perf_misc.cpp:127,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:130,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:133,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: Botan_CLI::PerfTest_Base64::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::base64_encode_max_output
    - Botan::base64_encode
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::under
    - Botan::base64_decode
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:147,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:150,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:153,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:156,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:158,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/perf_misc.cpp:158,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:159,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/perf_misc.cpp:159,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:160,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:163,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: Botan_CLI::PerfTest_Base58::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - Botan::base58_encode
    - auto::under
    - Botan::base58_decode
    - rng
    - auto::run
    - buffer_sizes
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/perf_misc.cpp:178,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:180,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:181,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:183,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/cli/perf_misc.cpp:186,1
    - Dst: Botan::FPE_FE1::set_key
      Src: /src/botan/src/cli/perf_misc.cpp:189,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:191,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:193,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:194,1
    - Dst: Botan::FPE_FE1::encrypt
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:195,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:196,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:198,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_misc.cpp:200,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:201,1
    - Dst: Botan::FPE_FE1::decrypt
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:202,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:203,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:205,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 208
    functionName: Botan_CLI::PerfTest_FpeFe1::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - auto::events
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - std::vector::data
    - auto::start
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::BigInt::from_u64
    - auto::under
    - Botan::FPE_FE1::set_key
    - Botan::FPE_FE1::encrypt
    - Botan::FPE_FE1::decrypt
    - rng
    - auto::stop
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:218,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:219,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:221,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:224,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:226,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:227,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/cli/perf_misc.cpp:228,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:229,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:231,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/cli/perf_misc.cpp:232,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:233,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:238,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 240
    functionName: Botan_CLI::PerfTest_Rfc3394::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::rfc3394_keyunwrap
    - runtime
    - make_timer
    - record_result
    - auto::start
    - auto::under
    - Botan::rfc3394_keywrap
    - rng
    - auto::stop
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:260,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:265,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:268,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:276,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:278,1
    - Dst: std::map::size
      Src: /src/botan/src/cli/perf_misc.cpp:286,1
    - Dst: std::map::erase
      Src: /src/botan/src/cli/perf_misc.cpp:287,1
    - Dst: std::map::begin
      Src: /src/botan/src/cli/perf_misc.cpp:287,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:293,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:296,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/perf_misc.cpp:296,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:298,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_misc.cpp:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 303
    functionName: Botan_CLI::PerfTest_Zfec::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - auto::run_until_elapsed
    - Botan::fmt
    - runtime
    - std::map::size
    - make_timer
    - record_result
    - std::vector::data
    - std::map::erase
    - std::memcpy
    - error_output
    - Botan::ZFEC::decode_shares
    - std::map::begin
    - rng
    - Botan::ZFEC::encode
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::FEC_Share::FEC_Share
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Share()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - share
    - k
    - n
    - padding
    - bits
    - len
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_CLI::FEC_Share::FEC_Share
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Share(size_t share, size_t k, size_t n, size_t padding, const
      uint8_t bits[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_CLI::FEC_Share::share_id
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t share_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_CLI::FEC_Share::k
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t k() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_CLI::FEC_Share::n
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::FEC_Share::padding
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t padding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/zfec.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_CLI::FEC_Share::share_size
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t share_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/zfec.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::FEC_Share::share_data
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * share_data() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/zfec.cpp:47,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:50,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/cli/zfec.cpp:53,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:54,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:60,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:70,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:73,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:74,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:76,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:76,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:79,1
    - Dst: Botan_CLI::FEC_Share::FEC_Share
      Src: /src/botan/src/cli/zfec.cpp:82,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 3
    argNames:
    - bits
    - len
    - ' hash'
    argTypes:
    - uint8_t[]
    - size_t
    - Botan::HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 84
    functionName: Botan_CLI::FEC_Share::deserialize
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - CLI_Error
    - Botan::load_be<uint32_t>
    - final
    - Botan_CLI::FEC_Share::FEC_Share
    - output_length
    - Botan::constant_time_compare
    - update
    linkageType: ''
    returnType: FEC_Share
    signature: FEC_Share deserialize(const uint8_t bits[], size_t len, Botan::HashFunction&
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::store_be
      Src: /src/botan/src/cli/zfec.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:90,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:91,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:93,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:96,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:96,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: data
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: size
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:99,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:100,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:101,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' hash'
    - ' out'
    argTypes:
    - Botan::HashFunction
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: Botan_CLI::FEC_Share::serialize_to
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - data
    - auto::data
    - auto::size
    - Botan::store_be
    - write
    - final
    - size
    - update
    - reinterpret_cast<const char*>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void serialize_to(Botan::HashFunction& hash, std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan_CLI::FEC_Encode::FEC_Encode
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan_CLI::FEC_Encode::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan_CLI::FEC_Encode::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/zfec.cpp:125,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/zfec.cpp:126,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:128,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:129,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:131,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:135,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:137,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:137,1
    - Dst: auto::update
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::final
      Src: /src/botan/src/cli/zfec.cpp:141,1
    - Dst: auto::insert
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:146,1
    - Dst: auto::push_back
      Src: /src/botan/src/cli/zfec.cpp:148,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:154,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:158,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:166,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/zfec.cpp:170,1
    - Dst: FEC_Share::serialize_to
      Src: /src/botan/src/cli/zfec.cpp:173,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/zfec.cpp:176,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:176,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 177
    functionName: Botan_CLI::FEC_Encode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - slurp_file
    - auto::begin
    - auto::insert
    - auto::size
    - std::string::empty
    - auto::data
    - Botan::HashFunction::create_or_throw
    - get_arg
    - auto::update
    - std::ostringstream::str
    - FEC_Share::serialize_to
    - auto::final
    - auto::end
    - Botan::ZFEC::encode
    - auto::push_back
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: Botan_CLI::FEC_Decode::FEC_Decode
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: Botan_CLI::FEC_Decode::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: Botan_CLI::FEC_Decode::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:191,1
    - Dst: auto::output_length
      Src: /src/botan/src/cli/zfec.cpp:192,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/zfec.cpp:196,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:197,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/zfec.cpp:201,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:203,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:203,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/zfec.cpp:207,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:208,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:209,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:220,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:221,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:222,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:226,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:227,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:233,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:234,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:235,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/zfec.cpp:244,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:250,1
    - Dst: auto::share_data
      Src: /src/botan/src/cli/zfec.cpp:250,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/zfec.cpp:253,1
    - Dst: auto::process
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:257,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:258,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:258,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:259,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:263,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:264,1
    - Dst: output_binary
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:268,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 269
    functionName: Botan_CLI::FEC_Decode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::FEC_Share::deserialize
    - auto::data
    - auto::share_data
    - auto::process
    - auto::size
    - auto::n
    - Botan::ZFEC::decode_shares
    - auto::k
    - Botan_CLI::FEC_Decode::set_return_code
    - std::vector::size
    - std::vector::empty
    - CLI_Error
    - Botan::HashFunction::create_or_throw
    - output_binary
    - what
    - auto::padding
    - Botan::constant_time_compare
    - auto::share_id
    - slurp_file
    - std::vector::push_back
    - auto::output_length
    - std::vector::data
    - get_arg_list
    - std::memcpy
    - error_output
    - reinterpret_cast<const char*>
    - auto::share_size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_CLI::FEC_Info::FEC_Info
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan_CLI::FEC_Info::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: Botan_CLI::FEC_Info::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:283,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:285,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:286,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: output
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:293,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 295
    functionName: Botan_CLI::FEC_Info::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - auto::share_id
    - slurp_file
    - Botan_CLI::FEC_Share::deserialize
    - auto::data
    - auto::size
    - Botan::HashFunction::create_or_throw
    - auto::n
    - get_arg
    - output
    - error_output
    - auto::k
    - what
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::FEC_Share::FEC_Share
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Share()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - share
    - k
    - n
    - padding
    - bits
    - len
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_CLI::FEC_Share::FEC_Share
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Share(size_t share, size_t k, size_t n, size_t padding, const
      uint8_t bits[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_CLI::FEC_Share::share_id
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t share_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_CLI::FEC_Share::k
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t k() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_CLI::FEC_Share::n
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::FEC_Share::padding
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t padding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/zfec.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_CLI::FEC_Share::share_size
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t share_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/zfec.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::FEC_Share::share_data
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * share_data() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/zfec.cpp:47,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:50,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/cli/zfec.cpp:53,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:54,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:60,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:70,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:73,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:74,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:76,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:76,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:79,1
    - Dst: Botan_CLI::FEC_Share::FEC_Share
      Src: /src/botan/src/cli/zfec.cpp:82,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 3
    argNames:
    - bits
    - len
    - ' hash'
    argTypes:
    - uint8_t[]
    - size_t
    - Botan::HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 84
    functionName: Botan_CLI::FEC_Share::deserialize
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 2
    functionsReached:
    - auto::data
    - CLI_Error
    - Botan::load_be<uint32_t>
    - final
    - Botan_CLI::FEC_Share::FEC_Share
    - output_length
    - Botan::constant_time_compare
    - update
    linkageType: ''
    returnType: FEC_Share
    signature: FEC_Share deserialize(const uint8_t bits[], size_t len, Botan::HashFunction&
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::store_be
      Src: /src/botan/src/cli/zfec.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:90,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:91,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:93,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:96,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:96,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: data
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: size
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:99,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:100,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:101,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' hash'
    - ' out'
    argTypes:
    - Botan::HashFunction
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: Botan_CLI::FEC_Share::serialize_to
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - data
    - auto::data
    - auto::size
    - Botan::store_be
    - write
    - final
    - size
    - update
    - reinterpret_cast<const char*>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void serialize_to(Botan::HashFunction& hash, std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan_CLI::FEC_Encode::FEC_Encode
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan_CLI::FEC_Encode::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan_CLI::FEC_Encode::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/zfec.cpp:125,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/zfec.cpp:126,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:128,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:129,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:131,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:135,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:137,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:137,1
    - Dst: auto::update
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::final
      Src: /src/botan/src/cli/zfec.cpp:141,1
    - Dst: auto::insert
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:146,1
    - Dst: auto::push_back
      Src: /src/botan/src/cli/zfec.cpp:148,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:154,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:158,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:166,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/zfec.cpp:170,1
    - Dst: FEC_Share::serialize_to
      Src: /src/botan/src/cli/zfec.cpp:173,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/zfec.cpp:176,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:176,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 177
    functionName: Botan_CLI::FEC_Encode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - slurp_file
    - auto::begin
    - auto::insert
    - auto::size
    - std::string::empty
    - auto::data
    - Botan::HashFunction::create_or_throw
    - get_arg
    - auto::update
    - std::ostringstream::str
    - FEC_Share::serialize_to
    - auto::final
    - auto::end
    - Botan::ZFEC::encode
    - auto::push_back
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: Botan_CLI::FEC_Decode::FEC_Decode
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: Botan_CLI::FEC_Decode::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: Botan_CLI::FEC_Decode::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:191,1
    - Dst: auto::output_length
      Src: /src/botan/src/cli/zfec.cpp:192,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/zfec.cpp:196,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:197,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/zfec.cpp:201,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:203,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:203,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/zfec.cpp:207,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:208,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:209,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:220,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:221,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:222,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:226,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:227,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:233,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:234,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:235,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/zfec.cpp:244,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:250,1
    - Dst: auto::share_data
      Src: /src/botan/src/cli/zfec.cpp:250,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/zfec.cpp:253,1
    - Dst: auto::process
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:257,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:258,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:258,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:259,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:263,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:264,1
    - Dst: output_binary
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:268,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 269
    functionName: Botan_CLI::FEC_Decode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::FEC_Share::deserialize
    - auto::data
    - auto::share_data
    - auto::process
    - auto::size
    - auto::n
    - Botan::ZFEC::decode_shares
    - auto::k
    - Botan_CLI::FEC_Decode::set_return_code
    - std::vector::size
    - std::vector::empty
    - CLI_Error
    - Botan::HashFunction::create_or_throw
    - output_binary
    - what
    - auto::padding
    - Botan::constant_time_compare
    - auto::share_id
    - slurp_file
    - std::vector::push_back
    - auto::output_length
    - std::vector::data
    - get_arg_list
    - std::memcpy
    - error_output
    - reinterpret_cast<const char*>
    - auto::share_size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_CLI::FEC_Info::FEC_Info
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan_CLI::FEC_Info::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: Botan_CLI::FEC_Info::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:283,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:285,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:286,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: output
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:293,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 295
    functionName: Botan_CLI::FEC_Info::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - auto::share_id
    - slurp_file
    - Botan_CLI::FEC_Share::deserialize
    - auto::data
    - auto::size
    - Botan::HashFunction::create_or_throw
    - auto::n
    - get_arg
    - output
    - error_output
    - auto::k
    - what
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::FEC_Share::FEC_Share
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Share()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - share
    - k
    - n
    - padding
    - bits
    - len
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_CLI::FEC_Share::FEC_Share
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Share(size_t share, size_t k, size_t n, size_t padding, const
      uint8_t bits[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_CLI::FEC_Share::share_id
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t share_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_CLI::FEC_Share::k
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t k() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_CLI::FEC_Share::n
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::FEC_Share::padding
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t padding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/zfec.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_CLI::FEC_Share::share_size
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t share_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/zfec.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::FEC_Share::share_data
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * share_data() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/zfec.cpp:47,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:50,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/cli/zfec.cpp:53,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:54,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:60,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:70,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:73,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:74,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:76,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:76,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:79,1
    - Dst: Botan_CLI::FEC_Share::FEC_Share
      Src: /src/botan/src/cli/zfec.cpp:82,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 3
    argNames:
    - bits
    - len
    - ' hash'
    argTypes:
    - uint8_t[]
    - size_t
    - Botan::HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 84
    functionName: Botan_CLI::FEC_Share::deserialize
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 4
    functionsReached:
    - auto::data
    - CLI_Error
    - Botan::load_be<uint32_t>
    - final
    - Botan_CLI::FEC_Share::FEC_Share
    - output_length
    - Botan::constant_time_compare
    - update
    linkageType: ''
    returnType: FEC_Share
    signature: FEC_Share deserialize(const uint8_t bits[], size_t len, Botan::HashFunction&
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::store_be
      Src: /src/botan/src/cli/zfec.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:90,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:91,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:93,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:96,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:96,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: data
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: size
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:99,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:100,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:101,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' hash'
    - ' out'
    argTypes:
    - Botan::HashFunction
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: Botan_CLI::FEC_Share::serialize_to
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - data
    - auto::data
    - auto::size
    - Botan::store_be
    - write
    - final
    - size
    - update
    - reinterpret_cast<const char*>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void serialize_to(Botan::HashFunction& hash, std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan_CLI::FEC_Encode::FEC_Encode
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan_CLI::FEC_Encode::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan_CLI::FEC_Encode::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/zfec.cpp:125,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/zfec.cpp:126,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:128,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:129,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:131,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:135,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:137,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:137,1
    - Dst: auto::update
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::final
      Src: /src/botan/src/cli/zfec.cpp:141,1
    - Dst: auto::insert
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:146,1
    - Dst: auto::push_back
      Src: /src/botan/src/cli/zfec.cpp:148,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:154,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:158,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:166,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/zfec.cpp:170,1
    - Dst: FEC_Share::serialize_to
      Src: /src/botan/src/cli/zfec.cpp:173,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/zfec.cpp:176,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:176,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 177
    functionName: Botan_CLI::FEC_Encode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - slurp_file
    - auto::begin
    - auto::insert
    - auto::size
    - std::string::empty
    - auto::data
    - Botan::HashFunction::create_or_throw
    - get_arg
    - auto::update
    - std::ostringstream::str
    - FEC_Share::serialize_to
    - auto::final
    - auto::end
    - Botan::ZFEC::encode
    - auto::push_back
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: Botan_CLI::FEC_Decode::FEC_Decode
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: Botan_CLI::FEC_Decode::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: Botan_CLI::FEC_Decode::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:191,1
    - Dst: auto::output_length
      Src: /src/botan/src/cli/zfec.cpp:192,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/zfec.cpp:196,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:197,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/zfec.cpp:201,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:203,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:203,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/zfec.cpp:207,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:208,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:209,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:220,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:221,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:222,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:226,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:227,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:233,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:234,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:235,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/zfec.cpp:244,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:250,1
    - Dst: auto::share_data
      Src: /src/botan/src/cli/zfec.cpp:250,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/zfec.cpp:253,1
    - Dst: auto::process
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:257,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:258,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:258,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:259,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:263,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:264,1
    - Dst: output_binary
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:268,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 269
    functionName: Botan_CLI::FEC_Decode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::FEC_Share::deserialize
    - auto::data
    - auto::share_data
    - auto::process
    - auto::size
    - auto::n
    - Botan::ZFEC::decode_shares
    - auto::k
    - Botan_CLI::FEC_Decode::set_return_code
    - std::vector::size
    - std::vector::empty
    - CLI_Error
    - Botan::HashFunction::create_or_throw
    - output_binary
    - what
    - auto::padding
    - Botan::constant_time_compare
    - auto::share_id
    - slurp_file
    - std::vector::push_back
    - auto::output_length
    - std::vector::data
    - get_arg_list
    - std::memcpy
    - error_output
    - reinterpret_cast<const char*>
    - auto::share_size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_CLI::FEC_Info::FEC_Info
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan_CLI::FEC_Info::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: Botan_CLI::FEC_Info::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:283,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:285,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:286,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: output
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:293,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 295
    functionName: Botan_CLI::FEC_Info::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - auto::share_id
    - slurp_file
    - Botan_CLI::FEC_Share::deserialize
    - auto::data
    - auto::size
    - Botan::HashFunction::create_or_throw
    - auto::n
    - get_arg
    - output
    - error_output
    - auto::k
    - what
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::FEC_Share::FEC_Share
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Share()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - share
    - k
    - n
    - padding
    - bits
    - len
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan_CLI::FEC_Share::FEC_Share
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Share(size_t share, size_t k, size_t n, size_t padding, const
      uint8_t bits[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_CLI::FEC_Share::share_id
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t share_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan_CLI::FEC_Share::k
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t k() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_CLI::FEC_Share::n
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::FEC_Share::padding
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t padding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/zfec.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan_CLI::FEC_Share::share_size
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t share_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/zfec.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_CLI::FEC_Share::share_data
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * share_data() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/zfec.cpp:47,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:50,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/cli/zfec.cpp:53,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:54,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:60,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:70,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:73,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:74,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:76,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:76,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:79,1
    - Dst: Botan_CLI::FEC_Share::FEC_Share
      Src: /src/botan/src/cli/zfec.cpp:82,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 3
    argNames:
    - bits
    - len
    - ' hash'
    argTypes:
    - uint8_t[]
    - size_t
    - Botan::HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 84
    functionName: Botan_CLI::FEC_Share::deserialize
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 6
    functionsReached:
    - auto::data
    - CLI_Error
    - Botan::load_be<uint32_t>
    - final
    - Botan_CLI::FEC_Share::FEC_Share
    - output_length
    - Botan::constant_time_compare
    - update
    linkageType: ''
    returnType: FEC_Share
    signature: FEC_Share deserialize(const uint8_t bits[], size_t len, Botan::HashFunction&
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::store_be
      Src: /src/botan/src/cli/zfec.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:90,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:91,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:93,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:96,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:96,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: data
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: size
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:99,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:100,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:101,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:103,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' hash'
    - ' out'
    argTypes:
    - Botan::HashFunction
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: Botan_CLI::FEC_Share::serialize_to
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - data
    - auto::data
    - auto::size
    - Botan::store_be
    - write
    - final
    - size
    - update
    - reinterpret_cast<const char*>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void serialize_to(Botan::HashFunction& hash, std::ostream& out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan_CLI::FEC_Encode::FEC_Encode
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan_CLI::FEC_Encode::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan_CLI::FEC_Encode::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/zfec.cpp:125,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/zfec.cpp:126,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:128,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:129,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:131,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:135,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:137,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:137,1
    - Dst: auto::update
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::final
      Src: /src/botan/src/cli/zfec.cpp:141,1
    - Dst: auto::insert
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:142,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:146,1
    - Dst: auto::push_back
      Src: /src/botan/src/cli/zfec.cpp:148,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:154,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:158,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:166,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/zfec.cpp:170,1
    - Dst: FEC_Share::serialize_to
      Src: /src/botan/src/cli/zfec.cpp:173,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/zfec.cpp:176,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:176,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 177
    functionName: Botan_CLI::FEC_Encode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - slurp_file
    - auto::begin
    - auto::insert
    - auto::size
    - std::string::empty
    - auto::data
    - Botan::HashFunction::create_or_throw
    - get_arg
    - auto::update
    - std::ostringstream::str
    - FEC_Share::serialize_to
    - auto::final
    - auto::end
    - Botan::ZFEC::encode
    - auto::push_back
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: Botan_CLI::FEC_Decode::FEC_Decode
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: Botan_CLI::FEC_Decode::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: Botan_CLI::FEC_Decode::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:191,1
    - Dst: auto::output_length
      Src: /src/botan/src/cli/zfec.cpp:192,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/zfec.cpp:196,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:197,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:200,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/zfec.cpp:201,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:203,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:203,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/zfec.cpp:207,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:208,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:209,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:220,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:221,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:222,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:226,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:227,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:233,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:234,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:235,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/zfec.cpp:244,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:250,1
    - Dst: auto::share_data
      Src: /src/botan/src/cli/zfec.cpp:250,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/zfec.cpp:253,1
    - Dst: auto::process
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:257,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:258,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:258,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:259,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:263,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:264,1
    - Dst: output_binary
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:268,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 269
    functionName: Botan_CLI::FEC_Decode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::FEC_Share::deserialize
    - auto::data
    - auto::share_data
    - auto::process
    - auto::size
    - auto::n
    - Botan::ZFEC::decode_shares
    - auto::k
    - Botan_CLI::FEC_Decode::set_return_code
    - std::vector::size
    - std::vector::empty
    - CLI_Error
    - Botan::HashFunction::create_or_throw
    - output_binary
    - what
    - auto::padding
    - Botan::constant_time_compare
    - auto::share_id
    - slurp_file
    - std::vector::push_back
    - auto::output_length
    - std::vector::data
    - get_arg_list
    - std::memcpy
    - error_output
    - reinterpret_cast<const char*>
    - auto::share_size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan_CLI::FEC_Info::FEC_Info
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FEC_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan_CLI::FEC_Info::group
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: Botan_CLI::FEC_Info::description
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:283,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:285,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:286,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:289,1
    - Dst: output
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:290,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:293,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 295
    functionName: Botan_CLI::FEC_Info::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - auto::share_id
    - slurp_file
    - Botan_CLI::FEC_Share::deserialize
    - auto::data
    - auto::size
    - Botan::HashFunction::create_or_throw
    - auto::n
    - get_arg
    - output
    - error_output
    - auto::k
    - what
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::PerfTest_BlockCipher::PerfTest_BlockCipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_BlockCipher(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:49,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:50,1
    - Dst: Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: Botan_CLI::PerfTest_BlockCipher::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::BlockCipher::providers
    - Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
    - Botan::BlockCipher::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_CLI::PerfTest_BlockCipher::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::BlockCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:60,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:61,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:62,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:66,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:67,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:67,1
    - Dst: block_size
      Src: /src/botan/src/cli/perf_sym.cpp:69,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:71,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:73,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:75,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:81,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:87,1
    - Dst: encrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:92,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:94,1
    - Dst: decrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::BlockCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 101
    functionName: Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - std::set::insert
    - maximum_keylength
    - make_timer
    - std::vector::size
    - std::vector::data
    - record_result
    - encrypt_n
    - decrypt_n
    - block_size
    - name
    - rng
    - auto::run
    - std::max<size_t>
    - buffer_sizes
    - set_key
    linkageType: ''
    returnType: void
    signature: void bench_block_cipher(const PerfConfig& config, Botan::BlockCipher&
      cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan_CLI::PerfTest_CipherMode::PerfTest_CipherMode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_CipherMode(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:113,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/perf_sym.cpp:114,1
    - Dst: Botan::Cipher_Mode::create_or_throw
      Src: /src/botan/src/cli/perf_sym.cpp:115,1
    - Dst: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
      Src: /src/botan/src/cli/perf_sym.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: Botan_CLI::PerfTest_CipherMode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::Cipher_Mode::providers
    - Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    - Botan::Cipher_Mode::create_or_throw
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_CLI::PerfTest_CipherMode::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::Cipher_Mode::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:125,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:126,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:127,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:129,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:129,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: key_spec
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:133,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:133,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:134,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:134,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:136,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:138,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:139,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:140,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:145,1
    - Dst: default_nonce_length
      Src: /src/botan/src/cli/perf_sym.cpp:145,1
    - Dst: minimum_final_size
      Src: /src/botan/src/cli/perf_sym.cpp:147,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:148,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:150,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:151,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:152,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:160,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/cli/perf_sym.cpp:162,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:163,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:167,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:168,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:169,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:174,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:177,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:178,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:184,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - ' config'
    - ' enc'
    - ' dec'
    argTypes:
    - PerfConfig
    - Botan::Cipher_Mode
    - Botan::Cipher_Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 187
    functionName: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - random_vec
    - record_result
    - default_nonce_length
    - buffer_sizes
    - auto::run_until_elapsed
    - Botan::secure_vector::empty
    - Botan::secure_vector::size
    - provider
    - runtime
    - key_spec
    - start
    - Botan::secure_vector::resize
    - auto::under
    - name
    - set_key
    - finish
    - make_timer
    - minimum_final_size
    - rng
    - auto::run
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_cipher_mode(const PerfConfig& config, Botan::Cipher_Mode&
      enc, Botan::Cipher_Mode& dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_CLI::PerfTest_StreamCipher::PerfTest_StreamCipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_StreamCipher(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:199,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:200,1
    - Dst: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: Botan_CLI::PerfTest_StreamCipher::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::create
    - Botan::StreamCipher::providers
    - Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: Botan_CLI::PerfTest_StreamCipher::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:210,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:211,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:212,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:214,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:215,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:216,1
    - Dst: valid_iv_length
      Src: /src/botan/src/cli/perf_sym.cpp:218,1
    - Dst: set_iv
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: Botan::InitializationVector::begin
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: Botan::InitializationVector::size
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:223,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:225,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:229,1
    - Dst: encipher
      Src: /src/botan/src/cli/perf_sym.cpp:231,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:235,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:240,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:241,1
    - Dst: write_keystream
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: auto::data
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::StreamCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 250
    functionName: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - random_vec
    - set_iv
    - auto::data
    - write_keystream
    - record_result
    - buffer_sizes
    - auto::run_until_elapsed
    - auto::size
    - provider
    - runtime
    - Botan::InitializationVector::size
    - auto::under
    - name
    - valid_iv_length
    - set_key
    - maximum_keylength
    - make_timer
    - encipher
    - rng
    - auto::run
    - Botan::InitializationVector::begin
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_stream_cipher(const PerfConfig& config, Botan::StreamCipher&
      cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_HashFunction(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/cli/perf_sym.cpp:262,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/perf_sym.cpp:263,1
    - Dst: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
      Src: /src/botan/src/cli/perf_sym.cpp:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: Botan_CLI::PerfTest_HashFunction::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    - Botan::HashFunction::providers
    - Botan::HashFunction::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/cli/perf_sym.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Botan_CLI::PerfTest_HashFunction::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/perf_sym.cpp:273,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:274,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:275,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:277,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:278,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:280,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:283,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:285,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:286,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:286,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' config'
    - ' hash'
    argTypes:
    - PerfConfig
    - Botan::HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 291
    functionName: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - auto::size
    - make_timer
    - record_result
    - std::vector::data
    - final
    - update
    - name
    - rng
    - output_length
    - buffer_sizes
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_hash_fn(const PerfConfig& config, Botan::HashFunction& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::PerfTest_MessageAuthenticationCode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_MessageAuthenticationCode(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:303,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/perf_sym.cpp:304,1
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
      Src: /src/botan/src/cli/perf_sym.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    - Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    - Botan::MessageAuthenticationCode::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/perf_sym.cpp:316,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:317,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:318,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:319,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:321,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:322,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:323,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:325,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:326,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:329,1
    - Dst: fresh_key_required_per_message
      Src: /src/botan/src/cli/perf_sym.cpp:331,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:332,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:334,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:335,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:336,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:336,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' config'
    - ' mac'
    argTypes:
    - PerfConfig
    - Botan::MessageAuthenticationCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 342
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - random_vec
    - record_result
    - fresh_key_required_per_message
    - output_length
    - buffer_sizes
    - auto::run_until_elapsed
    - Botan::secure_vector::size
    - provider
    - runtime
    - start
    - name
    - update
    - set_key
    - maximum_keylength
    - make_timer
    - std::vector::data
    - final
    - rng
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_mac_fn(const PerfConfig& config, Botan::MessageAuthenticationCode&
      mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 351
    functionName: Botan_CLI::PerfTest_XOF::PerfTest_XOF
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_XOF(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::providers
      Src: /src/botan/src/cli/perf_sym.cpp:354,1
    - Dst: Botan::XOF::create
      Src: /src/botan/src/cli/perf_sym.cpp:355,1
    - Dst: Botan_CLI::PerfTest_XOF::bench_xof_fn
      Src: /src/botan/src/cli/perf_sym.cpp:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: Botan_CLI::PerfTest_XOF::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_XOF::bench_xof_fn
    - Botan::XOF::create
    - Botan::XOF::providers
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::providers
      Src: /src/botan/src/cli/perf_sym.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Botan_CLI::PerfTest_XOF::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::XOF::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:365,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:366,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:368,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:369,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:373,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:373,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:376,1
    - Dst: output
      Src: /src/botan/src/cli/perf_sym.cpp:376,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:378,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:379,1
    - Dst: clear
      Src: /src/botan/src/cli/perf_sym.cpp:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' config'
    - ' xof'
    argTypes:
    - PerfConfig
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 384
    functionName: Botan_CLI::PerfTest_XOF::bench_xof_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - auto::size
    - make_timer
    - record_result
    - clear
    - name
    - output
    - Botan::secure_vector::size
    - rng
    - update
    - buffer_sizes
    linkageType: ''
    returnType: void
    signature: void bench_xof_fn(const PerfConfig& config, Botan::XOF& xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::PerfTest_BlockCipher::PerfTest_BlockCipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_BlockCipher(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:49,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:50,1
    - Dst: Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: Botan_CLI::PerfTest_BlockCipher::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::BlockCipher::providers
    - Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
    - Botan::BlockCipher::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_CLI::PerfTest_BlockCipher::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::BlockCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:60,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:61,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:62,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:66,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:67,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:67,1
    - Dst: block_size
      Src: /src/botan/src/cli/perf_sym.cpp:69,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:71,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:73,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:75,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:81,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:87,1
    - Dst: encrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:92,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:94,1
    - Dst: decrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::BlockCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 101
    functionName: Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - std::set::insert
    - maximum_keylength
    - make_timer
    - std::vector::size
    - std::vector::data
    - record_result
    - encrypt_n
    - decrypt_n
    - block_size
    - name
    - rng
    - auto::run
    - std::max<size_t>
    - buffer_sizes
    - set_key
    linkageType: ''
    returnType: void
    signature: void bench_block_cipher(const PerfConfig& config, Botan::BlockCipher&
      cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan_CLI::PerfTest_CipherMode::PerfTest_CipherMode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_CipherMode(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:113,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/perf_sym.cpp:114,1
    - Dst: Botan::Cipher_Mode::create_or_throw
      Src: /src/botan/src/cli/perf_sym.cpp:115,1
    - Dst: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
      Src: /src/botan/src/cli/perf_sym.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: Botan_CLI::PerfTest_CipherMode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::Cipher_Mode::providers
    - Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    - Botan::Cipher_Mode::create_or_throw
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_CLI::PerfTest_CipherMode::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::Cipher_Mode::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:125,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:126,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:127,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:129,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:129,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: key_spec
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:133,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:133,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:134,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:134,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:136,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:138,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:139,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:140,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:145,1
    - Dst: default_nonce_length
      Src: /src/botan/src/cli/perf_sym.cpp:145,1
    - Dst: minimum_final_size
      Src: /src/botan/src/cli/perf_sym.cpp:147,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:148,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:150,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:151,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:152,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:160,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/cli/perf_sym.cpp:162,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:163,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:167,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:168,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:169,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:174,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:177,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:178,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:184,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - ' config'
    - ' enc'
    - ' dec'
    argTypes:
    - PerfConfig
    - Botan::Cipher_Mode
    - Botan::Cipher_Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 187
    functionName: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - random_vec
    - record_result
    - default_nonce_length
    - buffer_sizes
    - auto::run_until_elapsed
    - Botan::secure_vector::empty
    - Botan::secure_vector::size
    - provider
    - runtime
    - key_spec
    - start
    - Botan::secure_vector::resize
    - auto::under
    - name
    - set_key
    - finish
    - make_timer
    - minimum_final_size
    - rng
    - auto::run
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_cipher_mode(const PerfConfig& config, Botan::Cipher_Mode&
      enc, Botan::Cipher_Mode& dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_CLI::PerfTest_StreamCipher::PerfTest_StreamCipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_StreamCipher(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:199,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:200,1
    - Dst: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: Botan_CLI::PerfTest_StreamCipher::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::create
    - Botan::StreamCipher::providers
    - Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: Botan_CLI::PerfTest_StreamCipher::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:210,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:211,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:212,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:214,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:215,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:216,1
    - Dst: valid_iv_length
      Src: /src/botan/src/cli/perf_sym.cpp:218,1
    - Dst: set_iv
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: Botan::InitializationVector::begin
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: Botan::InitializationVector::size
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:223,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:225,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:229,1
    - Dst: encipher
      Src: /src/botan/src/cli/perf_sym.cpp:231,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:235,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:240,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:241,1
    - Dst: write_keystream
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: auto::data
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::StreamCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 250
    functionName: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - random_vec
    - set_iv
    - auto::data
    - write_keystream
    - record_result
    - buffer_sizes
    - auto::run_until_elapsed
    - auto::size
    - provider
    - runtime
    - Botan::InitializationVector::size
    - auto::under
    - name
    - valid_iv_length
    - set_key
    - maximum_keylength
    - make_timer
    - encipher
    - rng
    - auto::run
    - Botan::InitializationVector::begin
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_stream_cipher(const PerfConfig& config, Botan::StreamCipher&
      cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_HashFunction(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/cli/perf_sym.cpp:262,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/perf_sym.cpp:263,1
    - Dst: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
      Src: /src/botan/src/cli/perf_sym.cpp:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: Botan_CLI::PerfTest_HashFunction::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    - Botan::HashFunction::providers
    - Botan::HashFunction::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/cli/perf_sym.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Botan_CLI::PerfTest_HashFunction::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/perf_sym.cpp:273,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:274,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:275,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:277,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:278,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:280,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:283,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:285,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:286,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:286,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' config'
    - ' hash'
    argTypes:
    - PerfConfig
    - Botan::HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 291
    functionName: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - auto::size
    - make_timer
    - record_result
    - std::vector::data
    - final
    - update
    - name
    - rng
    - output_length
    - buffer_sizes
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_hash_fn(const PerfConfig& config, Botan::HashFunction& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::PerfTest_MessageAuthenticationCode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_MessageAuthenticationCode(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:303,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/perf_sym.cpp:304,1
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
      Src: /src/botan/src/cli/perf_sym.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    - Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    - Botan::MessageAuthenticationCode::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/perf_sym.cpp:316,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:317,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:318,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:319,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:321,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:322,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:323,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:325,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:326,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:329,1
    - Dst: fresh_key_required_per_message
      Src: /src/botan/src/cli/perf_sym.cpp:331,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:332,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:334,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:335,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:336,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:336,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' config'
    - ' mac'
    argTypes:
    - PerfConfig
    - Botan::MessageAuthenticationCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 342
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - random_vec
    - record_result
    - fresh_key_required_per_message
    - output_length
    - buffer_sizes
    - auto::run_until_elapsed
    - Botan::secure_vector::size
    - provider
    - runtime
    - start
    - name
    - update
    - set_key
    - maximum_keylength
    - make_timer
    - std::vector::data
    - final
    - rng
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_mac_fn(const PerfConfig& config, Botan::MessageAuthenticationCode&
      mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 351
    functionName: Botan_CLI::PerfTest_XOF::PerfTest_XOF
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_XOF(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::providers
      Src: /src/botan/src/cli/perf_sym.cpp:354,1
    - Dst: Botan::XOF::create
      Src: /src/botan/src/cli/perf_sym.cpp:355,1
    - Dst: Botan_CLI::PerfTest_XOF::bench_xof_fn
      Src: /src/botan/src/cli/perf_sym.cpp:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: Botan_CLI::PerfTest_XOF::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_XOF::bench_xof_fn
    - Botan::XOF::create
    - Botan::XOF::providers
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::providers
      Src: /src/botan/src/cli/perf_sym.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Botan_CLI::PerfTest_XOF::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::XOF::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:365,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:366,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:368,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:369,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:373,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:373,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:376,1
    - Dst: output
      Src: /src/botan/src/cli/perf_sym.cpp:376,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:378,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:379,1
    - Dst: clear
      Src: /src/botan/src/cli/perf_sym.cpp:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' config'
    - ' xof'
    argTypes:
    - PerfConfig
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 384
    functionName: Botan_CLI::PerfTest_XOF::bench_xof_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - auto::size
    - make_timer
    - record_result
    - clear
    - name
    - output
    - Botan::secure_vector::size
    - rng
    - update
    - buffer_sizes
    linkageType: ''
    returnType: void
    signature: void bench_xof_fn(const PerfConfig& config, Botan::XOF& xof)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_XOF::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:395,1
    - Dst: std::make_unique<PerfTest_XOF>
      Src: /src/botan/src/cli/perf_sym.cpp:396,1
    - Dst: Botan_CLI::PerfTest_StreamCipher::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:401,1
    - Dst: std::make_unique<PerfTest_StreamCipher>
      Src: /src/botan/src/cli/perf_sym.cpp:402,1
    - Dst: Botan_CLI::PerfTest_BlockCipher::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:407,1
    - Dst: std::make_unique<PerfTest_BlockCipher>
      Src: /src/botan/src/cli/perf_sym.cpp:408,1
    - Dst: Botan_CLI::PerfTest_CipherMode::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:413,1
    - Dst: std::make_unique<PerfTest_CipherMode>
      Src: /src/botan/src/cli/perf_sym.cpp:414,1
    - Dst: Botan_CLI::PerfTest_HashFunction::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:419,1
    - Dst: std::make_unique<PerfTest_HashFunction>
      Src: /src/botan/src/cli/perf_sym.cpp:420,1
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:425,1
    - Dst: std::make_unique<PerfTest_MessageAuthenticationCode>
      Src: /src/botan/src/cli/perf_sym.cpp:426,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/perf_sym.cpp:430,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' alg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 432
    functionName: Botan_CLI::PerfTest::get_sym
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_HashFunction::has_impl_for
    - Botan_CLI::PerfTest_XOF::has_impl_for
    - std::make_unique<PerfTest_BlockCipher>
    - std::make_unique<PerfTest_XOF>
    - BOTAN_UNUSED
    - std::make_unique<PerfTest_CipherMode>
    - std::make_unique<PerfTest_StreamCipher>
    - Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
    - Botan_CLI::PerfTest_CipherMode::has_impl_for
    - std::make_unique<PerfTest_HashFunction>
    - std::make_unique<PerfTest_MessageAuthenticationCode>
    - Botan_CLI::PerfTest_StreamCipher::has_impl_for
    - Botan_CLI::PerfTest_BlockCipher::has_impl_for
    linkageType: ''
    returnType: std::unique_ptr<PerfTest>
    signature: std::unique_ptr<PerfTest> PerfTest::get_sym(const std::string& alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::PerfTest_BlockCipher::PerfTest_BlockCipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_BlockCipher(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:49,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:50,1
    - Dst: Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: Botan_CLI::PerfTest_BlockCipher::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::BlockCipher::providers
    - Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
    - Botan::BlockCipher::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_CLI::PerfTest_BlockCipher::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::BlockCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:60,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:61,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:62,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:66,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:67,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:67,1
    - Dst: block_size
      Src: /src/botan/src/cli/perf_sym.cpp:69,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:71,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:73,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:75,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:81,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:87,1
    - Dst: encrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:92,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:94,1
    - Dst: decrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::BlockCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 101
    functionName: Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 3
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - std::set::insert
    - maximum_keylength
    - make_timer
    - std::vector::size
    - std::vector::data
    - record_result
    - encrypt_n
    - decrypt_n
    - block_size
    - name
    - rng
    - auto::run
    - std::max<size_t>
    - buffer_sizes
    - set_key
    linkageType: ''
    returnType: void
    signature: void bench_block_cipher(const PerfConfig& config, Botan::BlockCipher&
      cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan_CLI::PerfTest_CipherMode::PerfTest_CipherMode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_CipherMode(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:113,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/perf_sym.cpp:114,1
    - Dst: Botan::Cipher_Mode::create_or_throw
      Src: /src/botan/src/cli/perf_sym.cpp:115,1
    - Dst: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
      Src: /src/botan/src/cli/perf_sym.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: Botan_CLI::PerfTest_CipherMode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::Cipher_Mode::providers
    - Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    - Botan::Cipher_Mode::create_or_throw
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_CLI::PerfTest_CipherMode::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::Cipher_Mode::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:125,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:126,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:127,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:129,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:129,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: key_spec
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:133,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:133,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:134,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:134,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:136,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:138,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:139,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:140,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:145,1
    - Dst: default_nonce_length
      Src: /src/botan/src/cli/perf_sym.cpp:145,1
    - Dst: minimum_final_size
      Src: /src/botan/src/cli/perf_sym.cpp:147,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:148,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:150,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:151,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:152,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:160,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/cli/perf_sym.cpp:162,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:163,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:167,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:168,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:169,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:174,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:177,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:178,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:184,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - ' config'
    - ' enc'
    - ' dec'
    argTypes:
    - PerfConfig
    - Botan::Cipher_Mode
    - Botan::Cipher_Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 187
    functionName: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 3
    functionsReached:
    - random_vec
    - record_result
    - default_nonce_length
    - buffer_sizes
    - auto::run_until_elapsed
    - Botan::secure_vector::empty
    - Botan::secure_vector::size
    - provider
    - runtime
    - key_spec
    - start
    - Botan::secure_vector::resize
    - auto::under
    - name
    - set_key
    - finish
    - make_timer
    - minimum_final_size
    - rng
    - auto::run
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_cipher_mode(const PerfConfig& config, Botan::Cipher_Mode&
      enc, Botan::Cipher_Mode& dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_CLI::PerfTest_StreamCipher::PerfTest_StreamCipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_StreamCipher(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:199,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:200,1
    - Dst: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: Botan_CLI::PerfTest_StreamCipher::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::create
    - Botan::StreamCipher::providers
    - Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: Botan_CLI::PerfTest_StreamCipher::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::StreamCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:210,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:211,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:212,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:214,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:215,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:216,1
    - Dst: valid_iv_length
      Src: /src/botan/src/cli/perf_sym.cpp:218,1
    - Dst: set_iv
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: Botan::InitializationVector::begin
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: Botan::InitializationVector::size
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:223,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:225,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:229,1
    - Dst: encipher
      Src: /src/botan/src/cli/perf_sym.cpp:231,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:235,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:240,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:241,1
    - Dst: write_keystream
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: auto::data
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::StreamCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 250
    functionName: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 3
    functionsReached:
    - random_vec
    - set_iv
    - auto::data
    - write_keystream
    - record_result
    - buffer_sizes
    - auto::run_until_elapsed
    - auto::size
    - provider
    - runtime
    - Botan::InitializationVector::size
    - auto::under
    - name
    - valid_iv_length
    - set_key
    - maximum_keylength
    - make_timer
    - encipher
    - rng
    - auto::run
    - Botan::InitializationVector::begin
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_stream_cipher(const PerfConfig& config, Botan::StreamCipher&
      cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_HashFunction(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/cli/perf_sym.cpp:262,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/perf_sym.cpp:263,1
    - Dst: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
      Src: /src/botan/src/cli/perf_sym.cpp:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: Botan_CLI::PerfTest_HashFunction::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    - Botan::HashFunction::providers
    - Botan::HashFunction::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/cli/perf_sym.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Botan_CLI::PerfTest_HashFunction::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::HashFunction::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/perf_sym.cpp:273,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:274,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:275,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:277,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:278,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:280,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:283,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:285,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:286,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:286,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' config'
    - ' hash'
    argTypes:
    - PerfConfig
    - Botan::HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 291
    functionName: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 3
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - auto::size
    - make_timer
    - record_result
    - std::vector::data
    - final
    - update
    - name
    - rng
    - output_length
    - buffer_sizes
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_hash_fn(const PerfConfig& config, Botan::HashFunction& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::PerfTest_MessageAuthenticationCode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_MessageAuthenticationCode(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:303,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/perf_sym.cpp:304,1
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
      Src: /src/botan/src/cli/perf_sym.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    - Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    - Botan::MessageAuthenticationCode::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/perf_sym.cpp:316,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:317,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:318,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:319,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:321,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:322,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:323,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:325,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:326,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:329,1
    - Dst: fresh_key_required_per_message
      Src: /src/botan/src/cli/perf_sym.cpp:331,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:332,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:334,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:335,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:336,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:336,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' config'
    - ' mac'
    argTypes:
    - PerfConfig
    - Botan::MessageAuthenticationCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 342
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 3
    functionsReached:
    - random_vec
    - record_result
    - fresh_key_required_per_message
    - output_length
    - buffer_sizes
    - auto::run_until_elapsed
    - Botan::secure_vector::size
    - provider
    - runtime
    - start
    - name
    - update
    - set_key
    - maximum_keylength
    - make_timer
    - std::vector::data
    - final
    - rng
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_mac_fn(const PerfConfig& config, Botan::MessageAuthenticationCode&
      mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 351
    functionName: Botan_CLI::PerfTest_XOF::PerfTest_XOF
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_XOF(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::providers
      Src: /src/botan/src/cli/perf_sym.cpp:354,1
    - Dst: Botan::XOF::create
      Src: /src/botan/src/cli/perf_sym.cpp:355,1
    - Dst: Botan_CLI::PerfTest_XOF::bench_xof_fn
      Src: /src/botan/src/cli/perf_sym.cpp:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: Botan_CLI::PerfTest_XOF::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_XOF::bench_xof_fn
    - Botan::XOF::create
    - Botan::XOF::providers
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::providers
      Src: /src/botan/src/cli/perf_sym.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Botan_CLI::PerfTest_XOF::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::XOF::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:365,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:366,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:368,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:369,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:373,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:373,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:376,1
    - Dst: output
      Src: /src/botan/src/cli/perf_sym.cpp:376,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:378,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:379,1
    - Dst: clear
      Src: /src/botan/src/cli/perf_sym.cpp:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' config'
    - ' xof'
    argTypes:
    - PerfConfig
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 384
    functionName: Botan_CLI::PerfTest_XOF::bench_xof_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 3
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - auto::size
    - make_timer
    - record_result
    - clear
    - name
    - output
    - Botan::secure_vector::size
    - rng
    - update
    - buffer_sizes
    linkageType: ''
    returnType: void
    signature: void bench_xof_fn(const PerfConfig& config, Botan::XOF& xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::PerfTest_BlockCipher::PerfTest_BlockCipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_BlockCipher(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:49,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:50,1
    - Dst: Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: Botan_CLI::PerfTest_BlockCipher::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::BlockCipher::providers
    - Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
    - Botan::BlockCipher::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_CLI::PerfTest_BlockCipher::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::BlockCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:60,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:61,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:62,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:66,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:67,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:67,1
    - Dst: block_size
      Src: /src/botan/src/cli/perf_sym.cpp:69,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:71,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:73,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:75,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:81,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:85,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:87,1
    - Dst: encrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:92,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:94,1
    - Dst: decrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::BlockCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 101
    functionName: Botan_CLI::PerfTest_BlockCipher::bench_block_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 4
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - std::set::insert
    - maximum_keylength
    - make_timer
    - std::vector::size
    - std::vector::data
    - record_result
    - encrypt_n
    - decrypt_n
    - block_size
    - name
    - rng
    - auto::run
    - std::max<size_t>
    - buffer_sizes
    - set_key
    linkageType: ''
    returnType: void
    signature: void bench_block_cipher(const PerfConfig& config, Botan::BlockCipher&
      cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan_CLI::PerfTest_CipherMode::PerfTest_CipherMode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_CipherMode(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:113,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/perf_sym.cpp:114,1
    - Dst: Botan::Cipher_Mode::create_or_throw
      Src: /src/botan/src/cli/perf_sym.cpp:115,1
    - Dst: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
      Src: /src/botan/src/cli/perf_sym.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: Botan_CLI::PerfTest_CipherMode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::Cipher_Mode::providers
    - Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    - Botan::Cipher_Mode::create_or_throw
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_CLI::PerfTest_CipherMode::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::Cipher_Mode::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:125,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:126,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:127,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:129,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:129,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: key_spec
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:133,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:133,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:134,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:134,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:136,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:138,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:139,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:140,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:143,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:145,1
    - Dst: default_nonce_length
      Src: /src/botan/src/cli/perf_sym.cpp:145,1
    - Dst: minimum_final_size
      Src: /src/botan/src/cli/perf_sym.cpp:147,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:148,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:150,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:151,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:152,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:160,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/cli/perf_sym.cpp:162,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:163,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:167,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:168,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:169,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:174,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:177,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:178,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:184,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - ' config'
    - ' enc'
    - ' dec'
    argTypes:
    - PerfConfig
    - Botan::Cipher_Mode
    - Botan::Cipher_Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 187
    functionName: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 4
    functionsReached:
    - random_vec
    - record_result
    - default_nonce_length
    - buffer_sizes
    - auto::run_until_elapsed
    - Botan::secure_vector::empty
    - Botan::secure_vector::size
    - provider
    - runtime
    - key_spec
    - start
    - Botan::secure_vector::resize
    - auto::under
    - name
    - set_key
    - finish
    - make_timer
    - minimum_final_size
    - rng
    - auto::run
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_cipher_mode(const PerfConfig& config, Botan::Cipher_Mode&
      enc, Botan::Cipher_Mode& dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_CLI::PerfTest_StreamCipher::PerfTest_StreamCipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_StreamCipher(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:199,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:200,1
    - Dst: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: Botan_CLI::PerfTest_StreamCipher::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::create
    - Botan::StreamCipher::providers
    - Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/cli/perf_sym.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: Botan_CLI::PerfTest_StreamCipher::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::StreamCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:210,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:211,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:212,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:214,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:215,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:216,1
    - Dst: valid_iv_length
      Src: /src/botan/src/cli/perf_sym.cpp:218,1
    - Dst: set_iv
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: Botan::InitializationVector::begin
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: Botan::InitializationVector::size
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:223,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:225,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:227,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:229,1
    - Dst: encipher
      Src: /src/botan/src/cli/perf_sym.cpp:231,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:235,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:238,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:240,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:241,1
    - Dst: write_keystream
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: auto::data
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:243,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::StreamCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 250
    functionName: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 4
    functionsReached:
    - random_vec
    - set_iv
    - auto::data
    - write_keystream
    - record_result
    - buffer_sizes
    - auto::run_until_elapsed
    - auto::size
    - provider
    - runtime
    - Botan::InitializationVector::size
    - auto::under
    - name
    - valid_iv_length
    - set_key
    - maximum_keylength
    - make_timer
    - encipher
    - rng
    - auto::run
    - Botan::InitializationVector::begin
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_stream_cipher(const PerfConfig& config, Botan::StreamCipher&
      cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_HashFunction(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/cli/perf_sym.cpp:262,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/perf_sym.cpp:263,1
    - Dst: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
      Src: /src/botan/src/cli/perf_sym.cpp:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: Botan_CLI::PerfTest_HashFunction::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    - Botan::HashFunction::providers
    - Botan::HashFunction::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/cli/perf_sym.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Botan_CLI::PerfTest_HashFunction::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::HashFunction::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/perf_sym.cpp:273,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:274,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:275,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:277,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:278,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:280,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:282,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:283,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:285,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:286,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:286,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' config'
    - ' hash'
    argTypes:
    - PerfConfig
    - Botan::HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 291
    functionName: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 4
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - auto::size
    - make_timer
    - record_result
    - std::vector::data
    - final
    - update
    - name
    - rng
    - output_length
    - buffer_sizes
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_hash_fn(const PerfConfig& config, Botan::HashFunction& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::PerfTest_MessageAuthenticationCode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_MessageAuthenticationCode(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:303,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/perf_sym.cpp:304,1
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
      Src: /src/botan/src/cli/perf_sym.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    - Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    - Botan::MessageAuthenticationCode::create
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/cli/perf_sym.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::MessageAuthenticationCode::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/cli/perf_sym.cpp:316,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:317,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:318,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:319,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:321,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:322,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:323,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:325,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:326,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:328,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:329,1
    - Dst: fresh_key_required_per_message
      Src: /src/botan/src/cli/perf_sym.cpp:331,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:332,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:334,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:335,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:336,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:336,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' config'
    - ' mac'
    argTypes:
    - PerfConfig
    - Botan::MessageAuthenticationCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 342
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 4
    functionsReached:
    - random_vec
    - record_result
    - fresh_key_required_per_message
    - output_length
    - buffer_sizes
    - auto::run_until_elapsed
    - Botan::secure_vector::size
    - provider
    - runtime
    - start
    - name
    - update
    - set_key
    - maximum_keylength
    - make_timer
    - std::vector::data
    - final
    - rng
    - std::max<size_t>
    linkageType: ''
    returnType: void
    signature: void bench_mac_fn(const PerfConfig& config, Botan::MessageAuthenticationCode&
      mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 351
    functionName: Botan_CLI::PerfTest_XOF::PerfTest_XOF
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PerfTest_XOF(std::string_view alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::providers
      Src: /src/botan/src/cli/perf_sym.cpp:354,1
    - Dst: Botan::XOF::create
      Src: /src/botan/src/cli/perf_sym.cpp:355,1
    - Dst: Botan_CLI::PerfTest_XOF::bench_xof_fn
      Src: /src/botan/src/cli/perf_sym.cpp:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: Botan_CLI::PerfTest_XOF::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_XOF::bench_xof_fn
    - Botan::XOF::create
    - Botan::XOF::providers
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::providers
      Src: /src/botan/src/cli/perf_sym.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Botan_CLI::PerfTest_XOF::has_impl_for
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - Botan::XOF::providers
    linkageType: ''
    returnType: bool
    signature: bool has_impl_for(std::string_view alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:365,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:366,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:368,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:369,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:372,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:373,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:373,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:375,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:376,1
    - Dst: output
      Src: /src/botan/src/cli/perf_sym.cpp:376,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:378,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:379,1
    - Dst: clear
      Src: /src/botan/src/cli/perf_sym.cpp:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' config'
    - ' xof'
    argTypes:
    - PerfConfig
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 384
    functionName: Botan_CLI::PerfTest_XOF::bench_xof_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 4
    functionsReached:
    - provider
    - auto::run_until_elapsed
    - runtime
    - auto::size
    - make_timer
    - record_result
    - clear
    - name
    - output
    - Botan::secure_vector::size
    - rng
    - update
    - buffer_sizes
    linkageType: ''
    returnType: void
    signature: void bench_xof_fn(const PerfConfig& config, Botan::XOF& xof)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_XOF::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:395,1
    - Dst: std::make_unique<PerfTest_XOF>
      Src: /src/botan/src/cli/perf_sym.cpp:396,1
    - Dst: Botan_CLI::PerfTest_StreamCipher::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:401,1
    - Dst: std::make_unique<PerfTest_StreamCipher>
      Src: /src/botan/src/cli/perf_sym.cpp:402,1
    - Dst: Botan_CLI::PerfTest_BlockCipher::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:407,1
    - Dst: std::make_unique<PerfTest_BlockCipher>
      Src: /src/botan/src/cli/perf_sym.cpp:408,1
    - Dst: Botan_CLI::PerfTest_CipherMode::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:413,1
    - Dst: std::make_unique<PerfTest_CipherMode>
      Src: /src/botan/src/cli/perf_sym.cpp:414,1
    - Dst: Botan_CLI::PerfTest_HashFunction::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:419,1
    - Dst: std::make_unique<PerfTest_HashFunction>
      Src: /src/botan/src/cli/perf_sym.cpp:420,1
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:425,1
    - Dst: std::make_unique<PerfTest_MessageAuthenticationCode>
      Src: /src/botan/src/cli/perf_sym.cpp:426,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/perf_sym.cpp:430,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' alg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 432
    functionName: Botan_CLI::PerfTest::get_sym
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_HashFunction::has_impl_for
    - Botan_CLI::PerfTest_XOF::has_impl_for
    - std::make_unique<PerfTest_BlockCipher>
    - std::make_unique<PerfTest_XOF>
    - BOTAN_UNUSED
    - std::make_unique<PerfTest_CipherMode>
    - std::make_unique<PerfTest_StreamCipher>
    - Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
    - Botan_CLI::PerfTest_CipherMode::has_impl_for
    - std::make_unique<PerfTest_HashFunction>
    - std::make_unique<PerfTest_MessageAuthenticationCode>
    - Botan_CLI::PerfTest_StreamCipher::has_impl_for
    - Botan_CLI::PerfTest_BlockCipher::has_impl_for
    linkageType: ''
    returnType: std::unique_ptr<PerfTest>
    signature: std::unique_ptr<PerfTest> PerfTest::get_sym(const std::string& alg)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: Botan_CLI::luhn_checksum
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t luhn_checksum(uint64_t cc_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::luhn_checksum
      Src: /src/botan/src/cli/cc_enc.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_CLI::luhn_check
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::luhn_checksum
    linkageType: ''
    returnType: bool
    signature: bool luhn_check(uint64_t cc_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: Botan_CLI::cc_rank
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cc_rank(uint64_t cc_number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::luhn_check
      Src: /src/botan/src/cli/cc_enc.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: Botan_CLI::cc_derank
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::luhn_check
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cc_derank(uint64_t cc_number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FPE::fe1_encrypt
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:67,1
    - Dst: Botan::Internal_Error::Internal_Error
      Src: /src/botan/src/cli/cc_enc.cpp:68,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:73,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - cc_number
    - ' key'
    - ' tweak'
    argTypes:
    - uint64_t
    - Botan::SymmetricKey
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: Botan_CLI::encrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::FPE::fe1_encrypt
    - Botan_CLI::cc_rank
    - Botan::BigInt::byte_at
    - Botan::BigInt::from_u64
    - Botan::Internal_Error::Internal_Error
    - Botan_CLI::cc_derank
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t encrypt_cc_number(uint64_t cc_number, const Botan::SymmetricKey&
      key, const std::vector<uint8_t>& tweak)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FPE::fe1_decrypt
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:83,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cc_enc.cpp:84,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:89,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - enc_cc
    - ' key'
    - ' tweak'
    argTypes:
    - uint64_t
    - Botan::SymmetricKey
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: Botan_CLI::decrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::FPE::fe1_decrypt
    - CLI_Error
    - Botan_CLI::cc_rank
    - Botan::BigInt::byte_at
    - Botan::BigInt::from_u64
    - Botan_CLI::cc_derank
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t decrypt_cc_number(uint64_t enc_cc, const Botan::SymmetricKey&
      key, const std::vector<uint8_t>& tweak)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::CC_Encrypt::CC_Encrypt
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CC_Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::CC_Encrypt::group
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_CLI::CC_Encrypt::description
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoull
      Src: /src/botan/src/cli/cc_enc.cpp:105,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:105,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:106,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:106,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:107,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:109,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:111,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:116,1
    - Dst: encrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: Botan_CLI::CC_Encrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Botan::hex_decode
    - Botan::SymmetricKey
    - std::vector::data
    - Botan::PBKDF::create
    - encrypt_cc_number
    - get_arg
    - output
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_CLI::CC_Decrypt::CC_Decrypt
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CC_Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_CLI::CC_Decrypt::group
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan_CLI::CC_Decrypt::description
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoull
      Src: /src/botan/src/cli/cc_enc.cpp:133,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:133,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:134,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:134,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:135,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:137,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:139,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:144,1
    - Dst: decrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: Botan_CLI::CC_Decrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Botan::hex_decode
    - Botan::SymmetricKey
    - std::vector::data
    - Botan::PBKDF::create
    - decrypt_cc_number
    - get_arg
    - output
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: Botan_CLI::luhn_checksum
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t luhn_checksum(uint64_t cc_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::luhn_checksum
      Src: /src/botan/src/cli/cc_enc.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_CLI::luhn_check
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::luhn_checksum
    linkageType: ''
    returnType: bool
    signature: bool luhn_check(uint64_t cc_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: Botan_CLI::cc_rank
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cc_rank(uint64_t cc_number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::luhn_check
      Src: /src/botan/src/cli/cc_enc.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: Botan_CLI::cc_derank
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::luhn_check
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cc_derank(uint64_t cc_number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FPE::fe1_encrypt
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:67,1
    - Dst: Botan::Internal_Error::Internal_Error
      Src: /src/botan/src/cli/cc_enc.cpp:68,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:73,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - cc_number
    - ' key'
    - ' tweak'
    argTypes:
    - uint64_t
    - Botan::SymmetricKey
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: Botan_CLI::encrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::FPE::fe1_encrypt
    - Botan_CLI::cc_rank
    - Botan::BigInt::byte_at
    - Botan::BigInt::from_u64
    - Botan::Internal_Error::Internal_Error
    - Botan_CLI::cc_derank
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t encrypt_cc_number(uint64_t cc_number, const Botan::SymmetricKey&
      key, const std::vector<uint8_t>& tweak)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FPE::fe1_decrypt
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:83,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cc_enc.cpp:84,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:89,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - enc_cc
    - ' key'
    - ' tweak'
    argTypes:
    - uint64_t
    - Botan::SymmetricKey
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: Botan_CLI::decrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::FPE::fe1_decrypt
    - CLI_Error
    - Botan_CLI::cc_rank
    - Botan::BigInt::byte_at
    - Botan::BigInt::from_u64
    - Botan_CLI::cc_derank
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t decrypt_cc_number(uint64_t enc_cc, const Botan::SymmetricKey&
      key, const std::vector<uint8_t>& tweak)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::CC_Encrypt::CC_Encrypt
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CC_Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::CC_Encrypt::group
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_CLI::CC_Encrypt::description
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoull
      Src: /src/botan/src/cli/cc_enc.cpp:105,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:105,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:106,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:106,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:107,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:109,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:111,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:116,1
    - Dst: encrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: Botan_CLI::CC_Encrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Botan::hex_decode
    - Botan::SymmetricKey
    - std::vector::data
    - Botan::PBKDF::create
    - encrypt_cc_number
    - get_arg
    - output
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_CLI::CC_Decrypt::CC_Decrypt
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CC_Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_CLI::CC_Decrypt::group
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan_CLI::CC_Decrypt::description
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoull
      Src: /src/botan/src/cli/cc_enc.cpp:133,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:133,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:134,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:134,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:135,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:137,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:139,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:144,1
    - Dst: decrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: Botan_CLI::CC_Decrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Botan::hex_decode
    - Botan::SymmetricKey
    - std::vector::data
    - Botan::PBKDF::create
    - decrypt_cc_number
    - get_arg
    - output
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: Botan_CLI::luhn_checksum
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t luhn_checksum(uint64_t cc_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::luhn_checksum
      Src: /src/botan/src/cli/cc_enc.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_CLI::luhn_check
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::luhn_checksum
    linkageType: ''
    returnType: bool
    signature: bool luhn_check(uint64_t cc_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: Botan_CLI::cc_rank
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cc_rank(uint64_t cc_number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::luhn_check
      Src: /src/botan/src/cli/cc_enc.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: Botan_CLI::cc_derank
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::luhn_check
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cc_derank(uint64_t cc_number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FPE::fe1_encrypt
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:67,1
    - Dst: Botan::Internal_Error::Internal_Error
      Src: /src/botan/src/cli/cc_enc.cpp:68,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:73,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - cc_number
    - ' key'
    - ' tweak'
    argTypes:
    - uint64_t
    - Botan::SymmetricKey
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: Botan_CLI::encrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::FPE::fe1_encrypt
    - Botan_CLI::cc_rank
    - Botan::BigInt::byte_at
    - Botan::BigInt::from_u64
    - Botan::Internal_Error::Internal_Error
    - Botan_CLI::cc_derank
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t encrypt_cc_number(uint64_t cc_number, const Botan::SymmetricKey&
      key, const std::vector<uint8_t>& tweak)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FPE::fe1_decrypt
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:83,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cc_enc.cpp:84,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:89,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - enc_cc
    - ' key'
    - ' tweak'
    argTypes:
    - uint64_t
    - Botan::SymmetricKey
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: Botan_CLI::decrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::FPE::fe1_decrypt
    - CLI_Error
    - Botan_CLI::cc_rank
    - Botan::BigInt::byte_at
    - Botan::BigInt::from_u64
    - Botan_CLI::cc_derank
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t decrypt_cc_number(uint64_t enc_cc, const Botan::SymmetricKey&
      key, const std::vector<uint8_t>& tweak)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::CC_Encrypt::CC_Encrypt
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CC_Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::CC_Encrypt::group
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_CLI::CC_Encrypt::description
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoull
      Src: /src/botan/src/cli/cc_enc.cpp:105,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:105,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:106,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:106,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:107,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:109,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:111,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:116,1
    - Dst: encrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: Botan_CLI::CC_Encrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Botan::hex_decode
    - Botan::SymmetricKey
    - std::vector::data
    - Botan::PBKDF::create
    - encrypt_cc_number
    - get_arg
    - output
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_CLI::CC_Decrypt::CC_Decrypt
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CC_Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_CLI::CC_Decrypt::group
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan_CLI::CC_Decrypt::description
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoull
      Src: /src/botan/src/cli/cc_enc.cpp:133,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:133,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:134,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:134,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:135,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:137,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:139,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:144,1
    - Dst: decrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: Botan_CLI::CC_Decrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Botan::hex_decode
    - Botan::SymmetricKey
    - std::vector::data
    - Botan::PBKDF::create
    - decrypt_cc_number
    - get_arg
    - output
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: Botan_CLI::luhn_checksum
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t luhn_checksum(uint64_t cc_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::luhn_checksum
      Src: /src/botan/src/cli/cc_enc.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_CLI::luhn_check
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 3
    functionsReached:
    - Botan_CLI::luhn_checksum
    linkageType: ''
    returnType: bool
    signature: bool luhn_check(uint64_t cc_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: Botan_CLI::cc_rank
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cc_rank(uint64_t cc_number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::luhn_check
      Src: /src/botan/src/cli/cc_enc.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: Botan_CLI::cc_derank
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 6
    functionsReached:
    - Botan_CLI::luhn_check
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cc_derank(uint64_t cc_number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FPE::fe1_encrypt
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:65,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:67,1
    - Dst: Botan::Internal_Error::Internal_Error
      Src: /src/botan/src/cli/cc_enc.cpp:68,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:73,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - cc_number
    - ' key'
    - ' tweak'
    argTypes:
    - uint64_t
    - Botan::SymmetricKey
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: Botan_CLI::encrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::FPE::fe1_encrypt
    - Botan_CLI::cc_rank
    - Botan::BigInt::byte_at
    - Botan::BigInt::from_u64
    - Botan::Internal_Error::Internal_Error
    - Botan_CLI::cc_derank
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t encrypt_cc_number(uint64_t cc_number, const Botan::SymmetricKey&
      key, const std::vector<uint8_t>& tweak)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FPE::fe1_decrypt
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:81,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:83,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cc_enc.cpp:84,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:89,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - enc_cc
    - ' key'
    - ' tweak'
    argTypes:
    - uint64_t
    - Botan::SymmetricKey
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: Botan_CLI::decrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::FPE::fe1_decrypt
    - CLI_Error
    - Botan_CLI::cc_rank
    - Botan::BigInt::byte_at
    - Botan::BigInt::from_u64
    - Botan_CLI::cc_derank
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t decrypt_cc_number(uint64_t enc_cc, const Botan::SymmetricKey&
      key, const std::vector<uint8_t>& tweak)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::CC_Encrypt::CC_Encrypt
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CC_Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::CC_Encrypt::group
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan_CLI::CC_Encrypt::description
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoull
      Src: /src/botan/src/cli/cc_enc.cpp:105,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:105,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:106,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:106,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:107,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:109,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:111,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:114,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:116,1
    - Dst: encrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: Botan_CLI::CC_Encrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Botan::hex_decode
    - Botan::SymmetricKey
    - std::vector::data
    - Botan::PBKDF::create
    - encrypt_cc_number
    - get_arg
    - output
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_CLI::CC_Decrypt::CC_Decrypt
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CC_Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_CLI::CC_Decrypt::group
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan_CLI::CC_Decrypt::description
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoull
      Src: /src/botan/src/cli/cc_enc.cpp:133,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:133,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:134,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:134,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:135,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:137,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:139,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:142,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:144,1
    - Dst: decrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: Botan_CLI::CC_Decrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - Botan::hex_decode
    - Botan::SymmetricKey
    - std::vector::data
    - Botan::PBKDF::create
    - decrypt_cc_number
    - get_arg
    - output
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view get_hash_function()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> create_private_key(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/cli/perf_x509.cpp:47,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:52,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:53,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/perf_x509.cpp:54,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:54,1
    - Dst: Botan::X509_CA
      Src: /src/botan/src/cli/perf_x509.cpp:55,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509_CA
    - std::move
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: CA
    signature: CA create_ca(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:67,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:68,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:69,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:70,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:71,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/cli/perf_x509.cpp:73,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/cli/perf_x509.cpp:74,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/cli/perf_x509.cpp:75,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:80,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:81,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:84,1
    - Dst: ca::sign_request
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - common_name
    - ' ca'
    - ' rng'
    argTypes:
    - std::string_view
    - CA
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 87
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlternativeName::add_email
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509_Time
    - Botan::AlternativeName::AlternativeName
    - ca::sign_request
    - Botan::Extensions::add
    - Botan::AlternativeName::add_dns
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - BOTAN_ASSERT_NONNULL
    - Botan::X509_DN::add_attribute
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::PKCS10_Request::create
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: "Botan::X509_Certificate make_certificate(std::string_view common_name,\n
      \                                                     CA& ca,\n                                                      Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ca::new_crl
      Src: /src/botan/src/cli/perf_x509.cpp:90,1
    - Dst: std::generate
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/cli/perf_x509.cpp:101,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/cli/perf_x509.cpp:103,1
    - Dst: random_array
      Src: /src/botan/src/cli/perf_x509.cpp:103,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:104,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:104,1
    - Dst: Botan::CRL_Entry::CRL_Entry
      Src: /src/botan/src/cli/perf_x509.cpp:112,1
    - Dst: Botan::CRL_Entry::decode_from
      Src: /src/botan/src/cli/perf_x509.cpp:113,1
    - Dst: ca::update_crl
      Src: /src/botan/src/cli/perf_x509.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - entries
    - ' ca'
    - ' rng'
    argTypes:
    - size_t
    - CA
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 118
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Time
    - std::generate
    - Botan::Extensions::add
    - std::vector::end
    - Botan::CRL_Entry::CRL_Entry
    - std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
    - std::vector::begin
    - Botan::CRL_Entry::decode_from
    - Botan::DER_Encoder
    - Botan::TLS::detail::AsyncBase::complete_now
    - random_array
    - ca::new_crl
    - Botan::BigInt::from_bytes
    - ca::update_crl
    linkageType: ''
    returnType: Botan::X509_CRL
    signature: Botan::X509_CRL make_revocation_list(size_t entries, CA& ca, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_ca
      Src: /src/botan/src/cli/perf_x509.cpp:122,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:122,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
      Src: /src/botan/src/cli/perf_x509.cpp:123,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:123,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
      Src: /src/botan/src/cli/perf_x509.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:124,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:126,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:127,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:129,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:130,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_x509.cpp:132,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:134,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:135,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/perf_x509.cpp:136,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:137,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:140,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:141,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/cli/perf_x509.cpp:142,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:143,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:146,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 148
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::go
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    - make_timer
    - auto::BER_encode
    - Botan::X509_CRL
    - record_result
    - auto::start
    - auto::under
    - Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    - Botan::X509_Certificate
    - rng
    - auto::stop
    - Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view get_hash_function()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 2
    functionsReached:
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> create_private_key(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/cli/perf_x509.cpp:47,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:52,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:53,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/perf_x509.cpp:54,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:54,1
    - Dst: Botan::X509_CA
      Src: /src/botan/src/cli/perf_x509.cpp:55,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 1
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509_CA
    - std::move
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: CA
    signature: CA create_ca(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:67,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:68,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:69,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:70,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:71,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/cli/perf_x509.cpp:73,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/cli/perf_x509.cpp:74,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/cli/perf_x509.cpp:75,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:80,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:81,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:84,1
    - Dst: ca::sign_request
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - common_name
    - ' ca'
    - ' rng'
    argTypes:
    - std::string_view
    - CA
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 87
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 1
    functionsReached:
    - Botan::AlternativeName::add_email
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509_Time
    - Botan::AlternativeName::AlternativeName
    - ca::sign_request
    - Botan::Extensions::add
    - Botan::AlternativeName::add_dns
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - BOTAN_ASSERT_NONNULL
    - Botan::X509_DN::add_attribute
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::PKCS10_Request::create
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: "Botan::X509_Certificate make_certificate(std::string_view common_name,\n
      \                                                     CA& ca,\n                                                      Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ca::new_crl
      Src: /src/botan/src/cli/perf_x509.cpp:90,1
    - Dst: std::generate
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/cli/perf_x509.cpp:101,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/cli/perf_x509.cpp:103,1
    - Dst: random_array
      Src: /src/botan/src/cli/perf_x509.cpp:103,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:104,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:104,1
    - Dst: Botan::CRL_Entry::CRL_Entry
      Src: /src/botan/src/cli/perf_x509.cpp:112,1
    - Dst: Botan::CRL_Entry::decode_from
      Src: /src/botan/src/cli/perf_x509.cpp:113,1
    - Dst: ca::update_crl
      Src: /src/botan/src/cli/perf_x509.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - entries
    - ' ca'
    - ' rng'
    argTypes:
    - size_t
    - CA
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 118
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 1
    functionsReached:
    - Botan::X509_Time
    - std::generate
    - Botan::Extensions::add
    - std::vector::end
    - Botan::CRL_Entry::CRL_Entry
    - std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
    - std::vector::begin
    - Botan::CRL_Entry::decode_from
    - Botan::DER_Encoder
    - Botan::TLS::detail::AsyncBase::complete_now
    - random_array
    - ca::new_crl
    - Botan::BigInt::from_bytes
    - ca::update_crl
    linkageType: ''
    returnType: Botan::X509_CRL
    signature: Botan::X509_CRL make_revocation_list(size_t entries, CA& ca, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_ca
      Src: /src/botan/src/cli/perf_x509.cpp:122,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:122,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
      Src: /src/botan/src/cli/perf_x509.cpp:123,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:123,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
      Src: /src/botan/src/cli/perf_x509.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:124,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:126,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:127,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:129,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:130,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_x509.cpp:132,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:134,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:135,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/perf_x509.cpp:136,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:137,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:140,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:141,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/cli/perf_x509.cpp:142,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:143,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:146,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 148
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::go
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    - make_timer
    - auto::BER_encode
    - Botan::X509_CRL
    - record_result
    - auto::start
    - auto::under
    - Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    - Botan::X509_Certificate
    - rng
    - auto::stop
    - Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view get_hash_function()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 4
    functionsReached:
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> create_private_key(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/cli/perf_x509.cpp:47,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:52,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:53,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/perf_x509.cpp:54,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:54,1
    - Dst: Botan::X509_CA
      Src: /src/botan/src/cli/perf_x509.cpp:55,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 2
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509_CA
    - std::move
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: CA
    signature: CA create_ca(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:67,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:68,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:69,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:70,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:71,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/cli/perf_x509.cpp:73,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/cli/perf_x509.cpp:74,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/cli/perf_x509.cpp:75,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:80,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:81,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:84,1
    - Dst: ca::sign_request
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - common_name
    - ' ca'
    - ' rng'
    argTypes:
    - std::string_view
    - CA
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 87
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 2
    functionsReached:
    - Botan::AlternativeName::add_email
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509_Time
    - Botan::AlternativeName::AlternativeName
    - ca::sign_request
    - Botan::Extensions::add
    - Botan::AlternativeName::add_dns
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - BOTAN_ASSERT_NONNULL
    - Botan::X509_DN::add_attribute
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::PKCS10_Request::create
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: "Botan::X509_Certificate make_certificate(std::string_view common_name,\n
      \                                                     CA& ca,\n                                                      Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ca::new_crl
      Src: /src/botan/src/cli/perf_x509.cpp:90,1
    - Dst: std::generate
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/cli/perf_x509.cpp:101,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/cli/perf_x509.cpp:103,1
    - Dst: random_array
      Src: /src/botan/src/cli/perf_x509.cpp:103,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:104,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:104,1
    - Dst: Botan::CRL_Entry::CRL_Entry
      Src: /src/botan/src/cli/perf_x509.cpp:112,1
    - Dst: Botan::CRL_Entry::decode_from
      Src: /src/botan/src/cli/perf_x509.cpp:113,1
    - Dst: ca::update_crl
      Src: /src/botan/src/cli/perf_x509.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - entries
    - ' ca'
    - ' rng'
    argTypes:
    - size_t
    - CA
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 118
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 2
    functionsReached:
    - Botan::X509_Time
    - std::generate
    - Botan::Extensions::add
    - std::vector::end
    - Botan::CRL_Entry::CRL_Entry
    - std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
    - std::vector::begin
    - Botan::CRL_Entry::decode_from
    - Botan::DER_Encoder
    - Botan::TLS::detail::AsyncBase::complete_now
    - random_array
    - ca::new_crl
    - Botan::BigInt::from_bytes
    - ca::update_crl
    linkageType: ''
    returnType: Botan::X509_CRL
    signature: Botan::X509_CRL make_revocation_list(size_t entries, CA& ca, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_ca
      Src: /src/botan/src/cli/perf_x509.cpp:122,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:122,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
      Src: /src/botan/src/cli/perf_x509.cpp:123,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:123,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
      Src: /src/botan/src/cli/perf_x509.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:124,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:126,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:127,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:129,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:130,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_x509.cpp:132,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:134,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:135,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/perf_x509.cpp:136,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:137,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:140,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:141,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/cli/perf_x509.cpp:142,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:143,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:146,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 148
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::go
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    - make_timer
    - auto::BER_encode
    - Botan::X509_CRL
    - record_result
    - auto::start
    - auto::under
    - Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    - Botan::X509_Certificate
    - rng
    - auto::stop
    - Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view get_hash_function()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 6
    functionsReached:
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> create_private_key(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/cli/perf_x509.cpp:47,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:52,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:53,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/perf_x509.cpp:54,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:54,1
    - Dst: Botan::X509_CA
      Src: /src/botan/src/cli/perf_x509.cpp:55,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 3
    functionsReached:
    - Botan::X509::create_self_signed_cert
    - Botan::X509_CA
    - std::move
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: CA
    signature: CA create_ca(Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:67,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:68,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:69,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:70,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:71,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/cli/perf_x509.cpp:73,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/cli/perf_x509.cpp:74,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/cli/perf_x509.cpp:75,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:80,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:81,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:84,1
    - Dst: ca::sign_request
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - common_name
    - ' ca'
    - ' rng'
    argTypes:
    - std::string_view
    - CA
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 87
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 3
    functionsReached:
    - Botan::AlternativeName::add_email
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509_Time
    - Botan::AlternativeName::AlternativeName
    - ca::sign_request
    - Botan::Extensions::add
    - Botan::AlternativeName::add_dns
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - BOTAN_ASSERT_NONNULL
    - Botan::X509_DN::add_attribute
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::PKCS10_Request::create
    linkageType: ''
    returnType: Botan::X509_Certificate
    signature: "Botan::X509_Certificate make_certificate(std::string_view common_name,\n
      \                                                     CA& ca,\n                                                      Botan::RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ca::new_crl
      Src: /src/botan/src/cli/perf_x509.cpp:90,1
    - Dst: std::generate
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/perf_x509.cpp:93,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/cli/perf_x509.cpp:101,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/cli/perf_x509.cpp:103,1
    - Dst: random_array
      Src: /src/botan/src/cli/perf_x509.cpp:103,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:104,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:104,1
    - Dst: Botan::CRL_Entry::CRL_Entry
      Src: /src/botan/src/cli/perf_x509.cpp:112,1
    - Dst: Botan::CRL_Entry::decode_from
      Src: /src/botan/src/cli/perf_x509.cpp:113,1
    - Dst: ca::update_crl
      Src: /src/botan/src/cli/perf_x509.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - entries
    - ' ca'
    - ' rng'
    argTypes:
    - size_t
    - CA
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 118
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 3
    functionsReached:
    - Botan::X509_Time
    - std::generate
    - Botan::Extensions::add
    - std::vector::end
    - Botan::CRL_Entry::CRL_Entry
    - std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
    - std::vector::begin
    - Botan::CRL_Entry::decode_from
    - Botan::DER_Encoder
    - Botan::TLS::detail::AsyncBase::complete_now
    - random_array
    - ca::new_crl
    - Botan::BigInt::from_bytes
    - ca::update_crl
    linkageType: ''
    returnType: Botan::X509_CRL
    signature: Botan::X509_CRL make_revocation_list(size_t entries, CA& ca, Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_ca
      Src: /src/botan/src/cli/perf_x509.cpp:122,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:122,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
      Src: /src/botan/src/cli/perf_x509.cpp:123,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:123,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
      Src: /src/botan/src/cli/perf_x509.cpp:124,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:124,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:126,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:127,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:129,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:130,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_x509.cpp:132,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:134,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:135,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/perf_x509.cpp:136,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:137,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:140,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:141,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/cli/perf_x509.cpp:142,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:143,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:146,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 148
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::go
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    - make_timer
    - auto::BER_encode
    - Botan::X509_CRL
    - record_result
    - auto::start
    - auto::under
    - Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    - Botan::X509_Certificate
    - rng
    - auto::stop
    - Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_CLI::ASN1_Printer::ASN1_Printer
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_Printer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::ASN1_Printer::group
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::ASN1_Printer::description
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/asn1.cpp:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' data'
    - n
    - b
    argTypes:
    - std::vector<uint8_t>
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_CLI::ASN1_Printer::first_n
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool first_n(const std::vector<uint8_t>& data, size_t n, uint8_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/asn1.cpp:47,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:48,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:49,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:50,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:51,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/asn1.cpp:56,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::substr
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:60,1
    - Dst: Botan_CLI::ASN1_Printer::first_n
      Src: /src/botan/src/cli/asn1.cpp:60,1
    - Dst: unlock
      Src: /src/botan/src/cli/asn1.cpp:64,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/cli/asn1.cpp:64,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/asn1.cpp:66,1
    - Dst: std::vector::swap
      Src: /src/botan/src/cli/asn1.cpp:69,1
    - Dst: Botan::ASN1_Pretty_Printer::print_to_stream
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 76
    functionName: Botan_CLI::ASN1_Printer::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - slurp_file
    - std::string::substr
    - flag_set
    - std::string::size
    - std::vector::data
    - std::vector::swap
    - get_arg
    - Botan::ASN1_Pretty_Printer::print_to_stream
    - Botan::PEM_Code::decode
    - output
    - CLI_Error_Unsupported
    - unlock
    - Botan_CLI::ASN1_Printer::first_n
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_CLI::OID_Info::OID_Info
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan_CLI::OID_Info::group
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_CLI::OID_Info::description
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/asn1.cpp:90,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:92,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/asn1.cpp:93,1
    - Dst: Botan::OID::human_name_or_empty
      Src: /src/botan/src/cli/asn1.cpp:99,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:100,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:101,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:103,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/asn1.cpp:110,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:111,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/cli/asn1.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: Botan_CLI::OID_Info::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - Botan::OID::to_string
    - get_arg
    - Botan::OID::from_string
    - CLI_Usage_Error
    - output
    - Botan::OID::human_name_or_empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_CLI::ASN1_Printer::ASN1_Printer
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_Printer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::ASN1_Printer::group
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::ASN1_Printer::description
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/asn1.cpp:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' data'
    - n
    - b
    argTypes:
    - std::vector<uint8_t>
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_CLI::ASN1_Printer::first_n
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool first_n(const std::vector<uint8_t>& data, size_t n, uint8_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/asn1.cpp:47,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:48,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:49,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:50,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:51,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/asn1.cpp:56,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::substr
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:60,1
    - Dst: Botan_CLI::ASN1_Printer::first_n
      Src: /src/botan/src/cli/asn1.cpp:60,1
    - Dst: unlock
      Src: /src/botan/src/cli/asn1.cpp:64,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/cli/asn1.cpp:64,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/asn1.cpp:66,1
    - Dst: std::vector::swap
      Src: /src/botan/src/cli/asn1.cpp:69,1
    - Dst: Botan::ASN1_Pretty_Printer::print_to_stream
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 76
    functionName: Botan_CLI::ASN1_Printer::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - slurp_file
    - std::string::substr
    - flag_set
    - std::string::size
    - std::vector::data
    - std::vector::swap
    - get_arg
    - Botan::ASN1_Pretty_Printer::print_to_stream
    - Botan::PEM_Code::decode
    - output
    - CLI_Error_Unsupported
    - unlock
    - Botan_CLI::ASN1_Printer::first_n
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_CLI::OID_Info::OID_Info
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan_CLI::OID_Info::group
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_CLI::OID_Info::description
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/asn1.cpp:90,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:92,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/asn1.cpp:93,1
    - Dst: Botan::OID::human_name_or_empty
      Src: /src/botan/src/cli/asn1.cpp:99,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:100,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:101,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:103,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/asn1.cpp:110,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:111,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/cli/asn1.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: Botan_CLI::OID_Info::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - Botan::OID::to_string
    - get_arg
    - Botan::OID::from_string
    - CLI_Usage_Error
    - output
    - Botan::OID::human_name_or_empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_CLI::ASN1_Printer::ASN1_Printer
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_Printer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::ASN1_Printer::group
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::ASN1_Printer::description
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/asn1.cpp:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' data'
    - n
    - b
    argTypes:
    - std::vector<uint8_t>
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_CLI::ASN1_Printer::first_n
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 2
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool first_n(const std::vector<uint8_t>& data, size_t n, uint8_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/asn1.cpp:47,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:48,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:49,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:50,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:51,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/asn1.cpp:56,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::substr
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:60,1
    - Dst: Botan_CLI::ASN1_Printer::first_n
      Src: /src/botan/src/cli/asn1.cpp:60,1
    - Dst: unlock
      Src: /src/botan/src/cli/asn1.cpp:64,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/cli/asn1.cpp:64,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/asn1.cpp:66,1
    - Dst: std::vector::swap
      Src: /src/botan/src/cli/asn1.cpp:69,1
    - Dst: Botan::ASN1_Pretty_Printer::print_to_stream
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 76
    functionName: Botan_CLI::ASN1_Printer::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - slurp_file
    - std::string::substr
    - flag_set
    - std::string::size
    - std::vector::data
    - std::vector::swap
    - get_arg
    - Botan::ASN1_Pretty_Printer::print_to_stream
    - Botan::PEM_Code::decode
    - output
    - CLI_Error_Unsupported
    - unlock
    - Botan_CLI::ASN1_Printer::first_n
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_CLI::OID_Info::OID_Info
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan_CLI::OID_Info::group
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_CLI::OID_Info::description
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/asn1.cpp:90,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:92,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/asn1.cpp:93,1
    - Dst: Botan::OID::human_name_or_empty
      Src: /src/botan/src/cli/asn1.cpp:99,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:100,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:101,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:103,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/asn1.cpp:110,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:111,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/cli/asn1.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: Botan_CLI::OID_Info::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - Botan::OID::to_string
    - get_arg
    - Botan::OID::from_string
    - CLI_Usage_Error
    - output
    - Botan::OID::human_name_or_empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan_CLI::ASN1_Printer::ASN1_Printer
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_Printer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::ASN1_Printer::group
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::ASN1_Printer::description
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/asn1.cpp:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' data'
    - n
    - b
    argTypes:
    - std::vector<uint8_t>
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_CLI::ASN1_Printer::first_n
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 3
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool first_n(const std::vector<uint8_t>& data, size_t n, uint8_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/asn1.cpp:47,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:48,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:49,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:50,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:51,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/asn1.cpp:56,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::substr
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:60,1
    - Dst: Botan_CLI::ASN1_Printer::first_n
      Src: /src/botan/src/cli/asn1.cpp:60,1
    - Dst: unlock
      Src: /src/botan/src/cli/asn1.cpp:64,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/cli/asn1.cpp:64,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/asn1.cpp:66,1
    - Dst: std::vector::swap
      Src: /src/botan/src/cli/asn1.cpp:69,1
    - Dst: Botan::ASN1_Pretty_Printer::print_to_stream
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/asn1.cpp:75,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 76
    functionName: Botan_CLI::ASN1_Printer::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - slurp_file
    - std::string::substr
    - flag_set
    - std::string::size
    - std::vector::data
    - std::vector::swap
    - get_arg
    - Botan::ASN1_Pretty_Printer::print_to_stream
    - Botan::PEM_Code::decode
    - output
    - CLI_Error_Unsupported
    - unlock
    - Botan_CLI::ASN1_Printer::first_n
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan_CLI::OID_Info::OID_Info
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OID_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan_CLI::OID_Info::group
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_CLI::OID_Info::description
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/asn1.cpp:90,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:92,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/asn1.cpp:93,1
    - Dst: Botan::OID::human_name_or_empty
      Src: /src/botan/src/cli/asn1.cpp:99,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:100,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:101,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:103,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/asn1.cpp:110,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:111,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/cli/asn1.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: Botan_CLI::OID_Info::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - Botan::OID::to_string
    - get_arg
    - Botan::OID::from_string
    - CLI_Usage_Error
    - output
    - Botan::OID::human_name_or_empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' client_command'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::Callbacks::Callbacks
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Callbacks(TLS_Client& client_command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_CLI::Callbacks::peer_closed
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool peer_closed() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:60,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/cli/tls_client.cpp:61,1
    - Dst: require_cert_revocation_info
      Src: /src/botan/src/cli/tls_client.cpp:64,1
    - Dst: minimum_signature_strength
      Src: /src/botan/src/cli/tls_client.cpp:65,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/cli/tls_client.cpp:67,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:69,1
    - Dst: std::string
      Src: /src/botan/src/cli/tls_client.cpp:69,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/cli/tls_client.cpp:71,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/cli/tls_client.cpp:72,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/cli/tls_client.cpp:74,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:75,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:75,1
    - Dst: Botan::Path_Validation_Result::all_statuses
      Src: /src/botan/src/cli/tls_client.cpp:76,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:78,1
    - Dst: contains
      Src: /src/botan/src/cli/tls_client.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:79,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:82,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:83,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:83,1
    - Dst: TLS_Exception
      Src: /src/botan/src/cli/tls_client.cpp:85,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - ' cert_chain'
    - ' ocsp'
    - ' trusted_roots'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    - std::vector<std::optional<Botan::OCSP::Response>>
    - std::vector<Botan::Certificate_Store*>
    - Botan::Usage_Type
    - std::string_view
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - minimum_signature_strength
    - std::string
    - Botan::Invalid_Argument
    - tls_current_timestamp
    - require_cert_revocation_info
    - contains
    - Botan::x509_path_validate
    - TLS_Exception
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Result::successful_validation
    - output
    - Botan_CLI::Callbacks::flag_set
    - Botan::Path_Validation_Result::all_statuses
    - empty
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      ocsp,\n                                 const std::vector<Botan::Certificate_Store*>&
      trusted_roots,\n                                 Botan::Usage_Type usage,\n
      \                                std::string_view hostname,\n                                 const
      Botan::TLS::Policy& policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fingerprint_public
      Src: /src/botan/src/cli/tls_client.cpp:95,1
    - Dst: Botan_CLI::Callbacks::get_arg
      Src: /src/botan/src/cli/tls_client.cpp:96,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' raw_public_key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: Botan_CLI::Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - fingerprint_public
    - Botan_CLI::Callbacks::get_arg
    - output
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Botan::Public_Key& raw_public_key,\n
      \                                    Botan::Usage_Type /* usage */,\n                                     std::string_view
      /* hostname */,\n                                     const Botan::TLS::Policy&
      /* policy */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:104,1
    - Dst: version
      Src: /src/botan/src/cli/tls_client.cpp:104,1
    - Dst: external_psk_identity
      Src: /src/botan/src/cli/tls_client.cpp:106,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: maybe_hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: value
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:110,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_client.cpp:110,1
    - Dst: kex_parameters
      Src: /src/botan/src/cli/tls_client.cpp:112,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:113,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_client.cpp:116,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:116,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: get
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: session_ticket
      Src: /src/botan/src/cli/tls_client.cpp:120,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: get
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:124,1
    - Dst: peer_certs
      Src: /src/botan/src/cli/tls_client.cpp:125,1
    - Dst: size
      Src: /src/botan/src/cli/tls_client.cpp:127,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:128,1
    - Dst: size
      Src: /src/botan/src/cli/tls_client.cpp:128,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:129,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_client.cpp:129,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:130,1
    - Dst: PEM_encode
      Src: /src/botan/src/cli/tls_client.cpp:130,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: Botan_CLI::Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - external_psk_identity
    - ciphersuite
    - session_ticket
    - to_string
    - peer_certs
    - kex_parameters
    - maybe_hex_encode
    - version
    - get
    - PEM_encode
    - size
    - output
    - value
    - Botan_CLI::Callbacks::flag_set
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:137,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:138,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:138,1
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_client.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: Botan_CLI::Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Callbacks::flag_set
    - Botan_CLI::Callbacks::send
    - Botan::hex_encode
    - output
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:144,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/cli/tls_client.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: Botan_CLI::Callbacks::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    - output
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:148,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: Botan_CLI::Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq_no*/, std::span<const uint8_t>
      buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:158,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
      Src: /src/botan/src/cli/tls_client.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - ' msg'
    argTypes:
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    - std::string_view
    - Botan::Signature_Format
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: Botan_CLI::Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    - output
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_sign_message(const Botan::Private_Key& key,\n
      \                                           Botan::RandomNumberGenerator& rng,\n
      \                                           const std::string_view padding,\n
      \                                           Botan::Signature_Format format,\n
      \                                           const std::vector<uint8_t>& msg)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
      Src: /src/botan/src/cli/tls_client.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: Botan_CLI::Callbacks::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' client_command'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::Callbacks::Callbacks
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Callbacks(TLS_Client& client_command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_CLI::Callbacks::peer_closed
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool peer_closed() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:60,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/cli/tls_client.cpp:61,1
    - Dst: require_cert_revocation_info
      Src: /src/botan/src/cli/tls_client.cpp:64,1
    - Dst: minimum_signature_strength
      Src: /src/botan/src/cli/tls_client.cpp:65,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/cli/tls_client.cpp:67,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:69,1
    - Dst: std::string
      Src: /src/botan/src/cli/tls_client.cpp:69,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/cli/tls_client.cpp:71,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/cli/tls_client.cpp:72,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/cli/tls_client.cpp:74,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:75,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:75,1
    - Dst: Botan::Path_Validation_Result::all_statuses
      Src: /src/botan/src/cli/tls_client.cpp:76,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:78,1
    - Dst: contains
      Src: /src/botan/src/cli/tls_client.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:79,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:82,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:83,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:83,1
    - Dst: TLS_Exception
      Src: /src/botan/src/cli/tls_client.cpp:85,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - ' cert_chain'
    - ' ocsp'
    - ' trusted_roots'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    - std::vector<std::optional<Botan::OCSP::Response>>
    - std::vector<Botan::Certificate_Store*>
    - Botan::Usage_Type
    - std::string_view
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - minimum_signature_strength
    - std::string
    - Botan::Invalid_Argument
    - tls_current_timestamp
    - require_cert_revocation_info
    - contains
    - Botan::x509_path_validate
    - TLS_Exception
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Result::successful_validation
    - output
    - Botan_CLI::Callbacks::flag_set
    - Botan::Path_Validation_Result::all_statuses
    - empty
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      ocsp,\n                                 const std::vector<Botan::Certificate_Store*>&
      trusted_roots,\n                                 Botan::Usage_Type usage,\n
      \                                std::string_view hostname,\n                                 const
      Botan::TLS::Policy& policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fingerprint_public
      Src: /src/botan/src/cli/tls_client.cpp:95,1
    - Dst: Botan_CLI::Callbacks::get_arg
      Src: /src/botan/src/cli/tls_client.cpp:96,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' raw_public_key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: Botan_CLI::Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - fingerprint_public
    - Botan_CLI::Callbacks::get_arg
    - output
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Botan::Public_Key& raw_public_key,\n
      \                                    Botan::Usage_Type /* usage */,\n                                     std::string_view
      /* hostname */,\n                                     const Botan::TLS::Policy&
      /* policy */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:104,1
    - Dst: version
      Src: /src/botan/src/cli/tls_client.cpp:104,1
    - Dst: external_psk_identity
      Src: /src/botan/src/cli/tls_client.cpp:106,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: maybe_hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: value
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:110,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_client.cpp:110,1
    - Dst: kex_parameters
      Src: /src/botan/src/cli/tls_client.cpp:112,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:113,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_client.cpp:116,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:116,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: get
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: session_ticket
      Src: /src/botan/src/cli/tls_client.cpp:120,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: get
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:124,1
    - Dst: peer_certs
      Src: /src/botan/src/cli/tls_client.cpp:125,1
    - Dst: size
      Src: /src/botan/src/cli/tls_client.cpp:127,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:128,1
    - Dst: size
      Src: /src/botan/src/cli/tls_client.cpp:128,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:129,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_client.cpp:129,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:130,1
    - Dst: PEM_encode
      Src: /src/botan/src/cli/tls_client.cpp:130,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: Botan_CLI::Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - external_psk_identity
    - ciphersuite
    - session_ticket
    - to_string
    - peer_certs
    - kex_parameters
    - maybe_hex_encode
    - version
    - get
    - PEM_encode
    - size
    - output
    - value
    - Botan_CLI::Callbacks::flag_set
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:137,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:138,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:138,1
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_client.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: Botan_CLI::Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Callbacks::flag_set
    - Botan_CLI::Callbacks::send
    - Botan::hex_encode
    - output
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:144,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/cli/tls_client.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: Botan_CLI::Callbacks::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    - output
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:148,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: Botan_CLI::Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq_no*/, std::span<const uint8_t>
      buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:158,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
      Src: /src/botan/src/cli/tls_client.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - ' msg'
    argTypes:
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    - std::string_view
    - Botan::Signature_Format
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: Botan_CLI::Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    - output
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_sign_message(const Botan::Private_Key& key,\n
      \                                           Botan::RandomNumberGenerator& rng,\n
      \                                           const std::string_view padding,\n
      \                                           Botan::Signature_Format format,\n
      \                                           const std::vector<uint8_t>& msg)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
      Src: /src/botan/src/cli/tls_client.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: Botan_CLI::Callbacks::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_sockets
      Src: /src/botan/src/cli/tls_client.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: Botan_CLI::TLS_Client::TLS_Client
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - init_sockets
    linkageType: ''
    returnType: void
    signature: void TLS_Client()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stop_sockets
      Src: /src/botan/src/cli/tls_client.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: ~TLS_Client() override
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - stop_sockets
    linkageType: ''
    returnType: void
    signature: void ~TLS_Client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: Botan_CLI::TLS_Client::TLS_Client
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Client(const TLS_Client& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: Botan_CLI::TLS_Client::TLS_Client
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Client(TLS_Client&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: '& operator=(const TLS_Client& other)'
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Client
    signature: TLS_Client & operator=(const TLS_Client& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: '& operator=(TLS_Client&& other)'
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Client
    signature: TLS_Client & operator=(TLS_Client&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: Botan_CLI::TLS_Client::group
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_CLI::TLS_Client::description
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Callbacks>
      Src: /src/botan/src/cli/tls_client.cpp:201,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:203,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:204,1
    - Dst: get_arg_u16
      Src: /src/botan/src/cli/tls_client.cpp:205,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:206,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:207,1
    - Dst: flag_set
      Src: /src/botan/src/cli/tls_client.cpp:208,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:209,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:210,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_client.cpp:212,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/tls_client.cpp:214,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/cli/tls_client.cpp:216,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_client.cpp:216,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_client.cpp:218,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_client.cpp:223,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_client.cpp:223,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_client.cpp:226,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:226,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tls_client.cpp:229,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/tls_client.cpp:232,1
    - Dst: std::make_shared<Botan::TLS::Policy>
      Src: /src/botan/src/cli/tls_client.cpp:235,1
    - Dst: auto::latest_supported_version
      Src: /src/botan/src/cli/tls_client.cpp:239,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_client.cpp:247,1
    - Dst: Botan_CLI::TLS_Client::connect_to_host
      Src: /src/botan/src/cli/tls_client.cpp:251,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_client.cpp:253,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_client.cpp:254,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_client.cpp:257,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/cli/tls_client.cpp:259,1
    - Dst: auto::value
      Src: /src/botan/src/cli/tls_client.cpp:259,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_client.cpp:264,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_client.cpp:265,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_client.cpp:267,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_client.cpp:271,1
    - Dst: Botan::TLS::Client::is_closed
      Src: /src/botan/src/cli/tls_client.cpp:287,1
    - Dst: FD_ZERO
      Src: /src/botan/src/cli/tls_client.cpp:289,1
    - Dst: FD_SET
      Src: /src/botan/src/cli/tls_client.cpp:290,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/cli/tls_client.cpp:292,1
    - Dst: FD_SET
      Src: /src/botan/src/cli/tls_client.cpp:293,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tls_client.cpp:294,1
    - Dst: Botan::TLS::Client::application_protocol
      Src: /src/botan/src/cli/tls_client.cpp:295,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_client.cpp:296,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:297,1
    - Dst: Botan::TLS::Client::application_protocol
      Src: /src/botan/src/cli/tls_client.cpp:297,1
    - Dst: Botan::select
      Src: /src/botan/src/cli/tls_client.cpp:305,1
    - Dst: static_cast<int>
      Src: /src/botan/src/cli/tls_client.cpp:305,1
    - Dst: FD_ISSET
      Src: /src/botan/src/cli/tls_client.cpp:307,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/cli/tls_client.cpp:310,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:313,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:316,1
    - Dst: err_to_string
      Src: /src/botan/src/cli/tls_client.cpp:316,1
    - Dst: flag_set
      Src: /src/botan/src/cli/tls_client.cpp:320,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:321,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:321,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/cli/tls_client.cpp:324,1
    - Dst: FD_ISSET
      Src: /src/botan/src/cli/tls_client.cpp:327,1
    - Dst: read
      Src: /src/botan/src/cli/tls_client.cpp:329,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:332,1
    - Dst: Botan::TLS::Client::close
      Src: /src/botan/src/cli/tls_client.cpp:333,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:337,1
    - Dst: err_to_string
      Src: /src/botan/src/cli/tls_client.cpp:337,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:345,1
    - Dst: Botan::TLS::Client::renegotiate
      Src: /src/botan/src/cli/tls_client.cpp:346,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:348,1
    - Dst: Botan::TLS::Client::close
      Src: /src/botan/src/cli/tls_client.cpp:349,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/cli/tls_client.cpp:353,1
    - Dst: Botan::TLS::Client::timeout_check
      Src: /src/botan/src/cli/tls_client.cpp:357,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:358,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/tls_client.cpp:362,1
    - Dst: auto::peer_closed
      Src: /src/botan/src/cli/tls_client.cpp:362,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/cli/tls_client.cpp:364,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 365
    functionName: Botan_CLI::TLS_Client::go
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Botan::TLS::Channel_Impl::close
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - get_arg_u16
    - Botan::select
    - read
    - load_tls_policy
    - std::make_shared<Basic_Credentials_Manager>
    - std::string::empty
    - std::move
    - Botan_CLI::TLS_Client::connect_to_host
    - Botan::TLS::Client::application_protocol
    - get_passphrase_arg
    - static_cast<int>
    - std::make_shared<Botan::TLS::Policy>
    - std::make_shared<Callbacks>
    - Botan::TLS::Client::timeout_check
    - std::vector::empty
    - FD_SET
    - FD_ISSET
    - Botan::TLS::Client::close
    - flag_set
    - rng_as_shared
    - set_return_code
    - get_arg
    - err_to_string
    - CLI_Usage_Error
    - Botan::TLS::Client::received_data
    - Botan::TLS::Client::is_closed
    - FD_ZERO
    - Botan::TLS::Client::renegotiate
    - Botan::hex_encode
    - Botan_CLI::Command::split_on
    - Shim_Socket::read
    - auto::peer_closed
    - get_arg_maybe
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - output
    - error_output
    - auto::latest_supported_version
    - auto::value
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_client.cpp:373,1
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/cli/tls_client.cpp:374,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/cli/tls_client.cpp:374,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/cli/tls_client.cpp:374,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:380,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_client.cpp:380,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/cli/tls_client.cpp:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 386
    functionName: Botan_CLI::TLS_Client::send
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::subspan
    - std::to_string
    - CLI_Error
    - Botan_Tests::MockChannel::send
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void send(std::span<const uint8_t> buf) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ::getaddrinfo
      Src: /src/botan/src/cli/tls_client.cpp:396,1
    - Dst: c_str
      Src: /src/botan/src/cli/tls_client.cpp:396,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_client.cpp:396,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/cli/tls_client.cpp:396,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:397,1
    - Dst: unique_addr_info_ptr::get
      Src: /src/botan/src/cli/tls_client.cpp:403,1
    - Dst: Client::close_socket
      Src: /src/botan/src/cli/tls_client.cpp:404,1
    - Dst: invalid_socket
      Src: /src/botan/src/cli/tls_client.cpp:406,1
    - Dst: client::handle_connect
      Src: /src/botan/src/cli/tls_client.cpp:410,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/cli/tls_client.cpp:411,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:421,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ' host'
    - port
    - tcp
    argTypes:
    - std::string
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 425
    functionName: Botan_CLI::TLS_Client::connect_to_host
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - std::to_string
    - CLI_Error
    - ::getaddrinfo
    - invalid_socket
    - unique_addr_info_ptr::get
    - Client::close_socket
    - client::handle_connect
    - c_str
    - Botan::out_ptr
    linkageType: ''
    returnType: socket_type
    signature: socket_type connect_to_host(const std::string& host, uint16_t port,
      bool tcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/cli/tls_client.cpp:428,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:431,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_client.cpp:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - sockfd
    - buf
    - length
    argTypes:
    - int
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 433
    functionName: Botan_CLI::TLS_Client::dgram_socket_write
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::MockChannel::send
    - std::to_string
    - CLI_Error
    linkageType: ''
    returnType: void
    signature: void dgram_socket_write(int sockfd, const uint8_t buf[], size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: '& Callbacks::output()'
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Callbacks::output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: Botan_CLI::Callbacks::flag_set
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 7
    functionsReached:
    - Botan_CLI::Callbacks::flag_set
    linkageType: ''
    returnType: bool
    signature: bool Callbacks::flag_set(const std::string& flag_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::get_arg
      Src: /src/botan/src/cli/tls_client.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: Botan_CLI::Callbacks::get_arg
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 3
    functionsReached:
    - Botan_CLI::Callbacks::get_arg
    linkageType: ''
    returnType: std::string
    signature: std::string Callbacks::get_arg(const std::string& arg_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_client.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: Botan_CLI::Callbacks::send
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 3
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void Callbacks::send(std::span<const uint8_t> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: '& Callbacks::output()'
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Callbacks::output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: Botan_CLI::Callbacks::flag_set
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 8
    functionsReached:
    - Botan_CLI::Callbacks::flag_set
    linkageType: ''
    returnType: bool
    signature: bool Callbacks::flag_set(const std::string& flag_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::get_arg
      Src: /src/botan/src/cli/tls_client.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: Botan_CLI::Callbacks::get_arg
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::Callbacks::get_arg
    linkageType: ''
    returnType: std::string
    signature: std::string Callbacks::get_arg(const std::string& arg_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_client.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: Botan_CLI::Callbacks::send
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void Callbacks::send(std::span<const uint8_t> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' client_command'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::Callbacks::Callbacks
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Callbacks(TLS_Client& client_command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_CLI::Callbacks::peer_closed
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool peer_closed() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:60,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/cli/tls_client.cpp:61,1
    - Dst: require_cert_revocation_info
      Src: /src/botan/src/cli/tls_client.cpp:64,1
    - Dst: minimum_signature_strength
      Src: /src/botan/src/cli/tls_client.cpp:65,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/cli/tls_client.cpp:67,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:69,1
    - Dst: std::string
      Src: /src/botan/src/cli/tls_client.cpp:69,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/cli/tls_client.cpp:71,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/cli/tls_client.cpp:72,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/cli/tls_client.cpp:74,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:75,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:75,1
    - Dst: Botan::Path_Validation_Result::all_statuses
      Src: /src/botan/src/cli/tls_client.cpp:76,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:78,1
    - Dst: contains
      Src: /src/botan/src/cli/tls_client.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:79,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:82,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:83,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:83,1
    - Dst: TLS_Exception
      Src: /src/botan/src/cli/tls_client.cpp:85,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - ' cert_chain'
    - ' ocsp'
    - ' trusted_roots'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    - std::vector<std::optional<Botan::OCSP::Response>>
    - std::vector<Botan::Certificate_Store*>
    - Botan::Usage_Type
    - std::string_view
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - minimum_signature_strength
    - std::string
    - Botan::Invalid_Argument
    - tls_current_timestamp
    - require_cert_revocation_info
    - contains
    - Botan::x509_path_validate
    - TLS_Exception
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Result::successful_validation
    - output
    - Botan_CLI::Callbacks::flag_set
    - Botan::Path_Validation_Result::all_statuses
    - empty
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      ocsp,\n                                 const std::vector<Botan::Certificate_Store*>&
      trusted_roots,\n                                 Botan::Usage_Type usage,\n
      \                                std::string_view hostname,\n                                 const
      Botan::TLS::Policy& policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fingerprint_public
      Src: /src/botan/src/cli/tls_client.cpp:95,1
    - Dst: Botan_CLI::Callbacks::get_arg
      Src: /src/botan/src/cli/tls_client.cpp:96,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' raw_public_key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: Botan_CLI::Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - fingerprint_public
    - Botan_CLI::Callbacks::get_arg
    - output
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Botan::Public_Key& raw_public_key,\n
      \                                    Botan::Usage_Type /* usage */,\n                                     std::string_view
      /* hostname */,\n                                     const Botan::TLS::Policy&
      /* policy */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:104,1
    - Dst: version
      Src: /src/botan/src/cli/tls_client.cpp:104,1
    - Dst: external_psk_identity
      Src: /src/botan/src/cli/tls_client.cpp:106,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: maybe_hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: value
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:110,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_client.cpp:110,1
    - Dst: kex_parameters
      Src: /src/botan/src/cli/tls_client.cpp:112,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:113,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_client.cpp:116,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:116,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: get
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: session_ticket
      Src: /src/botan/src/cli/tls_client.cpp:120,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: get
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:124,1
    - Dst: peer_certs
      Src: /src/botan/src/cli/tls_client.cpp:125,1
    - Dst: size
      Src: /src/botan/src/cli/tls_client.cpp:127,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:128,1
    - Dst: size
      Src: /src/botan/src/cli/tls_client.cpp:128,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:129,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_client.cpp:129,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:130,1
    - Dst: PEM_encode
      Src: /src/botan/src/cli/tls_client.cpp:130,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: Botan_CLI::Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - external_psk_identity
    - ciphersuite
    - session_ticket
    - to_string
    - peer_certs
    - kex_parameters
    - maybe_hex_encode
    - version
    - get
    - PEM_encode
    - size
    - output
    - value
    - Botan_CLI::Callbacks::flag_set
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:137,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:138,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:138,1
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_client.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: Botan_CLI::Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Callbacks::flag_set
    - Botan_CLI::Callbacks::send
    - Botan::hex_encode
    - output
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:144,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/cli/tls_client.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: Botan_CLI::Callbacks::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    - output
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:148,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: Botan_CLI::Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq_no*/, std::span<const uint8_t>
      buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:158,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
      Src: /src/botan/src/cli/tls_client.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - ' msg'
    argTypes:
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    - std::string_view
    - Botan::Signature_Format
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: Botan_CLI::Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    - output
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_sign_message(const Botan::Private_Key& key,\n
      \                                           Botan::RandomNumberGenerator& rng,\n
      \                                           const std::string_view padding,\n
      \                                           Botan::Signature_Format format,\n
      \                                           const std::vector<uint8_t>& msg)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
      Src: /src/botan/src/cli/tls_client.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: Botan_CLI::Callbacks::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' client_command'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan_CLI::Callbacks::Callbacks
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Callbacks(TLS_Client& client_command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan_CLI::Callbacks::peer_closed
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool peer_closed() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:60,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/cli/tls_client.cpp:61,1
    - Dst: require_cert_revocation_info
      Src: /src/botan/src/cli/tls_client.cpp:64,1
    - Dst: minimum_signature_strength
      Src: /src/botan/src/cli/tls_client.cpp:65,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/cli/tls_client.cpp:67,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:69,1
    - Dst: std::string
      Src: /src/botan/src/cli/tls_client.cpp:69,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/cli/tls_client.cpp:71,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/cli/tls_client.cpp:72,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/cli/tls_client.cpp:74,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:75,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:75,1
    - Dst: Botan::Path_Validation_Result::all_statuses
      Src: /src/botan/src/cli/tls_client.cpp:76,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:78,1
    - Dst: contains
      Src: /src/botan/src/cli/tls_client.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:79,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:82,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:83,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:83,1
    - Dst: TLS_Exception
      Src: /src/botan/src/cli/tls_client.cpp:85,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/tls_client.cpp:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - ' cert_chain'
    - ' ocsp'
    - ' trusted_roots'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    - std::vector<std::optional<Botan::OCSP::Response>>
    - std::vector<Botan::Certificate_Store*>
    - Botan::Usage_Type
    - std::string_view
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::result_string
    - minimum_signature_strength
    - std::string
    - Botan::Invalid_Argument
    - tls_current_timestamp
    - require_cert_revocation_info
    - contains
    - Botan::x509_path_validate
    - TLS_Exception
    - Botan_CLI::Timer::milliseconds
    - Botan::Path_Validation_Result::successful_validation
    - output
    - Botan_CLI::Callbacks::flag_set
    - Botan::Path_Validation_Result::all_statuses
    - empty
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      ocsp,\n                                 const std::vector<Botan::Certificate_Store*>&
      trusted_roots,\n                                 Botan::Usage_Type usage,\n
      \                                std::string_view hostname,\n                                 const
      Botan::TLS::Policy& policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fingerprint_public
      Src: /src/botan/src/cli/tls_client.cpp:95,1
    - Dst: Botan_CLI::Callbacks::get_arg
      Src: /src/botan/src/cli/tls_client.cpp:96,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' raw_public_key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: Botan_CLI::Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - fingerprint_public
    - Botan_CLI::Callbacks::get_arg
    - output
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Botan::Public_Key& raw_public_key,\n
      \                                    Botan::Usage_Type /* usage */,\n                                     std::string_view
      /* hostname */,\n                                     const Botan::TLS::Policy&
      /* policy */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:104,1
    - Dst: version
      Src: /src/botan/src/cli/tls_client.cpp:104,1
    - Dst: external_psk_identity
      Src: /src/botan/src/cli/tls_client.cpp:106,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: maybe_hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: value
      Src: /src/botan/src/cli/tls_client.cpp:107,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:110,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_client.cpp:110,1
    - Dst: kex_parameters
      Src: /src/botan/src/cli/tls_client.cpp:112,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:113,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_client.cpp:116,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_client.cpp:116,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: get
      Src: /src/botan/src/cli/tls_client.cpp:117,1
    - Dst: session_ticket
      Src: /src/botan/src/cli/tls_client.cpp:120,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: get
      Src: /src/botan/src/cli/tls_client.cpp:121,1
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:124,1
    - Dst: peer_certs
      Src: /src/botan/src/cli/tls_client.cpp:125,1
    - Dst: size
      Src: /src/botan/src/cli/tls_client.cpp:127,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:128,1
    - Dst: size
      Src: /src/botan/src/cli/tls_client.cpp:128,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:129,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_client.cpp:129,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:130,1
    - Dst: PEM_encode
      Src: /src/botan/src/cli/tls_client.cpp:130,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: Botan_CLI::Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - external_psk_identity
    - ciphersuite
    - session_ticket
    - to_string
    - peer_certs
    - kex_parameters
    - maybe_hex_encode
    - version
    - get
    - PEM_encode
    - size
    - output
    - value
    - Botan_CLI::Callbacks::flag_set
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:137,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:138,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:138,1
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_client.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: Botan_CLI::Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Callbacks::flag_set
    - Botan_CLI::Callbacks::send
    - Botan::hex_encode
    - output
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:144,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/cli/tls_client.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: Botan_CLI::Callbacks::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    - output
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:148,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: Botan_CLI::Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq_no*/, std::span<const uint8_t>
      buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:158,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
      Src: /src/botan/src/cli/tls_client.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - ' msg'
    argTypes:
    - Botan::Private_Key
    - Botan::RandomNumberGenerator
    - std::string_view
    - Botan::Signature_Format
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: Botan_CLI::Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    - output
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_sign_message(const Botan::Private_Key& key,\n
      \                                           Botan::RandomNumberGenerator& rng,\n
      \                                           const std::string_view padding,\n
      \                                           Botan::Signature_Format format,\n
      \                                           const std::vector<uint8_t>& msg)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
      Src: /src/botan/src/cli/tls_client.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: Botan_CLI::Callbacks::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_closed_connection
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_sockets
      Src: /src/botan/src/cli/tls_client.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: Botan_CLI::TLS_Client::TLS_Client
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - init_sockets
    linkageType: ''
    returnType: void
    signature: void TLS_Client()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stop_sockets
      Src: /src/botan/src/cli/tls_client.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: ~TLS_Client() override
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - stop_sockets
    linkageType: ''
    returnType: void
    signature: void ~TLS_Client() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    functionName: Botan_CLI::TLS_Client::TLS_Client
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Client(const TLS_Client& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: Botan_CLI::TLS_Client::TLS_Client
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Client(TLS_Client&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: '& operator=(const TLS_Client& other)'
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Client
    signature: TLS_Client & operator=(const TLS_Client& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: '& operator=(TLS_Client&& other)'
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Client
    signature: TLS_Client & operator=(TLS_Client&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: Botan_CLI::TLS_Client::group
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_CLI::TLS_Client::description
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Callbacks>
      Src: /src/botan/src/cli/tls_client.cpp:201,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:203,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:204,1
    - Dst: get_arg_u16
      Src: /src/botan/src/cli/tls_client.cpp:205,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:206,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:207,1
    - Dst: flag_set
      Src: /src/botan/src/cli/tls_client.cpp:208,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:209,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:210,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_client.cpp:212,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/tls_client.cpp:214,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/cli/tls_client.cpp:216,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_client.cpp:216,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_client.cpp:218,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_client.cpp:223,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_client.cpp:223,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_client.cpp:226,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_client.cpp:226,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tls_client.cpp:229,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/tls_client.cpp:232,1
    - Dst: std::make_shared<Botan::TLS::Policy>
      Src: /src/botan/src/cli/tls_client.cpp:235,1
    - Dst: auto::latest_supported_version
      Src: /src/botan/src/cli/tls_client.cpp:239,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_client.cpp:247,1
    - Dst: Botan_CLI::TLS_Client::connect_to_host
      Src: /src/botan/src/cli/tls_client.cpp:251,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_client.cpp:253,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_client.cpp:254,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_client.cpp:257,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/cli/tls_client.cpp:259,1
    - Dst: auto::value
      Src: /src/botan/src/cli/tls_client.cpp:259,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_client.cpp:264,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_client.cpp:265,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_client.cpp:267,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_client.cpp:271,1
    - Dst: Botan::TLS::Client::is_closed
      Src: /src/botan/src/cli/tls_client.cpp:287,1
    - Dst: FD_ZERO
      Src: /src/botan/src/cli/tls_client.cpp:289,1
    - Dst: FD_SET
      Src: /src/botan/src/cli/tls_client.cpp:290,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/cli/tls_client.cpp:292,1
    - Dst: FD_SET
      Src: /src/botan/src/cli/tls_client.cpp:293,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tls_client.cpp:294,1
    - Dst: Botan::TLS::Client::application_protocol
      Src: /src/botan/src/cli/tls_client.cpp:295,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_client.cpp:296,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:297,1
    - Dst: Botan::TLS::Client::application_protocol
      Src: /src/botan/src/cli/tls_client.cpp:297,1
    - Dst: Botan::select
      Src: /src/botan/src/cli/tls_client.cpp:305,1
    - Dst: static_cast<int>
      Src: /src/botan/src/cli/tls_client.cpp:305,1
    - Dst: FD_ISSET
      Src: /src/botan/src/cli/tls_client.cpp:307,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/cli/tls_client.cpp:310,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:313,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:316,1
    - Dst: err_to_string
      Src: /src/botan/src/cli/tls_client.cpp:316,1
    - Dst: flag_set
      Src: /src/botan/src/cli/tls_client.cpp:320,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:321,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_client.cpp:321,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/cli/tls_client.cpp:324,1
    - Dst: FD_ISSET
      Src: /src/botan/src/cli/tls_client.cpp:327,1
    - Dst: read
      Src: /src/botan/src/cli/tls_client.cpp:329,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:332,1
    - Dst: Botan::TLS::Client::close
      Src: /src/botan/src/cli/tls_client.cpp:333,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:337,1
    - Dst: err_to_string
      Src: /src/botan/src/cli/tls_client.cpp:337,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:345,1
    - Dst: Botan::TLS::Client::renegotiate
      Src: /src/botan/src/cli/tls_client.cpp:346,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:348,1
    - Dst: Botan::TLS::Client::close
      Src: /src/botan/src/cli/tls_client.cpp:349,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/cli/tls_client.cpp:353,1
    - Dst: Botan::TLS::Client::timeout_check
      Src: /src/botan/src/cli/tls_client.cpp:357,1
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:358,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/tls_client.cpp:362,1
    - Dst: auto::peer_closed
      Src: /src/botan/src/cli/tls_client.cpp:362,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/cli/tls_client.cpp:364,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 365
    functionName: Botan_CLI::TLS_Client::go
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Botan::TLS::Channel_Impl::close
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - get_arg_u16
    - Botan::select
    - read
    - load_tls_policy
    - std::make_shared<Basic_Credentials_Manager>
    - std::string::empty
    - std::move
    - Botan_CLI::TLS_Client::connect_to_host
    - Botan::TLS::Client::application_protocol
    - get_passphrase_arg
    - static_cast<int>
    - std::make_shared<Botan::TLS::Policy>
    - std::make_shared<Callbacks>
    - Botan::TLS::Client::timeout_check
    - std::vector::empty
    - FD_SET
    - FD_ISSET
    - Botan::TLS::Client::close
    - flag_set
    - rng_as_shared
    - set_return_code
    - get_arg
    - err_to_string
    - CLI_Usage_Error
    - Botan::TLS::Client::received_data
    - Botan::TLS::Client::is_closed
    - FD_ZERO
    - Botan::TLS::Client::renegotiate
    - Botan::hex_encode
    - Botan_CLI::Command::split_on
    - Shim_Socket::read
    - auto::peer_closed
    - get_arg_maybe
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - output
    - error_output
    - auto::latest_supported_version
    - auto::value
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_client.cpp:373,1
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/cli/tls_client.cpp:374,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/cli/tls_client.cpp:374,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/cli/tls_client.cpp:374,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:380,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_client.cpp:380,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/cli/tls_client.cpp:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 386
    functionName: Botan_CLI::TLS_Client::send
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::subspan
    - std::to_string
    - CLI_Error
    - Botan_Tests::MockChannel::send
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void send(std::span<const uint8_t> buf) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ::getaddrinfo
      Src: /src/botan/src/cli/tls_client.cpp:396,1
    - Dst: c_str
      Src: /src/botan/src/cli/tls_client.cpp:396,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_client.cpp:396,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/cli/tls_client.cpp:396,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:397,1
    - Dst: unique_addr_info_ptr::get
      Src: /src/botan/src/cli/tls_client.cpp:403,1
    - Dst: Client::close_socket
      Src: /src/botan/src/cli/tls_client.cpp:404,1
    - Dst: invalid_socket
      Src: /src/botan/src/cli/tls_client.cpp:406,1
    - Dst: client::handle_connect
      Src: /src/botan/src/cli/tls_client.cpp:410,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/cli/tls_client.cpp:411,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:421,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ' host'
    - port
    - tcp
    argTypes:
    - std::string
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 425
    functionName: Botan_CLI::TLS_Client::connect_to_host
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - std::to_string
    - CLI_Error
    - ::getaddrinfo
    - invalid_socket
    - unique_addr_info_ptr::get
    - Client::close_socket
    - client::handle_connect
    - c_str
    - Botan::out_ptr
    linkageType: ''
    returnType: socket_type
    signature: socket_type connect_to_host(const std::string& host, uint16_t port,
      bool tcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/cli/tls_client.cpp:428,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:431,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_client.cpp:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - sockfd
    - buf
    - length
    argTypes:
    - int
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 433
    functionName: Botan_CLI::TLS_Client::dgram_socket_write
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::MockChannel::send
    - std::to_string
    - CLI_Error
    linkageType: ''
    returnType: void
    signature: void dgram_socket_write(int sockfd, const uint8_t buf[], size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: '& Callbacks::output()'
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Callbacks::output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: Botan_CLI::Callbacks::flag_set
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 15
    functionsReached:
    - Botan_CLI::Callbacks::flag_set
    linkageType: ''
    returnType: bool
    signature: bool Callbacks::flag_set(const std::string& flag_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::get_arg
      Src: /src/botan/src/cli/tls_client.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: Botan_CLI::Callbacks::get_arg
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 7
    functionsReached:
    - Botan_CLI::Callbacks::get_arg
    linkageType: ''
    returnType: std::string
    signature: std::string Callbacks::get_arg(const std::string& arg_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_client.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: Botan_CLI::Callbacks::send
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 7
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void Callbacks::send(std::span<const uint8_t> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_client.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: '& Callbacks::output()'
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Callbacks::output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::flag_set
      Src: /src/botan/src/cli/tls_client.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: Botan_CLI::Callbacks::flag_set
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 16
    functionsReached:
    - Botan_CLI::Callbacks::flag_set
    linkageType: ''
    returnType: bool
    signature: bool Callbacks::flag_set(const std::string& flag_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::get_arg
      Src: /src/botan/src/cli/tls_client.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: Botan_CLI::Callbacks::get_arg
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 8
    functionsReached:
    - Botan_CLI::Callbacks::get_arg
    linkageType: ''
    returnType: std::string
    signature: std::string Callbacks::get_arg(const std::string& arg_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_client.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: Botan_CLI::Callbacks::send
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 8
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void Callbacks::send(std::span<const uint8_t> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sandbox
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: Botan_CLI::Sandbox::Sandbox
    functionSourceFile: /src/botan/src/cli/sandbox.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sandbox(const Sandbox& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sandbox
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan_CLI::Sandbox::Sandbox
    functionSourceFile: /src/botan/src/cli/sandbox.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sandbox(Sandbox&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sandbox
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: '& operator=(const Sandbox& other)'
    functionSourceFile: /src/botan/src/cli/sandbox.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Sandbox
    signature: Sandbox & operator=(const Sandbox& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sandbox
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: '& operator=(Sandbox&& other)'
    functionSourceFile: /src/botan/src/cli/sandbox.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Sandbox
    signature: Sandbox & operator=(Sandbox&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: '& name() const'
    functionSourceFile: /src/botan/src/cli/sandbox.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sandbox
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: Botan_CLI::Sandbox::Sandbox
    functionSourceFile: /src/botan/src/cli/sandbox.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sandbox(const Sandbox& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sandbox
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan_CLI::Sandbox::Sandbox
    functionSourceFile: /src/botan/src/cli/sandbox.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sandbox(Sandbox&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sandbox
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: '& operator=(const Sandbox& other)'
    functionSourceFile: /src/botan/src/cli/sandbox.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Sandbox
    signature: Sandbox & operator=(const Sandbox& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sandbox
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: '& operator=(Sandbox&& other)'
    functionSourceFile: /src/botan/src/cli/sandbox.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Sandbox
    signature: Sandbox & operator=(Sandbox&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: '& name() const'
    functionSourceFile: /src/botan/src/cli/sandbox.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/cli/perf.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - record_result
    - clock_speed
    - clock_cycle_ratio
    - runtime
    - ' ecc_groups'
    - ' buffer_sizes'
    - ' error_output'
    - ' rng'
    argTypes:
    - std::function<void(const Timer&)>
    - size_t
    - double
    - uint64_t
    - std::vector<std::string>
    - std::vector<size_t>
    - std::ostream
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: Botan_CLI::PerfConfig::PerfConfig
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void PerfConfig(std::function<void(const Timer&)> record_result,\n
      \                size_t clock_speed,\n                 double clock_cycle_ratio,\n
      \                uint64_t runtime,\n                 const std::vector<std::string>&
      ecc_groups,\n                 const std::vector<size_t>& buffer_sizes,\n                 std::ostream&
      error_output,\n                 Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& buffer_sizes() const'
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> & buffer_sizes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: '& ecc_groups() const'
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & ecc_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_CLI::PerfConfig::runtime
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t runtime() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& error_output() const'
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & error_output() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& rng() const'
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & rng() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_record_result
      Src: /src/botan/src/cli/perf.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_CLI::PerfConfig::record_result
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached:
    - m_record_result
    linkageType: ''
    returnType: void
    signature: void record_result(const Timer& timer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Timer>
      Src: /src/botan/src/cli/perf.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Botan_CLI::PerfConfig::make_timer
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Timer>
    linkageType: ''
    returnType: std::unique_ptr<Timer>
    signature: "std::unique_ptr<Timer> make_timer(const std::string& alg,\n                                        uint64_t
      event_mult = 1,\n                                        const std::string&
      what = \"\",\n                                        const std::string& provider
      = \"\",\n                                        size_t buf_size = 0) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~PerfTest()
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PerfTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - Perf_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: BOTAN_REGISTER_PERF_TEST
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_PERF_TEST(name, Perf_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/cli/perf.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - record_result
    - clock_speed
    - clock_cycle_ratio
    - runtime
    - ' ecc_groups'
    - ' buffer_sizes'
    - ' error_output'
    - ' rng'
    argTypes:
    - std::function<void(const Timer&)>
    - size_t
    - double
    - uint64_t
    - std::vector<std::string>
    - std::vector<size_t>
    - std::ostream
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: Botan_CLI::PerfConfig::PerfConfig
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void PerfConfig(std::function<void(const Timer&)> record_result,\n
      \                size_t clock_speed,\n                 double clock_cycle_ratio,\n
      \                uint64_t runtime,\n                 const std::vector<std::string>&
      ecc_groups,\n                 const std::vector<size_t>& buffer_sizes,\n                 std::ostream&
      error_output,\n                 Botan::RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& buffer_sizes() const'
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> & buffer_sizes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: '& ecc_groups() const'
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & ecc_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_CLI::PerfConfig::runtime
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t runtime() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& error_output() const'
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & error_output() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& rng() const'
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & rng() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_record_result
      Src: /src/botan/src/cli/perf.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan_CLI::PerfConfig::record_result
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached:
    - m_record_result
    linkageType: ''
    returnType: void
    signature: void record_result(const Timer& timer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Timer>
      Src: /src/botan/src/cli/perf.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Botan_CLI::PerfConfig::make_timer
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Timer>
    linkageType: ''
    returnType: std::unique_ptr<Timer>
    signature: "std::unique_ptr<Timer> make_timer(const std::string& alg,\n                                        uint64_t
      event_mult = 1,\n                                        const std::string&
      what = \"\",\n                                        const std::string& provider
      = \"\",\n                                        size_t buf_size = 0) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~PerfTest()
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PerfTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - Perf_Class
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: BOTAN_REGISTER_PERF_TEST
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOTAN_REGISTER_PERF_TEST(name, Perf_Class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::PBKDF_Tune::PBKDF_Tune
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PBKDF_Tune()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PBKDF_Tune::group
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::PBKDF_Tune::description
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:32,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:33,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pbkdf.cpp:35,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pbkdf.cpp:36,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/cli/pbkdf.cpp:38,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pbkdf.cpp:41,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pbkdf.cpp:44,1
    - Dst: auto::default_params
      Src: /src/botan/src/cli/pbkdf.cpp:48,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/pbkdf.cpp:52,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pbkdf.cpp:54,1
    - Dst: auto::tune_params
      Src: /src/botan/src/cli/pbkdf.cpp:57,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:60,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/pbkdf.cpp:60,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:62,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:63,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:63,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:71,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:73,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:76,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/pbkdf.cpp:76,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 84
    functionName: Botan_CLI::PBKDF_Tune::go
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::to_string
    - get_arg_sz
    - auto::tune_params
    - flag_set
    - auto::default_params
    - std::vector::data
    - std::unique_ptr::derive_key
    - std::vector::size
    - Botan::PasswordHashFamily::create
    - get_arg
    - get_arg_list
    - CLI_Usage_Error
    - output
    - CLI_Error_Unsupported
    - Botan::OS::get_system_timestamp_ns
    - std::unique_ptr::total_memory_usage
    - static_cast<double>
    - std::stoul
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::PBKDF_Tune::PBKDF_Tune
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PBKDF_Tune()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PBKDF_Tune::group
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::PBKDF_Tune::description
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:32,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:33,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pbkdf.cpp:35,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pbkdf.cpp:36,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/cli/pbkdf.cpp:38,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pbkdf.cpp:41,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pbkdf.cpp:44,1
    - Dst: auto::default_params
      Src: /src/botan/src/cli/pbkdf.cpp:48,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/pbkdf.cpp:52,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pbkdf.cpp:54,1
    - Dst: auto::tune_params
      Src: /src/botan/src/cli/pbkdf.cpp:57,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:60,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/pbkdf.cpp:60,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:62,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:63,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:63,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:71,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:73,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:76,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/pbkdf.cpp:76,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 84
    functionName: Botan_CLI::PBKDF_Tune::go
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::to_string
    - get_arg_sz
    - auto::tune_params
    - flag_set
    - auto::default_params
    - std::vector::data
    - std::unique_ptr::derive_key
    - std::vector::size
    - Botan::PasswordHashFamily::create
    - get_arg
    - get_arg_list
    - CLI_Usage_Error
    - output
    - CLI_Error_Unsupported
    - Botan::OS::get_system_timestamp_ns
    - std::unique_ptr::total_memory_usage
    - static_cast<double>
    - std::stoul
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::PBKDF_Tune::PBKDF_Tune
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PBKDF_Tune()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PBKDF_Tune::group
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::PBKDF_Tune::description
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:32,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:33,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pbkdf.cpp:35,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pbkdf.cpp:36,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/cli/pbkdf.cpp:38,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pbkdf.cpp:41,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pbkdf.cpp:44,1
    - Dst: auto::default_params
      Src: /src/botan/src/cli/pbkdf.cpp:48,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/pbkdf.cpp:52,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pbkdf.cpp:54,1
    - Dst: auto::tune_params
      Src: /src/botan/src/cli/pbkdf.cpp:57,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:60,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/pbkdf.cpp:60,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:62,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:63,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:63,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:71,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:73,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:76,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/pbkdf.cpp:76,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 84
    functionName: Botan_CLI::PBKDF_Tune::go
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::to_string
    - get_arg_sz
    - auto::tune_params
    - flag_set
    - auto::default_params
    - std::vector::data
    - std::unique_ptr::derive_key
    - std::vector::size
    - Botan::PasswordHashFamily::create
    - get_arg
    - get_arg_list
    - CLI_Usage_Error
    - output
    - CLI_Error_Unsupported
    - Botan::OS::get_system_timestamp_ns
    - std::unique_ptr::total_memory_usage
    - static_cast<double>
    - std::stoul
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::PBKDF_Tune::PBKDF_Tune
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PBKDF_Tune()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PBKDF_Tune::group
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::PBKDF_Tune::description
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:32,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:33,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pbkdf.cpp:35,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pbkdf.cpp:36,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/cli/pbkdf.cpp:38,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pbkdf.cpp:41,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pbkdf.cpp:44,1
    - Dst: auto::default_params
      Src: /src/botan/src/cli/pbkdf.cpp:48,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/pbkdf.cpp:52,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pbkdf.cpp:54,1
    - Dst: auto::tune_params
      Src: /src/botan/src/cli/pbkdf.cpp:57,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:60,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/pbkdf.cpp:60,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:62,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:63,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:63,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:71,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/pbkdf.cpp:72,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:73,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:76,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/pbkdf.cpp:76,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 84
    functionName: Botan_CLI::PBKDF_Tune::go
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::to_string
    - get_arg_sz
    - auto::tune_params
    - flag_set
    - auto::default_params
    - std::vector::data
    - std::unique_ptr::derive_key
    - std::vector::size
    - Botan::PasswordHashFamily::create
    - get_arg
    - get_arg_list
    - CLI_Usage_Error
    - output
    - CLI_Error_Unsupported
    - Botan::OS::get_system_timestamp_ns
    - std::unique_ptr::total_memory_usage
    - static_cast<double>
    - std::stoul
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:24,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:25,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:27,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:28,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:30,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:31,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:33,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:34,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/cli/perf_ec.cpp:36,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:40,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:40,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:41,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:43,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:43,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:44,1
    - Dst: auto::mul
      Src: /src/botan/src/cli/perf_ec.cpp:44,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:45,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:46,1
    - Dst: auto::mul
      Src: /src/botan/src/cli/perf_ec.cpp:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:48,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:49,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:50,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:53,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:54,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:55,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 58
    functionName: Botan_CLI::PerfTest_EllipticCurve_Mul::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - Botan::EC_AffinePoint::generator
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - auto::mul
    - BOTAN_ASSERT_NOMSG
    - rng
    - ecc_groups
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:66,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:67,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:69,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:70,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:72,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:73,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:74,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:75,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/cli/perf_ec.cpp:79,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:82,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:83,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:87,1
    - Dst: Botan::Mul2Table
      Src: /src/botan/src/cli/perf_ec.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: auto::mul2_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:94,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/cli/perf_ec.cpp:94,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:96,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:97,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:100,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:101,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:102,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 105
    functionName: Botan_CLI::PerfTest_EllipticCurve_Mul2::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - Botan::EC_AffinePoint::generator
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - Botan::EC_AffinePoint::mul_px_qy
    - BOTAN_ASSERT_NOMSG
    - Botan::Mul2Table
    - rng
    - ecc_groups
    - auto::mul2_vartime
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:113,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:114,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:116,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:117,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:121,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:132,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:133,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:137,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_ec.cpp:138,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:139,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:139,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:140,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/cli/perf_ec.cpp:140,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:143,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 146
    functionName: Botan_CLI::PerfTest_EllipticCurve_H2C::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - make_timer
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - auto::under
    - randomize
    - rng
    - ecc_groups
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:154,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:155,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:157,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:158,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:160,1
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/cli/perf_ec.cpp:161,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:162,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:162,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:165,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:167,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:169,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:170,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:171,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:172,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:174,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:174,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:175,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:175,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:176,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:176,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:178,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:179,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:181,1
    - Dst: auto::add
      Src: /src/botan/src/cli/perf_ec.cpp:181,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:182,1
    - Dst: auto::negate
      Src: /src/botan/src/cli/perf_ec.cpp:182,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:184,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:184,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:185,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:185,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/cli/perf_ec.cpp:187,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/cli/perf_ec.cpp:188,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:189,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:189,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:190,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:190,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:193,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:194,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:195,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 198
    functionName: Botan_CLI::PerfTest_EllipticCurve_Misc::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Scalar::random
    - auto::negate
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - auto::serialize_compressed
    - record_result
    - Botan::EC_AffinePoint::deserialize
    - Botan::EC_Group::from_name
    - auto::serialize_uncompressed
    - auto::run
    - auto::under
    - auto::add
    - rng
    - ecc_groups
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:206,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:207,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:209,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:210,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:212,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:213,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:214,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:215,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:216,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:218,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_ec.cpp:219,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/cli/perf_ec.cpp:219,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_ec.cpp:220,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/cli/perf_ec.cpp:220,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:223,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/cli/perf_ec.cpp:223,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:225,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/cli/perf_ec.cpp:225,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:227,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:228,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:229,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:231,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/perf_ec.cpp:231,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:232,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:232,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:233,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:235,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/perf_ec.cpp:235,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:236,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:236,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:237,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:239,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:240,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:241,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:243,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:244,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:245,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:246,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:249,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:250,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:251,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:252,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 255
    functionName: Botan_CLI::PerfTest_EllipticCurve_Scalar::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - runtime
    - make_timer
    - Botan::EC_Scalar::from_bytes_mod_order
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - BOTAN_ASSERT_NOMSG
    - auto::invert_vartime
    - rng
    - ecc_groups
    - auto::invert
    - auto::get_order_bytes
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:24,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:25,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:27,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:28,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:30,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:31,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:33,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:34,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/cli/perf_ec.cpp:36,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:40,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:40,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:41,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:43,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:43,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:44,1
    - Dst: auto::mul
      Src: /src/botan/src/cli/perf_ec.cpp:44,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:45,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:46,1
    - Dst: auto::mul
      Src: /src/botan/src/cli/perf_ec.cpp:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:48,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:49,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:50,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:53,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:54,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:55,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 58
    functionName: Botan_CLI::PerfTest_EllipticCurve_Mul::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - Botan::EC_AffinePoint::generator
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - auto::mul
    - BOTAN_ASSERT_NOMSG
    - rng
    - ecc_groups
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:66,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:67,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:69,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:70,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:72,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:73,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:74,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:75,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/cli/perf_ec.cpp:79,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:82,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:83,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:87,1
    - Dst: Botan::Mul2Table
      Src: /src/botan/src/cli/perf_ec.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: auto::mul2_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:94,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/cli/perf_ec.cpp:94,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:96,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:97,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:100,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:101,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:102,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 105
    functionName: Botan_CLI::PerfTest_EllipticCurve_Mul2::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - Botan::EC_AffinePoint::generator
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - Botan::EC_AffinePoint::mul_px_qy
    - BOTAN_ASSERT_NOMSG
    - Botan::Mul2Table
    - rng
    - ecc_groups
    - auto::mul2_vartime
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:113,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:114,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:116,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:117,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:121,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:132,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:133,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:137,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_ec.cpp:138,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:139,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:139,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:140,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/cli/perf_ec.cpp:140,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:143,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 146
    functionName: Botan_CLI::PerfTest_EllipticCurve_H2C::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - make_timer
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - auto::under
    - randomize
    - rng
    - ecc_groups
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:154,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:155,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:157,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:158,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:160,1
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/cli/perf_ec.cpp:161,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:162,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:162,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:165,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:167,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:169,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:170,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:171,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:172,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:174,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:174,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:175,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:175,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:176,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:176,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:178,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:179,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:181,1
    - Dst: auto::add
      Src: /src/botan/src/cli/perf_ec.cpp:181,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:182,1
    - Dst: auto::negate
      Src: /src/botan/src/cli/perf_ec.cpp:182,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:184,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:184,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:185,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:185,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/cli/perf_ec.cpp:187,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/cli/perf_ec.cpp:188,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:189,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:189,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:190,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:190,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:193,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:194,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:195,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 198
    functionName: Botan_CLI::PerfTest_EllipticCurve_Misc::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Scalar::random
    - auto::negate
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - auto::serialize_compressed
    - record_result
    - Botan::EC_AffinePoint::deserialize
    - Botan::EC_Group::from_name
    - auto::serialize_uncompressed
    - auto::run
    - auto::under
    - auto::add
    - rng
    - ecc_groups
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:206,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:207,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:209,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:210,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:212,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:213,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:214,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:215,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:216,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:218,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_ec.cpp:219,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/cli/perf_ec.cpp:219,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_ec.cpp:220,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/cli/perf_ec.cpp:220,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:223,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/cli/perf_ec.cpp:223,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:225,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/cli/perf_ec.cpp:225,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:227,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:228,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:229,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:231,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/perf_ec.cpp:231,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:232,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:232,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:233,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:235,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/perf_ec.cpp:235,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:236,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:236,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:237,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:239,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:240,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:241,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:243,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:244,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:245,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:246,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:249,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:250,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:251,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:252,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 255
    functionName: Botan_CLI::PerfTest_EllipticCurve_Scalar::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - runtime
    - make_timer
    - Botan::EC_Scalar::from_bytes_mod_order
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - BOTAN_ASSERT_NOMSG
    - auto::invert_vartime
    - rng
    - ecc_groups
    - auto::invert
    - auto::get_order_bytes
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:24,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:25,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:27,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:28,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:30,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:31,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:33,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:34,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/cli/perf_ec.cpp:36,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:40,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:40,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:41,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:43,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:43,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:44,1
    - Dst: auto::mul
      Src: /src/botan/src/cli/perf_ec.cpp:44,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:45,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:46,1
    - Dst: auto::mul
      Src: /src/botan/src/cli/perf_ec.cpp:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:48,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:49,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:50,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:53,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:54,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:55,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 58
    functionName: Botan_CLI::PerfTest_EllipticCurve_Mul::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - Botan::EC_AffinePoint::generator
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - auto::mul
    - BOTAN_ASSERT_NOMSG
    - rng
    - ecc_groups
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:66,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:67,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:69,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:70,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:72,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:73,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:74,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:75,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/cli/perf_ec.cpp:79,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:82,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:83,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:87,1
    - Dst: Botan::Mul2Table
      Src: /src/botan/src/cli/perf_ec.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: auto::mul2_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:94,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/cli/perf_ec.cpp:94,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:96,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:97,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:100,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:101,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:102,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 105
    functionName: Botan_CLI::PerfTest_EllipticCurve_Mul2::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - Botan::EC_AffinePoint::generator
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - Botan::EC_AffinePoint::mul_px_qy
    - BOTAN_ASSERT_NOMSG
    - Botan::Mul2Table
    - rng
    - ecc_groups
    - auto::mul2_vartime
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:113,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:114,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:116,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:117,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:121,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:132,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:133,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:137,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_ec.cpp:138,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:139,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:139,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:140,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/cli/perf_ec.cpp:140,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:143,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 146
    functionName: Botan_CLI::PerfTest_EllipticCurve_H2C::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - make_timer
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - auto::under
    - randomize
    - rng
    - ecc_groups
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:154,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:155,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:157,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:158,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:160,1
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/cli/perf_ec.cpp:161,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:162,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:162,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:165,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:167,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:169,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:170,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:171,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:172,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:174,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:174,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:175,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:175,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:176,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:176,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:178,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:179,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:181,1
    - Dst: auto::add
      Src: /src/botan/src/cli/perf_ec.cpp:181,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:182,1
    - Dst: auto::negate
      Src: /src/botan/src/cli/perf_ec.cpp:182,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:184,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:184,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:185,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:185,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/cli/perf_ec.cpp:187,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/cli/perf_ec.cpp:188,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:189,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:189,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:190,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:190,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:193,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:194,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:195,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 198
    functionName: Botan_CLI::PerfTest_EllipticCurve_Misc::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Scalar::random
    - auto::negate
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - auto::serialize_compressed
    - record_result
    - Botan::EC_AffinePoint::deserialize
    - Botan::EC_Group::from_name
    - auto::serialize_uncompressed
    - auto::run
    - auto::under
    - auto::add
    - rng
    - ecc_groups
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:206,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:207,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:209,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:210,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:212,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:213,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:214,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:215,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:216,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:218,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_ec.cpp:219,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/cli/perf_ec.cpp:219,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_ec.cpp:220,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/cli/perf_ec.cpp:220,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:223,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/cli/perf_ec.cpp:223,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:225,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/cli/perf_ec.cpp:225,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:227,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:228,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:229,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:231,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/perf_ec.cpp:231,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:232,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:232,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:233,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:235,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/perf_ec.cpp:235,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:236,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:236,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:237,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:239,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:240,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:241,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:243,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:244,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:245,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:246,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:249,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:250,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:251,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:252,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 255
    functionName: Botan_CLI::PerfTest_EllipticCurve_Scalar::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - runtime
    - make_timer
    - Botan::EC_Scalar::from_bytes_mod_order
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - BOTAN_ASSERT_NOMSG
    - auto::invert_vartime
    - rng
    - ecc_groups
    - auto::invert
    - auto::get_order_bytes
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:24,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:25,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:27,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:28,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:30,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:31,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:33,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:34,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/cli/perf_ec.cpp:36,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:40,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:40,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:41,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:43,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:43,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:44,1
    - Dst: auto::mul
      Src: /src/botan/src/cli/perf_ec.cpp:44,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:45,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:46,1
    - Dst: auto::mul
      Src: /src/botan/src/cli/perf_ec.cpp:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:48,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:49,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:50,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:53,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:54,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:55,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 58
    functionName: Botan_CLI::PerfTest_EllipticCurve_Mul::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - Botan::EC_AffinePoint::generator
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - auto::mul
    - BOTAN_ASSERT_NOMSG
    - rng
    - ecc_groups
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:66,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:67,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:69,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:70,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:72,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:73,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:74,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:75,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/cli/perf_ec.cpp:79,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:82,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:83,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:87,1
    - Dst: Botan::Mul2Table
      Src: /src/botan/src/cli/perf_ec.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: auto::mul2_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:94,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/cli/perf_ec.cpp:94,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:96,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:97,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:100,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:101,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:102,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 105
    functionName: Botan_CLI::PerfTest_EllipticCurve_Mul2::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - Botan::EC_AffinePoint::generator
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - Botan::EC_AffinePoint::mul_px_qy
    - BOTAN_ASSERT_NOMSG
    - Botan::Mul2Table
    - rng
    - ecc_groups
    - auto::mul2_vartime
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:113,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:114,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:116,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:117,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:121,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:132,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:133,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:137,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_ec.cpp:138,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:139,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:139,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:140,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/cli/perf_ec.cpp:140,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:143,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 146
    functionName: Botan_CLI::PerfTest_EllipticCurve_H2C::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - make_timer
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - auto::under
    - randomize
    - rng
    - ecc_groups
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:154,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:155,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:157,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:158,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:160,1
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/cli/perf_ec.cpp:161,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:162,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:162,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:165,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:167,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:169,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:170,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:171,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:172,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:174,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:174,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:175,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:175,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:176,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:176,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:178,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:179,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:181,1
    - Dst: auto::add
      Src: /src/botan/src/cli/perf_ec.cpp:181,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:182,1
    - Dst: auto::negate
      Src: /src/botan/src/cli/perf_ec.cpp:182,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:184,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:184,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:185,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:185,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/cli/perf_ec.cpp:187,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/cli/perf_ec.cpp:188,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:189,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:189,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:190,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:190,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:193,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:194,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:195,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 198
    functionName: Botan_CLI::PerfTest_EllipticCurve_Misc::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Scalar::random
    - auto::negate
    - Botan::EC_AffinePoint::g_mul
    - make_timer
    - auto::serialize_compressed
    - record_result
    - Botan::EC_AffinePoint::deserialize
    - Botan::EC_Group::from_name
    - auto::serialize_uncompressed
    - auto::run
    - auto::under
    - auto::add
    - rng
    - ecc_groups
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:206,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:207,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:209,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:210,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:212,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:213,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:214,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:215,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:216,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:218,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_ec.cpp:219,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/cli/perf_ec.cpp:219,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_ec.cpp:220,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/cli/perf_ec.cpp:220,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:223,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/cli/perf_ec.cpp:223,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:225,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/cli/perf_ec.cpp:225,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:227,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:228,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:229,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:231,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/perf_ec.cpp:231,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:232,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:232,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:233,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:235,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/perf_ec.cpp:235,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:236,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:236,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:237,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:239,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:240,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:241,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:243,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:244,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:245,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/perf_ec.cpp:246,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:249,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:250,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:251,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:252,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 255
    functionName: Botan_CLI::PerfTest_EllipticCurve_Scalar::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - runtime
    - make_timer
    - Botan::EC_Scalar::from_bytes_mod_order
    - record_result
    - Botan::EC_Group::from_name
    - auto::run
    - auto::under
    - BOTAN_ASSERT_NOMSG
    - auto::invert_vartime
    - rng
    - ecc_groups
    - auto::invert
    - auto::get_order_bytes
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_CLI::TLS_Ciphersuites::TLS_Ciphersuites
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Ciphersuites()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_utils.cpp:43,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: Botan_CLI::TLS_Ciphersuites::tls_version_from_str
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    linkageType: ''
    returnType: Botan::TLS::Protocol_Version
    signature: Botan::TLS::Protocol_Version tls_version_from_str(const std::string&
      str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_CLI::TLS_Ciphersuites::group
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::TLS_Ciphersuites::description
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:52,1
    - Dst: Botan_CLI::TLS_Ciphersuites::tls_version_from_str
      Src: /src/botan/src/cli/tls_utils.cpp:53,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:53,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_utils.cpp:55,1
    - Dst: auto::acceptable_protocol_version
      Src: /src/botan/src/cli/tls_utils.cpp:57,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:58,1
    - Dst: auto::ciphersuite_list
      Src: /src/botan/src/cli/tls_utils.cpp:62,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:63,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:64,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: Botan_CLI::TLS_Ciphersuites::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - auto::ciphersuite_list
    - get_arg
    - Botan::TLS::Ciphersuite::by_id
    - load_tls_policy
    - error_output
    - auto::acceptable_protocol_version
    - output
    - auto::to_string
    - Botan_CLI::TLS_Ciphersuites::tls_version_from_str
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan_CLI::TLS_Client_Hello_Reader::TLS_Client_Hello_Reader
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Client_Hello_Reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_CLI::TLS_Client_Hello_Reader::group
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_CLI::TLS_Client_Hello_Reader::description
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:82,1
    - Dst: flag_set
      Src: /src/botan/src/cli/tls_utils.cpp:85,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tls_utils.cpp:86,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/tls_utils.cpp:86,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tls_utils.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:91,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:92,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/cli/tls_utils.cpp:98,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:100,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:101,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/cli/tls_utils.cpp:110,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:112,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:113,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:121,1
    - Dst: Botan_CLI::TLS_Client_Hello_Reader::format_hello
      Src: /src/botan/src/cli/tls_utils.cpp:121,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/cli/tls_utils.cpp:122,1
    - Dst: std::holds_alternative<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/cli/tls_utils.cpp:123,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/cli/tls_utils.cpp:124,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_utils.cpp:124,1
    - Dst: Botan::TLS::Client_Hello_12::Client_Hello_12
      Src: /src/botan/src/cli/tls_utils.cpp:126,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:130,1
    - Dst: what
      Src: /src/botan/src/cli/tls_utils.cpp:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 132
    functionName: Botan_CLI::TLS_Client_Hello_Reader::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::holds_alternative<Botan::TLS::Client_Hello_13>
    - Botan::hex_decode
    - std::move
    - std::vector::end
    - slurp_file_as_str
    - Botan_CLI::TLS_Client_Hello_Reader::format_hello
    - Botan::make_uint32
    - std::vector::size
    - std::get<Botan::TLS::Client_Hello_13>
    - flag_set
    - get_arg
    - Botan::TLS::Client_Hello_13::parse
    - what
    - Botan::TLS::Client_Hello_12::Client_Hello_12
    - slurp_file
    - std::vector<uint8_t>
    - output
    - error_output
    - Botan::make_uint16
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:140,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:142,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:149,1
    - Dst: auto*::random
      Src: /src/botan/src/cli/tls_utils.cpp:149,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:151,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:152,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:152,1
    - Dst: auto*::ciphersuites
      Src: /src/botan/src/cli/tls_utils.cpp:154,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:155,1
    - Dst: auto::valid
      Src: /src/botan/src/cli/tls_utils.cpp:156,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:157,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:167,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:170,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:172,1
    - Dst: static_cast<unsigned int>
      Src: /src/botan/src/cli/tls_utils.cpp:175,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:175,1
    - Dst: auto*::extensions
      Src: /src/botan/src/cli/tls_utils.cpp:181,1
    - Dst: auto*::groups
      Src: /src/botan/src/cli/tls_utils.cpp:183,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: auto*::supports_alpn
      Src: /src/botan/src/cli/tls_utils.cpp:190,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:192,1
    - Dst: supports_encrypt_then_mac
      Src: /src/botan/src/cli/tls_utils.cpp:194,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/cli/tls_utils.cpp:195,1
    - Dst: supports_session_ticket
      Src: /src/botan/src/cli/tls_utils.cpp:196,1
    - Dst: extensions
      Src: /src/botan/src/cli/tls_utils.cpp:199,1
    - Dst: auto*::offered_groups
      Src: /src/botan/src/cli/tls_utils.cpp:201,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_utils.cpp:215,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - ' hello'
    argTypes:
    - std::variant<Botan::TLS::Client_Hello_13, Botan::TLS::Client_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 216
    functionName: Botan_CLI::TLS_Client_Hello_Reader::format_hello
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmt
    - auto::valid
    - auto*::offered_groups
    - auto*::ciphersuites
    - std::visit
    - auto*::groups
    - supports_extended_master_secret
    - static_cast<unsigned int>
    - auto*::random
    - extensions
    - auto*::signature_schemes
    - wire_code
    - Botan::TLS::Ciphersuite::by_id
    - supports_encrypt_then_mac
    - Botan::hex_encode
    - to_string
    - supports_session_ticket
    - auto*::supports_alpn
    - std::ostringstream::str
    - auto*::extensions
    - auto::to_string
    - auto*::session_id
    linkageType: ''
    returnType: std::string
    signature: "std::string format_hello(\n         const std::variant<Botan::TLS::Client_Hello_13,
      Botan::TLS::Client_Hello_12>& hello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_CLI::TLS_Ciphersuites::TLS_Ciphersuites
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Ciphersuites()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_utils.cpp:43,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: Botan_CLI::TLS_Ciphersuites::tls_version_from_str
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 1
    functionsReached:
    - CLI_Error
    linkageType: ''
    returnType: Botan::TLS::Protocol_Version
    signature: Botan::TLS::Protocol_Version tls_version_from_str(const std::string&
      str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_CLI::TLS_Ciphersuites::group
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::TLS_Ciphersuites::description
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:52,1
    - Dst: Botan_CLI::TLS_Ciphersuites::tls_version_from_str
      Src: /src/botan/src/cli/tls_utils.cpp:53,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:53,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_utils.cpp:55,1
    - Dst: auto::acceptable_protocol_version
      Src: /src/botan/src/cli/tls_utils.cpp:57,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:58,1
    - Dst: auto::ciphersuite_list
      Src: /src/botan/src/cli/tls_utils.cpp:62,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:63,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:64,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: Botan_CLI::TLS_Ciphersuites::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - auto::ciphersuite_list
    - get_arg
    - Botan::TLS::Ciphersuite::by_id
    - load_tls_policy
    - error_output
    - auto::acceptable_protocol_version
    - output
    - auto::to_string
    - Botan_CLI::TLS_Ciphersuites::tls_version_from_str
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan_CLI::TLS_Client_Hello_Reader::TLS_Client_Hello_Reader
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Client_Hello_Reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_CLI::TLS_Client_Hello_Reader::group
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_CLI::TLS_Client_Hello_Reader::description
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:82,1
    - Dst: flag_set
      Src: /src/botan/src/cli/tls_utils.cpp:85,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tls_utils.cpp:86,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/tls_utils.cpp:86,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tls_utils.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:91,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:92,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/cli/tls_utils.cpp:98,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:100,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:101,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/cli/tls_utils.cpp:110,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:112,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:113,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:121,1
    - Dst: Botan_CLI::TLS_Client_Hello_Reader::format_hello
      Src: /src/botan/src/cli/tls_utils.cpp:121,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/cli/tls_utils.cpp:122,1
    - Dst: std::holds_alternative<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/cli/tls_utils.cpp:123,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/cli/tls_utils.cpp:124,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_utils.cpp:124,1
    - Dst: Botan::TLS::Client_Hello_12::Client_Hello_12
      Src: /src/botan/src/cli/tls_utils.cpp:126,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:130,1
    - Dst: what
      Src: /src/botan/src/cli/tls_utils.cpp:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 132
    functionName: Botan_CLI::TLS_Client_Hello_Reader::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::holds_alternative<Botan::TLS::Client_Hello_13>
    - Botan::hex_decode
    - std::move
    - std::vector::end
    - slurp_file_as_str
    - Botan_CLI::TLS_Client_Hello_Reader::format_hello
    - Botan::make_uint32
    - std::vector::size
    - std::get<Botan::TLS::Client_Hello_13>
    - flag_set
    - get_arg
    - Botan::TLS::Client_Hello_13::parse
    - what
    - Botan::TLS::Client_Hello_12::Client_Hello_12
    - slurp_file
    - std::vector<uint8_t>
    - output
    - error_output
    - Botan::make_uint16
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:140,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:142,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:149,1
    - Dst: auto*::random
      Src: /src/botan/src/cli/tls_utils.cpp:149,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:151,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:152,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:152,1
    - Dst: auto*::ciphersuites
      Src: /src/botan/src/cli/tls_utils.cpp:154,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:155,1
    - Dst: auto::valid
      Src: /src/botan/src/cli/tls_utils.cpp:156,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:157,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:167,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:170,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:172,1
    - Dst: static_cast<unsigned int>
      Src: /src/botan/src/cli/tls_utils.cpp:175,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:175,1
    - Dst: auto*::extensions
      Src: /src/botan/src/cli/tls_utils.cpp:181,1
    - Dst: auto*::groups
      Src: /src/botan/src/cli/tls_utils.cpp:183,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: auto*::supports_alpn
      Src: /src/botan/src/cli/tls_utils.cpp:190,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:192,1
    - Dst: supports_encrypt_then_mac
      Src: /src/botan/src/cli/tls_utils.cpp:194,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/cli/tls_utils.cpp:195,1
    - Dst: supports_session_ticket
      Src: /src/botan/src/cli/tls_utils.cpp:196,1
    - Dst: extensions
      Src: /src/botan/src/cli/tls_utils.cpp:199,1
    - Dst: auto*::offered_groups
      Src: /src/botan/src/cli/tls_utils.cpp:201,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_utils.cpp:215,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - ' hello'
    argTypes:
    - std::variant<Botan::TLS::Client_Hello_13, Botan::TLS::Client_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 216
    functionName: Botan_CLI::TLS_Client_Hello_Reader::format_hello
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::fmt
    - auto::valid
    - auto*::offered_groups
    - auto*::ciphersuites
    - std::visit
    - auto*::groups
    - supports_extended_master_secret
    - static_cast<unsigned int>
    - auto*::random
    - extensions
    - auto*::signature_schemes
    - wire_code
    - Botan::TLS::Ciphersuite::by_id
    - supports_encrypt_then_mac
    - Botan::hex_encode
    - to_string
    - supports_session_ticket
    - auto*::supports_alpn
    - std::ostringstream::str
    - auto*::extensions
    - auto::to_string
    - auto*::session_id
    linkageType: ''
    returnType: std::string
    signature: "std::string format_hello(\n         const std::variant<Botan::TLS::Client_Hello_13,
      Botan::TLS::Client_Hello_12>& hello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_CLI::TLS_Ciphersuites::TLS_Ciphersuites
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Ciphersuites()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_utils.cpp:43,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: Botan_CLI::TLS_Ciphersuites::tls_version_from_str
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 2
    functionsReached:
    - CLI_Error
    linkageType: ''
    returnType: Botan::TLS::Protocol_Version
    signature: Botan::TLS::Protocol_Version tls_version_from_str(const std::string&
      str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_CLI::TLS_Ciphersuites::group
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::TLS_Ciphersuites::description
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:52,1
    - Dst: Botan_CLI::TLS_Ciphersuites::tls_version_from_str
      Src: /src/botan/src/cli/tls_utils.cpp:53,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:53,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_utils.cpp:55,1
    - Dst: auto::acceptable_protocol_version
      Src: /src/botan/src/cli/tls_utils.cpp:57,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:58,1
    - Dst: auto::ciphersuite_list
      Src: /src/botan/src/cli/tls_utils.cpp:62,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:63,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:64,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: Botan_CLI::TLS_Ciphersuites::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - auto::ciphersuite_list
    - get_arg
    - Botan::TLS::Ciphersuite::by_id
    - load_tls_policy
    - error_output
    - auto::acceptable_protocol_version
    - output
    - auto::to_string
    - Botan_CLI::TLS_Ciphersuites::tls_version_from_str
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan_CLI::TLS_Client_Hello_Reader::TLS_Client_Hello_Reader
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Client_Hello_Reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_CLI::TLS_Client_Hello_Reader::group
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_CLI::TLS_Client_Hello_Reader::description
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:82,1
    - Dst: flag_set
      Src: /src/botan/src/cli/tls_utils.cpp:85,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tls_utils.cpp:86,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/tls_utils.cpp:86,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tls_utils.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:91,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:92,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/cli/tls_utils.cpp:98,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:100,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:101,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/cli/tls_utils.cpp:110,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:112,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:113,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:121,1
    - Dst: Botan_CLI::TLS_Client_Hello_Reader::format_hello
      Src: /src/botan/src/cli/tls_utils.cpp:121,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/cli/tls_utils.cpp:122,1
    - Dst: std::holds_alternative<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/cli/tls_utils.cpp:123,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/cli/tls_utils.cpp:124,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_utils.cpp:124,1
    - Dst: Botan::TLS::Client_Hello_12::Client_Hello_12
      Src: /src/botan/src/cli/tls_utils.cpp:126,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:130,1
    - Dst: what
      Src: /src/botan/src/cli/tls_utils.cpp:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 132
    functionName: Botan_CLI::TLS_Client_Hello_Reader::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::holds_alternative<Botan::TLS::Client_Hello_13>
    - Botan::hex_decode
    - std::move
    - std::vector::end
    - slurp_file_as_str
    - Botan_CLI::TLS_Client_Hello_Reader::format_hello
    - Botan::make_uint32
    - std::vector::size
    - std::get<Botan::TLS::Client_Hello_13>
    - flag_set
    - get_arg
    - Botan::TLS::Client_Hello_13::parse
    - what
    - Botan::TLS::Client_Hello_12::Client_Hello_12
    - slurp_file
    - std::vector<uint8_t>
    - output
    - error_output
    - Botan::make_uint16
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:140,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:142,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:149,1
    - Dst: auto*::random
      Src: /src/botan/src/cli/tls_utils.cpp:149,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:151,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:152,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:152,1
    - Dst: auto*::ciphersuites
      Src: /src/botan/src/cli/tls_utils.cpp:154,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:155,1
    - Dst: auto::valid
      Src: /src/botan/src/cli/tls_utils.cpp:156,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:157,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:167,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:170,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:172,1
    - Dst: static_cast<unsigned int>
      Src: /src/botan/src/cli/tls_utils.cpp:175,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:175,1
    - Dst: auto*::extensions
      Src: /src/botan/src/cli/tls_utils.cpp:181,1
    - Dst: auto*::groups
      Src: /src/botan/src/cli/tls_utils.cpp:183,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: auto*::supports_alpn
      Src: /src/botan/src/cli/tls_utils.cpp:190,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:192,1
    - Dst: supports_encrypt_then_mac
      Src: /src/botan/src/cli/tls_utils.cpp:194,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/cli/tls_utils.cpp:195,1
    - Dst: supports_session_ticket
      Src: /src/botan/src/cli/tls_utils.cpp:196,1
    - Dst: extensions
      Src: /src/botan/src/cli/tls_utils.cpp:199,1
    - Dst: auto*::offered_groups
      Src: /src/botan/src/cli/tls_utils.cpp:201,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_utils.cpp:215,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - ' hello'
    argTypes:
    - std::variant<Botan::TLS::Client_Hello_13, Botan::TLS::Client_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 216
    functionName: Botan_CLI::TLS_Client_Hello_Reader::format_hello
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::fmt
    - auto::valid
    - auto*::offered_groups
    - auto*::ciphersuites
    - std::visit
    - auto*::groups
    - supports_extended_master_secret
    - static_cast<unsigned int>
    - auto*::random
    - extensions
    - auto*::signature_schemes
    - wire_code
    - Botan::TLS::Ciphersuite::by_id
    - supports_encrypt_then_mac
    - Botan::hex_encode
    - to_string
    - supports_session_ticket
    - auto*::supports_alpn
    - std::ostringstream::str
    - auto*::extensions
    - auto::to_string
    - auto*::session_id
    linkageType: ''
    returnType: std::string
    signature: "std::string format_hello(\n         const std::variant<Botan::TLS::Client_Hello_13,
      Botan::TLS::Client_Hello_12>& hello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan_CLI::TLS_Ciphersuites::TLS_Ciphersuites
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Ciphersuites()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_utils.cpp:43,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: Botan_CLI::TLS_Ciphersuites::tls_version_from_str
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 3
    functionsReached:
    - CLI_Error
    linkageType: ''
    returnType: Botan::TLS::Protocol_Version
    signature: Botan::TLS::Protocol_Version tls_version_from_str(const std::string&
      str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan_CLI::TLS_Ciphersuites::group
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::TLS_Ciphersuites::description
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:52,1
    - Dst: Botan_CLI::TLS_Ciphersuites::tls_version_from_str
      Src: /src/botan/src/cli/tls_utils.cpp:53,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:53,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_utils.cpp:55,1
    - Dst: auto::acceptable_protocol_version
      Src: /src/botan/src/cli/tls_utils.cpp:57,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:58,1
    - Dst: auto::ciphersuite_list
      Src: /src/botan/src/cli/tls_utils.cpp:62,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:63,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:64,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: Botan_CLI::TLS_Ciphersuites::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - auto::ciphersuite_list
    - get_arg
    - Botan::TLS::Ciphersuite::by_id
    - load_tls_policy
    - error_output
    - auto::acceptable_protocol_version
    - output
    - auto::to_string
    - Botan_CLI::TLS_Ciphersuites::tls_version_from_str
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan_CLI::TLS_Client_Hello_Reader::TLS_Client_Hello_Reader
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Client_Hello_Reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_CLI::TLS_Client_Hello_Reader::group
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan_CLI::TLS_Client_Hello_Reader::description
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:82,1
    - Dst: flag_set
      Src: /src/botan/src/cli/tls_utils.cpp:85,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tls_utils.cpp:86,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/tls_utils.cpp:86,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tls_utils.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:91,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:92,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/cli/tls_utils.cpp:98,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:100,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:101,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/cli/tls_utils.cpp:110,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:112,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:113,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:121,1
    - Dst: Botan_CLI::TLS_Client_Hello_Reader::format_hello
      Src: /src/botan/src/cli/tls_utils.cpp:121,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/cli/tls_utils.cpp:122,1
    - Dst: std::holds_alternative<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/cli/tls_utils.cpp:123,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/cli/tls_utils.cpp:124,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_utils.cpp:124,1
    - Dst: Botan::TLS::Client_Hello_12::Client_Hello_12
      Src: /src/botan/src/cli/tls_utils.cpp:126,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:130,1
    - Dst: what
      Src: /src/botan/src/cli/tls_utils.cpp:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 132
    functionName: Botan_CLI::TLS_Client_Hello_Reader::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::holds_alternative<Botan::TLS::Client_Hello_13>
    - Botan::hex_decode
    - std::move
    - std::vector::end
    - slurp_file_as_str
    - Botan_CLI::TLS_Client_Hello_Reader::format_hello
    - Botan::make_uint32
    - std::vector::size
    - std::get<Botan::TLS::Client_Hello_13>
    - flag_set
    - get_arg
    - Botan::TLS::Client_Hello_13::parse
    - what
    - Botan::TLS::Client_Hello_12::Client_Hello_12
    - slurp_file
    - std::vector<uint8_t>
    - output
    - error_output
    - Botan::make_uint16
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:140,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:142,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:149,1
    - Dst: auto*::random
      Src: /src/botan/src/cli/tls_utils.cpp:149,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:151,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:152,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:152,1
    - Dst: auto*::ciphersuites
      Src: /src/botan/src/cli/tls_utils.cpp:154,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:155,1
    - Dst: auto::valid
      Src: /src/botan/src/cli/tls_utils.cpp:156,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:157,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:167,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:170,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:172,1
    - Dst: static_cast<unsigned int>
      Src: /src/botan/src/cli/tls_utils.cpp:175,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:175,1
    - Dst: auto*::extensions
      Src: /src/botan/src/cli/tls_utils.cpp:181,1
    - Dst: auto*::groups
      Src: /src/botan/src/cli/tls_utils.cpp:183,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:184,1
    - Dst: auto*::supports_alpn
      Src: /src/botan/src/cli/tls_utils.cpp:190,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:192,1
    - Dst: supports_encrypt_then_mac
      Src: /src/botan/src/cli/tls_utils.cpp:194,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/cli/tls_utils.cpp:195,1
    - Dst: supports_session_ticket
      Src: /src/botan/src/cli/tls_utils.cpp:196,1
    - Dst: extensions
      Src: /src/botan/src/cli/tls_utils.cpp:199,1
    - Dst: auto*::offered_groups
      Src: /src/botan/src/cli/tls_utils.cpp:201,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:202,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_utils.cpp:215,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - ' hello'
    argTypes:
    - std::variant<Botan::TLS::Client_Hello_13, Botan::TLS::Client_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 216
    functionName: Botan_CLI::TLS_Client_Hello_Reader::format_hello
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::fmt
    - auto::valid
    - auto*::offered_groups
    - auto*::ciphersuites
    - std::visit
    - auto*::groups
    - supports_extended_master_secret
    - static_cast<unsigned int>
    - auto*::random
    - extensions
    - auto*::signature_schemes
    - wire_code
    - Botan::TLS::Ciphersuite::by_id
    - supports_encrypt_then_mac
    - Botan::hex_encode
    - to_string
    - supports_session_ticket
    - auto*::supports_alpn
    - std::ostringstream::str
    - auto*::extensions
    - auto::to_string
    - auto*::session_id
    linkageType: ''
    returnType: std::string
    signature: "std::string format_hello(\n         const std::variant<Botan::TLS::Client_Hello_13,
      Botan::TLS::Client_Hello_12>& hello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::TimingTestTimer::get_high_resolution_clock
      Src: /src/botan/src/cli/timing_tests.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::TimingTestTimer::TimingTestTimer
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::TimingTestTimer::get_high_resolution_clock
    linkageType: ''
    returnType: void
    signature: void TimingTestTimer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::TimingTestTimer::get_high_resolution_clock
      Src: /src/botan/src/cli/timing_tests.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::TimingTestTimer::complete
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::TimingTestTimer::get_high_resolution_clock
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/timing_tests.cpp:99,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timing_tests.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: Botan_CLI::TimingTestTimer::get_high_resolution_clock
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_high_resolution_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/timing_tests.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void Timing_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: ~Timing_Test()
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Timing_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test(const Timing_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test(Timing_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& operator=(const Timing_Test& other)'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timing_Test
    signature: Timing_Test & operator=(const Timing_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: '& operator=(Timing_Test&& other)'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timing_Test
    signature: Timing_Test & operator=(Timing_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan_CLI::Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: '& timing_test_rng()'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & timing_test_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:144,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:145,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:146,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::Bleichenbacker_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - public_key
    linkageType: ''
    returnType: void
    signature: void Bleichenbacker_Timing_Test(size_t keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:150,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:151,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - timing_test_rng
    - encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt_or_random
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - timing_test_rng
    - data
    - decrypt_or_random
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t measure_critical_function(const std::vector<uint8_t>& input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:183,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:184,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:185,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: Botan_CLI::Manger_Timing_Test::Manger_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - public_key
    linkageType: ''
    returnType: void
    signature: void Manger_Timing_Test(size_t keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:189,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:190,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: Botan_CLI::Manger_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - timing_test_rng
    - encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt
      Src: /src/botan/src/cli/timing_tests.cpp:196,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:196,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: Botan_CLI::Manger_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - data
    - decrypt
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t measure_critical_function(const std::vector<uint8_t>& input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/cli/timing_tests.cpp:223,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/cli/timing_tests.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' mac_name'
    - mac_keylen
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: Botan_CLI::Lucky13_Timing_Test::Lucky13_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::BlockCipher::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Lucky13_Timing_Test(const std::string& mac_name, size_t mac_keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:240,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/timing_tests.cpp:244,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/timing_tests.cpp:245,1
    - Dst: auto::start
      Src: /src/botan/src/cli/timing_tests.cpp:246,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/timing_tests.cpp:247,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:247,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/timing_tests.cpp:248,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: Botan_CLI::Lucky13_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::set_key
    - std::vector::end
    - auto::start
    - auto::finish
    - std::vector::begin
    - unlock
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Lucky13_Timing_Test::prepare_input(const std::string&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/cli/timing_tests.cpp:254,1
    - Dst: end
      Src: /src/botan/src/cli/timing_tests.cpp:254,1
    - Dst: set_key
      Src: /src/botan/src/cli/timing_tests.cpp:259,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:259,1
    - Dst: set_associated_data
      Src: /src/botan/src/cli/timing_tests.cpp:260,1
    - Dst: start
      Src: /src/botan/src/cli/timing_tests.cpp:261,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:261,1
    - Dst: finish
      Src: /src/botan/src/cli/timing_tests.cpp:265,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: Botan_CLI::Lucky13_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - finish
    - begin
    - set_associated_data
    - start
    - unlock
    - end
    - set_key
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Lucky13_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:289,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:290,1
    - Dst: _private_key
      Src: /src/botan/src/cli/timing_tests.cpp:291,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/timing_tests.cpp:292,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:292,1
    - Dst: invert
      Src: /src/botan/src/cli/timing_tests.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ecgroup'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: Botan_CLI::ECDSA_Timing_Test::ECDSA_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::random
    - invert
    - Botan::EC_Group::from_name
    - timing_test_rng
    - _private_key
    linkageType: ''
    returnType: void
    signature: void ECDSA_Timing_Test::ECDSA_Timing_Test(const std::string& ecgroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:296,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:298,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/cli/timing_tests.cpp:303,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:303,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/timing_tests.cpp:304,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:305,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:306,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:309,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 312
    functionName: Botan_CLI::ECDSA_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - Botan::EC_Scalar::gk_x_mod_order
    - BOTAN_UNUSED
    - Botan::EC_Scalar::from_bytes_with_trunc
    - square_self
    - timing_test_rng
    - auto::invert
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ECDSA_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ecgroup
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: Botan_CLI::ECC_Mul_Timing_Test::ECC_Mul_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    linkageType: ''
    returnType: void
    signature: void ECC_Mul_Timing_Test(std::string_view ecgroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:329,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/timing_tests.cpp:332,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:332,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: Botan_CLI::ECC_Mul_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_AffinePoint::g_mul
    - timing_test_rng
    - TimingTestTimer::complete
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ECC_Mul_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dl_group
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: Botan_CLI::Powmod_Timing_Test::Powmod_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    linkageType: ''
    returnType: void
    signature: void Powmod_Timing_Test(std::string_view dl_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:351,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:351,1
    - Dst: p_bits
      Src: /src/botan/src/cli/timing_tests.cpp:352,1
    - Dst: power_g_p
      Src: /src/botan/src/cli/timing_tests.cpp:356,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 359
    functionName: Botan_CLI::Powmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - power_g_p
    - data
    - p_bits
    - size
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Powmod_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/timing_tests.cpp:367,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: Botan_CLI::Invmod_Timing_Test::Invmod_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::random_prime
    - timing_test_rng
    linkageType: ''
    returnType: void
    signature: void Invmod_Timing_Test(size_t p_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:376,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:376,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/cli/timing_tests.cpp:379,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: Botan_CLI::Invmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::inverse_mod_secret_prime
    - size
    - data
    - TimingTestTimer::complete
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Invmod_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:388,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:389,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:392,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:395,1
    - Dst: Botan_CLI::Timing_Test::prepare_input
      Src: /src/botan/src/cli/timing_tests.cpp:396,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:401,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:405,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:408,1
    - Dst: measure_critical_function
      Src: /src/botan/src/cli/timing_tests.cpp:409,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:415,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - ' raw_inputs'
    - warmup_runs
    - measurement_runs
    argTypes:
    - std::vector<std::string>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 422
    functionName: Botan_CLI::Timing_Test::execute_evaluation
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - reserve
    - size
    - measure_critical_function
    - Botan_CLI::Timing_Test::prepare_input
    - push_back
    - std::vector::size
    linkageType: ''
    returnType: std::vector<std::vector<uint64_t>>
    signature: "std::vector<std::vector<uint64_t>> Timing_Test::execute_evaluation(const
      std::vector<std::string>& raw_inputs,\n                                                                   size_t
      warmup_runs,\n                                                                   size_t
      measurement_runs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: Botan_CLI::Timing_Test_Command::Timing_Test_Command
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 431
    functionName: Botan_CLI::Timing_Test_Command::group
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: Botan_CLI::Timing_Test_Command::description
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:436,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:437,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:438,1
    - Dst: Botan_CLI::Timing_Test_Command::lookup_timing_test
      Src: /src/botan/src/cli/timing_tests.cpp:440,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:443,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/timing_tests.cpp:446,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:448,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:449,1
    - Dst: Botan_CLI::Timing_Test_Command::read_testdata
      Src: /src/botan/src/cli/timing_tests.cpp:453,1
    - Dst: std::unique_ptr::execute_evaluation
      Src: /src/botan/src/cli/timing_tests.cpp:455,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:459,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:460,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:465,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timing_tests.cpp:465,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 466
    functionName: Botan_CLI::Timing_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timing_Test_Command::lookup_timing_test
    - get_arg_sz
    - std::string::empty
    - CLI_Error
    - get_arg_or
    - std::unique_ptr::execute_evaluation
    - get_arg
    - size
    - std::ostringstream::str
    - output
    - Botan_CLI::Timing_Test_Command::read_testdata
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/timing_tests.cpp:472,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:473,1
    - Dst: std::getline
      Src: /src/botan/src/cli/timing_tests.cpp:476,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:477,1
    - Dst: std::string::at
      Src: /src/botan/src/cli/timing_tests.cpp:477,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 482
    functionName: Botan_CLI::Timing_Test_Command::read_testdata
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 1
    functionsReached:
    - std::ifstream::good
    - std::string::empty
    - CLI_Error
    - std::vector::push_back
    - std::string::at
    - std::getline
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> read_testdata(const std::string& filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timing_Test_Command::help_text
      Src: /src/botan/src/cli/timing_tests.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 500
    functionName: Botan_CLI::Timing_Test_Command::help_text
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 5
    functionsReached:
    - Botan_CLI::Timing_Test_Command::help_text
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Bleichenbacker_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:506,1
    - Dst: std::make_unique<Manger_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:512,1
    - Dst: std::make_unique<ECDSA_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:518,1
    - Dst: std::make_unique<ECC_Mul_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:524,1
    - Dst: std::make_unique<Invmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:530,1
    - Dst: std::make_unique<Powmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:536,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:542,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:545,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:548,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:552,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - test_type
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 555
    functionName: Botan_CLI::Timing_Test_Command::lookup_timing_test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Invmod_Timing_Test>
    - std::make_unique<Powmod_Timing_Test>
    - std::make_unique<Manger_Timing_Test>
    - BOTAN_UNUSED
    - std::make_unique<Lucky13_Timing_Test>
    - std::make_unique<ECDSA_Timing_Test>
    - std::make_unique<Bleichenbacker_Timing_Test>
    - std::make_unique<ECC_Mul_Timing_Test>
    linkageType: ''
    returnType: std::unique_ptr<Timing_Test>
    signature: std::unique_ptr<Timing_Test> Timing_Test_Command::lookup_timing_test(std::string_view
      test_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 565
    functionName: Botan_CLI::MARVIN_Test_Command::MARVIN_Test_Command
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MARVIN_Test_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 567
    functionName: Botan_CLI::MARVIN_Test_Command::group
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 569
    functionName: Botan_CLI::MARVIN_Test_Command::description
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 574
    functionName: Botan_CLI::MARVIN_Test_Command::marvin_sigint_handler
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void marvin_sigint_handler(int /*signal*/)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:578,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:579,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:580,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:580,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:581,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:582,1
    - Dst: flag_set
      Src: /src/botan/src/cli/timing_tests.cpp:583,1
    - Dst: ::setenv
      Src: /src/botan/src/cli/timing_tests.cpp:586,1
    - Dst: sigemptyset
      Src: /src/botan/src/cli/timing_tests.cpp:591,1
    - Dst: ::sigaction
      Src: /src/botan/src/cli/timing_tests.cpp:594,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:596,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/timing_tests.cpp:601,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/timing_tests.cpp:603,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:604,1
    - Dst: auto::key_length
      Src: /src/botan/src/cli/timing_tests.cpp:607,1
    - Dst: Botan::get_files_recursive
      Src: /src/botan/src/cli/timing_tests.cpp:612,1
    - Dst: Botan_CLI::MARVIN_Test_Command::slurp_file
      Src: /src/botan/src/cli/timing_tests.cpp:613,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:615,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:616,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/timing_tests.cpp:617,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:619,1
    - Dst: Botan::split_on
      Src: /src/botan/src/cli/timing_tests.cpp:623,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: std::vector::insert
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: auto::end
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/timing_tests.cpp:629,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:630,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:633,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:635,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/cli/timing_tests.cpp:638,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:638,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:647,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:652,1
    - Dst: Botan_CLI::MARVIN_Test_Command::shuffle
      Src: /src/botan/src/cli/timing_tests.cpp:665,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/cli/timing_tests.cpp:670,1
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/cli/timing_tests.cpp:672,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:672,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/cli/timing_tests.cpp:676,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:676,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:677,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/timing_tests.cpp:678,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:678,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:679,1
    - Dst: Botan_CLI::MARVIN_Test_Command::report_results
      Src: /src/botan/src/cli/timing_tests.cpp:692,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 693
    functionName: Botan_CLI::MARVIN_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::MARVIN_Test_Command::slurp_file
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - reserve
    - ::sigaction
    - get_arg_sz
    - auto::size
    - sigemptyset
    - std::vector::end
    - Botan_CLI::MARVIN_Test_Command::shuffle
    - Botan::get_files_recursive
    - ::setenv
    - Botan::CT::conditional_assign_mem
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - std::vector::empty
    - std::vector::size
    - TimingTestTimer::complete
    - Botan_CLI::MARVIN_Test_Command::report_results
    - auto::begin
    - Botan::ct_is_equal
    - CLI_Error
    - flag_set
    - auto::key_length
    - get_arg
    - CLI_Usage_Error
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PKCS8::load_key
    - Botan::split_on
    - std::vector::push_back
    - Botan::system_rng
    - std::vector::data
    - size
    - auto::algo_name
    - std::vector::insert
    - output
    - Botan::ChaCha_RNG::ChaCha_RNG
    - push_back
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const std::string>::size
      Src: /src/botan/src/cli/timing_tests.cpp:701,1
    - Dst: std::span<const std::string>::size
      Src: /src/botan/src/cli/timing_tests.cpp:710,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timing_tests.cpp:719,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - ' output'
    - names
    - measurements
    - runs_completed
    - output_nsec
    argTypes:
    - std::ostream
    - std::span<const std::string>
    - std::span<const std::vector<uint64_t>>
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 725
    functionName: Botan_CLI::MARVIN_Test_Command::report_results
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 1
    functionsReached:
    - std::span<const std::string>::size
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: "void report_results(std::ostream& output,\n                                 std::span<const
      std::string> names,\n                                 std::span<const std::vector<uint64_t>>
      measurements,\n                                 size_t runs_completed,\n                                 bool
      output_nsec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/botan/src/cli/timing_tests.cpp:728,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:729,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:738,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/timing_tests.cpp:738,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 743
    functionName: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - substr
    - starts_with
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - ends_with
    - static_cast<size_t>
    - size
    - CLI_Usage_Error
    - std::stoul
    linkageType: ''
    returnType: size_t
    signature: size_t parse_runs_arg(const std::string& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:747,1
    - Dst: randomize
      Src: /src/botan/src/cli/timing_tests.cpp:750,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/cli/timing_tests.cpp:751,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:752,1
    - Dst: std::swap
      Src: /src/botan/src/cli/timing_tests.cpp:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' vec'
    - ' rng'
    argTypes:
    - std::vector<T>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: Botan_CLI::MARVIN_Test_Command::shuffle
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 1
    functionsReached:
    - std::swap
    - static_cast<size_t>
    - size
    - Botan::load_le<uint64_t>
    - randomize
    linkageType: ''
    returnType: void
    signature: void shuffle(std::vector<T>& vec, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::TimingTestTimer::get_high_resolution_clock
      Src: /src/botan/src/cli/timing_tests.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::TimingTestTimer::TimingTestTimer
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::TimingTestTimer::get_high_resolution_clock
    linkageType: ''
    returnType: void
    signature: void TimingTestTimer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::TimingTestTimer::get_high_resolution_clock
      Src: /src/botan/src/cli/timing_tests.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::TimingTestTimer::complete
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::TimingTestTimer::get_high_resolution_clock
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/timing_tests.cpp:99,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timing_tests.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: Botan_CLI::TimingTestTimer::get_high_resolution_clock
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 4
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_high_resolution_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/timing_tests.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void Timing_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: ~Timing_Test()
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Timing_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test(const Timing_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test(Timing_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& operator=(const Timing_Test& other)'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timing_Test
    signature: Timing_Test & operator=(const Timing_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: '& operator=(Timing_Test&& other)'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timing_Test
    signature: Timing_Test & operator=(Timing_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan_CLI::Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: '& timing_test_rng()'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & timing_test_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:144,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:145,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:146,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::Bleichenbacker_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - public_key
    linkageType: ''
    returnType: void
    signature: void Bleichenbacker_Timing_Test(size_t keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:150,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:151,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - timing_test_rng
    - encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt_or_random
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - timing_test_rng
    - data
    - decrypt_or_random
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t measure_critical_function(const std::vector<uint8_t>& input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:183,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:184,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:185,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: Botan_CLI::Manger_Timing_Test::Manger_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - public_key
    linkageType: ''
    returnType: void
    signature: void Manger_Timing_Test(size_t keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:189,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:190,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: Botan_CLI::Manger_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - timing_test_rng
    - encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt
      Src: /src/botan/src/cli/timing_tests.cpp:196,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:196,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: Botan_CLI::Manger_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - data
    - decrypt
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t measure_critical_function(const std::vector<uint8_t>& input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/cli/timing_tests.cpp:223,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/cli/timing_tests.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' mac_name'
    - mac_keylen
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: Botan_CLI::Lucky13_Timing_Test::Lucky13_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::BlockCipher::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Lucky13_Timing_Test(const std::string& mac_name, size_t mac_keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:240,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/timing_tests.cpp:244,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/timing_tests.cpp:245,1
    - Dst: auto::start
      Src: /src/botan/src/cli/timing_tests.cpp:246,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/timing_tests.cpp:247,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:247,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/timing_tests.cpp:248,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: Botan_CLI::Lucky13_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::set_key
    - std::vector::end
    - auto::start
    - auto::finish
    - std::vector::begin
    - unlock
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Lucky13_Timing_Test::prepare_input(const std::string&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/cli/timing_tests.cpp:254,1
    - Dst: end
      Src: /src/botan/src/cli/timing_tests.cpp:254,1
    - Dst: set_key
      Src: /src/botan/src/cli/timing_tests.cpp:259,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:259,1
    - Dst: set_associated_data
      Src: /src/botan/src/cli/timing_tests.cpp:260,1
    - Dst: start
      Src: /src/botan/src/cli/timing_tests.cpp:261,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:261,1
    - Dst: finish
      Src: /src/botan/src/cli/timing_tests.cpp:265,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: Botan_CLI::Lucky13_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - finish
    - begin
    - set_associated_data
    - start
    - unlock
    - end
    - set_key
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Lucky13_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:289,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:290,1
    - Dst: _private_key
      Src: /src/botan/src/cli/timing_tests.cpp:291,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/timing_tests.cpp:292,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:292,1
    - Dst: invert
      Src: /src/botan/src/cli/timing_tests.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ecgroup'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: Botan_CLI::ECDSA_Timing_Test::ECDSA_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::random
    - invert
    - Botan::EC_Group::from_name
    - timing_test_rng
    - _private_key
    linkageType: ''
    returnType: void
    signature: void ECDSA_Timing_Test::ECDSA_Timing_Test(const std::string& ecgroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:296,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:298,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/cli/timing_tests.cpp:303,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:303,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/timing_tests.cpp:304,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:305,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:306,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:309,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 312
    functionName: Botan_CLI::ECDSA_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - Botan::EC_Scalar::gk_x_mod_order
    - BOTAN_UNUSED
    - Botan::EC_Scalar::from_bytes_with_trunc
    - square_self
    - timing_test_rng
    - auto::invert
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ECDSA_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ecgroup
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: Botan_CLI::ECC_Mul_Timing_Test::ECC_Mul_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    linkageType: ''
    returnType: void
    signature: void ECC_Mul_Timing_Test(std::string_view ecgroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:329,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/timing_tests.cpp:332,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:332,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: Botan_CLI::ECC_Mul_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_AffinePoint::g_mul
    - timing_test_rng
    - TimingTestTimer::complete
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ECC_Mul_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dl_group
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: Botan_CLI::Powmod_Timing_Test::Powmod_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    linkageType: ''
    returnType: void
    signature: void Powmod_Timing_Test(std::string_view dl_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:351,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:351,1
    - Dst: p_bits
      Src: /src/botan/src/cli/timing_tests.cpp:352,1
    - Dst: power_g_p
      Src: /src/botan/src/cli/timing_tests.cpp:356,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 359
    functionName: Botan_CLI::Powmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - power_g_p
    - data
    - p_bits
    - size
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Powmod_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/timing_tests.cpp:367,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: Botan_CLI::Invmod_Timing_Test::Invmod_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::random_prime
    - timing_test_rng
    linkageType: ''
    returnType: void
    signature: void Invmod_Timing_Test(size_t p_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:376,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:376,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/cli/timing_tests.cpp:379,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: Botan_CLI::Invmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::inverse_mod_secret_prime
    - size
    - data
    - TimingTestTimer::complete
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Invmod_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:388,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:389,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:392,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:395,1
    - Dst: Botan_CLI::Timing_Test::prepare_input
      Src: /src/botan/src/cli/timing_tests.cpp:396,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:401,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:405,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:408,1
    - Dst: measure_critical_function
      Src: /src/botan/src/cli/timing_tests.cpp:409,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:415,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - ' raw_inputs'
    - warmup_runs
    - measurement_runs
    argTypes:
    - std::vector<std::string>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 422
    functionName: Botan_CLI::Timing_Test::execute_evaluation
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - reserve
    - size
    - measure_critical_function
    - Botan_CLI::Timing_Test::prepare_input
    - push_back
    - std::vector::size
    linkageType: ''
    returnType: std::vector<std::vector<uint64_t>>
    signature: "std::vector<std::vector<uint64_t>> Timing_Test::execute_evaluation(const
      std::vector<std::string>& raw_inputs,\n                                                                   size_t
      warmup_runs,\n                                                                   size_t
      measurement_runs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: Botan_CLI::Timing_Test_Command::Timing_Test_Command
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 431
    functionName: Botan_CLI::Timing_Test_Command::group
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: Botan_CLI::Timing_Test_Command::description
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:436,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:437,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:438,1
    - Dst: Botan_CLI::Timing_Test_Command::lookup_timing_test
      Src: /src/botan/src/cli/timing_tests.cpp:440,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:443,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/timing_tests.cpp:446,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:448,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:449,1
    - Dst: Botan_CLI::Timing_Test_Command::read_testdata
      Src: /src/botan/src/cli/timing_tests.cpp:453,1
    - Dst: std::unique_ptr::execute_evaluation
      Src: /src/botan/src/cli/timing_tests.cpp:455,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:459,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:460,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:465,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timing_tests.cpp:465,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 466
    functionName: Botan_CLI::Timing_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timing_Test_Command::lookup_timing_test
    - get_arg_sz
    - std::string::empty
    - CLI_Error
    - get_arg_or
    - std::unique_ptr::execute_evaluation
    - get_arg
    - size
    - std::ostringstream::str
    - output
    - Botan_CLI::Timing_Test_Command::read_testdata
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/timing_tests.cpp:472,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:473,1
    - Dst: std::getline
      Src: /src/botan/src/cli/timing_tests.cpp:476,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:477,1
    - Dst: std::string::at
      Src: /src/botan/src/cli/timing_tests.cpp:477,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 482
    functionName: Botan_CLI::Timing_Test_Command::read_testdata
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - std::ifstream::good
    - std::string::empty
    - CLI_Error
    - std::vector::push_back
    - std::string::at
    - std::getline
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> read_testdata(const std::string& filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timing_Test_Command::help_text
      Src: /src/botan/src/cli/timing_tests.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 500
    functionName: Botan_CLI::Timing_Test_Command::help_text
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 6
    functionsReached:
    - Botan_CLI::Timing_Test_Command::help_text
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Bleichenbacker_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:506,1
    - Dst: std::make_unique<Manger_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:512,1
    - Dst: std::make_unique<ECDSA_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:518,1
    - Dst: std::make_unique<ECC_Mul_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:524,1
    - Dst: std::make_unique<Invmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:530,1
    - Dst: std::make_unique<Powmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:536,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:542,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:545,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:548,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:552,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - test_type
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 555
    functionName: Botan_CLI::Timing_Test_Command::lookup_timing_test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<Invmod_Timing_Test>
    - std::make_unique<Powmod_Timing_Test>
    - std::make_unique<Manger_Timing_Test>
    - BOTAN_UNUSED
    - std::make_unique<Lucky13_Timing_Test>
    - std::make_unique<ECDSA_Timing_Test>
    - std::make_unique<Bleichenbacker_Timing_Test>
    - std::make_unique<ECC_Mul_Timing_Test>
    linkageType: ''
    returnType: std::unique_ptr<Timing_Test>
    signature: std::unique_ptr<Timing_Test> Timing_Test_Command::lookup_timing_test(std::string_view
      test_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 565
    functionName: Botan_CLI::MARVIN_Test_Command::MARVIN_Test_Command
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MARVIN_Test_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 567
    functionName: Botan_CLI::MARVIN_Test_Command::group
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 569
    functionName: Botan_CLI::MARVIN_Test_Command::description
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 574
    functionName: Botan_CLI::MARVIN_Test_Command::marvin_sigint_handler
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void marvin_sigint_handler(int /*signal*/)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:578,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:579,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:580,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:580,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:581,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:582,1
    - Dst: flag_set
      Src: /src/botan/src/cli/timing_tests.cpp:583,1
    - Dst: ::setenv
      Src: /src/botan/src/cli/timing_tests.cpp:586,1
    - Dst: sigemptyset
      Src: /src/botan/src/cli/timing_tests.cpp:591,1
    - Dst: ::sigaction
      Src: /src/botan/src/cli/timing_tests.cpp:594,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:596,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/timing_tests.cpp:601,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/timing_tests.cpp:603,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:604,1
    - Dst: auto::key_length
      Src: /src/botan/src/cli/timing_tests.cpp:607,1
    - Dst: Botan::get_files_recursive
      Src: /src/botan/src/cli/timing_tests.cpp:612,1
    - Dst: Botan_CLI::MARVIN_Test_Command::slurp_file
      Src: /src/botan/src/cli/timing_tests.cpp:613,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:615,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:616,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/timing_tests.cpp:617,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:619,1
    - Dst: Botan::split_on
      Src: /src/botan/src/cli/timing_tests.cpp:623,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: std::vector::insert
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: auto::end
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/timing_tests.cpp:629,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:630,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:633,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:635,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/cli/timing_tests.cpp:638,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:638,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:647,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:652,1
    - Dst: Botan_CLI::MARVIN_Test_Command::shuffle
      Src: /src/botan/src/cli/timing_tests.cpp:665,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/cli/timing_tests.cpp:670,1
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/cli/timing_tests.cpp:672,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:672,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/cli/timing_tests.cpp:676,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:676,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:677,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/timing_tests.cpp:678,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:678,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:679,1
    - Dst: Botan_CLI::MARVIN_Test_Command::report_results
      Src: /src/botan/src/cli/timing_tests.cpp:692,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 693
    functionName: Botan_CLI::MARVIN_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::MARVIN_Test_Command::slurp_file
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - reserve
    - ::sigaction
    - get_arg_sz
    - auto::size
    - sigemptyset
    - std::vector::end
    - Botan_CLI::MARVIN_Test_Command::shuffle
    - Botan::get_files_recursive
    - ::setenv
    - Botan::CT::conditional_assign_mem
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - std::vector::empty
    - std::vector::size
    - TimingTestTimer::complete
    - Botan_CLI::MARVIN_Test_Command::report_results
    - auto::begin
    - Botan::ct_is_equal
    - CLI_Error
    - flag_set
    - auto::key_length
    - get_arg
    - CLI_Usage_Error
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PKCS8::load_key
    - Botan::split_on
    - std::vector::push_back
    - Botan::system_rng
    - std::vector::data
    - size
    - auto::algo_name
    - std::vector::insert
    - output
    - Botan::ChaCha_RNG::ChaCha_RNG
    - push_back
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const std::string>::size
      Src: /src/botan/src/cli/timing_tests.cpp:701,1
    - Dst: std::span<const std::string>::size
      Src: /src/botan/src/cli/timing_tests.cpp:710,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timing_tests.cpp:719,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - ' output'
    - names
    - measurements
    - runs_completed
    - output_nsec
    argTypes:
    - std::ostream
    - std::span<const std::string>
    - std::span<const std::vector<uint64_t>>
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 725
    functionName: Botan_CLI::MARVIN_Test_Command::report_results
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - std::span<const std::string>::size
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: "void report_results(std::ostream& output,\n                                 std::span<const
      std::string> names,\n                                 std::span<const std::vector<uint64_t>>
      measurements,\n                                 size_t runs_completed,\n                                 bool
      output_nsec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/botan/src/cli/timing_tests.cpp:728,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:729,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:738,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/timing_tests.cpp:738,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 743
    functionName: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 4
    functionsReached:
    - substr
    - starts_with
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - ends_with
    - static_cast<size_t>
    - size
    - CLI_Usage_Error
    - std::stoul
    linkageType: ''
    returnType: size_t
    signature: size_t parse_runs_arg(const std::string& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:747,1
    - Dst: randomize
      Src: /src/botan/src/cli/timing_tests.cpp:750,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/cli/timing_tests.cpp:751,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:752,1
    - Dst: std::swap
      Src: /src/botan/src/cli/timing_tests.cpp:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' vec'
    - ' rng'
    argTypes:
    - std::vector<T>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: Botan_CLI::MARVIN_Test_Command::shuffle
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - std::swap
    - static_cast<size_t>
    - size
    - Botan::load_le<uint64_t>
    - randomize
    linkageType: ''
    returnType: void
    signature: void shuffle(std::vector<T>& vec, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::TimingTestTimer::get_high_resolution_clock
      Src: /src/botan/src/cli/timing_tests.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::TimingTestTimer::TimingTestTimer
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::TimingTestTimer::get_high_resolution_clock
    linkageType: ''
    returnType: void
    signature: void TimingTestTimer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::TimingTestTimer::get_high_resolution_clock
      Src: /src/botan/src/cli/timing_tests.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::TimingTestTimer::complete
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::TimingTestTimer::get_high_resolution_clock
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/timing_tests.cpp:99,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timing_tests.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: Botan_CLI::TimingTestTimer::get_high_resolution_clock
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 6
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_high_resolution_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/timing_tests.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void Timing_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: ~Timing_Test()
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Timing_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test(const Timing_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test(Timing_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& operator=(const Timing_Test& other)'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timing_Test
    signature: Timing_Test & operator=(const Timing_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: '& operator=(Timing_Test&& other)'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timing_Test
    signature: Timing_Test & operator=(Timing_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan_CLI::Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: '& timing_test_rng()'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & timing_test_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:144,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:145,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:146,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::Bleichenbacker_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - public_key
    linkageType: ''
    returnType: void
    signature: void Bleichenbacker_Timing_Test(size_t keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:150,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:151,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - timing_test_rng
    - encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt_or_random
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - timing_test_rng
    - data
    - decrypt_or_random
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t measure_critical_function(const std::vector<uint8_t>& input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:183,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:184,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:185,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: Botan_CLI::Manger_Timing_Test::Manger_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - public_key
    linkageType: ''
    returnType: void
    signature: void Manger_Timing_Test(size_t keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:189,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:190,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: Botan_CLI::Manger_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - timing_test_rng
    - encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt
      Src: /src/botan/src/cli/timing_tests.cpp:196,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:196,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: Botan_CLI::Manger_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - data
    - decrypt
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t measure_critical_function(const std::vector<uint8_t>& input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/cli/timing_tests.cpp:223,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/cli/timing_tests.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' mac_name'
    - mac_keylen
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: Botan_CLI::Lucky13_Timing_Test::Lucky13_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::BlockCipher::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Lucky13_Timing_Test(const std::string& mac_name, size_t mac_keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:240,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/timing_tests.cpp:244,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/timing_tests.cpp:245,1
    - Dst: auto::start
      Src: /src/botan/src/cli/timing_tests.cpp:246,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/timing_tests.cpp:247,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:247,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/timing_tests.cpp:248,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: Botan_CLI::Lucky13_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::set_key
    - std::vector::end
    - auto::start
    - auto::finish
    - std::vector::begin
    - unlock
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Lucky13_Timing_Test::prepare_input(const std::string&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/cli/timing_tests.cpp:254,1
    - Dst: end
      Src: /src/botan/src/cli/timing_tests.cpp:254,1
    - Dst: set_key
      Src: /src/botan/src/cli/timing_tests.cpp:259,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:259,1
    - Dst: set_associated_data
      Src: /src/botan/src/cli/timing_tests.cpp:260,1
    - Dst: start
      Src: /src/botan/src/cli/timing_tests.cpp:261,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:261,1
    - Dst: finish
      Src: /src/botan/src/cli/timing_tests.cpp:265,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: Botan_CLI::Lucky13_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - finish
    - begin
    - set_associated_data
    - start
    - unlock
    - end
    - set_key
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Lucky13_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:289,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:290,1
    - Dst: _private_key
      Src: /src/botan/src/cli/timing_tests.cpp:291,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/timing_tests.cpp:292,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:292,1
    - Dst: invert
      Src: /src/botan/src/cli/timing_tests.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ecgroup'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: Botan_CLI::ECDSA_Timing_Test::ECDSA_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::random
    - invert
    - Botan::EC_Group::from_name
    - timing_test_rng
    - _private_key
    linkageType: ''
    returnType: void
    signature: void ECDSA_Timing_Test::ECDSA_Timing_Test(const std::string& ecgroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:296,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:298,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/cli/timing_tests.cpp:303,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:303,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/timing_tests.cpp:304,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:305,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:306,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:309,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 312
    functionName: Botan_CLI::ECDSA_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - Botan::EC_Scalar::gk_x_mod_order
    - BOTAN_UNUSED
    - Botan::EC_Scalar::from_bytes_with_trunc
    - square_self
    - timing_test_rng
    - auto::invert
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ECDSA_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ecgroup
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: Botan_CLI::ECC_Mul_Timing_Test::ECC_Mul_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    linkageType: ''
    returnType: void
    signature: void ECC_Mul_Timing_Test(std::string_view ecgroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:329,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/timing_tests.cpp:332,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:332,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: Botan_CLI::ECC_Mul_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_AffinePoint::g_mul
    - timing_test_rng
    - TimingTestTimer::complete
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ECC_Mul_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dl_group
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: Botan_CLI::Powmod_Timing_Test::Powmod_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    linkageType: ''
    returnType: void
    signature: void Powmod_Timing_Test(std::string_view dl_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:351,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:351,1
    - Dst: p_bits
      Src: /src/botan/src/cli/timing_tests.cpp:352,1
    - Dst: power_g_p
      Src: /src/botan/src/cli/timing_tests.cpp:356,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 359
    functionName: Botan_CLI::Powmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - power_g_p
    - data
    - p_bits
    - size
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Powmod_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/timing_tests.cpp:367,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: Botan_CLI::Invmod_Timing_Test::Invmod_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::random_prime
    - timing_test_rng
    linkageType: ''
    returnType: void
    signature: void Invmod_Timing_Test(size_t p_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:376,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:376,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/cli/timing_tests.cpp:379,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: Botan_CLI::Invmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::inverse_mod_secret_prime
    - size
    - data
    - TimingTestTimer::complete
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Invmod_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:388,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:389,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:392,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:395,1
    - Dst: Botan_CLI::Timing_Test::prepare_input
      Src: /src/botan/src/cli/timing_tests.cpp:396,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:401,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:405,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:408,1
    - Dst: measure_critical_function
      Src: /src/botan/src/cli/timing_tests.cpp:409,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:415,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - ' raw_inputs'
    - warmup_runs
    - measurement_runs
    argTypes:
    - std::vector<std::string>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 422
    functionName: Botan_CLI::Timing_Test::execute_evaluation
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - reserve
    - size
    - measure_critical_function
    - Botan_CLI::Timing_Test::prepare_input
    - push_back
    - std::vector::size
    linkageType: ''
    returnType: std::vector<std::vector<uint64_t>>
    signature: "std::vector<std::vector<uint64_t>> Timing_Test::execute_evaluation(const
      std::vector<std::string>& raw_inputs,\n                                                                   size_t
      warmup_runs,\n                                                                   size_t
      measurement_runs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: Botan_CLI::Timing_Test_Command::Timing_Test_Command
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 431
    functionName: Botan_CLI::Timing_Test_Command::group
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: Botan_CLI::Timing_Test_Command::description
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:436,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:437,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:438,1
    - Dst: Botan_CLI::Timing_Test_Command::lookup_timing_test
      Src: /src/botan/src/cli/timing_tests.cpp:440,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:443,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/timing_tests.cpp:446,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:448,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:449,1
    - Dst: Botan_CLI::Timing_Test_Command::read_testdata
      Src: /src/botan/src/cli/timing_tests.cpp:453,1
    - Dst: std::unique_ptr::execute_evaluation
      Src: /src/botan/src/cli/timing_tests.cpp:455,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:459,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:460,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:465,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timing_tests.cpp:465,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 466
    functionName: Botan_CLI::Timing_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timing_Test_Command::lookup_timing_test
    - get_arg_sz
    - std::string::empty
    - CLI_Error
    - get_arg_or
    - std::unique_ptr::execute_evaluation
    - get_arg
    - size
    - std::ostringstream::str
    - output
    - Botan_CLI::Timing_Test_Command::read_testdata
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/timing_tests.cpp:472,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:473,1
    - Dst: std::getline
      Src: /src/botan/src/cli/timing_tests.cpp:476,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:477,1
    - Dst: std::string::at
      Src: /src/botan/src/cli/timing_tests.cpp:477,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 482
    functionName: Botan_CLI::Timing_Test_Command::read_testdata
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 3
    functionsReached:
    - std::ifstream::good
    - std::string::empty
    - CLI_Error
    - std::vector::push_back
    - std::string::at
    - std::getline
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> read_testdata(const std::string& filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timing_Test_Command::help_text
      Src: /src/botan/src/cli/timing_tests.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 500
    functionName: Botan_CLI::Timing_Test_Command::help_text
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 7
    functionsReached:
    - Botan_CLI::Timing_Test_Command::help_text
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Bleichenbacker_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:506,1
    - Dst: std::make_unique<Manger_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:512,1
    - Dst: std::make_unique<ECDSA_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:518,1
    - Dst: std::make_unique<ECC_Mul_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:524,1
    - Dst: std::make_unique<Invmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:530,1
    - Dst: std::make_unique<Powmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:536,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:542,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:545,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:548,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:552,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - test_type
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 555
    functionName: Botan_CLI::Timing_Test_Command::lookup_timing_test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 3
    functionsReached:
    - std::make_unique<Invmod_Timing_Test>
    - std::make_unique<Powmod_Timing_Test>
    - std::make_unique<Manger_Timing_Test>
    - BOTAN_UNUSED
    - std::make_unique<Lucky13_Timing_Test>
    - std::make_unique<ECDSA_Timing_Test>
    - std::make_unique<Bleichenbacker_Timing_Test>
    - std::make_unique<ECC_Mul_Timing_Test>
    linkageType: ''
    returnType: std::unique_ptr<Timing_Test>
    signature: std::unique_ptr<Timing_Test> Timing_Test_Command::lookup_timing_test(std::string_view
      test_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 565
    functionName: Botan_CLI::MARVIN_Test_Command::MARVIN_Test_Command
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MARVIN_Test_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 567
    functionName: Botan_CLI::MARVIN_Test_Command::group
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 569
    functionName: Botan_CLI::MARVIN_Test_Command::description
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 574
    functionName: Botan_CLI::MARVIN_Test_Command::marvin_sigint_handler
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void marvin_sigint_handler(int /*signal*/)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:578,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:579,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:580,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:580,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:581,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:582,1
    - Dst: flag_set
      Src: /src/botan/src/cli/timing_tests.cpp:583,1
    - Dst: ::setenv
      Src: /src/botan/src/cli/timing_tests.cpp:586,1
    - Dst: sigemptyset
      Src: /src/botan/src/cli/timing_tests.cpp:591,1
    - Dst: ::sigaction
      Src: /src/botan/src/cli/timing_tests.cpp:594,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:596,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/timing_tests.cpp:601,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/timing_tests.cpp:603,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:604,1
    - Dst: auto::key_length
      Src: /src/botan/src/cli/timing_tests.cpp:607,1
    - Dst: Botan::get_files_recursive
      Src: /src/botan/src/cli/timing_tests.cpp:612,1
    - Dst: Botan_CLI::MARVIN_Test_Command::slurp_file
      Src: /src/botan/src/cli/timing_tests.cpp:613,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:615,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:616,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/timing_tests.cpp:617,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:619,1
    - Dst: Botan::split_on
      Src: /src/botan/src/cli/timing_tests.cpp:623,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: std::vector::insert
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: auto::end
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/timing_tests.cpp:629,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:630,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:633,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:635,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/cli/timing_tests.cpp:638,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:638,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:647,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:652,1
    - Dst: Botan_CLI::MARVIN_Test_Command::shuffle
      Src: /src/botan/src/cli/timing_tests.cpp:665,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/cli/timing_tests.cpp:670,1
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/cli/timing_tests.cpp:672,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:672,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/cli/timing_tests.cpp:676,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:676,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:677,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/timing_tests.cpp:678,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:678,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:679,1
    - Dst: Botan_CLI::MARVIN_Test_Command::report_results
      Src: /src/botan/src/cli/timing_tests.cpp:692,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 693
    functionName: Botan_CLI::MARVIN_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::MARVIN_Test_Command::slurp_file
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - reserve
    - ::sigaction
    - get_arg_sz
    - auto::size
    - sigemptyset
    - std::vector::end
    - Botan_CLI::MARVIN_Test_Command::shuffle
    - Botan::get_files_recursive
    - ::setenv
    - Botan::CT::conditional_assign_mem
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - std::vector::empty
    - std::vector::size
    - TimingTestTimer::complete
    - Botan_CLI::MARVIN_Test_Command::report_results
    - auto::begin
    - Botan::ct_is_equal
    - CLI_Error
    - flag_set
    - auto::key_length
    - get_arg
    - CLI_Usage_Error
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PKCS8::load_key
    - Botan::split_on
    - std::vector::push_back
    - Botan::system_rng
    - std::vector::data
    - size
    - auto::algo_name
    - std::vector::insert
    - output
    - Botan::ChaCha_RNG::ChaCha_RNG
    - push_back
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const std::string>::size
      Src: /src/botan/src/cli/timing_tests.cpp:701,1
    - Dst: std::span<const std::string>::size
      Src: /src/botan/src/cli/timing_tests.cpp:710,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timing_tests.cpp:719,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - ' output'
    - names
    - measurements
    - runs_completed
    - output_nsec
    argTypes:
    - std::ostream
    - std::span<const std::string>
    - std::span<const std::vector<uint64_t>>
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 725
    functionName: Botan_CLI::MARVIN_Test_Command::report_results
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 3
    functionsReached:
    - std::span<const std::string>::size
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: "void report_results(std::ostream& output,\n                                 std::span<const
      std::string> names,\n                                 std::span<const std::vector<uint64_t>>
      measurements,\n                                 size_t runs_completed,\n                                 bool
      output_nsec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/botan/src/cli/timing_tests.cpp:728,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:729,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:738,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/timing_tests.cpp:738,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 743
    functionName: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 6
    functionsReached:
    - substr
    - starts_with
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - ends_with
    - static_cast<size_t>
    - size
    - CLI_Usage_Error
    - std::stoul
    linkageType: ''
    returnType: size_t
    signature: size_t parse_runs_arg(const std::string& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:747,1
    - Dst: randomize
      Src: /src/botan/src/cli/timing_tests.cpp:750,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/cli/timing_tests.cpp:751,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:752,1
    - Dst: std::swap
      Src: /src/botan/src/cli/timing_tests.cpp:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' vec'
    - ' rng'
    argTypes:
    - std::vector<T>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: Botan_CLI::MARVIN_Test_Command::shuffle
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 3
    functionsReached:
    - std::swap
    - static_cast<size_t>
    - size
    - Botan::load_le<uint64_t>
    - randomize
    linkageType: ''
    returnType: void
    signature: void shuffle(std::vector<T>& vec, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::TimingTestTimer::get_high_resolution_clock
      Src: /src/botan/src/cli/timing_tests.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::TimingTestTimer::TimingTestTimer
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::TimingTestTimer::get_high_resolution_clock
    linkageType: ''
    returnType: void
    signature: void TimingTestTimer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::TimingTestTimer::get_high_resolution_clock
      Src: /src/botan/src/cli/timing_tests.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::TimingTestTimer::complete
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::TimingTestTimer::get_high_resolution_clock
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/timing_tests.cpp:99,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timing_tests.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: Botan_CLI::TimingTestTimer::get_high_resolution_clock
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 8
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_high_resolution_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/timing_tests.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - cli_make_rng
    linkageType: ''
    returnType: void
    signature: void Timing_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: ~Timing_Test()
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Timing_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test(const Timing_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan_CLI::Timing_Test::Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test(Timing_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& operator=(const Timing_Test& other)'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timing_Test
    signature: Timing_Test & operator=(const Timing_Test& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timing_Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: '& operator=(Timing_Test&& other)'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timing_Test
    signature: Timing_Test & operator=(Timing_Test&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan_CLI::Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: '& timing_test_rng()'
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & timing_test_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:144,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:145,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:146,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::Bleichenbacker_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - public_key
    linkageType: ''
    returnType: void
    signature: void Bleichenbacker_Timing_Test(size_t keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:150,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:151,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - timing_test_rng
    - encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt_or_random
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - timing_test_rng
    - data
    - decrypt_or_random
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t measure_critical_function(const std::vector<uint8_t>& input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:183,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:184,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:185,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: Botan_CLI::Manger_Timing_Test::Manger_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - public_key
    linkageType: ''
    returnType: void
    signature: void Manger_Timing_Test(size_t keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:189,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:190,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: Botan_CLI::Manger_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - timing_test_rng
    - encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> prepare_input(const std::string& input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt
      Src: /src/botan/src/cli/timing_tests.cpp:196,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:196,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: Botan_CLI::Manger_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - data
    - decrypt
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t measure_critical_function(const std::vector<uint8_t>& input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/cli/timing_tests.cpp:223,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/cli/timing_tests.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' mac_name'
    - mac_keylen
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: Botan_CLI::Lucky13_Timing_Test::Lucky13_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::BlockCipher::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Lucky13_Timing_Test(const std::string& mac_name, size_t mac_keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/timing_tests.cpp:240,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/timing_tests.cpp:244,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/timing_tests.cpp:245,1
    - Dst: auto::start
      Src: /src/botan/src/cli/timing_tests.cpp:246,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/timing_tests.cpp:247,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:247,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/timing_tests.cpp:248,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: Botan_CLI::Lucky13_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::set_key
    - std::vector::end
    - auto::start
    - auto::finish
    - std::vector::begin
    - unlock
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Lucky13_Timing_Test::prepare_input(const std::string&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/cli/timing_tests.cpp:254,1
    - Dst: end
      Src: /src/botan/src/cli/timing_tests.cpp:254,1
    - Dst: set_key
      Src: /src/botan/src/cli/timing_tests.cpp:259,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:259,1
    - Dst: set_associated_data
      Src: /src/botan/src/cli/timing_tests.cpp:260,1
    - Dst: start
      Src: /src/botan/src/cli/timing_tests.cpp:261,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:261,1
    - Dst: finish
      Src: /src/botan/src/cli/timing_tests.cpp:265,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: Botan_CLI::Lucky13_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - finish
    - begin
    - set_associated_data
    - start
    - unlock
    - end
    - set_key
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Lucky13_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:289,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:290,1
    - Dst: _private_key
      Src: /src/botan/src/cli/timing_tests.cpp:291,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/timing_tests.cpp:292,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:292,1
    - Dst: invert
      Src: /src/botan/src/cli/timing_tests.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ecgroup'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: Botan_CLI::ECDSA_Timing_Test::ECDSA_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::random
    - invert
    - Botan::EC_Group::from_name
    - timing_test_rng
    - _private_key
    linkageType: ''
    returnType: void
    signature: void ECDSA_Timing_Test::ECDSA_Timing_Test(const std::string& ecgroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:296,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:298,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/cli/timing_tests.cpp:303,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:303,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/timing_tests.cpp:304,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:305,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:306,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:309,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 312
    functionName: Botan_CLI::ECDSA_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - Botan::EC_Scalar::gk_x_mod_order
    - BOTAN_UNUSED
    - Botan::EC_Scalar::from_bytes_with_trunc
    - square_self
    - timing_test_rng
    - auto::invert
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ECDSA_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ecgroup
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: Botan_CLI::ECC_Mul_Timing_Test::ECC_Mul_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    linkageType: ''
    returnType: void
    signature: void ECC_Mul_Timing_Test(std::string_view ecgroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:329,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/timing_tests.cpp:332,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:332,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: Botan_CLI::ECC_Mul_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_AffinePoint::g_mul
    - timing_test_rng
    - TimingTestTimer::complete
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ECC_Mul_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/timing_tests.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dl_group
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: Botan_CLI::Powmod_Timing_Test::Powmod_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_name
    linkageType: ''
    returnType: void
    signature: void Powmod_Timing_Test(std::string_view dl_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:351,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:351,1
    - Dst: p_bits
      Src: /src/botan/src/cli/timing_tests.cpp:352,1
    - Dst: power_g_p
      Src: /src/botan/src/cli/timing_tests.cpp:356,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 359
    functionName: Botan_CLI::Powmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - power_g_p
    - data
    - p_bits
    - size
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Powmod_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/timing_tests.cpp:367,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: Botan_CLI::Invmod_Timing_Test::Invmod_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::random_prime
    - timing_test_rng
    linkageType: ''
    returnType: void
    signature: void Invmod_Timing_Test(size_t p_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:376,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:376,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/cli/timing_tests.cpp:379,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: Botan_CLI::Invmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::inverse_mod_secret_prime
    - size
    - data
    - TimingTestTimer::complete
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Invmod_Timing_Test::measure_critical_function(const std::vector<uint8_t>&
      input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:388,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:389,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:392,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:395,1
    - Dst: Botan_CLI::Timing_Test::prepare_input
      Src: /src/botan/src/cli/timing_tests.cpp:396,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:401,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:405,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:408,1
    - Dst: measure_critical_function
      Src: /src/botan/src/cli/timing_tests.cpp:409,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:415,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - ' raw_inputs'
    - warmup_runs
    - measurement_runs
    argTypes:
    - std::vector<std::string>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 422
    functionName: Botan_CLI::Timing_Test::execute_evaluation
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - reserve
    - size
    - measure_critical_function
    - Botan_CLI::Timing_Test::prepare_input
    - push_back
    - std::vector::size
    linkageType: ''
    returnType: std::vector<std::vector<uint64_t>>
    signature: "std::vector<std::vector<uint64_t>> Timing_Test::execute_evaluation(const
      std::vector<std::string>& raw_inputs,\n                                                                   size_t
      warmup_runs,\n                                                                   size_t
      measurement_runs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: Botan_CLI::Timing_Test_Command::Timing_Test_Command
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timing_Test_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 431
    functionName: Botan_CLI::Timing_Test_Command::group
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: Botan_CLI::Timing_Test_Command::description
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:436,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:437,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:438,1
    - Dst: Botan_CLI::Timing_Test_Command::lookup_timing_test
      Src: /src/botan/src/cli/timing_tests.cpp:440,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:443,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/timing_tests.cpp:446,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:448,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:449,1
    - Dst: Botan_CLI::Timing_Test_Command::read_testdata
      Src: /src/botan/src/cli/timing_tests.cpp:453,1
    - Dst: std::unique_ptr::execute_evaluation
      Src: /src/botan/src/cli/timing_tests.cpp:455,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:459,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:460,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:465,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timing_tests.cpp:465,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 466
    functionName: Botan_CLI::Timing_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timing_Test_Command::lookup_timing_test
    - get_arg_sz
    - std::string::empty
    - CLI_Error
    - get_arg_or
    - std::unique_ptr::execute_evaluation
    - get_arg
    - size
    - std::ostringstream::str
    - output
    - Botan_CLI::Timing_Test_Command::read_testdata
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/timing_tests.cpp:472,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:473,1
    - Dst: std::getline
      Src: /src/botan/src/cli/timing_tests.cpp:476,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:477,1
    - Dst: std::string::at
      Src: /src/botan/src/cli/timing_tests.cpp:477,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 482
    functionName: Botan_CLI::Timing_Test_Command::read_testdata
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 4
    functionsReached:
    - std::ifstream::good
    - std::string::empty
    - CLI_Error
    - std::vector::push_back
    - std::string::at
    - std::getline
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> read_testdata(const std::string& filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timing_Test_Command::help_text
      Src: /src/botan/src/cli/timing_tests.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 500
    functionName: Botan_CLI::Timing_Test_Command::help_text
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 8
    functionsReached:
    - Botan_CLI::Timing_Test_Command::help_text
    linkageType: ''
    returnType: std::string
    signature: std::string help_text() const override
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Bleichenbacker_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:506,1
    - Dst: std::make_unique<Manger_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:512,1
    - Dst: std::make_unique<ECDSA_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:518,1
    - Dst: std::make_unique<ECC_Mul_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:524,1
    - Dst: std::make_unique<Invmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:530,1
    - Dst: std::make_unique<Powmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:536,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:542,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:545,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:548,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:552,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - test_type
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 555
    functionName: Botan_CLI::Timing_Test_Command::lookup_timing_test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<Invmod_Timing_Test>
    - std::make_unique<Powmod_Timing_Test>
    - std::make_unique<Manger_Timing_Test>
    - BOTAN_UNUSED
    - std::make_unique<Lucky13_Timing_Test>
    - std::make_unique<ECDSA_Timing_Test>
    - std::make_unique<Bleichenbacker_Timing_Test>
    - std::make_unique<ECC_Mul_Timing_Test>
    linkageType: ''
    returnType: std::unique_ptr<Timing_Test>
    signature: std::unique_ptr<Timing_Test> Timing_Test_Command::lookup_timing_test(std::string_view
      test_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 565
    functionName: Botan_CLI::MARVIN_Test_Command::MARVIN_Test_Command
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MARVIN_Test_Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 567
    functionName: Botan_CLI::MARVIN_Test_Command::group
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 569
    functionName: Botan_CLI::MARVIN_Test_Command::description
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 574
    functionName: Botan_CLI::MARVIN_Test_Command::marvin_sigint_handler
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void marvin_sigint_handler(int /*signal*/)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:578,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:579,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:580,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:580,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:581,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/timing_tests.cpp:582,1
    - Dst: flag_set
      Src: /src/botan/src/cli/timing_tests.cpp:583,1
    - Dst: ::setenv
      Src: /src/botan/src/cli/timing_tests.cpp:586,1
    - Dst: sigemptyset
      Src: /src/botan/src/cli/timing_tests.cpp:591,1
    - Dst: ::sigaction
      Src: /src/botan/src/cli/timing_tests.cpp:594,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:596,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/timing_tests.cpp:601,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/timing_tests.cpp:603,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:604,1
    - Dst: auto::key_length
      Src: /src/botan/src/cli/timing_tests.cpp:607,1
    - Dst: Botan::get_files_recursive
      Src: /src/botan/src/cli/timing_tests.cpp:612,1
    - Dst: Botan_CLI::MARVIN_Test_Command::slurp_file
      Src: /src/botan/src/cli/timing_tests.cpp:613,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:615,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:616,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/timing_tests.cpp:617,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:619,1
    - Dst: Botan::split_on
      Src: /src/botan/src/cli/timing_tests.cpp:623,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: std::vector::insert
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: auto::end
      Src: /src/botan/src/cli/timing_tests.cpp:626,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/timing_tests.cpp:629,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:630,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:633,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:635,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/cli/timing_tests.cpp:638,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:638,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:647,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:652,1
    - Dst: Botan_CLI::MARVIN_Test_Command::shuffle
      Src: /src/botan/src/cli/timing_tests.cpp:665,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/cli/timing_tests.cpp:670,1
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/cli/timing_tests.cpp:672,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:672,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/cli/timing_tests.cpp:676,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:676,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:677,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/timing_tests.cpp:678,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:678,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:679,1
    - Dst: Botan_CLI::MARVIN_Test_Command::report_results
      Src: /src/botan/src/cli/timing_tests.cpp:692,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 693
    functionName: Botan_CLI::MARVIN_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan_CLI::MARVIN_Test_Command::slurp_file
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - reserve
    - ::sigaction
    - get_arg_sz
    - auto::size
    - sigemptyset
    - std::vector::end
    - Botan_CLI::MARVIN_Test_Command::shuffle
    - Botan::get_files_recursive
    - ::setenv
    - Botan::CT::conditional_assign_mem
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - std::vector::empty
    - std::vector::size
    - TimingTestTimer::complete
    - Botan_CLI::MARVIN_Test_Command::report_results
    - auto::begin
    - Botan::ct_is_equal
    - CLI_Error
    - flag_set
    - auto::key_length
    - get_arg
    - CLI_Usage_Error
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PKCS8::load_key
    - Botan::split_on
    - std::vector::push_back
    - Botan::system_rng
    - std::vector::data
    - size
    - auto::algo_name
    - std::vector::insert
    - output
    - Botan::ChaCha_RNG::ChaCha_RNG
    - push_back
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const std::string>::size
      Src: /src/botan/src/cli/timing_tests.cpp:701,1
    - Dst: std::span<const std::string>::size
      Src: /src/botan/src/cli/timing_tests.cpp:710,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timing_tests.cpp:719,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - ' output'
    - names
    - measurements
    - runs_completed
    - output_nsec
    argTypes:
    - std::ostream
    - std::span<const std::string>
    - std::span<const std::vector<uint64_t>>
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 725
    functionName: Botan_CLI::MARVIN_Test_Command::report_results
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 4
    functionsReached:
    - std::span<const std::string>::size
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: "void report_results(std::ostream& output,\n                                 std::span<const
      std::string> names,\n                                 std::span<const std::vector<uint64_t>>
      measurements,\n                                 size_t runs_completed,\n                                 bool
      output_nsec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/botan/src/cli/timing_tests.cpp:728,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:729,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:735,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:738,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/timing_tests.cpp:738,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 743
    functionName: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 8
    functionsReached:
    - substr
    - starts_with
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - ends_with
    - static_cast<size_t>
    - size
    - CLI_Usage_Error
    - std::stoul
    linkageType: ''
    returnType: size_t
    signature: size_t parse_runs_arg(const std::string& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:747,1
    - Dst: randomize
      Src: /src/botan/src/cli/timing_tests.cpp:750,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/cli/timing_tests.cpp:751,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:752,1
    - Dst: std::swap
      Src: /src/botan/src/cli/timing_tests.cpp:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' vec'
    - ' rng'
    argTypes:
    - std::vector<T>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: Botan_CLI::MARVIN_Test_Command::shuffle
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 4
    functionsReached:
    - std::swap
    - static_cast<size_t>
    - size
    - Botan::load_le<uint64_t>
    - randomize
    linkageType: ''
    returnType: void
    signature: void shuffle(std::vector<T>& vec, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::TSS_Split::TSS_Split
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Split()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::TSS_Split::group
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::TSS_Split::description
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:35,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:36,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:37,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tss.cpp:38,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tss.cpp:39,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:42,1
    - Dst: Botan_CLI::TSS_Split::slurp_file_lvec
      Src: /src/botan/src/cli/tss.cpp:45,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:47,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:48,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tss.cpp:51,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:53,1
    - Dst: std::vector::resize
      Src: /src/botan/src/cli/tss.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/cli/tss.cpp:58,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:58,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:59,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:60,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/tss.cpp:61,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:61,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:64,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:66,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tss.cpp:67,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/tss.cpp:68,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tss.cpp:70,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: Botan_CLI::TSS_Split::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - data
    - Botan::RTSS_Share::split
    - Botan::secure_vector::data
    - get_arg_sz
    - Botan::hex_decode
    - Botan::secure_vector::size
    - std::string::c_str
    - static_cast<uint8_t>
    - std::vector::size
    - std::vector::empty
    - CLI_Error
    - std::vector::resize
    - get_arg
    - CLI_Usage_Error
    - Botan_CLI::TSS_Split::slurp_file_lvec
    - static_cast<uint16_t>
    - std::vector::data
    - rng
    - std::ofstream::write
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/cli/tss.cpp:80,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/cli/tss.cpp:80,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/tss.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: Botan_CLI::TSS_Split::slurp_file_lvec
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 1
    functionsReached:
    - Botan::secure_vector::insert
    - Botan::secure_vector::end
    - Botan_CLI::Command::read_file
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> slurp_file_lvec(const std::string& input_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan_CLI::TSS_Recover::TSS_Recover
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Recover()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::TSS_Recover::group
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::TSS_Recover::description
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_list
      Src: /src/botan/src/cli/tss.cpp:97,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:100,1
    - Dst: help_text
      Src: /src/botan/src/cli/tss.cpp:100,1
    - Dst: Botan_CLI::TSS_Recover::set_return_code
      Src: /src/botan/src/cli/tss.cpp:101,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tss.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: auto::data
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: auto::size
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/cli/tss.cpp:112,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: Botan_CLI::TSS_Recover::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - slurp_file
    - auto::data
    - auto::size
    - std::vector::push_back
    - Botan::cast_uint8_ptr_to_char
    - help_text
    - Botan_CLI::TSS_Recover::set_return_code
    - Botan::RTSS_Share::reconstruct
    - Botan::RTSS_Share
    - get_arg_list
    - output
    - Botan::secure_vector::size
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::TSS_Split::TSS_Split
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Split()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::TSS_Split::group
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::TSS_Split::description
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:35,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:36,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:37,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tss.cpp:38,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tss.cpp:39,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:42,1
    - Dst: Botan_CLI::TSS_Split::slurp_file_lvec
      Src: /src/botan/src/cli/tss.cpp:45,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:47,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:48,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tss.cpp:51,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:53,1
    - Dst: std::vector::resize
      Src: /src/botan/src/cli/tss.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/cli/tss.cpp:58,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:58,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:59,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:60,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/tss.cpp:61,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:61,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:64,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:66,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tss.cpp:67,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/tss.cpp:68,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tss.cpp:70,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: Botan_CLI::TSS_Split::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - data
    - Botan::RTSS_Share::split
    - Botan::secure_vector::data
    - get_arg_sz
    - Botan::hex_decode
    - Botan::secure_vector::size
    - std::string::c_str
    - static_cast<uint8_t>
    - std::vector::size
    - std::vector::empty
    - CLI_Error
    - std::vector::resize
    - get_arg
    - CLI_Usage_Error
    - Botan_CLI::TSS_Split::slurp_file_lvec
    - static_cast<uint16_t>
    - std::vector::data
    - rng
    - std::ofstream::write
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/cli/tss.cpp:80,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/cli/tss.cpp:80,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/tss.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: Botan_CLI::TSS_Split::slurp_file_lvec
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 2
    functionsReached:
    - Botan::secure_vector::insert
    - Botan::secure_vector::end
    - Botan_CLI::Command::read_file
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> slurp_file_lvec(const std::string& input_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan_CLI::TSS_Recover::TSS_Recover
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Recover()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::TSS_Recover::group
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::TSS_Recover::description
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_list
      Src: /src/botan/src/cli/tss.cpp:97,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:100,1
    - Dst: help_text
      Src: /src/botan/src/cli/tss.cpp:100,1
    - Dst: Botan_CLI::TSS_Recover::set_return_code
      Src: /src/botan/src/cli/tss.cpp:101,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tss.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: auto::data
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: auto::size
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/cli/tss.cpp:112,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: Botan_CLI::TSS_Recover::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - slurp_file
    - auto::data
    - auto::size
    - std::vector::push_back
    - Botan::cast_uint8_ptr_to_char
    - help_text
    - Botan_CLI::TSS_Recover::set_return_code
    - Botan::RTSS_Share::reconstruct
    - Botan::RTSS_Share
    - get_arg_list
    - output
    - Botan::secure_vector::size
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::TSS_Split::TSS_Split
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Split()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::TSS_Split::group
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::TSS_Split::description
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:35,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:36,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:37,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tss.cpp:38,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tss.cpp:39,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:42,1
    - Dst: Botan_CLI::TSS_Split::slurp_file_lvec
      Src: /src/botan/src/cli/tss.cpp:45,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:47,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:48,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tss.cpp:51,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:53,1
    - Dst: std::vector::resize
      Src: /src/botan/src/cli/tss.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/cli/tss.cpp:58,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:58,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:59,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:60,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/tss.cpp:61,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:61,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:64,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:66,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tss.cpp:67,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/tss.cpp:68,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tss.cpp:70,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: Botan_CLI::TSS_Split::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - data
    - Botan::RTSS_Share::split
    - Botan::secure_vector::data
    - get_arg_sz
    - Botan::hex_decode
    - Botan::secure_vector::size
    - std::string::c_str
    - static_cast<uint8_t>
    - std::vector::size
    - std::vector::empty
    - CLI_Error
    - std::vector::resize
    - get_arg
    - CLI_Usage_Error
    - Botan_CLI::TSS_Split::slurp_file_lvec
    - static_cast<uint16_t>
    - std::vector::data
    - rng
    - std::ofstream::write
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/cli/tss.cpp:80,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/cli/tss.cpp:80,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/tss.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: Botan_CLI::TSS_Split::slurp_file_lvec
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 3
    functionsReached:
    - Botan::secure_vector::insert
    - Botan::secure_vector::end
    - Botan_CLI::Command::read_file
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> slurp_file_lvec(const std::string& input_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan_CLI::TSS_Recover::TSS_Recover
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Recover()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::TSS_Recover::group
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::TSS_Recover::description
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_list
      Src: /src/botan/src/cli/tss.cpp:97,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:100,1
    - Dst: help_text
      Src: /src/botan/src/cli/tss.cpp:100,1
    - Dst: Botan_CLI::TSS_Recover::set_return_code
      Src: /src/botan/src/cli/tss.cpp:101,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tss.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: auto::data
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: auto::size
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/cli/tss.cpp:112,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: Botan_CLI::TSS_Recover::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - slurp_file
    - auto::data
    - auto::size
    - std::vector::push_back
    - Botan::cast_uint8_ptr_to_char
    - help_text
    - Botan_CLI::TSS_Recover::set_return_code
    - Botan::RTSS_Share::reconstruct
    - Botan::RTSS_Share
    - get_arg_list
    - output
    - Botan::secure_vector::size
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::TSS_Split::TSS_Split
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Split()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::TSS_Split::group
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::TSS_Split::description
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:35,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:36,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:37,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tss.cpp:38,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tss.cpp:39,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:42,1
    - Dst: Botan_CLI::TSS_Split::slurp_file_lvec
      Src: /src/botan/src/cli/tss.cpp:45,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:47,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:48,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tss.cpp:51,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:53,1
    - Dst: std::vector::resize
      Src: /src/botan/src/cli/tss.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:55,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/cli/tss.cpp:58,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:58,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:59,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:60,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/tss.cpp:61,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:61,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:64,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:66,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tss.cpp:67,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/tss.cpp:68,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tss.cpp:70,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:73,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: Botan_CLI::TSS_Split::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - data
    - Botan::RTSS_Share::split
    - Botan::secure_vector::data
    - get_arg_sz
    - Botan::hex_decode
    - Botan::secure_vector::size
    - std::string::c_str
    - static_cast<uint8_t>
    - std::vector::size
    - std::vector::empty
    - CLI_Error
    - std::vector::resize
    - get_arg
    - CLI_Usage_Error
    - Botan_CLI::TSS_Split::slurp_file_lvec
    - static_cast<uint16_t>
    - std::vector::data
    - rng
    - std::ofstream::write
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/cli/tss.cpp:80,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/cli/tss.cpp:80,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/tss.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: Botan_CLI::TSS_Split::slurp_file_lvec
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 4
    functionsReached:
    - Botan::secure_vector::insert
    - Botan::secure_vector::end
    - Botan_CLI::Command::read_file
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> slurp_file_lvec(const std::string& input_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan_CLI::TSS_Recover::TSS_Recover
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TSS_Recover()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::TSS_Recover::group
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan_CLI::TSS_Recover::description
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_list
      Src: /src/botan/src/cli/tss.cpp:97,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:100,1
    - Dst: help_text
      Src: /src/botan/src/cli/tss.cpp:100,1
    - Dst: Botan_CLI::TSS_Recover::set_return_code
      Src: /src/botan/src/cli/tss.cpp:101,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tss.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: auto::data
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: auto::size
      Src: /src/botan/src/cli/tss.cpp:109,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/cli/tss.cpp:112,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:114,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: Botan_CLI::TSS_Recover::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - Botan::secure_vector::data
    - slurp_file
    - auto::data
    - auto::size
    - std::vector::push_back
    - Botan::cast_uint8_ptr_to_char
    - help_text
    - Botan_CLI::TSS_Recover::set_return_code
    - Botan::RTSS_Share::reconstruct
    - Botan::RTSS_Share
    - get_arg_list
    - output
    - Botan::secure_vector::size
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/cli/timer.cpp:21,1
    - Dst: std::string
      Src: /src/botan/src/cli/timer.cpp:22,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timer.cpp:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: Botan_CLI::format_timer_name
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::ostringstream::str
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer_name(std::string_view name, std::string_view
      provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/cli/timer.cpp:21,1
    - Dst: std::string
      Src: /src/botan/src/cli/timer.cpp:22,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timer.cpp:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: Botan_CLI::format_timer_name
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::ostringstream::str
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer_name(std::string_view name, std::string_view
      provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_timer_name
      Src: /src/botan/src/cli/timer.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 7
    argNames:
    - name
    - provider
    - doing
    - event_mult
    - buf_size
    - clock_cycle_ratio
    - clock_speed
    argTypes:
    - std::string_view
    - std::string_view
    - std::string_view
    - uint64_t
    - size_t
    - double
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_CLI::Timer::Timer
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - format_timer_name
    linkageType: ''
    returnType: void
    signature: "void Timer::Timer(std::string_view name,\n             std::string_view
      provider,\n             std::string_view doing,\n             uint64_t event_mult,\n
      \            size_t buf_size,\n             double clock_cycle_ratio,\n             uint64_t
      clock_speed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::stop
      Src: /src/botan/src/cli/timer.cpp:47,1
    - Dst: Botan_CLI::Timer::timestamp_ns
      Src: /src/botan/src/cli/timer.cpp:48,1
    - Dst: Botan_CLI::Timer::cycle_counter
      Src: /src/botan/src/cli/timer.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: Botan_CLI::Timer::start
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::stop
    - Botan_CLI::Timer::timestamp_ns
    - Botan_CLI::Timer::cycle_counter
    linkageType: ''
    returnType: void
    signature: void Timer::start()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/timer.cpp:53,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timer.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan_CLI::Timer::timestamp_ns
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 1
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Timer::timestamp_ns()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/timer.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: Botan_CLI::Timer::cycle_counter
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 1
    functionsReached:
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Timer::cycle_counter()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::timestamp_ns
      Src: /src/botan/src/cli/timer.cpp:67,1
    - Dst: Botan_CLI::Timer::cycle_counter
      Src: /src/botan/src/cli/timer.cpp:74,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timer.cpp:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: Botan_CLI::Timer::stop
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - Botan_CLI::Timer::timestamp_ns
    - Botan_CLI::Timer::cycle_counter
    linkageType: ''
    returnType: void
    signature: void Timer::stop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Timer::doing
      Src: /src/botan/src/cli/timer.cpp:86,1
    - Dst: doing
      Src: /src/botan/src/cli/timer.cpp:86,1
    - Dst: Timer::doing
      Src: /src/botan/src/cli/timer.cpp:87,1
    - Dst: doing
      Src: /src/botan/src/cli/timer.cpp:87,1
    - Dst: Timer::get_name
      Src: /src/botan/src/cli/timer.cpp:90,1
    - Dst: get_name
      Src: /src/botan/src/cli/timer.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: Timer::operator<(const Timer& other) const
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - doing
    - Timer::get_name
    - Timer::doing
    - get_name
    linkageType: ''
    returnType: bool
    signature: bool Timer::operator<(const Timer& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/cli/timer.cpp:21,1
    - Dst: std::string
      Src: /src/botan/src/cli/timer.cpp:22,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timer.cpp:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: Botan_CLI::format_timer_name
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::ostringstream::str
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer_name(std::string_view name, std::string_view
      provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/cli/timer.cpp:21,1
    - Dst: std::string
      Src: /src/botan/src/cli/timer.cpp:22,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timer.cpp:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: Botan_CLI::format_timer_name
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::ostringstream::str
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer_name(std::string_view name, std::string_view
      provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_timer_name
      Src: /src/botan/src/cli/timer.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 7
    argNames:
    - name
    - provider
    - doing
    - event_mult
    - buf_size
    - clock_cycle_ratio
    - clock_speed
    argTypes:
    - std::string_view
    - std::string_view
    - std::string_view
    - uint64_t
    - size_t
    - double
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_CLI::Timer::Timer
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - format_timer_name
    linkageType: ''
    returnType: void
    signature: "void Timer::Timer(std::string_view name,\n             std::string_view
      provider,\n             std::string_view doing,\n             uint64_t event_mult,\n
      \            size_t buf_size,\n             double clock_cycle_ratio,\n             uint64_t
      clock_speed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::stop
      Src: /src/botan/src/cli/timer.cpp:47,1
    - Dst: Botan_CLI::Timer::timestamp_ns
      Src: /src/botan/src/cli/timer.cpp:48,1
    - Dst: Botan_CLI::Timer::cycle_counter
      Src: /src/botan/src/cli/timer.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: Botan_CLI::Timer::start
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::stop
    - Botan_CLI::Timer::timestamp_ns
    - Botan_CLI::Timer::cycle_counter
    linkageType: ''
    returnType: void
    signature: void Timer::start()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/timer.cpp:53,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timer.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan_CLI::Timer::timestamp_ns
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 3
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Timer::timestamp_ns()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/timer.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: Botan_CLI::Timer::cycle_counter
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 3
    functionsReached:
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Timer::cycle_counter()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::timestamp_ns
      Src: /src/botan/src/cli/timer.cpp:67,1
    - Dst: Botan_CLI::Timer::cycle_counter
      Src: /src/botan/src/cli/timer.cpp:74,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timer.cpp:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: Botan_CLI::Timer::stop
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 2
    functionsReached:
    - static_cast<size_t>
    - Botan_CLI::Timer::timestamp_ns
    - Botan_CLI::Timer::cycle_counter
    linkageType: ''
    returnType: void
    signature: void Timer::stop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Timer::doing
      Src: /src/botan/src/cli/timer.cpp:86,1
    - Dst: doing
      Src: /src/botan/src/cli/timer.cpp:86,1
    - Dst: Timer::doing
      Src: /src/botan/src/cli/timer.cpp:87,1
    - Dst: doing
      Src: /src/botan/src/cli/timer.cpp:87,1
    - Dst: Timer::get_name
      Src: /src/botan/src/cli/timer.cpp:90,1
    - Dst: get_name
      Src: /src/botan/src/cli/timer.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: Timer::operator<(const Timer& other) const
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - doing
    - Timer::get_name
    - Timer::doing
    - get_name
    linkageType: ''
    returnType: bool
    signature: bool Timer::operator<(const Timer& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:34,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:48,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:54,1
    - Dst: empty
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:58,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:59,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:60,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:60,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:61,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:63,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/cli/perf_pk_misc.cpp:64,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:65,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:65,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 68
    functionName: Botan_CLI::PerfTest_PKKeyParsing::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_info
    - auto::run_until_elapsed
    - Botan::fmt
    - auto::public_key
    - runtime
    - make_timer
    - record_result
    - Botan::X509::load_key
    - Botan::create_private_key
    - rng
    - auto::subject_public_key
    - empty
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:80,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:81,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:85,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:91,1
    - Dst: auto::check_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:91,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_RSAKeyGen::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - runtime
    - std::to_string
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - auto::under
    - Botan::create_private_key
    - rng
    - auto::run
    - auto::check_key
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:108,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:109,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_misc.cpp:111,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_pk_misc.cpp:112,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:113,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:115,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:118,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:122,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:123,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:126,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:127,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:127,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: Botan::ECDSA_PrivateKey::recovery_param
      Src: /src/botan/src/cli/perf_pk_misc.cpp:132,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:134,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: Botan::ECDSA_PublicKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 143
    functionName: Botan_CLI::PerfTest_ECDSAKeyRec::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - rng
    - record_result
    - Botan::PK_Signer::signature
    - Botan::ECDSA_PrivateKey::public_key_bits
    - Botan::PK_Verifier::check_signature
    - std::vector::size
    - runtime
    - Botan::EC_Group::from_name
    - auto::under
    - randomize
    - ecc_groups
    - Botan::PK_Signer::update
    - Botan::ECDSA_PublicKey::public_key_bits
    - make_timer
    - std::vector::data
    - auto::get_order_bits
    - Botan::ECDSA_PrivateKey::recovery_param
    - Botan::PK_Verifier::update
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:34,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:48,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:54,1
    - Dst: empty
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:58,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:59,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:60,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:60,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:61,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:63,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/cli/perf_pk_misc.cpp:64,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:65,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:65,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 68
    functionName: Botan_CLI::PerfTest_PKKeyParsing::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_info
    - auto::run_until_elapsed
    - Botan::fmt
    - auto::public_key
    - runtime
    - make_timer
    - record_result
    - Botan::X509::load_key
    - Botan::create_private_key
    - rng
    - auto::subject_public_key
    - empty
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:80,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:81,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:85,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:91,1
    - Dst: auto::check_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:91,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_RSAKeyGen::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - runtime
    - std::to_string
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - auto::under
    - Botan::create_private_key
    - rng
    - auto::run
    - auto::check_key
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:108,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:109,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_misc.cpp:111,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_pk_misc.cpp:112,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:113,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:115,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:118,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:122,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:123,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:126,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:127,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:127,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: Botan::ECDSA_PrivateKey::recovery_param
      Src: /src/botan/src/cli/perf_pk_misc.cpp:132,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:134,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: Botan::ECDSA_PublicKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 143
    functionName: Botan_CLI::PerfTest_ECDSAKeyRec::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - rng
    - record_result
    - Botan::PK_Signer::signature
    - Botan::ECDSA_PrivateKey::public_key_bits
    - Botan::PK_Verifier::check_signature
    - std::vector::size
    - runtime
    - Botan::EC_Group::from_name
    - auto::under
    - randomize
    - ecc_groups
    - Botan::PK_Signer::update
    - Botan::ECDSA_PublicKey::public_key_bits
    - make_timer
    - std::vector::data
    - auto::get_order_bits
    - Botan::ECDSA_PrivateKey::recovery_param
    - Botan::PK_Verifier::update
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:34,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:48,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:54,1
    - Dst: empty
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:58,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:59,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:60,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:60,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:61,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:63,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/cli/perf_pk_misc.cpp:64,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:65,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:65,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 68
    functionName: Botan_CLI::PerfTest_PKKeyParsing::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_info
    - auto::run_until_elapsed
    - Botan::fmt
    - auto::public_key
    - runtime
    - make_timer
    - record_result
    - Botan::X509::load_key
    - Botan::create_private_key
    - rng
    - auto::subject_public_key
    - empty
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:80,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:81,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:85,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:91,1
    - Dst: auto::check_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:91,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_RSAKeyGen::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - runtime
    - std::to_string
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - auto::under
    - Botan::create_private_key
    - rng
    - auto::run
    - auto::check_key
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:108,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:109,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_misc.cpp:111,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_pk_misc.cpp:112,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:113,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:115,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:118,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:122,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:123,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:126,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:127,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:127,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: Botan::ECDSA_PrivateKey::recovery_param
      Src: /src/botan/src/cli/perf_pk_misc.cpp:132,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:134,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: Botan::ECDSA_PublicKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 143
    functionName: Botan_CLI::PerfTest_ECDSAKeyRec::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - rng
    - record_result
    - Botan::PK_Signer::signature
    - Botan::ECDSA_PrivateKey::public_key_bits
    - Botan::PK_Verifier::check_signature
    - std::vector::size
    - runtime
    - Botan::EC_Group::from_name
    - auto::under
    - randomize
    - ecc_groups
    - Botan::PK_Signer::update
    - Botan::ECDSA_PublicKey::public_key_bits
    - make_timer
    - std::vector::data
    - auto::get_order_bits
    - Botan::ECDSA_PrivateKey::recovery_param
    - Botan::PK_Verifier::update
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:34,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:48,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:54,1
    - Dst: empty
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:58,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:59,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:60,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:60,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:61,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:63,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/cli/perf_pk_misc.cpp:64,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:65,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:65,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 68
    functionName: Botan_CLI::PerfTest_PKKeyParsing::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_info
    - auto::run_until_elapsed
    - Botan::fmt
    - auto::public_key
    - runtime
    - make_timer
    - record_result
    - Botan::X509::load_key
    - Botan::create_private_key
    - rng
    - auto::subject_public_key
    - empty
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:80,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:81,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:85,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_pk_misc.cpp:89,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:91,1
    - Dst: auto::check_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:91,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_RSAKeyGen::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - runtime
    - std::to_string
    - BOTAN_ASSERT
    - make_timer
    - record_result
    - auto::under
    - Botan::create_private_key
    - rng
    - auto::run
    - auto::check_key
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_misc.cpp:108,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:109,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_misc.cpp:111,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_pk_misc.cpp:112,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:113,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:115,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:118,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:122,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:123,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:126,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:127,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:127,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:129,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: Botan::ECDSA_PrivateKey::recovery_param
      Src: /src/botan/src/cli/perf_pk_misc.cpp:132,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:134,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: Botan::ECDSA_PublicKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:136,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 143
    functionName: Botan_CLI::PerfTest_ECDSAKeyRec::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - rng
    - record_result
    - Botan::PK_Signer::signature
    - Botan::ECDSA_PrivateKey::public_key_bits
    - Botan::PK_Verifier::check_signature
    - std::vector::size
    - runtime
    - Botan::EC_Group::from_name
    - auto::under
    - randomize
    - ecc_groups
    - Botan::PK_Signer::update
    - Botan::ECDSA_PublicKey::public_key_bits
    - make_timer
    - std::vector::data
    - auto::get_order_bits
    - Botan::ECDSA_PrivateKey::recovery_param
    - Botan::PK_Verifier::update
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cmd_spec'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Botan_CLI::Command::Command
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Command::Command(const std::string& cmd_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Command::~Command()
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Command::~Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: substr
      Src: /src/botan/src/cli/cli.cpp:44,1
    - Dst: find
      Src: /src/botan/src/cli/cli.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_CLI::Command::cmd_name
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string Command::cmd_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan_CLI::Command::help_text
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Command::help_text() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Argument_Parser::split_on
      Src: /src/botan/src/cli/cli.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - delim
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_CLI::Command::split_on
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 10
    functionsReached:
    - Botan_CLI::Argument_Parser::split_on
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Command::split_on(const std::string& str,
      char delim)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Argument_Parser>
      Src: /src/botan/src/cli/cli.cpp:61,1
    - Dst: parse_args
      Src: /src/botan/src/cli/cli.cpp:63,1
    - Dst: has_arg
      Src: /src/botan/src/cli/cli.cpp:65,1
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:66,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/cli.cpp:68,1
    - Dst: std::make_unique<std::ofstream>
      Src: /src/botan/src/cli/cli.cpp:69,1
    - Dst: good
      Src: /src/botan/src/cli/cli.cpp:70,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/cli.cpp:71,1
    - Dst: has_arg
      Src: /src/botan/src/cli/cli.cpp:76,1
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:77,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/cli.cpp:79,1
    - Dst: std::make_unique<std::ofstream>
      Src: /src/botan/src/cli/cli.cpp:80,1
    - Dst: good
      Src: /src/botan/src/cli/cli.cpp:81,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/cli.cpp:82,1
    - Dst: Botan_CLI::Command::flag_set
      Src: /src/botan/src/cli/cli.cpp:87,1
    - Dst: output
      Src: /src/botan/src/cli/cli.cpp:88,1
    - Dst: Botan_CLI::Command::help_text
      Src: /src/botan/src/cli/cli.cpp:88,1
    - Dst: Botan_CLI::Command::go
      Src: /src/botan/src/cli/cli.cpp:92,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:95,1
    - Dst: what
      Src: /src/botan/src/cli/cli.cpp:95,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:96,1
    - Dst: Botan_CLI::Command::help_text
      Src: /src/botan/src/cli/cli.cpp:96,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:99,1
    - Dst: what
      Src: /src/botan/src/cli/cli.cpp:99,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 105
    functionName: Botan_CLI::Command::run
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::make_unique<Argument_Parser>
    - std::make_unique<std::ofstream>
    - what
    - Botan_CLI::Command::flag_set
    - error_output
    - Botan_CLI::Command::help_text
    - parse_args
    - output
    - Botan_CLI::Command::go
    - good
    - Botan_CLI::Command::get_arg
    - CLI_IO_Error
    - has_arg
    linkageType: ''
    returnType: int
    signature: int Command::run(const std::vector<std::string>& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::flag_set
      Src: /src/botan/src/cli/cli.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan_CLI::Command::flag_set
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::Command::flag_set
    linkageType: ''
    returnType: bool
    signature: bool Command::flag_set(const std::string& flag_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan_CLI::Command::get_arg
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::Command::get_arg
    linkageType: ''
    returnType: std::string
    signature: std::string Command::get_arg(const std::string& opt_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg_or
      Src: /src/botan/src/cli/cli.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt_name'
    - ' otherwise'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan_CLI::Command::get_arg_or
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::Command::get_arg_or
    linkageType: ''
    returnType: std::string
    signature: std::string Command::get_arg_or(const std::string& opt_name, const
      std::string& otherwise) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:123,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/cli.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: Botan_CLI::Command::get_arg_maybe
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan_CLI::Command::get_arg
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Command::get_arg_maybe(const std::string&
      opt_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg_sz
      Src: /src/botan/src/cli/cli.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Botan_CLI::Command::get_arg_sz
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::Command::get_arg_sz
    linkageType: ''
    returnType: size_t
    signature: size_t Command::get_arg_sz(const std::string& opt_name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg_sz
      Src: /src/botan/src/cli/cli.cpp:136,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/cli.cpp:137,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cli.cpp:138,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/cli.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: Botan_CLI::Command::get_arg_u16
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::get_arg_sz
    - CLI_Usage_Error
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t Command::get_arg_u16(const std::string& opt_name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg_sz
      Src: /src/botan/src/cli/cli.cpp:144,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/cli.cpp:145,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cli.cpp:146,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/cli.cpp:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: Botan_CLI::Command::get_arg_u32
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::get_arg_sz
    - static_cast<uint32_t>
    - CLI_Usage_Error
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Command::get_arg_u32(const std::string& opt_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg_list
      Src: /src/botan/src/cli/cli.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: Botan_CLI::Command::get_arg_list
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::Command::get_arg_list
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Command::get_arg_list(const std::string& what)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: '& Command::output()'
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Command::output()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/botan/src/cli/cli.cpp:167,1
    - Dst: _fileno
      Src: /src/botan/src/cli/cli.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: '& Command::output_binary()'
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - _setmode
    - _fileno
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Command::output_binary()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: '& Command::error_output()'
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Command::error_output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::insert
      Src: /src/botan/src/cli/cli.cpp:182,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/cli.cpp:182,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/cli.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' input_file'
    - buf_size
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: Botan_CLI::Command::slurp_file
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - Botan_CLI::Command::read_file
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Command::slurp_file(const std::string& input_file,
      size_t buf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/botan/src/cli/cli.cpp:190,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/cli.cpp:190,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/cli.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' input_file'
    - buf_size
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: Botan_CLI::Command::slurp_file_as_str
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    - Botan_CLI::Command::read_file
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string Command::slurp_file_as_str(const std::string& input_file,
      size_t buf_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/botan/src/cli/cli.cpp:200,1
    - Dst: _fileno
      Src: /src/botan/src/cli/cli.cpp:200,1
    - Dst: Botan_CLI::Command::do_read_file
      Src: /src/botan/src/cli/cli.cpp:202,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/cli.cpp:206,1
    - Dst: Botan_CLI::Command::do_read_file
      Src: /src/botan/src/cli/cli.cpp:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' input_file'
    - ' consumer_fn'
    - buf_size
    argTypes:
    - std::string
    - std::function<void(uint8_t[], size_t)>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 210
    functionName: Botan_CLI::Command::read_file
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 14
    functionsReached:
    - _setmode
    - Botan_CLI::Command::do_read_file
    - _fileno
    - CLI_IO_Error
    linkageType: ''
    returnType: void
    signature: "void Command::read_file(const std::string& input_file,\n                        const
      std::function<void(uint8_t[], size_t)>& consumer_fn,\n                        size_t
      buf_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: good
      Src: /src/botan/src/cli/cli.cpp:219,1
    - Dst: read
      Src: /src/botan/src/cli/cli.cpp:220,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/cli/cli.cpp:220,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli.cpp:220,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cli.cpp:220,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/cli.cpp:221,1
    - Dst: gcount
      Src: /src/botan/src/cli/cli.cpp:221,1
    - Dst: consumer_fn
      Src: /src/botan/src/cli/cli.cpp:222,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' in'
    - ' consumer_fn'
    - buf_size
    argTypes:
    - std::istream
    - std::function<void(uint8_t[], size_t)>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: Botan_CLI::Command::do_read_file
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 1
    functionsReached:
    - gcount
    - std::vector::data
    - reinterpret_cast<char*>
    - static_cast<size_t>
    - read
    - consumer_fn
    - good
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void Command::do_read_file(std::istream& in,\n                           const
      std::function<void(uint8_t[], size_t)>& consumer_fn,\n                           size_t
      buf_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/cli.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: '& Command::rng()'
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - rng_as_shared
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & Command::rng()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/cli.cpp:232,1
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:232,1
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: Botan_CLI::Command::rng_as_shared
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - cli_make_rng
    - Botan_CLI::Command::get_arg
    linkageType: ''
    returnType: std::shared_ptr<Botan::RandomNumberGenerator>
    signature: std::shared_ptr<Botan::RandomNumberGenerator> Command::rng_as_shared()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:239,1
    - Dst: Botan_CLI::Command::get_passphrase
      Src: /src/botan/src/cli/cli.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' prompt'
    - ' opt_name'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: Botan_CLI::Command::get_passphrase_arg
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::get_arg
    - Botan_CLI::Command::get_passphrase
    linkageType: ''
    returnType: std::string
    signature: std::string Command::get_passphrase_arg(const std::string& prompt,
      const std::string& opt_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::suppress_echo_on_terminal
      Src: /src/botan/src/cli/cli.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: Botan_CLI::echo_suppression_supported
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - Botan::OS::suppress_echo_on_terminal
    linkageType: ''
    returnType: bool
    signature: bool echo_suppression_supported()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::suppress_echo_on_terminal
      Src: /src/botan/src/cli/cli.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: Botan_CLI::echo_suppression_supported
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - Botan::OS::suppress_echo_on_terminal
    linkageType: ''
    returnType: bool
    signature: bool echo_suppression_supported()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: echo_suppression_supported
      Src: /src/botan/src/cli/cli.cpp:260,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:261,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:264,1
    - Dst: Botan::OS::suppress_echo_on_terminal
      Src: /src/botan/src/cli/cli.cpp:268,1
    - Dst: std::getline
      Src: /src/botan/src/cli/cli.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' prompt'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 274
    functionName: Botan_CLI::Command::get_passphrase
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 1
    functionsReached:
    - echo_suppression_supported
    - Botan::OS::suppress_echo_on_terminal
    - std::getline
    - error_output
    linkageType: ''
    returnType: std::string
    signature: std::string Command::get_passphrase(const std::string& prompt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/cli.cpp:280,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/cli.cpp:286,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/cli.cpp:292,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/cli/cli.cpp:295,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cli.cpp:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ' format'
    - bits
    - len
    argTypes:
    - std::string
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 301
    functionName: Botan_CLI::Command::format_blob
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_encode
    - Botan::base64_encode
    - CLI_Usage_Error
    - Botan::base58_encode
    - Botan::base58_check_encode
    linkageType: ''
    returnType: std::string
    signature: std::string Command::format_blob(const std::string& format, const uint8_t
      bits[], size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Command::global_registry
      Src: /src/botan/src/cli/cli.cpp:306,1
    - Dst: contains
      Src: /src/botan/src/cli/cli.cpp:308,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cli.cpp:309,1
    - Dst: insert
      Src: /src/botan/src/cli/cli.cpp:312,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/cli.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - ' maker_fn'
    argTypes:
    - std::string
    - Command::cmd_maker_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: Command::Registration::Registration(const std::string& name, const
      Command::cmd_maker_fn& maker_fn)
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - contains
    - std::make_pair
    - insert
    - Command::global_registry
    linkageType: ''
    returnType: void
    signature: void Command::Registration::Registration(const std::string& name, const
      Command::cmd_maker_fn& maker_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: '& Command::global_registry()'
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, Command::cmd_maker_fn>
    signature: std::map<std::string, Command::cmd_maker_fn> & Command::global_registry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Command::global_registry
      Src: /src/botan/src/cli/cli.cpp:324,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/cli.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: Botan_CLI::Command::registered_cmds
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 8
    functionsReached:
    - Command::global_registry
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Command::registered_cmds()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Command::global_registry
      Src: /src/botan/src/cli/cli.cpp:332,1
    - Dst: find
      Src: /src/botan/src/cli/cli.cpp:334,1
    - Dst: end
      Src: /src/botan/src/cli/cli.cpp:335,1
    - Dst: auto::second
      Src: /src/botan/src/cli/cli.cpp:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: Botan_CLI::Command::get_cmd
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 4
    functionsReached:
    - auto::second
    - Command::global_registry
    - end
    - find
    linkageType: ''
    returnType: std::unique_ptr<Command>
    signature: std::unique_ptr<Command> Command::get_cmd(const std::string& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cmd_spec'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Botan_CLI::Command::Command
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Command::Command(const std::string& cmd_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Command::~Command()
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Command::~Command()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: substr
      Src: /src/botan/src/cli/cli.cpp:44,1
    - Dst: find
      Src: /src/botan/src/cli/cli.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_CLI::Command::cmd_name
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string Command::cmd_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan_CLI::Command::help_text
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Command::help_text() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Argument_Parser::split_on
      Src: /src/botan/src/cli/cli.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' str'
    - delim
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_CLI::Command::split_on
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 10
    functionsReached:
    - Botan_CLI::Argument_Parser::split_on
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Command::split_on(const std::string& str,
      char delim)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Argument_Parser>
      Src: /src/botan/src/cli/cli.cpp:61,1
    - Dst: parse_args
      Src: /src/botan/src/cli/cli.cpp:63,1
    - Dst: has_arg
      Src: /src/botan/src/cli/cli.cpp:65,1
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:66,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/cli.cpp:68,1
    - Dst: std::make_unique<std::ofstream>
      Src: /src/botan/src/cli/cli.cpp:69,1
    - Dst: good
      Src: /src/botan/src/cli/cli.cpp:70,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/cli.cpp:71,1
    - Dst: has_arg
      Src: /src/botan/src/cli/cli.cpp:76,1
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:77,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/cli.cpp:79,1
    - Dst: std::make_unique<std::ofstream>
      Src: /src/botan/src/cli/cli.cpp:80,1
    - Dst: good
      Src: /src/botan/src/cli/cli.cpp:81,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/cli.cpp:82,1
    - Dst: Botan_CLI::Command::flag_set
      Src: /src/botan/src/cli/cli.cpp:87,1
    - Dst: output
      Src: /src/botan/src/cli/cli.cpp:88,1
    - Dst: Botan_CLI::Command::help_text
      Src: /src/botan/src/cli/cli.cpp:88,1
    - Dst: Botan_CLI::Command::go
      Src: /src/botan/src/cli/cli.cpp:92,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:95,1
    - Dst: what
      Src: /src/botan/src/cli/cli.cpp:95,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:96,1
    - Dst: Botan_CLI::Command::help_text
      Src: /src/botan/src/cli/cli.cpp:96,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:99,1
    - Dst: what
      Src: /src/botan/src/cli/cli.cpp:99,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 105
    functionName: Botan_CLI::Command::run
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::make_unique<Argument_Parser>
    - std::make_unique<std::ofstream>
    - what
    - Botan_CLI::Command::flag_set
    - error_output
    - Botan_CLI::Command::help_text
    - parse_args
    - output
    - Botan_CLI::Command::go
    - good
    - Botan_CLI::Command::get_arg
    - CLI_IO_Error
    - has_arg
    linkageType: ''
    returnType: int
    signature: int Command::run(const std::vector<std::string>& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::flag_set
      Src: /src/botan/src/cli/cli.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan_CLI::Command::flag_set
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 6
    functionsReached:
    - Botan_CLI::Command::flag_set
    linkageType: ''
    returnType: bool
    signature: bool Command::flag_set(const std::string& flag_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan_CLI::Command::get_arg
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 7
    functionsReached:
    - Botan_CLI::Command::get_arg
    linkageType: ''
    returnType: std::string
    signature: std::string Command::get_arg(const std::string& opt_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg_or
      Src: /src/botan/src/cli/cli.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' opt_name'
    - ' otherwise'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan_CLI::Command::get_arg_or
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::Command::get_arg_or
    linkageType: ''
    returnType: std::string
    signature: std::string Command::get_arg_or(const std::string& opt_name, const
      std::string& otherwise) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:123,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/cli.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: Botan_CLI::Command::get_arg_maybe
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan_CLI::Command::get_arg
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Command::get_arg_maybe(const std::string&
      opt_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg_sz
      Src: /src/botan/src/cli/cli.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Botan_CLI::Command::get_arg_sz
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 4
    functionsReached:
    - Botan_CLI::Command::get_arg_sz
    linkageType: ''
    returnType: size_t
    signature: size_t Command::get_arg_sz(const std::string& opt_name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg_sz
      Src: /src/botan/src/cli/cli.cpp:136,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/cli.cpp:137,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cli.cpp:138,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/cli.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: Botan_CLI::Command::get_arg_u16
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::get_arg_sz
    - CLI_Usage_Error
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t Command::get_arg_u16(const std::string& opt_name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg_sz
      Src: /src/botan/src/cli/cli.cpp:144,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/cli.cpp:145,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cli.cpp:146,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/cli.cpp:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: Botan_CLI::Command::get_arg_u32
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::get_arg_sz
    - static_cast<uint32_t>
    - CLI_Usage_Error
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Command::get_arg_u32(const std::string& opt_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg_list
      Src: /src/botan/src/cli/cli.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: Botan_CLI::Command::get_arg_list
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::Command::get_arg_list
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Command::get_arg_list(const std::string& what)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: '& Command::output()'
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Command::output()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/botan/src/cli/cli.cpp:167,1
    - Dst: _fileno
      Src: /src/botan/src/cli/cli.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: '& Command::output_binary()'
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - _setmode
    - _fileno
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Command::output_binary()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: '& Command::error_output()'
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Command::error_output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::insert
      Src: /src/botan/src/cli/cli.cpp:182,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/cli.cpp:182,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/cli.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' input_file'
    - buf_size
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: Botan_CLI::Command::slurp_file
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - Botan_CLI::Command::read_file
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Command::slurp_file(const std::string& input_file,
      size_t buf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/botan/src/cli/cli.cpp:190,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/cli.cpp:190,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/cli.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' input_file'
    - buf_size
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: Botan_CLI::Command::slurp_file_as_str
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    - Botan_CLI::Command::read_file
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string Command::slurp_file_as_str(const std::string& input_file,
      size_t buf_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/botan/src/cli/cli.cpp:200,1
    - Dst: _fileno
      Src: /src/botan/src/cli/cli.cpp:200,1
    - Dst: Botan_CLI::Command::do_read_file
      Src: /src/botan/src/cli/cli.cpp:202,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/cli.cpp:206,1
    - Dst: Botan_CLI::Command::do_read_file
      Src: /src/botan/src/cli/cli.cpp:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' input_file'
    - ' consumer_fn'
    - buf_size
    argTypes:
    - std::string
    - std::function<void(uint8_t[], size_t)>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 210
    functionName: Botan_CLI::Command::read_file
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 16
    functionsReached:
    - _setmode
    - Botan_CLI::Command::do_read_file
    - _fileno
    - CLI_IO_Error
    linkageType: ''
    returnType: void
    signature: "void Command::read_file(const std::string& input_file,\n                        const
      std::function<void(uint8_t[], size_t)>& consumer_fn,\n                        size_t
      buf_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: good
      Src: /src/botan/src/cli/cli.cpp:219,1
    - Dst: read
      Src: /src/botan/src/cli/cli.cpp:220,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/cli/cli.cpp:220,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli.cpp:220,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cli.cpp:220,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/cli.cpp:221,1
    - Dst: gcount
      Src: /src/botan/src/cli/cli.cpp:221,1
    - Dst: consumer_fn
      Src: /src/botan/src/cli/cli.cpp:222,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' in'
    - ' consumer_fn'
    - buf_size
    argTypes:
    - std::istream
    - std::function<void(uint8_t[], size_t)>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: Botan_CLI::Command::do_read_file
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 2
    functionsReached:
    - gcount
    - std::vector::data
    - reinterpret_cast<char*>
    - static_cast<size_t>
    - read
    - consumer_fn
    - good
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void Command::do_read_file(std::istream& in,\n                           const
      std::function<void(uint8_t[], size_t)>& consumer_fn,\n                           size_t
      buf_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/cli.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: '& Command::rng()'
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - rng_as_shared
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: Botan::RandomNumberGenerator & Command::rng()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/cli.cpp:232,1
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:232,1
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: Botan_CLI::Command::rng_as_shared
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - cli_make_rng
    - Botan_CLI::Command::get_arg
    linkageType: ''
    returnType: std::shared_ptr<Botan::RandomNumberGenerator>
    signature: std::shared_ptr<Botan::RandomNumberGenerator> Command::rng_as_shared()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::get_arg
      Src: /src/botan/src/cli/cli.cpp:239,1
    - Dst: Botan_CLI::Command::get_passphrase
      Src: /src/botan/src/cli/cli.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' prompt'
    - ' opt_name'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: Botan_CLI::Command::get_passphrase_arg
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::get_arg
    - Botan_CLI::Command::get_passphrase
    linkageType: ''
    returnType: std::string
    signature: std::string Command::get_passphrase_arg(const std::string& prompt,
      const std::string& opt_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::suppress_echo_on_terminal
      Src: /src/botan/src/cli/cli.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: Botan_CLI::echo_suppression_supported
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - Botan::OS::suppress_echo_on_terminal
    linkageType: ''
    returnType: bool
    signature: bool echo_suppression_supported()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::suppress_echo_on_terminal
      Src: /src/botan/src/cli/cli.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: Botan_CLI::echo_suppression_supported
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - Botan::OS::suppress_echo_on_terminal
    linkageType: ''
    returnType: bool
    signature: bool echo_suppression_supported()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: echo_suppression_supported
      Src: /src/botan/src/cli/cli.cpp:260,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:261,1
    - Dst: error_output
      Src: /src/botan/src/cli/cli.cpp:264,1
    - Dst: Botan::OS::suppress_echo_on_terminal
      Src: /src/botan/src/cli/cli.cpp:268,1
    - Dst: std::getline
      Src: /src/botan/src/cli/cli.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' prompt'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 274
    functionName: Botan_CLI::Command::get_passphrase
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 2
    functionsReached:
    - echo_suppression_supported
    - Botan::OS::suppress_echo_on_terminal
    - std::getline
    - error_output
    linkageType: ''
    returnType: std::string
    signature: std::string Command::get_passphrase(const std::string& prompt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/cli.cpp:280,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/cli.cpp:286,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/cli.cpp:292,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/cli/cli.cpp:295,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cli.cpp:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ' format'
    - bits
    - len
    argTypes:
    - std::string
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 301
    functionName: Botan_CLI::Command::format_blob
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_encode
    - Botan::base64_encode
    - CLI_Usage_Error
    - Botan::base58_encode
    - Botan::base58_check_encode
    linkageType: ''
    returnType: std::string
    signature: std::string Command::format_blob(const std::string& format, const uint8_t
      bits[], size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Command::global_registry
      Src: /src/botan/src/cli/cli.cpp:306,1
    - Dst: contains
      Src: /src/botan/src/cli/cli.cpp:308,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cli.cpp:309,1
    - Dst: insert
      Src: /src/botan/src/cli/cli.cpp:312,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/cli.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - ' maker_fn'
    argTypes:
    - std::string
    - Command::cmd_maker_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: Command::Registration::Registration(const std::string& name, const
      Command::cmd_maker_fn& maker_fn)
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - contains
    - std::make_pair
    - insert
    - Command::global_registry
    linkageType: ''
    returnType: void
    signature: void Command::Registration::Registration(const std::string& name, const
      Command::cmd_maker_fn& maker_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: '& Command::global_registry()'
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, Command::cmd_maker_fn>
    signature: std::map<std::string, Command::cmd_maker_fn> & Command::global_registry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Command::global_registry
      Src: /src/botan/src/cli/cli.cpp:324,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/cli.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: Botan_CLI::Command::registered_cmds
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 8
    functionsReached:
    - Command::global_registry
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Command::registered_cmds()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Command::global_registry
      Src: /src/botan/src/cli/cli.cpp:332,1
    - Dst: find
      Src: /src/botan/src/cli/cli.cpp:334,1
    - Dst: end
      Src: /src/botan/src/cli/cli.cpp:335,1
    - Dst: auto::second
      Src: /src/botan/src/cli/cli.cpp:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: Botan_CLI::Command::get_cmd
    functionSourceFile: /src/botan/src/cli/cli.cpp
    functionUses: 4
    functionsReached:
    - auto::second
    - Command::global_registry
    - end
    - find
    linkageType: ''
    returnType: std::unique_ptr<Command>
    signature: std::unique_ptr<Command> Command::get_cmd(const std::string& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PerfTest_PK_KEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PK_KEM::algo
      Src: /src/botan/src/cli/perf_pk_kem.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::keygen_params
      Src: /src/botan/src/cli/perf_pk_kem.cpp:32,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::format_name
      Src: /src/botan/src/cli/perf_pk_kem.cpp:35,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
      Src: /src/botan/src/cli/perf_pk_kem.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: Botan_CLI::PerfTest_PK_KEM::go
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PK_KEM::keygen_params
    - Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    - Botan_CLI::PerfTest_PK_KEM::format_name
    - Botan_CLI::PerfTest_PK_KEM::algo
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_kem.cpp:45,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_kem.cpp:46,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:50,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:56,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:64,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:65,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:67,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:67,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_kem.cpp:68,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:70,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:71,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_pk_kem.cpp:72,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:74,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:76,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:76,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_pk_kem.cpp:77,1
    - Dst: auto::shared_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:79,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_kem.cpp:80,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:83,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:84,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 87
    functionName: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 1
    functionsReached:
    - random_vec
    - runtime
    - auto::public_key
    - auto::encapsulated_shared_key
    - auto::shared_key
    - make_timer
    - record_result
    - auto::start
    - Botan::PK_KEM_Decryptor::decrypt
    - auto::under
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - auto::stop
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: void
    signature: "void bench_pk_kem(const PerfConfig& config,\n                               const
      std::string& nm,\n                               const std::string& algo,\n
      \                              const std::string& params,\n                               const
      std::string& provider = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_Kyber::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: Botan_CLI::PerfTest_Kyber::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan_CLI::PerfTest_ML_KEM::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: Botan_CLI::PerfTest_ML_KEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan_CLI::PerfTest_FrodoKEM::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: Botan_CLI::PerfTest_FrodoKEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_CLI::PerfTest_Classic_McEliece::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 186
    functionName: Botan_CLI::PerfTest_Classic_McEliece::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PerfTest_PK_KEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PK_KEM::algo
      Src: /src/botan/src/cli/perf_pk_kem.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::keygen_params
      Src: /src/botan/src/cli/perf_pk_kem.cpp:32,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::format_name
      Src: /src/botan/src/cli/perf_pk_kem.cpp:35,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
      Src: /src/botan/src/cli/perf_pk_kem.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: Botan_CLI::PerfTest_PK_KEM::go
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PK_KEM::keygen_params
    - Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    - Botan_CLI::PerfTest_PK_KEM::format_name
    - Botan_CLI::PerfTest_PK_KEM::algo
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_kem.cpp:45,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_kem.cpp:46,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:50,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:56,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:64,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:65,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:67,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:67,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_kem.cpp:68,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:70,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:71,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_pk_kem.cpp:72,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:74,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:76,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:76,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_pk_kem.cpp:77,1
    - Dst: auto::shared_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:79,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_kem.cpp:80,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:83,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:84,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 87
    functionName: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 2
    functionsReached:
    - random_vec
    - runtime
    - auto::public_key
    - auto::encapsulated_shared_key
    - auto::shared_key
    - make_timer
    - record_result
    - auto::start
    - Botan::PK_KEM_Decryptor::decrypt
    - auto::under
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - auto::stop
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: void
    signature: "void bench_pk_kem(const PerfConfig& config,\n                               const
      std::string& nm,\n                               const std::string& algo,\n
      \                              const std::string& params,\n                               const
      std::string& provider = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_Kyber::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: Botan_CLI::PerfTest_Kyber::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan_CLI::PerfTest_ML_KEM::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: Botan_CLI::PerfTest_ML_KEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan_CLI::PerfTest_FrodoKEM::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: Botan_CLI::PerfTest_FrodoKEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_CLI::PerfTest_Classic_McEliece::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 186
    functionName: Botan_CLI::PerfTest_Classic_McEliece::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PerfTest_PK_KEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PK_KEM::algo
      Src: /src/botan/src/cli/perf_pk_kem.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::keygen_params
      Src: /src/botan/src/cli/perf_pk_kem.cpp:32,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::format_name
      Src: /src/botan/src/cli/perf_pk_kem.cpp:35,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
      Src: /src/botan/src/cli/perf_pk_kem.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: Botan_CLI::PerfTest_PK_KEM::go
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PK_KEM::keygen_params
    - Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    - Botan_CLI::PerfTest_PK_KEM::format_name
    - Botan_CLI::PerfTest_PK_KEM::algo
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_kem.cpp:45,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_kem.cpp:46,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:50,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:56,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:64,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:65,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:67,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:67,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_kem.cpp:68,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:70,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:71,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_pk_kem.cpp:72,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:74,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:76,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:76,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_pk_kem.cpp:77,1
    - Dst: auto::shared_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:79,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_kem.cpp:80,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:83,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:84,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 87
    functionName: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 3
    functionsReached:
    - random_vec
    - runtime
    - auto::public_key
    - auto::encapsulated_shared_key
    - auto::shared_key
    - make_timer
    - record_result
    - auto::start
    - Botan::PK_KEM_Decryptor::decrypt
    - auto::under
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - auto::stop
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: void
    signature: "void bench_pk_kem(const PerfConfig& config,\n                               const
      std::string& nm,\n                               const std::string& algo,\n
      \                              const std::string& params,\n                               const
      std::string& provider = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_Kyber::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: Botan_CLI::PerfTest_Kyber::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan_CLI::PerfTest_ML_KEM::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: Botan_CLI::PerfTest_ML_KEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan_CLI::PerfTest_FrodoKEM::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: Botan_CLI::PerfTest_FrodoKEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_CLI::PerfTest_Classic_McEliece::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 186
    functionName: Botan_CLI::PerfTest_Classic_McEliece::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PerfTest_PK_KEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PK_KEM::algo
      Src: /src/botan/src/cli/perf_pk_kem.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::keygen_params
      Src: /src/botan/src/cli/perf_pk_kem.cpp:32,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::format_name
      Src: /src/botan/src/cli/perf_pk_kem.cpp:35,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
      Src: /src/botan/src/cli/perf_pk_kem.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: Botan_CLI::PerfTest_PK_KEM::go
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PK_KEM::keygen_params
    - Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    - Botan_CLI::PerfTest_PK_KEM::format_name
    - Botan_CLI::PerfTest_PK_KEM::algo
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_kem.cpp:45,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_kem.cpp:46,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:50,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:56,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:64,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:65,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:67,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:67,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_kem.cpp:68,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:70,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:71,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_pk_kem.cpp:72,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:74,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:76,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:76,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_pk_kem.cpp:77,1
    - Dst: auto::shared_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:79,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_kem.cpp:80,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:83,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:84,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 87
    functionName: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 4
    functionsReached:
    - random_vec
    - runtime
    - auto::public_key
    - auto::encapsulated_shared_key
    - auto::shared_key
    - make_timer
    - record_result
    - auto::start
    - Botan::PK_KEM_Decryptor::decrypt
    - auto::under
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - auto::stop
    - Botan::PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: void
    signature: "void bench_pk_kem(const PerfConfig& config,\n                               const
      std::string& nm,\n                               const std::string& algo,\n
      \                              const std::string& params,\n                               const
      std::string& provider = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PerfTest_Kyber::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: Botan_CLI::PerfTest_Kyber::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan_CLI::PerfTest_ML_KEM::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: Botan_CLI::PerfTest_ML_KEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan_CLI::PerfTest_FrodoKEM::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: Botan_CLI::PerfTest_FrodoKEM::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_CLI::PerfTest_Classic_McEliece::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 186
    functionName: Botan_CLI::PerfTest_Classic_McEliece::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/cli/main.cpp:13,1
    - Dst: min
      Src: /src/botan/src/cli/main.cpp:34,1
    - Dst: std::unique_ptr::run
      Src: /src/botan/src/cli/main.cpp:35,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 36
    functionName: main
    functionSourceFile: /src/botan/src/cli/main.cpp
    functionUses: 53
    functionsReached:
    - min
    - std::unique_ptr::run
    - Botan::runtime_version_check
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/argparse.h:56,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/argparse.h:63,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/argparse.h:64,1
    - Dst: std::string::clear
      Src: /src/botan/src/cli/argparse.h:66,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/argparse.h:72,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/argparse.h:73,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/argparse.h:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ' str'
    - delim
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 78
    functionName: Botan_CLI::Argument_Parser::split_on
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 2
    functionsReached:
    - std::string::empty
    - CLI_Error
    - std::vector::push_back
    - std::string::clear
    - empty
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Argument_Parser::split_on(const std::string&
      str, char delim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan_CLI::Argument_Parser::flag_set
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 1
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool Argument_Parser::flag_set(const std::string& flag_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: Botan_CLI::Argument_Parser::has_arg
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 0
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool Argument_Parser::has_arg(const std::string& opt_name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/cli/argparse.h:89,1
    - Dst: end
      Src: /src/botan/src/cli/argparse.h:90,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/argparse.h:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Argument_Parser::get_arg
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 1
    functionsReached:
    - CLI_Error
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string Argument_Parser::get_arg(const std::string& opt_name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/cli/argparse.h:98,1
    - Dst: end
      Src: /src/botan/src/cli/argparse.h:99,1
    - Dst: auto::second::empty
      Src: /src/botan/src/cli/argparse.h:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' opt_name'
    - ' otherwise'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: Botan_CLI::Argument_Parser::get_arg_or
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 1
    functionsReached:
    - auto::second::empty
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string Argument_Parser::get_arg_or(const std::string& opt_name,
      const std::string& otherwise) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Argument_Parser::get_arg
      Src: /src/botan/src/cli/argparse.h:106,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/argparse.h:109,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/argparse.h:109,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: Botan_CLI::Argument_Parser::get_arg_sz
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - CLI_Usage_Error
    - Botan_CLI::Argument_Parser::get_arg
    - std::stoul
    linkageType: ''
    returnType: size_t
    signature: size_t Argument_Parser::get_arg_sz(const std::string& opt_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Argument_Parser::get_arg_or
      Src: /src/botan/src/cli/argparse.h:116,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/argparse.h:119,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/argparse.h:119,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' opt_name'
    - ' otherwise'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: Botan_CLI::Argument_Parser::get_arg_hex_sz_or
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 1
    functionsReached:
    - CLI_Usage_Error
    - static_cast<size_t>
    - Botan_CLI::Argument_Parser::get_arg_or
    - std::stoul
    linkageType: ''
    returnType: size_t
    signature: size_t Argument_Parser::get_arg_hex_sz_or(const std::string& opt_name,
      const std::string& otherwise) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Argument_Parser::split_on
      Src: /src/botan/src/cli/argparse.h:130,1
    - Dst: Botan_CLI::Argument_Parser::get_arg
      Src: /src/botan/src/cli/argparse.h:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: Botan_CLI::Argument_Parser::get_arg_list
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 1
    functionsReached:
    - Botan_CLI::Argument_Parser::get_arg
    - Botan_CLI::Argument_Parser::split_on
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Argument_Parser::get_arg_list(const std::string&
      what) const
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/botan/src/cli/argparse.h:136,1
    - Dst: find
      Src: /src/botan/src/cli/argparse.h:138,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:141,1
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:143,1
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:144,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:145,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:147,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:150,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:152,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:153,1
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:155,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:156,1
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:159,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:160,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:163,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/argparse.h:163,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/argparse.h:167,1
    - Dst: Botan_CLI::Argument_Parser::flag_set
      Src: /src/botan/src/cli/argparse.h:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/argparse.h:175,1
    - Dst: size
      Src: /src/botan/src/cli/argparse.h:175,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:177,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/argparse.h:177,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/argparse.h:177,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/argparse.h:178,1
    - Dst: size
      Src: /src/botan/src/cli/argparse.h:178,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:184,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/argparse.h:184,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:188,1
    - Dst: empty
      Src: /src/botan/src/cli/argparse.h:196,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/argparse.h:197,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:198,1
    - Dst: assign
      Src: /src/botan/src/cli/argparse.h:201,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/argparse.h:201,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/argparse.h:201,1
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:206,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:207,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 210
    functionName: Botan_CLI::Argument_Parser::parse_args
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 1
    functionsReached:
    - substr
    - starts_with
    - std::to_string
    - contains
    - find
    - std::vector::push_back
    - std::vector::end
    - std::make_pair
    - insert
    - size
    - std::vector::begin
    - CLI_Usage_Error
    - Botan_CLI::Argument_Parser::flag_set
    - assign
    - empty
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void Argument_Parser::parse_args(const std::vector<std::string>& params)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Argument_Parser::split_on
      Src: /src/botan/src/cli/argparse.h:221,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/argparse.h:223,1
    - Dst: CLI_Error_Invalid_Spec
      Src: /src/botan/src/cli/argparse.h:224,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/argparse.h:227,1
    - Dst: empty
      Src: /src/botan/src/cli/argparse.h:230,1
    - Dst: CLI_Error_Invalid_Spec
      Src: /src/botan/src/cli/argparse.h:232,1
    - Dst: size
      Src: /src/botan/src/cli/argparse.h:235,1
    - Dst: find
      Src: /src/botan/src/cli/argparse.h:238,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:241,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:241,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:243,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/argparse.h:243,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:243,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:243,1
    - Dst: empty
      Src: /src/botan/src/cli/argparse.h:247,1
    - Dst: size
      Src: /src/botan/src/cli/argparse.h:247,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:248,1
    - Dst: CLI_Error_Invalid_Spec
      Src: /src/botan/src/cli/argparse.h:250,1
    - Dst: empty
      Src: /src/botan/src/cli/argparse.h:254,1
    - Dst: CLI_Error_Invalid_Spec
      Src: /src/botan/src/cli/argparse.h:256,1
    - Dst: push_back
      Src: /src/botan/src/cli/argparse.h:259,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:264,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:267,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/argparse.h:267,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - ' spec'
    - ' extra_flags'
    - ' extra_opts'
    argTypes:
    - std::string
    - std::vector<std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 269
    functionName: Botan_CLI::Argument_Parser::Argument_Parser
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 0
    functionsReached:
    - substr
    - CLI_Error_Invalid_Spec
    - Botan_CLI::Argument_Parser::split_on
    - find
    - std::vector::size
    - std::make_pair
    - insert
    - size
    - push_back
    - empty
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: "void Argument_Parser::Argument_Parser(const std::string& spec,\n                                        const
      std::vector<std::string>& extra_flags,\n                                        const
      std::vector<std::string>& extra_opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' bad_spec'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: Botan_CLI::CLI_Error_Invalid_Spec::CLI_Error_Invalid_Spec
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_Error_Invalid_Spec(const std::string& bad_spec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/argparse.h:56,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/argparse.h:63,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/argparse.h:64,1
    - Dst: std::string::clear
      Src: /src/botan/src/cli/argparse.h:66,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/argparse.h:72,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/argparse.h:73,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/argparse.h:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ' str'
    - delim
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 78
    functionName: Botan_CLI::Argument_Parser::split_on
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 4
    functionsReached:
    - std::string::empty
    - CLI_Error
    - std::vector::push_back
    - std::string::clear
    - empty
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Argument_Parser::split_on(const std::string&
      str, char delim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan_CLI::Argument_Parser::flag_set
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 2
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool Argument_Parser::flag_set(const std::string& flag_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: Botan_CLI::Argument_Parser::has_arg
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 0
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool Argument_Parser::has_arg(const std::string& opt_name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/cli/argparse.h:89,1
    - Dst: end
      Src: /src/botan/src/cli/argparse.h:90,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/argparse.h:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Argument_Parser::get_arg
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 3
    functionsReached:
    - CLI_Error
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string Argument_Parser::get_arg(const std::string& opt_name) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/cli/argparse.h:98,1
    - Dst: end
      Src: /src/botan/src/cli/argparse.h:99,1
    - Dst: auto::second::empty
      Src: /src/botan/src/cli/argparse.h:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' opt_name'
    - ' otherwise'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: Botan_CLI::Argument_Parser::get_arg_or
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 2
    functionsReached:
    - auto::second::empty
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string Argument_Parser::get_arg_or(const std::string& opt_name,
      const std::string& otherwise) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Argument_Parser::get_arg
      Src: /src/botan/src/cli/argparse.h:106,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/argparse.h:109,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/argparse.h:109,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' opt_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: Botan_CLI::Argument_Parser::get_arg_sz
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - CLI_Usage_Error
    - Botan_CLI::Argument_Parser::get_arg
    - std::stoul
    linkageType: ''
    returnType: size_t
    signature: size_t Argument_Parser::get_arg_sz(const std::string& opt_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Argument_Parser::get_arg_or
      Src: /src/botan/src/cli/argparse.h:116,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/argparse.h:119,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/argparse.h:119,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' opt_name'
    - ' otherwise'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: Botan_CLI::Argument_Parser::get_arg_hex_sz_or
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 1
    functionsReached:
    - CLI_Usage_Error
    - static_cast<size_t>
    - Botan_CLI::Argument_Parser::get_arg_or
    - std::stoul
    linkageType: ''
    returnType: size_t
    signature: size_t Argument_Parser::get_arg_hex_sz_or(const std::string& opt_name,
      const std::string& otherwise) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Argument_Parser::split_on
      Src: /src/botan/src/cli/argparse.h:130,1
    - Dst: Botan_CLI::Argument_Parser::get_arg
      Src: /src/botan/src/cli/argparse.h:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: Botan_CLI::Argument_Parser::get_arg_list
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 1
    functionsReached:
    - Botan_CLI::Argument_Parser::get_arg
    - Botan_CLI::Argument_Parser::split_on
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Argument_Parser::get_arg_list(const std::string&
      what) const
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/botan/src/cli/argparse.h:136,1
    - Dst: find
      Src: /src/botan/src/cli/argparse.h:138,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:141,1
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:143,1
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:144,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:145,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:147,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:150,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:152,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:153,1
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:155,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:156,1
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:159,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:160,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:163,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/argparse.h:163,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/argparse.h:167,1
    - Dst: Botan_CLI::Argument_Parser::flag_set
      Src: /src/botan/src/cli/argparse.h:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/argparse.h:175,1
    - Dst: size
      Src: /src/botan/src/cli/argparse.h:175,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:177,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/argparse.h:177,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/argparse.h:177,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/argparse.h:178,1
    - Dst: size
      Src: /src/botan/src/cli/argparse.h:178,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:184,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/argparse.h:184,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:188,1
    - Dst: empty
      Src: /src/botan/src/cli/argparse.h:196,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/argparse.h:197,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/argparse.h:198,1
    - Dst: assign
      Src: /src/botan/src/cli/argparse.h:201,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/argparse.h:201,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/argparse.h:201,1
    - Dst: contains
      Src: /src/botan/src/cli/argparse.h:206,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:207,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 210
    functionName: Botan_CLI::Argument_Parser::parse_args
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 1
    functionsReached:
    - substr
    - starts_with
    - std::to_string
    - contains
    - find
    - std::vector::push_back
    - std::vector::end
    - std::make_pair
    - insert
    - size
    - std::vector::begin
    - CLI_Usage_Error
    - Botan_CLI::Argument_Parser::flag_set
    - assign
    - empty
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void Argument_Parser::parse_args(const std::vector<std::string>& params)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Argument_Parser::split_on
      Src: /src/botan/src/cli/argparse.h:221,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/argparse.h:223,1
    - Dst: CLI_Error_Invalid_Spec
      Src: /src/botan/src/cli/argparse.h:224,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/argparse.h:227,1
    - Dst: empty
      Src: /src/botan/src/cli/argparse.h:230,1
    - Dst: CLI_Error_Invalid_Spec
      Src: /src/botan/src/cli/argparse.h:232,1
    - Dst: size
      Src: /src/botan/src/cli/argparse.h:235,1
    - Dst: find
      Src: /src/botan/src/cli/argparse.h:238,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:241,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:241,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:243,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/argparse.h:243,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:243,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:243,1
    - Dst: empty
      Src: /src/botan/src/cli/argparse.h:247,1
    - Dst: size
      Src: /src/botan/src/cli/argparse.h:247,1
    - Dst: substr
      Src: /src/botan/src/cli/argparse.h:248,1
    - Dst: CLI_Error_Invalid_Spec
      Src: /src/botan/src/cli/argparse.h:250,1
    - Dst: empty
      Src: /src/botan/src/cli/argparse.h:254,1
    - Dst: CLI_Error_Invalid_Spec
      Src: /src/botan/src/cli/argparse.h:256,1
    - Dst: push_back
      Src: /src/botan/src/cli/argparse.h:259,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:264,1
    - Dst: insert
      Src: /src/botan/src/cli/argparse.h:267,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/argparse.h:267,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - ' spec'
    - ' extra_flags'
    - ' extra_opts'
    argTypes:
    - std::string
    - std::vector<std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 269
    functionName: Botan_CLI::Argument_Parser::Argument_Parser
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 0
    functionsReached:
    - substr
    - CLI_Error_Invalid_Spec
    - Botan_CLI::Argument_Parser::split_on
    - find
    - std::vector::size
    - std::make_pair
    - insert
    - size
    - push_back
    - empty
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: "void Argument_Parser::Argument_Parser(const std::string& spec,\n                                        const
      std::vector<std::string>& extra_flags,\n                                        const
      std::vector<std::string>& extra_opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' bad_spec'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: Botan_CLI::CLI_Error_Invalid_Spec::CLI_Error_Invalid_Spec
    functionSourceFile: /src/botan/src/cli/argparse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CLI_Error_Invalid_Spec(const std::string& bad_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::PerfTest_PKSig::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::PerfTest_PKSig::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKSig::algo
      Src: /src/botan/src/cli/perf_pk_sig.cpp:31,1
    - Dst: Botan_CLI::PerfTest_PKSig::hash
      Src: /src/botan/src/cli/perf_pk_sig.cpp:32,1
    - Dst: Botan_CLI::PerfTest_PKSig::keygen_params
      Src: /src/botan/src/cli/perf_pk_sig.cpp:34,1
    - Dst: Botan_CLI::PerfTest_PKSig::format_name
      Src: /src/botan/src/cli/perf_pk_sig.cpp:37,1
    - Dst: Botan_CLI::PerfTest_PKSig::bench_pk_sig
      Src: /src/botan/src/cli/perf_pk_sig.cpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: Botan_CLI::PerfTest_PKSig::go
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKSig::bench_pk_sig
    - Botan_CLI::PerfTest_PKSig::format_name
    - Botan_CLI::PerfTest_PKSig::algo
    - Botan_CLI::PerfTest_PKSig::hash
    - Botan_CLI::PerfTest_PKSig::keygen_params
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_sig.cpp:48,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_sig.cpp:49,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:51,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:53,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:56,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:57,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:57,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:60,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:62,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:71,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:72,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:76,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:76,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_sig.cpp:77,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:77,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_sig.cpp:82,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:84,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:90,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:91,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:97,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:97,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:100,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:106,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:109,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - ' config'
    - ' nm'
    - ' alg'
    - ' param'
    - ' padding'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 112
    functionName: Botan_CLI::PerfTest_PKSig::bench_pk_sig
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_Signer::sign_message
    - random_vec
    - runtime
    - auto::public_key
    - next_nonzero_byte
    - make_timer
    - record_result
    - std::vector::size
    - next_byte
    - auto::under
    - Botan::PK_Verifier::verify_message
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: "void bench_pk_sig(const PerfConfig& config,\n                               const
      std::string& nm,\n                               const std::string& alg,\n                               const
      std::string& param,\n                               const std::string& padding,\n
      \                              const std::string& provider = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_CLI::PerfTest_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan_CLI::PerfTest_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan_CLI::PerfTest_DSA::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_CLI::PerfTest_RSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_CLI::PerfTest_RSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan_CLI::PerfTest_RSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: Botan_CLI::PerfTest_ECDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_CLI::PerfTest_ECDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_CLI::PerfTest_ECKCDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Botan_CLI::PerfTest_ECKCDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan_CLI::PerfTest_ECGDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PerfTest_ECGDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_CLI::PerfTest_Gost3410::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: Botan_CLI::PerfTest_Gost3410::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: Botan_CLI::PerfTest_Gost3410::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan_CLI::PerfTest_SM2::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: Botan_CLI::PerfTest_SM2::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan_CLI::PerfTest_SM2::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_CLI::PerfTest_Ed25519::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: Botan_CLI::PerfTest_Ed25519::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan_CLI::PerfTest_Ed448::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: Botan_CLI::PerfTest_Ed448::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: Botan_CLI::PerfTest_XMSS::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: Botan_CLI::PerfTest_XMSS::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: Botan_CLI::PerfTest_XMSS::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: Botan_CLI::PerfTest_HSS_LMS::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: Botan_CLI::PerfTest_HSS_LMS::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 294
    functionName: Botan_CLI::PerfTest_HSS_LMS::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: Botan_CLI::PerfTest_SPHINCSp::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: Botan_CLI::PerfTest_SPHINCSp::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_sig.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: Botan_CLI::PerfTest_SPHINCSp::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - substr
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 326
    functionName: Botan_CLI::PerfTest_SPHINCSp::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 337
    functionName: Botan_CLI::PerfTest_SLH_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: Botan_CLI::PerfTest_SLH_DSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 354
    functionName: Botan_CLI::PerfTest_SLH_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    functionName: Botan_CLI::PerfTest_Dilithium::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: Botan_CLI::PerfTest_Dilithium::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 378
    functionName: Botan_CLI::PerfTest_Dilithium::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: Botan_CLI::PerfTest_ML_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: Botan_CLI::PerfTest_ML_DSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: Botan_CLI::PerfTest_ML_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::PerfTest_PKSig::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::PerfTest_PKSig::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKSig::algo
      Src: /src/botan/src/cli/perf_pk_sig.cpp:31,1
    - Dst: Botan_CLI::PerfTest_PKSig::hash
      Src: /src/botan/src/cli/perf_pk_sig.cpp:32,1
    - Dst: Botan_CLI::PerfTest_PKSig::keygen_params
      Src: /src/botan/src/cli/perf_pk_sig.cpp:34,1
    - Dst: Botan_CLI::PerfTest_PKSig::format_name
      Src: /src/botan/src/cli/perf_pk_sig.cpp:37,1
    - Dst: Botan_CLI::PerfTest_PKSig::bench_pk_sig
      Src: /src/botan/src/cli/perf_pk_sig.cpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: Botan_CLI::PerfTest_PKSig::go
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKSig::bench_pk_sig
    - Botan_CLI::PerfTest_PKSig::format_name
    - Botan_CLI::PerfTest_PKSig::algo
    - Botan_CLI::PerfTest_PKSig::hash
    - Botan_CLI::PerfTest_PKSig::keygen_params
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_sig.cpp:48,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_sig.cpp:49,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:51,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:53,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:56,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:57,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:57,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:60,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:62,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:71,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:72,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:76,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:76,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_sig.cpp:77,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:77,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_sig.cpp:82,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:84,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:90,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:91,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:97,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:97,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:100,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:106,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:109,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - ' config'
    - ' nm'
    - ' alg'
    - ' param'
    - ' padding'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 112
    functionName: Botan_CLI::PerfTest_PKSig::bench_pk_sig
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_Signer::sign_message
    - random_vec
    - runtime
    - auto::public_key
    - next_nonzero_byte
    - make_timer
    - record_result
    - std::vector::size
    - next_byte
    - auto::under
    - Botan::PK_Verifier::verify_message
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: "void bench_pk_sig(const PerfConfig& config,\n                               const
      std::string& nm,\n                               const std::string& alg,\n                               const
      std::string& param,\n                               const std::string& padding,\n
      \                              const std::string& provider = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_CLI::PerfTest_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan_CLI::PerfTest_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan_CLI::PerfTest_DSA::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_CLI::PerfTest_RSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_CLI::PerfTest_RSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan_CLI::PerfTest_RSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: Botan_CLI::PerfTest_ECDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_CLI::PerfTest_ECDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_CLI::PerfTest_ECKCDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Botan_CLI::PerfTest_ECKCDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan_CLI::PerfTest_ECGDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PerfTest_ECGDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_CLI::PerfTest_Gost3410::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: Botan_CLI::PerfTest_Gost3410::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: Botan_CLI::PerfTest_Gost3410::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan_CLI::PerfTest_SM2::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: Botan_CLI::PerfTest_SM2::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan_CLI::PerfTest_SM2::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_CLI::PerfTest_Ed25519::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: Botan_CLI::PerfTest_Ed25519::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan_CLI::PerfTest_Ed448::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: Botan_CLI::PerfTest_Ed448::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: Botan_CLI::PerfTest_XMSS::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: Botan_CLI::PerfTest_XMSS::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: Botan_CLI::PerfTest_XMSS::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: Botan_CLI::PerfTest_HSS_LMS::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: Botan_CLI::PerfTest_HSS_LMS::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 294
    functionName: Botan_CLI::PerfTest_HSS_LMS::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: Botan_CLI::PerfTest_SPHINCSp::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: Botan_CLI::PerfTest_SPHINCSp::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_sig.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: Botan_CLI::PerfTest_SPHINCSp::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - substr
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 326
    functionName: Botan_CLI::PerfTest_SPHINCSp::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 337
    functionName: Botan_CLI::PerfTest_SLH_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: Botan_CLI::PerfTest_SLH_DSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 354
    functionName: Botan_CLI::PerfTest_SLH_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    functionName: Botan_CLI::PerfTest_Dilithium::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: Botan_CLI::PerfTest_Dilithium::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 378
    functionName: Botan_CLI::PerfTest_Dilithium::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: Botan_CLI::PerfTest_ML_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: Botan_CLI::PerfTest_ML_DSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: Botan_CLI::PerfTest_ML_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::PerfTest_PKSig::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::PerfTest_PKSig::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKSig::algo
      Src: /src/botan/src/cli/perf_pk_sig.cpp:31,1
    - Dst: Botan_CLI::PerfTest_PKSig::hash
      Src: /src/botan/src/cli/perf_pk_sig.cpp:32,1
    - Dst: Botan_CLI::PerfTest_PKSig::keygen_params
      Src: /src/botan/src/cli/perf_pk_sig.cpp:34,1
    - Dst: Botan_CLI::PerfTest_PKSig::format_name
      Src: /src/botan/src/cli/perf_pk_sig.cpp:37,1
    - Dst: Botan_CLI::PerfTest_PKSig::bench_pk_sig
      Src: /src/botan/src/cli/perf_pk_sig.cpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: Botan_CLI::PerfTest_PKSig::go
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKSig::bench_pk_sig
    - Botan_CLI::PerfTest_PKSig::format_name
    - Botan_CLI::PerfTest_PKSig::algo
    - Botan_CLI::PerfTest_PKSig::hash
    - Botan_CLI::PerfTest_PKSig::keygen_params
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_sig.cpp:48,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_sig.cpp:49,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:51,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:53,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:56,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:57,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:57,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:60,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:62,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:71,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:72,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:76,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:76,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_sig.cpp:77,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:77,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_sig.cpp:82,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:84,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:90,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:91,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:97,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:97,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:100,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:106,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:109,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - ' config'
    - ' nm'
    - ' alg'
    - ' param'
    - ' padding'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 112
    functionName: Botan_CLI::PerfTest_PKSig::bench_pk_sig
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 3
    functionsReached:
    - Botan::PK_Signer::sign_message
    - random_vec
    - runtime
    - auto::public_key
    - next_nonzero_byte
    - make_timer
    - record_result
    - std::vector::size
    - next_byte
    - auto::under
    - Botan::PK_Verifier::verify_message
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: "void bench_pk_sig(const PerfConfig& config,\n                               const
      std::string& nm,\n                               const std::string& alg,\n                               const
      std::string& param,\n                               const std::string& padding,\n
      \                              const std::string& provider = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_CLI::PerfTest_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan_CLI::PerfTest_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan_CLI::PerfTest_DSA::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_CLI::PerfTest_RSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_CLI::PerfTest_RSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan_CLI::PerfTest_RSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: Botan_CLI::PerfTest_ECDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_CLI::PerfTest_ECDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_CLI::PerfTest_ECKCDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Botan_CLI::PerfTest_ECKCDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan_CLI::PerfTest_ECGDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PerfTest_ECGDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_CLI::PerfTest_Gost3410::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: Botan_CLI::PerfTest_Gost3410::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: Botan_CLI::PerfTest_Gost3410::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan_CLI::PerfTest_SM2::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: Botan_CLI::PerfTest_SM2::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan_CLI::PerfTest_SM2::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_CLI::PerfTest_Ed25519::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: Botan_CLI::PerfTest_Ed25519::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan_CLI::PerfTest_Ed448::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: Botan_CLI::PerfTest_Ed448::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: Botan_CLI::PerfTest_XMSS::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: Botan_CLI::PerfTest_XMSS::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: Botan_CLI::PerfTest_XMSS::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: Botan_CLI::PerfTest_HSS_LMS::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: Botan_CLI::PerfTest_HSS_LMS::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 294
    functionName: Botan_CLI::PerfTest_HSS_LMS::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: Botan_CLI::PerfTest_SPHINCSp::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: Botan_CLI::PerfTest_SPHINCSp::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_sig.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: Botan_CLI::PerfTest_SPHINCSp::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - substr
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 326
    functionName: Botan_CLI::PerfTest_SPHINCSp::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 337
    functionName: Botan_CLI::PerfTest_SLH_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: Botan_CLI::PerfTest_SLH_DSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 354
    functionName: Botan_CLI::PerfTest_SLH_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    functionName: Botan_CLI::PerfTest_Dilithium::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: Botan_CLI::PerfTest_Dilithium::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 378
    functionName: Botan_CLI::PerfTest_Dilithium::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: Botan_CLI::PerfTest_ML_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: Botan_CLI::PerfTest_ML_DSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: Botan_CLI::PerfTest_ML_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::PerfTest_PKSig::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::PerfTest_PKSig::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKSig::algo
      Src: /src/botan/src/cli/perf_pk_sig.cpp:31,1
    - Dst: Botan_CLI::PerfTest_PKSig::hash
      Src: /src/botan/src/cli/perf_pk_sig.cpp:32,1
    - Dst: Botan_CLI::PerfTest_PKSig::keygen_params
      Src: /src/botan/src/cli/perf_pk_sig.cpp:34,1
    - Dst: Botan_CLI::PerfTest_PKSig::format_name
      Src: /src/botan/src/cli/perf_pk_sig.cpp:37,1
    - Dst: Botan_CLI::PerfTest_PKSig::bench_pk_sig
      Src: /src/botan/src/cli/perf_pk_sig.cpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: Botan_CLI::PerfTest_PKSig::go
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKSig::bench_pk_sig
    - Botan_CLI::PerfTest_PKSig::format_name
    - Botan_CLI::PerfTest_PKSig::algo
    - Botan_CLI::PerfTest_PKSig::hash
    - Botan_CLI::PerfTest_PKSig::keygen_params
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_sig.cpp:48,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_sig.cpp:49,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:51,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:53,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:56,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:57,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:57,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:60,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:62,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:71,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:72,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:76,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:76,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_sig.cpp:77,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:77,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_sig.cpp:82,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:84,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:90,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:91,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:97,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:97,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:100,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:106,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:109,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - ' config'
    - ' nm'
    - ' alg'
    - ' param'
    - ' padding'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 112
    functionName: Botan_CLI::PerfTest_PKSig::bench_pk_sig
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 4
    functionsReached:
    - Botan::PK_Signer::sign_message
    - random_vec
    - runtime
    - auto::public_key
    - next_nonzero_byte
    - make_timer
    - record_result
    - std::vector::size
    - next_byte
    - auto::under
    - Botan::PK_Verifier::verify_message
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: "void bench_pk_sig(const PerfConfig& config,\n                               const
      std::string& nm,\n                               const std::string& alg,\n                               const
      std::string& param,\n                               const std::string& padding,\n
      \                              const std::string& provider = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan_CLI::PerfTest_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan_CLI::PerfTest_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_sig.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan_CLI::PerfTest_DSA::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_CLI::PerfTest_RSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_CLI::PerfTest_RSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan_CLI::PerfTest_RSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: Botan_CLI::PerfTest_ECDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan_CLI::PerfTest_ECDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan_CLI::PerfTest_ECKCDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Botan_CLI::PerfTest_ECKCDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan_CLI::PerfTest_ECGDSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_sig.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PerfTest_ECGDSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan_CLI::PerfTest_Gost3410::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: Botan_CLI::PerfTest_Gost3410::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: Botan_CLI::PerfTest_Gost3410::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan_CLI::PerfTest_SM2::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: Botan_CLI::PerfTest_SM2::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan_CLI::PerfTest_SM2::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan_CLI::PerfTest_Ed25519::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: Botan_CLI::PerfTest_Ed25519::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan_CLI::PerfTest_Ed448::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: Botan_CLI::PerfTest_Ed448::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: Botan_CLI::PerfTest_XMSS::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: Botan_CLI::PerfTest_XMSS::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: Botan_CLI::PerfTest_XMSS::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: Botan_CLI::PerfTest_HSS_LMS::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: Botan_CLI::PerfTest_HSS_LMS::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 294
    functionName: Botan_CLI::PerfTest_HSS_LMS::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: Botan_CLI::PerfTest_SPHINCSp::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: Botan_CLI::PerfTest_SPHINCSp::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_sig.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: Botan_CLI::PerfTest_SPHINCSp::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - substr
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 326
    functionName: Botan_CLI::PerfTest_SPHINCSp::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 337
    functionName: Botan_CLI::PerfTest_SLH_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: Botan_CLI::PerfTest_SLH_DSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 354
    functionName: Botan_CLI::PerfTest_SLH_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    functionName: Botan_CLI::PerfTest_Dilithium::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: Botan_CLI::PerfTest_Dilithium::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 378
    functionName: Botan_CLI::PerfTest_Dilithium::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: Botan_CLI::PerfTest_ML_DSA::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: Botan_CLI::PerfTest_ML_DSA::hash
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: Botan_CLI::PerfTest_ML_DSA::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_CLI::JSON_Output::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void add(const Timer& timer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/cli/speed.cpp:48,1
    - Dst: Botan::version_vc_revision
      Src: /src/botan/src/cli/speed.cpp:50,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:57,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:61,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:62,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:63,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:65,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:66,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:69,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:71,1
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:74,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:76,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 85
    functionName: Botan_CLI::JSON_Output::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - Botan::short_version_cstr
    - doing
    - cycles_consumed
    - static_cast<uint64_t>
    - nanoseconds
    - std::ostringstream::str
    - size
    - value
    - events
    - buf_size
    - get_name
    - Botan::version_vc_revision
    linkageType: ''
    returnType: std::string
    signature: std::string print() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_CLI::Summary::Summary
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Summary()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:96,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:97,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Summary::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - std::make_pair
    - buf_size
    - get_name
    - push_back
    linkageType: ''
    returnType: void
    signature: void add(const Timer& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:111,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:115,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:115,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: second::empty
      Src: /src/botan/src/cli/speed.cpp:125,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:129,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:129,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:133,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:134,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: bytes_per_second
      Src: /src/botan/src/cli/speed.cpp:137,1
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:147,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:148,1
    - Dst: std::sort
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:155,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:155,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:162,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:162,1
    - Dst: seconds_per_event
      Src: /src/botan/src/cli/speed.cpp:163,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:163,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 169
    functionName: Botan_CLI::Summary::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - events_per_second
    - std::sort
    - std::to_string
    - std::setprecision
    - begin
    - end
    - bytes_per_second
    - std::setw
    - std::ostringstream::str
    - events
    - buf_size
    - second::empty
    - get_name
    - seconds_per_event
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string print()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:180,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/speed.cpp:184,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/speed.cpp:184,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:186,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:190,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:194,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:198,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/speed.cpp:201,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::set::begin
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::set::end
      Src: /src/botan/src/cli/speed.cpp:204,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' cmdline_arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 205
    functionName: Botan_CLI::unique_buffer_sizes
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - std::vector<size_t>
    - std::set::insert
    - std::set::begin
    - std::set::end
    - static_cast<size_t>
    - size
    - CLI_Usage_Error
    - Botan_CLI::Command::split_on
    - std::stoul
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> unique_buffer_sizes(const std::string& cmdline_arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:212,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:214,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:216,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:227,1
    - Dst: microseconds
      Src: /src/botan/src/cli/speed.cpp:227,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:229,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:229,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:233,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:233,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:235,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:238,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:243,1
    - Dst: seconds
      Src: /src/botan/src/cli/speed.cpp:244,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:246,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:247,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:250,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:251,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:257,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:260,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:261,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:261,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:262,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:265,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:268,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - ' t'
    - time_unit
    argTypes:
    - Timer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 269
    functionName: Botan_CLI::format_timer
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - milliseconds
    - cycles_consumed
    - static_cast<uint64_t>
    - std::setprecision
    - nanoseconds
    - events
    - microseconds
    - std::ostringstream::str
    - events_per_second
    - buf_size
    - seconds
    - get_name
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer(const Timer& t, size_t time_unit)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:272,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:281,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:287,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/cli/speed.cpp:289,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/speed.cpp:290,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:298,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/cli/speed.cpp:300,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/speed.cpp:301,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 309
    functionName: Botan_CLI::interpret_ecc_groups
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>
    - std::vector::push_back
    - begin
    - empty
    - Botan::EC_Group::known_named_groups
    - Botan_CLI::Command::split_on
    - Botan::EC_Group::engine
    - end
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> interpret_ecc_groups(const std::string& arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: Botan_CLI::Speed::Speed
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Speed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 410
    functionName: Botan_CLI::Speed::default_benchmark_list
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> default_benchmark_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: Botan_CLI::Speed::group
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: Botan_CLI::Speed::description
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:417,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:418,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:419,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:420,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:422,1
    - Dst: std::strtod
      Src: /src/botan/src/cli/speed.cpp:424,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/speed.cpp:424,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:434,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:436,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:445,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/speed.cpp:451,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:452,1
    - Dst: std::make_unique<Summary>
      Src: /src/botan/src/cli/speed.cpp:459,1
    - Dst: std::make_unique<JSON_Output>
      Src: /src/botan/src/cli/speed.cpp:461,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:463,1
    - Dst: interpret_ecc_groups
      Src: /src/botan/src/cli/speed.cpp:466,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/speed.cpp:468,1
    - Dst: unique_buffer_sizes
      Src: /src/botan/src/cli/speed.cpp:470,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:470,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:473,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:473,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/cli/speed.cpp:474,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/cli/speed.cpp:475,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:477,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:482,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:484,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:484,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/speed.cpp:485,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:487,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:487,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/speed.cpp:491,1
    - Dst: Botan_CLI::Speed::default_benchmark_list
      Src: /src/botan/src/cli/speed.cpp:493,1
    - Dst: Botan_CLI::Speed::record_result
      Src: /src/botan/src/cli/speed.cpp:496,1
    - Dst: Botan_CLI::Speed::error_output
      Src: /src/botan/src/cli/speed.cpp:502,1
    - Dst: Botan_CLI::Speed::rng
      Src: /src/botan/src/cli/speed.cpp:503,1
    - Dst: Botan_CLI::PerfTest::get
      Src: /src/botan/src/cli/speed.cpp:506,1
    - Dst: auto::go
      Src: /src/botan/src/cli/speed.cpp:507,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:508,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:509,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:514,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:514,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:517,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:517,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:520,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:521,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:522,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:524,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 526
    functionName: Botan_CLI::Speed::go
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - verbose
    - print
    - Botan_CLI::PerfTest::get
    - std::make_unique<JSON_Output>
    - get_arg_sz
    - Botan_CLI::Speed::error_output
    - unique_buffer_sizes
    - Botan_CLI::Speed::record_result
    - Botan_CLI::Speed::rng
    - std::string::c_str
    - Botan::version_string
    - std::vector::empty
    - Botan::CPUID::bit_from_string
    - std::strtod
    - std::make_unique<Summary>
    - get_arg
    - CLI_Usage_Error
    - Botan_CLI::Speed::default_benchmark_list
    - static_cast<double>
    - auto::go
    - get_arg_list
    - Botan::CPUID::to_string
    - output
    - error_output
    - Botan::clear_cpuid_bit
    - Botan_CLI::Command::split_on
    - interpret_ecc_groups
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:536,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:537,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:539,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:541,1
    - Dst: format_timer
      Src: /src/botan/src/cli/speed.cpp:541,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 547
    functionName: Botan_CLI::Speed::record_result
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 1
    functionsReached:
    - cycles_consumed
    - add
    - format_timer
    - output
    - value
    linkageType: ''
    returnType: void
    signature: void record_result(const Timer& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_CLI::JSON_Output::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void add(const Timer& timer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/cli/speed.cpp:48,1
    - Dst: Botan::version_vc_revision
      Src: /src/botan/src/cli/speed.cpp:50,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:57,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:61,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:62,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:63,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:65,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:66,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:69,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:71,1
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:74,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:76,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 85
    functionName: Botan_CLI::JSON_Output::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - Botan::short_version_cstr
    - doing
    - cycles_consumed
    - static_cast<uint64_t>
    - nanoseconds
    - std::ostringstream::str
    - size
    - value
    - events
    - buf_size
    - get_name
    - Botan::version_vc_revision
    linkageType: ''
    returnType: std::string
    signature: std::string print() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_CLI::Summary::Summary
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Summary()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:96,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:97,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Summary::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - std::make_pair
    - buf_size
    - get_name
    - push_back
    linkageType: ''
    returnType: void
    signature: void add(const Timer& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:111,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:115,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:115,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: second::empty
      Src: /src/botan/src/cli/speed.cpp:125,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:129,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:129,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:133,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:134,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: bytes_per_second
      Src: /src/botan/src/cli/speed.cpp:137,1
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:147,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:148,1
    - Dst: std::sort
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:155,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:155,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:162,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:162,1
    - Dst: seconds_per_event
      Src: /src/botan/src/cli/speed.cpp:163,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:163,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 169
    functionName: Botan_CLI::Summary::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - events_per_second
    - std::sort
    - std::to_string
    - std::setprecision
    - begin
    - end
    - bytes_per_second
    - std::setw
    - std::ostringstream::str
    - events
    - buf_size
    - second::empty
    - get_name
    - seconds_per_event
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string print()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:180,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/speed.cpp:184,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/speed.cpp:184,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:186,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:190,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:194,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:198,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/speed.cpp:201,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::set::begin
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::set::end
      Src: /src/botan/src/cli/speed.cpp:204,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' cmdline_arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 205
    functionName: Botan_CLI::unique_buffer_sizes
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - std::vector<size_t>
    - std::set::insert
    - std::set::begin
    - std::set::end
    - static_cast<size_t>
    - size
    - CLI_Usage_Error
    - Botan_CLI::Command::split_on
    - std::stoul
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> unique_buffer_sizes(const std::string& cmdline_arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:212,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:214,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:216,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:227,1
    - Dst: microseconds
      Src: /src/botan/src/cli/speed.cpp:227,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:229,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:229,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:233,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:233,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:235,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:238,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:243,1
    - Dst: seconds
      Src: /src/botan/src/cli/speed.cpp:244,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:246,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:247,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:250,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:251,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:257,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:260,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:261,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:261,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:262,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:265,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:268,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - ' t'
    - time_unit
    argTypes:
    - Timer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 269
    functionName: Botan_CLI::format_timer
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - milliseconds
    - cycles_consumed
    - static_cast<uint64_t>
    - std::setprecision
    - nanoseconds
    - events
    - microseconds
    - std::ostringstream::str
    - events_per_second
    - buf_size
    - seconds
    - get_name
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer(const Timer& t, size_t time_unit)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:272,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:281,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:287,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/cli/speed.cpp:289,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/speed.cpp:290,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:298,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/cli/speed.cpp:300,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/speed.cpp:301,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 309
    functionName: Botan_CLI::interpret_ecc_groups
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>
    - std::vector::push_back
    - begin
    - empty
    - Botan::EC_Group::known_named_groups
    - Botan_CLI::Command::split_on
    - Botan::EC_Group::engine
    - end
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> interpret_ecc_groups(const std::string& arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: Botan_CLI::Speed::Speed
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Speed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 410
    functionName: Botan_CLI::Speed::default_benchmark_list
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> default_benchmark_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: Botan_CLI::Speed::group
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: Botan_CLI::Speed::description
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:417,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:418,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:419,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:420,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:422,1
    - Dst: std::strtod
      Src: /src/botan/src/cli/speed.cpp:424,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/speed.cpp:424,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:434,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:436,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:445,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/speed.cpp:451,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:452,1
    - Dst: std::make_unique<Summary>
      Src: /src/botan/src/cli/speed.cpp:459,1
    - Dst: std::make_unique<JSON_Output>
      Src: /src/botan/src/cli/speed.cpp:461,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:463,1
    - Dst: interpret_ecc_groups
      Src: /src/botan/src/cli/speed.cpp:466,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/speed.cpp:468,1
    - Dst: unique_buffer_sizes
      Src: /src/botan/src/cli/speed.cpp:470,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:470,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:473,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:473,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/cli/speed.cpp:474,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/cli/speed.cpp:475,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:477,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:482,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:484,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:484,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/speed.cpp:485,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:487,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:487,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/speed.cpp:491,1
    - Dst: Botan_CLI::Speed::default_benchmark_list
      Src: /src/botan/src/cli/speed.cpp:493,1
    - Dst: Botan_CLI::Speed::record_result
      Src: /src/botan/src/cli/speed.cpp:496,1
    - Dst: Botan_CLI::Speed::error_output
      Src: /src/botan/src/cli/speed.cpp:502,1
    - Dst: Botan_CLI::Speed::rng
      Src: /src/botan/src/cli/speed.cpp:503,1
    - Dst: Botan_CLI::PerfTest::get
      Src: /src/botan/src/cli/speed.cpp:506,1
    - Dst: auto::go
      Src: /src/botan/src/cli/speed.cpp:507,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:508,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:509,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:514,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:514,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:517,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:517,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:520,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:521,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:522,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:524,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 526
    functionName: Botan_CLI::Speed::go
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - verbose
    - print
    - Botan_CLI::PerfTest::get
    - std::make_unique<JSON_Output>
    - get_arg_sz
    - Botan_CLI::Speed::error_output
    - unique_buffer_sizes
    - Botan_CLI::Speed::record_result
    - Botan_CLI::Speed::rng
    - std::string::c_str
    - Botan::version_string
    - std::vector::empty
    - Botan::CPUID::bit_from_string
    - std::strtod
    - std::make_unique<Summary>
    - get_arg
    - CLI_Usage_Error
    - Botan_CLI::Speed::default_benchmark_list
    - static_cast<double>
    - auto::go
    - get_arg_list
    - Botan::CPUID::to_string
    - output
    - error_output
    - Botan::clear_cpuid_bit
    - Botan_CLI::Command::split_on
    - interpret_ecc_groups
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:536,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:537,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:539,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:541,1
    - Dst: format_timer
      Src: /src/botan/src/cli/speed.cpp:541,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 547
    functionName: Botan_CLI::Speed::record_result
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 2
    functionsReached:
    - cycles_consumed
    - add
    - format_timer
    - output
    - value
    linkageType: ''
    returnType: void
    signature: void record_result(const Timer& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_CLI::JSON_Output::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void add(const Timer& timer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/cli/speed.cpp:48,1
    - Dst: Botan::version_vc_revision
      Src: /src/botan/src/cli/speed.cpp:50,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:57,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:61,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:62,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:63,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:65,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:66,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:69,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:71,1
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:74,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:76,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 85
    functionName: Botan_CLI::JSON_Output::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - Botan::short_version_cstr
    - doing
    - cycles_consumed
    - static_cast<uint64_t>
    - nanoseconds
    - std::ostringstream::str
    - size
    - value
    - events
    - buf_size
    - get_name
    - Botan::version_vc_revision
    linkageType: ''
    returnType: std::string
    signature: std::string print() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_CLI::Summary::Summary
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Summary()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:96,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:97,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Summary::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - std::make_pair
    - buf_size
    - get_name
    - push_back
    linkageType: ''
    returnType: void
    signature: void add(const Timer& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:111,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:115,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:115,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: second::empty
      Src: /src/botan/src/cli/speed.cpp:125,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:129,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:129,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:133,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:134,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: bytes_per_second
      Src: /src/botan/src/cli/speed.cpp:137,1
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:147,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:148,1
    - Dst: std::sort
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:155,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:155,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:162,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:162,1
    - Dst: seconds_per_event
      Src: /src/botan/src/cli/speed.cpp:163,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:163,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 169
    functionName: Botan_CLI::Summary::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - events_per_second
    - std::sort
    - std::to_string
    - std::setprecision
    - begin
    - end
    - bytes_per_second
    - std::setw
    - std::ostringstream::str
    - events
    - buf_size
    - second::empty
    - get_name
    - seconds_per_event
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string print()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:180,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/speed.cpp:184,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/speed.cpp:184,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:186,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:190,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:194,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:198,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/speed.cpp:201,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::set::begin
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::set::end
      Src: /src/botan/src/cli/speed.cpp:204,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' cmdline_arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 205
    functionName: Botan_CLI::unique_buffer_sizes
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - std::vector<size_t>
    - std::set::insert
    - std::set::begin
    - std::set::end
    - static_cast<size_t>
    - size
    - CLI_Usage_Error
    - Botan_CLI::Command::split_on
    - std::stoul
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> unique_buffer_sizes(const std::string& cmdline_arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:212,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:214,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:216,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:227,1
    - Dst: microseconds
      Src: /src/botan/src/cli/speed.cpp:227,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:229,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:229,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:233,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:233,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:235,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:238,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:243,1
    - Dst: seconds
      Src: /src/botan/src/cli/speed.cpp:244,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:246,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:247,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:250,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:251,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:257,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:260,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:261,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:261,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:262,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:265,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:268,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - ' t'
    - time_unit
    argTypes:
    - Timer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 269
    functionName: Botan_CLI::format_timer
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - milliseconds
    - cycles_consumed
    - static_cast<uint64_t>
    - std::setprecision
    - nanoseconds
    - events
    - microseconds
    - std::ostringstream::str
    - events_per_second
    - buf_size
    - seconds
    - get_name
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer(const Timer& t, size_t time_unit)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:272,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:281,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:287,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/cli/speed.cpp:289,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/speed.cpp:290,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:298,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/cli/speed.cpp:300,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/speed.cpp:301,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 309
    functionName: Botan_CLI::interpret_ecc_groups
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>
    - std::vector::push_back
    - begin
    - empty
    - Botan::EC_Group::known_named_groups
    - Botan_CLI::Command::split_on
    - Botan::EC_Group::engine
    - end
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> interpret_ecc_groups(const std::string& arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: Botan_CLI::Speed::Speed
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Speed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 410
    functionName: Botan_CLI::Speed::default_benchmark_list
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> default_benchmark_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: Botan_CLI::Speed::group
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: Botan_CLI::Speed::description
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:417,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:418,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:419,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:420,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:422,1
    - Dst: std::strtod
      Src: /src/botan/src/cli/speed.cpp:424,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/speed.cpp:424,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:434,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:436,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:445,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/speed.cpp:451,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:452,1
    - Dst: std::make_unique<Summary>
      Src: /src/botan/src/cli/speed.cpp:459,1
    - Dst: std::make_unique<JSON_Output>
      Src: /src/botan/src/cli/speed.cpp:461,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:463,1
    - Dst: interpret_ecc_groups
      Src: /src/botan/src/cli/speed.cpp:466,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/speed.cpp:468,1
    - Dst: unique_buffer_sizes
      Src: /src/botan/src/cli/speed.cpp:470,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:470,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:473,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:473,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/cli/speed.cpp:474,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/cli/speed.cpp:475,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:477,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:482,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:484,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:484,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/speed.cpp:485,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:487,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:487,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/speed.cpp:491,1
    - Dst: Botan_CLI::Speed::default_benchmark_list
      Src: /src/botan/src/cli/speed.cpp:493,1
    - Dst: Botan_CLI::Speed::record_result
      Src: /src/botan/src/cli/speed.cpp:496,1
    - Dst: Botan_CLI::Speed::error_output
      Src: /src/botan/src/cli/speed.cpp:502,1
    - Dst: Botan_CLI::Speed::rng
      Src: /src/botan/src/cli/speed.cpp:503,1
    - Dst: Botan_CLI::PerfTest::get
      Src: /src/botan/src/cli/speed.cpp:506,1
    - Dst: auto::go
      Src: /src/botan/src/cli/speed.cpp:507,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:508,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:509,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:514,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:514,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:517,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:517,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:520,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:521,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:522,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:524,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 526
    functionName: Botan_CLI::Speed::go
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - verbose
    - print
    - Botan_CLI::PerfTest::get
    - std::make_unique<JSON_Output>
    - get_arg_sz
    - Botan_CLI::Speed::error_output
    - unique_buffer_sizes
    - Botan_CLI::Speed::record_result
    - Botan_CLI::Speed::rng
    - std::string::c_str
    - Botan::version_string
    - std::vector::empty
    - Botan::CPUID::bit_from_string
    - std::strtod
    - std::make_unique<Summary>
    - get_arg
    - CLI_Usage_Error
    - Botan_CLI::Speed::default_benchmark_list
    - static_cast<double>
    - auto::go
    - get_arg_list
    - Botan::CPUID::to_string
    - output
    - error_output
    - Botan::clear_cpuid_bit
    - Botan_CLI::Command::split_on
    - interpret_ecc_groups
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:536,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:537,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:539,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:541,1
    - Dst: format_timer
      Src: /src/botan/src/cli/speed.cpp:541,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 547
    functionName: Botan_CLI::Speed::record_result
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 3
    functionsReached:
    - cycles_consumed
    - add
    - format_timer
    - output
    - value
    linkageType: ''
    returnType: void
    signature: void record_result(const Timer& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan_CLI::JSON_Output::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void add(const Timer& timer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/cli/speed.cpp:48,1
    - Dst: Botan::version_vc_revision
      Src: /src/botan/src/cli/speed.cpp:50,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:57,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:61,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:62,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:63,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:65,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:66,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:69,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:70,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:71,1
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:74,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:76,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 85
    functionName: Botan_CLI::JSON_Output::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - Botan::short_version_cstr
    - doing
    - cycles_consumed
    - static_cast<uint64_t>
    - nanoseconds
    - std::ostringstream::str
    - size
    - value
    - events
    - buf_size
    - get_name
    - Botan::version_vc_revision
    linkageType: ''
    returnType: std::string
    signature: std::string print() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_CLI::Summary::Summary
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Summary()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:96,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:97,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:99,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: Botan_CLI::Summary::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - std::make_pair
    - buf_size
    - get_name
    - push_back
    linkageType: ''
    returnType: void
    signature: void add(const Timer& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:111,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:115,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:115,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:119,1
    - Dst: second::empty
      Src: /src/botan/src/cli/speed.cpp:125,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:129,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:129,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:133,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:134,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: bytes_per_second
      Src: /src/botan/src/cli/speed.cpp:137,1
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:147,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:148,1
    - Dst: std::sort
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:155,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:155,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:161,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:162,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:162,1
    - Dst: seconds_per_event
      Src: /src/botan/src/cli/speed.cpp:163,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:163,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 169
    functionName: Botan_CLI::Summary::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - events_per_second
    - std::sort
    - std::to_string
    - std::setprecision
    - begin
    - end
    - bytes_per_second
    - std::setw
    - std::ostringstream::str
    - events
    - buf_size
    - second::empty
    - get_name
    - seconds_per_event
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string print()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:180,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/speed.cpp:184,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/speed.cpp:184,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:186,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:190,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:194,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:198,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/speed.cpp:201,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::set::begin
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::set::end
      Src: /src/botan/src/cli/speed.cpp:204,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' cmdline_arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 205
    functionName: Botan_CLI::unique_buffer_sizes
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - std::vector<size_t>
    - std::set::insert
    - std::set::begin
    - std::set::end
    - static_cast<size_t>
    - size
    - CLI_Usage_Error
    - Botan_CLI::Command::split_on
    - std::stoul
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> unique_buffer_sizes(const std::string& cmdline_arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:212,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:214,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:216,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:222,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:227,1
    - Dst: microseconds
      Src: /src/botan/src/cli/speed.cpp:227,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:229,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:229,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:233,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:233,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:235,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:238,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:243,1
    - Dst: seconds
      Src: /src/botan/src/cli/speed.cpp:244,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:246,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:247,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:250,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:251,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:257,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:260,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:261,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:261,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:262,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:265,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:268,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - ' t'
    - time_unit
    argTypes:
    - Timer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 269
    functionName: Botan_CLI::format_timer
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - milliseconds
    - cycles_consumed
    - static_cast<uint64_t>
    - std::setprecision
    - nanoseconds
    - events
    - microseconds
    - std::ostringstream::str
    - events_per_second
    - buf_size
    - seconds
    - get_name
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer(const Timer& t, size_t time_unit)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:272,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:281,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:282,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:287,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/cli/speed.cpp:289,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/speed.cpp:290,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:298,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/cli/speed.cpp:300,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/speed.cpp:301,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - ' arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 309
    functionName: Botan_CLI::interpret_ecc_groups
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>
    - std::vector::push_back
    - begin
    - empty
    - Botan::EC_Group::known_named_groups
    - Botan_CLI::Command::split_on
    - Botan::EC_Group::engine
    - end
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> interpret_ecc_groups(const std::string& arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: Botan_CLI::Speed::Speed
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Speed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 410
    functionName: Botan_CLI::Speed::default_benchmark_list
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> default_benchmark_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: Botan_CLI::Speed::group
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: Botan_CLI::Speed::description
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:417,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:418,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:419,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:420,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:422,1
    - Dst: std::strtod
      Src: /src/botan/src/cli/speed.cpp:424,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/speed.cpp:424,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:434,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:436,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:445,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/speed.cpp:451,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:452,1
    - Dst: std::make_unique<Summary>
      Src: /src/botan/src/cli/speed.cpp:459,1
    - Dst: std::make_unique<JSON_Output>
      Src: /src/botan/src/cli/speed.cpp:461,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:463,1
    - Dst: interpret_ecc_groups
      Src: /src/botan/src/cli/speed.cpp:466,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/speed.cpp:468,1
    - Dst: unique_buffer_sizes
      Src: /src/botan/src/cli/speed.cpp:470,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:470,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:473,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:473,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/cli/speed.cpp:474,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/cli/speed.cpp:475,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:477,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:482,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:484,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:484,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/speed.cpp:485,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:487,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:487,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/speed.cpp:491,1
    - Dst: Botan_CLI::Speed::default_benchmark_list
      Src: /src/botan/src/cli/speed.cpp:493,1
    - Dst: Botan_CLI::Speed::record_result
      Src: /src/botan/src/cli/speed.cpp:496,1
    - Dst: Botan_CLI::Speed::error_output
      Src: /src/botan/src/cli/speed.cpp:502,1
    - Dst: Botan_CLI::Speed::rng
      Src: /src/botan/src/cli/speed.cpp:503,1
    - Dst: Botan_CLI::PerfTest::get
      Src: /src/botan/src/cli/speed.cpp:506,1
    - Dst: auto::go
      Src: /src/botan/src/cli/speed.cpp:507,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:508,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:509,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:514,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:514,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:517,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:517,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:520,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:521,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:522,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:524,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 526
    functionName: Botan_CLI::Speed::go
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - verbose
    - print
    - Botan_CLI::PerfTest::get
    - std::make_unique<JSON_Output>
    - get_arg_sz
    - Botan_CLI::Speed::error_output
    - unique_buffer_sizes
    - Botan_CLI::Speed::record_result
    - Botan_CLI::Speed::rng
    - std::string::c_str
    - Botan::version_string
    - std::vector::empty
    - Botan::CPUID::bit_from_string
    - std::strtod
    - std::make_unique<Summary>
    - get_arg
    - CLI_Usage_Error
    - Botan_CLI::Speed::default_benchmark_list
    - static_cast<double>
    - auto::go
    - get_arg_list
    - Botan::CPUID::to_string
    - output
    - error_output
    - Botan::clear_cpuid_bit
    - Botan_CLI::Command::split_on
    - interpret_ecc_groups
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:536,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:537,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:539,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:541,1
    - Dst: format_timer
      Src: /src/botan/src/cli/speed.cpp:541,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 547
    functionName: Botan_CLI::Speed::record_result
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 4
    functionsReached:
    - cycles_consumed
    - add
    - format_timer
    - output
    - value
    linkageType: ''
    returnType: void
    signature: void record_result(const Timer& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:36,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:39,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:39,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:40,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:40,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:42,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:45,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:46,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:48,1
    - Dst: Botan::BigInt::square
      Src: /src/botan/src/cli/perf_math.cpp:49,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:50,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/cli/perf_math.cpp:52,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:54,1
    - Dst: Botan::BigInt::mul
      Src: /src/botan/src/cli/perf_math.cpp:55,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:56,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:59,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: Botan_CLI::PerfTest_MpMul::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::square
    - runtime
    - std::to_string
    - make_timer
    - Botan::BigInt::mul
    - record_result
    - auto::start
    - auto::under
    - rng
    - Botan::BigInt::mask_bits
    - auto::stop
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:70,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:74,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:74,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:76,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:77,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:79,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:80,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:83,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:84,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:85,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:86,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:88,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:89,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:89,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:90,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:90,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:92,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:93,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:96,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/cli/perf_math.cpp:97,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:98,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:100,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:101,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:104,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 107
    functionName: Botan_CLI::PerfTest_MpDiv::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::start
    - Botan::BigInt::randomize
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - Botan::vartime_divide
    - rng
    - Botan::ct_divide
    - auto::stop
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:115,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:118,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:120,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:121,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:123,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:126,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:127,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:128,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:129,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:132,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:133,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:133,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:135,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:136,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:137,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:139,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/cli/perf_math.cpp:140,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:141,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:143,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:144,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:147,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 150
    functionName: Botan_CLI::PerfTest_MpDiv10::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::start
    - Botan::BigInt::randomize
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - Botan::vartime_divide
    - rng
    - auto::stop
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:162,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:165,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:167,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:168,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:169,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:171,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:172,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/cli/perf_math.cpp:172,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:173,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:173,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:176,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:177,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:179,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:181,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:182,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:183,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:188,1
    - Dst: auto::reduce
      Src: /src/botan/src/cli/perf_math.cpp:188,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:189,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:190,1
    - Dst: Botan::ct_modulo
      Src: /src/botan/src/cli/perf_math.cpp:190,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:192,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:193,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:196,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:197,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 200
    functionName: Botan_CLI::PerfTest_BnRedc::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_modulo
    - Botan::BigInt::bits
    - runtime
    - std::to_string
    - auto::reduce
    - BOTAN_ASSERT
    - make_timer
    - Botan::Barrett_Reduction::for_public_modulus
    - record_result
    - auto::under
    - Botan::Barrett_Reduction::for_secret_modulus
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:208,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:211,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:213,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:214,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:217,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:218,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:220,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/cli/perf_math.cpp:220,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:222,1
    - Dst: gcd
      Src: /src/botan/src/cli/perf_math.cpp:222,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:225,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:227,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:229,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:233,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 236
    functionName: Botan_CLI::PerfTest_InvMod::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - BOTAN_ASSERT
    - make_timer
    - gcd
    - record_result
    - Botan::inverse_mod
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:244,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:248,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:248,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:249,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:249,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:251,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:251,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:253,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:254,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: Botan::is_miller_rabin_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:258,1
    - Dst: Botan::is_bailie_psw_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:258,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:260,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:260,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:265,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:266,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 269
    functionName: Botan_CLI::PerfTest_IsPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - make_timer
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::is_bailie_psw_probable_prime
    - record_result
    - Botan::is_miller_rabin_probable_prime
    - Botan::is_lucas_probable_prime
    - auto::run
    - auto::under
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:277,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:278,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:280,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:283,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:283,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:287,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:287,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:289,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:289,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_math.cpp:290,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:295,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:295,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:299,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 302
    functionName: Botan_CLI::PerfTest_RandomPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::under
    - Botan::is_prime
    - error_output
    - Botan::random_prime
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:315,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/perf_math.cpp:316,1
    - Dst: auto::exponent_bits
      Src: /src/botan/src/cli/perf_math.cpp:318,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:321,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:322,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:324,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:325,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:327,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:327,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:328,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:328,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:329,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:329,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:332,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 335
    functionName: Botan_CLI::PerfTest_ModExp::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - auto::power_g_p
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - Botan::DL_Group::from_name
    - auto::under
    - auto::exponent_bits
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:36,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:39,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:39,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:40,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:40,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:42,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:45,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:46,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:48,1
    - Dst: Botan::BigInt::square
      Src: /src/botan/src/cli/perf_math.cpp:49,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:50,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/cli/perf_math.cpp:52,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:54,1
    - Dst: Botan::BigInt::mul
      Src: /src/botan/src/cli/perf_math.cpp:55,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:56,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:59,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: Botan_CLI::PerfTest_MpMul::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::square
    - runtime
    - std::to_string
    - make_timer
    - Botan::BigInt::mul
    - record_result
    - auto::start
    - auto::under
    - rng
    - Botan::BigInt::mask_bits
    - auto::stop
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:70,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:74,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:74,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:76,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:77,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:79,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:80,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:83,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:84,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:85,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:86,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:88,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:89,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:89,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:90,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:90,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:92,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:93,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:96,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/cli/perf_math.cpp:97,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:98,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:100,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:101,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:104,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 107
    functionName: Botan_CLI::PerfTest_MpDiv::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::start
    - Botan::BigInt::randomize
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - Botan::vartime_divide
    - rng
    - Botan::ct_divide
    - auto::stop
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:115,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:118,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:120,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:121,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:123,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:126,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:127,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:128,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:129,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:132,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:133,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:133,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:135,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:136,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:137,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:139,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/cli/perf_math.cpp:140,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:141,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:143,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:144,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:147,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 150
    functionName: Botan_CLI::PerfTest_MpDiv10::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::start
    - Botan::BigInt::randomize
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - Botan::vartime_divide
    - rng
    - auto::stop
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:162,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:165,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:167,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:168,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:169,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:171,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:172,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/cli/perf_math.cpp:172,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:173,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:173,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:176,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:177,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:179,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:181,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:182,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:183,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:188,1
    - Dst: auto::reduce
      Src: /src/botan/src/cli/perf_math.cpp:188,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:189,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:190,1
    - Dst: Botan::ct_modulo
      Src: /src/botan/src/cli/perf_math.cpp:190,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:192,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:193,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:196,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:197,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 200
    functionName: Botan_CLI::PerfTest_BnRedc::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_modulo
    - Botan::BigInt::bits
    - runtime
    - std::to_string
    - auto::reduce
    - BOTAN_ASSERT
    - make_timer
    - Botan::Barrett_Reduction::for_public_modulus
    - record_result
    - auto::under
    - Botan::Barrett_Reduction::for_secret_modulus
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:208,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:211,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:213,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:214,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:217,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:218,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:220,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/cli/perf_math.cpp:220,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:222,1
    - Dst: gcd
      Src: /src/botan/src/cli/perf_math.cpp:222,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:225,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:227,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:229,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:233,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 236
    functionName: Botan_CLI::PerfTest_InvMod::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - BOTAN_ASSERT
    - make_timer
    - gcd
    - record_result
    - Botan::inverse_mod
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:244,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:248,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:248,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:249,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:249,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:251,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:251,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:253,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:254,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: Botan::is_miller_rabin_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:258,1
    - Dst: Botan::is_bailie_psw_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:258,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:260,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:260,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:265,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:266,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 269
    functionName: Botan_CLI::PerfTest_IsPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - make_timer
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::is_bailie_psw_probable_prime
    - record_result
    - Botan::is_miller_rabin_probable_prime
    - Botan::is_lucas_probable_prime
    - auto::run
    - auto::under
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:277,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:278,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:280,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:283,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:283,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:287,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:287,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:289,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:289,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_math.cpp:290,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:295,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:295,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:299,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 302
    functionName: Botan_CLI::PerfTest_RandomPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::under
    - Botan::is_prime
    - error_output
    - Botan::random_prime
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:315,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/perf_math.cpp:316,1
    - Dst: auto::exponent_bits
      Src: /src/botan/src/cli/perf_math.cpp:318,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:321,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:322,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:324,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:325,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:327,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:327,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:328,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:328,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:329,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:329,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:332,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 335
    functionName: Botan_CLI::PerfTest_ModExp::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - auto::power_g_p
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - Botan::DL_Group::from_name
    - auto::under
    - auto::exponent_bits
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:36,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:39,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:39,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:40,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:40,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:42,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:45,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:46,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:48,1
    - Dst: Botan::BigInt::square
      Src: /src/botan/src/cli/perf_math.cpp:49,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:50,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/cli/perf_math.cpp:52,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:54,1
    - Dst: Botan::BigInt::mul
      Src: /src/botan/src/cli/perf_math.cpp:55,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:56,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:59,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: Botan_CLI::PerfTest_MpMul::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::square
    - runtime
    - std::to_string
    - make_timer
    - Botan::BigInt::mul
    - record_result
    - auto::start
    - auto::under
    - rng
    - Botan::BigInt::mask_bits
    - auto::stop
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:70,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:74,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:74,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:76,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:77,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:79,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:80,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:83,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:84,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:85,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:86,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:88,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:89,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:89,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:90,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:90,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:92,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:93,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:96,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/cli/perf_math.cpp:97,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:98,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:100,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:101,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:104,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 107
    functionName: Botan_CLI::PerfTest_MpDiv::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::start
    - Botan::BigInt::randomize
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - Botan::vartime_divide
    - rng
    - Botan::ct_divide
    - auto::stop
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:115,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:118,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:120,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:121,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:123,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:126,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:127,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:128,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:129,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:132,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:133,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:133,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:135,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:136,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:137,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:139,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/cli/perf_math.cpp:140,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:141,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:143,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:144,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:147,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 150
    functionName: Botan_CLI::PerfTest_MpDiv10::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::start
    - Botan::BigInt::randomize
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - Botan::vartime_divide
    - rng
    - auto::stop
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:162,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:165,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:167,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:168,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:169,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:171,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:172,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/cli/perf_math.cpp:172,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:173,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:173,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:176,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:177,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:179,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:181,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:182,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:183,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:188,1
    - Dst: auto::reduce
      Src: /src/botan/src/cli/perf_math.cpp:188,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:189,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:190,1
    - Dst: Botan::ct_modulo
      Src: /src/botan/src/cli/perf_math.cpp:190,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:192,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:193,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:196,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:197,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 200
    functionName: Botan_CLI::PerfTest_BnRedc::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_modulo
    - Botan::BigInt::bits
    - runtime
    - std::to_string
    - auto::reduce
    - BOTAN_ASSERT
    - make_timer
    - Botan::Barrett_Reduction::for_public_modulus
    - record_result
    - auto::under
    - Botan::Barrett_Reduction::for_secret_modulus
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:208,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:211,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:213,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:214,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:217,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:218,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:220,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/cli/perf_math.cpp:220,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:222,1
    - Dst: gcd
      Src: /src/botan/src/cli/perf_math.cpp:222,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:225,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:227,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:229,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:233,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 236
    functionName: Botan_CLI::PerfTest_InvMod::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - BOTAN_ASSERT
    - make_timer
    - gcd
    - record_result
    - Botan::inverse_mod
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:244,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:248,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:248,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:249,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:249,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:251,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:251,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:253,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:254,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: Botan::is_miller_rabin_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:258,1
    - Dst: Botan::is_bailie_psw_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:258,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:260,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:260,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:265,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:266,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 269
    functionName: Botan_CLI::PerfTest_IsPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - make_timer
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::is_bailie_psw_probable_prime
    - record_result
    - Botan::is_miller_rabin_probable_prime
    - Botan::is_lucas_probable_prime
    - auto::run
    - auto::under
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:277,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:278,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:280,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:283,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:283,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:287,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:287,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:289,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:289,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_math.cpp:290,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:295,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:295,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:299,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 302
    functionName: Botan_CLI::PerfTest_RandomPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::under
    - Botan::is_prime
    - error_output
    - Botan::random_prime
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:315,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/perf_math.cpp:316,1
    - Dst: auto::exponent_bits
      Src: /src/botan/src/cli/perf_math.cpp:318,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:321,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:322,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:324,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:325,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:327,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:327,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:328,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:328,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:329,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:329,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:332,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 335
    functionName: Botan_CLI::PerfTest_ModExp::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - auto::power_g_p
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - Botan::DL_Group::from_name
    - auto::under
    - auto::exponent_bits
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:36,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:39,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:39,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:40,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:40,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:42,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:45,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:46,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:48,1
    - Dst: Botan::BigInt::square
      Src: /src/botan/src/cli/perf_math.cpp:49,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:50,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/cli/perf_math.cpp:52,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:54,1
    - Dst: Botan::BigInt::mul
      Src: /src/botan/src/cli/perf_math.cpp:55,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:56,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:59,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: Botan_CLI::PerfTest_MpMul::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::square
    - runtime
    - std::to_string
    - make_timer
    - Botan::BigInt::mul
    - record_result
    - auto::start
    - auto::under
    - rng
    - Botan::BigInt::mask_bits
    - auto::stop
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:70,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:74,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:74,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:76,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:77,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:79,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:80,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:83,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:84,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:85,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:86,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:88,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:89,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:89,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:90,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:90,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:92,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:93,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:96,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/cli/perf_math.cpp:97,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:98,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:100,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:101,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:104,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 107
    functionName: Botan_CLI::PerfTest_MpDiv::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::start
    - Botan::BigInt::randomize
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - Botan::vartime_divide
    - rng
    - Botan::ct_divide
    - auto::stop
    - Botan::BigInt::BigInt
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:115,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:118,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:120,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:121,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:123,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:126,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:127,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:128,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:129,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:132,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:133,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:133,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:135,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:136,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:137,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:139,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/cli/perf_math.cpp:140,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:141,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:143,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:144,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:147,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 150
    functionName: Botan_CLI::PerfTest_MpDiv10::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::start
    - Botan::BigInt::randomize
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - Botan::vartime_divide
    - rng
    - auto::stop
    - Botan::BigInt::BigInt
    - Botan::ct_divide_word
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:162,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:165,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:167,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:168,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:169,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:171,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:172,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/cli/perf_math.cpp:172,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:173,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:173,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:176,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:177,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:179,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:181,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:182,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:183,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:185,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:188,1
    - Dst: auto::reduce
      Src: /src/botan/src/cli/perf_math.cpp:188,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:189,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:190,1
    - Dst: Botan::ct_modulo
      Src: /src/botan/src/cli/perf_math.cpp:190,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:192,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:193,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:196,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:197,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 200
    functionName: Botan_CLI::PerfTest_BnRedc::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_modulo
    - Botan::BigInt::bits
    - runtime
    - std::to_string
    - auto::reduce
    - BOTAN_ASSERT
    - make_timer
    - Botan::Barrett_Reduction::for_public_modulus
    - record_result
    - auto::under
    - Botan::Barrett_Reduction::for_secret_modulus
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:208,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:211,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:213,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:214,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:217,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:218,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:220,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/cli/perf_math.cpp:220,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:222,1
    - Dst: gcd
      Src: /src/botan/src/cli/perf_math.cpp:222,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:225,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:227,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:229,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:233,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 236
    functionName: Botan_CLI::PerfTest_InvMod::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - BOTAN_ASSERT
    - make_timer
    - gcd
    - record_result
    - Botan::inverse_mod
    - auto::under
    - BOTAN_ASSERT_EQUAL
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:244,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:248,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:248,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:249,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:249,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:251,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:251,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:253,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:254,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: Botan::is_miller_rabin_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:258,1
    - Dst: Botan::is_bailie_psw_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:258,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:260,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:260,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:265,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:266,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 269
    functionName: Botan_CLI::PerfTest_IsPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - runtime
    - std::to_string
    - make_timer
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::is_bailie_psw_probable_prime
    - record_result
    - Botan::is_miller_rabin_probable_prime
    - Botan::is_lucas_probable_prime
    - auto::run
    - auto::under
    - rng
    - Botan::random_prime
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:277,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:278,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:280,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:283,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:283,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:287,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:287,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:289,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:289,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_math.cpp:290,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:295,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:295,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:299,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 302
    functionName: Botan_CLI::PerfTest_RandomPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_word
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - auto::under
    - Botan::is_prime
    - error_output
    - Botan::random_prime
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:315,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/perf_math.cpp:316,1
    - Dst: auto::exponent_bits
      Src: /src/botan/src/cli/perf_math.cpp:318,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:321,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:322,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:324,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:325,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:327,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:327,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:328,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:328,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:329,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:329,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:332,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 335
    functionName: Botan_CLI::PerfTest_ModExp::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - auto::power_g_p
    - runtime
    - std::to_string
    - make_timer
    - record_result
    - Botan::DL_Group::from_name
    - auto::under
    - auto::exponent_bits
    - rng
    - auto::run
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PerfTest::global_registry
      Src: /src/botan/src/cli/perf.cpp:15,1
    - Dst: contains
      Src: /src/botan/src/cli/perf.cpp:17,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/perf.cpp:18,1
    - Dst: insert
      Src: /src/botan/src/cli/perf.cpp:21,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/perf.cpp:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - ' maker_fn'
    argTypes:
    - std::string
    - PerfTest::pt_maker_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: PerfTest::Registration::Registration(const std::string& name, const
      PerfTest::pt_maker_fn& maker_fn)
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - contains
    - PerfTest::global_registry
    - std::make_pair
    - insert
    linkageType: ''
    returnType: void
    signature: void PerfTest::Registration::Registration(const std::string& name,
      const PerfTest::pt_maker_fn& maker_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: '& PerfTest::global_registry()'
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, PerfTest::pt_maker_fn>
    signature: std::map<std::string, PerfTest::pt_maker_fn> & PerfTest::global_registry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PerfTest::global_registry
      Src: /src/botan/src/cli/perf.cpp:32,1
    - Dst: find
      Src: /src/botan/src/cli/perf.cpp:34,1
    - Dst: end
      Src: /src/botan/src/cli/perf.cpp:35,1
    - Dst: auto::second
      Src: /src/botan/src/cli/perf.cpp:36,1
    - Dst: Botan_CLI::PerfTest::get_sym
      Src: /src/botan/src/cli/perf.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: Botan_CLI::PerfTest::get
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 4
    functionsReached:
    - find
    - Botan_CLI::PerfTest::get_sym
    - auto::second
    - PerfTest::global_registry
    - end
    linkageType: ''
    returnType: std::unique_ptr<PerfTest>
    signature: std::unique_ptr<PerfTest> PerfTest::get(const std::string& name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/perf.cpp:43,1
    - Dst: starts_with
      Src: /src/botan/src/cli/perf.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: Botan_CLI::PerfTest::format_name
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 0
    functionsReached:
    - starts_with
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string PerfTest::format_name(const std::string& alg, const std::string&
      param) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PerfTest::global_registry
      Src: /src/botan/src/cli/perf.cpp:15,1
    - Dst: contains
      Src: /src/botan/src/cli/perf.cpp:17,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/perf.cpp:18,1
    - Dst: insert
      Src: /src/botan/src/cli/perf.cpp:21,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/perf.cpp:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - ' maker_fn'
    argTypes:
    - std::string
    - PerfTest::pt_maker_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: PerfTest::Registration::Registration(const std::string& name, const
      PerfTest::pt_maker_fn& maker_fn)
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - contains
    - PerfTest::global_registry
    - std::make_pair
    - insert
    linkageType: ''
    returnType: void
    signature: void PerfTest::Registration::Registration(const std::string& name,
      const PerfTest::pt_maker_fn& maker_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: '& PerfTest::global_registry()'
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::map<std::string, PerfTest::pt_maker_fn>
    signature: std::map<std::string, PerfTest::pt_maker_fn> & PerfTest::global_registry()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PerfTest::global_registry
      Src: /src/botan/src/cli/perf.cpp:32,1
    - Dst: find
      Src: /src/botan/src/cli/perf.cpp:34,1
    - Dst: end
      Src: /src/botan/src/cli/perf.cpp:35,1
    - Dst: auto::second
      Src: /src/botan/src/cli/perf.cpp:36,1
    - Dst: Botan_CLI::PerfTest::get_sym
      Src: /src/botan/src/cli/perf.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: Botan_CLI::PerfTest::get
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 4
    functionsReached:
    - find
    - Botan_CLI::PerfTest::get_sym
    - auto::second
    - PerfTest::global_registry
    - end
    linkageType: ''
    returnType: std::unique_ptr<PerfTest>
    signature: std::unique_ptr<PerfTest> PerfTest::get(const std::string& name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/perf.cpp:43,1
    - Dst: starts_with
      Src: /src/botan/src/cli/perf.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: Botan_CLI::PerfTest::format_name
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 0
    functionsReached:
    - starts_with
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string PerfTest::format_name(const std::string& alg, const std::string&
      param) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::Cipher::Cipher
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::Cipher::group
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::Cipher::description
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:35,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:36,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:37,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/cipher.cpp:38,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cipher.cpp:42,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cipher.cpp:44,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/cipher.cpp:46,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cipher.cpp:48,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/cipher.cpp:52,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cipher.cpp:55,1
    - Dst: dynamic_cast<Botan::AEAD_Mode*>
      Src: /src/botan/src/cli/cipher.cpp:57,1
    - Dst: auto::get
      Src: /src/botan/src/cli/cipher.cpp:57,1
    - Dst: Botan::AEAD_Mode*::set_associated_data
      Src: /src/botan/src/cli/cipher.cpp:58,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cipher.cpp:62,1
    - Dst: auto::start
      Src: /src/botan/src/cli/cipher.cpp:67,1
    - Dst: Botan::InitializationVector::bits_of
      Src: /src/botan/src/cli/cipher.cpp:67,1
    - Dst: Botan_CLI::Cipher::slurp_file
      Src: /src/botan/src/cli/cipher.cpp:69,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/cipher.cpp:71,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/cipher.cpp:71,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/cipher.cpp:72,1
    - Dst: write_output
      Src: /src/botan/src/cli/cipher.cpp:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: Botan_CLI::Cipher::go
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_CLI::Cipher::slurp_file
    - write_output
    - get_arg_or
    - Botan::InitializationVector::bits_of
    - std::vector::begin
    - Botan::hex_decode
    - get_arg_sz
    - std::vector::end
    - auto::start
    - auto::finish
    - std::vector::empty
    - Botan::Cipher_Mode::create
    - flag_set
    - Botan::AEAD_Mode*::set_associated_data
    - get_arg
    - CLI_Usage_Error
    - auto::set_key
    - CLI_Error_Unsupported
    - dynamic_cast<Botan::AEAD_Mode*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::Cipher::Cipher
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::Cipher::group
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::Cipher::description
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:35,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:36,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:37,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/cipher.cpp:38,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cipher.cpp:42,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cipher.cpp:44,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/cipher.cpp:46,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cipher.cpp:48,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/cipher.cpp:52,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cipher.cpp:55,1
    - Dst: dynamic_cast<Botan::AEAD_Mode*>
      Src: /src/botan/src/cli/cipher.cpp:57,1
    - Dst: auto::get
      Src: /src/botan/src/cli/cipher.cpp:57,1
    - Dst: Botan::AEAD_Mode*::set_associated_data
      Src: /src/botan/src/cli/cipher.cpp:58,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cipher.cpp:62,1
    - Dst: auto::start
      Src: /src/botan/src/cli/cipher.cpp:67,1
    - Dst: Botan::InitializationVector::bits_of
      Src: /src/botan/src/cli/cipher.cpp:67,1
    - Dst: Botan_CLI::Cipher::slurp_file
      Src: /src/botan/src/cli/cipher.cpp:69,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/cipher.cpp:71,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/cipher.cpp:71,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/cipher.cpp:72,1
    - Dst: write_output
      Src: /src/botan/src/cli/cipher.cpp:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: Botan_CLI::Cipher::go
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_CLI::Cipher::slurp_file
    - write_output
    - get_arg_or
    - Botan::InitializationVector::bits_of
    - std::vector::begin
    - Botan::hex_decode
    - get_arg_sz
    - std::vector::end
    - auto::start
    - auto::finish
    - std::vector::empty
    - Botan::Cipher_Mode::create
    - flag_set
    - Botan::AEAD_Mode*::set_associated_data
    - get_arg
    - CLI_Usage_Error
    - auto::set_key
    - CLI_Error_Unsupported
    - dynamic_cast<Botan::AEAD_Mode*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::Cipher::Cipher
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::Cipher::group
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::Cipher::description
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:35,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:36,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:37,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/cipher.cpp:38,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cipher.cpp:42,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cipher.cpp:44,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/cipher.cpp:46,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cipher.cpp:48,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/cipher.cpp:52,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cipher.cpp:55,1
    - Dst: dynamic_cast<Botan::AEAD_Mode*>
      Src: /src/botan/src/cli/cipher.cpp:57,1
    - Dst: auto::get
      Src: /src/botan/src/cli/cipher.cpp:57,1
    - Dst: Botan::AEAD_Mode*::set_associated_data
      Src: /src/botan/src/cli/cipher.cpp:58,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cipher.cpp:62,1
    - Dst: auto::start
      Src: /src/botan/src/cli/cipher.cpp:67,1
    - Dst: Botan::InitializationVector::bits_of
      Src: /src/botan/src/cli/cipher.cpp:67,1
    - Dst: Botan_CLI::Cipher::slurp_file
      Src: /src/botan/src/cli/cipher.cpp:69,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/cipher.cpp:71,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/cipher.cpp:71,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/cipher.cpp:72,1
    - Dst: write_output
      Src: /src/botan/src/cli/cipher.cpp:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: Botan_CLI::Cipher::go
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_CLI::Cipher::slurp_file
    - write_output
    - get_arg_or
    - Botan::InitializationVector::bits_of
    - std::vector::begin
    - Botan::hex_decode
    - get_arg_sz
    - std::vector::end
    - auto::start
    - auto::finish
    - std::vector::empty
    - Botan::Cipher_Mode::create
    - flag_set
    - Botan::AEAD_Mode*::set_associated_data
    - get_arg
    - CLI_Usage_Error
    - auto::set_key
    - CLI_Error_Unsupported
    - dynamic_cast<Botan::AEAD_Mode*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan_CLI::Cipher::Cipher
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan_CLI::Cipher::group
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan_CLI::Cipher::description
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:33,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:35,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:36,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:37,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/cipher.cpp:38,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cipher.cpp:42,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cipher.cpp:44,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/cipher.cpp:46,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cipher.cpp:48,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/cipher.cpp:52,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cipher.cpp:55,1
    - Dst: dynamic_cast<Botan::AEAD_Mode*>
      Src: /src/botan/src/cli/cipher.cpp:57,1
    - Dst: auto::get
      Src: /src/botan/src/cli/cipher.cpp:57,1
    - Dst: Botan::AEAD_Mode*::set_associated_data
      Src: /src/botan/src/cli/cipher.cpp:58,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cipher.cpp:62,1
    - Dst: auto::start
      Src: /src/botan/src/cli/cipher.cpp:67,1
    - Dst: Botan::InitializationVector::bits_of
      Src: /src/botan/src/cli/cipher.cpp:67,1
    - Dst: Botan_CLI::Cipher::slurp_file
      Src: /src/botan/src/cli/cipher.cpp:69,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/cipher.cpp:71,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/cipher.cpp:71,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/cipher.cpp:72,1
    - Dst: write_output
      Src: /src/botan/src/cli/cipher.cpp:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: Botan_CLI::Cipher::go
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan_CLI::Cipher::slurp_file
    - write_output
    - get_arg_or
    - Botan::InitializationVector::bits_of
    - std::vector::begin
    - Botan::hex_decode
    - get_arg_sz
    - std::vector::end
    - auto::start
    - auto::finish
    - std::vector::empty
    - Botan::Cipher_Mode::create
    - flag_set
    - Botan::AEAD_Mode*::set_associated_data
    - get_arg
    - CLI_Usage_Error
    - auto::set_key
    - CLI_Error_Unsupported
    - dynamic_cast<Botan::AEAD_Mode*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Hash::Hash
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Hash::group
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Hash::description
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/hash.cpp:28,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hash.cpp:29,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hash.cpp:30,1
    - Dst: flag_set
      Src: /src/botan/src/cli/hash.cpp:31,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/hash.cpp:33,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hash.cpp:36,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hash.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hash.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hash.cpp:41,1
    - Dst: auto::update
      Src: /src/botan/src/cli/hash.cpp:46,1
    - Dst: read_file
      Src: /src/botan/src/cli/hash.cpp:47,1
    - Dst: format_blob
      Src: /src/botan/src/cli/hash.cpp:49,1
    - Dst: auto::final
      Src: /src/botan/src/cli/hash.cpp:49,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:52,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:54,1
    - Dst: error_output
      Src: /src/botan/src/cli/hash.cpp:57,1
    - Dst: what
      Src: /src/botan/src/cli/hash.cpp:57,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 60
    functionName: Botan_CLI::Hash::go
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - read_file
    - std::vector::push_back
    - flag_set
    - get_arg_list
    - get_arg
    - Botan::HashFunction::create
    - auto::update
    - format_blob
    - output
    - auto::final
    - CLI_Error_Unsupported
    - error_output
    - what
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Hash::Hash
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Hash::group
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Hash::description
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/hash.cpp:28,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hash.cpp:29,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hash.cpp:30,1
    - Dst: flag_set
      Src: /src/botan/src/cli/hash.cpp:31,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/hash.cpp:33,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hash.cpp:36,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hash.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hash.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hash.cpp:41,1
    - Dst: auto::update
      Src: /src/botan/src/cli/hash.cpp:46,1
    - Dst: read_file
      Src: /src/botan/src/cli/hash.cpp:47,1
    - Dst: format_blob
      Src: /src/botan/src/cli/hash.cpp:49,1
    - Dst: auto::final
      Src: /src/botan/src/cli/hash.cpp:49,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:52,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:54,1
    - Dst: error_output
      Src: /src/botan/src/cli/hash.cpp:57,1
    - Dst: what
      Src: /src/botan/src/cli/hash.cpp:57,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 60
    functionName: Botan_CLI::Hash::go
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - read_file
    - std::vector::push_back
    - flag_set
    - get_arg_list
    - get_arg
    - Botan::HashFunction::create
    - auto::update
    - format_blob
    - output
    - auto::final
    - CLI_Error_Unsupported
    - error_output
    - what
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Hash::Hash
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Hash::group
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Hash::description
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/hash.cpp:28,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hash.cpp:29,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hash.cpp:30,1
    - Dst: flag_set
      Src: /src/botan/src/cli/hash.cpp:31,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/hash.cpp:33,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hash.cpp:36,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hash.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hash.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hash.cpp:41,1
    - Dst: auto::update
      Src: /src/botan/src/cli/hash.cpp:46,1
    - Dst: read_file
      Src: /src/botan/src/cli/hash.cpp:47,1
    - Dst: format_blob
      Src: /src/botan/src/cli/hash.cpp:49,1
    - Dst: auto::final
      Src: /src/botan/src/cli/hash.cpp:49,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:52,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:54,1
    - Dst: error_output
      Src: /src/botan/src/cli/hash.cpp:57,1
    - Dst: what
      Src: /src/botan/src/cli/hash.cpp:57,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 60
    functionName: Botan_CLI::Hash::go
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - read_file
    - std::vector::push_back
    - flag_set
    - get_arg_list
    - get_arg
    - Botan::HashFunction::create
    - auto::update
    - format_blob
    - output
    - auto::final
    - CLI_Error_Unsupported
    - error_output
    - what
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan_CLI::Hash::Hash
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan_CLI::Hash::group
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Hash::description
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/hash.cpp:28,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hash.cpp:29,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hash.cpp:30,1
    - Dst: flag_set
      Src: /src/botan/src/cli/hash.cpp:31,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/hash.cpp:33,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hash.cpp:36,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hash.cpp:39,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hash.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hash.cpp:41,1
    - Dst: auto::update
      Src: /src/botan/src/cli/hash.cpp:46,1
    - Dst: read_file
      Src: /src/botan/src/cli/hash.cpp:47,1
    - Dst: format_blob
      Src: /src/botan/src/cli/hash.cpp:49,1
    - Dst: auto::final
      Src: /src/botan/src/cli/hash.cpp:49,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:52,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:54,1
    - Dst: error_output
      Src: /src/botan/src/cli/hash.cpp:57,1
    - Dst: what
      Src: /src/botan/src/cli/hash.cpp:57,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 60
    functionName: Botan_CLI::Hash::go
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - read_file
    - std::vector::push_back
    - flag_set
    - get_arg_list
    - get_arg
    - Botan::HashFunction::create
    - auto::update
    - format_blob
    - output
    - auto::final
    - CLI_Error_Unsupported
    - error_output
    - what
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan_CLI::Hex_Encode::Hex_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hex_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_CLI::Hex_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Hex_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:40,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/codec.cpp:40,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:41,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan_CLI::Hex_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - get_arg
    - Botan_CLI::Command::read_file
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::Hex_Decode::Hex_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hex_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_CLI::Hex_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_CLI::Hex_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:60,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan_CLI::Hex_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan_CLI::Base58_Encode::Base58_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan_CLI::Base58_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan_CLI::Base58_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file
      Src: /src/botan/src/cli/codec.cpp:79,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:79,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:81,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:82,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/cli/codec.cpp:82,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:84,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/codec.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: Botan_CLI::Base58_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - slurp_file
    - flag_set
    - get_arg
    - output
    - Botan::base58_encode
    - Botan::base58_check_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_CLI::Base58_Decode::Base58_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Base58_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Base58_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/codec.cpp:100,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:100,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:104,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/cli/codec.cpp:105,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/codec.cpp:107,1
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Base58_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::base58_check_decode
    - flag_set
    - write_output
    - slurp_file_as_str
    - get_arg
    - Botan::base58_decode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan_CLI::Base32_Encode::Base32_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_CLI::Base32_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_CLI::Base32_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:129,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/codec.cpp:129,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: Botan_CLI::Base32_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - get_arg
    - Botan::base32_encode
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan_CLI::Base32_Decode::Base32_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_CLI::Base32_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_CLI::Base32_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:149,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: Botan_CLI::Base32_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - reinterpret_cast<const char*>
    - Botan::base32_decode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan_CLI::Base64_Encode::Base64_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: Botan_CLI::Base64_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_CLI::Base64_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:168,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/codec.cpp:168,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:169,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: Botan_CLI::Base64_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::base64_encode
    - Botan_CLI::Command::read_file
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: Botan_CLI::Base64_Decode::Base64_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: Botan_CLI::Base64_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: Botan_CLI::Base64_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:188,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: Botan_CLI::Base64_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - Botan::base64_decode
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan_CLI::Hex_Encode::Hex_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hex_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_CLI::Hex_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Hex_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:40,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/codec.cpp:40,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:41,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan_CLI::Hex_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - get_arg
    - Botan_CLI::Command::read_file
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::Hex_Decode::Hex_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hex_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_CLI::Hex_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_CLI::Hex_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:60,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan_CLI::Hex_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan_CLI::Base58_Encode::Base58_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan_CLI::Base58_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan_CLI::Base58_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file
      Src: /src/botan/src/cli/codec.cpp:79,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:79,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:81,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:82,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/cli/codec.cpp:82,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:84,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/codec.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: Botan_CLI::Base58_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - slurp_file
    - flag_set
    - get_arg
    - output
    - Botan::base58_encode
    - Botan::base58_check_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_CLI::Base58_Decode::Base58_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Base58_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Base58_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/codec.cpp:100,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:100,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:104,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/cli/codec.cpp:105,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/codec.cpp:107,1
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Base58_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::base58_check_decode
    - flag_set
    - write_output
    - slurp_file_as_str
    - get_arg
    - Botan::base58_decode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan_CLI::Base32_Encode::Base32_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_CLI::Base32_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_CLI::Base32_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:129,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/codec.cpp:129,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: Botan_CLI::Base32_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - get_arg
    - Botan::base32_encode
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan_CLI::Base32_Decode::Base32_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_CLI::Base32_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_CLI::Base32_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:149,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: Botan_CLI::Base32_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - reinterpret_cast<const char*>
    - Botan::base32_decode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan_CLI::Base64_Encode::Base64_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: Botan_CLI::Base64_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_CLI::Base64_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:168,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/codec.cpp:168,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:169,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: Botan_CLI::Base64_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::base64_encode
    - Botan_CLI::Command::read_file
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: Botan_CLI::Base64_Decode::Base64_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: Botan_CLI::Base64_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: Botan_CLI::Base64_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:188,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: Botan_CLI::Base64_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - Botan::base64_decode
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan_CLI::Hex_Encode::Hex_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hex_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_CLI::Hex_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Hex_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:40,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/codec.cpp:40,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:41,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan_CLI::Hex_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - get_arg
    - Botan_CLI::Command::read_file
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::Hex_Decode::Hex_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hex_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_CLI::Hex_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_CLI::Hex_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:60,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan_CLI::Hex_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan_CLI::Base58_Encode::Base58_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan_CLI::Base58_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan_CLI::Base58_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file
      Src: /src/botan/src/cli/codec.cpp:79,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:79,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:81,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:82,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/cli/codec.cpp:82,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:84,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/codec.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: Botan_CLI::Base58_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - slurp_file
    - flag_set
    - get_arg
    - output
    - Botan::base58_encode
    - Botan::base58_check_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_CLI::Base58_Decode::Base58_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Base58_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Base58_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/codec.cpp:100,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:100,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:104,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/cli/codec.cpp:105,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/codec.cpp:107,1
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Base58_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::base58_check_decode
    - flag_set
    - write_output
    - slurp_file_as_str
    - get_arg
    - Botan::base58_decode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan_CLI::Base32_Encode::Base32_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_CLI::Base32_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_CLI::Base32_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:129,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/codec.cpp:129,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: Botan_CLI::Base32_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - get_arg
    - Botan::base32_encode
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan_CLI::Base32_Decode::Base32_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_CLI::Base32_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_CLI::Base32_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:149,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: Botan_CLI::Base32_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - reinterpret_cast<const char*>
    - Botan::base32_decode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan_CLI::Base64_Encode::Base64_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: Botan_CLI::Base64_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_CLI::Base64_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:168,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/codec.cpp:168,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:169,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: Botan_CLI::Base64_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::base64_encode
    - Botan_CLI::Command::read_file
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: Botan_CLI::Base64_Decode::Base64_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: Botan_CLI::Base64_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: Botan_CLI::Base64_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:188,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: Botan_CLI::Base64_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - Botan::base64_decode
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan_CLI::Hex_Encode::Hex_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hex_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan_CLI::Hex_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Hex_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:40,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/codec.cpp:40,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:41,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan_CLI::Hex_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - get_arg
    - Botan_CLI::Command::read_file
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::Hex_Decode::Hex_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hex_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan_CLI::Hex_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan_CLI::Hex_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:57,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:60,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan_CLI::Hex_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan_CLI::Base58_Encode::Base58_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan_CLI::Base58_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan_CLI::Base58_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file
      Src: /src/botan/src/cli/codec.cpp:79,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:79,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:81,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:82,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/cli/codec.cpp:82,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:84,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/codec.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: Botan_CLI::Base58_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - slurp_file
    - flag_set
    - get_arg
    - output
    - Botan::base58_encode
    - Botan::base58_check_encode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_CLI::Base58_Decode::Base58_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base58_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Base58_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan_CLI::Base58_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/codec.cpp:100,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:100,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:104,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/cli/codec.cpp:105,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/codec.cpp:107,1
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Base58_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::base58_check_decode
    - flag_set
    - write_output
    - slurp_file_as_str
    - get_arg
    - Botan::base58_decode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan_CLI::Base32_Encode::Base32_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan_CLI::Base32_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan_CLI::Base32_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:129,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/codec.cpp:129,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: Botan_CLI::Base32_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - get_arg
    - Botan::base32_encode
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan_CLI::Base32_Decode::Base32_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base32_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan_CLI::Base32_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan_CLI::Base32_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:146,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:149,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: Botan_CLI::Base32_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - reinterpret_cast<const char*>
    - Botan::base32_decode
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan_CLI::Base64_Encode::Base64_Encode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Encode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: Botan_CLI::Base64_Encode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: Botan_CLI::Base64_Encode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:168,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/codec.cpp:168,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:169,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: Botan_CLI::Base64_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::base64_encode
    - Botan_CLI::Command::read_file
    - output
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: Botan_CLI::Base64_Decode::Base64_Decode
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Base64_Decode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: Botan_CLI::Base64_Decode::group
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: Botan_CLI::Base64_Decode::description
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:185,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:188,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: Botan_CLI::Base64_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - write_output
    - get_arg
    - Botan::base64_decode
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: Botan_CLI::PSK_Tool_Base::group
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/psk.cpp:22,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/cli/psk.cpp:24,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/psk.cpp:24,1
    - Dst: std::make_shared<Botan::Sqlite3_Database>
      Src: /src/botan/src/cli/psk.cpp:26,1
    - Dst: psk_operation
      Src: /src/botan/src/cli/psk.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: Botan_CLI::PSK_Tool_Base::go
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - std::make_shared<Botan::Sqlite3_Database>
    - get_passphrase_arg
    - get_arg
    - psk_operation
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' spec'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan_CLI::PSK_Tool_Base::PSK_Tool_Base
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PSK_Tool_Base(const std::string& spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan_CLI::PSK_Tool_Set::PSK_Tool_Set
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PSK_Tool_Set()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan_CLI::PSK_Tool_Set::description
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/psk.cpp:47,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/cli/psk.cpp:48,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/psk.cpp:48,1
    - Dst: set_vec
      Src: /src/botan/src/cli/psk.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' db'
    argTypes:
    - Botan::PSK_Database
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: Botan_CLI::PSK_Tool_Set::psk_operation
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - get_arg
    - set_vec
    - get_passphrase_arg
    linkageType: ''
    returnType: void
    signature: void psk_operation(Botan::PSK_Database& db) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_CLI::PSK_Tool_Get::PSK_Tool_Get
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PSK_Tool_Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan_CLI::PSK_Tool_Get::description
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/psk.cpp:61,1
    - Dst: get
      Src: /src/botan/src/cli/psk.cpp:62,1
    - Dst: output
      Src: /src/botan/src/cli/psk.cpp:63,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/psk.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' db'
    argTypes:
    - Botan::PSK_Database
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: Botan_CLI::PSK_Tool_Get::psk_operation
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - get_arg
    - get
    - output
    linkageType: ''
    returnType: void
    signature: void psk_operation(Botan::PSK_Database& db) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan_CLI::PSK_Tool_List::PSK_Tool_List
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PSK_Tool_List()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan_CLI::PSK_Tool_List::description
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_names
      Src: /src/botan/src/cli/psk.cpp:75,1
    - Dst: output
      Src: /src/botan/src/cli/psk.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' db'
    argTypes:
    - Botan::PSK_Database
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: Botan_CLI::PSK_Tool_List::psk_operation
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached:
    - list_names
    - output
    linkageType: ''
    returnType: void
    signature: void psk_operation(Botan::PSK_Database& db) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: Botan_CLI::PSK_Tool_Base::group
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/psk.cpp:22,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/cli/psk.cpp:24,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/psk.cpp:24,1
    - Dst: std::make_shared<Botan::Sqlite3_Database>
      Src: /src/botan/src/cli/psk.cpp:26,1
    - Dst: psk_operation
      Src: /src/botan/src/cli/psk.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: Botan_CLI::PSK_Tool_Base::go
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - std::make_shared<Botan::Sqlite3_Database>
    - get_passphrase_arg
    - get_arg
    - psk_operation
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' spec'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan_CLI::PSK_Tool_Base::PSK_Tool_Base
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PSK_Tool_Base(const std::string& spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan_CLI::PSK_Tool_Set::PSK_Tool_Set
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PSK_Tool_Set()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan_CLI::PSK_Tool_Set::description
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/psk.cpp:47,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/cli/psk.cpp:48,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/psk.cpp:48,1
    - Dst: set_vec
      Src: /src/botan/src/cli/psk.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' db'
    argTypes:
    - Botan::PSK_Database
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: Botan_CLI::PSK_Tool_Set::psk_operation
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - get_arg
    - set_vec
    - get_passphrase_arg
    linkageType: ''
    returnType: void
    signature: void psk_operation(Botan::PSK_Database& db) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan_CLI::PSK_Tool_Get::PSK_Tool_Get
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PSK_Tool_Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan_CLI::PSK_Tool_Get::description
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/psk.cpp:61,1
    - Dst: get
      Src: /src/botan/src/cli/psk.cpp:62,1
    - Dst: output
      Src: /src/botan/src/cli/psk.cpp:63,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/psk.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' db'
    argTypes:
    - Botan::PSK_Database
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: Botan_CLI::PSK_Tool_Get::psk_operation
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - get_arg
    - get
    - output
    linkageType: ''
    returnType: void
    signature: void psk_operation(Botan::PSK_Database& db) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan_CLI::PSK_Tool_List::PSK_Tool_List
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PSK_Tool_List()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan_CLI::PSK_Tool_List::description
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_names
      Src: /src/botan/src/cli/psk.cpp:75,1
    - Dst: output
      Src: /src/botan/src/cli/psk.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' db'
    argTypes:
    - Botan::PSK_Database
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: Botan_CLI::PSK_Tool_List::psk_operation
    functionSourceFile: /src/botan/src/cli/psk.cpp
    functionUses: 0
    functionsReached:
    - list_names
    - output
    linkageType: ''
    returnType: void
    signature: void psk_operation(Botan::PSK_Database& db) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' server_command'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan_CLI::Callbacks::Callbacks
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Callbacks(TLS_Server& server_command)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:61,1
    - Dst: version
      Src: /src/botan/src/cli/tls_server.cpp:61,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_server.cpp:62,1
    - Dst: external_psk_identity
      Src: /src/botan/src/cli/tls_server.cpp:64,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: maybe_hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: value
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:68,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_server.cpp:70,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_server.cpp:70,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: get
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: session_ticket
      Src: /src/botan/src/cli/tls_server.cpp:74,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    - Dst: get
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: Botan_CLI::Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - external_psk_identity
    - ciphersuite
    - session_ticket
    - maybe_hex_encode
    - version
    - get
    - output
    - value
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/botan/src/cli/tls_server.cpp:81,1
    - Dst: Botan_CLI::Callbacks::push_pending_output
      Src: /src/botan/src/cli/tls_server.cpp:84,1
    - Dst: std::exchange
      Src: /src/botan/src/cli/tls_server.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: Botan_CLI::Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - static_cast<char>
    - Botan_CLI::Callbacks::push_pending_output
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq_no*/, std::span<const uint8_t>
      input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_server.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:91,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/cli/tls_server.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_CLI::Callbacks::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    - output
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan_CLI::Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      /*client_protos*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fingerprint_public
      Src: /src/botan/src/cli/tls_server.cpp:102,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' raw_public_key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - fingerprint_public
    - output
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Botan::Public_Key& raw_public_key,\n
      \                                    Botan::Usage_Type /* usage */,\n                                     std::string_view
      /* hostname */,\n                                     const Botan::TLS::Policy&
      /* policy */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' server_command'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan_CLI::Callbacks::Callbacks
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Callbacks(TLS_Server& server_command)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:61,1
    - Dst: version
      Src: /src/botan/src/cli/tls_server.cpp:61,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_server.cpp:62,1
    - Dst: external_psk_identity
      Src: /src/botan/src/cli/tls_server.cpp:64,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: maybe_hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: value
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:68,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_server.cpp:70,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_server.cpp:70,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: get
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: session_ticket
      Src: /src/botan/src/cli/tls_server.cpp:74,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    - Dst: get
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: Botan_CLI::Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - external_psk_identity
    - ciphersuite
    - session_ticket
    - maybe_hex_encode
    - version
    - get
    - output
    - value
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/botan/src/cli/tls_server.cpp:81,1
    - Dst: Botan_CLI::Callbacks::push_pending_output
      Src: /src/botan/src/cli/tls_server.cpp:84,1
    - Dst: std::exchange
      Src: /src/botan/src/cli/tls_server.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: Botan_CLI::Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - static_cast<char>
    - Botan_CLI::Callbacks::push_pending_output
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq_no*/, std::span<const uint8_t>
      input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_server.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:91,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/cli/tls_server.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_CLI::Callbacks::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    - output
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan_CLI::Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      /*client_protos*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fingerprint_public
      Src: /src/botan/src/cli/tls_server.cpp:102,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' raw_public_key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - fingerprint_public
    - output
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Botan::Public_Key& raw_public_key,\n
      \                                    Botan::Usage_Type /* usage */,\n                                     std::string_view
      /* hostname */,\n                                     const Botan::TLS::Policy&
      /* policy */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_sockets
      Src: /src/botan/src/cli/tls_server.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: Botan_CLI::TLS_Server::TLS_Server
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - init_sockets
    linkageType: ''
    returnType: void
    signature: void TLS_Server()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stop_sockets
      Src: /src/botan/src/cli/tls_server.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: ~TLS_Server() override
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - stop_sockets
    linkageType: ''
    returnType: void
    signature: void ~TLS_Server() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan_CLI::TLS_Server::TLS_Server
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Server(const TLS_Server& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_CLI::TLS_Server::TLS_Server
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Server(TLS_Server&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: '& operator=(const TLS_Server& other)'
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Server
    signature: TLS_Server & operator=(const TLS_Server& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: '& operator=(TLS_Server&& other)'
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Server
    signature: TLS_Server & operator=(TLS_Server&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan_CLI::TLS_Server::group
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan_CLI::TLS_Server::description
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_server.cpp:140,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_server.cpp:141,1
    - Dst: get_arg_u16
      Src: /src/botan/src/cli/tls_server.cpp:142,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_server.cpp:143,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_server.cpp:144,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_server.cpp:145,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_server.cpp:147,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/cli/tls_server.cpp:149,1
    - Dst: auto::value
      Src: /src/botan/src/cli/tls_server.cpp:149,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_server.cpp:154,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_server.cpp:155,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/tls_server.cpp:158,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_server.cpp:158,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tls_server.cpp:162,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_server.cpp:167,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_server.cpp:167,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_server.cpp:169,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_server.cpp:169,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_server.cpp:171,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_server.cpp:171,1
    - Dst: std::make_shared<Callbacks>
      Src: /src/botan/src/cli/tls_server.cpp:172,1
    - Dst: init
      Src: /src/botan/src/cli/tls_server.cpp:174,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:175,1
    - Dst: Botan_CLI::TLS_Server::make_server_socket
      Src: /src/botan/src/cli/tls_server.cpp:179,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:182,1
    - Dst: Server::move_before_accept
      Src: /src/botan/src/cli/tls_server.cpp:190,1
    - Dst: ::recvfrom
      Src: /src/botan/src/cli/tls_server.cpp:207,1
    - Dst: static_cast<char*>
      Src: /src/botan/src/cli/tls_server.cpp:208,1
    - Dst: static_cast<sendrecv_len_type>
      Src: /src/botan/src/cli/tls_server.cpp:209,1
    - Dst: reinterpret_cast<struct sockaddr*>
      Src: /src/botan/src/cli/tls_server.cpp:211,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:213,1
    - Dst: client::handle_connect
      Src: /src/botan/src/cli/tls_server.cpp:216,1
    - Dst: reinterpret_cast<struct sockaddr*>
      Src: /src/botan/src/cli/tls_server.cpp:216,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:217,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_server.cpp:224,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_server.cpp:228,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/tls_server.cpp:229,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/tls_server.cpp:230,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_server.cpp:231,1
    - Dst: std::make_unique<std::ofstream>
      Src: /src/botan/src/cli/tls_server.cpp:232,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/tls_server.cpp:232,1
    - Dst: Botan::TLS::Server::is_closed
      Src: /src/botan/src/cli/tls_server.cpp:236,1
    - Dst: ::recv
      Src: /src/botan/src/cli/tls_server.cpp:239,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/cli/tls_server.cpp:239,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:242,1
    - Dst: err_to_string
      Src: /src/botan/src/cli/tls_server.cpp:242,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:247,1
    - Dst: std::unique_ptr::write
      Src: /src/botan/src/cli/tls_server.cpp:252,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/tls_server.cpp:252,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/cli/tls_server.cpp:255,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/cli/tls_server.cpp:257,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_server.cpp:257,1
    - Dst: front
      Src: /src/botan/src/cli/tls_server.cpp:258,1
    - Dst: pop_front
      Src: /src/botan/src/cli/tls_server.cpp:259,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/cli/tls_server.cpp:260,1
    - Dst: Botan::TLS::Server::close
      Src: /src/botan/src/cli/tls_server.cpp:263,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:267,1
    - Dst: what
      Src: /src/botan/src/cli/tls_server.cpp:267,1
    - Dst: close_socket
      Src: /src/botan/src/cli/tls_server.cpp:269,1
    - Dst: invalid_socket
      Src: /src/botan/src/cli/tls_server.cpp:270,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:275,1
    - Dst: what
      Src: /src/botan/src/cli/tls_server.cpp:275,1
    - Dst: close_socket
      Src: /src/botan/src/cli/tls_server.cpp:279,1
    - Dst: invalid_socket
      Src: /src/botan/src/cli/tls_server.cpp:280,1
    - Dst: close_socket
      Src: /src/botan/src/cli/tls_server.cpp:284,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 285
    functionName: Botan_CLI::TLS_Server::go
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - static_cast<uint32_t>
    - get_arg_u16
    - Botan::TLS::Server::is_closed
    - pop_front
    - load_tls_policy
    - static_cast<char*>
    - Server::move_before_accept
    - empty
    - get_arg_sz
    - std::make_shared<Basic_Credentials_Manager>
    - std::string::empty
    - std::to_string
    - std::move
    - ::recv
    - Botan::cast_uint8_ptr_to_char
    - Botan::TLS::Server::close
    - close_socket
    - static_cast<sendrecv_len_type>
    - Botan::TLS::Server::received_data
    - init
    - std::make_shared<Callbacks>
    - std::string::c_str
    - Botan::TLS::Server::is_active
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - reinterpret_cast<struct sockaddr*>
    - CLI_Error
    - ::recvfrom
    - std::make_unique<std::ofstream>
    - rng_as_shared
    - invalid_socket
    - get_arg
    - err_to_string
    - CLI_Usage_Error
    - what
    - client::handle_connect
    - Botan::TLS::Server::send
    - std::unique_ptr::write
    - Botan_CLI::TLS_Server::make_server_socket
    - front
    - get_arg_maybe
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - output
    - error_output
    - Botan::TLS::detail::AsyncBase::complete_now
    - auto::value
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/cli/tls_server.cpp:293,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/cli/tls_server.cpp:293,1
    - Dst: static_cast<sendrecv_len_type>
      Src: /src/botan/src/cli/tls_server.cpp:293,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/cli/tls_server.cpp:293,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:296,1
    - Dst: err_to_string
      Src: /src/botan/src/cli/tls_server.cpp:296,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/tls_server.cpp:297,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/cli/tls_server.cpp:297,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:298,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/cli/tls_server.cpp:298,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_server.cpp:301,1
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/cli/tls_server.cpp:302,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/cli/tls_server.cpp:302,1
    - Dst: static_cast<sendrecv_len_type>
      Src: /src/botan/src/cli/tls_server.cpp:302,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/cli/tls_server.cpp:302,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:308,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/cli/tls_server.cpp:312,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 315
    functionName: Botan_CLI::TLS_Server::send
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::subspan
    - CLI_Error
    - Botan_Tests::MockChannel::send
    - static_cast<sendrecv_len_type>
    - err_to_string
    - static_cast<size_t>
    - error_output
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void send(std::span<const uint8_t> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/botan/src/cli/tls_server.cpp:317,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_server.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: Botan_CLI::TLS_Server::push_pending_output
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void push_pending_output(std::string line)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Client::close_socket
      Src: /src/botan/src/cli/tls_server.cpp:323,1
    - Dst: invalid_socket
      Src: /src/botan/src/cli/tls_server.cpp:324,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:325,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/cli/tls_server.cpp:329,1
    - Dst: htons
      Src: /src/botan/src/cli/tls_server.cpp:331,1
    - Dst: ::bind
      Src: /src/botan/src/cli/tls_server.cpp:336,1
    - Dst: reinterpret_cast<struct sockaddr*>
      Src: /src/botan/src/cli/tls_server.cpp:336,1
    - Dst: close_socket
      Src: /src/botan/src/cli/tls_server.cpp:337,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:338,1
    - Dst: min
      Src: /src/botan/src/cli/tls_server.cpp:342,1
    - Dst: Server::listen
      Src: /src/botan/src/cli/tls_server.cpp:343,1
    - Dst: close_socket
      Src: /src/botan/src/cli/tls_server.cpp:344,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:345,1
    - Dst: ::setsockopt
      Src: /src/botan/src/cli/tls_server.cpp:350,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/botan/src/cli/tls_server.cpp:353,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:356,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - port
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 361
    functionName: Botan_CLI::TLS_Server::make_server_socket
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 1
    functionsReached:
    - min
    - Server::listen
    - ::setsockopt
    - reinterpret_cast<struct sockaddr*>
    - CLI_Error
    - ::bind
    - close_socket
    - invalid_socket
    - Client::close_socket
    - output
    - reinterpret_cast<const void*>
    - Botan::clear_mem
    - htons
    linkageType: ''
    returnType: socket_type
    signature: socket_type make_server_socket(uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: '& Callbacks::output()'
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Callbacks::output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_server.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: Botan_CLI::Callbacks::send
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 11
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void Callbacks::send(std::span<const uint8_t> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::push_pending_output
      Src: /src/botan/src/cli/tls_server.cpp:381,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_server.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 382
    functionName: Botan_CLI::Callbacks::push_pending_output
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 3
    functionsReached:
    - std::move
    - Botan_CLI::Callbacks::push_pending_output
    linkageType: ''
    returnType: void
    signature: void Callbacks::push_pending_output(std::string line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: '& Callbacks::output()'
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Callbacks::output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_server.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: Botan_CLI::Callbacks::send
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 12
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void Callbacks::send(std::span<const uint8_t> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::push_pending_output
      Src: /src/botan/src/cli/tls_server.cpp:381,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_server.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 382
    functionName: Botan_CLI::Callbacks::push_pending_output
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - Botan_CLI::Callbacks::push_pending_output
    linkageType: ''
    returnType: void
    signature: void Callbacks::push_pending_output(std::string line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' server_command'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan_CLI::Callbacks::Callbacks
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Callbacks(TLS_Server& server_command)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:61,1
    - Dst: version
      Src: /src/botan/src/cli/tls_server.cpp:61,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_server.cpp:62,1
    - Dst: external_psk_identity
      Src: /src/botan/src/cli/tls_server.cpp:64,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: maybe_hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: value
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:68,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_server.cpp:70,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_server.cpp:70,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: get
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: session_ticket
      Src: /src/botan/src/cli/tls_server.cpp:74,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    - Dst: get
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: Botan_CLI::Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - external_psk_identity
    - ciphersuite
    - session_ticket
    - maybe_hex_encode
    - version
    - get
    - output
    - value
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/botan/src/cli/tls_server.cpp:81,1
    - Dst: Botan_CLI::Callbacks::push_pending_output
      Src: /src/botan/src/cli/tls_server.cpp:84,1
    - Dst: std::exchange
      Src: /src/botan/src/cli/tls_server.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: Botan_CLI::Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - static_cast<char>
    - Botan_CLI::Callbacks::push_pending_output
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq_no*/, std::span<const uint8_t>
      input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_server.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:91,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/cli/tls_server.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_CLI::Callbacks::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    - output
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan_CLI::Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      /*client_protos*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fingerprint_public
      Src: /src/botan/src/cli/tls_server.cpp:102,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' raw_public_key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - fingerprint_public
    - output
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Botan::Public_Key& raw_public_key,\n
      \                                    Botan::Usage_Type /* usage */,\n                                     std::string_view
      /* hostname */,\n                                     const Botan::TLS::Policy&
      /* policy */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' server_command'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan_CLI::Callbacks::Callbacks
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Callbacks(TLS_Server& server_command)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:61,1
    - Dst: version
      Src: /src/botan/src/cli/tls_server.cpp:61,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_server.cpp:62,1
    - Dst: external_psk_identity
      Src: /src/botan/src/cli/tls_server.cpp:64,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: maybe_hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: value
      Src: /src/botan/src/cli/tls_server.cpp:65,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:68,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_server.cpp:70,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_server.cpp:70,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: get
      Src: /src/botan/src/cli/tls_server.cpp:71,1
    - Dst: session_ticket
      Src: /src/botan/src/cli/tls_server.cpp:74,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    - Dst: get
      Src: /src/botan/src/cli/tls_server.cpp:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: Botan_CLI::Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - external_psk_identity
    - ciphersuite
    - session_ticket
    - maybe_hex_encode
    - version
    - get
    - output
    - value
    - session_id
    - empty
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/botan/src/cli/tls_server.cpp:81,1
    - Dst: Botan_CLI::Callbacks::push_pending_output
      Src: /src/botan/src/cli/tls_server.cpp:84,1
    - Dst: std::exchange
      Src: /src/botan/src/cli/tls_server.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: Botan_CLI::Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - static_cast<char>
    - Botan_CLI::Callbacks::push_pending_output
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq_no*/, std::span<const uint8_t>
      input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_server.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan_CLI::Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> buf) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:91,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/cli/tls_server.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan_CLI::Callbacks::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    - output
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan_CLI::Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      /*client_protos*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fingerprint_public
      Src: /src/botan/src/cli/tls_server.cpp:102,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' raw_public_key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Callbacks::tls_verify_raw_public_key
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - fingerprint_public
    - output
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Botan::Public_Key& raw_public_key,\n
      \                                    Botan::Usage_Type /* usage */,\n                                     std::string_view
      /* hostname */,\n                                     const Botan::TLS::Policy&
      /* policy */) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_sockets
      Src: /src/botan/src/cli/tls_server.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: Botan_CLI::TLS_Server::TLS_Server
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - init_sockets
    linkageType: ''
    returnType: void
    signature: void TLS_Server()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stop_sockets
      Src: /src/botan/src/cli/tls_server.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: ~TLS_Server() override
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - stop_sockets
    linkageType: ''
    returnType: void
    signature: void ~TLS_Server() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan_CLI::TLS_Server::TLS_Server
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Server(const TLS_Server& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan_CLI::TLS_Server::TLS_Server
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Server(TLS_Server&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: '& operator=(const TLS_Server& other)'
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Server
    signature: TLS_Server & operator=(const TLS_Server& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: '& operator=(TLS_Server&& other)'
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLS_Server
    signature: TLS_Server & operator=(TLS_Server&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan_CLI::TLS_Server::group
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan_CLI::TLS_Server::description
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_server.cpp:140,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_server.cpp:141,1
    - Dst: get_arg_u16
      Src: /src/botan/src/cli/tls_server.cpp:142,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_server.cpp:143,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_server.cpp:144,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_server.cpp:145,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_server.cpp:147,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/cli/tls_server.cpp:149,1
    - Dst: auto::value
      Src: /src/botan/src/cli/tls_server.cpp:149,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_server.cpp:154,1
    - Dst: get_arg_maybe
      Src: /src/botan/src/cli/tls_server.cpp:155,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/tls_server.cpp:158,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_server.cpp:158,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tls_server.cpp:162,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_server.cpp:167,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_server.cpp:167,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_server.cpp:169,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_server.cpp:169,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_server.cpp:171,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_server.cpp:171,1
    - Dst: std::make_shared<Callbacks>
      Src: /src/botan/src/cli/tls_server.cpp:172,1
    - Dst: init
      Src: /src/botan/src/cli/tls_server.cpp:174,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:175,1
    - Dst: Botan_CLI::TLS_Server::make_server_socket
      Src: /src/botan/src/cli/tls_server.cpp:179,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:182,1
    - Dst: Server::move_before_accept
      Src: /src/botan/src/cli/tls_server.cpp:190,1
    - Dst: ::recvfrom
      Src: /src/botan/src/cli/tls_server.cpp:207,1
    - Dst: static_cast<char*>
      Src: /src/botan/src/cli/tls_server.cpp:208,1
    - Dst: static_cast<sendrecv_len_type>
      Src: /src/botan/src/cli/tls_server.cpp:209,1
    - Dst: reinterpret_cast<struct sockaddr*>
      Src: /src/botan/src/cli/tls_server.cpp:211,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:213,1
    - Dst: client::handle_connect
      Src: /src/botan/src/cli/tls_server.cpp:216,1
    - Dst: reinterpret_cast<struct sockaddr*>
      Src: /src/botan/src/cli/tls_server.cpp:216,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:217,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_server.cpp:224,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_server.cpp:228,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/tls_server.cpp:229,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/tls_server.cpp:230,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_server.cpp:231,1
    - Dst: std::make_unique<std::ofstream>
      Src: /src/botan/src/cli/tls_server.cpp:232,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/tls_server.cpp:232,1
    - Dst: Botan::TLS::Server::is_closed
      Src: /src/botan/src/cli/tls_server.cpp:236,1
    - Dst: ::recv
      Src: /src/botan/src/cli/tls_server.cpp:239,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/cli/tls_server.cpp:239,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:242,1
    - Dst: err_to_string
      Src: /src/botan/src/cli/tls_server.cpp:242,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:247,1
    - Dst: std::unique_ptr::write
      Src: /src/botan/src/cli/tls_server.cpp:252,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/tls_server.cpp:252,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/cli/tls_server.cpp:255,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/cli/tls_server.cpp:257,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_server.cpp:257,1
    - Dst: front
      Src: /src/botan/src/cli/tls_server.cpp:258,1
    - Dst: pop_front
      Src: /src/botan/src/cli/tls_server.cpp:259,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/cli/tls_server.cpp:260,1
    - Dst: Botan::TLS::Server::close
      Src: /src/botan/src/cli/tls_server.cpp:263,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:267,1
    - Dst: what
      Src: /src/botan/src/cli/tls_server.cpp:267,1
    - Dst: close_socket
      Src: /src/botan/src/cli/tls_server.cpp:269,1
    - Dst: invalid_socket
      Src: /src/botan/src/cli/tls_server.cpp:270,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:275,1
    - Dst: what
      Src: /src/botan/src/cli/tls_server.cpp:275,1
    - Dst: close_socket
      Src: /src/botan/src/cli/tls_server.cpp:279,1
    - Dst: invalid_socket
      Src: /src/botan/src/cli/tls_server.cpp:280,1
    - Dst: close_socket
      Src: /src/botan/src/cli/tls_server.cpp:284,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 285
    functionName: Botan_CLI::TLS_Server::go
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - static_cast<uint32_t>
    - get_arg_u16
    - Botan::TLS::Server::is_closed
    - pop_front
    - load_tls_policy
    - static_cast<char*>
    - Server::move_before_accept
    - empty
    - get_arg_sz
    - std::make_shared<Basic_Credentials_Manager>
    - std::string::empty
    - std::to_string
    - std::move
    - ::recv
    - Botan::cast_uint8_ptr_to_char
    - Botan::TLS::Server::close
    - close_socket
    - static_cast<sendrecv_len_type>
    - Botan::TLS::Server::received_data
    - init
    - std::make_shared<Callbacks>
    - std::string::c_str
    - Botan::TLS::Server::is_active
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - reinterpret_cast<struct sockaddr*>
    - CLI_Error
    - ::recvfrom
    - std::make_unique<std::ofstream>
    - rng_as_shared
    - invalid_socket
    - get_arg
    - err_to_string
    - CLI_Usage_Error
    - what
    - client::handle_connect
    - Botan::TLS::Server::send
    - std::unique_ptr::write
    - Botan_CLI::TLS_Server::make_server_socket
    - front
    - get_arg_maybe
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - output
    - error_output
    - Botan::TLS::detail::AsyncBase::complete_now
    - auto::value
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/cli/tls_server.cpp:293,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/cli/tls_server.cpp:293,1
    - Dst: static_cast<sendrecv_len_type>
      Src: /src/botan/src/cli/tls_server.cpp:293,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/cli/tls_server.cpp:293,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:296,1
    - Dst: err_to_string
      Src: /src/botan/src/cli/tls_server.cpp:296,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/tls_server.cpp:297,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/cli/tls_server.cpp:297,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_server.cpp:298,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/cli/tls_server.cpp:298,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/cli/tls_server.cpp:301,1
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/cli/tls_server.cpp:302,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/cli/tls_server.cpp:302,1
    - Dst: static_cast<sendrecv_len_type>
      Src: /src/botan/src/cli/tls_server.cpp:302,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/cli/tls_server.cpp:302,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:308,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/cli/tls_server.cpp:312,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 315
    functionName: Botan_CLI::TLS_Server::send
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::subspan
    - CLI_Error
    - Botan_Tests::MockChannel::send
    - static_cast<sendrecv_len_type>
    - err_to_string
    - static_cast<size_t>
    - error_output
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void send(std::span<const uint8_t> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/botan/src/cli/tls_server.cpp:317,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_server.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: Botan_CLI::TLS_Server::push_pending_output
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - emplace_back
    linkageType: ''
    returnType: void
    signature: void push_pending_output(std::string line)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Client::close_socket
      Src: /src/botan/src/cli/tls_server.cpp:323,1
    - Dst: invalid_socket
      Src: /src/botan/src/cli/tls_server.cpp:324,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:325,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/cli/tls_server.cpp:329,1
    - Dst: htons
      Src: /src/botan/src/cli/tls_server.cpp:331,1
    - Dst: ::bind
      Src: /src/botan/src/cli/tls_server.cpp:336,1
    - Dst: reinterpret_cast<struct sockaddr*>
      Src: /src/botan/src/cli/tls_server.cpp:336,1
    - Dst: close_socket
      Src: /src/botan/src/cli/tls_server.cpp:337,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:338,1
    - Dst: min
      Src: /src/botan/src/cli/tls_server.cpp:342,1
    - Dst: Server::listen
      Src: /src/botan/src/cli/tls_server.cpp:343,1
    - Dst: close_socket
      Src: /src/botan/src/cli/tls_server.cpp:344,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_server.cpp:345,1
    - Dst: ::setsockopt
      Src: /src/botan/src/cli/tls_server.cpp:350,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/botan/src/cli/tls_server.cpp:353,1
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:356,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - port
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 361
    functionName: Botan_CLI::TLS_Server::make_server_socket
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 2
    functionsReached:
    - min
    - Server::listen
    - ::setsockopt
    - reinterpret_cast<struct sockaddr*>
    - CLI_Error
    - ::bind
    - close_socket
    - invalid_socket
    - Client::close_socket
    - output
    - reinterpret_cast<const void*>
    - Botan::clear_mem
    - htons
    linkageType: ''
    returnType: socket_type
    signature: socket_type make_server_socket(uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: '& Callbacks::output()'
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Callbacks::output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_server.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: Botan_CLI::Callbacks::send
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 15
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void Callbacks::send(std::span<const uint8_t> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::push_pending_output
      Src: /src/botan/src/cli/tls_server.cpp:381,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_server.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 382
    functionName: Botan_CLI::Callbacks::push_pending_output
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 7
    functionsReached:
    - std::move
    - Botan_CLI::Callbacks::push_pending_output
    linkageType: ''
    returnType: void
    signature: void Callbacks::push_pending_output(std::string line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/cli/tls_server.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: '& Callbacks::output()'
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & Callbacks::output()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::send
      Src: /src/botan/src/cli/tls_server.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: Botan_CLI::Callbacks::send
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 16
    functionsReached:
    - Botan_CLI::Callbacks::send
    linkageType: ''
    returnType: void
    signature: void Callbacks::send(std::span<const uint8_t> buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Callbacks::push_pending_output
      Src: /src/botan/src/cli/tls_server.cpp:381,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_server.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 382
    functionName: Botan_CLI::Callbacks::push_pending_output
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 8
    functionsReached:
    - std::move
    - Botan_CLI::Callbacks::push_pending_output
    linkageType: ''
    returnType: void
    signature: void Callbacks::push_pending_output(std::string line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Timer::Timer
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timer(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - buf_size
    argTypes:
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::Timer::Timer
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timer(std::string_view name, size_t buf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msec
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Botan_CLI::Timer::under
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::value
    linkageType: ''
    returnType: bool
    signature: bool under(uint64_t msec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/timer.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::Timer::Timer_Scope::Timer_Scope
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - start
    linkageType: ''
    returnType: void
    signature: void Timer_Scope(Timer& timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stop
      Src: /src/botan/src/cli/timer.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: ~Timer_Scope()
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - stop
    linkageType: ''
    returnType: void
    signature: void ~Timer_Scope()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer_Scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_CLI::Timer::Timer_Scope::Timer_Scope
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timer_Scope(const Timer_Scope& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer_Scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::Timer::Timer_Scope::Timer_Scope
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timer_Scope(Timer_Scope&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer_Scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& operator=(const Timer_Scope& other)'
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timer_Scope
    signature: Timer_Scope & operator=(const Timer_Scope& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer_Scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '& operator=(Timer_Scope&& other)'
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timer_Scope
    signature: Timer_Scope & operator=(Timer_Scope&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/botan/src/cli/timer.h:58,1
    - Dst: f
      Src: /src/botan/src/cli/timer.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan_CLI::Timer::run
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: auto
    signature: auto run(F f) -> decltype(f())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::under
      Src: /src/botan/src/cli/timer.h:65,1
    - Dst: Botan_CLI::Timer::run
      Src: /src/botan/src/cli/timer.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - msec
    - f
    argTypes:
    - uint64_t
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan_CLI::Timer::run_until_elapsed
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::run
    - Botan_CLI::Timer::under
    linkageType: ''
    returnType: void
    signature: void run_until_elapsed(uint64_t msec, F f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_CLI::Timer::value
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::nanoseconds
      Src: /src/botan/src/cli/timer.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan_CLI::Timer::seconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 24
    functionsReached:
    - Botan_CLI::Timer::nanoseconds
    linkageType: ''
    returnType: double
    signature: double seconds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::nanoseconds
      Src: /src/botan/src/cli/timer.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan_CLI::Timer::milliseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 68
    functionsReached:
    - Botan_CLI::Timer::nanoseconds
    linkageType: ''
    returnType: double
    signature: double milliseconds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::nanoseconds
      Src: /src/botan/src/cli/timer.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan_CLI::Timer::microseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 4
    functionsReached:
    - Botan_CLI::Timer::nanoseconds
    linkageType: ''
    returnType: double
    signature: double microseconds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timer.h:78,1
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_CLI::Timer::nanoseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 5
    functionsReached:
    - static_cast<double>
    - Botan_CLI::Timer::value
    linkageType: ''
    returnType: double
    signature: double nanoseconds() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.h:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: Botan_CLI::Timer::cycles_consumed
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::value
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cycles_consumed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_CLI::Timer::events
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t events() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: '& get_name() const'
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & get_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: '& doing() const'
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & doing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_CLI::Timer::buf_size
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t buf_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::events_per_second
      Src: /src/botan/src/cli/timer.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Timer::bytes_per_second
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::events_per_second
    linkageType: ''
    returnType: double
    signature: double bytes_per_second() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:98,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:98,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timer.h:99,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:99,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: Botan_CLI::Timer::events_per_second
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 1
    functionsReached:
    - Botan_CLI::Timer::seconds
    - Botan_CLI::Timer::events
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double events_per_second() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:106,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:106,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:107,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timer.h:107,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Timer::seconds_per_event
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::seconds
    - Botan_CLI::Timer::events
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double seconds_per_event() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::Timer::Timer
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timer(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - buf_size
    argTypes:
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::Timer::Timer
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timer(std::string_view name, size_t buf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msec
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Botan_CLI::Timer::under
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 1
    functionsReached:
    - Botan_CLI::Timer::value
    linkageType: ''
    returnType: bool
    signature: bool under(uint64_t msec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/timer.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::Timer::Timer_Scope::Timer_Scope
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - start
    linkageType: ''
    returnType: void
    signature: void Timer_Scope(Timer& timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stop
      Src: /src/botan/src/cli/timer.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: ~Timer_Scope()
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - stop
    linkageType: ''
    returnType: void
    signature: void ~Timer_Scope()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer_Scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan_CLI::Timer::Timer_Scope::Timer_Scope
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timer_Scope(const Timer_Scope& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer_Scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::Timer::Timer_Scope::Timer_Scope
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Timer_Scope(Timer_Scope&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer_Scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& operator=(const Timer_Scope& other)'
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timer_Scope
    signature: Timer_Scope & operator=(const Timer_Scope& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer_Scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '& operator=(Timer_Scope&& other)'
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Timer_Scope
    signature: Timer_Scope & operator=(Timer_Scope&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/botan/src/cli/timer.h:58,1
    - Dst: f
      Src: /src/botan/src/cli/timer.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan_CLI::Timer::run
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 1
    functionsReached:
    - f
    linkageType: ''
    returnType: auto
    signature: auto run(F f) -> decltype(f())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::under
      Src: /src/botan/src/cli/timer.h:65,1
    - Dst: Botan_CLI::Timer::run
      Src: /src/botan/src/cli/timer.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - msec
    - f
    argTypes:
    - uint64_t
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan_CLI::Timer::run_until_elapsed
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::run
    - Botan_CLI::Timer::under
    linkageType: ''
    returnType: void
    signature: void run_until_elapsed(uint64_t msec, F f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan_CLI::Timer::value
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::nanoseconds
      Src: /src/botan/src/cli/timer.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan_CLI::Timer::seconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 26
    functionsReached:
    - Botan_CLI::Timer::nanoseconds
    linkageType: ''
    returnType: double
    signature: double seconds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::nanoseconds
      Src: /src/botan/src/cli/timer.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan_CLI::Timer::milliseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 68
    functionsReached:
    - Botan_CLI::Timer::nanoseconds
    linkageType: ''
    returnType: double
    signature: double milliseconds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::nanoseconds
      Src: /src/botan/src/cli/timer.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan_CLI::Timer::microseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 4
    functionsReached:
    - Botan_CLI::Timer::nanoseconds
    linkageType: ''
    returnType: double
    signature: double microseconds() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timer.h:78,1
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan_CLI::Timer::nanoseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 8
    functionsReached:
    - static_cast<double>
    - Botan_CLI::Timer::value
    linkageType: ''
    returnType: double
    signature: double nanoseconds() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.h:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: Botan_CLI::Timer::cycles_consumed
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::value
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cycles_consumed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan_CLI::Timer::events
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t events() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: '& get_name() const'
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & get_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: '& doing() const'
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & doing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan_CLI::Timer::buf_size
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t buf_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::events_per_second
      Src: /src/botan/src/cli/timer.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan_CLI::Timer::bytes_per_second
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::events_per_second
    linkageType: ''
    returnType: double
    signature: double bytes_per_second() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:98,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:98,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timer.h:99,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:99,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: Botan_CLI::Timer::events_per_second
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 2
    functionsReached:
    - Botan_CLI::Timer::seconds
    - Botan_CLI::Timer::events
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double events_per_second() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:106,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:106,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:107,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timer.h:107,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan_CLI::Timer::seconds_per_event
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::seconds
    - Botan_CLI::Timer::events
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double seconds_per_event() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::priv_emptyset
      Src: /src/botan/src/cli/sandbox.cpp:27,1
    - Dst: ::priv_freeset
      Src: /src/botan/src/cli/sandbox.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ps
    argTypes:
    - priv_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: operator()(priv_set_t* ps)
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached:
    - ::priv_freeset
    - ::priv_emptyset
    linkageType: ''
    returnType: void
    signature: void operator()(priv_set_t* ps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan_CLI::sandbox_impl_name
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string sandbox_impl_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan_CLI::sandbox_impl_name
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string sandbox_impl_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sandbox_impl_name
      Src: /src/botan/src/cli/sandbox.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::Sandbox::Sandbox
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached:
    - sandbox_impl_name
    linkageType: ''
    returnType: void
    signature: void Sandbox::Sandbox()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::initialize_allocator
      Src: /src/botan/src/cli/sandbox.cpp:52,1
    - Dst: ::cap_rights_init
      Src: /src/botan/src/cli/sandbox.cpp:57,1
    - Dst: ::cap_rights_init
      Src: /src/botan/src/cli/sandbox.cpp:61,1
    - Dst: ::cap_rights_limit
      Src: /src/botan/src/cli/sandbox.cpp:65,1
    - Dst: ::cap_rights_limit
      Src: /src/botan/src/cli/sandbox.cpp:69,1
    - Dst: ::cap_rights_limit
      Src: /src/botan/src/cli/sandbox.cpp:73,1
    - Dst: ::cap_enter
      Src: /src/botan/src/cli/sandbox.cpp:77,1
    - Dst: ::priv_allocset
      Src: /src/botan/src/cli/sandbox.cpp:88,1
    - Dst: std::unique_ptr<priv_set_t, SandboxPrivDelete>
      Src: /src/botan/src/cli/sandbox.cpp:92,1
    - Dst: ::priv_basicset
      Src: /src/botan/src/cli/sandbox.cpp:93,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/cli/sandbox.cpp:93,1
    - Dst: ::priv_delset
      Src: /src/botan/src/cli/sandbox.cpp:96,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/cli/sandbox.cpp:96,1
    - Dst: ::sandbox_init
      Src: /src/botan/src/cli/sandbox.cpp:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 115
    functionName: Botan_CLI::Sandbox::init
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::get
    - ::cap_rights_init
    - ::sandbox_init
    - ::cap_rights_limit
    - ::priv_allocset
    - ::priv_basicset
    - Botan::initialize_allocator
    - std::unique_ptr<priv_set_t, SandboxPrivDelete>
    - ::cap_enter
    - ::priv_delset
    linkageType: ''
    returnType: bool
    signature: bool Sandbox::init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Sandbox::~Sandbox()
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sandbox::~Sandbox()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::priv_emptyset
      Src: /src/botan/src/cli/sandbox.cpp:27,1
    - Dst: ::priv_freeset
      Src: /src/botan/src/cli/sandbox.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ps
    argTypes:
    - priv_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: operator()(priv_set_t* ps)
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached:
    - ::priv_freeset
    - ::priv_emptyset
    linkageType: ''
    returnType: void
    signature: void operator()(priv_set_t* ps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan_CLI::sandbox_impl_name
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string sandbox_impl_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan_CLI::sandbox_impl_name
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string sandbox_impl_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sandbox_impl_name
      Src: /src/botan/src/cli/sandbox.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan_CLI::Sandbox::Sandbox
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached:
    - sandbox_impl_name
    linkageType: ''
    returnType: void
    signature: void Sandbox::Sandbox()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::initialize_allocator
      Src: /src/botan/src/cli/sandbox.cpp:52,1
    - Dst: ::cap_rights_init
      Src: /src/botan/src/cli/sandbox.cpp:57,1
    - Dst: ::cap_rights_init
      Src: /src/botan/src/cli/sandbox.cpp:61,1
    - Dst: ::cap_rights_limit
      Src: /src/botan/src/cli/sandbox.cpp:65,1
    - Dst: ::cap_rights_limit
      Src: /src/botan/src/cli/sandbox.cpp:69,1
    - Dst: ::cap_rights_limit
      Src: /src/botan/src/cli/sandbox.cpp:73,1
    - Dst: ::cap_enter
      Src: /src/botan/src/cli/sandbox.cpp:77,1
    - Dst: ::priv_allocset
      Src: /src/botan/src/cli/sandbox.cpp:88,1
    - Dst: std::unique_ptr<priv_set_t, SandboxPrivDelete>
      Src: /src/botan/src/cli/sandbox.cpp:92,1
    - Dst: ::priv_basicset
      Src: /src/botan/src/cli/sandbox.cpp:93,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/cli/sandbox.cpp:93,1
    - Dst: ::priv_delset
      Src: /src/botan/src/cli/sandbox.cpp:96,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/cli/sandbox.cpp:96,1
    - Dst: ::sandbox_init
      Src: /src/botan/src/cli/sandbox.cpp:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 115
    functionName: Botan_CLI::Sandbox::init
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::get
    - ::cap_rights_init
    - ::sandbox_init
    - ::cap_rights_limit
    - ::priv_allocset
    - ::priv_basicset
    - Botan::initialize_allocator
    - std::unique_ptr<priv_set_t, SandboxPrivDelete>
    - ::cap_enter
    - ::priv_delset
    linkageType: ''
    returnType: bool
    signature: bool Sandbox::init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Sandbox::~Sandbox()
    functionSourceFile: /src/botan/src/cli/sandbox.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sandbox::~Sandbox()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' vec'
    - ' val'
    argTypes:
    - std::vector<std::string>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: value_exists
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool value_exists(const std::vector<std::string>& vec, const std::string&
      val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_printable_char
      Src: /src/botan/src/cli/tls_helpers.h:44,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_helpers.h:45,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/cli/tls_helpers.h:45,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/cli/tls_helpers.h:45,1
    - Dst: std::string_view::data
      Src: /src/botan/src/cli/tls_helpers.h:45,1
    - Dst: std::string_view::size
      Src: /src/botan/src/cli/tls_helpers.h:45,1
    - Dst: std::string
      Src: /src/botan/src/cli/tls_helpers.h:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: maybe_hex_encode
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 8
    functionsReached:
    - Botan::hex_encode
    - std::string_view::data
    - std::string
    - reinterpret_cast<const uint8_t*>
    - std::span<const uint8_t>
    - is_printable_char
    - std::string_view::size
    linkageType: ''
    returnType: std::string
    signature: std::string maybe_hex_encode(std::string_view v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/tls_helpers.h:56,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/tls_helpers.h:60,1
    - Dst: std::exchange
      Src: /src/botan/src/cli/tls_helpers.h:61,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_helpers.h:61,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/tls_helpers.h:66,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_helpers.h:68,1
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/cli/tls_helpers.h:71,1
    - Dst: Certificate_Info::certs::push_back
      Src: /src/botan/src/cli/tls_helpers.h:73,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/tls_helpers.h:73,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/cli/tls_helpers.h:77,1
    - Dst: Certificate_Info::certs::empty
      Src: /src/botan/src/cli/tls_helpers.h:77,1
    - Dst: push_back
      Src: /src/botan/src/cli/tls_helpers.h:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' cred'
    - ' key'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 82
    functionName: Basic_Credentials_Manager::load_credentials
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - std::exchange
    - std::move
    - Botan::DataSource_Stream::end_of_data
    - Certificate_Info::certs::push_back
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_NONNULL
    - Botan::X509_Certificate
    - Certificate_Info::certs::empty
    - Botan::X509::load_key
    - push_back
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void load_credentials(const std::string& cred, const std::string& key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/cli/tls_helpers.h:92,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_helpers.h:93,1
    - Dst: value_or
      Src: /src/botan/src/cli/tls_helpers.h:98,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_helpers.h:99,1
    - Dst: push_back
      Src: /src/botan/src/cli/tls_helpers.h:100,1
    - Dst: std::make_shared<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/cli/tls_helpers.h:100,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/cli/tls_helpers.h:103,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:103,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:103,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:106,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:106,1
    - Dst: Basic_Credentials_Manager::load_credentials
      Src: /src/botan/src/cli/tls_helpers.h:107,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:107,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:107,1
    - Dst: push_back
      Src: /src/botan/src/cli/tls_helpers.h:112,1
    - Dst: std::make_shared<Botan::System_Certificate_Store>
      Src: /src/botan/src/cli/tls_helpers.h:112,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_helpers.h:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - use_system_store
    - ' ca_path'
    argTypes:
    - bool
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 117
    functionName: Basic_Credentials_Manager::Basic_Credentials_Manager
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - value_or
    - std::move
    - BOTAN_UNUSED
    - std::make_shared<Botan::System_Certificate_Store>
    - has_value
    - std::make_shared<Botan::Certificate_Store_In_Memory>
    - BOTAN_ARG_CHECK
    - Basic_Credentials_Manager::load_credentials
    - empty
    - value
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Basic_Credentials_Manager(bool use_system_store,\n                                const
      std::string& ca_path,\n                                std::optional<std::string>
      client_cred = std::nullopt,\n                                std::optional<std::string>
      client_key = std::nullopt,\n                                std::optional<Botan::secure_vector<uint8_t>>
      psk = std::nullopt,\n                                std::optional<std::string>
      psk_identity = std::nullopt,\n                                const std::optional<std::string>&
      psk_prf = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/cli/tls_helpers.h:124,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_helpers.h:125,1
    - Dst: value_or
      Src: /src/botan/src/cli/tls_helpers.h:130,1
    - Dst: Basic_Credentials_Manager::load_credentials
      Src: /src/botan/src/cli/tls_helpers.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' server_cred'
    - ' server_key'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 132
    functionName: Basic_Credentials_Manager::Basic_Credentials_Manager
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - std::move
    - value_or
    - Basic_Credentials_Manager::load_credentials
    linkageType: ''
    returnType: void
    signature: "void Basic_Credentials_Manager(const std::string& server_cred,\n                                const
      std::string& server_key,\n                                std::optional<Botan::secure_vector<uint8_t>>
      psk = std::nullopt,\n                                std::optional<std::string>
      psk_identity = std::nullopt,\n                                const std::optional<std::string>&
      psk_prf = std::nullopt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tls_helpers.h:144,1
    - Dst: get
      Src: /src/botan/src/cli/tls_helpers.h:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' type'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: Basic_Credentials_Manager::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - get
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Botan::Certificate_Store*>
    signature: "std::vector<Botan::Certificate_Store*> trusted_certificate_authorities(const
      std::string& type,\n                                                                             const
      std::string& /*hostname*/) override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_helpers.h:156,1
    - Dst: issuer_dn
      Src: /src/botan/src/cli/tls_helpers.h:161,1
    - Dst: std::find
      Src: /src/botan/src/cli/tls_helpers.h:168,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_helpers.h:168,1
    - Dst: end
      Src: /src/botan/src/cli/tls_helpers.h:168,1
    - Dst: key::algo_name
      Src: /src/botan/src/cli/tls_helpers.h:168,1
    - Dst: end
      Src: /src/botan/src/cli/tls_helpers.h:168,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_helpers.h:172,1
    - Dst: matches_dns_name
      Src: /src/botan/src/cli/tls_helpers.h:172,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 5
    argNames:
    - ' algos'
    - ' cert_signature_schemes'
    - ' acceptable_cas'
    - ' type'
    - ' hostname'
    argTypes:
    - std::vector<std::string>
    - std::vector<Botan::AlgorithmIdentifier>
    - std::vector<Botan::X509_DN>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 181
    functionName: Basic_Credentials_Manager::find_cert_chain
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - matches_dns_name
    - std::find
    - BOTAN_UNUSED
    - begin
    - issuer_dn
    - empty
    - key::algo_name
    - end
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> find_cert_chain(\n         const
      std::vector<std::string>& algos,\n         const std::vector<Botan::AlgorithmIdentifier>&
      cert_signature_schemes,\n         const std::vector<Botan::X509_DN>& acceptable_cas,\n
      \        const std::string& type,\n         const std::string& hostname) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_helpers.h:186,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_helpers.h:187,1
    - Dst: value_exists
      Src: /src/botan/src/cli/tls_helpers.h:187,1
    - Dst: public_key::algo_name
      Src: /src/botan/src/cli/tls_helpers.h:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' algos'
    - ' type'
    - ' hostname'
    argTypes:
    - std::vector<std::string>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: Basic_Credentials_Manager::find_raw_public_key
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - public_key::algo_name
    - BOTAN_UNUSED
    - value_exists
    - empty
    linkageType: ''
    returnType: std::shared_ptr<Botan::Public_Key>
    signature: "std::shared_ptr<Botan::Public_Key> find_raw_public_key(const std::vector<std::string>&
      algos,\n                                                             const std::string&
      type,\n                                                             const std::string&
      hostname) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - Botan::X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: Basic_Credentials_Manager::private_key_for
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      cert,\n                                                          const std::string&
      /*type*/,\n                                                          const std::string&
      /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key::fingerprint_public
      Src: /src/botan/src/cli/tls_helpers.h:206,1
    - Dst: fingerprint_public
      Src: /src/botan/src/cli/tls_helpers.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' raw_public_key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: Basic_Credentials_Manager::private_key_for
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - fingerprint_public
    - public_key::fingerprint_public
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::Public_Key&
      raw_public_key,\n                                                          const
      std::string& /*type*/,\n                                                          const
      std::string& /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:215,1
    - Dst: Botan::Credentials_Manager::psk_identity
      Src: /src/botan/src/cli/tls_helpers.h:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - ' type'
    - ' context'
    - ' identity_hint'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: Basic_Credentials_Manager::psk_identity
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - Botan::Credentials_Manager::psk_identity
    - value
    linkageType: ''
    returnType: std::string
    signature: "std::string psk_identity(const std::string& type,\n                               const
      std::string& context,\n                               const std::string& identity_hint)
      override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:224,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:224,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/cli/tls_helpers.h:225,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:230,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:230,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_helpers.h:231,1
    - Dst: std::find
      Src: /src/botan/src/cli/tls_helpers.h:231,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_helpers.h:231,1
    - Dst: end
      Src: /src/botan/src/cli/tls_helpers.h:231,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:231,1
    - Dst: end
      Src: /src/botan/src/cli/tls_helpers.h:231,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/cli/tls_helpers.h:234,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:234,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - host
    - peer_type
    argTypes:
    - std::string_view
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 238
    functionName: Basic_Credentials_Manager::find_preshared_keys
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - std::find
    - std::vector::emplace_back
    - has_value
    - begin
    - Botan::Credentials_Manager::find_preshared_keys
    - end
    - value
    - empty
    linkageType: ''
    returnType: std::vector<Botan::TLS::ExternalPSK>
    signature: "std::vector<Botan::TLS::ExternalPSK> find_preshared_keys(\n         std::string_view
      host,\n         Botan::TLS::Connection_Side peer_type,\n         const std::vector<std::string>&
      ids = {},\n         const std::optional<std::string>& prf = std::nullopt) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: TLS_All_Policy::allowed_ciphers
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_ciphers() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: TLS_All_Policy::allowed_key_exchange_methods
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_key_exchange_methods() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: TLS_All_Policy::allowed_signature_methods
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_signature_methods() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: TLS_All_Policy::allow_tls12
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_tls12() const override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/tls_helpers.h:296,1
    - Dst: std::make_shared<Botan::TLS::Policy>
      Src: /src/botan/src/cli/tls_helpers.h:297,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/cli/tls_helpers.h:299,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_192>
      Src: /src/botan/src/cli/tls_helpers.h:301,1
    - Dst: std::make_shared<Botan::TLS::Strict_Policy>
      Src: /src/botan/src/cli/tls_helpers.h:303,1
    - Dst: std::make_shared<Botan::TLS::BSI_TR_02102_2>
      Src: /src/botan/src/cli/tls_helpers.h:305,1
    - Dst: std::make_shared<Botan::TLS::Datagram_Policy>
      Src: /src/botan/src/cli/tls_helpers.h:307,1
    - Dst: std::make_shared<TLS_All_Policy>
      Src: /src/botan/src/cli/tls_helpers.h:309,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/tls_helpers.h:314,1
    - Dst: Botan_CLI::CLI_Usage_Error::CLI_Usage_Error
      Src: /src/botan/src/cli/tls_helpers.h:315,1
    - Dst: std::make_shared<Botan::TLS::Text_Policy>
      Src: /src/botan/src/cli/tls_helpers.h:317,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - ' policy_type'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 318
    functionName: load_tls_policy
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 12
    functionsReached:
    - std::ifstream::good
    - std::make_shared<TLS_All_Policy>
    - Botan_CLI::CLI_Usage_Error::CLI_Usage_Error
    - std::make_shared<Botan::TLS::NSA_Suite_B_192>
    - std::make_shared<Botan::TLS::NSA_Suite_B_128>
    - std::make_shared<Botan::TLS::Policy>
    - std::make_shared<Botan::TLS::Strict_Policy>
    - std::make_shared<Botan::TLS::BSI_TR_02102_2>
    - std::make_shared<Botan::TLS::Datagram_Policy>
    - std::make_shared<Botan::TLS::Text_Policy>
    - empty
    linkageType: ''
    returnType: std::shared_ptr<Botan::TLS::Policy>
    signature: std::shared_ptr<Botan::TLS::Policy> load_tls_policy(const std::string&
      policy_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan_CLI::Compress::Compress
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Compress()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::map::find
      Src: /src/botan/src/cli/compress.cpp:30,1
    - Dst: std::map::contains
      Src: /src/botan/src/cli/compress.cpp:31,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/compress.cpp:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' input_fsname'
    - ' comp_type'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: Botan_CLI::Compress::output_filename
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error_Unsupported
    - std::map::contains
    - std::map::find
    linkageType: ''
    returnType: std::string
    signature: std::string output_filename(const std::string& input_fsname, const
      std::string& comp_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_CLI::Compress::group
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::Compress::description
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/compress.cpp:43,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/compress.cpp:44,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/compress.cpp:45,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/cli/compress.cpp:47,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/compress.cpp:49,1
    - Dst: get_arg
      Src: /src/botan/src/cli/compress.cpp:52,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/compress.cpp:55,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/compress.cpp:56,1
    - Dst: Botan_CLI::Compress::output_filename
      Src: /src/botan/src/cli/compress.cpp:59,1
    - Dst: std::ofstream::good
      Src: /src/botan/src/cli/compress.cpp:61,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/compress.cpp:62,1
    - Dst: auto::start
      Src: /src/botan/src/cli/compress.cpp:67,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/compress.cpp:69,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/compress.cpp:70,1
    - Dst: std::ifstream::read
      Src: /src/botan/src/cli/compress.cpp:71,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/cli/compress.cpp:71,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:71,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:71,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/compress.cpp:72,1
    - Dst: std::ifstream::gcount
      Src: /src/botan/src/cli/compress.cpp:72,1
    - Dst: auto::update
      Src: /src/botan/src/cli/compress.cpp:74,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/compress.cpp:76,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/compress.cpp:76,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:76,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:76,1
    - Dst: Botan::secure_vector::clear
      Src: /src/botan/src/cli/compress.cpp:79,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/compress.cpp:80,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/compress.cpp:81,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/compress.cpp:81,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:81,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:81,1
    - Dst: std::ofstream::close
      Src: /src/botan/src/cli/compress.cpp:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 83
    functionName: Botan_CLI::Compress::go
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached:
    - std::ofstream::good
    - std::ifstream::gcount
    - Botan_CLI::Compress::output_filename
    - CLI_IO_Error
    - Botan::secure_vector::data
    - get_arg_sz
    - auto::start
    - reinterpret_cast<char*>
    - auto::update
    - Botan::secure_vector::clear
    - auto::finish
    - Botan::secure_vector::size
    - std::ofstream::close
    - Botan::Compression_Algorithm::create
    - std::ifstream::good
    - Botan::secure_vector::resize
    - get_arg
    - std::ifstream::read
    - CLI_Error_Unsupported
    - std::ofstream::write
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan_CLI::Decompress::Decompress
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decompress()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_last_of
      Src: /src/botan/src/cli/compress.cpp:93,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/compress.cpp:95,1
    - Dst: substr
      Src: /src/botan/src/cli/compress.cpp:98,1
    - Dst: substr
      Src: /src/botan/src/cli/compress.cpp:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' in_file'
    - ' out_file'
    - ' suffix'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: Botan_CLI::Decompress::parse_extension
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - CLI_Error
    linkageType: ''
    returnType: void
    signature: void parse_extension(const std::string& in_file, std::string& out_file,
      std::string& suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_CLI::Decompress::group
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Decompress::description
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/compress.cpp:107,1
    - Dst: get_arg
      Src: /src/botan/src/cli/compress.cpp:108,1
    - Dst: Botan_CLI::Decompress::parse_extension
      Src: /src/botan/src/cli/compress.cpp:111,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/compress.cpp:115,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/compress.cpp:116,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/cli/compress.cpp:119,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/compress.cpp:122,1
    - Dst: std::ofstream::good
      Src: /src/botan/src/cli/compress.cpp:126,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/compress.cpp:127,1
    - Dst: auto::start
      Src: /src/botan/src/cli/compress.cpp:132,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/compress.cpp:134,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/compress.cpp:135,1
    - Dst: std::ifstream::read
      Src: /src/botan/src/cli/compress.cpp:136,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/cli/compress.cpp:136,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:136,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:136,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/compress.cpp:137,1
    - Dst: std::ifstream::gcount
      Src: /src/botan/src/cli/compress.cpp:137,1
    - Dst: auto::update
      Src: /src/botan/src/cli/compress.cpp:139,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/compress.cpp:141,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/compress.cpp:141,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:141,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:141,1
    - Dst: Botan::secure_vector::clear
      Src: /src/botan/src/cli/compress.cpp:144,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/compress.cpp:145,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/compress.cpp:146,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/compress.cpp:146,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:146,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:146,1
    - Dst: std::ofstream::close
      Src: /src/botan/src/cli/compress.cpp:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 148
    functionName: Botan_CLI::Decompress::go
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached:
    - std::ofstream::good
    - std::ifstream::gcount
    - CLI_IO_Error
    - Botan::secure_vector::data
    - get_arg_sz
    - auto::start
    - reinterpret_cast<char*>
    - auto::update
    - Botan::secure_vector::clear
    - auto::finish
    - Botan::secure_vector::size
    - std::ofstream::close
    - std::ifstream::good
    - Botan::secure_vector::resize
    - get_arg
    - std::ifstream::read
    - Botan_CLI::Decompress::parse_extension
    - Botan::Decompression_Algorithm::create
    - CLI_Error_Unsupported
    - std::ofstream::write
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan_CLI::Compress::Compress
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Compress()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::map::find
      Src: /src/botan/src/cli/compress.cpp:30,1
    - Dst: std::map::contains
      Src: /src/botan/src/cli/compress.cpp:31,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/compress.cpp:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' input_fsname'
    - ' comp_type'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: Botan_CLI::Compress::output_filename
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 1
    functionsReached:
    - CLI_Error_Unsupported
    - std::map::contains
    - std::map::find
    linkageType: ''
    returnType: std::string
    signature: std::string output_filename(const std::string& input_fsname, const
      std::string& comp_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan_CLI::Compress::group
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan_CLI::Compress::description
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/compress.cpp:43,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/compress.cpp:44,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/compress.cpp:45,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/cli/compress.cpp:47,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/compress.cpp:49,1
    - Dst: get_arg
      Src: /src/botan/src/cli/compress.cpp:52,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/compress.cpp:55,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/compress.cpp:56,1
    - Dst: Botan_CLI::Compress::output_filename
      Src: /src/botan/src/cli/compress.cpp:59,1
    - Dst: std::ofstream::good
      Src: /src/botan/src/cli/compress.cpp:61,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/compress.cpp:62,1
    - Dst: auto::start
      Src: /src/botan/src/cli/compress.cpp:67,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/compress.cpp:69,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/compress.cpp:70,1
    - Dst: std::ifstream::read
      Src: /src/botan/src/cli/compress.cpp:71,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/cli/compress.cpp:71,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:71,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:71,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/compress.cpp:72,1
    - Dst: std::ifstream::gcount
      Src: /src/botan/src/cli/compress.cpp:72,1
    - Dst: auto::update
      Src: /src/botan/src/cli/compress.cpp:74,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/compress.cpp:76,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/compress.cpp:76,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:76,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:76,1
    - Dst: Botan::secure_vector::clear
      Src: /src/botan/src/cli/compress.cpp:79,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/compress.cpp:80,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/compress.cpp:81,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/compress.cpp:81,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:81,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:81,1
    - Dst: std::ofstream::close
      Src: /src/botan/src/cli/compress.cpp:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 83
    functionName: Botan_CLI::Compress::go
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached:
    - std::ofstream::good
    - std::ifstream::gcount
    - Botan_CLI::Compress::output_filename
    - CLI_IO_Error
    - Botan::secure_vector::data
    - get_arg_sz
    - auto::start
    - reinterpret_cast<char*>
    - auto::update
    - Botan::secure_vector::clear
    - auto::finish
    - Botan::secure_vector::size
    - std::ofstream::close
    - Botan::Compression_Algorithm::create
    - std::ifstream::good
    - Botan::secure_vector::resize
    - get_arg
    - std::ifstream::read
    - CLI_Error_Unsupported
    - std::ofstream::write
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan_CLI::Decompress::Decompress
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decompress()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_last_of
      Src: /src/botan/src/cli/compress.cpp:93,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/compress.cpp:95,1
    - Dst: substr
      Src: /src/botan/src/cli/compress.cpp:98,1
    - Dst: substr
      Src: /src/botan/src/cli/compress.cpp:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' in_file'
    - ' out_file'
    - ' suffix'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: Botan_CLI::Decompress::parse_extension
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 1
    functionsReached:
    - find_last_of
    - substr
    - CLI_Error
    linkageType: ''
    returnType: void
    signature: void parse_extension(const std::string& in_file, std::string& out_file,
      std::string& suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan_CLI::Decompress::group
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Decompress::description
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/compress.cpp:107,1
    - Dst: get_arg
      Src: /src/botan/src/cli/compress.cpp:108,1
    - Dst: Botan_CLI::Decompress::parse_extension
      Src: /src/botan/src/cli/compress.cpp:111,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/compress.cpp:115,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/compress.cpp:116,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/cli/compress.cpp:119,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/compress.cpp:122,1
    - Dst: std::ofstream::good
      Src: /src/botan/src/cli/compress.cpp:126,1
    - Dst: CLI_IO_Error
      Src: /src/botan/src/cli/compress.cpp:127,1
    - Dst: auto::start
      Src: /src/botan/src/cli/compress.cpp:132,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/compress.cpp:134,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/compress.cpp:135,1
    - Dst: std::ifstream::read
      Src: /src/botan/src/cli/compress.cpp:136,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/cli/compress.cpp:136,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:136,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:136,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/compress.cpp:137,1
    - Dst: std::ifstream::gcount
      Src: /src/botan/src/cli/compress.cpp:137,1
    - Dst: auto::update
      Src: /src/botan/src/cli/compress.cpp:139,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/compress.cpp:141,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/compress.cpp:141,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:141,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:141,1
    - Dst: Botan::secure_vector::clear
      Src: /src/botan/src/cli/compress.cpp:144,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/compress.cpp:145,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/compress.cpp:146,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/compress.cpp:146,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/compress.cpp:146,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/compress.cpp:146,1
    - Dst: std::ofstream::close
      Src: /src/botan/src/cli/compress.cpp:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 148
    functionName: Botan_CLI::Decompress::go
    functionSourceFile: /src/botan/src/cli/compress.cpp
    functionUses: 0
    functionsReached:
    - std::ofstream::good
    - std::ifstream::gcount
    - CLI_IO_Error
    - Botan::secure_vector::data
    - get_arg_sz
    - auto::start
    - reinterpret_cast<char*>
    - auto::update
    - Botan::secure_vector::clear
    - auto::finish
    - Botan::secure_vector::size
    - std::ofstream::close
    - std::ifstream::good
    - Botan::secure_vector::resize
    - get_arg
    - std::ifstream::read
    - Botan_CLI::Decompress::parse_extension
    - Botan::Decompression_Algorithm::create
    - CLI_Error_Unsupported
    - std::ofstream::write
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::PerfTest_PKKa::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKKa::algo
      Src: /src/botan/src/cli/perf_pk_ka.cpp:28,1
    - Dst: Botan_CLI::PerfTest_PKKa::keygen_params
      Src: /src/botan/src/cli/perf_pk_ka.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PKKa::format_name
      Src: /src/botan/src/cli/perf_pk_ka.cpp:33,1
    - Dst: Botan_CLI::PerfTest_PKKa::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_ka.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: Botan_CLI::PerfTest_PKKa::go
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKKa::algo
    - Botan_CLI::PerfTest_PKKa::keygen_params
    - Botan_CLI::PerfTest_PKKa::bench_pk_ka
    - Botan_CLI::PerfTest_PKKa::format_name
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_ka.cpp:43,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:47,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_ka.cpp:49,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:51,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:51,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:56,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:59,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:61,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:62,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:67,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:68,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:70,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:72,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:73,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:73,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:74,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:74,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_ka.cpp:77,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 83
    functionName: Botan_CLI::PerfTest_PKKa::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 1
    functionsReached:
    - public_value
    - runtime
    - Botan::PK_Key_Agreement::derive_key
    - make_timer
    - record_result
    - auto::under
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - dynamic_cast<const Botan::PK_Key_Agreement_Key&>
    linkageType: ''
    returnType: void
    signature: "void bench_pk_ka(const PerfConfig& config,\n                              const
      std::string& nm,\n                              const std::string& algo,\n                              const
      std::string& params,\n                              const std::string& provider
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::PerfTest_DH::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: Botan_CLI::PerfTest_DH::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: Botan_CLI::PerfTest_DH::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_CLI::PerfTest_ECDH::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_ka.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_CLI::PerfTest_ECDH::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan_CLI::PerfTest_X25519::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan_CLI::PerfTest_X448::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::PerfTest_PKKa::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKKa::algo
      Src: /src/botan/src/cli/perf_pk_ka.cpp:28,1
    - Dst: Botan_CLI::PerfTest_PKKa::keygen_params
      Src: /src/botan/src/cli/perf_pk_ka.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PKKa::format_name
      Src: /src/botan/src/cli/perf_pk_ka.cpp:33,1
    - Dst: Botan_CLI::PerfTest_PKKa::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_ka.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: Botan_CLI::PerfTest_PKKa::go
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKKa::algo
    - Botan_CLI::PerfTest_PKKa::keygen_params
    - Botan_CLI::PerfTest_PKKa::bench_pk_ka
    - Botan_CLI::PerfTest_PKKa::format_name
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_ka.cpp:43,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:47,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_ka.cpp:49,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:51,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:51,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:56,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:59,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:61,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:62,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:67,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:68,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:70,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:72,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:73,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:73,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:74,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:74,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_ka.cpp:77,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 83
    functionName: Botan_CLI::PerfTest_PKKa::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 2
    functionsReached:
    - public_value
    - runtime
    - Botan::PK_Key_Agreement::derive_key
    - make_timer
    - record_result
    - auto::under
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - dynamic_cast<const Botan::PK_Key_Agreement_Key&>
    linkageType: ''
    returnType: void
    signature: "void bench_pk_ka(const PerfConfig& config,\n                              const
      std::string& nm,\n                              const std::string& algo,\n                              const
      std::string& params,\n                              const std::string& provider
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::PerfTest_DH::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: Botan_CLI::PerfTest_DH::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: Botan_CLI::PerfTest_DH::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_CLI::PerfTest_ECDH::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_ka.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_CLI::PerfTest_ECDH::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan_CLI::PerfTest_X25519::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan_CLI::PerfTest_X448::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::PerfTest_PKKa::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKKa::algo
      Src: /src/botan/src/cli/perf_pk_ka.cpp:28,1
    - Dst: Botan_CLI::PerfTest_PKKa::keygen_params
      Src: /src/botan/src/cli/perf_pk_ka.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PKKa::format_name
      Src: /src/botan/src/cli/perf_pk_ka.cpp:33,1
    - Dst: Botan_CLI::PerfTest_PKKa::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_ka.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: Botan_CLI::PerfTest_PKKa::go
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKKa::algo
    - Botan_CLI::PerfTest_PKKa::keygen_params
    - Botan_CLI::PerfTest_PKKa::bench_pk_ka
    - Botan_CLI::PerfTest_PKKa::format_name
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_ka.cpp:43,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:47,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_ka.cpp:49,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:51,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:51,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:56,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:59,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:61,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:62,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:67,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:68,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:70,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:72,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:73,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:73,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:74,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:74,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_ka.cpp:77,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 83
    functionName: Botan_CLI::PerfTest_PKKa::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 3
    functionsReached:
    - public_value
    - runtime
    - Botan::PK_Key_Agreement::derive_key
    - make_timer
    - record_result
    - auto::under
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - dynamic_cast<const Botan::PK_Key_Agreement_Key&>
    linkageType: ''
    returnType: void
    signature: "void bench_pk_ka(const PerfConfig& config,\n                              const
      std::string& nm,\n                              const std::string& algo,\n                              const
      std::string& params,\n                              const std::string& provider
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::PerfTest_DH::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: Botan_CLI::PerfTest_DH::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: Botan_CLI::PerfTest_DH::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_CLI::PerfTest_ECDH::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_ka.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_CLI::PerfTest_ECDH::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan_CLI::PerfTest_X25519::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan_CLI::PerfTest_X448::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan_CLI::PerfTest_PKKa::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_PKKa::algo
      Src: /src/botan/src/cli/perf_pk_ka.cpp:28,1
    - Dst: Botan_CLI::PerfTest_PKKa::keygen_params
      Src: /src/botan/src/cli/perf_pk_ka.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PKKa::format_name
      Src: /src/botan/src/cli/perf_pk_ka.cpp:33,1
    - Dst: Botan_CLI::PerfTest_PKKa::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_ka.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: Botan_CLI::PerfTest_PKKa::go
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKKa::algo
    - Botan_CLI::PerfTest_PKKa::keygen_params
    - Botan_CLI::PerfTest_PKKa::bench_pk_ka
    - Botan_CLI::PerfTest_PKKa::format_name
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_ka.cpp:43,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:47,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_ka.cpp:49,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:51,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:51,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:52,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:56,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:56,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:59,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:61,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:62,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:67,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:68,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:70,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:72,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:73,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:73,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:74,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:74,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_ka.cpp:77,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ' config'
    - ' nm'
    - ' algo'
    - ' params'
    argTypes:
    - PerfConfig
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 83
    functionName: Botan_CLI::PerfTest_PKKa::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 4
    functionsReached:
    - public_value
    - runtime
    - Botan::PK_Key_Agreement::derive_key
    - make_timer
    - record_result
    - auto::under
    - error_output
    - Botan::create_private_key
    - rng
    - auto::run
    - dynamic_cast<const Botan::PK_Key_Agreement_Key&>
    linkageType: ''
    returnType: void
    signature: "void bench_pk_ka(const PerfConfig& config,\n                              const
      std::string& nm,\n                              const std::string& algo,\n                              const
      std::string& params,\n                              const std::string& provider
      = \"\")"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan_CLI::PerfTest_DH::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: Botan_CLI::PerfTest_DH::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& /*config*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_ka.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: Botan_CLI::PerfTest_DH::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - find_last_of
    - substr
    - Botan::fmt
    linkageType: ''
    returnType: std::string
    signature: std::string format_name(const std::string& alg, const std::string&
      param) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan_CLI::PerfTest_ECDH::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_ka.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan_CLI::PerfTest_ECDH::keygen_params
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - ecc_groups
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> keygen_params(const PerfConfig& config) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan_CLI::PerfTest_X25519::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan_CLI::PerfTest_X448::algo
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PK_Encrypt::PK_Encrypt
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::PK_Encrypt::group
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_CLI::PK_Encrypt::description
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pk_crypt.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:34,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:36,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pk_crypt.cpp:39,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:40,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:44,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/cli/pk_crypt.cpp:46,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:49,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/pk_crypt.cpp:52,1
    - Dst: Botan::OID::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:53,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:54,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/cli/pk_crypt.cpp:58,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/cli/pk_crypt.cpp:58,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pk_crypt.cpp:59,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:59,1
    - Dst: Botan::AlgorithmIdentifier::BER_encode
      Src: /src/botan/src/cli/pk_crypt.cpp:62,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:64,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:66,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/cli/pk_crypt.cpp:66,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/cli/pk_crypt.cpp:68,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:68,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:70,1
    - Dst: std::unique_ptr::default_nonce_length
      Src: /src/botan/src/cli/pk_crypt.cpp:70,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/pk_crypt.cpp:71,1
    - Dst: std::unique_ptr::set_associated_data
      Src: /src/botan/src/cli/pk_crypt.cpp:72,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/cli/pk_crypt.cpp:73,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/cli/pk_crypt.cpp:75,1
    - Dst: Botan::DER_Encoder::start_sequence
      Src: /src/botan/src/cli/pk_crypt.cpp:80,1
    - Dst: output
      Src: /src/botan/src/cli/pk_crypt.cpp:88,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/cli/pk_crypt.cpp:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 89
    functionName: Botan_CLI::PK_Encrypt::go
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - Botan::AlgorithmIdentifier::BER_encode
    - Botan::PEM_Code::encode
    - std::unique_ptr::key_spec
    - Botan::DER_Encoder::start_sequence
    - std::unique_ptr::finish
    - Botan::secure_vector::insert
    - Botan::OID::empty
    - std::unique_ptr::set_associated_data
    - Botan::secure_vector::end
    - CLI_Error
    - Botan::AEAD_Mode::create
    - get_arg
    - Botan::OID::from_string
    - Botan::PK_Encryptor_EME::encrypt
    - CLI_Usage_Error
    - std::unique_ptr::default_nonce_length
    - std::unique_ptr::start
    - std::unique_ptr::set_key
    - auto::algo_name
    - output
    - rng
    - Botan::X509::load_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PK_Decrypt::PK_Decrypt
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::PK_Decrypt::group
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_CLI::PK_Decrypt::description
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:103,1
    - Dst: get_passphrase
      Src: /src/botan/src/cli/pk_crypt.cpp:104,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pk_crypt.cpp:105,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:108,1
    - Dst: std::unique_ptr::algo_name
      Src: /src/botan/src/cli/pk_crypt.cpp:111,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:112,1
    - Dst: Botan::AlgorithmIdentifier::AlgorithmIdentifier
      Src: /src/botan/src/cli/pk_crypt.cpp:118,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/cli/pk_crypt.cpp:119,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:122,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/cli/pk_crypt.cpp:124,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/cli/pk_crypt.cpp:124,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:133,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:134,1
    - Dst: Botan::OID::human_name_or_empty
      Src: /src/botan/src/cli/pk_crypt.cpp:137,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:138,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:139,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:140,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:143,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/pk_crypt.cpp:143,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:144,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:145,1
    - Dst: Botan::AlgorithmIdentifier::AlgorithmIdentifier
      Src: /src/botan/src/cli/pk_crypt.cpp:148,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/cli/pk_crypt.cpp:149,1
    - Dst: Botan::AlgorithmIdentifier::parameters
      Src: /src/botan/src/cli/pk_crypt.cpp:149,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:151,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:153,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:154,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:154,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:155,1
    - Dst: Botan::AlgorithmIdentifier::parameters
      Src: /src/botan/src/cli/pk_crypt.cpp:158,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:159,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:160,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/cli/pk_crypt.cpp:164,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/cli/pk_crypt.cpp:166,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:168,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/pk_crypt.cpp:173,1
    - Dst: std::unique_ptr::set_associated_data
      Src: /src/botan/src/cli/pk_crypt.cpp:174,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/cli/pk_crypt.cpp:175,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/cli/pk_crypt.cpp:178,1
    - Dst: write_output
      Src: /src/botan/src/cli/pk_crypt.cpp:180,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:182,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:183,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PK_Decrypt::go
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached:
    - write_output
    - std::unique_ptr::algo_name
    - std::unique_ptr::key_spec
    - Botan::OID::human_name_or_empty
    - std::unique_ptr::finish
    - Botan::OID::OID
    - std::string::empty
    - Botan::AlgorithmIdentifier::oid
    - get_passphrase
    - std::vector::size
    - std::unique_ptr::set_associated_data
    - CLI_Error
    - set_return_code
    - get_arg
    - Botan::OID::from_string
    - CLI_Usage_Error
    - Botan::PEM_Code::decode_check_label
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PKCS8::load_key
    - Botan::AlgorithmIdentifier::parameters
    - std::vector::data
    - Botan::AlgorithmIdentifier::AlgorithmIdentifier
    - std::unique_ptr::start
    - Botan::AEAD_Mode::create_or_throw
    - std::unique_ptr::set_key
    - Botan::BER_Decoder
    - error_output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PK_Encrypt::PK_Encrypt
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::PK_Encrypt::group
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_CLI::PK_Encrypt::description
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pk_crypt.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:34,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:36,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pk_crypt.cpp:39,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:40,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:44,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/cli/pk_crypt.cpp:46,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:49,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/pk_crypt.cpp:52,1
    - Dst: Botan::OID::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:53,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:54,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/cli/pk_crypt.cpp:58,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/cli/pk_crypt.cpp:58,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pk_crypt.cpp:59,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:59,1
    - Dst: Botan::AlgorithmIdentifier::BER_encode
      Src: /src/botan/src/cli/pk_crypt.cpp:62,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:64,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:66,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/cli/pk_crypt.cpp:66,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/cli/pk_crypt.cpp:68,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:68,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:70,1
    - Dst: std::unique_ptr::default_nonce_length
      Src: /src/botan/src/cli/pk_crypt.cpp:70,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/pk_crypt.cpp:71,1
    - Dst: std::unique_ptr::set_associated_data
      Src: /src/botan/src/cli/pk_crypt.cpp:72,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/cli/pk_crypt.cpp:73,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/cli/pk_crypt.cpp:75,1
    - Dst: Botan::DER_Encoder::start_sequence
      Src: /src/botan/src/cli/pk_crypt.cpp:80,1
    - Dst: output
      Src: /src/botan/src/cli/pk_crypt.cpp:88,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/cli/pk_crypt.cpp:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 89
    functionName: Botan_CLI::PK_Encrypt::go
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - Botan::AlgorithmIdentifier::BER_encode
    - Botan::PEM_Code::encode
    - std::unique_ptr::key_spec
    - Botan::DER_Encoder::start_sequence
    - std::unique_ptr::finish
    - Botan::secure_vector::insert
    - Botan::OID::empty
    - std::unique_ptr::set_associated_data
    - Botan::secure_vector::end
    - CLI_Error
    - Botan::AEAD_Mode::create
    - get_arg
    - Botan::OID::from_string
    - Botan::PK_Encryptor_EME::encrypt
    - CLI_Usage_Error
    - std::unique_ptr::default_nonce_length
    - std::unique_ptr::start
    - std::unique_ptr::set_key
    - auto::algo_name
    - output
    - rng
    - Botan::X509::load_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PK_Decrypt::PK_Decrypt
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::PK_Decrypt::group
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_CLI::PK_Decrypt::description
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:103,1
    - Dst: get_passphrase
      Src: /src/botan/src/cli/pk_crypt.cpp:104,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pk_crypt.cpp:105,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:108,1
    - Dst: std::unique_ptr::algo_name
      Src: /src/botan/src/cli/pk_crypt.cpp:111,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:112,1
    - Dst: Botan::AlgorithmIdentifier::AlgorithmIdentifier
      Src: /src/botan/src/cli/pk_crypt.cpp:118,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/cli/pk_crypt.cpp:119,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:122,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/cli/pk_crypt.cpp:124,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/cli/pk_crypt.cpp:124,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:133,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:134,1
    - Dst: Botan::OID::human_name_or_empty
      Src: /src/botan/src/cli/pk_crypt.cpp:137,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:138,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:139,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:140,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:143,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/pk_crypt.cpp:143,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:144,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:145,1
    - Dst: Botan::AlgorithmIdentifier::AlgorithmIdentifier
      Src: /src/botan/src/cli/pk_crypt.cpp:148,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/cli/pk_crypt.cpp:149,1
    - Dst: Botan::AlgorithmIdentifier::parameters
      Src: /src/botan/src/cli/pk_crypt.cpp:149,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:151,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:153,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:154,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:154,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:155,1
    - Dst: Botan::AlgorithmIdentifier::parameters
      Src: /src/botan/src/cli/pk_crypt.cpp:158,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:159,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:160,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/cli/pk_crypt.cpp:164,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/cli/pk_crypt.cpp:166,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:168,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/pk_crypt.cpp:173,1
    - Dst: std::unique_ptr::set_associated_data
      Src: /src/botan/src/cli/pk_crypt.cpp:174,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/cli/pk_crypt.cpp:175,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/cli/pk_crypt.cpp:178,1
    - Dst: write_output
      Src: /src/botan/src/cli/pk_crypt.cpp:180,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:182,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:183,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PK_Decrypt::go
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached:
    - write_output
    - std::unique_ptr::algo_name
    - std::unique_ptr::key_spec
    - Botan::OID::human_name_or_empty
    - std::unique_ptr::finish
    - Botan::OID::OID
    - std::string::empty
    - Botan::AlgorithmIdentifier::oid
    - get_passphrase
    - std::vector::size
    - std::unique_ptr::set_associated_data
    - CLI_Error
    - set_return_code
    - get_arg
    - Botan::OID::from_string
    - CLI_Usage_Error
    - Botan::PEM_Code::decode_check_label
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PKCS8::load_key
    - Botan::AlgorithmIdentifier::parameters
    - std::vector::data
    - Botan::AlgorithmIdentifier::AlgorithmIdentifier
    - std::unique_ptr::start
    - Botan::AEAD_Mode::create_or_throw
    - std::unique_ptr::set_key
    - Botan::BER_Decoder
    - error_output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PK_Encrypt::PK_Encrypt
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::PK_Encrypt::group
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_CLI::PK_Encrypt::description
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pk_crypt.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:34,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:36,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pk_crypt.cpp:39,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:40,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:44,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/cli/pk_crypt.cpp:46,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:49,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/pk_crypt.cpp:52,1
    - Dst: Botan::OID::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:53,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:54,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/cli/pk_crypt.cpp:58,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/cli/pk_crypt.cpp:58,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pk_crypt.cpp:59,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:59,1
    - Dst: Botan::AlgorithmIdentifier::BER_encode
      Src: /src/botan/src/cli/pk_crypt.cpp:62,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:64,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:66,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/cli/pk_crypt.cpp:66,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/cli/pk_crypt.cpp:68,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:68,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:70,1
    - Dst: std::unique_ptr::default_nonce_length
      Src: /src/botan/src/cli/pk_crypt.cpp:70,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/pk_crypt.cpp:71,1
    - Dst: std::unique_ptr::set_associated_data
      Src: /src/botan/src/cli/pk_crypt.cpp:72,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/cli/pk_crypt.cpp:73,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/cli/pk_crypt.cpp:75,1
    - Dst: Botan::DER_Encoder::start_sequence
      Src: /src/botan/src/cli/pk_crypt.cpp:80,1
    - Dst: output
      Src: /src/botan/src/cli/pk_crypt.cpp:88,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/cli/pk_crypt.cpp:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 89
    functionName: Botan_CLI::PK_Encrypt::go
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - Botan::AlgorithmIdentifier::BER_encode
    - Botan::PEM_Code::encode
    - std::unique_ptr::key_spec
    - Botan::DER_Encoder::start_sequence
    - std::unique_ptr::finish
    - Botan::secure_vector::insert
    - Botan::OID::empty
    - std::unique_ptr::set_associated_data
    - Botan::secure_vector::end
    - CLI_Error
    - Botan::AEAD_Mode::create
    - get_arg
    - Botan::OID::from_string
    - Botan::PK_Encryptor_EME::encrypt
    - CLI_Usage_Error
    - std::unique_ptr::default_nonce_length
    - std::unique_ptr::start
    - std::unique_ptr::set_key
    - auto::algo_name
    - output
    - rng
    - Botan::X509::load_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PK_Decrypt::PK_Decrypt
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::PK_Decrypt::group
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_CLI::PK_Decrypt::description
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:103,1
    - Dst: get_passphrase
      Src: /src/botan/src/cli/pk_crypt.cpp:104,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pk_crypt.cpp:105,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:108,1
    - Dst: std::unique_ptr::algo_name
      Src: /src/botan/src/cli/pk_crypt.cpp:111,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:112,1
    - Dst: Botan::AlgorithmIdentifier::AlgorithmIdentifier
      Src: /src/botan/src/cli/pk_crypt.cpp:118,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/cli/pk_crypt.cpp:119,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:122,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/cli/pk_crypt.cpp:124,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/cli/pk_crypt.cpp:124,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:133,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:134,1
    - Dst: Botan::OID::human_name_or_empty
      Src: /src/botan/src/cli/pk_crypt.cpp:137,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:138,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:139,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:140,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:143,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/pk_crypt.cpp:143,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:144,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:145,1
    - Dst: Botan::AlgorithmIdentifier::AlgorithmIdentifier
      Src: /src/botan/src/cli/pk_crypt.cpp:148,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/cli/pk_crypt.cpp:149,1
    - Dst: Botan::AlgorithmIdentifier::parameters
      Src: /src/botan/src/cli/pk_crypt.cpp:149,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:151,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:153,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:154,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:154,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:155,1
    - Dst: Botan::AlgorithmIdentifier::parameters
      Src: /src/botan/src/cli/pk_crypt.cpp:158,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:159,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:160,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/cli/pk_crypt.cpp:164,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/cli/pk_crypt.cpp:166,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:168,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/pk_crypt.cpp:173,1
    - Dst: std::unique_ptr::set_associated_data
      Src: /src/botan/src/cli/pk_crypt.cpp:174,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/cli/pk_crypt.cpp:175,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/cli/pk_crypt.cpp:178,1
    - Dst: write_output
      Src: /src/botan/src/cli/pk_crypt.cpp:180,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:182,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:183,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PK_Decrypt::go
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached:
    - write_output
    - std::unique_ptr::algo_name
    - std::unique_ptr::key_spec
    - Botan::OID::human_name_or_empty
    - std::unique_ptr::finish
    - Botan::OID::OID
    - std::string::empty
    - Botan::AlgorithmIdentifier::oid
    - get_passphrase
    - std::vector::size
    - std::unique_ptr::set_associated_data
    - CLI_Error
    - set_return_code
    - get_arg
    - Botan::OID::from_string
    - CLI_Usage_Error
    - Botan::PEM_Code::decode_check_label
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PKCS8::load_key
    - Botan::AlgorithmIdentifier::parameters
    - std::vector::data
    - Botan::AlgorithmIdentifier::AlgorithmIdentifier
    - std::unique_ptr::start
    - Botan::AEAD_Mode::create_or_throw
    - std::unique_ptr::set_key
    - Botan::BER_Decoder
    - error_output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan_CLI::PK_Encrypt::PK_Encrypt
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan_CLI::PK_Encrypt::group
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan_CLI::PK_Encrypt::description
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pk_crypt.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:34,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:36,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pk_crypt.cpp:39,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:40,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:44,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/cli/pk_crypt.cpp:46,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:49,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/pk_crypt.cpp:52,1
    - Dst: Botan::OID::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:53,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:54,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/cli/pk_crypt.cpp:58,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/cli/pk_crypt.cpp:58,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pk_crypt.cpp:59,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:59,1
    - Dst: Botan::AlgorithmIdentifier::BER_encode
      Src: /src/botan/src/cli/pk_crypt.cpp:62,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:64,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:66,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/cli/pk_crypt.cpp:66,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/cli/pk_crypt.cpp:68,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:68,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:70,1
    - Dst: std::unique_ptr::default_nonce_length
      Src: /src/botan/src/cli/pk_crypt.cpp:70,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/pk_crypt.cpp:71,1
    - Dst: std::unique_ptr::set_associated_data
      Src: /src/botan/src/cli/pk_crypt.cpp:72,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/cli/pk_crypt.cpp:73,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/cli/pk_crypt.cpp:75,1
    - Dst: Botan::DER_Encoder::start_sequence
      Src: /src/botan/src/cli/pk_crypt.cpp:80,1
    - Dst: output
      Src: /src/botan/src/cli/pk_crypt.cpp:88,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/cli/pk_crypt.cpp:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 89
    functionName: Botan_CLI::PK_Encrypt::go
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - Botan::AlgorithmIdentifier::BER_encode
    - Botan::PEM_Code::encode
    - std::unique_ptr::key_spec
    - Botan::DER_Encoder::start_sequence
    - std::unique_ptr::finish
    - Botan::secure_vector::insert
    - Botan::OID::empty
    - std::unique_ptr::set_associated_data
    - Botan::secure_vector::end
    - CLI_Error
    - Botan::AEAD_Mode::create
    - get_arg
    - Botan::OID::from_string
    - Botan::PK_Encryptor_EME::encrypt
    - CLI_Usage_Error
    - std::unique_ptr::default_nonce_length
    - std::unique_ptr::start
    - std::unique_ptr::set_key
    - auto::algo_name
    - output
    - rng
    - Botan::X509::load_key
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan_CLI::PK_Decrypt::PK_Decrypt
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan_CLI::PK_Decrypt::group
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string group() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan_CLI::PK_Decrypt::description
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string description() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:103,1
    - Dst: get_passphrase
      Src: /src/botan/src/cli/pk_crypt.cpp:104,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pk_crypt.cpp:105,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:108,1
    - Dst: std::unique_ptr::algo_name
      Src: /src/botan/src/cli/pk_crypt.cpp:111,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pk_crypt.cpp:112,1
    - Dst: Botan::AlgorithmIdentifier::AlgorithmIdentifier
      Src: /src/botan/src/cli/pk_crypt.cpp:118,1
    - Dst: Botan::OID::OID
      Src: /src/botan/src/cli/pk_crypt.cpp:119,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pk_crypt.cpp:122,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/cli/pk_crypt.cpp:124,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/cli/pk_crypt.cpp:124,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:133,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:134,1
    - Dst: Botan::OID::human_name_or_empty
      Src: /src/botan/src/cli/pk_crypt.cpp:137,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:138,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:139,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:140,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:143,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/pk_crypt.cpp:143,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:144,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:145,1
    - Dst: Botan::AlgorithmIdentifier::AlgorithmIdentifier
      Src: /src/botan/src/cli/pk_crypt.cpp:148,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/cli/pk_crypt.cpp:149,1
    - Dst: Botan::AlgorithmIdentifier::parameters
      Src: /src/botan/src/cli/pk_crypt.cpp:149,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:151,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pk_crypt.cpp:153,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:154,1
    - Dst: Botan::AlgorithmIdentifier::oid
      Src: /src/botan/src/cli/pk_crypt.cpp:154,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:155,1
    - Dst: Botan::AlgorithmIdentifier::parameters
      Src: /src/botan/src/cli/pk_crypt.cpp:158,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:159,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:160,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/cli/pk_crypt.cpp:164,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/cli/pk_crypt.cpp:166,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:168,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: rng
      Src: /src/botan/src/cli/pk_crypt.cpp:171,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/pk_crypt.cpp:173,1
    - Dst: std::unique_ptr::set_associated_data
      Src: /src/botan/src/cli/pk_crypt.cpp:174,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/cli/pk_crypt.cpp:175,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/cli/pk_crypt.cpp:178,1
    - Dst: write_output
      Src: /src/botan/src/cli/pk_crypt.cpp:180,1
    - Dst: error_output
      Src: /src/botan/src/cli/pk_crypt.cpp:182,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/pk_crypt.cpp:183,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 185
    functionName: Botan_CLI::PK_Decrypt::go
    functionSourceFile: /src/botan/src/cli/pk_crypt.cpp
    functionUses: 0
    functionsReached:
    - write_output
    - std::unique_ptr::algo_name
    - std::unique_ptr::key_spec
    - Botan::OID::human_name_or_empty
    - std::unique_ptr::finish
    - Botan::OID::OID
    - std::string::empty
    - Botan::AlgorithmIdentifier::oid
    - get_passphrase
    - std::vector::size
    - std::unique_ptr::set_associated_data
    - CLI_Error
    - set_return_code
    - get_arg
    - Botan::OID::from_string
    - CLI_Usage_Error
    - Botan::PEM_Code::decode_check_label
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PKCS8::load_key
    - Botan::AlgorithmIdentifier::parameters
    - std::vector::data
    - Botan::AlgorithmIdentifier::AlgorithmIdentifier
    - std::unique_ptr::start
    - Botan::AEAD_Mode::create_or_throw
    - std::unique_ptr::set_key
    - Botan::BER_Decoder
    - error_output
    - rng
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: shim_output
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int shim_output(const std::string& s, int rc = 0)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ::getenv
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:72,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:77,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:78,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:84,1
    - Dst: std::ofstream::is_open
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:86,1
    - Dst: std::ofstream::good
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:86,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:87,1
    - Dst: std::chrono::duration_cast<std::chrono::duration<double>>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:88,1
    - Dst: std::setprecision
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:90,1
    - Dst: auto::count
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 93
    functionName: shim_log
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - std::setprecision
    - auto::count
    - std::ofstream::is_open
    - auto::empty
    - std::ofstream::good
    - ::getenv
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::duration<double>>
    linkageType: ''
    returnType: void
    signature: void shim_log(std::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:96,1
    - Dst: std::exit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: shim_exit_with_error
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - shim_log
    - std::exit
    linkageType: ''
    returnType: void
    signature: void shim_exit_with_error(const std::string& s, int rc = 1) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:102,1
    - Dst: std::unordered_map::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:352,1
    - Dst: std::unordered_map::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 358
    functionName: map_to_bogo_error
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::unordered_map::find
    - shim_log
    - std::unordered_map::end
    linkageType: ''
    returnType: std::string
    signature: std::string map_to_bogo_error(const std::string& e) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: Shim_Exception::Shim_Exception
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Shim_Exception(std::string_view msg, int rc = 1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: Shim_Exception::what
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char * what() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: Shim_Exception::rc
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rc() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 380
    functionName: Shim_Socket::close_socket
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    linkageType: ''
    returnType: void
    signature: void close_socket(socket_type s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::strerror
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 382
    functionName: Shim_Socket::get_last_socket_error
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - ::strerror
    linkageType: ''
    returnType: std::string
    signature: std::string get_last_socket_error()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:397,1
    - Dst: ::getaddrinfo
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:400,1
    - Dst: c_str
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:400,1
    - Dst: std::string::c_str
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:400,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:400,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:402,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:405,1
    - Dst: unique_addr_info_ptr::get
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:408,1
    - Dst: Client::close_socket
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:413,1
    - Dst: client::handle_connect
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:420,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:423,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:429,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 3
    argNames:
    - ' hostname'
    - port
    - ipv6
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 431
    functionName: Shim_Socket::Shim_Socket
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - c_str
    - std::to_string
    - ::getaddrinfo
    - shim_log
    - unique_addr_info_ptr::get
    - Client::close_socket
    - client::handle_connect
    - std::string::c_str
    - Shim_Exception
    - Botan::out_ptr
    linkageType: ''
    returnType: void
    signature: void Shim_Socket(const std::string& hostname, int port, const bool
      ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: Shim_Socket::Shim_Socket
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Shim_Socket(const Shim_Socket&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 434
    functionName: '& operator=(const Shim_Socket&)'
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Shim_Socket
    signature: Shim_Socket & operator=(const Shim_Socket&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 436
    functionName: Shim_Socket::Shim_Socket
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Shim_Socket(Shim_Socket&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: '& operator=(Shim_Socket&&)'
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Shim_Socket
    signature: Shim_Socket & operator=(Shim_Socket&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: ~Shim_Socket()
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    linkageType: ''
    returnType: void
    signature: void ~Shim_Socket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:446,1
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:452,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:452,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:457,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 463
    functionName: Shim_Socket::write
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::MockChannel::send
    - Botan::cast_uint8_ptr_to_char
    - Shim_Exception
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void write(const uint8_t buf[], size_t len) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:467,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:469,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:469,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:475,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:475,1
    - Dst: strerror
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:475,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 479
    functionName: Shim_Socket::read
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 7
    functionsReached:
    - std::string
    - Shim_Socket::read
    - Botan::cast_uint8_ptr_to_char
    - static_cast<size_t>
    - strerror
    - Shim_Exception
    linkageType: ''
    returnType: size_t
    signature: size_t read(uint8_t buf[], size_t len) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:483,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:487,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:487,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:490,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:492,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:492,1
    - Dst: strerror
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:492,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:495,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 498
    functionName: Shim_Socket::read_exactly
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Shim_Socket::read
    - Botan::cast_uint8_ptr_to_char
    - static_cast<size_t>
    - strerror
    - Shim_Exception
    linkageType: ''
    returnType: void
    signature: void read_exactly(uint8_t buf[], size_t len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:513,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:516,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:519,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - std::set<std::string>
    - std::set<std::string>
    - std::set<std::string>
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 526
    functionName: combine_options
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: "std::set<std::string> combine_options(const std::set<std::string>&
      a,\n                                      const std::set<std::string>& b,\n
      \                                     const std::set<std::string>& c,\n                                      const
      std::set<std::string>& d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: combine_options
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' flags'
    - ' string_opts'
    - ' base64_opts'
    - ' int_opts'
    - ' int_vec_opts'
    argTypes:
    - std::set<std::string>
    - std::set<std::string>
    - std::set<std::string>
    - std::set<std::string>
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 540
    functionName: Shim_Arguments::Shim_Arguments
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - combine_options
    linkageType: ''
    returnType: void
    signature: "void Shim_Arguments(const std::set<std::string>& flags,\n                     const
      std::set<std::string>& string_opts,\n                     const std::set<std::string>&
      base64_opts,\n                     const std::set<std::string>& int_opts,\n
      \                    const std::set<std::string>& int_vec_opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:545,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:546,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' flag'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 550
    functionName: Shim_Arguments::flag_set
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Exception
    - contains
    linkageType: ''
    returnType: bool
    signature: bool flag_set(const std::string& flag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Arguments::get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 552
    functionName: Shim_Arguments::test_name
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::get_string_opt
    linkageType: ''
    returnType: std::string
    signature: std::string test_name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:555,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:556,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 559
    functionName: Shim_Arguments::get_string_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - Shim_Exception
    - Shim_Arguments::get_opt
    - contains
    linkageType: ''
    returnType: std::string
    signature: std::string get_string_opt(const std::string& key) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:562,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:563,1
    - Dst: Shim_Arguments::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:565,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ' def'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 569
    functionName: Shim_Arguments::get_string_opt_or_else
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::option_used
    - Shim_Exception
    - Shim_Arguments::get_opt
    - contains
    linkageType: ''
    returnType: std::string
    signature: std::string get_string_opt_or_else(const std::string& key, const std::string&
      def) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:572,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:573,1
    - Dst: Botan::unlock
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:575,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:575,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 576
    functionName: Shim_Arguments::get_b64_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::unlock
    - contains
    - Shim_Arguments::get_opt
    - Botan::base64_decode
    - Shim_Exception
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_b64_opt(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:579,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:580,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:582,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 583
    functionName: Shim_Arguments::get_int_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - Shim_Exception
    - Shim_Arguments::get_opt
    - contains
    linkageType: ''
    returnType: size_t
    signature: size_t get_int_opt(const std::string& key) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:586,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:587,1
    - Dst: Shim_Arguments::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:589,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:593,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - def
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 594
    functionName: Shim_Arguments::get_int_opt_or_else
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - contains
    - Botan::to_u32bit
    - Shim_Arguments::option_used
    - Shim_Arguments::get_opt
    - Shim_Exception
    linkageType: ''
    returnType: size_t
    signature: size_t get_int_opt_or_else(const std::string& key, size_t def) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:597,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:598,1
    - Dst: find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:601,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:602,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 607
    functionName: Shim_Arguments::get_int_vec_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::vector<size_t>
    - find
    - contains
    - Shim_Exception
    - end
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> get_int_vec_opt(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Arguments::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:613,1
    - Dst: Botan::split_on
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:614,1
    - Dst: Shim_Arguments::get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:614,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' option'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 618
    functionName: Shim_Arguments::get_alpn_string_vec_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::option_used
    - Shim_Arguments::get_string_opt
    - Botan::split_on
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> get_alpn_string_vec_opt(const std::string&
      option) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:621,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:622,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:624,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 631
    functionName: Shim_Arguments::option_used
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 3
    functionsReached:
    - Shim_Exception
    - contains
    linkageType: ''
    returnType: bool
    signature: bool option_used(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:635,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:636,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 640
    functionName: Shim_Arguments::get_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 5
    functionsReached:
    - Shim_Exception
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string get_opt(const std::string& key) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::string::starts_with
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:660,1
    - Dst: std::string::substr
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:661,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:663,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:664,1
    - Dst: insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:665,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:667,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:669,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:672,1
    - Dst: Botan::fmt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:672,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:674,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:675,1
    - Dst: push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:676,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:682,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:683,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:686,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:687,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 690
    functionName: Shim_Arguments::parse_args
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - contains
    - std::string::substr
    - std::string::starts_with
    - shim_log
    - Botan::to_u32bit
    - insert
    - Shim_Exception
    - push_back
    linkageType: ''
    returnType: void
    signature: void Shim_Arguments::parse_args(char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Arguments::Shim_Arguments
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:869,1
    - Dst: std::unique_ptr::parse_args
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 876
    functionName: parse_options
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parse_args
    - Shim_Arguments::Shim_Arguments
    linkageType: ''
    returnType: std::unique_ptr<Shim_Arguments>
    signature: std::unique_ptr<Shim_Arguments> parse_options(char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Shim_Arguments
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 880
    functionName: Shim_Policy::Shim_Policy
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Shim_Policy(const Shim_Arguments& args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 882
    functionName: Shim_Policy::incr_session_established
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void incr_session_established()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:911,1
    - Dst: std::string::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:918,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:921,1
    - Dst: Botan::concat
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:925,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 884
    functionDepth: 3
    functionLinenumber: 884
    functionLinenumberEnd: 926
    functionName: Shim_Policy::allowed_ciphers
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt_or_else
    - Botan::concat
    - std::string::empty
    - shim_exit_with_error
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_ciphers() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:929,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:931,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:933,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:934,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:934,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:937,1
    - Dst: Botan::TLS::Signature_Scheme::hash_function_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:937,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:940,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:941,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 947
    functionName: Shim_Policy::allowed_signature_hashes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::push_back
    - option_used
    - flag_set
    - shim_log
    - get_int_vec_opt
    - Botan::TLS::Signature_Scheme::hash_function_name
    - Botan::TLS::Signature_Scheme::is_available
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_signature_hashes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 957
    functionName: Shim_Policy::allowed_signature_methods
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_signature_methods() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:960,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:962,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:963,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:963,1
    - Dst: Shim_Policy::acceptable_signature_schemes
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 970
    functionName: Shim_Policy::acceptable_signature_schemes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - option_used
    - std::vector::emplace_back
    - static_cast<uint16_t>
    - Shim_Policy::acceptable_signature_schemes
    - get_int_vec_opt
    linkageType: ''
    returnType: std::vector<Botan::TLS::Signature_Scheme>
    signature: std::vector<Botan::TLS::Signature_Scheme> acceptable_signature_schemes()
      const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:973,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:975,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:976,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:976,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:986,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:987,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:988,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:989,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:995,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 972
    functionDepth: 2
    functionLinenumber: 972
    functionLinenumberEnd: 996
    functionName: Shim_Policy::allowed_signature_schemes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - std::vector::emplace_back
    - flag_set
    - Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    - static_cast<uint16_t>
    - get_int_vec_opt
    linkageType: ''
    returnType: std::vector<Botan::TLS::Signature_Scheme>
    signature: std::vector<Botan::TLS::Signature_Scheme> allowed_signature_schemes()
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1000
    functionName: Shim_Policy::require_cert_revocation_info
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool require_cert_revocation_info() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1003,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1008,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1010,1
    - Dst: static_cast<Botan::TLS::Group_Params>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1011,1
    - Dst: std::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1012,1
    - Dst: auto::cbegin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1012,1
    - Dst: auto::cend
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1012,1
    - Dst: auto::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1012,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1013,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1021
    functionName: Shim_Policy::key_exchange_groups
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - std::find
    - static_cast<Botan::TLS::Group_Params>
    - option_used
    - std::vector::push_back
    - auto::cend
    - get_int_vec_opt
    - Shim_Policy::key_exchange_groups
    - auto::cbegin
    - auto::end
    linkageType: ''
    returnType: std::vector<Botan::TLS::Group_Params>
    signature: std::vector<Botan::TLS::Group_Params> key_exchange_groups() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1023
    functionName: Shim_Policy::use_ecc_point_compression
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool use_ecc_point_compression() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1028,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1032,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' supported_by_peer'
    - ' offered_by_peer'
    argTypes:
    - std::vector<Botan::TLS::Group_Params>
    - std::vector<Botan::TLS::Group_Params>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1040
    functionName: Shim_Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Shim_Policy::key_exchange_groups
    - Botan::value_exists
    linkageType: ''
    returnType: Botan::TLS::Group_Params
    signature: "Botan::TLS::Group_Params choose_key_exchange_group(\n         const
      std::vector<Botan::TLS::Group_Params>& supported_by_peer,\n         const std::vector<Botan::TLS::Group_Params>&
      offered_by_peer) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1044
    functionName: Shim_Policy::require_client_certificate_authentication
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: bool
    signature: bool require_client_certificate_authentication() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1047,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1047,1
    - Dst: Shim_Policy::require_client_certificate_authentication
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1049
    functionName: Shim_Policy::request_client_certificate_authentication
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - Shim_Policy::require_client_certificate_authentication
    linkageType: ''
    returnType: bool
    signature: bool request_client_certificate_authentication() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1051
    functionName: Shim_Policy::allow_insecure_renegotiation
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: bool
    signature: bool allow_insecure_renegotiation() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1056,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1060,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1065
    functionName: Shim_Policy::allow_client_initiated_renegotiation
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: bool
    signature: bool allow_client_initiated_renegotiation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Policy::allow_client_initiated_renegotiation
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1069
    functionName: Shim_Policy::allow_server_initiated_renegotiation
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::allow_client_initiated_renegotiation
    linkageType: ''
    returnType: bool
    signature: bool allow_server_initiated_renegotiation() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1072,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1073,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1073,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1080,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1081,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1081,1
    - Dst: Botan::TLS::Protocol_Version::known_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1088,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1089
    functionName: Shim_Policy::allow_version
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - Botan::TLS::Protocol_Version::known_version
    - static_cast<uint16_t>
    - get_int_opt
    linkageType: ''
    returnType: bool
    signature: bool allow_version(Botan::TLS::Protocol_Version version) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1092,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1092,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1094
    functionName: Shim_Policy::allow_tls12
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - Shim_Policy::allow_version
    linkageType: ''
    returnType: bool
    signature: bool allow_tls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1097,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1097,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1099
    functionName: Shim_Policy::allow_tls13
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - Shim_Policy::allow_version
    linkageType: ''
    returnType: bool
    signature: bool allow_tls13() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1102,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1102,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1101
    functionDepth: 2
    functionLinenumber: 1101
    functionLinenumberEnd: 1104
    functionName: Shim_Policy::allow_dtls12
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - Shim_Policy::allow_version
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1110
    functionName: Shim_Policy::minimum_ecdsa_group_size
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_ecdsa_group_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1112
    functionName: Shim_Policy::minimum_ecdh_group_size
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_ecdh_group_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1126
    functionName: Shim_Policy::new_session_tickets_upon_handshake_success
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: size_t
    signature: size_t new_session_tickets_upon_handshake_success() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1129,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1130,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1142
    functionName: Shim_Policy::srtp_profiles
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - get_string_opt
    - shim_exit_with_error
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> srtp_profiles() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1144
    functionName: Shim_Policy::only_resume_with_exact_version
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool only_resume_with_exact_version() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1151,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1152,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1155,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1163
    functionName: Shim_Policy::support_cert_status_message
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - flag_set
    linkageType: ''
    returnType: bool
    signature: bool support_cert_status_message() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1167
    functionName: Shim_Policy::dtls_default_mtu
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_int_opt_or_else
    linkageType: ''
    returnType: size_t
    signature: size_t dtls_default_mtu() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1175
    functionName: Shim_Policy::abort_connection_on_undesired_renegotiation
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: bool
    signature: bool abort_connection_on_undesired_renegotiation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1177
    functionName: Shim_Policy::maximum_certificate_chain_size
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_int_opt_or_else
    linkageType: ''
    returnType: size_t
    signature: size_t maximum_certificate_chain_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1193,1
    - Dst: test_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1194
    functionName: Shim_Policy::tls_13_middlebox_compatibility_mode
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::value_exists
    - test_name
    linkageType: ''
    returnType: bool
    signature: bool tls_13_middlebox_compatibility_mode() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1204,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1217,1
    - Dst: auto::valid
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1218,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1219,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1221,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1221,1
    - Dst: Botan::TLS::Ciphersuite::all_known_ciphersuites
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1225,1
    - Dst: auto::rbegin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1228,1
    - Dst: auto::rend
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1228,1
    - Dst: auto::valid
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1231,1
    - Dst: auto::usable_in_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1231,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1232,1
    - Dst: Shim_Policy::allowed_ciphers
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1232,1
    - Dst: auto::cipher_algo
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1232,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1235,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1201
    functionDepth: 4
    functionLinenumber: 1201
    functionLinenumberEnd: 1241
    functionName: Shim_Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt_or_else
    - auto::rend
    - auto::usable_in_version
    - std::vector::push_back
    - auto::valid
    - auto::rbegin
    - auto::ciphersuite_code
    - shim_exit_with_error
    - auto::cipher_algo
    - Botan::value_exists
    - Botan::TLS::Ciphersuite::all_known_ciphersuites
    - Botan::TLS::Ciphersuite::from_name
    - Shim_Policy::allowed_ciphers
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> Shim_Policy::ciphersuite_list(Botan::TLS::Protocol_Version
      version) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1246,1
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1247,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1249,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1249,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1255,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1256,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1256,1
    - Dst: auto::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1256,1
    - Dst: auto::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1256,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1259,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1259,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1260,1
    - Dst: reset
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1261,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1261,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1263,1
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1265,1
    - Dst: push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1267,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1267,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1272,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1272,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1273,1
    - Dst: add_certificate
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1275,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1275,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1277,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1277,1
    - Dst: what
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1277,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Shim_Arguments
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1280
    functionName: Shim_Credentials::Shim_Credentials
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt_or_else
    - reset
    - std::string
    - auto::data
    - auto::size
    - reinterpret_cast<const uint8_t*>
    - option_used
    - Botan::DataSource_Stream::end_of_data
    - auto::empty
    - Botan::SymmetricKey
    - Botan::X509_Certificate
    - what
    - get_string_opt
    - add_certificate
    - Shim_Exception
    - push_back
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void Shim_Credentials(const Shim_Arguments& args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1284,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1285,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1287,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1288,1
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1291,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1293,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1297
    functionName: Shim_Credentials::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt_or_else
    - flag_set
    - Shim_Exception
    linkageType: ''
    returnType: std::vector<Botan::Certificate_Store*>
    signature: "std::vector<Botan::Certificate_Store*> trusted_certificate_authorities(const
      std::string& type,\n                                                                             const
      std::string& context) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1303
    functionName: Shim_Credentials::psk_identity
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: "std::string psk_identity(const std::string& /*type*/,\n                               const
      std::string& /*context*/,\n                               const std::string&
      /*identity_hint*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1307
    functionName: Shim_Credentials::psk_identity_hint
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: std::string psk_identity_hint(const std::string& /*type*/, const std::string&
      /*context*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1311
    functionName: Shim_Credentials::session_ticket_key
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1315
    functionName: Shim_Credentials::dtls_cookie_secret
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> dtls_cookie_secret() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1322,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1323,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1327,1
    - Dst: std::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1327,1
    - Dst: begin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1327,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1327,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1327,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1330,1
    - Dst: has_value
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1333,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1334,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1345,1
    - Dst: value
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1345,1
    - Dst: bits_of
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - host
    - whoami
    argTypes:
    - std::string_view
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1347
    functionName: Shim_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - std::vector::emplace_back
    - begin
    - bits_of
    - Botan::Credentials_Manager::find_preshared_keys
    - end
    - value
    - empty
    - Shim_Exception
    - has_value
    linkageType: ''
    returnType: std::vector<Botan::TLS::ExternalPSK>
    signature: "std::vector<Botan::TLS::ExternalPSK> find_preshared_keys(\n         std::string_view
      host,\n         Botan::TLS::Connection_Side whoami,\n         const std::vector<std::string>&
      identities = {},\n         const std::optional<std::string>& prf = std::nullopt)
      override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1354,1
    - Dst: std::runtime_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1355,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1358,1
    - Dst: algo_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' cert_key_types'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1367
    functionName: Shim_Credentials::cert_chain
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - algo_name
    - empty
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> cert_chain(\n         const std::vector<std::string>&
      cert_key_types,\n         const std::vector<Botan::AlgorithmIdentifier>& /*cert_signature_schemes*/,\n
      \        const std::string& /*type*/,\n         const std::string& /*context*/)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1374
    functionName: Shim_Credentials::private_key_for
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      /*cert*/,\n                                                          const std::string&
      /*type*/,\n                                                          const std::string&
      /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' args'
    - ' socket'
    - ' policy'
    argTypes:
    - Shim_Arguments
    - Shim_Socket
    - Shim_Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1398
    functionName: Shim_Callbacks::Shim_Callbacks
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: void
    signature: void Shim_Callbacks(const Shim_Arguments& args, Shim_Socket& socket,
      Shim_Policy& policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1400
    functionName: Shim_Callbacks::sessions_established
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sessions_established() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - channel
    argTypes:
    - Botan::TLS::Channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1402
    functionName: Shim_Callbacks::set_channel
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_channel(Botan::TLS::Channel* channel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clock_skew
    argTypes:
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1404
    functionName: Shim_Callbacks::set_clock_skew
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_clock_skew(std::chrono::seconds clock_skew)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1406
    functionName: Shim_Callbacks::saw_close_notify
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool saw_close_notify() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1409,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1409,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1409,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1411,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1413,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1417,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1421,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1421,1
    - Dst: std::memcpy
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1423,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1423,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1423,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1423,1
    - Dst: write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1425,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1425,1
    - Dst: std::vector::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1425,1
    - Dst: write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1427,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1427,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1408
    functionDepth: 2
    functionLinenumber: 1408
    functionLinenumberEnd: 1429
    functionName: Shim_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::to_string
    - option_used
    - std::span<const uint8_t>::data
    - shim_log
    - std::vector::data
    - write
    - std::memcpy
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> data) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1433,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1433,1
    - Dst: std::runtime_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1434,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1437,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1441,1
    - Dst: get_b64_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1442,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1446
    functionName: Shim_Callbacks::tls_provide_cert_status
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - flag_set
    - get_b64_opt
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_provide_cert_status(const std::vector<Botan::X509_Certificate>&
      /*certs*/,\n                                                   const Botan::TLS::Certificate_Status_Request&
      /*status*/) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1449,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1452,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1458,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1458,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1458,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1460,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1460,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1448
    functionDepth: 3
    functionLinenumber: 1448
    functionLinenumberEnd: 1466
    functionName: Shim_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - send
    - shim_log
    - shim_exit_with_error
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq_no*/, std::span<const uint8_t>
      data) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1473,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1475,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1475,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1477,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1478,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1478,1
    - Dst: Botan::TLS::Signature_Scheme::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1479,1
    - Dst: Botan::TLS::Signature_Scheme::padding_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1482,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1484,1
    - Dst: Botan::fmt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1484,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ' key'
    - padding
    - format
    - ' msg'
    - ' sig'
    argTypes:
    - Botan::Public_Key
    - std::string_view
    - Botan::Signature_Format
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1468
    functionDepth: 3
    functionLinenumber: 1468
    functionLinenumberEnd: 1489
    functionName: Shim_Callbacks::tls_verify_message
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    - std::string
    - Botan::fmt
    - option_used
    - Botan::TLS::Signature_Scheme::padding_string
    - static_cast<uint16_t>
    - shim_exit_with_error
    - get_int_opt
    - Botan::TLS::Signature_Scheme::to_string
    - Botan::TLS::Signature_Scheme::is_available
    linkageType: ''
    returnType: bool
    signature: "bool tls_verify_message(const Botan::Public_Key& key,\n                              std::string_view
      padding,\n                              Botan::Signature_Format format,\n                              const
      std::vector<uint8_t>& msg,\n                              const std::vector<uint8_t>&
      sig) override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1497,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1497,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1498,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1499,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1503,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1505,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1509,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1512,1
    - Dst: front
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1512,1
    - Dst: certificate_known
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1514,1
    - Dst: front
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1514,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1515,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1521,1
    - Dst: Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1523,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 5
    argNames:
    - ' cert_chain'
    - ' ocsp_responses'
    - ' trusted_roots'
    - usage
    - ' policy'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    - std::vector<std::optional<Botan::OCSP::Response>>
    - std::vector<Botan::Certificate_Store*>
    - Botan::Usage_Type
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1491
    functionDepth: 2
    functionLinenumber: 1491
    functionLinenumberEnd: 1525
    functionName: Shim_Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - certificate_known
    - front
    - Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
    - flag_set
    - shim_log
    - TLS_Exception
    - empty
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      ocsp_responses,\n                                 const std::vector<Botan::Certificate_Store*>&
      trusted_roots,\n                                 Botan::Usage_Type usage,\n
      \                                std::string_view /* hostname */,\n                                 const
      Botan::TLS::Policy& policy) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1528,1
    - Dst: get_b64_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1528,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' raw_response'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1527
    functionDepth: 3
    functionLinenumber: 1527
    functionLinenumberEnd: 1535
    functionName: Shim_Callbacks::tls_parse_ocsp_response
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - get_b64_opt
    - shim_exit_with_error
    linkageType: ''
    returnType: std::optional<Botan::OCSP::Response>
    signature: std::optional<Botan::OCSP::Response> tls_parse_ocsp_response(const
      std::vector<uint8_t>& raw_response) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1541,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1549,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1550,1
    - Dst: remove_extension
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' exts'
    - msg_type
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1558
    functionName: Shim_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - get_string_opt
    - remove_extension
    linkageType: ''
    returnType: void
    signature: "void tls_modify_extensions(Botan::TLS::Extensions& exts,\n                                 Botan::TLS::Connection_Side
      /* side */,\n                                 Botan::TLS::Handshake_Type msg_type)
      override"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1561,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1565,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1566,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1570,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1574,1
    - Dst: get_alpn_string_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1575,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1578,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1582,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1583,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1560
    functionDepth: 3
    functionLinenumber: 1560
    functionLinenumberEnd: 1587
    functionName: Shim_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_alpn_string_vec_opt
    - option_used
    - flag_set
    - shim_exit_with_error
    - TLS_Exception
    - get_string_opt
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      client_protos) override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert::is_fatal
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1590,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1591,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1591,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1593,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1593,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1596,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1597,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1600,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1601,1
    - Dst: Botan::TLS::Alert::is_fatal
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1604,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1607,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1611,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1612,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1613,1
    - Dst: send_alert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1614,1
    - Dst: Botan::TLS::Alert::is_fatal
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1617,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1618,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1618,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1589
    functionDepth: 3
    functionLinenumber: 1589
    functionLinenumberEnd: 1620
    functionName: Shim_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - send_alert
    - Botan::TLS::Alert::is_fatal
    - flag_set
    - shim_log
    - shim_exit_with_error
    - Botan::TLS::Alert::type
    - Botan::TLS::Alert::type_string
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1623,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1623,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1623,1
    - Dst: version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1624,1
    - Dst: ciphersuite
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1624,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1625,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1625,1
    - Dst: incr_session_established
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1628,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1631,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1633,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1633,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1634,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1636,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1636,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1637,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1640,1
    - Dst: version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1641,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1641,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1642,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1646,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1647,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1648,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1650,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1651,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1652,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1656,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1657,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1658,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1622
    functionDepth: 3
    functionLinenumber: 1622
    functionLinenumberEnd: 1661
    functionName: Shim_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::string
    - ciphersuite
    - secure_renegotiation_supported
    - option_used
    - version
    - shim_log
    - flag_set
    - shim_exit_with_error
    - get_int_opt
    - session_id
    - supports_extended_master_secret
    - incr_session_established
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1664,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1665,1
    - Dst: get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1669,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1670,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1671,1
    - Dst: key_material_export
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1672,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1673,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1673,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1674,1
    - Dst: auto::bits_of
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1674,1
    - Dst: application_protocol
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1677,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1679,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1680,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1681,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1685,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1686,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1689,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1690,1
    - Dst: close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1691,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1694,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1700,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1700,1
    - Dst: close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1703,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1706,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1707,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1710,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1711,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1714,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1715,1
    - Dst: update_traffic_keys
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1716,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1663
    functionDepth: 3
    functionLinenumber: 1663
    functionLinenumberEnd: 1718
    functionName: Shim_Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - key_material_export
    - send_fatal_alert
    - application_protocol
    - close
    - update_traffic_keys
    - std::to_string
    - send
    - option_used
    - flag_set
    - shim_log
    - shim_exit_with_error
    - std::vector::data
    - TLS_Exception
    - get_int_opt_or_else
    - auto::bits_of
    - get_string_opt
    - Shim_Exception
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::floor<sec>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1725,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1727
    functionName: Shim_Callbacks::tls_current_timestamp
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::floor<sec>
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point tls_current_timestamp() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1729
    functionDepth: 0
    functionLinenumber: 1729
    functionLinenumberEnd: 1733
    functionName: Shim_Callbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - type
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Botan::TLS::Handshake_Message&
      msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: shim_output
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int shim_output(const std::string& s, int rc = 0)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ::getenv
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:72,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:77,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:78,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:84,1
    - Dst: std::ofstream::is_open
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:86,1
    - Dst: std::ofstream::good
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:86,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:87,1
    - Dst: std::chrono::duration_cast<std::chrono::duration<double>>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:88,1
    - Dst: std::setprecision
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:90,1
    - Dst: auto::count
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 93
    functionName: shim_log
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 11
    functionsReached:
    - std::string
    - std::setprecision
    - auto::count
    - std::ofstream::is_open
    - auto::empty
    - std::ofstream::good
    - ::getenv
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::duration<double>>
    linkageType: ''
    returnType: void
    signature: void shim_log(std::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:96,1
    - Dst: std::exit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: shim_exit_with_error
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 10
    functionsReached:
    - shim_log
    - std::exit
    linkageType: ''
    returnType: void
    signature: void shim_exit_with_error(const std::string& s, int rc = 1) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:102,1
    - Dst: std::unordered_map::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:352,1
    - Dst: std::unordered_map::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 358
    functionName: map_to_bogo_error
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::unordered_map::find
    - shim_log
    - std::unordered_map::end
    linkageType: ''
    returnType: std::string
    signature: std::string map_to_bogo_error(const std::string& e) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: Shim_Exception::Shim_Exception
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Shim_Exception(std::string_view msg, int rc = 1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: Shim_Exception::what
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char * what() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: Shim_Exception::rc
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rc() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 380
    functionName: Shim_Socket::close_socket
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    linkageType: ''
    returnType: void
    signature: void close_socket(socket_type s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::strerror
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 382
    functionName: Shim_Socket::get_last_socket_error
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - ::strerror
    linkageType: ''
    returnType: std::string
    signature: std::string get_last_socket_error()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:397,1
    - Dst: ::getaddrinfo
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:400,1
    - Dst: c_str
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:400,1
    - Dst: std::string::c_str
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:400,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:400,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:402,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:405,1
    - Dst: unique_addr_info_ptr::get
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:408,1
    - Dst: Client::close_socket
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:413,1
    - Dst: client::handle_connect
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:420,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:423,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:429,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 3
    argNames:
    - ' hostname'
    - port
    - ipv6
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 431
    functionName: Shim_Socket::Shim_Socket
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    - c_str
    - std::to_string
    - ::getaddrinfo
    - shim_log
    - unique_addr_info_ptr::get
    - Client::close_socket
    - client::handle_connect
    - std::string::c_str
    - Shim_Exception
    - Botan::out_ptr
    linkageType: ''
    returnType: void
    signature: void Shim_Socket(const std::string& hostname, int port, const bool
      ipv6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: Shim_Socket::Shim_Socket
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Shim_Socket(const Shim_Socket&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 434
    functionName: '& operator=(const Shim_Socket&)'
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Shim_Socket
    signature: Shim_Socket & operator=(const Shim_Socket&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 436
    functionName: Shim_Socket::Shim_Socket
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Shim_Socket(Shim_Socket&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: '& operator=(Shim_Socket&&)'
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Shim_Socket
    signature: Shim_Socket & operator=(Shim_Socket&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: ~Shim_Socket()
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl::close
    linkageType: ''
    returnType: void
    signature: void ~Shim_Socket()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:446,1
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:452,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:452,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:457,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 463
    functionName: Shim_Socket::write
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::MockChannel::send
    - Botan::cast_uint8_ptr_to_char
    - Shim_Exception
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void write(const uint8_t buf[], size_t len) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:467,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:469,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:469,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:475,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:475,1
    - Dst: strerror
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:475,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 479
    functionName: Shim_Socket::read
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 9
    functionsReached:
    - std::string
    - Shim_Socket::read
    - Botan::cast_uint8_ptr_to_char
    - static_cast<size_t>
    - strerror
    - Shim_Exception
    linkageType: ''
    returnType: size_t
    signature: size_t read(uint8_t buf[], size_t len) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:483,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:487,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:487,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:490,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:492,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:492,1
    - Dst: strerror
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:492,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:495,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 498
    functionName: Shim_Socket::read_exactly
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Shim_Socket::read
    - Botan::cast_uint8_ptr_to_char
    - static_cast<size_t>
    - strerror
    - Shim_Exception
    linkageType: ''
    returnType: void
    signature: void read_exactly(uint8_t buf[], size_t len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:513,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:516,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:519,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    argTypes:
    - std::set<std::string>
    - std::set<std::string>
    - std::set<std::string>
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 526
    functionName: combine_options
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: "std::set<std::string> combine_options(const std::set<std::string>&
      a,\n                                      const std::set<std::string>& b,\n
      \                                     const std::set<std::string>& c,\n                                      const
      std::set<std::string>& d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: combine_options
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' flags'
    - ' string_opts'
    - ' base64_opts'
    - ' int_opts'
    - ' int_vec_opts'
    argTypes:
    - std::set<std::string>
    - std::set<std::string>
    - std::set<std::string>
    - std::set<std::string>
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 540
    functionName: Shim_Arguments::Shim_Arguments
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - combine_options
    linkageType: ''
    returnType: void
    signature: "void Shim_Arguments(const std::set<std::string>& flags,\n                     const
      std::set<std::string>& string_opts,\n                     const std::set<std::string>&
      base64_opts,\n                     const std::set<std::string>& int_opts,\n
      \                    const std::set<std::string>& int_vec_opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:545,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:546,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' flag'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 550
    functionName: Shim_Arguments::flag_set
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Exception
    - contains
    linkageType: ''
    returnType: bool
    signature: bool flag_set(const std::string& flag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Arguments::get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 552
    functionName: Shim_Arguments::test_name
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::get_string_opt
    linkageType: ''
    returnType: std::string
    signature: std::string test_name() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:555,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:556,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 559
    functionName: Shim_Arguments::get_string_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 3
    functionsReached:
    - Shim_Exception
    - Shim_Arguments::get_opt
    - contains
    linkageType: ''
    returnType: std::string
    signature: std::string get_string_opt(const std::string& key) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:562,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:563,1
    - Dst: Shim_Arguments::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:565,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ' def'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 569
    functionName: Shim_Arguments::get_string_opt_or_else
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::option_used
    - Shim_Exception
    - Shim_Arguments::get_opt
    - contains
    linkageType: ''
    returnType: std::string
    signature: std::string get_string_opt_or_else(const std::string& key, const std::string&
      def) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:572,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:573,1
    - Dst: Botan::unlock
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:575,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:575,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 576
    functionName: Shim_Arguments::get_b64_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::unlock
    - contains
    - Shim_Arguments::get_opt
    - Botan::base64_decode
    - Shim_Exception
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_b64_opt(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:579,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:580,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:582,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 583
    functionName: Shim_Arguments::get_int_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - Shim_Exception
    - Shim_Arguments::get_opt
    - contains
    linkageType: ''
    returnType: size_t
    signature: size_t get_int_opt(const std::string& key) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:586,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:587,1
    - Dst: Shim_Arguments::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:589,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:593,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - def
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 594
    functionName: Shim_Arguments::get_int_opt_or_else
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - contains
    - Botan::to_u32bit
    - Shim_Arguments::option_used
    - Shim_Arguments::get_opt
    - Shim_Exception
    linkageType: ''
    returnType: size_t
    signature: size_t get_int_opt_or_else(const std::string& key, size_t def) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:597,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:598,1
    - Dst: find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:601,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:602,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 607
    functionName: Shim_Arguments::get_int_vec_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::vector<size_t>
    - find
    - contains
    - Shim_Exception
    - end
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> get_int_vec_opt(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Arguments::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:613,1
    - Dst: Botan::split_on
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:614,1
    - Dst: Shim_Arguments::get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:614,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' option'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 618
    functionName: Shim_Arguments::get_alpn_string_vec_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::option_used
    - Shim_Arguments::get_string_opt
    - Botan::split_on
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> get_alpn_string_vec_opt(const std::string&
      option) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:621,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:622,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:624,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 631
    functionName: Shim_Arguments::option_used
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 6
    functionsReached:
    - Shim_Exception
    - contains
    linkageType: ''
    returnType: bool
    signature: bool option_used(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:635,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:636,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 640
    functionName: Shim_Arguments::get_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 10
    functionsReached:
    - Shim_Exception
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string get_opt(const std::string& key) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::string::starts_with
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:660,1
    - Dst: std::string::substr
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:661,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:663,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:664,1
    - Dst: insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:665,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:667,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:669,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:672,1
    - Dst: Botan::fmt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:672,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:674,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:675,1
    - Dst: push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:676,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:682,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:683,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:686,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:687,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 690
    functionName: Shim_Arguments::parse_args
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - contains
    - std::string::substr
    - std::string::starts_with
    - shim_log
    - Botan::to_u32bit
    - insert
    - Shim_Exception
    - push_back
    linkageType: ''
    returnType: void
    signature: void Shim_Arguments::parse_args(char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Arguments::Shim_Arguments
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:869,1
    - Dst: std::unique_ptr::parse_args
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 876
    functionName: parse_options
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parse_args
    - Shim_Arguments::Shim_Arguments
    linkageType: ''
    returnType: std::unique_ptr<Shim_Arguments>
    signature: std::unique_ptr<Shim_Arguments> parse_options(char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Shim_Arguments
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 880
    functionName: Shim_Policy::Shim_Policy
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Shim_Policy(const Shim_Arguments& args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 882
    functionName: Shim_Policy::incr_session_established
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void incr_session_established()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:911,1
    - Dst: std::string::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:918,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:921,1
    - Dst: Botan::concat
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:925,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 884
    functionDepth: 3
    functionLinenumber: 884
    functionLinenumberEnd: 926
    functionName: Shim_Policy::allowed_ciphers
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - get_string_opt_or_else
    - Botan::concat
    - std::string::empty
    - shim_exit_with_error
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_ciphers() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:929,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:931,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:933,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:934,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:934,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:937,1
    - Dst: Botan::TLS::Signature_Scheme::hash_function_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:937,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:940,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:941,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 947
    functionName: Shim_Policy::allowed_signature_hashes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - std::vector::push_back
    - option_used
    - flag_set
    - shim_log
    - get_int_vec_opt
    - Botan::TLS::Signature_Scheme::hash_function_name
    - Botan::TLS::Signature_Scheme::is_available
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_signature_hashes() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 957
    functionName: Shim_Policy::allowed_signature_methods
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> allowed_signature_methods() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:960,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:962,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:963,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:963,1
    - Dst: Shim_Policy::acceptable_signature_schemes
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 970
    functionName: Shim_Policy::acceptable_signature_schemes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 2
    functionsReached:
    - option_used
    - std::vector::emplace_back
    - static_cast<uint16_t>
    - Shim_Policy::acceptable_signature_schemes
    - get_int_vec_opt
    linkageType: ''
    returnType: std::vector<Botan::TLS::Signature_Scheme>
    signature: std::vector<Botan::TLS::Signature_Scheme> acceptable_signature_schemes()
      const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:973,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:975,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:976,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:976,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:986,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:987,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:988,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:989,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:995,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 972
    functionDepth: 2
    functionLinenumber: 972
    functionLinenumberEnd: 996
    functionName: Shim_Policy::allowed_signature_schemes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - std::vector::emplace_back
    - flag_set
    - Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    - static_cast<uint16_t>
    - get_int_vec_opt
    linkageType: ''
    returnType: std::vector<Botan::TLS::Signature_Scheme>
    signature: std::vector<Botan::TLS::Signature_Scheme> allowed_signature_schemes()
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1000
    functionName: Shim_Policy::require_cert_revocation_info
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool require_cert_revocation_info() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1003,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1008,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1010,1
    - Dst: static_cast<Botan::TLS::Group_Params>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1011,1
    - Dst: std::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1012,1
    - Dst: auto::cbegin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1012,1
    - Dst: auto::cend
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1012,1
    - Dst: auto::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1012,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1013,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1021
    functionName: Shim_Policy::key_exchange_groups
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 3
    functionsReached:
    - std::find
    - static_cast<Botan::TLS::Group_Params>
    - option_used
    - std::vector::push_back
    - auto::cend
    - get_int_vec_opt
    - Shim_Policy::key_exchange_groups
    - auto::cbegin
    - auto::end
    linkageType: ''
    returnType: std::vector<Botan::TLS::Group_Params>
    signature: std::vector<Botan::TLS::Group_Params> key_exchange_groups() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1023
    functionName: Shim_Policy::use_ecc_point_compression
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool use_ecc_point_compression() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1028,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1032,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' supported_by_peer'
    - ' offered_by_peer'
    argTypes:
    - std::vector<Botan::TLS::Group_Params>
    - std::vector<Botan::TLS::Group_Params>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1040
    functionName: Shim_Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Shim_Policy::key_exchange_groups
    - Botan::value_exists
    linkageType: ''
    returnType: Botan::TLS::Group_Params
    signature: "Botan::TLS::Group_Params choose_key_exchange_group(\n         const
      std::vector<Botan::TLS::Group_Params>& supported_by_peer,\n         const std::vector<Botan::TLS::Group_Params>&
      offered_by_peer) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1044
    functionName: Shim_Policy::require_client_certificate_authentication
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: bool
    signature: bool require_client_certificate_authentication() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1047,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1047,1
    - Dst: Shim_Policy::require_client_certificate_authentication
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1049
    functionName: Shim_Policy::request_client_certificate_authentication
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - Shim_Policy::require_client_certificate_authentication
    linkageType: ''
    returnType: bool
    signature: bool request_client_certificate_authentication() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1051
    functionName: Shim_Policy::allow_insecure_renegotiation
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: bool
    signature: bool allow_insecure_renegotiation() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1056,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1060,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1065
    functionName: Shim_Policy::allow_client_initiated_renegotiation
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: bool
    signature: bool allow_client_initiated_renegotiation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Shim_Policy::allow_client_initiated_renegotiation
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1069
    functionName: Shim_Policy::allow_server_initiated_renegotiation
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::allow_client_initiated_renegotiation
    linkageType: ''
    returnType: bool
    signature: bool allow_server_initiated_renegotiation() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1072,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1073,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1073,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1080,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1081,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1081,1
    - Dst: Botan::TLS::Protocol_Version::known_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1088,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1089
    functionName: Shim_Policy::allow_version
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 3
    functionsReached:
    - option_used
    - Botan::TLS::Protocol_Version::known_version
    - static_cast<uint16_t>
    - get_int_opt
    linkageType: ''
    returnType: bool
    signature: bool allow_version(Botan::TLS::Protocol_Version version) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1092,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1092,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1094
    functionName: Shim_Policy::allow_tls12
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - Shim_Policy::allow_version
    linkageType: ''
    returnType: bool
    signature: bool allow_tls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1097,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1097,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1099
    functionName: Shim_Policy::allow_tls13
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - Shim_Policy::allow_version
    linkageType: ''
    returnType: bool
    signature: bool allow_tls13() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1102,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1102,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1101
    functionDepth: 2
    functionLinenumber: 1101
    functionLinenumberEnd: 1104
    functionName: Shim_Policy::allow_dtls12
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - Shim_Policy::allow_version
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1110
    functionName: Shim_Policy::minimum_ecdsa_group_size
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_ecdsa_group_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1112
    functionName: Shim_Policy::minimum_ecdh_group_size
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_ecdh_group_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1126
    functionName: Shim_Policy::new_session_tickets_upon_handshake_success
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: size_t
    signature: size_t new_session_tickets_upon_handshake_success() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1129,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1130,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1142
    functionName: Shim_Policy::srtp_profiles
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - get_string_opt
    - shim_exit_with_error
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> srtp_profiles() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1144
    functionName: Shim_Policy::only_resume_with_exact_version
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool only_resume_with_exact_version() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1151,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1152,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1155,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1163
    functionName: Shim_Policy::support_cert_status_message
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - flag_set
    linkageType: ''
    returnType: bool
    signature: bool support_cert_status_message() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1167
    functionName: Shim_Policy::dtls_default_mtu
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_int_opt_or_else
    linkageType: ''
    returnType: size_t
    signature: size_t dtls_default_mtu() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1175
    functionName: Shim_Policy::abort_connection_on_undesired_renegotiation
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: bool
    signature: bool abort_connection_on_undesired_renegotiation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1177
    functionName: Shim_Policy::maximum_certificate_chain_size
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_int_opt_or_else
    linkageType: ''
    returnType: size_t
    signature: size_t maximum_certificate_chain_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1193,1
    - Dst: test_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1194
    functionName: Shim_Policy::tls_13_middlebox_compatibility_mode
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::value_exists
    - test_name
    linkageType: ''
    returnType: bool
    signature: bool tls_13_middlebox_compatibility_mode() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1204,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1217,1
    - Dst: auto::valid
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1218,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1219,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1221,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1221,1
    - Dst: Botan::TLS::Ciphersuite::all_known_ciphersuites
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1225,1
    - Dst: auto::rbegin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1228,1
    - Dst: auto::rend
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1228,1
    - Dst: auto::valid
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1231,1
    - Dst: auto::usable_in_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1231,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1232,1
    - Dst: Shim_Policy::allowed_ciphers
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1232,1
    - Dst: auto::cipher_algo
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1232,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1235,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1201
    functionDepth: 4
    functionLinenumber: 1201
    functionLinenumberEnd: 1241
    functionName: Shim_Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt_or_else
    - auto::rend
    - auto::usable_in_version
    - std::vector::push_back
    - auto::valid
    - auto::rbegin
    - auto::ciphersuite_code
    - shim_exit_with_error
    - auto::cipher_algo
    - Botan::value_exists
    - Botan::TLS::Ciphersuite::all_known_ciphersuites
    - Botan::TLS::Ciphersuite::from_name
    - Shim_Policy::allowed_ciphers
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> Shim_Policy::ciphersuite_list(Botan::TLS::Protocol_Version
      version) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1246,1
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1247,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1249,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1249,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1255,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1256,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1256,1
    - Dst: auto::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1256,1
    - Dst: auto::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1256,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1259,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1259,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1260,1
    - Dst: reset
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1261,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1261,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1263,1
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1265,1
    - Dst: push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1267,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1267,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1272,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1272,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1273,1
    - Dst: add_certificate
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1275,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1275,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1277,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1277,1
    - Dst: what
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1277,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Shim_Arguments
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1280
    functionName: Shim_Credentials::Shim_Credentials
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt_or_else
    - reset
    - std::string
    - auto::data
    - auto::size
    - reinterpret_cast<const uint8_t*>
    - option_used
    - Botan::DataSource_Stream::end_of_data
    - auto::empty
    - Botan::SymmetricKey
    - Botan::X509_Certificate
    - what
    - get_string_opt
    - add_certificate
    - Shim_Exception
    - push_back
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: void
    signature: void Shim_Credentials(const Shim_Arguments& args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1284,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1285,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1287,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1288,1
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1291,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1293,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1297
    functionName: Shim_Credentials::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt_or_else
    - flag_set
    - Shim_Exception
    linkageType: ''
    returnType: std::vector<Botan::Certificate_Store*>
    signature: "std::vector<Botan::Certificate_Store*> trusted_certificate_authorities(const
      std::string& type,\n                                                                             const
      std::string& context) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1303
    functionName: Shim_Credentials::psk_identity
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: "std::string psk_identity(const std::string& /*type*/,\n                               const
      std::string& /*context*/,\n                               const std::string&
      /*identity_hint*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1307
    functionName: Shim_Credentials::psk_identity_hint
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: std::string psk_identity_hint(const std::string& /*type*/, const std::string&
      /*context*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1311
    functionName: Shim_Credentials::session_ticket_key
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> session_ticket_key() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1315
    functionName: Shim_Credentials::dtls_cookie_secret
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    linkageType: ''
    returnType: Botan::secure_vector<uint8_t>
    signature: Botan::secure_vector<uint8_t> dtls_cookie_secret() override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1322,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1323,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1327,1
    - Dst: std::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1327,1
    - Dst: begin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1327,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1327,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1327,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1330,1
    - Dst: has_value
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1333,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1334,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1345,1
    - Dst: value
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1345,1
    - Dst: bits_of
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - host
    - whoami
    argTypes:
    - std::string_view
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1347
    functionName: Shim_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - std::vector::emplace_back
    - begin
    - bits_of
    - Botan::Credentials_Manager::find_preshared_keys
    - end
    - value
    - empty
    - Shim_Exception
    - has_value
    linkageType: ''
    returnType: std::vector<Botan::TLS::ExternalPSK>
    signature: "std::vector<Botan::TLS::ExternalPSK> find_preshared_keys(\n         std::string_view
      host,\n         Botan::TLS::Connection_Side whoami,\n         const std::vector<std::string>&
      identities = {},\n         const std::optional<std::string>& prf = std::nullopt)
      override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1354,1
    - Dst: std::runtime_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1355,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1358,1
    - Dst: algo_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' cert_key_types'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1367
    functionName: Shim_Credentials::cert_chain
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    - algo_name
    - empty
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: "std::vector<Botan::X509_Certificate> cert_chain(\n         const std::vector<std::string>&
      cert_key_types,\n         const std::vector<Botan::AlgorithmIdentifier>& /*cert_signature_schemes*/,\n
      \        const std::string& /*type*/,\n         const std::string& /*context*/)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1374
    functionName: Shim_Credentials::private_key_for
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Botan::Private_Key>
    signature: "std::shared_ptr<Botan::Private_Key> private_key_for(const Botan::X509_Certificate&
      /*cert*/,\n                                                          const std::string&
      /*type*/,\n                                                          const std::string&
      /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' args'
    - ' socket'
    - ' policy'
    argTypes:
    - Shim_Arguments
    - Shim_Socket
    - Shim_Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1398
    functionName: Shim_Callbacks::Shim_Callbacks
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - flag_set
    linkageType: ''
    returnType: void
    signature: void Shim_Callbacks(const Shim_Arguments& args, Shim_Socket& socket,
      Shim_Policy& policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1400
    functionName: Shim_Callbacks::sessions_established
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sessions_established() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - channel
    argTypes:
    - Botan::TLS::Channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1402
    functionName: Shim_Callbacks::set_channel
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_channel(Botan::TLS::Channel* channel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clock_skew
    argTypes:
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1404
    functionName: Shim_Callbacks::set_clock_skew
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_clock_skew(std::chrono::seconds clock_skew)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1406
    functionName: Shim_Callbacks::saw_close_notify
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool saw_close_notify() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1409,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1409,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1409,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1411,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1413,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1417,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1421,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1421,1
    - Dst: std::memcpy
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1423,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1423,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1423,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1423,1
    - Dst: write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1425,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1425,1
    - Dst: std::vector::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1425,1
    - Dst: write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1427,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1427,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1408
    functionDepth: 2
    functionLinenumber: 1408
    functionLinenumberEnd: 1429
    functionName: Shim_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::to_string
    - option_used
    - std::span<const uint8_t>::data
    - shim_log
    - std::vector::data
    - write
    - std::memcpy
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> data) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1433,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1433,1
    - Dst: std::runtime_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1434,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1437,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1441,1
    - Dst: get_b64_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1442,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1446
    functionName: Shim_Callbacks::tls_provide_cert_status
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - flag_set
    - get_b64_opt
    - std::runtime_error
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> tls_provide_cert_status(const std::vector<Botan::X509_Certificate>&
      /*certs*/,\n                                                   const Botan::TLS::Certificate_Status_Request&
      /*status*/) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1449,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1452,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1458,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1458,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1458,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1460,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1460,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1448
    functionDepth: 3
    functionLinenumber: 1448
    functionLinenumberEnd: 1466
    functionName: Shim_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - send
    - shim_log
    - shim_exit_with_error
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*seq_no*/, std::span<const uint8_t>
      data) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1473,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1475,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1475,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1477,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1478,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1478,1
    - Dst: Botan::TLS::Signature_Scheme::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1479,1
    - Dst: Botan::TLS::Signature_Scheme::padding_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1482,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1484,1
    - Dst: Botan::fmt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1484,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ' key'
    - padding
    - format
    - ' msg'
    - ' sig'
    argTypes:
    - Botan::Public_Key
    - std::string_view
    - Botan::Signature_Format
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1468
    functionDepth: 3
    functionLinenumber: 1468
    functionLinenumberEnd: 1489
    functionName: Shim_Callbacks::tls_verify_message
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    - std::string
    - Botan::fmt
    - option_used
    - Botan::TLS::Signature_Scheme::padding_string
    - static_cast<uint16_t>
    - shim_exit_with_error
    - get_int_opt
    - Botan::TLS::Signature_Scheme::to_string
    - Botan::TLS::Signature_Scheme::is_available
    linkageType: ''
    returnType: bool
    signature: "bool tls_verify_message(const Botan::Public_Key& key,\n                              std::string_view
      padding,\n                              Botan::Signature_Format format,\n                              const
      std::vector<uint8_t>& msg,\n                              const std::vector<uint8_t>&
      sig) override"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1497,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1497,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1498,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1499,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1503,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1505,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1509,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1512,1
    - Dst: front
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1512,1
    - Dst: certificate_known
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1514,1
    - Dst: front
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1514,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1515,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1521,1
    - Dst: Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1523,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 5
    argNames:
    - ' cert_chain'
    - ' ocsp_responses'
    - ' trusted_roots'
    - usage
    - ' policy'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    - std::vector<std::optional<Botan::OCSP::Response>>
    - std::vector<Botan::Certificate_Store*>
    - Botan::Usage_Type
    - Botan::TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1491
    functionDepth: 2
    functionLinenumber: 1491
    functionLinenumberEnd: 1525
    functionName: Shim_Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - certificate_known
    - front
    - Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
    - flag_set
    - shim_log
    - TLS_Exception
    - empty
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<Botan::X509_Certificate>&
      cert_chain,\n                                 const std::vector<std::optional<Botan::OCSP::Response>>&
      ocsp_responses,\n                                 const std::vector<Botan::Certificate_Store*>&
      trusted_roots,\n                                 Botan::Usage_Type usage,\n
      \                                std::string_view /* hostname */,\n                                 const
      Botan::TLS::Policy& policy) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1528,1
    - Dst: get_b64_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1528,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' raw_response'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1527
    functionDepth: 3
    functionLinenumber: 1527
    functionLinenumberEnd: 1535
    functionName: Shim_Callbacks::tls_parse_ocsp_response
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - get_b64_opt
    - shim_exit_with_error
    linkageType: ''
    returnType: std::optional<Botan::OCSP::Response>
    signature: std::optional<Botan::OCSP::Response> tls_parse_ocsp_response(const
      std::vector<uint8_t>& raw_response) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1541,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1549,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1550,1
    - Dst: remove_extension
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' exts'
    - msg_type
    argTypes:
    - Botan::TLS::Extensions
    - Botan::TLS::Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1558
    functionName: Shim_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - get_string_opt
    - remove_extension
    linkageType: ''
    returnType: void
    signature: "void tls_modify_extensions(Botan::TLS::Extensions& exts,\n                                 Botan::TLS::Connection_Side
      /* side */,\n                                 Botan::TLS::Handshake_Type msg_type)
      override"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1561,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1565,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1566,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1570,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1574,1
    - Dst: get_alpn_string_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1575,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1578,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1582,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1583,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1560
    functionDepth: 3
    functionLinenumber: 1560
    functionLinenumberEnd: 1587
    functionName: Shim_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_alpn_string_vec_opt
    - option_used
    - flag_set
    - shim_exit_with_error
    - TLS_Exception
    - get_string_opt
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string tls_server_choose_app_protocol(const std::vector<std::string>&
      client_protos) override
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert::is_fatal
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1590,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1591,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1591,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1593,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1593,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1596,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1597,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1600,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1601,1
    - Dst: Botan::TLS::Alert::is_fatal
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1604,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1607,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1611,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1612,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1613,1
    - Dst: send_alert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1614,1
    - Dst: Botan::TLS::Alert::is_fatal
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1617,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1618,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1618,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1589
    functionDepth: 3
    functionLinenumber: 1589
    functionLinenumberEnd: 1620
    functionName: Shim_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - send_alert
    - Botan::TLS::Alert::is_fatal
    - flag_set
    - shim_log
    - shim_exit_with_error
    - Botan::TLS::Alert::type
    - Botan::TLS::Alert::type_string
    linkageType: ''
    returnType: void
    signature: void tls_alert(Botan::TLS::Alert alert) override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1623,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1623,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1623,1
    - Dst: version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1624,1
    - Dst: ciphersuite
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1624,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1625,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1625,1
    - Dst: incr_session_established
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1628,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1631,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1633,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1633,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1634,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1636,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1636,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1637,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1640,1
    - Dst: version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1641,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1641,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1642,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1646,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1647,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1648,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1650,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1651,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1652,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1656,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1657,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1658,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1622
    functionDepth: 3
    functionLinenumber: 1622
    functionLinenumberEnd: 1661
    functionName: Shim_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::string
    - ciphersuite
    - secure_renegotiation_supported
    - option_used
    - version
    - shim_log
    - flag_set
    - shim_exit_with_error
    - get_int_opt
    - session_id
    - supports_extended_master_secret
    - incr_session_established
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1664,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1665,1
    - Dst: get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1669,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1670,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1671,1
    - Dst: key_material_export
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1672,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1673,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1673,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1674,1
    - Dst: auto::bits_of
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1674,1
    - Dst: application_protocol
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1677,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1679,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1680,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1681,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1685,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1686,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1689,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1690,1
    - Dst: close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1691,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1694,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1700,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1700,1
    - Dst: close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1703,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1706,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1707,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1710,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1711,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1714,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1715,1
    - Dst: update_traffic_keys
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1716,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1663
    functionDepth: 3
    functionLinenumber: 1663
    functionLinenumberEnd: 1718
    functionName: Shim_Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - key_material_export
    - send_fatal_alert
    - application_protocol
    - close
    - update_traffic_keys
    - std::to_string
    - send
    - option_used
    - flag_set
    - shim_log
    - shim_exit_with_error
    - std::vector::data
    - TLS_Exception
    - get_int_opt_or_else
    - auto::bits_of
    - get_string_opt
    - Shim_Exception
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::floor<sec>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1725,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1727
    functionName: Shim_Callbacks::tls_current_timestamp
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::floor<sec>
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point tls_current_timestamp() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1729
    functionDepth: 0
    functionLinenumber: 1729
    functionLinenumberEnd: 1733
    functionName: Shim_Callbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - type
    linkageType: ''
    returnType: void
    signature: void tls_inspect_handshake_msg(const Botan::TLS::Handshake_Message&
      msg) override
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: parse_options
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1753,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1755,1
    - Dst: shim_output
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1756,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1759,1
    - Dst: std::unique_ptr::get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1759,1
    - Dst: std::unique_ptr::get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1760,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1761,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1762,1
    - Dst: std::unique_ptr::get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1763,1
    - Dst: std::make_shared<Botan::ChaCha_RNG>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1765,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1765,1
    - Dst: std::make_shared<Shim_Credentials>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1766,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1768,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1768,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1771,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Hybrid>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1776,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1777,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1781,1
    - Dst: sleep
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1782,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1787,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1789,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1789,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1789,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1794,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1794,1
    - Dst: std::unique_ptr::get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1794,1
    - Dst: Botan::store_le
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1796,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1796,1
    - Dst: std::unique_ptr::get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1796,1
    - Dst: std::array::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1796,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1797,1
    - Dst: std::array::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1797,1
    - Dst: std::array::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1797,1
    - Dst: std::make_shared<Shim_Policy>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1799,1
    - Dst: std::make_shared<Shim_Callbacks>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1800,1
    - Dst: std::unique_ptr::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1802,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1803,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1803,1
    - Dst: std::unique_ptr::get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1803,1
    - Dst: auto::set_clock_skew
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1804,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1804,1
    - Dst: std::unique_ptr::get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1804,1
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1810,1
    - Dst: auto::latest_supported_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1812,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1813,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1813,1
    - Dst: std::unique_ptr::get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1815,1
    - Dst: std::unique_ptr::test_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1816,1
    - Dst: std::unique_ptr::get_alpn_string_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1821,1
    - Dst: std::make_unique<Botan::TLS::Client>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1822,1
    - Dst: auto::set_channel
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1826,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1826,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1833,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1835,1
    - Dst: Shim_Socket::read_exactly
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1841,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1843,1
    - Dst: std::vector::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1845,1
    - Dst: std::vector::resize
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1846,1
    - Dst: Shim_Socket::read_exactly
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1848,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1848,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1850,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1850,1
    - Dst: Shim_Socket::read_exactly
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1855,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1857,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1859,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1859,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1863,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1865,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1865,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1868,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1868,1
    - Dst: std::vector::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1868,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1870,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1874,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1874,1
    - Dst: std::unique_ptr::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1876,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1879,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1879,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1883,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1883,1
    - Dst: std::unique_ptr::key_material_export
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1884,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1886,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1886,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1889,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1889,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1894,1
    - Dst: auto::saw_close_notify
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1895,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1896,1
    - Dst: std::unique_ptr::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1900,1
    - Dst: std::unique_ptr::get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1901,1
    - Dst: auto::sessions_established
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1903,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1904,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1905,1
    - Dst: auto::sessions_established
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1905,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1906,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1909,1
    - Dst: execute_test
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1912,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1914,1
    - Dst: what
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1914,1
    - Dst: execute_test
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1915,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1923,1
    - Dst: what
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1923,1
    - Dst: rc
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1923,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1925,1
    - Dst: map_to_bogo_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1925,1
    - Dst: what
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1925,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1927,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 101
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1751
    functionDepth: 3
    functionLinenumber: 1751
    functionLinenumberEnd: 1930
    functionName: main
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 53
    functionsReached:
    - std::unique_ptr::get_string_opt_or_else
    - std::string
    - execute_test
    - static_cast<uint64_t>
    - std::unique_ptr::flag_set
    - std::array::size
    - Botan::TLS::Protocol_Version::to_string
    - auto::saw_close_notify
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - rc
    - std::make_unique<Botan::TLS::Client>
    - std::unique_ptr::is_active
    - Botan::store_le
    - std::make_shared<Shim_Policy>
    - std::make_shared<Botan::TLS::Session_Manager_Hybrid>
    - std::unique_ptr::get
    - std::to_string
    - std::make_shared<Shim_Callbacks>
    - Botan::load_be<uint32_t>
    - shim_exit_with_error
    - Botan_CLI::Timer::seconds
    - Shim_Socket::write
    - std::make_shared<Shim_Credentials>
    - std::unique_ptr::test_name
    - std::vector::size
    - map_to_bogo_error
    - std::unique_ptr::get_int_opt_or_else
    - std::vector::resize
    - shim_output
    - Botan::secure_vector<uint8_t>
    - auto::set_clock_skew
    - std::unique_ptr::get_alpn_string_vec_opt
    - Shim_Socket::read_exactly
    - auto::sessions_established
    - std::array::data
    - what
    - Shim_Exception
    - std::unique_ptr::get_int_opt
    - Botan::hex_encode
    - Shim_Socket::read
    - sleep
    - std::make_unique<Botan::TLS::Server>
    - std::unique_ptr::received_data
    - Botan::load_be<uint64_t>
    - shim_log
    - static_cast<uint16_t>
    - std::unique_ptr::option_used
    - auto::set_channel
    - std::vector::data
    - std::unique_ptr::key_material_export
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - std::make_shared<Botan::ChaCha_RNG>
    - auto::latest_supported_version
    - parse_options
    linkageType: ''
    returnType: int
    signature: int main(int /*argc*/, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_msg
      Src: /src/botan/src/lib/modes/cipher_mode.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: start
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 132
    functionsReached:
    - start_msg
    linkageType: ''
    returnType: void
    signature: void start(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_msg
      Src: /src/botan/src/lib/modes/cipher_mode.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: start
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 132
    functionsReached:
    - start_msg
    linkageType: ''
    returnType: void
    signature: void start()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_msg
      Src: /src/botan/src/lib/modes/cipher_mode.h:131,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/modes/cipher_mode.h:131,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/cipher_mode.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: process
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 66
    functionsReached:
    - std::span<uint8_t>::size
    - process_msg
    - std::span<uint8_t>::data
    linkageType: ''
    returnType: size_t
    signature: size_t process(std::span<uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_msg
      Src: /src/botan/src/lib/modes/cipher_mode.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - msg_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: process
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 66
    functionsReached:
    - process_msg
    linkageType: ''
    returnType: size_t
    signature: size_t process(uint8_t msg[], size_t msg_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process
      Src: /src/botan/src/lib/modes/cipher_mode.h:149,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/cipher_mode.h:149,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cipher_mode.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' buffer'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: update
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 156
    functionsReached:
    - resize
    - std::span
    - process
    linkageType: ''
    returnType: void
    signature: void update(T& buffer, size_t offset = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish_msg
      Src: /src/botan/src/lib/modes/cipher_mode.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' final_block'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: finish
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 101
    functionsReached:
    - finish_msg
    linkageType: ''
    returnType: void
    signature: void finish(secure_vector<uint8_t>& final_block, size_t offset = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/lib/modes/cipher_mode.h:192,1
    - Dst: end
      Src: /src/botan/src/lib/modes/cipher_mode.h:192,1
    - Dst: finish_msg
      Src: /src/botan/src/lib/modes/cipher_mode.h:193,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cipher_mode.h:194,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/lib/modes/cipher_mode.h:194,1
    - Dst: copy
      Src: /src/botan/src/lib/modes/cipher_mode.h:195,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/lib/modes/cipher_mode.h:195,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/lib/modes/cipher_mode.h:195,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/cipher_mode.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' final_block'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: finish
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 101
    functionsReached:
    - resize
    - copy
    - Botan::secure_vector::end
    - Botan::secure_vector::begin
    - begin
    - finish_msg
    - Botan::secure_vector::size
    - end
    linkageType: ''
    returnType: void
    signature: void finish(T& final_block, size_t offset = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: requires_entire_message
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool requires_entire_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/cipher_mode.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: authenticated
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 12
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: bool
    signature: bool authenticated() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: tag_size
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 273
    functionName: provider
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - algo_spec
    - direction
    argTypes:
    - std::string_view
    - Cipher_Dir
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: get_cipher_mode
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 0
    functionsReached:
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: Cipher_Mode
    signature: Cipher_Mode * get_cipher_mode(std::string_view algo_spec, Cipher_Dir
      direction, std::string_view provider = "")
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:47,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - algo
    - direction
    - provider
    argTypes:
    - std::string_view
    - Cipher_Dir
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: Botan::Cipher_Mode::create_or_throw
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 4
    functionsReached:
    - Lookup_Error
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: std::unique_ptr<Cipher_Mode>
    signature: "std::unique_ptr<Cipher_Mode> Cipher_Mode::create_or_throw(std::string_view
      algo,\n                                                          Cipher_Dir
      direction,\n                                                          std::string_view
      provider)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:58,1
    - Dst: make_commoncrypto_cipher_mode
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:59,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:62,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:67,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:72,1
    - Dst: std::make_unique<Stream_Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:73,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:73,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:78,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:83,1
    - Dst: split_on
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:84,1
    - Dst: parse_algorithm_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:86,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:88,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:98,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:103,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:103,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:110,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:111,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:114,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:114,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:117,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:121,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:122,1
    - Dst: std::make_unique<CTS_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:126,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:126,1
    - Dst: std::make_unique<CTS_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:128,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:128,1
    - Dst: Botan::BlockCipherModePaddingMethod::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:131,1
    - Dst: std::make_unique<CBC_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:135,1
    - Dst: std::make_unique<CBC_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:137,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:137,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:137,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:145,1
    - Dst: std::make_unique<XTS_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:147,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:147,1
    - Dst: std::make_unique<XTS_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:149,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:149,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:155,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:156,1
    - Dst: auto::block_size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:156,1
    - Dst: std::make_unique<CFB_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:158,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:158,1
    - Dst: std::make_unique<CFB_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:160,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:167,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 3
    argNames:
    - algo
    - direction
    - provider
    argTypes:
    - std::string_view
    - Cipher_Dir
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 168
    functionName: Botan::Cipher_Mode::create
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 39
    functionsReached:
    - parse_algorithm_name
    - std::make_unique<CBC_Decryption>
    - auto::block_size
    - std::make_unique<CTS_Encryption>
    - std::string_view::empty
    - make_commoncrypto_cipher_mode
    - std::make_unique<XTS_Encryption>
    - SCAN_Name::arg_count
    - std::make_unique<CFB_Decryption>
    - split_on
    - std::move
    - std::string_view::find
    - SCAN_Name::arg_as_integer
    - SCAN_Name::algo_name
    - SCAN_Name::arg
    - std::make_unique<CFB_Encryption>
    - std::vector::size
    - Botan::Cipher_Mode::create
    - std::vector::empty
    - std::unique_ptr<Cipher_Mode>
    - Botan::StreamCipher::create
    - Botan::AEAD_Mode::create
    - std::make_unique<XTS_Decryption>
    - std::make_unique<CBC_Encryption>
    - Botan::BlockCipherModePaddingMethod::create
    - std::make_unique<Stream_Cipher_Mode>
    - std::ostringstream::str
    - std::make_unique<CTS_Decryption>
    - Botan::BlockCipher::create
    linkageType: ''
    returnType: std::unique_ptr<Cipher_Mode>
    signature: "std::unique_ptr<Cipher_Mode> Cipher_Mode::create(std::string_view
      algo,\n                                                 Cipher_Dir direction,\n
      \                                                std::string_view provider)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:175,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: Botan::Cipher_Mode::providers
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 12
    functionsReached:
    - std::vector::push_back
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Cipher_Mode::providers(std::string_view algo_spec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:47,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - algo
    - direction
    - provider
    argTypes:
    - std::string_view
    - Cipher_Dir
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: Botan::Cipher_Mode::create_or_throw
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 4
    functionsReached:
    - Lookup_Error
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: std::unique_ptr<Cipher_Mode>
    signature: "std::unique_ptr<Cipher_Mode> Cipher_Mode::create_or_throw(std::string_view
      algo,\n                                                          Cipher_Dir
      direction,\n                                                          std::string_view
      provider)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:58,1
    - Dst: make_commoncrypto_cipher_mode
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:59,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:62,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:67,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:72,1
    - Dst: std::make_unique<Stream_Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:73,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:73,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:78,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:83,1
    - Dst: split_on
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:84,1
    - Dst: parse_algorithm_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:86,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:88,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:95,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:98,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:103,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:103,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:110,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:111,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:114,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:114,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:117,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:121,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:122,1
    - Dst: std::make_unique<CTS_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:126,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:126,1
    - Dst: std::make_unique<CTS_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:128,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:128,1
    - Dst: Botan::BlockCipherModePaddingMethod::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:131,1
    - Dst: std::make_unique<CBC_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:135,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:135,1
    - Dst: std::make_unique<CBC_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:137,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:137,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:137,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:145,1
    - Dst: std::make_unique<XTS_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:147,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:147,1
    - Dst: std::make_unique<XTS_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:149,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:149,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:155,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:156,1
    - Dst: auto::block_size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:156,1
    - Dst: std::make_unique<CFB_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:158,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:158,1
    - Dst: std::make_unique<CFB_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:160,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:167,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 3
    argNames:
    - algo
    - direction
    - provider
    argTypes:
    - std::string_view
    - Cipher_Dir
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 168
    functionName: Botan::Cipher_Mode::create
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 42
    functionsReached:
    - parse_algorithm_name
    - std::make_unique<CBC_Decryption>
    - auto::block_size
    - std::make_unique<CTS_Encryption>
    - std::string_view::empty
    - make_commoncrypto_cipher_mode
    - std::make_unique<XTS_Encryption>
    - SCAN_Name::arg_count
    - std::make_unique<CFB_Decryption>
    - split_on
    - std::move
    - std::string_view::find
    - SCAN_Name::arg_as_integer
    - SCAN_Name::algo_name
    - SCAN_Name::arg
    - std::make_unique<CFB_Encryption>
    - std::vector::size
    - Botan::Cipher_Mode::create
    - std::vector::empty
    - std::unique_ptr<Cipher_Mode>
    - Botan::StreamCipher::create
    - Botan::AEAD_Mode::create
    - std::make_unique<XTS_Decryption>
    - std::make_unique<CBC_Encryption>
    - Botan::BlockCipherModePaddingMethod::create
    - std::make_unique<Stream_Cipher_Mode>
    - std::ostringstream::str
    - std::make_unique<CTS_Decryption>
    - Botan::BlockCipher::create
    linkageType: ''
    returnType: std::unique_ptr<Cipher_Mode>
    signature: "std::unique_ptr<Cipher_Mode> Cipher_Mode::create(std::string_view
      algo,\n                                                 Cipher_Dir direction,\n
      \                                                std::string_view provider)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:175,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: Botan::Cipher_Mode::providers
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 12
    functionsReached:
    - std::vector::push_back
    - Botan::Cipher_Mode::create
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Cipher_Mode::providers(std::string_view algo_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/stream_mode.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<StreamCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::Stream_Cipher_Mode::Stream_Cipher_Mode
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Stream_Cipher_Mode(std::unique_ptr<StreamCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::Stream_Cipher_Mode::output_length
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::Stream_Cipher_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t update_granularity() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buffer_size
      Src: /src/botan/src/lib/modes/stream_mode.h:35,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/stream_mode.h:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: Botan::Stream_Cipher_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - buffer_size
    linkageType: ''
    returnType: size_t
    signature: size_t ideal_granularity() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::Stream_Cipher_Mode::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::Stream_Cipher_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t default_nonce_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: valid_iv_length
      Src: /src/botan/src/lib/modes/stream_mode.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nonce_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::Stream_Cipher_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - valid_iv_length
    linkageType: ''
    returnType: bool
    signature: bool valid_nonce_length(size_t nonce_len) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Stream_Cipher_Mode::key_spec
      Src: /src/botan/src/lib/modes/stream_mode.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::Stream_Cipher_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 1
    functionsReached:
    - Botan::Stream_Cipher_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Stream_Cipher_Mode::name
      Src: /src/botan/src/lib/modes/stream_mode.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::Stream_Cipher_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 1
    functionsReached:
    - Botan::Stream_Cipher_Mode::name
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Stream_Cipher_Mode::clear
      Src: /src/botan/src/lib/modes/stream_mode.h:54,1
    - Dst: Botan::Stream_Cipher_Mode::reset
      Src: /src/botan/src/lib/modes/stream_mode.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::Stream_Cipher_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 1
    functionsReached:
    - Botan::Stream_Cipher_Mode::reset
    - Botan::Stream_Cipher_Mode::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: Botan::Stream_Cipher_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Stream_Cipher_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/stream_mode.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::Stream_Cipher_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 1
    functionsReached:
    - Botan::Stream_Cipher_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/stream_mode.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan::Stream_Cipher_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - set_iv
    linkageType: ''
    returnType: void
    signature: void start_msg(const uint8_t nonce[], size_t nonce_len) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/stream_mode.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: Botan::Stream_Cipher_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - cipher1
    linkageType: ''
    returnType: size_t
    signature: size_t process_msg(uint8_t buf[], size_t sz) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/modes/stream_mode.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buf'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan::Stream_Cipher_Mode::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void finish_msg(secure_vector<uint8_t>& buf, size_t offset) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/stream_mode.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::Stream_Cipher_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - set_key
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> key) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/stream_mode.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<StreamCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::Stream_Cipher_Mode::Stream_Cipher_Mode
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Stream_Cipher_Mode(std::unique_ptr<StreamCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::Stream_Cipher_Mode::output_length
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::Stream_Cipher_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t update_granularity() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buffer_size
      Src: /src/botan/src/lib/modes/stream_mode.h:35,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/stream_mode.h:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: Botan::Stream_Cipher_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - buffer_size
    linkageType: ''
    returnType: size_t
    signature: size_t ideal_granularity() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::Stream_Cipher_Mode::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::Stream_Cipher_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t default_nonce_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: valid_iv_length
      Src: /src/botan/src/lib/modes/stream_mode.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nonce_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::Stream_Cipher_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - valid_iv_length
    linkageType: ''
    returnType: bool
    signature: bool valid_nonce_length(size_t nonce_len) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Stream_Cipher_Mode::key_spec
      Src: /src/botan/src/lib/modes/stream_mode.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::Stream_Cipher_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 2
    functionsReached:
    - Botan::Stream_Cipher_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Stream_Cipher_Mode::name
      Src: /src/botan/src/lib/modes/stream_mode.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::Stream_Cipher_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 2
    functionsReached:
    - Botan::Stream_Cipher_Mode::name
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Stream_Cipher_Mode::clear
      Src: /src/botan/src/lib/modes/stream_mode.h:54,1
    - Dst: Botan::Stream_Cipher_Mode::reset
      Src: /src/botan/src/lib/modes/stream_mode.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::Stream_Cipher_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 2
    functionsReached:
    - Botan::Stream_Cipher_Mode::reset
    - Botan::Stream_Cipher_Mode::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: Botan::Stream_Cipher_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Stream_Cipher_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/stream_mode.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::Stream_Cipher_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 2
    functionsReached:
    - Botan::Stream_Cipher_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/stream_mode.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan::Stream_Cipher_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - set_iv
    linkageType: ''
    returnType: void
    signature: void start_msg(const uint8_t nonce[], size_t nonce_len) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/stream_mode.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: Botan::Stream_Cipher_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - cipher1
    linkageType: ''
    returnType: size_t
    signature: size_t process_msg(uint8_t buf[], size_t sz) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/modes/stream_mode.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buf'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan::Stream_Cipher_Mode::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void finish_msg(secure_vector<uint8_t>& buf, size_t offset) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/stream_mode.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::Stream_Cipher_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/stream_mode.h
    functionUses: 0
    functionsReached:
    - set_key
    linkageType: ''
    returnType: void
    signature: void key_schedule(std::span<const uint8_t> key) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::CFB_Mode::feedback
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t feedback() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '& cipher() const'
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BlockCipher
    signature: BlockCipher & cipher() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::CFB_Mode::block_size
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cfb/cfb.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cipher
    - feedback_bits
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: Botan::CFB_Encryption::CFB_Encryption
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CFB_Encryption(std::unique_ptr<BlockCipher> cipher, size_t feedback_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cfb/cfb.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cipher
    - feedback_bits
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: Botan::CFB_Decryption::CFB_Decryption
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CFB_Decryption(std::unique_ptr<BlockCipher> cipher, size_t feedback_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::CFB_Mode::feedback
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t feedback() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '& cipher() const'
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BlockCipher
    signature: BlockCipher & cipher() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::CFB_Mode::block_size
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cfb/cfb.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cipher
    - feedback_bits
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: Botan::CFB_Encryption::CFB_Encryption
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CFB_Encryption(std::unique_ptr<BlockCipher> cipher, size_t feedback_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cfb/cfb.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cipher
    - feedback_bits
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: Botan::CFB_Decryption::CFB_Decryption
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CFB_Decryption(std::unique_ptr<BlockCipher> cipher, size_t feedback_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:18,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:19,1
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:21,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:22,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:22,1
    - Dst: Botan::CFB_Mode::name
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - cipher
    - feedback_bits
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: Botan::CFB_Mode::CFB_Mode
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::move
    - Botan::CFB_Mode::name
    - Botan::CFB_Mode::feedback
    - Botan::CFB_Mode::block_size
    - fmt
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::CFB_Mode(std::unique_ptr<BlockCipher> cipher, size_t
      feedback_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::clear
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:27,1
    - Dst: Botan::CFB_Mode::clear
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:28,1
    - Dst: Botan::CFB_Mode::reset
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::CFB_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 1
    functionsReached:
    - Botan::CFB_Mode::clear
    - Botan::CFB_Mode::reset
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::clear
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:33,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: Botan::CFB_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 1
    functionsReached:
    - zeroise
    - Botan::CFB_Mode::clear
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:38,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:38,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:39,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:39,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:41,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:41,1
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Botan::CFB_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 1
    functionsReached:
    - fmt
    - cipher
    - Botan::CFB_Mode::feedback
    linkageType: ''
    returnType: std::string
    signature: std::string CFB_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::CFB_Mode::output_length
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Mode::output_length(size_t input_length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::CFB_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Botan::CFB_Mode::feedback
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::CFB_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Botan::CFB_Mode::feedback
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan::CFB_Mode::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Mode::minimum_final_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan::CFB_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - cipher
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification CFB_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::CFB_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Botan::CFB_Mode::block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Mode::default_nonce_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::CFB_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Botan::CFB_Mode::block_size
    linkageType: ''
    returnType: bool
    signature: bool CFB_Mode::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan::CFB_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 1
    functionsReached:
    - Botan::CFB_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool CFB_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:79,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:80,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::CFB_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Botan::CFB_Mode::block_size
    - resize
    - set_key
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:84,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:85,1
    - Dst: Botan::CFB_Mode::name
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:85,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:88,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:91,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:92,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:96,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 100
    functionName: Botan::CFB_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Botan::CFB_Mode::name
    - Botan::CFB_Mode::valid_nonce_length
    - Invalid_IV_Length
    - assert_key_material_set
    - cipher
    - Invalid_State
    - assign
    - empty
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:103,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:104,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:107,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:107,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:109,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:109,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::CFB_Mode::shift_register
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - data
    - cipher
    - Botan::CFB_Mode::feedback
    - copy_mem
    - Botan::CFB_Mode::block_size
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::shift_register()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:115,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:116,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:116,1
    - Dst: feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:118,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:123,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:125,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:125,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:126,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:126,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:133,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:138,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:138,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:139,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:139,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:143,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:147,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:147,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:148,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 153
    functionName: Botan::CFB_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - data
    - xor_buf
    - feedback
    - shift_register
    - assert_key_material_set
    - copy_mem
    - std::min<size_t>
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: Botan::CFB_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void CFB_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - key_buf
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: Botan::xor_copy
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor_copy(uint8_t buf[], uint8_t key_buf[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - key_buf
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: Botan::xor_copy
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor_copy(uint8_t buf[], uint8_t key_buf[], size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:172,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:173,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:173,1
    - Dst: feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:175,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:180,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:182,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:182,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:189,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:194,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:197,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:201,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 206
    functionName: Botan::CFB_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - data
    - feedback
    - shift_register
    - assert_key_material_set
    - xor_copy
    - std::min<size_t>
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan::CFB_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void CFB_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:18,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:19,1
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:21,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:22,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:22,1
    - Dst: Botan::CFB_Mode::name
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - cipher
    - feedback_bits
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: Botan::CFB_Mode::CFB_Mode
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::move
    - Botan::CFB_Mode::name
    - Botan::CFB_Mode::feedback
    - Botan::CFB_Mode::block_size
    - fmt
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::CFB_Mode(std::unique_ptr<BlockCipher> cipher, size_t
      feedback_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::clear
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:27,1
    - Dst: Botan::CFB_Mode::clear
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:28,1
    - Dst: Botan::CFB_Mode::reset
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::CFB_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 3
    functionsReached:
    - Botan::CFB_Mode::clear
    - Botan::CFB_Mode::reset
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::clear
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:33,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: Botan::CFB_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 2
    functionsReached:
    - zeroise
    - Botan::CFB_Mode::clear
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:38,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:38,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:39,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:39,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:41,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:41,1
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Botan::CFB_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 3
    functionsReached:
    - fmt
    - cipher
    - Botan::CFB_Mode::feedback
    linkageType: ''
    returnType: std::string
    signature: std::string CFB_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::CFB_Mode::output_length
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Mode::output_length(size_t input_length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::CFB_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Botan::CFB_Mode::feedback
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::CFB_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Botan::CFB_Mode::feedback
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan::CFB_Mode::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Mode::minimum_final_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan::CFB_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - cipher
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification CFB_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::CFB_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Botan::CFB_Mode::block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Mode::default_nonce_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::CFB_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 1
    functionsReached:
    - Botan::CFB_Mode::block_size
    linkageType: ''
    returnType: bool
    signature: bool CFB_Mode::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan::CFB_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 2
    functionsReached:
    - Botan::CFB_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool CFB_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:79,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:80,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::CFB_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Botan::CFB_Mode::block_size
    - resize
    - set_key
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:84,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:85,1
    - Dst: Botan::CFB_Mode::name
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:85,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:88,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:91,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:92,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:96,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 100
    functionName: Botan::CFB_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Botan::CFB_Mode::name
    - Botan::CFB_Mode::valid_nonce_length
    - Invalid_IV_Length
    - assert_key_material_set
    - cipher
    - Invalid_State
    - assign
    - empty
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:103,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:104,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:107,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:107,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:109,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:109,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::CFB_Mode::shift_register
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - data
    - cipher
    - Botan::CFB_Mode::feedback
    - copy_mem
    - Botan::CFB_Mode::block_size
    linkageType: ''
    returnType: void
    signature: void CFB_Mode::shift_register()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:115,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:116,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:116,1
    - Dst: feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:118,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:123,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:125,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:125,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:126,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:126,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:133,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:138,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:138,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:139,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:139,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:143,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:147,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:147,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:148,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 153
    functionName: Botan::CFB_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - data
    - xor_buf
    - feedback
    - shift_register
    - assert_key_material_set
    - copy_mem
    - std::min<size_t>
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: Botan::CFB_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void CFB_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - key_buf
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: Botan::xor_copy
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor_copy(uint8_t buf[], uint8_t key_buf[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - key_buf
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: Botan::xor_copy
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor_copy(uint8_t buf[], uint8_t key_buf[], size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:172,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:173,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:173,1
    - Dst: feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:175,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:180,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:182,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:182,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:189,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:194,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:197,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:201,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 206
    functionName: Botan::CFB_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - data
    - feedback
    - shift_register
    - assert_key_material_set
    - xor_copy
    - std::min<size_t>
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t CFB_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan::CFB_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void CFB_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_associated_data_n
      Src: /src/botan/src/lib/modes/aead/aead.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ad
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::set_associated_data
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached:
    - set_associated_data_n
    linkageType: ''
    returnType: void
    signature: void set_associated_data(std::span<const uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_associated_data
      Src: /src/botan/src/lib/modes/aead/aead.h:61,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/aead/aead.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ad
    - ad_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::set_associated_data
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 1
    functionsReached:
    - std::span
    - Botan::set_associated_data
    linkageType: ''
    returnType: void
    signature: void set_associated_data(const uint8_t ad[], size_t ad_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::maximum_associated_data_inputs
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t maximum_associated_data_inputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::associated_data_requires_key
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool associated_data_requires_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_associated_data
      Src: /src/botan/src/lib/modes/aead/aead.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ad'
    argTypes:
    - std::vector<uint8_t, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan::set_associated_data_vec
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached:
    - Botan::set_associated_data
    linkageType: ''
    returnType: void
    signature: void set_associated_data_vec(const std::vector<uint8_t, Alloc>& ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_associated_data
      Src: /src/botan/src/lib/modes/aead/aead.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ad
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan::set_ad
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached:
    - Botan::set_associated_data
    linkageType: ''
    returnType: void
    signature: void set_ad(std::span<const uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t default_nonce_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_associated_data_n
      Src: /src/botan/src/lib/modes/aead/aead.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ad
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::set_associated_data
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 3
    functionsReached:
    - set_associated_data_n
    linkageType: ''
    returnType: void
    signature: void set_associated_data(std::span<const uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_associated_data
      Src: /src/botan/src/lib/modes/aead/aead.h:61,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/aead/aead.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ad
    - ad_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::set_associated_data
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 4
    functionsReached:
    - std::span
    - Botan::set_associated_data
    linkageType: ''
    returnType: void
    signature: void set_associated_data(const uint8_t ad[], size_t ad_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::maximum_associated_data_inputs
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t maximum_associated_data_inputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::associated_data_requires_key
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool associated_data_requires_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_associated_data
      Src: /src/botan/src/lib/modes/aead/aead.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ad'
    argTypes:
    - std::vector<uint8_t, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan::set_associated_data_vec
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached:
    - Botan::set_associated_data
    linkageType: ''
    returnType: void
    signature: void set_associated_data_vec(const std::vector<uint8_t, Alloc>& ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_associated_data
      Src: /src/botan/src/lib/modes/aead/aead.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ad
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan::set_ad
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached:
    - Botan::set_associated_data
    linkageType: ''
    returnType: void
    signature: void set_ad(std::span<const uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t default_nonce_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/lib/modes/aead/aead.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - direction
    argTypes:
    - std::string_view
    - Cipher_Dir
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: get_aead
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.h
    functionUses: 0
    functionsReached:
    - Botan::AEAD_Mode::create
    linkageType: ''
    returnType: AEAD_Mode
    signature: AEAD_Mode * get_aead(std::string_view name, Cipher_Dir direction)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/lib/modes/aead/aead.cpp:52,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/modes/aead/aead.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - algo
    - dir
    - provider
    argTypes:
    - std::string_view
    - Cipher_Dir
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: Botan::AEAD_Mode::create_or_throw
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.cpp
    functionUses: 4
    functionsReached:
    - Botan::AEAD_Mode::create
    - Lookup_Error
    linkageType: ''
    returnType: std::unique_ptr<AEAD_Mode>
    signature: "std::unique_ptr<AEAD_Mode> AEAD_Mode::create_or_throw(std::string_view
      algo,\n                                                      Cipher_Dir dir,\n
      \                                                     std::string_view provider)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/modes/aead/aead.cpp:60,1
    - Dst: std::make_unique<ChaCha20Poly1305_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:64,1
    - Dst: std::make_unique<ChaCha20Poly1305_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:66,1
    - Dst: std::make_unique<Ascon_AEAD128_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:74,1
    - Dst: std::make_unique<Ascon_AEAD128_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:76,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/modes/aead/aead.cpp:81,1
    - Dst: split_on
      Src: /src/botan/src/lib/modes/aead/aead.cpp:82,1
    - Dst: parse_algorithm_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:84,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/modes/aead/aead.cpp:86,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:96,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/lib/modes/aead/aead.cpp:101,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/modes/aead/aead.cpp:101,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/modes/aead/aead.cpp:108,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:109,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/lib/modes/aead/aead.cpp:112,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/aead/aead.cpp:112,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:115,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:119,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:120,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:121,1
    - Dst: std::make_unique<CCM_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:123,1
    - Dst: std::make_unique<CCM_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:125,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:125,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:131,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:132,1
    - Dst: std::make_unique<GCM_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:134,1
    - Dst: std::make_unique<GCM_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:136,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:136,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:142,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:143,1
    - Dst: std::make_unique<OCB_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:145,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:145,1
    - Dst: std::make_unique<OCB_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:147,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:147,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:153,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:154,1
    - Dst: auto::block_size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:154,1
    - Dst: std::make_unique<EAX_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:156,1
    - Dst: std::make_unique<EAX_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:158,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:158,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:164,1
    - Dst: std::make_unique<SIV_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:166,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:166,1
    - Dst: std::make_unique<SIV_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:168,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:168,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:175,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 3
    argNames:
    - algo
    - dir
    - provider
    argTypes:
    - std::string_view
    - Cipher_Dir
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 176
    functionName: Botan::AEAD_Mode::create
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.cpp
    functionUses: 25
    functionsReached:
    - parse_algorithm_name
    - std::make_unique<ChaCha20Poly1305_Decryption>
    - auto::block_size
    - std::make_unique<GCM_Encryption>
    - std::make_unique<ChaCha20Poly1305_Encryption>
    - SCAN_Name::arg_count
    - split_on
    - std::make_unique<OCB_Decryption>
    - std::make_unique<EAX_Encryption>
    - std::move
    - std::string_view::find
    - SCAN_Name::arg_as_integer
    - std::make_unique<SIV_Encryption>
    - SCAN_Name::algo_name
    - SCAN_Name::arg
    - std::vector::size
    - std::make_unique<CCM_Encryption>
    - std::vector::empty
    - BOTAN_UNUSED
    - Botan::AEAD_Mode::create
    - std::make_unique<Ascon_AEAD128_Decryption>
    - std::make_unique<GCM_Decryption>
    - std::make_unique<CCM_Decryption>
    - std::make_unique<SIV_Decryption>
    - std::make_unique<Ascon_AEAD128_Encryption>
    - std::make_unique<OCB_Encryption>
    - std::ostringstream::str
    - std::unique_ptr<AEAD_Mode>
    - std::make_unique<EAX_Decryption>
    - Botan::BlockCipher::create
    linkageType: ''
    returnType: std::unique_ptr<AEAD_Mode>
    signature: std::unique_ptr<AEAD_Mode> AEAD_Mode::create(std::string_view algo,
      Cipher_Dir dir, std::string_view provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/lib/modes/aead/aead.cpp:52,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/modes/aead/aead.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - algo
    - dir
    - provider
    argTypes:
    - std::string_view
    - Cipher_Dir
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: Botan::AEAD_Mode::create_or_throw
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.cpp
    functionUses: 4
    functionsReached:
    - Botan::AEAD_Mode::create
    - Lookup_Error
    linkageType: ''
    returnType: std::unique_ptr<AEAD_Mode>
    signature: "std::unique_ptr<AEAD_Mode> AEAD_Mode::create_or_throw(std::string_view
      algo,\n                                                      Cipher_Dir dir,\n
      \                                                     std::string_view provider)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/modes/aead/aead.cpp:60,1
    - Dst: std::make_unique<ChaCha20Poly1305_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:64,1
    - Dst: std::make_unique<ChaCha20Poly1305_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:66,1
    - Dst: std::make_unique<Ascon_AEAD128_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:74,1
    - Dst: std::make_unique<Ascon_AEAD128_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:76,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/modes/aead/aead.cpp:81,1
    - Dst: split_on
      Src: /src/botan/src/lib/modes/aead/aead.cpp:82,1
    - Dst: parse_algorithm_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:84,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/modes/aead/aead.cpp:86,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:96,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/lib/modes/aead/aead.cpp:101,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/modes/aead/aead.cpp:101,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/modes/aead/aead.cpp:108,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:109,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/lib/modes/aead/aead.cpp:112,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/aead/aead.cpp:112,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:115,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:119,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:120,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:121,1
    - Dst: std::make_unique<CCM_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:123,1
    - Dst: std::make_unique<CCM_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:125,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:125,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:131,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:132,1
    - Dst: std::make_unique<GCM_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:134,1
    - Dst: std::make_unique<GCM_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:136,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:136,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:142,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:143,1
    - Dst: std::make_unique<OCB_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:145,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:145,1
    - Dst: std::make_unique<OCB_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:147,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:147,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:153,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:154,1
    - Dst: auto::block_size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:154,1
    - Dst: std::make_unique<EAX_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:156,1
    - Dst: std::make_unique<EAX_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:158,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:158,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:164,1
    - Dst: std::make_unique<SIV_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:166,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:166,1
    - Dst: std::make_unique<SIV_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:168,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:168,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:175,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 3
    argNames:
    - algo
    - dir
    - provider
    argTypes:
    - std::string_view
    - Cipher_Dir
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 176
    functionName: Botan::AEAD_Mode::create
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.cpp
    functionUses: 27
    functionsReached:
    - parse_algorithm_name
    - std::make_unique<ChaCha20Poly1305_Decryption>
    - auto::block_size
    - std::make_unique<GCM_Encryption>
    - std::make_unique<ChaCha20Poly1305_Encryption>
    - SCAN_Name::arg_count
    - split_on
    - std::make_unique<OCB_Decryption>
    - std::make_unique<EAX_Encryption>
    - std::move
    - std::string_view::find
    - SCAN_Name::arg_as_integer
    - std::make_unique<SIV_Encryption>
    - SCAN_Name::algo_name
    - SCAN_Name::arg
    - std::vector::size
    - std::make_unique<CCM_Encryption>
    - std::vector::empty
    - BOTAN_UNUSED
    - Botan::AEAD_Mode::create
    - std::make_unique<Ascon_AEAD128_Decryption>
    - std::make_unique<GCM_Decryption>
    - std::make_unique<CCM_Decryption>
    - std::make_unique<SIV_Decryption>
    - std::make_unique<Ascon_AEAD128_Encryption>
    - std::make_unique<OCB_Encryption>
    - std::ostringstream::str
    - std::unique_ptr<AEAD_Mode>
    - std::make_unique<EAX_Decryption>
    - Botan::BlockCipher::create
    linkageType: ''
    returnType: std::unique_ptr<AEAD_Mode>
    signature: std::unique_ptr<AEAD_Mode> AEAD_Mode::create(std::string_view algo,
      Cipher_Dir dir, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::EAX_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_nonce_length(size_t /*length*/) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::EAX_Mode::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::EAX_Mode::block_size
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 1
    functionsReached:
    - Botan::EAX_Mode::block_size
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: Botan::EAX_Encryption::EAX_Encryption
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EAX_Encryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan::EAX_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::EAX_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: Botan::EAX_Decryption::EAX_Decryption
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EAX_Decryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:106,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:106,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: Botan::EAX_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached:
    - tag_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan::EAX_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::EAX_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_nonce_length(size_t /*length*/) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::EAX_Mode::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::EAX_Mode::block_size
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 2
    functionsReached:
    - Botan::EAX_Mode::block_size
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: Botan::EAX_Encryption::EAX_Encryption
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EAX_Encryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan::EAX_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::EAX_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: Botan::EAX_Decryption::EAX_Decryption
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EAX_Decryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:106,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:106,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: Botan::EAX_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached:
    - tag_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan::EAX_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:28,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:30,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:31,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - tag
    - block_size
    - ' mac'
    - in
    - length
    argTypes:
    - uint8_t
    - size_t
    - MessageAuthenticationCode
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: Botan::eax_prf
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::update
    - Botan::final
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> eax_prf(\n   uint8_t tag, size_t block_size,
      MessageAuthenticationCode& mac, const uint8_t in[], size_t length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:28,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:30,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:31,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - tag
    - block_size
    - ' mac'
    - in
    - length
    argTypes:
    - uint8_t
    - size_t
    - MessageAuthenticationCode
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: Botan::eax_prf
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::update
    - Botan::final
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> eax_prf(\n   uint8_t tag, size_t block_size,
      MessageAuthenticationCode& mac, const uint8_t in[], size_t length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:42,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:43,1
    - Dst: new_object
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:43,1
    - Dst: std::make_unique<CMAC>
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:44,1
    - Dst: new_object
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:44,1
    - Dst: output_length
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:45,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:46,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:46,1
    - Dst: Botan::EAX_Mode::name
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - cipher
    - tag_size
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: Botan::EAX_Mode::EAX_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::move
    - std::make_unique<CMAC>
    - Botan::EAX_Mode::name
    - std::make_unique<CTR_BE>
    - output_length
    - new_object
    - fmt
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::EAX_Mode(std::unique_ptr<BlockCipher> cipher, size_t
      tag_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:51,1
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:52,1
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:53,1
    - Dst: Botan::EAX_Mode::reset
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: Botan::EAX_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 1
    functionsReached:
    - Botan::EAX_Mode::reset
    - Botan::EAX_Mode::clear
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:58,1
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:59,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan::EAX_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 1
    functionsReached:
    - Botan::EAX_Mode::clear
    - final
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::name
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::EAX_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 2
    functionsReached:
    - Botan::EAX_Mode::name
    linkageType: ''
    returnType: std::string
    signature: std::string EAX_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::EAX_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EAX_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan::EAX_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - parallel_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t EAX_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::key_spec
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan::EAX_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 1
    functionsReached:
    - Botan::EAX_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification EAX_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:84,1
    - Dst: Botan::EAX_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Botan::EAX_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 1
    functionsReached:
    - Botan::EAX_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool EAX_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:95,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: Botan::EAX_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - set_key
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:103,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:104,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:105,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:107,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:107,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:107,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: Botan::EAX_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::EAX_Mode::block_size
    - BOTAN_ARG_CHECK
    - empty
    - Invalid_State
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - eax_prf
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::set_associated_data_n(size_t idx, std::span<const uint8_t>
      ad)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:111,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:112,1
    - Dst: Botan::EAX_Mode::name
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:112,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:115,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:115,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:117,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:117,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:117,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:119,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:120,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: Botan::EAX_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::EAX_Mode::block_size
    - data
    - set_iv
    - eax_prf
    - Invalid_IV_Length
    - size
    - Botan::EAX_Mode::valid_nonce_length
    - update
    - Botan::EAX_Mode::name
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:126,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:126,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:127,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: Botan::EAX_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - update
    - cipher
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t EAX_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:133,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:133,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:134,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:136,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:137,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:137,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:139,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:140,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:140,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:143,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:143,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:145,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:145,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:145,1
    - Dst: clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: Botan::EAX_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - xor_buf
    - tag_size
    - secure_vector::size
    - eax_prf
    - final
    - std::make_pair
    - block_size
    - clear
    - secure_vector::data
    - update
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EAX_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:151,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:151,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:152,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: Botan::EAX_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - update
    - cipher
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t EAX_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:158,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:158,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:159,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:159,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:160,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:161,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:163,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:163,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:165,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:168,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:169,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:174,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:177,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:178,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:178,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:183,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:183,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:183,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:185,1
    - Dst: clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:187,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 192
    functionName: Botan::EAX_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Authentication_Tag
    - resize
    - data
    - Botan::CT::is_equal
    - tag_size
    - eax_prf
    - final
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - clear
    - cipher
    - secure_vector::data
    - update
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EAX_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:28,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:30,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:31,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - tag
    - block_size
    - ' mac'
    - in
    - length
    argTypes:
    - uint8_t
    - size_t
    - MessageAuthenticationCode
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: Botan::eax_prf
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::update
    - Botan::final
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> eax_prf(\n   uint8_t tag, size_t block_size,
      MessageAuthenticationCode& mac, const uint8_t in[], size_t length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:28,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:30,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:31,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - tag
    - block_size
    - ' mac'
    - in
    - length
    argTypes:
    - uint8_t
    - size_t
    - MessageAuthenticationCode
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: Botan::eax_prf
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::update
    - Botan::final
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> eax_prf(\n   uint8_t tag, size_t block_size,
      MessageAuthenticationCode& mac, const uint8_t in[], size_t length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:42,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:43,1
    - Dst: new_object
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:43,1
    - Dst: std::make_unique<CMAC>
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:44,1
    - Dst: new_object
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:44,1
    - Dst: output_length
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:45,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:46,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:46,1
    - Dst: Botan::EAX_Mode::name
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - cipher
    - tag_size
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: Botan::EAX_Mode::EAX_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::move
    - std::make_unique<CMAC>
    - Botan::EAX_Mode::name
    - std::make_unique<CTR_BE>
    - output_length
    - new_object
    - fmt
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::EAX_Mode(std::unique_ptr<BlockCipher> cipher, size_t
      tag_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:51,1
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:52,1
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:53,1
    - Dst: Botan::EAX_Mode::reset
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: Botan::EAX_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 3
    functionsReached:
    - Botan::EAX_Mode::reset
    - Botan::EAX_Mode::clear
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:58,1
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:59,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan::EAX_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 2
    functionsReached:
    - Botan::EAX_Mode::clear
    - final
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::name
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::EAX_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 5
    functionsReached:
    - Botan::EAX_Mode::name
    linkageType: ''
    returnType: std::string
    signature: std::string EAX_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::EAX_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EAX_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan::EAX_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - parallel_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t EAX_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::key_spec
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan::EAX_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 2
    functionsReached:
    - Botan::EAX_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification EAX_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:84,1
    - Dst: Botan::EAX_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Botan::EAX_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 2
    functionsReached:
    - Botan::EAX_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool EAX_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:95,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: Botan::EAX_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - set_key
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:103,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:104,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:105,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:107,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:107,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:107,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: Botan::EAX_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::EAX_Mode::block_size
    - BOTAN_ARG_CHECK
    - empty
    - Invalid_State
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - eax_prf
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::set_associated_data_n(size_t idx, std::span<const uint8_t>
      ad)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EAX_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:111,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:112,1
    - Dst: Botan::EAX_Mode::name
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:112,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:115,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:115,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:117,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:117,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:117,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:119,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:120,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: Botan::EAX_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::EAX_Mode::block_size
    - data
    - set_iv
    - eax_prf
    - Invalid_IV_Length
    - size
    - Botan::EAX_Mode::valid_nonce_length
    - update
    - Botan::EAX_Mode::name
    linkageType: ''
    returnType: void
    signature: void EAX_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:126,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:126,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:127,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: Botan::EAX_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - update
    - cipher
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t EAX_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:133,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:133,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:134,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:136,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:137,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:137,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:139,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:140,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:140,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:143,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:143,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:145,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:145,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:145,1
    - Dst: clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: Botan::EAX_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - xor_buf
    - tag_size
    - secure_vector::size
    - eax_prf
    - final
    - std::make_pair
    - block_size
    - clear
    - secure_vector::data
    - update
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EAX_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:151,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:151,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:152,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: Botan::EAX_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - update
    - cipher
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t EAX_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:158,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:158,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:159,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:159,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:160,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:161,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:163,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:163,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:165,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:168,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:169,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:174,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:177,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:178,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:178,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:183,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:183,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:183,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:185,1
    - Dst: clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:187,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 192
    functionName: Botan::EAX_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Authentication_Tag
    - resize
    - data
    - Botan::CT::is_equal
    - tag_size
    - eax_prf
    - final
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - clear
    - cipher
    - secure_vector::data
    - update
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EAX_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<BlockCipher>::name
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:22,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:23,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:24,1
    - Dst: std::unique_ptr<BlockCipher>::new_object
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:24,1
    - Dst: std::make_unique<CMAC>
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:25,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:25,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: Botan::SIV_Mode::SIV_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::unique_ptr<BlockCipher>::new_object
    - std::move
    - std::unique_ptr<BlockCipher>::name
    - std::make_unique<CMAC>
    - std::make_unique<CTR_BE>
    - std::unique_ptr<BlockCipher>::block_size
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::SIV_Mode(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: SIV_Mode::~SIV_Mode()
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::~SIV_Mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:35,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:36,1
    - Dst: Botan::SIV_Mode::reset
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: Botan::SIV_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 1
    functionsReached:
    - Botan::SIV_Mode::clear
    - Botan::SIV_Mode::reset
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:41,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:42,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan::SIV_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 1
    functionsReached:
    - Botan::SIV_Mode::clear
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::SIV_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string SIV_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan::SIV_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SIV_Mode::valid_nonce_length(size_t /*length*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::SIV_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SIV_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::SIV_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SIV_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::SIV_Mode::requires_entire_message
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SIV_Mode::requires_entire_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::key_spec
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::SIV_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 1
    functionsReached:
    - Botan::SIV_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification SIV_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:72,1
    - Dst: Botan::SIV_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::SIV_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 1
    functionsReached:
    - Botan::SIV_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool SIV_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:76,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:77,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:77,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:78,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:78,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: Botan::SIV_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::last
    - Botan::SIV_Mode::clear
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - set_key
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::SIV_Mode::maximum_associated_data_inputs
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t SIV_Mode::maximum_associated_data_inputs() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::maximum_associated_data_inputs
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:87,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:89,1
    - Dst: Botan::SIV_Mode::name
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:89,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:89,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:92,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:93,1
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - n
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: Botan::SIV_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - resize
    - std::to_string
    - Botan::SIV_Mode::maximum_associated_data_inputs
    - size
    - Botan::SIV_Mode::name
    - process
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::set_associated_data_n(size_t n, std::span<const uint8_t>
      ad)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:100,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:101,1
    - Dst: Botan::SIV_Mode::name
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:101,1
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:105,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:107,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: Botan::SIV_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIV_Mode::valid_nonce_length
    - Invalid_IV_Length
    - Botan::SIV_Mode::clear
    - Botan::SIV_Mode::name
    - process
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:115,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: Botan::SIV_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    linkageType: ''
    returnType: size_t
    signature: size_t SIV_Mode::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:122,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:122,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:122,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:125,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:125,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:125,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:129,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:130,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:130,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:130,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:134,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:135,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:135,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:135,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:136,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:136,1
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:138,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:141,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:141,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:142,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:142,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:142,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:142,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:143,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - text
    - text_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 146
    functionName: Botan::SIV_Mode::S2V
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - poly_double_n
    - xor_buf
    - secure_vector::size
    - std::vector::data
    - final
    - process
    - block_size
    - secure_vector::data
    - update
    - empty
    - std::vector::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> SIV_Mode::S2V(const uint8_t* text, size_t text_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ctr
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:152,1
    - Dst: secure_vector<uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:152,1
    - Dst: secure_vector<uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - V
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: Botan::SIV_Mode::set_ctr_iv
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - secure_vector<uint8_t>::size
    - secure_vector<uint8_t>::data
    - ctr
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::set_ctr_iv(secure_vector<uint8_t> V)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:156,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:156,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:158,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:158,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:158,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:158,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:159,1
    - Dst: S2V
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:161,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:161,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:161,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:163,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:163,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:163,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:163,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:165,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:165,1
    - Dst: set_ctr_iv
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:166,1
    - Dst: ctr
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:167,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:167,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:167,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 169
    functionName: Botan::SIV_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - S2V
    - data
    - secure_vector::end
    - msg_buf
    - secure_vector::size
    - begin
    - secure_vector::begin
    - BOTAN_ARG_CHECK
    - insert
    - size
    - ctr
    - set_ctr_iv
    linkageType: ''
    returnType: void
    signature: void SIV_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:172,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:172,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:174,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:175,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:175,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:175,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:175,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:176,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:179,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:181,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:181,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:183,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:183,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:183,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:185,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:185,1
    - Dst: set_ctr_iv
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:186,1
    - Dst: ctr
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: S2V
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:191,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:191,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:191,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:191,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:193,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:194,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:197,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:197,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 198
    functionName: Botan::SIV_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - S2V
    - Invalid_Authentication_Tag
    - data
    - resize
    - tag_size
    - CT::is_equal<uint8_t>
    - msg_buf
    - secure_vector::size
    - begin
    - BOTAN_ARG_CHECK
    - insert
    - size
    - block_size
    - ctr
    - set_ctr_iv
    linkageType: ''
    returnType: void
    signature: void SIV_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<BlockCipher>::name
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:22,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:23,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:24,1
    - Dst: std::unique_ptr<BlockCipher>::new_object
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:24,1
    - Dst: std::make_unique<CMAC>
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:25,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:25,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: Botan::SIV_Mode::SIV_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::unique_ptr<BlockCipher>::new_object
    - std::move
    - std::unique_ptr<BlockCipher>::name
    - std::make_unique<CMAC>
    - std::make_unique<CTR_BE>
    - std::unique_ptr<BlockCipher>::block_size
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::SIV_Mode(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: SIV_Mode::~SIV_Mode()
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::~SIV_Mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:35,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:36,1
    - Dst: Botan::SIV_Mode::reset
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: Botan::SIV_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 5
    functionsReached:
    - Botan::SIV_Mode::clear
    - Botan::SIV_Mode::reset
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:41,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:42,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan::SIV_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 2
    functionsReached:
    - Botan::SIV_Mode::clear
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::SIV_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string SIV_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan::SIV_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SIV_Mode::valid_nonce_length(size_t /*length*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::SIV_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SIV_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::SIV_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SIV_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::SIV_Mode::requires_entire_message
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SIV_Mode::requires_entire_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::key_spec
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::SIV_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 2
    functionsReached:
    - Botan::SIV_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification SIV_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:72,1
    - Dst: Botan::SIV_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::SIV_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 2
    functionsReached:
    - Botan::SIV_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool SIV_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:76,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:77,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:77,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:78,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:78,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: Botan::SIV_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::last
    - Botan::SIV_Mode::clear
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - set_key
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::SIV_Mode::maximum_associated_data_inputs
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 1
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t SIV_Mode::maximum_associated_data_inputs() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::maximum_associated_data_inputs
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:87,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:89,1
    - Dst: Botan::SIV_Mode::name
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:89,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:89,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:92,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:93,1
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - n
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: Botan::SIV_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - resize
    - std::to_string
    - Botan::SIV_Mode::maximum_associated_data_inputs
    - size
    - Botan::SIV_Mode::name
    - process
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::set_associated_data_n(size_t n, std::span<const uint8_t>
      ad)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIV_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:100,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:101,1
    - Dst: Botan::SIV_Mode::name
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:101,1
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:105,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:107,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: Botan::SIV_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIV_Mode::valid_nonce_length
    - Invalid_IV_Length
    - Botan::SIV_Mode::clear
    - Botan::SIV_Mode::name
    - process
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:115,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: Botan::SIV_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    linkageType: ''
    returnType: size_t
    signature: size_t SIV_Mode::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:122,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:122,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:122,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:125,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:125,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:125,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:129,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:130,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:130,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:130,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:134,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:135,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:135,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:135,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:136,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:136,1
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:138,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:141,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:141,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:142,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:142,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:142,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:142,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:143,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - text
    - text_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 146
    functionName: Botan::SIV_Mode::S2V
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - poly_double_n
    - xor_buf
    - secure_vector::size
    - std::vector::data
    - final
    - process
    - block_size
    - secure_vector::data
    - update
    - empty
    - std::vector::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> SIV_Mode::S2V(const uint8_t* text, size_t text_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ctr
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:152,1
    - Dst: secure_vector<uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:152,1
    - Dst: secure_vector<uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - V
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: Botan::SIV_Mode::set_ctr_iv
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - secure_vector<uint8_t>::size
    - secure_vector<uint8_t>::data
    - ctr
    linkageType: ''
    returnType: void
    signature: void SIV_Mode::set_ctr_iv(secure_vector<uint8_t> V)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:156,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:156,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:158,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:158,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:158,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:158,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:159,1
    - Dst: S2V
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:161,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:161,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:161,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:163,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:163,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:163,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:163,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:165,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:165,1
    - Dst: set_ctr_iv
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:166,1
    - Dst: ctr
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:167,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:167,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:167,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 169
    functionName: Botan::SIV_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - S2V
    - data
    - secure_vector::end
    - msg_buf
    - secure_vector::size
    - begin
    - secure_vector::begin
    - BOTAN_ARG_CHECK
    - insert
    - size
    - ctr
    - set_ctr_iv
    linkageType: ''
    returnType: void
    signature: void SIV_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:172,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:172,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:174,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:175,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:175,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:175,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:175,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:176,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:179,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:181,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:181,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:183,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:183,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:183,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:185,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:185,1
    - Dst: set_ctr_iv
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:186,1
    - Dst: ctr
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:188,1
    - Dst: S2V
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:191,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:191,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:191,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:191,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:193,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:194,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:197,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:197,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 198
    functionName: Botan::SIV_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - S2V
    - Invalid_Authentication_Tag
    - data
    - resize
    - tag_size
    - CT::is_equal<uint8_t>
    - msg_buf
    - secure_vector::size
    - begin
    - BOTAN_ARG_CHECK
    - insert
    - size
    - block_size
    - ctr
    - set_ctr_iv
    linkageType: ''
    returnType: void
    signature: void SIV_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 84
    functionName: Botan::AEAD_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API AEAD_Mode
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::block_size
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::ctr
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StreamCipher
    signature: StreamCipher & ctr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::msg_buf
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & msg_buf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: Botan::SIV_Encryption
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached:
    - Botan::tag_size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API SIV_Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 84
    functionName: Botan::AEAD_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API AEAD_Mode
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::block_size
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::ctr
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StreamCipher
    signature: StreamCipher & ctr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::msg_buf
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & msg_buf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: Botan::SIV_Encryption
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached:
    - Botan::tag_size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API SIV_Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/siv/siv.h:115,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.h:115,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: SIV_Decryption
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - tag_size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API SIV_Decryption
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.h
    functionUses: 24
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::GCM_Mode::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: Botan::GCM_Encryption::GCM_Encryption
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void GCM_Encryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan::GCM_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::GCM_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: Botan::GCM_Decryption::GCM_Decryption
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void GCM_Decryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:105,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:105,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: Botan::GCM_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached:
    - tag_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::GCM_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::GCM_Mode::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: Botan::GCM_Encryption::GCM_Encryption
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void GCM_Encryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan::GCM_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::GCM_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: Botan::GCM_Decryption::GCM_Decryption
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void GCM_Decryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:105,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:105,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: Botan::GCM_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached:
    - tag_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::GCM_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<BlockCipher>::name
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:26,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:27,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:28,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:34,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:34,1
    - Dst: Botan::GCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:34,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:37,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:37,1
    - Dst: std::make_unique<GHASH>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:38,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - cipher
    - tag_size
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: Botan::GCM_Mode::GCM_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - fmt
    - Invalid_Argument
    - std::move
    - std::unique_ptr<BlockCipher>::name
    - std::make_unique<GHASH>
    - std::make_unique<CTR_BE>
    - std::unique_ptr<BlockCipher>::block_size
    - Botan::GCM_Mode::name
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::GCM_Mode(std::unique_ptr<BlockCipher> cipher, size_t
      tag_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: GCM_Mode::~GCM_Mode()
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::~GCM_Mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:44,1
    - Dst: Botan::GCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:45,1
    - Dst: Botan::GCM_Mode::reset
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: Botan::GCM_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 1
    functionsReached:
    - Botan::GCM_Mode::clear
    - Botan::GCM_Mode::reset
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_state
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::GCM_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 1
    functionsReached:
    - reset_state
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:54,1
    - Dst: Botan::GCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: Botan::GCM_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 1
    functionsReached:
    - Botan::GCM_Mode::tag_size
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string GCM_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::provider
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::GCM_Mode::provider
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 1
    functionsReached:
    - Botan::GCM_Mode::provider
    linkageType: ''
    returnType: std::string
    signature: std::string GCM_Mode::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::GCM_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GCM_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max<size_t>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::GCM_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - std::max<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t GCM_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::GCM_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GCM_Mode::valid_nonce_length(size_t len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::key_spec
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan::GCM_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 1
    functionsReached:
    - Botan::GCM_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification GCM_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Botan::GCM_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 1
    functionsReached:
    - Botan::GCM_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool GCM_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:83,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:86,1
    - Dst: encipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:89,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: Botan::GCM_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - encipher
    - set_iv
    - set_key
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:94,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan::GCM_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - set_associated_data
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::set_associated_data_n(size_t idx, std::span<const uint8_t>
      ad)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:99,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:100,1
    - Dst: Botan::GCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:100,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:103,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:104,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:107,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:107,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:107,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:110,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:110,1
    - Dst: nonce_hash
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:113,1
    - Dst: std::span<uint8_t, GCM_BS>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:113,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:116,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:116,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:116,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:118,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:118,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:118,1
    - Dst: encipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:119,1
    - Dst: start
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:121,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:122,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:122,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 123
    functionName: Botan::GCM_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - set_iv
    - copy_mem
    - Invalid_IV_Length
    - start
    - size
    - Botan::GCM_Mode::valid_nonce_length
    - std::span<uint8_t, GCM_BS>
    - encipher
    - clear_mem
    - nonce_hash
    - Botan::GCM_Mode::name
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:126,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:126,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:127,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: Botan::GCM_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - update_granularity
    - update
    - cipher
    linkageType: ''
    returnType: size_t
    signature: size_t GCM_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:133,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:133,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:134,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:135,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:137,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:138,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:141,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:141,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:141,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:142,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:142,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: Botan::GCM_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - data
    - tag_size
    - std::span
    - final
    - std::make_pair
    - BOTAN_ARG_CHECK
    - std::array::data
    - size
    - cipher
    - update
    linkageType: ''
    returnType: void
    signature: void GCM_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:146,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:146,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:147,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: Botan::GCM_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - update_granularity
    - update
    - cipher
    linkageType: ''
    returnType: size_t
    signature: size_t GCM_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:153,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:153,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:154,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:155,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:157,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:157,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:159,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:163,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:164,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:168,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:168,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:168,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:172,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:172,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:172,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:173,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 177
    functionName: Botan::GCM_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Authentication_Tag
    - resize
    - data
    - Botan::CT::is_equal
    - tag_size
    - std::span
    - final
    - BOTAN_ARG_CHECK
    - std::array::data
    - size
    - cipher
    - update
    linkageType: ''
    returnType: void
    signature: void GCM_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<BlockCipher>::name
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:26,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:27,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:28,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:34,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:34,1
    - Dst: Botan::GCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:34,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:37,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:37,1
    - Dst: std::make_unique<GHASH>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:38,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - cipher
    - tag_size
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: Botan::GCM_Mode::GCM_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - fmt
    - Invalid_Argument
    - std::move
    - std::unique_ptr<BlockCipher>::name
    - std::make_unique<GHASH>
    - std::make_unique<CTR_BE>
    - std::unique_ptr<BlockCipher>::block_size
    - Botan::GCM_Mode::name
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::GCM_Mode(std::unique_ptr<BlockCipher> cipher, size_t
      tag_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: GCM_Mode::~GCM_Mode()
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::~GCM_Mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:44,1
    - Dst: Botan::GCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:45,1
    - Dst: Botan::GCM_Mode::reset
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: Botan::GCM_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 2
    functionsReached:
    - Botan::GCM_Mode::clear
    - Botan::GCM_Mode::reset
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_state
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::GCM_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 2
    functionsReached:
    - reset_state
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:54,1
    - Dst: Botan::GCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: Botan::GCM_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 3
    functionsReached:
    - Botan::GCM_Mode::tag_size
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string GCM_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::provider
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::GCM_Mode::provider
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 2
    functionsReached:
    - Botan::GCM_Mode::provider
    linkageType: ''
    returnType: std::string
    signature: std::string GCM_Mode::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::GCM_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GCM_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max<size_t>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::GCM_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - std::max<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t GCM_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::GCM_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GCM_Mode::valid_nonce_length(size_t len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::key_spec
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan::GCM_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 2
    functionsReached:
    - Botan::GCM_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification GCM_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Botan::GCM_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 2
    functionsReached:
    - Botan::GCM_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool GCM_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:83,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:86,1
    - Dst: encipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:89,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: Botan::GCM_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - encipher
    - set_iv
    - set_key
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:94,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan::GCM_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - set_associated_data
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::set_associated_data_n(size_t idx, std::span<const uint8_t>
      ad)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:99,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:100,1
    - Dst: Botan::GCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:100,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:103,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:104,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:107,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:107,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:107,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:110,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:110,1
    - Dst: nonce_hash
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:113,1
    - Dst: std::span<uint8_t, GCM_BS>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:113,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:116,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:116,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:116,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:118,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:118,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:118,1
    - Dst: encipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:119,1
    - Dst: start
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:121,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:122,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:122,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 123
    functionName: Botan::GCM_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - set_iv
    - copy_mem
    - Invalid_IV_Length
    - start
    - size
    - Botan::GCM_Mode::valid_nonce_length
    - std::span<uint8_t, GCM_BS>
    - encipher
    - clear_mem
    - nonce_hash
    - Botan::GCM_Mode::name
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:126,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:126,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:127,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: Botan::GCM_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - update_granularity
    - update
    - cipher
    linkageType: ''
    returnType: size_t
    signature: size_t GCM_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:133,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:133,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:134,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:135,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:137,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:138,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:141,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:141,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:141,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:142,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:142,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: Botan::GCM_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - data
    - tag_size
    - std::span
    - final
    - std::make_pair
    - BOTAN_ARG_CHECK
    - std::array::data
    - size
    - cipher
    - update
    linkageType: ''
    returnType: void
    signature: void GCM_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:146,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:146,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:147,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: Botan::GCM_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - update_granularity
    - update
    - cipher
    linkageType: ''
    returnType: size_t
    signature: size_t GCM_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:153,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:153,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:154,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:155,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:157,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:157,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:159,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:163,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:164,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:168,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:168,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:168,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:172,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:172,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:172,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:173,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 177
    functionName: Botan::GCM_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Authentication_Tag
    - resize
    - data
    - Botan::CT::is_equal
    - tag_size
    - std::span
    - final
    - BOTAN_ARG_CHECK
    - std::array::data
    - size
    - cipher
    - update
    linkageType: ''
    returnType: void
    signature: void GCM_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::ChaCha20Poly1305_Mode::associated_data_requires_key
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool associated_data_requires_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::ChaCha20Poly1305_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Length_Specification
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::ChaCha20Poly1305_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - Key_Length_Specification
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::ChaCha20Poly1305_Mode::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::ChaCha20Poly1305_Mode::cfrg_version
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cfrg_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::ChaCha20Poly1305_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::ChaCha20Poly1305_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:91,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:91,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: Botan::ChaCha20Poly1305_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - tag_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::ChaCha20Poly1305_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::ChaCha20Poly1305_Mode::associated_data_requires_key
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool associated_data_requires_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::ChaCha20Poly1305_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Length_Specification
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::ChaCha20Poly1305_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - Key_Length_Specification
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification key_spec() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::ChaCha20Poly1305_Mode::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::ChaCha20Poly1305_Mode::cfrg_version
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cfrg_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::ChaCha20Poly1305_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::ChaCha20Poly1305_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:91,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:91,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: Botan::ChaCha20Poly1305_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - tag_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::ChaCha20Poly1305_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:18,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:18,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: Botan::ChaCha20Poly1305_Mode::ChaCha20Poly1305_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Botan::StreamCipher::create
    - Algorithm_Not_Found
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::ChaCha20Poly1305_Mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::ChaCha20Poly1305_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ChaCha20Poly1305_Mode::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::ChaCha20Poly1305_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ChaCha20Poly1305_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Botan::ChaCha20Poly1305_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ChaCha20Poly1305_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha20Poly1305_Mode::clear
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:37,1
    - Dst: Botan::ChaCha20Poly1305_Mode::clear
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:38,1
    - Dst: Botan::ChaCha20Poly1305_Mode::reset
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Botan::ChaCha20Poly1305_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 1
    functionsReached:
    - Botan::ChaCha20Poly1305_Mode::reset
    - Botan::ChaCha20Poly1305_Mode::clear
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha20Poly1305_Mode::clear
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan::ChaCha20Poly1305_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 1
    functionsReached:
    - Botan::ChaCha20Poly1305_Mode::clear
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha20Poly1305_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Botan::ChaCha20Poly1305_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 1
    functionsReached:
    - Botan::ChaCha20Poly1305_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool ChaCha20Poly1305_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::ChaCha20Poly1305_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - set_key
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:57,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:59,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:61,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:61,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan::ChaCha20Poly1305_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - Invalid_State
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::set_associated_data_n(size_t idx, std::span<const
      uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_le
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:66,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:66,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan::ChaCha20Poly1305_Mode::update_len
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - update
    - store_le
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::update_len(size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha20Poly1305_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:71,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:72,1
    - Dst: Botan::ChaCha20Poly1305_Mode::name
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:72,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:78,1
    - Dst: write_keystream
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:81,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:83,1
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:85,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:87,1
    - Dst: Botan::ChaCha20Poly1305_Mode::cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:89,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:90,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:92,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:92,1
    - Dst: Botan::ChaCha20Poly1305_Mode::update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:95,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 97
    functionName: Botan::ChaCha20Poly1305_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha20Poly1305_Mode::valid_nonce_length
    - set_iv
    - write_keystream
    - Invalid_IV_Length
    - Botan::ChaCha20Poly1305_Mode::update_len
    - secure_scrub_memory
    - Botan::ChaCha20Poly1305_Mode::cfrg_version
    - size
    - Botan::ChaCha20Poly1305_Mode::name
    - update
    - set_key
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::start_msg(const uint8_t nonce[], size_t
      nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:100,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: Botan::ChaCha20Poly1305_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - cipher1
    - update
    linkageType: ''
    returnType: size_t
    signature: size_t ChaCha20Poly1305_Encryption::process_msg(uint8_t buf[], size_t
      sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:107,1
    - Dst: cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:108,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:111,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:113,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:113,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:115,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:117,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:117,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:117,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:118,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:118,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: Botan::ChaCha20Poly1305_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - resize
    - tag_size
    - final
    - update
    - size
    - update_len
    - cfrg_version
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Encryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:124,1
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: Botan::ChaCha20Poly1305_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - cipher1
    - update
    linkageType: ''
    returnType: size_t
    signature: size_t ChaCha20Poly1305_Decryption::process_msg(uint8_t buf[], size_t
      sz)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:131,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:131,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:132,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:133,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:135,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:135,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:137,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:140,1
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:141,1
    - Dst: cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:145,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:148,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:150,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:150,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:153,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:156,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:163,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:163,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:164,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 167
    functionName: Botan::ChaCha20Poly1305_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Authentication_Tag
    - resize
    - data
    - Botan::CT::is_equal
    - tag_size
    - cfrg_version
    - final
    - BOTAN_ARG_CHECK
    - size
    - cipher1
    - update
    - update_len
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Decryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:18,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:18,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: Botan::ChaCha20Poly1305_Mode::ChaCha20Poly1305_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - Botan::StreamCipher::create
    - Algorithm_Not_Found
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::ChaCha20Poly1305_Mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::ChaCha20Poly1305_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ChaCha20Poly1305_Mode::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::ChaCha20Poly1305_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ChaCha20Poly1305_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Botan::ChaCha20Poly1305_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ChaCha20Poly1305_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha20Poly1305_Mode::clear
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:37,1
    - Dst: Botan::ChaCha20Poly1305_Mode::clear
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:38,1
    - Dst: Botan::ChaCha20Poly1305_Mode::reset
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: Botan::ChaCha20Poly1305_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 3
    functionsReached:
    - Botan::ChaCha20Poly1305_Mode::reset
    - Botan::ChaCha20Poly1305_Mode::clear
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha20Poly1305_Mode::clear
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan::ChaCha20Poly1305_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 2
    functionsReached:
    - Botan::ChaCha20Poly1305_Mode::clear
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha20Poly1305_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Botan::ChaCha20Poly1305_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 2
    functionsReached:
    - Botan::ChaCha20Poly1305_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool ChaCha20Poly1305_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::ChaCha20Poly1305_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - set_key
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:57,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:59,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:61,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:61,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan::ChaCha20Poly1305_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - Invalid_State
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::set_associated_data_n(size_t idx, std::span<const
      uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_le
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:66,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:66,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan::ChaCha20Poly1305_Mode::update_len
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 1
    functionsReached:
    - update
    - store_le
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::update_len(size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ChaCha20Poly1305_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:71,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:72,1
    - Dst: Botan::ChaCha20Poly1305_Mode::name
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:72,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:78,1
    - Dst: write_keystream
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:81,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:83,1
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:85,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:87,1
    - Dst: Botan::ChaCha20Poly1305_Mode::cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:89,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:90,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:92,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:92,1
    - Dst: Botan::ChaCha20Poly1305_Mode::update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:95,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 97
    functionName: Botan::ChaCha20Poly1305_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha20Poly1305_Mode::valid_nonce_length
    - set_iv
    - write_keystream
    - Invalid_IV_Length
    - Botan::ChaCha20Poly1305_Mode::update_len
    - secure_scrub_memory
    - Botan::ChaCha20Poly1305_Mode::cfrg_version
    - size
    - Botan::ChaCha20Poly1305_Mode::name
    - update
    - set_key
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Mode::start_msg(const uint8_t nonce[], size_t
      nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:100,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: Botan::ChaCha20Poly1305_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - cipher1
    - update
    linkageType: ''
    returnType: size_t
    signature: size_t ChaCha20Poly1305_Encryption::process_msg(uint8_t buf[], size_t
      sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:107,1
    - Dst: cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:108,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:111,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:113,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:113,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:115,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:117,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:117,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:117,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:118,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:118,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: Botan::ChaCha20Poly1305_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - resize
    - tag_size
    - final
    - update
    - size
    - update_len
    - cfrg_version
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Encryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:124,1
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: Botan::ChaCha20Poly1305_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - cipher1
    - update
    linkageType: ''
    returnType: size_t
    signature: size_t ChaCha20Poly1305_Decryption::process_msg(uint8_t buf[], size_t
      sz)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:131,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:131,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:132,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:133,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:135,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:135,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:137,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:140,1
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:141,1
    - Dst: cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:145,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:148,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:150,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:150,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:153,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:156,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:163,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:163,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:164,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 167
    functionName: Botan::ChaCha20Poly1305_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Authentication_Tag
    - resize
    - data
    - Botan::CT::is_equal
    - tag_size
    - cfrg_version
    - final
    - BOTAN_ARG_CHECK
    - size
    - cipher1
    - update
    - update_len
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Decryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::span<uint64_t, 2>
    - std::span<const uint64_t, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: Botan::xor2x64
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor2x64(std::span<uint64_t, 2> lhs, std::span<const uint64_t,
      2> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:26,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:26,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:27,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::as_array_of_uint64
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - BOTAN_DEBUG_ASSERT
    - Botan::load_le
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: auto
    signature: auto as_array_of_uint64(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::span<uint64_t, 2>
    - std::span<const uint64_t, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: Botan::xor2x64
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor2x64(std::span<uint64_t, 2> lhs, std::span<const uint64_t,
      2> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:26,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:26,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:27,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::as_array_of_uint64
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - BOTAN_DEBUG_ASSERT
    - Botan::load_le
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: auto
    signature: auto as_array_of_uint64(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::Ascon_AEAD128_Mode::Ascon_AEAD128_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::Ascon_AEAD128_Mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_AEAD128_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:49,1
    - Dst: Botan::Ascon_AEAD128_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:50,1
    - Dst: Botan::Ascon_AEAD128_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: Botan::Ascon_AEAD128_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 1
    functionsReached:
    - Botan::Ascon_AEAD128_Mode::clear
    - Botan::Ascon_AEAD128_Mode::reset
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan::Ascon_AEAD128_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_AEAD128_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:61,1
    - Dst: as_array_of_uint64<2>
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: Botan::Ascon_AEAD128_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - as_array_of_uint64<2>
    - Botan::Ascon_AEAD128_Mode::clear
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:66,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:67,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:67,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan::Ascon_AEAD128_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::set_associated_data_n(size_t idx, std::span<const
      uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:71,1
    - Dst: Botan::Ascon_AEAD128_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:71,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:73,1
    - Dst: Botan::Ascon_AEAD128_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:73,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:74,1
    - Dst: state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:76,1
    - Dst: concat
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:76,1
    - Dst: as_array_of_uint64<2>
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:76,1
    - Dst: initial_permute
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:77,1
    - Dst: xor2x64
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:78,1
    - Dst: range_of_state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: Botan::Ascon_AEAD128_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - xor2x64
    - concat
    - Botan::Ascon_AEAD128_Mode::has_keying_material
    - Botan::Ascon_AEAD128_Mode::valid_nonce_length
    - state
    - as_array_of_uint64<2>
    - range_of_state
    - BOTAN_ARG_CHECK
    - initial_permute
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:84,1
    - Dst: Botan::Ascon_AEAD128_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:84,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:85,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:88,1
    - Dst: absorb
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:89,1
    - Dst: intermediate_finish
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:90,1
    - Dst: state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: Botan::Ascon_AEAD128_Mode::maybe_absorb_associated_data
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ascon_AEAD128_Mode::has_keying_material
    - BOTAN_DEBUG_ASSERT
    - intermediate_finish
    - state
    - absorb
    - empty
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::maybe_absorb_associated_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:99,1
    - Dst: xor2x64
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:101,1
    - Dst: range_of_state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:101,1
    - Dst: finish
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:102,1
    - Dst: xor2x64
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:103,1
    - Dst: range_of_state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:103,1
    - Dst: store_le
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:105,1
    - Dst: range_of_state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:105,1
    - Dst: Botan::Ascon_AEAD128_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: Botan::Ascon_AEAD128_Mode::calculate_tag_and_finish
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - xor2x64
    - finish
    - BOTAN_DEBUG_ASSERT
    - range_of_state
    - store_le
    - Botan::Ascon_AEAD128_Mode::reset
    linkageType: ''
    returnType: std::array<uint8_t, 16>
    signature: std::array<uint8_t, 16> Ascon_AEAD128_Mode::calculate_tag_and_finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:112,1
    - Dst: has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:112,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:113,1
    - Dst: maybe_absorb_associated_data
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:115,1
    - Dst: percolate_in
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: Botan::Ascon_AEAD128_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - maybe_absorb_associated_data
    - has_keying_material
    - percolate_in
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t Ascon_AEAD128_Encryption::process_msg(uint8_t buf[], size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:121,1
    - Dst: has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:121,1
    - Dst: subspan
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:123,1
    - Dst: Botan::Ascon_AEAD128_Encryption::process_msg
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:124,1
    - Dst: auto::data
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:124,1
    - Dst: auto::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:124,1
    - Dst: calculate_tag_and_finish
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:125,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:126,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:126,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:126,1
    - Dst: auto::end
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' final_block'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: Botan::Ascon_AEAD128_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ascon_AEAD128_Encryption::process_msg
    - auto::begin
    - auto::data
    - subspan
    - auto::size
    - insert
    - end
    - has_keying_material
    - auto::end
    - calculate_tag_and_finish
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Encryption::finish_msg(secure_vector<uint8_t>& final_block,
      size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:130,1
    - Dst: has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:130,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:131,1
    - Dst: maybe_absorb_associated_data
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:133,1
    - Dst: percolate_out
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: Botan::Ascon_AEAD128_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - maybe_absorb_associated_data
    - has_keying_material
    - percolate_out
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t Ascon_AEAD128_Decryption::process_msg(uint8_t buf[], size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:139,1
    - Dst: has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:139,1
    - Dst: subspan
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:141,1
    - Dst: auto::first
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:142,1
    - Dst: auto::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:142,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:142,1
    - Dst: auto::last
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:143,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:143,1
    - Dst: Botan::Ascon_AEAD128_Decryption::process_msg
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:145,1
    - Dst: auto::data
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:145,1
    - Dst: auto::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:145,1
    - Dst: constant_time_compare
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:146,1
    - Dst: calculate_tag_and_finish
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:146,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:147,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:150,1
    - Dst: auto::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' final_block'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: Botan::Ascon_AEAD128_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - auto::last
    - Invalid_Authentication_Tag
    - resize
    - auto::data
    - auto::size
    - subspan
    - tag_size
    - Botan::Ascon_AEAD128_Decryption::process_msg
    - constant_time_compare
    - has_keying_material
    - auto::first
    - calculate_tag_and_finish
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Decryption::finish_msg(secure_vector<uint8_t>& final_block,
      size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::span<uint64_t, 2>
    - std::span<const uint64_t, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: Botan::xor2x64
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor2x64(std::span<uint64_t, 2> lhs, std::span<const uint64_t,
      2> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:26,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:26,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:27,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::as_array_of_uint64
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - BOTAN_DEBUG_ASSERT
    - Botan::load_le
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: auto
    signature: auto as_array_of_uint64(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - std::span<uint64_t, 2>
    - std::span<const uint64_t, 2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: Botan::xor2x64
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor2x64(std::span<uint64_t, 2> lhs, std::span<const uint64_t,
      2> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:26,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:26,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:27,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::as_array_of_uint64
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - BOTAN_DEBUG_ASSERT
    - Botan::load_le
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: auto
    signature: auto as_array_of_uint64(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::Ascon_AEAD128_Mode::Ascon_AEAD128_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::Ascon_AEAD128_Mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_AEAD128_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:49,1
    - Dst: Botan::Ascon_AEAD128_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:50,1
    - Dst: Botan::Ascon_AEAD128_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: Botan::Ascon_AEAD128_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 3
    functionsReached:
    - Botan::Ascon_AEAD128_Mode::clear
    - Botan::Ascon_AEAD128_Mode::reset
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan::Ascon_AEAD128_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_AEAD128_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:61,1
    - Dst: as_array_of_uint64<2>
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: Botan::Ascon_AEAD128_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - as_array_of_uint64<2>
    - Botan::Ascon_AEAD128_Mode::clear
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:66,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:67,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:67,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan::Ascon_AEAD128_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::set_associated_data_n(size_t idx, std::span<const
      uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:71,1
    - Dst: Botan::Ascon_AEAD128_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:71,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:73,1
    - Dst: Botan::Ascon_AEAD128_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:73,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:74,1
    - Dst: state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:76,1
    - Dst: concat
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:76,1
    - Dst: as_array_of_uint64<2>
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:76,1
    - Dst: initial_permute
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:77,1
    - Dst: xor2x64
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:78,1
    - Dst: range_of_state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: Botan::Ascon_AEAD128_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - xor2x64
    - concat
    - Botan::Ascon_AEAD128_Mode::has_keying_material
    - Botan::Ascon_AEAD128_Mode::valid_nonce_length
    - state
    - as_array_of_uint64<2>
    - range_of_state
    - BOTAN_ARG_CHECK
    - initial_permute
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:84,1
    - Dst: Botan::Ascon_AEAD128_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:84,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:85,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:88,1
    - Dst: absorb
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:89,1
    - Dst: intermediate_finish
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:90,1
    - Dst: state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: Botan::Ascon_AEAD128_Mode::maybe_absorb_associated_data
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ascon_AEAD128_Mode::has_keying_material
    - BOTAN_DEBUG_ASSERT
    - intermediate_finish
    - state
    - absorb
    - empty
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Mode::maybe_absorb_associated_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:99,1
    - Dst: xor2x64
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:101,1
    - Dst: range_of_state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:101,1
    - Dst: finish
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:102,1
    - Dst: xor2x64
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:103,1
    - Dst: range_of_state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:103,1
    - Dst: store_le
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:105,1
    - Dst: range_of_state
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:105,1
    - Dst: Botan::Ascon_AEAD128_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: Botan::Ascon_AEAD128_Mode::calculate_tag_and_finish
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - xor2x64
    - finish
    - BOTAN_DEBUG_ASSERT
    - range_of_state
    - store_le
    - Botan::Ascon_AEAD128_Mode::reset
    linkageType: ''
    returnType: std::array<uint8_t, 16>
    signature: std::array<uint8_t, 16> Ascon_AEAD128_Mode::calculate_tag_and_finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:112,1
    - Dst: has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:112,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:113,1
    - Dst: maybe_absorb_associated_data
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:115,1
    - Dst: percolate_in
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: Botan::Ascon_AEAD128_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 1
    functionsReached:
    - maybe_absorb_associated_data
    - has_keying_material
    - percolate_in
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t Ascon_AEAD128_Encryption::process_msg(uint8_t buf[], size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:121,1
    - Dst: has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:121,1
    - Dst: subspan
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:123,1
    - Dst: Botan::Ascon_AEAD128_Encryption::process_msg
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:124,1
    - Dst: auto::data
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:124,1
    - Dst: auto::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:124,1
    - Dst: calculate_tag_and_finish
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:125,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:126,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:126,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:126,1
    - Dst: auto::end
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' final_block'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: Botan::Ascon_AEAD128_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ascon_AEAD128_Encryption::process_msg
    - auto::begin
    - auto::data
    - subspan
    - auto::size
    - insert
    - end
    - has_keying_material
    - auto::end
    - calculate_tag_and_finish
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Encryption::finish_msg(secure_vector<uint8_t>& final_block,
      size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:130,1
    - Dst: has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:130,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:131,1
    - Dst: maybe_absorb_associated_data
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:133,1
    - Dst: percolate_out
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: Botan::Ascon_AEAD128_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 1
    functionsReached:
    - maybe_absorb_associated_data
    - has_keying_material
    - percolate_out
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t Ascon_AEAD128_Decryption::process_msg(uint8_t buf[], size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:139,1
    - Dst: has_keying_material
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:139,1
    - Dst: subspan
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:141,1
    - Dst: auto::first
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:142,1
    - Dst: auto::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:142,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:142,1
    - Dst: auto::last
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:143,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:143,1
    - Dst: Botan::Ascon_AEAD128_Decryption::process_msg
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:145,1
    - Dst: auto::data
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:145,1
    - Dst: auto::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:145,1
    - Dst: constant_time_compare
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:146,1
    - Dst: calculate_tag_and_finish
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:146,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:147,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:150,1
    - Dst: auto::size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' final_block'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: Botan::Ascon_AEAD128_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.cpp
    functionUses: 0
    functionsReached:
    - auto::last
    - Invalid_Authentication_Tag
    - resize
    - auto::data
    - auto::size
    - subspan
    - tag_size
    - Botan::Ascon_AEAD128_Decryption::process_msg
    - constant_time_compare
    - has_keying_material
    - auto::first
    - calculate_tag_and_finish
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Ascon_AEAD128_Decryption::finish_msg(secure_vector<uint8_t>& final_block,
      size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan::Ascon_AEAD128_Mode::associated_data_requires_key
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool associated_data_requires_key() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan::Ascon_AEAD128_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::Ascon_AEAD128_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t update_granularity() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::Ascon_AEAD128_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ideal_granularity() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Length_Specification
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::Ascon_AEAD128_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached:
    - Key_Length_Specification
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification key_spec() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::Ascon_AEAD128_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_nonce_length(size_t n) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::Ascon_AEAD128_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t default_nonce_length() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::Ascon_AEAD128_Mode::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::Ascon_AEAD128_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 4
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::Ascon_AEAD128_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::Ascon_AEAD128_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:86,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:86,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: Botan::Ascon_AEAD128_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached:
    - tag_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::Ascon_AEAD128_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan::Ascon_AEAD128_Mode::associated_data_requires_key
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool associated_data_requires_key() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan::Ascon_AEAD128_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::Ascon_AEAD128_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t update_granularity() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::Ascon_AEAD128_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ideal_granularity() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Length_Specification
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::Ascon_AEAD128_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached:
    - Key_Length_Specification
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification key_spec() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::Ascon_AEAD128_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_nonce_length(size_t n) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::Ascon_AEAD128_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t default_nonce_length() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::Ascon_AEAD128_Mode::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::Ascon_AEAD128_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 4
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_keying_material() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::Ascon_AEAD128_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::Ascon_AEAD128_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:86,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:86,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: Botan::Ascon_AEAD128_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached:
    - tag_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::Ascon_AEAD128_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ascon_aead128/ascon_aead128.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OCB_Mode
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:62,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 93
    functionName: Botan::AEAD_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached:
    - OCB_Mode
    - Botan::size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API AEAD_Mode
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::block_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::par_blocks
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t par_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::par_bytes
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached:
    - Botan::size
    linkageType: ''
    returnType: size_t
    signature: size_t par_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: Botan::OCB_Encryption
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached:
    - Botan::tag_size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API OCB_Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OCB_Mode
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:62,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 93
    functionName: Botan::AEAD_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached:
    - OCB_Mode
    - Botan::size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API AEAD_Mode
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::block_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::par_blocks
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t par_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::par_bytes
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached:
    - Botan::size
    linkageType: ''
    returnType: size_t
    signature: size_t par_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: Botan::OCB_Encryption
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached:
    - Botan::tag_size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API OCB_Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:124,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:124,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: OCB_Decryption
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - tag_size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API OCB_Decryption
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.h
    functionUses: 24
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:24,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:24,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:25,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:26,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:27,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:27,1
    - Dst: reserve
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:38,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:39,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:39,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:39,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:41,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:42,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:42,1
    - Dst: back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:42,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' cipher'
    argTypes:
    - BlockCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: Botan::L_computer::L_computer
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - parallel_bytes
    - resize
    - Botan::L_computer::poly_double
    - dollar
    - reserve
    - block_size
    - size
    - back
    - push_back
    - star
    - encrypt
    linkageType: ''
    returnType: void
    signature: void L_computer(const BlockCipher& cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' offset'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::L_computer::init
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init(const secure_vector<uint8_t>& offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::L_computer::initialized
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool initialized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& star() const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & star() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& dollar() const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & dollar() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& offset() const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:59,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:60,1
    - Dst: Botan::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:60,1
    - Dst: back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: '& get(size_t i) const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_double
    - Botan::size
    - back
    - push_back
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & get(size_t i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:67,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:69,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:72,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:73,1
    - Dst: var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:80,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:80,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:82,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:82,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:82,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:85,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:85,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:88,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:88,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:88,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:89,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:89,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:92,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:92,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:92,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:93,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:93,1
    - Dst: var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:101,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:101,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:102,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:102,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:102,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:103,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:103,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - block_index
    - blocks
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 108
    functionName: Botan::L_computer::compute_offsets
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - data
    - xor_buf
    - BOTAN_ASSERT
    - get
    - copy_mem
    - var_ctz32
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * compute_offsets(size_t block_index, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:112,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:113,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:113,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:113,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: Botan::L_computer::poly_double
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 1
    functionsReached:
    - poly_double_n
    - data
    - secure_vector::size
    - size
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> poly_double(const secure_vector<uint8_t>& in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:130,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: Botan::var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:144,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:149,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:151,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:151,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ' L'
    - ' cipher'
    - ad
    - ad_len
    argTypes:
    - L_computer
    - BlockCipher
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: Botan::ocb_hash
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::encrypt
    - static_cast<uint32_t>
    - Botan::var_ctz32
    - Botan::block_size
    - secure_vector::data
    - Botan::xor_buf
    - star
    - Botan::get
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ocb_hash(const L_computer& L, const BlockCipher&
      cipher, const uint8_t ad[], size_t ad_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:130,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: Botan::var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:144,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:149,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:151,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:151,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ' L'
    - ' cipher'
    - ad
    - ad_len
    argTypes:
    - L_computer
    - BlockCipher
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: Botan::ocb_hash
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::encrypt
    - static_cast<uint32_t>
    - Botan::var_ctz32
    - Botan::block_size
    - secure_vector::data
    - Botan::xor_buf
    - star
    - Botan::get
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ocb_hash(const L_computer& L, const BlockCipher&
      cipher, const uint8_t ad[], size_t ad_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:163,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:164,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:165,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:167,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:168,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:169,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:176,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 2
    argNames:
    - cipher
    - tag_size
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 180
    functionName: Botan::OCB_Mode::OCB_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - parallel_bytes
    - block_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::OCB_Mode(std::unique_ptr<BlockCipher> cipher, size_t
      tag_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: OCB_Mode::~OCB_Mode()
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::~OCB_Mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:185,1
    - Dst: Botan::OCB_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:186,1
    - Dst: Botan::OCB_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: Botan::OCB_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 1
    functionsReached:
    - Botan::OCB_Mode::clear
    - Botan::OCB_Mode::reset
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:192,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:193,1
    - Dst: Botan::OCB_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:194,1
    - Dst: Botan::OCB_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: Botan::OCB_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 1
    functionsReached:
    - Botan::OCB_Mode::clear
    - zeroise
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:202,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: Botan::OCB_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: bool
    signature: bool OCB_Mode::valid_nonce_length(size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Mode::name
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: Botan::OCB_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 1
    functionsReached:
    - Botan::OCB_Mode::name
    linkageType: ''
    returnType: std::string
    signature: std::string OCB_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: Botan::OCB_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t OCB_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: Botan::OCB_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t OCB_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Mode::key_spec
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: Botan::OCB_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 1
    functionsReached:
    - Botan::OCB_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification OCB_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: Botan::OCB_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 1
    functionsReached:
    - Botan::OCB_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool OCB_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:230,1
    - Dst: std::make_unique<L_computer>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: Botan::OCB_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<L_computer>
    - set_key
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:235,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:236,1
    - Dst: ocb_hash
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:237,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:237,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: Botan::OCB_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - ocb_hash
    - BOTAN_ARG_CHECK
    - assert_key_material_set
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::set_associated_data_n(size_t idx, std::span<const uint8_t>
      ad)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:241,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:248,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:248,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:250,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:251,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:251,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:251,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:253,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:254,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:254,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:266,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:290,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:294,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:298,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:302,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:313,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:313,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:315,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 322
    functionName: '& OCB_Mode::update_nonce(const uint8_t nonce[], size_t nonce_len)'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - BOTAN_ASSERT
    - tag_size
    - copy_mem
    - static_cast<uint16_t>
    - block_size
    - size
    - clear_mem
    - push_back
    - static_cast<uint8_t>
    - encrypt
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & OCB_Mode::update_nonce(const uint8_t nonce[],
      size_t nonce_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:325,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:326,1
    - Dst: Botan::OCB_Mode::name
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:326,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:329,1
    - Dst: init
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:331,1
    - Dst: update_nonce
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:331,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 334
    functionName: Botan::OCB_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - assert_key_material_set
    - Botan::OCB_Mode::valid_nonce_length
    - init
    - update_nonce
    - zeroise
    - Botan::OCB_Mode::name
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:337,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:338,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:338,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:340,1
    - Dst: min
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:343,1
    - Dst: par_blocks
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:343,1
    - Dst: compute_offsets
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:346,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:348,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:348,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:350,1
    - Dst: encrypt_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:351,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - blocks
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 358
    functionName: Botan::OCB_Encryption::encrypt
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - initialized
    - min
    - data
    - par_blocks
    - xor_buf
    - encrypt_n
    - assert_key_material_set
    - block_size
    - compute_offsets
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void OCB_Encryption::encrypt(uint8_t buffer[], size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:361,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:361,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:362,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: Botan::OCB_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - block_size
    - BOTAN_ARG_CHECK
    - Botan::OCB_Encryption::encrypt
    - update_granularity
    linkageType: ''
    returnType: size_t
    signature: size_t OCB_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:367,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:368,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:368,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:370,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:372,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:372,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:373,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:374,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:382,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:383,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:386,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:389,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:389,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:393,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:396,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:397,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:397,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:400,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:406,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:407,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:407,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:407,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:410,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:410,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:410,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:411,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:412,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:412,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:412,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:414,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:414,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:414,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 418
    functionName: Botan::OCB_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - initialized
    - data
    - dollar
    - xor_buf
    - BOTAN_ASSERT
    - tag_size
    - Botan::OCB_Encryption::encrypt
    - std::make_pair
    - offset
    - BOTAN_ARG_CHECK
    - assert_key_material_set
    - block_size
    - size
    - secure_vector::data
    - zeroise
    - star
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void OCB_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:421,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:422,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:422,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:424,1
    - Dst: min
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:427,1
    - Dst: par_blocks
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:427,1
    - Dst: compute_offsets
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:430,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:432,1
    - Dst: decrypt_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:433,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:434,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:436,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - blocks
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 442
    functionName: Botan::OCB_Decryption::decrypt
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - initialized
    - min
    - data
    - par_blocks
    - xor_buf
    - decrypt_n
    - assert_key_material_set
    - block_size
    - compute_offsets
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void OCB_Decryption::decrypt(uint8_t buffer[], size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:445,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:445,1
    - Dst: Botan::OCB_Decryption::decrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:446,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: Botan::OCB_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Decryption::decrypt
    - BOTAN_ARG_CHECK
    - block_size
    - update_granularity
    linkageType: ''
    returnType: size_t
    signature: size_t OCB_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:451,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:452,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:452,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:454,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:456,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:456,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:457,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:458,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:460,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:460,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:462,1
    - Dst: Botan::OCB_Decryption::decrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:470,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:471,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:474,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:478,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:480,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:481,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:481,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:483,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:483,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:487,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:493,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:494,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:494,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:494,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:497,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:498,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:502,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:508,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:508,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:508,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:509,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 514
    functionName: Botan::OCB_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::CT::is_equal
    - xor_buf
    - BOTAN_ASSERT
    - block_size
    - secure_vector::data
    - star
    - Invalid_Authentication_Tag
    - offset
    - BOTAN_ARG_CHECK
    - BOTAN_STATE_CHECK
    - initialized
    - dollar
    - assert_key_material_set
    - encrypt
    - resize
    - tag_size
    - size
    - Botan::OCB_Decryption::decrypt
    - zeroise
    linkageType: ''
    returnType: void
    signature: void OCB_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:24,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:24,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:25,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:26,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:27,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:27,1
    - Dst: reserve
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:38,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:39,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:39,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:39,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:41,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:42,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:42,1
    - Dst: back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:42,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' cipher'
    argTypes:
    - BlockCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: Botan::L_computer::L_computer
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - parallel_bytes
    - resize
    - Botan::L_computer::poly_double
    - dollar
    - reserve
    - block_size
    - size
    - back
    - push_back
    - star
    - encrypt
    linkageType: ''
    returnType: void
    signature: void L_computer(const BlockCipher& cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' offset'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::L_computer::init
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init(const secure_vector<uint8_t>& offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::L_computer::initialized
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool initialized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& star() const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & star() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& dollar() const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & dollar() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& offset() const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:59,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:60,1
    - Dst: poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:60,1
    - Dst: back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: '& get(size_t i) const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - size
    - poly_double
    - back
    - push_back
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & get(size_t i) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:67,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:69,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:72,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:73,1
    - Dst: var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:80,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:80,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:82,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:82,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:82,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:85,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:85,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:88,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:88,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:88,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:89,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:89,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:92,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:92,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:92,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:93,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:93,1
    - Dst: var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:101,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:101,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:102,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:102,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:102,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:103,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:103,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - block_index
    - blocks
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 108
    functionName: Botan::L_computer::compute_offsets
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - data
    - xor_buf
    - BOTAN_ASSERT
    - get
    - copy_mem
    - var_ctz32
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * compute_offsets(size_t block_index, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:112,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:113,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:113,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:113,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: Botan::L_computer::poly_double
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 2
    functionsReached:
    - poly_double_n
    - data
    - secure_vector::size
    - size
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> poly_double(const secure_vector<uint8_t>& in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:130,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: Botan::var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:144,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:149,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:151,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:151,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ' L'
    - ' cipher'
    - ad
    - ad_len
    argTypes:
    - L_computer
    - BlockCipher
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: Botan::ocb_hash
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::encrypt
    - static_cast<uint32_t>
    - Botan::var_ctz32
    - Botan::block_size
    - secure_vector::data
    - Botan::xor_buf
    - star
    - Botan::get
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ocb_hash(const L_computer& L, const BlockCipher&
      cipher, const uint8_t ad[], size_t ad_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:130,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: Botan::var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:141,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:144,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:149,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:151,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:151,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ' L'
    - ' cipher'
    - ad
    - ad_len
    argTypes:
    - L_computer
    - BlockCipher
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: Botan::ocb_hash
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::encrypt
    - static_cast<uint32_t>
    - Botan::var_ctz32
    - Botan::block_size
    - secure_vector::data
    - Botan::xor_buf
    - star
    - Botan::get
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ocb_hash(const L_computer& L, const BlockCipher&
      cipher, const uint8_t ad[], size_t ad_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:163,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:164,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:165,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:167,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:168,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:169,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:176,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 2
    argNames:
    - cipher
    - tag_size
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 180
    functionName: Botan::OCB_Mode::OCB_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - parallel_bytes
    - block_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::OCB_Mode(std::unique_ptr<BlockCipher> cipher, size_t
      tag_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: OCB_Mode::~OCB_Mode()
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::~OCB_Mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:185,1
    - Dst: Botan::OCB_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:186,1
    - Dst: Botan::OCB_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: Botan::OCB_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 3
    functionsReached:
    - Botan::OCB_Mode::clear
    - Botan::OCB_Mode::reset
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:192,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:193,1
    - Dst: Botan::OCB_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:194,1
    - Dst: Botan::OCB_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: Botan::OCB_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 2
    functionsReached:
    - Botan::OCB_Mode::clear
    - zeroise
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:202,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: Botan::OCB_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 1
    functionsReached:
    - block_size
    linkageType: ''
    returnType: bool
    signature: bool OCB_Mode::valid_nonce_length(size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Mode::name
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: Botan::OCB_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 3
    functionsReached:
    - Botan::OCB_Mode::name
    linkageType: ''
    returnType: std::string
    signature: std::string OCB_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: Botan::OCB_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t OCB_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: Botan::OCB_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t OCB_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Mode::key_spec
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: Botan::OCB_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 2
    functionsReached:
    - Botan::OCB_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification OCB_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: Botan::OCB_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 2
    functionsReached:
    - Botan::OCB_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool OCB_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:230,1
    - Dst: std::make_unique<L_computer>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: Botan::OCB_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<L_computer>
    - set_key
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:235,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:236,1
    - Dst: ocb_hash
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:237,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:237,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: Botan::OCB_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - ocb_hash
    - BOTAN_ARG_CHECK
    - assert_key_material_set
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::set_associated_data_n(size_t idx, std::span<const uint8_t>
      ad)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:241,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:248,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:248,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:250,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:251,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:251,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:251,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:253,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:254,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:254,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:266,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:290,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:294,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:298,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:302,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:313,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:313,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:315,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 322
    functionName: '& OCB_Mode::update_nonce(const uint8_t nonce[], size_t nonce_len)'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - BOTAN_ASSERT
    - tag_size
    - copy_mem
    - static_cast<uint16_t>
    - block_size
    - size
    - clear_mem
    - push_back
    - static_cast<uint8_t>
    - encrypt
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & OCB_Mode::update_nonce(const uint8_t nonce[],
      size_t nonce_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OCB_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:325,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:326,1
    - Dst: Botan::OCB_Mode::name
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:326,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:329,1
    - Dst: init
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:331,1
    - Dst: update_nonce
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:331,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 334
    functionName: Botan::OCB_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - assert_key_material_set
    - Botan::OCB_Mode::valid_nonce_length
    - init
    - update_nonce
    - zeroise
    - Botan::OCB_Mode::name
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:337,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:338,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:338,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:340,1
    - Dst: min
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:343,1
    - Dst: par_blocks
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:343,1
    - Dst: compute_offsets
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:346,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:348,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:348,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:350,1
    - Dst: encrypt_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:351,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - blocks
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 358
    functionName: Botan::OCB_Encryption::encrypt
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 2
    functionsReached:
    - initialized
    - min
    - data
    - par_blocks
    - xor_buf
    - encrypt_n
    - assert_key_material_set
    - block_size
    - compute_offsets
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void OCB_Encryption::encrypt(uint8_t buffer[], size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:361,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:361,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:362,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: Botan::OCB_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - block_size
    - BOTAN_ARG_CHECK
    - Botan::OCB_Encryption::encrypt
    - update_granularity
    linkageType: ''
    returnType: size_t
    signature: size_t OCB_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:367,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:368,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:368,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:370,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:372,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:372,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:373,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:374,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:382,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:383,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:386,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:389,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:389,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:393,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:396,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:397,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:397,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:400,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:406,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:407,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:407,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:407,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:410,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:410,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:410,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:411,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:412,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:412,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:412,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:414,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:414,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:414,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 418
    functionName: Botan::OCB_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - initialized
    - data
    - dollar
    - xor_buf
    - BOTAN_ASSERT
    - tag_size
    - Botan::OCB_Encryption::encrypt
    - std::make_pair
    - offset
    - BOTAN_ARG_CHECK
    - assert_key_material_set
    - block_size
    - size
    - secure_vector::data
    - zeroise
    - star
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void OCB_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:421,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:422,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:422,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:424,1
    - Dst: min
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:427,1
    - Dst: par_blocks
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:427,1
    - Dst: compute_offsets
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:430,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:432,1
    - Dst: decrypt_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:433,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:434,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:436,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - blocks
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 442
    functionName: Botan::OCB_Decryption::decrypt
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 2
    functionsReached:
    - initialized
    - min
    - data
    - par_blocks
    - xor_buf
    - decrypt_n
    - assert_key_material_set
    - block_size
    - compute_offsets
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void OCB_Decryption::decrypt(uint8_t buffer[], size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:445,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:445,1
    - Dst: Botan::OCB_Decryption::decrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:446,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: Botan::OCB_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Decryption::decrypt
    - BOTAN_ARG_CHECK
    - block_size
    - update_granularity
    linkageType: ''
    returnType: size_t
    signature: size_t OCB_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:451,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:452,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:452,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:454,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:456,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:456,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:457,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:458,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:460,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:460,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:462,1
    - Dst: Botan::OCB_Decryption::decrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:470,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:471,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:474,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:478,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:480,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:481,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:481,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:483,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:483,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:487,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:493,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:494,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:494,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:494,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:497,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:498,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:502,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:508,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:508,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:508,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:509,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 514
    functionName: Botan::OCB_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::CT::is_equal
    - xor_buf
    - BOTAN_ASSERT
    - block_size
    - secure_vector::data
    - star
    - Invalid_Authentication_Tag
    - offset
    - BOTAN_ARG_CHECK
    - BOTAN_STATE_CHECK
    - initialized
    - dollar
    - assert_key_material_set
    - encrypt
    - resize
    - tag_size
    - size
    - Botan::OCB_Decryption::decrypt
    - zeroise
    linkageType: ''
    returnType: void
    signature: void OCB_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:25,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:26,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:27,1
    - Dst: Botan::CCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:27,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:31,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:31,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:35,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:35,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 3
    argNames:
    - cipher
    - tag_size
    - L
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: Botan::CCM_Mode::CCM_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::move
    - block_size
    - Botan::CCM_Mode::name
    - fmt
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::CCM_Mode(std::unique_ptr<BlockCipher> cipher, size_t
      tag_size, size_t L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:40,1
    - Dst: Botan::CCM_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::CCM_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 1
    functionsReached:
    - Botan::CCM_Mode::reset
    - Botan::CCM_Mode::clear
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:45,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:46,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan::CCM_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 1
    functionsReached:
    - Botan::CCM_Mode::clear
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:51,1
    - Dst: Botan::CCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:51,1
    - Dst: Botan::CCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:51,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan::CCM_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 2
    functionsReached:
    - Botan::CCM_Mode::name
    - Botan::CCM_Mode::tag_size
    - Botan::CCM_Mode::L
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string CCM_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::CCM_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CCM_Mode::L
    linkageType: ''
    returnType: bool
    signature: bool CCM_Mode::valid_nonce_length(size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan::CCM_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CCM_Mode::L
    linkageType: ''
    returnType: size_t
    signature: size_t CCM_Mode::default_nonce_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan::CCM_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CCM_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::CCM_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - parallel_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t CCM_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::CCM_Mode::requires_entire_message
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CCM_Mode::requires_entire_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::key_spec
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan::CCM_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 1
    functionsReached:
    - Botan::CCM_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification CCM_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan::CCM_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 1
    functionsReached:
    - Botan::CCM_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool CCM_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Botan::CCM_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - set_key
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:88,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:90,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:92,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:94,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:94,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:96,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:96,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:96,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:96,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:98,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:98,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:98,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:98,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:99,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: Botan::CCM_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CCM_Mode::clear
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - BOTAN_ARG_CHECK
    - insert
    - end
    - std::span<const uint8_t>::begin
    - size
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - push_back
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::set_associated_data_n(size_t idx, std::span<const uint8_t>
      ad)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:106,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:107,1
    - Dst: Botan::CCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:107,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:110,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: Botan::CCM_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CCM_Mode::clear
    - Botan::CCM_Mode::valid_nonce_length
    - Invalid_IV_Length
    - Botan::CCM_Mode::name
    - assign
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:115,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:115,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:116,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: Botan::CCM_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t CCM_Mode::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:121,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:123,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:126,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - len
    - out
    argTypes:
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: Botan::CCM_Mode::encode_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CCM_Mode::L
    - BOTAN_ASSERT_NOMSG
    - Encoding_Error
    - get_byte_var
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::encode_length(uint64_t len, uint8_t out[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:135,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' C'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: Botan::CCM_Mode::inc
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::inc(secure_vector<uint8_t>& C)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:145,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:145,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:146,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:151,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:151,1
    - Dst: Botan::CCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:151,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:151,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:154,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:154,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:154,1
    - Dst: Botan::CCM_Mode::encode_length
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:155,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 158
    functionName: Botan::CCM_Mode::format_b0
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CCM_Mode::tag_size
    - data
    - size
    - Botan::CCM_Mode::encode_length
    - copy_mem
    - Botan::CCM_Mode::L
    - Invalid_State
    - static_cast<uint8_t>
    - empty
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> CCM_Mode::format_b0(size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:161,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:161,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:162,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:166,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:166,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:169,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:169,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 172
    functionName: Botan::CCM_Mode::format_c0
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - data
    - size
    - copy_mem
    - Botan::CCM_Mode::L
    - Invalid_State
    - static_cast<uint8_t>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> CCM_Mode::format_c0()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:175,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:175,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:177,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:177,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:177,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:177,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:179,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:180,1
    - Dst: ad_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:182,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:183,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:183,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:185,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:188,1
    - Dst: format_b0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:188,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:190,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:191,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:191,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:192,1
    - Dst: format_c0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:195,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:197,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:198,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:205,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:207,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:207,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:208,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:210,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:211,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:211,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:212,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:219,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:219,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:219,1
    - Dst: reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 222
    functionName: Botan::CCM_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - format_b0
    - reset
    - data
    - xor_buf
    - tag_size
    - ad_buf
    - msg_buf
    - begin
    - std::make_pair
    - std::min<size_t>
    - BOTAN_ARG_CHECK
    - insert
    - size
    - format_c0
    - cipher
    - secure_vector::data
    - inc
    - encrypt
    linkageType: ''
    returnType: void
    signature: void CCM_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:225,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:225,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:227,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:227,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:227,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:227,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:229,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:230,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:232,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:232,1
    - Dst: ad_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:234,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:235,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:235,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:237,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:240,1
    - Dst: format_b0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:240,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:240,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:242,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:243,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:243,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:244,1
    - Dst: format_c0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:247,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:250,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:251,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:255,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:258,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:260,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:261,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:261,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:262,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:264,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:264,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:265,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:272,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:272,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:272,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:273,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:276,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:276,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:276,1
    - Dst: reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 279
    functionName: Botan::CCM_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::CT::is_equal
    - xor_buf
    - cipher
    - secure_vector::data
    - inc
    - format_b0
    - Invalid_Authentication_Tag
    - ad_buf
    - msg_buf
    - BOTAN_ARG_CHECK
    - format_c0
    - begin
    - std::min<size_t>
    - encrypt
    - reset
    - resize
    - tag_size
    - insert
    - size
    linkageType: ''
    returnType: void
    signature: void CCM_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:25,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:26,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:27,1
    - Dst: Botan::CCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:27,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:31,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:31,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:35,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:35,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 3
    argNames:
    - cipher
    - tag_size
    - L
    argTypes:
    - std::unique_ptr<BlockCipher>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: Botan::CCM_Mode::CCM_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::move
    - block_size
    - Botan::CCM_Mode::name
    - fmt
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::CCM_Mode(std::unique_ptr<BlockCipher> cipher, size_t
      tag_size, size_t L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:40,1
    - Dst: Botan::CCM_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::CCM_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 5
    functionsReached:
    - Botan::CCM_Mode::reset
    - Botan::CCM_Mode::clear
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:45,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:46,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan::CCM_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 2
    functionsReached:
    - Botan::CCM_Mode::clear
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:51,1
    - Dst: Botan::CCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:51,1
    - Dst: Botan::CCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:51,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan::CCM_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 5
    functionsReached:
    - Botan::CCM_Mode::name
    - Botan::CCM_Mode::tag_size
    - Botan::CCM_Mode::L
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string CCM_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::CCM_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 1
    functionsReached:
    - Botan::CCM_Mode::L
    linkageType: ''
    returnType: bool
    signature: bool CCM_Mode::valid_nonce_length(size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan::CCM_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CCM_Mode::L
    linkageType: ''
    returnType: size_t
    signature: size_t CCM_Mode::default_nonce_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan::CCM_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CCM_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::CCM_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - parallel_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t CCM_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::CCM_Mode::requires_entire_message
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CCM_Mode::requires_entire_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::key_spec
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan::CCM_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 2
    functionsReached:
    - Botan::CCM_Mode::key_spec
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification CCM_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan::CCM_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 2
    functionsReached:
    - Botan::CCM_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool CCM_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Botan::CCM_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - set_key
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:88,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:90,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:92,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:94,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:94,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:96,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:96,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:96,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:96,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:98,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:98,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:98,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:98,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:99,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: Botan::CCM_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CCM_Mode::clear
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - BOTAN_ARG_CHECK
    - insert
    - end
    - std::span<const uint8_t>::begin
    - size
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - push_back
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::set_associated_data_n(size_t idx, std::span<const uint8_t>
      ad)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:106,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:107,1
    - Dst: Botan::CCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:107,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:110,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: Botan::CCM_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CCM_Mode::clear
    - Botan::CCM_Mode::valid_nonce_length
    - Invalid_IV_Length
    - Botan::CCM_Mode::name
    - assign
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:115,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:115,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:116,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: Botan::CCM_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t CCM_Mode::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:121,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:123,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:126,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - len
    - out
    argTypes:
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: Botan::CCM_Mode::encode_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 1
    functionsReached:
    - Botan::CCM_Mode::L
    - BOTAN_ASSERT_NOMSG
    - Encoding_Error
    - get_byte_var
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::encode_length(uint64_t len, uint8_t out[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:135,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' C'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: Botan::CCM_Mode::inc
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void CCM_Mode::inc(secure_vector<uint8_t>& C)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:145,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:145,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:146,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:151,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:151,1
    - Dst: Botan::CCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:151,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:151,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:154,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:154,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:154,1
    - Dst: Botan::CCM_Mode::encode_length
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:155,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 158
    functionName: Botan::CCM_Mode::format_b0
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CCM_Mode::tag_size
    - data
    - size
    - Botan::CCM_Mode::encode_length
    - copy_mem
    - Botan::CCM_Mode::L
    - Invalid_State
    - static_cast<uint8_t>
    - empty
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> CCM_Mode::format_b0(size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:161,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:161,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:162,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:166,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:166,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:169,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:169,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 172
    functionName: Botan::CCM_Mode::format_c0
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - data
    - size
    - copy_mem
    - Botan::CCM_Mode::L
    - Invalid_State
    - static_cast<uint8_t>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> CCM_Mode::format_c0()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:175,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:175,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:177,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:177,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:177,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:177,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:179,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:180,1
    - Dst: ad_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:182,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:183,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:183,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:185,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:188,1
    - Dst: format_b0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:188,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:190,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:191,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:191,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:192,1
    - Dst: format_c0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:195,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:197,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:198,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:205,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:207,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:207,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:208,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:210,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:211,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:211,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:212,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:219,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:219,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:219,1
    - Dst: reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 222
    functionName: Botan::CCM_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - format_b0
    - reset
    - data
    - xor_buf
    - tag_size
    - ad_buf
    - msg_buf
    - begin
    - std::make_pair
    - std::min<size_t>
    - BOTAN_ARG_CHECK
    - insert
    - size
    - format_c0
    - cipher
    - secure_vector::data
    - inc
    - encrypt
    linkageType: ''
    returnType: void
    signature: void CCM_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:225,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:225,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:227,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:227,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:227,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:227,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:229,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:230,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:232,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:232,1
    - Dst: ad_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:234,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:235,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:235,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:237,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:240,1
    - Dst: format_b0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:240,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:240,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:242,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:243,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:243,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:244,1
    - Dst: format_c0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:247,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:250,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:251,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:255,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:258,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:260,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:261,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:261,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:262,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:264,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:264,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:265,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:272,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:272,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:272,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:273,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:276,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:276,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:276,1
    - Dst: reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 279
    functionName: Botan::CCM_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::CT::is_equal
    - xor_buf
    - cipher
    - secure_vector::data
    - inc
    - format_b0
    - Invalid_Authentication_Tag
    - ad_buf
    - msg_buf
    - BOTAN_ARG_CHECK
    - format_c0
    - begin
    - std::min<size_t>
    - encrypt
    - reset
    - resize
    - tag_size
    - insert
    - size
    linkageType: ''
    returnType: void
    signature: void CCM_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan::CCM_Mode::associated_data_requires_key
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool associated_data_requires_key() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::CCM_Mode::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::CCM_Mode::L
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t L() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& cipher() const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BlockCipher
    signature: BlockCipher & cipher() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& ad_buf() const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & ad_buf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: '& msg_buf()'
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & msg_buf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: Botan::CCM_Encryption::CCM_Encryption
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CCM_Encryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 16, size_t L = 3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::CCM_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::CCM_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: Botan::CCM_Decryption::CCM_Decryption
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CCM_Decryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 16, size_t L = 3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:121,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:121,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: Botan::CCM_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached:
    - tag_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan::CCM_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan::CCM_Mode::associated_data_requires_key
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool associated_data_requires_key() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::CCM_Mode::tag_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::CCM_Mode::L
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t L() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& cipher() const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BlockCipher
    signature: BlockCipher & cipher() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& ad_buf() const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & ad_buf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: '& msg_buf()'
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & msg_buf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: Botan::CCM_Encryption::CCM_Encryption
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CCM_Encryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 16, size_t L = 3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::CCM_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::CCM_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: Botan::CCM_Decryption::CCM_Decryption
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CCM_Decryption(std::unique_ptr<BlockCipher> cipher, size_t tag_size
      = 16, size_t L = 3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:121,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:121,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: Botan::CCM_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached:
    - tag_size
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan::CCM_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.h
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 101
    functionName: Botan::BlockCipherModePaddingMethod
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API BlockCipherModePaddingMethod
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input_length
    - block_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::output_length
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length, size_t block_size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: ~BlockCipherModePaddingMethod()
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BlockCipherModePaddingMethod()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: Botan::BlockCipherModePaddingMethod
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_FUZZER_API
    signature: class BOTAN_FUZZER_API BlockCipherModePaddingMethod
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::valid_blocksize
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_blocksize(size_t bs) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan::name
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: Botan::BlockCipherModePaddingMethod
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_FUZZER_API
    signature: class BOTAN_FUZZER_API BlockCipherModePaddingMethod
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::valid_blocksize
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_blocksize(size_t bs) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan::name
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: Botan::BlockCipherModePaddingMethod
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_FUZZER_API
    signature: class BOTAN_FUZZER_API BlockCipherModePaddingMethod
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::valid_blocksize
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_blocksize(size_t bs) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::name
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: Botan::BlockCipherModePaddingMethod
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_FUZZER_API
    signature: class BOTAN_FUZZER_API BlockCipherModePaddingMethod
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::valid_blocksize
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_blocksize(size_t bs) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan::name
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: Botan::Null_Padding::add_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void add_padding(std::span<uint8_t> /*buffer*/,\n                       size_t
      /*final_block_bytes*/,\n                       size_t /*block_size*/) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - last_block
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan::Null_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t remove_padding(std::span<const uint8_t> last_block) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Botan::Null_Padding::valid_blocksize
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_blocksize(size_t /*block_size*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: Botan::Null_Padding::output_length
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length, size_t /*block_size*/) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::Null_Padding::name
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: Botan::Null_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void apply_padding(std::span<uint8_t> /*last_block*/, size_t /*padding_start_pos*/)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 101
    functionName: Botan::BlockCipherModePaddingMethod
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API BlockCipherModePaddingMethod
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input_length
    - block_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::output_length
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length, size_t block_size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: ~BlockCipherModePaddingMethod()
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BlockCipherModePaddingMethod()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: Botan::BlockCipherModePaddingMethod
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_FUZZER_API
    signature: class BOTAN_FUZZER_API BlockCipherModePaddingMethod
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::valid_blocksize
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_blocksize(size_t bs) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan::name
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: Botan::BlockCipherModePaddingMethod
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_FUZZER_API
    signature: class BOTAN_FUZZER_API BlockCipherModePaddingMethod
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::valid_blocksize
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_blocksize(size_t bs) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan::name
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: Botan::BlockCipherModePaddingMethod
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_FUZZER_API
    signature: class BOTAN_FUZZER_API BlockCipherModePaddingMethod
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::valid_blocksize
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_blocksize(size_t bs) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::name
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: Botan::BlockCipherModePaddingMethod
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_FUZZER_API
    signature: class BOTAN_FUZZER_API BlockCipherModePaddingMethod
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::valid_blocksize
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_blocksize(size_t bs) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: Botan::name
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: Botan::Null_Padding::add_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void add_padding(std::span<uint8_t> /*buffer*/,\n                       size_t
      /*final_block_bytes*/,\n                       size_t /*block_size*/) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - last_block
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: Botan::Null_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t remove_padding(std::span<const uint8_t> last_block) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Botan::Null_Padding::valid_blocksize
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_blocksize(size_t /*block_size*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: Botan::Null_Padding::output_length
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length(size_t input_length, size_t /*block_size*/) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::Null_Padding::name
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: Botan::Null_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void apply_padding(std::span<uint8_t> /*last_block*/, size_t /*padding_start_pos*/)
      const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Null_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:21,1
    - Dst: std::make_unique<PKCS7_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:25,1
    - Dst: std::make_unique<OneAndZeros_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:29,1
    - Dst: std::make_unique<ANSI_X923_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:33,1
    - Dst: std::make_unique<ESP_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 41
    functionName: Botan::BlockCipherModePaddingMethod::create
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 6
    functionsReached:
    - std::make_unique<PKCS7_Padding>
    - std::make_unique<ESP_Padding>
    - std::make_unique<Null_Padding>
    - std::make_unique<ANSI_X923_Padding>
    - std::make_unique<OneAndZeros_Padding>
    linkageType: ''
    returnType: std::unique_ptr<BlockCipherModePaddingMethod>
    signature: std::unique_ptr<BlockCipherModePaddingMethod> BlockCipherModePaddingMethod::create(std::string_view
      algo_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:44,1
    - Dst: valid_blocksize
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:44,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:45,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:46,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:47,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:47,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:49,1
    - Dst: apply_padding
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:50,1
    - Dst: std::span<uint8_t>::last
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - buffer
    - last_byte_pos
    - BS
    argTypes:
    - std::span<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: Botan::BlockCipherModePaddingMethod::add_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - apply_padding
    - std::span<uint8_t>::last
    - std::span<uint8_t>::size
    - valid_blocksize
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: void
    signature: void BlockCipherModePaddingMethod::add_padding(std::span<uint8_t> buffer,
      size_t last_byte_pos, size_t BS) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: valid_blocksize
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:54,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:54,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:55,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:58,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:59,1
    - Dst: remove_padding
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - last_block
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: Botan::BlockCipherModePaddingMethod::unpad
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - remove_padding
    - valid_blocksize
    - Botan::CT::driveby_unpoison
    - std::span<const uint8_t>::size
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: size_t
    signature: size_t BlockCipherModePaddingMethod::unpad(std::span<const uint8_t>
      last_block) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:73,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:73,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:74,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:77,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - last_block
    - padding_start_pos
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: Botan::PKCS7_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::CT::Mask::is_gte
    - auto::select
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void PKCS7_Padding::apply_padding(std::span<uint8_t> last_block, size_t
      padding_start_pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:86,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:87,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:93,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:99,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:102,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: Botan::PKCS7_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::is_gte
    - Botan::ct_is_equal
    - Botan::CT::Mask::is_gt
    - std::span<const uint8_t>::back
    - std::span<const uint8_t>::size
    - auto::select
    linkageType: ''
    returnType: size_t
    signature: size_t PKCS7_Padding::remove_padding(std::span<const uint8_t> input)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:120,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:121,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:124,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:125,1
    - Dst: std::span<uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - last_block
    - padding_start_pos
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: Botan::ANSI_X923_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::is_gte
    - std::span<uint8_t>::back
    - std::span<uint8_t>::size
    - auto::select
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void ANSI_X923_Padding::apply_padding(std::span<uint8_t> last_block,
      size_t padding_start_pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:135,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:136,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:138,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:144,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:145,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 150
    functionName: Botan::ANSI_X923_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::is_gte
    - Botan::sha512_msg_expand
    - Botan::CT::Mask::is_gt
    - std::span<const uint8_t>::back
    - std::span<const uint8_t>::size
    - auto::select
    linkageType: ''
    returnType: size_t
    signature: size_t ANSI_X923_Padding::remove_padding(std::span<const uint8_t> input)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:163,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:164,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:164,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:165,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:165,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:166,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - last_block
    - padding_start_pos
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: Botan::OneAndZeros_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_is_equal
    - std::span<uint8_t>::size
    - Botan::CT::Mask::is_gt
    - auto::select
    - CT::Mask<uint8_t>
    linkageType: ''
    returnType: void
    signature: void OneAndZeros_Padding::apply_padding(std::span<uint8_t> last_block,
      size_t padding_start_pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:174,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:175,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:176,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:181,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:182,1
    - Dst: auto::if_not_set_return
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:185,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: Botan::OneAndZeros_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_is_equal
    - Botan::sha512_msg_expand
    - auto::if_not_set_return
    - Botan::Sodium::sodium_is_zero
    - Botan::CT::Mask::cleared
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t OneAndZeros_Padding::remove_padding(std::span<const uint8_t>
      input) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:204,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:204,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:205,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:209,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:210,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - last_block
    - padding_start_pos
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 213
    functionName: Botan::ESP_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::CT::Mask::is_gte
    - auto::select
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void ESP_Padding::apply_padding(std::span<uint8_t> last_block, size_t
      padding_start_pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:219,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:220,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:222,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:222,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:226,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:227,1
    - Dst: CT::Mask<size_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:229,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: Botan::ESP_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_is_equal
    - Botan::CT::Mask::is_gt
    - std::span<const uint8_t>::back
    - Botan::Sodium::sodium_is_zero
    - CT::Mask<size_t>
    - std::span<const uint8_t>::size
    - auto::select
    linkageType: ''
    returnType: size_t
    signature: size_t ESP_Padding::remove_padding(std::span<const uint8_t> input)
      const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Null_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:21,1
    - Dst: std::make_unique<PKCS7_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:25,1
    - Dst: std::make_unique<OneAndZeros_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:29,1
    - Dst: std::make_unique<ANSI_X923_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:33,1
    - Dst: std::make_unique<ESP_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 41
    functionName: Botan::BlockCipherModePaddingMethod::create
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 6
    functionsReached:
    - std::make_unique<PKCS7_Padding>
    - std::make_unique<ESP_Padding>
    - std::make_unique<Null_Padding>
    - std::make_unique<ANSI_X923_Padding>
    - std::make_unique<OneAndZeros_Padding>
    linkageType: ''
    returnType: std::unique_ptr<BlockCipherModePaddingMethod>
    signature: std::unique_ptr<BlockCipherModePaddingMethod> BlockCipherModePaddingMethod::create(std::string_view
      algo_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:44,1
    - Dst: valid_blocksize
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:44,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:45,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:46,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:47,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:47,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:49,1
    - Dst: apply_padding
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:50,1
    - Dst: std::span<uint8_t>::last
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - buffer
    - last_byte_pos
    - BS
    argTypes:
    - std::span<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: Botan::BlockCipherModePaddingMethod::add_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - apply_padding
    - std::span<uint8_t>::last
    - std::span<uint8_t>::size
    - valid_blocksize
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: void
    signature: void BlockCipherModePaddingMethod::add_padding(std::span<uint8_t> buffer,
      size_t last_byte_pos, size_t BS) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: valid_blocksize
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:54,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:54,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:55,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:58,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:59,1
    - Dst: remove_padding
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - last_block
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: Botan::BlockCipherModePaddingMethod::unpad
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - remove_padding
    - valid_blocksize
    - Botan::CT::driveby_unpoison
    - std::span<const uint8_t>::size
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: size_t
    signature: size_t BlockCipherModePaddingMethod::unpad(std::span<const uint8_t>
      last_block) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:73,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:73,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:74,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:77,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - last_block
    - padding_start_pos
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: Botan::PKCS7_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::CT::Mask::is_gte
    - auto::select
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void PKCS7_Padding::apply_padding(std::span<uint8_t> last_block, size_t
      padding_start_pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:86,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:87,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:93,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:99,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:102,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: Botan::PKCS7_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::is_gte
    - Botan::ct_is_equal
    - Botan::CT::Mask::is_gt
    - std::span<const uint8_t>::back
    - std::span<const uint8_t>::size
    - auto::select
    linkageType: ''
    returnType: size_t
    signature: size_t PKCS7_Padding::remove_padding(std::span<const uint8_t> input)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:120,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:121,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:124,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:125,1
    - Dst: std::span<uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - last_block
    - padding_start_pos
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: Botan::ANSI_X923_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::is_gte
    - std::span<uint8_t>::back
    - std::span<uint8_t>::size
    - auto::select
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void ANSI_X923_Padding::apply_padding(std::span<uint8_t> last_block,
      size_t padding_start_pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:135,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:136,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:138,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:144,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:145,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 150
    functionName: Botan::ANSI_X923_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::is_gte
    - Botan::sha512_msg_expand
    - Botan::CT::Mask::is_gt
    - std::span<const uint8_t>::back
    - std::span<const uint8_t>::size
    - auto::select
    linkageType: ''
    returnType: size_t
    signature: size_t ANSI_X923_Padding::remove_padding(std::span<const uint8_t> input)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:163,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:164,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:164,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:165,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:165,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:166,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - last_block
    - padding_start_pos
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: Botan::OneAndZeros_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_is_equal
    - std::span<uint8_t>::size
    - Botan::CT::Mask::is_gt
    - auto::select
    - CT::Mask<uint8_t>
    linkageType: ''
    returnType: void
    signature: void OneAndZeros_Padding::apply_padding(std::span<uint8_t> last_block,
      size_t padding_start_pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:174,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:175,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:176,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:181,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:182,1
    - Dst: auto::if_not_set_return
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:185,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: Botan::OneAndZeros_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_is_equal
    - Botan::sha512_msg_expand
    - auto::if_not_set_return
    - Botan::Sodium::sodium_is_zero
    - Botan::CT::Mask::cleared
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t OneAndZeros_Padding::remove_padding(std::span<const uint8_t>
      input) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:204,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:204,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:205,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:209,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:210,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - last_block
    - padding_start_pos
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 213
    functionName: Botan::ESP_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::CT::Mask::is_gte
    - auto::select
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void ESP_Padding::apply_padding(std::span<uint8_t> last_block, size_t
      padding_start_pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:219,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:220,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:222,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:222,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:226,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:227,1
    - Dst: CT::Mask<size_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:229,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: Botan::ESP_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_is_equal
    - Botan::CT::Mask::is_gt
    - std::span<const uint8_t>::back
    - Botan::Sodium::sodium_is_zero
    - CT::Mask<size_t>
    - std::span<const uint8_t>::size
    - auto::select
    linkageType: ''
    returnType: size_t
    signature: size_t ESP_Padding::remove_padding(std::span<const uint8_t> input)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::XTS_Mode::tweak
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * tweak() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/modes/xts/xts.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::XTS_Mode::tweak_set
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool tweak_set() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::XTS_Mode::tweak_blocks
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tweak_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '& cipher() const'
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BlockCipher
    signature: BlockCipher & cipher() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::XTS_Mode::cipher_block_size
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cipher_block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/xts/xts.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::XTS_Encryption::XTS_Encryption
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void XTS_Encryption(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/xts/xts.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::XTS_Decryption::XTS_Decryption
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void XTS_Decryption(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::XTS_Mode::tweak
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * tweak() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/modes/xts/xts.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::XTS_Mode::tweak_set
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool tweak_set() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::XTS_Mode::tweak_blocks
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tweak_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '& cipher() const'
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BlockCipher
    signature: BlockCipher & cipher() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::XTS_Mode::cipher_block_size
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cipher_block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/xts/xts.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::XTS_Encryption::XTS_Encryption
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void XTS_Encryption(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/xts/xts.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::XTS_Decryption::XTS_Decryption
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void XTS_Decryption(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/xts/xts.cpp:23,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:24,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/xts/xts.cpp:25,1
    - Dst: poly_double_supported_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:27,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/xts/xts.cpp:28,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/xts/xts.cpp:28,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:28,1
    - Dst: new_object
      Src: /src/botan/src/lib/modes/xts/xts.cpp:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: Botan::XTS_Mode::XTS_Mode
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - parallel_bytes
    - Invalid_Argument
    - poly_double_supported_size
    - std::move
    - block_size
    - Botan::XTS_Mode::name
    - new_object
    - fmt
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::XTS_Mode(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::clear
      Src: /src/botan/src/lib/modes/xts/xts.cpp:35,1
    - Dst: Botan::XTS_Mode::clear
      Src: /src/botan/src/lib/modes/xts/xts.cpp:36,1
    - Dst: Botan::XTS_Mode::reset
      Src: /src/botan/src/lib/modes/xts/xts.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: Botan::XTS_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 1
    functionsReached:
    - Botan::XTS_Mode::reset
    - Botan::XTS_Mode::clear
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::XTS_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan::XTS_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::clear
      Src: /src/botan/src/lib/modes/xts/xts.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Botan::XTS_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 1
    functionsReached:
    - Botan::XTS_Mode::clear
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::XTS_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 1
    functionsReached:
    - cipher
    linkageType: ''
    returnType: std::string
    signature: std::string XTS_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::XTS_Mode::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Botan::XTS_Mode::cipher_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Mode::minimum_final_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan::XTS_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - cipher
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification XTS_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan::XTS_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Botan::XTS_Mode::cipher_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Mode::default_nonce_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::XTS_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Botan::XTS_Mode::cipher_block_size
    linkageType: ''
    returnType: bool
    signature: bool XTS_Mode::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/xts/xts.cpp:73,1
    - Dst: Botan::XTS_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/xts/xts.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::XTS_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 1
    functionsReached:
    - Botan::XTS_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool XTS_Mode::has_keying_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:77,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:79,1
    - Dst: valid_keylength
      Src: /src/botan/src/lib/modes/xts/xts.cpp:79,1
    - Dst: Invalid_Key_Length
      Src: /src/botan/src/lib/modes/xts/xts.cpp:80,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:80,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:80,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/xts/xts.cpp:83,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/modes/xts/xts.cpp:83,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/xts/xts.cpp:84,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/modes/xts/xts.cpp:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: Botan::XTS_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Key_Length
    - std::span<const uint8_t>::last
    - Botan::XTS_Mode::name
    - valid_keylength
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - set_key
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/xts/xts.cpp:88,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/xts/xts.cpp:89,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:89,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:92,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/xts/xts.cpp:93,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:93,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:93,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/xts/xts.cpp:94,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:94,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/xts/xts.cpp:95,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:95,1
    - Dst: xts_compute_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts.cpp:98,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:98,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:98,1
    - Dst: Botan::XTS_Mode::tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: Botan::XTS_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Botan::XTS_Mode::tweak_blocks
    - resize
    - data
    - copy_mem
    - Invalid_IV_Length
    - xts_compute_tweak_block
    - Botan::XTS_Mode::name
    - size
    - block_size
    - clear_mem
    - Botan::XTS_Mode::valid_nonce_length
    - encrypt
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/modes/xts/xts.cpp:104,1
    - Dst: update_tweak_block_avx512_clmul
      Src: /src/botan/src/lib/modes/xts/xts.cpp:105,1
    - Dst: poly_double_n_le
      Src: /src/botan/src/lib/modes/xts/xts.cpp:114,1
    - Dst: xts_compute_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - tweak
    - BS
    - blocks_in_tweak
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: Botan::XTS_Mode::update_tweak_block
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - poly_double_n_le
    - xts_compute_tweak_block
    - update_tweak_block_avx512_clmul
    - has
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::update_tweak_block(uint8_t tweak[], size_t BS, size_t
      blocks_in_tweak)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:119,1
    - Dst: Botan::XTS_Mode::tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:120,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/xts/xts.cpp:122,1
    - Dst: Botan::XTS_Mode::update_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts.cpp:126,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:126,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/xts/xts.cpp:134,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:134,1
    - Dst: xts_compute_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts.cpp:135,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - consumed
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 137
    functionName: Botan::XTS_Mode::update_tweak
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Botan::XTS_Mode::tweak_blocks
    - data
    - Botan::XTS_Mode::update_tweak_block
    - block_size
    - xts_compute_tweak_block
    - copy_mem
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::update_tweak(size_t consumed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Botan::XTS_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Encryption::output_length(size_t input_length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:144,1
    - Dst: tweak_set
      Src: /src/botan/src/lib/modes/xts/xts.cpp:144,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:145,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:147,1
    - Dst: tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:150,1
    - Dst: min
      Src: /src/botan/src/lib/modes/xts/xts.cpp:153,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:156,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:156,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:157,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:158,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:158,1
    - Dst: update_tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 167
    functionName: Botan::XTS_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - min
    - update_tweak
    - cipher
    - BOTAN_STATE_CHECK
    - tweak
    - xor_buf
    - tweak_set
    - BOTAN_ARG_CHECK
    - tweak_blocks
    - cipher_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:170,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:170,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:171,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:172,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:174,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:174,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:176,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:179,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/xts/xts.cpp:184,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:187,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:188,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:190,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:190,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:191,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:192,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:192,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:200,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:200,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:201,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:202,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 206
    functionName: Botan::XTS_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - tweak
    - xor_buf
    - BOTAN_ASSERT
    - BOTAN_ARG_CHECK
    - size
    - minimum_final_size
    - cipher
    - update
    - cipher_block_size
    linkageType: ''
    returnType: void
    signature: void XTS_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan::XTS_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Decryption::output_length(size_t input_length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:213,1
    - Dst: tweak_set
      Src: /src/botan/src/lib/modes/xts/xts.cpp:213,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:214,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:216,1
    - Dst: tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:219,1
    - Dst: min
      Src: /src/botan/src/lib/modes/xts/xts.cpp:222,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:225,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:225,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:226,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:227,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:227,1
    - Dst: update_tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 236
    functionName: Botan::XTS_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - min
    - update_tweak
    - cipher
    - BOTAN_STATE_CHECK
    - tweak
    - xor_buf
    - tweak_set
    - BOTAN_ARG_CHECK
    - tweak_blocks
    - cipher_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:239,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:239,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:240,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:241,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:243,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:243,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:245,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:248,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/xts/xts.cpp:253,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:256,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:257,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:259,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:259,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:260,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:261,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:261,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:269,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:269,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:270,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:271,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 275
    functionName: Botan::XTS_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - tweak
    - xor_buf
    - BOTAN_ASSERT
    - BOTAN_ARG_CHECK
    - size
    - minimum_final_size
    - cipher
    - update
    - cipher_block_size
    linkageType: ''
    returnType: void
    signature: void XTS_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/xts/xts.cpp:23,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:24,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/xts/xts.cpp:25,1
    - Dst: poly_double_supported_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:27,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/xts/xts.cpp:28,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/xts/xts.cpp:28,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:28,1
    - Dst: new_object
      Src: /src/botan/src/lib/modes/xts/xts.cpp:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: Botan::XTS_Mode::XTS_Mode
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - parallel_bytes
    - Invalid_Argument
    - poly_double_supported_size
    - std::move
    - block_size
    - Botan::XTS_Mode::name
    - new_object
    - fmt
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::XTS_Mode(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::clear
      Src: /src/botan/src/lib/modes/xts/xts.cpp:35,1
    - Dst: Botan::XTS_Mode::clear
      Src: /src/botan/src/lib/modes/xts/xts.cpp:36,1
    - Dst: Botan::XTS_Mode::reset
      Src: /src/botan/src/lib/modes/xts/xts.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: Botan::XTS_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 3
    functionsReached:
    - Botan::XTS_Mode::reset
    - Botan::XTS_Mode::clear
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::XTS_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan::XTS_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::clear
      Src: /src/botan/src/lib/modes/xts/xts.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Botan::XTS_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 2
    functionsReached:
    - Botan::XTS_Mode::clear
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::XTS_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 4
    functionsReached:
    - cipher
    linkageType: ''
    returnType: std::string
    signature: std::string XTS_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::XTS_Mode::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Botan::XTS_Mode::cipher_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Mode::minimum_final_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan::XTS_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - cipher
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification XTS_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan::XTS_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Botan::XTS_Mode::cipher_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Mode::default_nonce_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::XTS_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 1
    functionsReached:
    - Botan::XTS_Mode::cipher_block_size
    linkageType: ''
    returnType: bool
    signature: bool XTS_Mode::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/xts/xts.cpp:73,1
    - Dst: Botan::XTS_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/xts/xts.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::XTS_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 2
    functionsReached:
    - Botan::XTS_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool XTS_Mode::has_keying_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:77,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:79,1
    - Dst: valid_keylength
      Src: /src/botan/src/lib/modes/xts/xts.cpp:79,1
    - Dst: Invalid_Key_Length
      Src: /src/botan/src/lib/modes/xts/xts.cpp:80,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:80,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:80,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/xts/xts.cpp:83,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/modes/xts/xts.cpp:83,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/xts/xts.cpp:84,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/modes/xts/xts.cpp:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: Botan::XTS_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Key_Length
    - std::span<const uint8_t>::last
    - Botan::XTS_Mode::name
    - valid_keylength
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - set_key
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XTS_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/xts/xts.cpp:88,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/xts/xts.cpp:89,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:89,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:92,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/xts/xts.cpp:93,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:93,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:93,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/xts/xts.cpp:94,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:94,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/xts/xts.cpp:95,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:95,1
    - Dst: xts_compute_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts.cpp:98,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:98,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:98,1
    - Dst: Botan::XTS_Mode::tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: Botan::XTS_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Botan::XTS_Mode::tweak_blocks
    - resize
    - data
    - copy_mem
    - Invalid_IV_Length
    - xts_compute_tweak_block
    - Botan::XTS_Mode::name
    - size
    - block_size
    - clear_mem
    - Botan::XTS_Mode::valid_nonce_length
    - encrypt
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/modes/xts/xts.cpp:104,1
    - Dst: update_tweak_block_avx512_clmul
      Src: /src/botan/src/lib/modes/xts/xts.cpp:105,1
    - Dst: poly_double_n_le
      Src: /src/botan/src/lib/modes/xts/xts.cpp:114,1
    - Dst: xts_compute_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - tweak
    - BS
    - blocks_in_tweak
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: Botan::XTS_Mode::update_tweak_block
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 1
    functionsReached:
    - poly_double_n_le
    - xts_compute_tweak_block
    - update_tweak_block_avx512_clmul
    - has
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::update_tweak_block(uint8_t tweak[], size_t BS, size_t
      blocks_in_tweak)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:119,1
    - Dst: Botan::XTS_Mode::tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:120,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/xts/xts.cpp:122,1
    - Dst: Botan::XTS_Mode::update_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts.cpp:126,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:126,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/xts/xts.cpp:134,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:134,1
    - Dst: xts_compute_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts.cpp:135,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - consumed
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 137
    functionName: Botan::XTS_Mode::update_tweak
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Botan::XTS_Mode::tweak_blocks
    - data
    - Botan::XTS_Mode::update_tweak_block
    - block_size
    - xts_compute_tweak_block
    - copy_mem
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::update_tweak(size_t consumed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Botan::XTS_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Encryption::output_length(size_t input_length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:144,1
    - Dst: tweak_set
      Src: /src/botan/src/lib/modes/xts/xts.cpp:144,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:145,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:147,1
    - Dst: tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:150,1
    - Dst: min
      Src: /src/botan/src/lib/modes/xts/xts.cpp:153,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:156,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:156,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:157,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:158,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:158,1
    - Dst: update_tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 167
    functionName: Botan::XTS_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - min
    - update_tweak
    - cipher
    - BOTAN_STATE_CHECK
    - tweak
    - xor_buf
    - tweak_set
    - BOTAN_ARG_CHECK
    - tweak_blocks
    - cipher_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:170,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:170,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:171,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:172,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:174,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:174,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:176,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:179,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/xts/xts.cpp:184,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:187,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:188,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:190,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:190,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:191,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:192,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:192,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:200,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:200,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:201,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:202,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 206
    functionName: Botan::XTS_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - tweak
    - xor_buf
    - BOTAN_ASSERT
    - BOTAN_ARG_CHECK
    - size
    - minimum_final_size
    - cipher
    - update
    - cipher_block_size
    linkageType: ''
    returnType: void
    signature: void XTS_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan::XTS_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Decryption::output_length(size_t input_length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:213,1
    - Dst: tweak_set
      Src: /src/botan/src/lib/modes/xts/xts.cpp:213,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:214,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:216,1
    - Dst: tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:219,1
    - Dst: min
      Src: /src/botan/src/lib/modes/xts/xts.cpp:222,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:225,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:225,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:226,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:227,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:227,1
    - Dst: update_tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 236
    functionName: Botan::XTS_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - min
    - update_tweak
    - cipher
    - BOTAN_STATE_CHECK
    - tweak
    - xor_buf
    - tweak_set
    - BOTAN_ARG_CHECK
    - tweak_blocks
    - cipher_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t XTS_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:239,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:239,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:240,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:241,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:243,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:243,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:245,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:248,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/xts/xts.cpp:253,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:256,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:257,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:259,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:259,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:260,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:261,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:261,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:269,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:269,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:270,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:271,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 275
    functionName: Botan::XTS_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - tweak
    - xor_buf
    - BOTAN_ASSERT
    - BOTAN_ARG_CHECK
    - size
    - minimum_final_size
    - cipher
    - update
    - cipher_block_size
    linkageType: ''
    returnType: void
    signature: void XTS_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:17,1
    - Dst: _mm512_set_epi64
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:21,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:37,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:38,1
    - Dst: _mm512_clmulepi64_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:42,1
    - Dst: _mm512_bsrli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:42,1
    - Dst: _mm512_clmulepi64_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:43,1
    - Dst: _mm512_bsrli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:43,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:44,1
    - Dst: _mm512_bslli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:44,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:45,1
    - Dst: _mm512_bslli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:45,1
    - Dst: _mm512_clmulepi64_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:50,1
    - Dst: _mm512_bsrli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:50,1
    - Dst: _mm512_clmulepi64_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:51,1
    - Dst: _mm512_bsrli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:51,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:52,1
    - Dst: _mm512_bslli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:52,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:53,1
    - Dst: _mm512_bslli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:53,1
    - Dst: _mm512_storeu_epi64
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:56,1
    - Dst: _mm512_storeu_epi64
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:57,1
    - Dst: poly_double_n_le
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:60,1
    - Dst: xts_compute_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - tweak
    - BS
    - N
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 63
    functionName: Botan::BOTAN_FN_ISA_AVX512_CLMUL::update_tweak_block_avx512_clmul
    functionSourceFile: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp
    functionUses: 0
    functionsReached:
    - _mm512_set_epi64
    - _mm512_storeu_epi64
    - poly_double_n_le
    - _mm512_loadu_si512
    - _mm512_clmulepi64_epi128
    - xts_compute_tweak_block
    - _mm512_xor_si512
    - BOTAN_ASSERT_NOMSG
    - _mm512_bsrli_epi128
    - _mm512_bslli_epi128
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512_CLMUL XTS_Mode::update_tweak_block_avx512_clmul(uint8_t
      tweak[], size_t BS, size_t N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:17,1
    - Dst: _mm512_set_epi64
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:21,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:37,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:38,1
    - Dst: _mm512_clmulepi64_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:42,1
    - Dst: _mm512_bsrli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:42,1
    - Dst: _mm512_clmulepi64_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:43,1
    - Dst: _mm512_bsrli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:43,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:44,1
    - Dst: _mm512_bslli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:44,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:45,1
    - Dst: _mm512_bslli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:45,1
    - Dst: _mm512_clmulepi64_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:50,1
    - Dst: _mm512_bsrli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:50,1
    - Dst: _mm512_clmulepi64_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:51,1
    - Dst: _mm512_bsrli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:51,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:52,1
    - Dst: _mm512_bslli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:52,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:53,1
    - Dst: _mm512_bslli_epi128
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:53,1
    - Dst: _mm512_storeu_epi64
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:56,1
    - Dst: _mm512_storeu_epi64
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:57,1
    - Dst: poly_double_n_le
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:60,1
    - Dst: xts_compute_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - tweak
    - BS
    - N
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 63
    functionName: Botan::BOTAN_FN_ISA_AVX512_CLMUL::update_tweak_block_avx512_clmul
    functionSourceFile: /src/botan/src/lib/modes/xts/xts_avx512_clmul/xts_avx512_clmul.cpp
    functionUses: 0
    functionsReached:
    - _mm512_set_epi64
    - _mm512_storeu_epi64
    - poly_double_n_le
    - _mm512_loadu_si512
    - _mm512_clmulepi64_epi128
    - xts_compute_tweak_block
    - _mm512_xor_si512
    - BOTAN_ASSERT_NOMSG
    - _mm512_bsrli_epi128
    - _mm512_bslli_epi128
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512_CLMUL XTS_Mode::update_tweak_block_avx512_clmul(uint8_t
      tweak[], size_t BS, size_t N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& cipher() const'
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BlockCipher
    signature: BlockCipher & cipher() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/modes/cbc/cbc.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: '& padding() const'
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: BlockCipherModePaddingMethod
    signature: BlockCipherModePaddingMethod & padding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::CBC_Mode::block_size
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& state()'
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::CBC_Mode::state_ptr
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * state_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cipher
    - padding
    argTypes:
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<BlockCipherModePaddingMethod>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: Botan::CBC_Encryption::CBC_Encryption
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CBC_Encryption(std::unique_ptr<BlockCipher> cipher, std::unique_ptr<BlockCipherModePaddingMethod>
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::CTS_Encryption::CTS_Encryption
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CTS_Encryption(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:120,1
    - Dst: ideal_granularity
      Src: /src/botan/src/lib/modes/cbc/cbc.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cipher
    - padding
    argTypes:
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<BlockCipherModePaddingMethod>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: Botan::CBC_Decryption::CBC_Decryption
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - std::move
    - ideal_granularity
    linkageType: ''
    returnType: void
    signature: void CBC_Decryption(std::unique_ptr<BlockCipher> cipher, std::unique_ptr<BlockCipherModePaddingMethod>
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: Botan::CTS_Decryption::CTS_Decryption
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CTS_Decryption(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& cipher() const'
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BlockCipher
    signature: BlockCipher & cipher() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/modes/cbc/cbc.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: '& padding() const'
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: BlockCipherModePaddingMethod
    signature: BlockCipherModePaddingMethod & padding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::CBC_Mode::block_size
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& state()'
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::CBC_Mode::state_ptr
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * state_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cipher
    - padding
    argTypes:
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<BlockCipherModePaddingMethod>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: Botan::CBC_Encryption::CBC_Encryption
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CBC_Encryption(std::unique_ptr<BlockCipher> cipher, std::unique_ptr<BlockCipherModePaddingMethod>
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::CTS_Encryption::CTS_Encryption
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CTS_Encryption(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:120,1
    - Dst: ideal_granularity
      Src: /src/botan/src/lib/modes/cbc/cbc.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cipher
    - padding
    argTypes:
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<BlockCipherModePaddingMethod>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: Botan::CBC_Decryption::CBC_Decryption
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - std::move
    - ideal_granularity
    linkageType: ''
    returnType: void
    signature: void CBC_Decryption(std::unique_ptr<BlockCipher> cipher, std::unique_ptr<BlockCipherModePaddingMethod>
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: Botan::CTS_Decryption::CTS_Decryption
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CTS_Decryption(std::unique_ptr<BlockCipher> cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:20,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:20,1
    - Dst: Botan::CBC_Mode::block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:20,1
    - Dst: valid_blocksize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:21,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:22,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:22,1
    - Dst: Botan::CBC_Mode::name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:22,1
    - Dst: Botan::CBC_Mode::name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - cipher
    - padding
    argTypes:
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<BlockCipherModePaddingMethod>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: Botan::CBC_Mode::CBC_Mode
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::move
    - valid_blocksize
    - Botan::CBC_Mode::block_size
    - Botan::CBC_Mode::name
    - fmt
    linkageType: ''
    returnType: void
    signature: void CBC_Mode::CBC_Mode(std::unique_ptr<BlockCipher> cipher, std::unique_ptr<BlockCipherModePaddingMethod>
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::clear
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:27,1
    - Dst: Botan::CBC_Mode::reset
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan::CBC_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 1
    functionsReached:
    - Botan::CBC_Mode::reset
    - Botan::CBC_Mode::clear
    linkageType: ''
    returnType: void
    signature: void CBC_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::clear
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::CBC_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 1
    functionsReached:
    - Botan::CBC_Mode::clear
    linkageType: ''
    returnType: void
    signature: void CBC_Mode::reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:37,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:37,1
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:37,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:39,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: Botan::CBC_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 1
    functionsReached:
    - padding
    - cipher
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string CBC_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::CBC_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - cipher
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::CBC_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - cipher
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::CBC_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - cipher
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification CBC_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::CBC_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CBC_Mode::block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Mode::default_nonce_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::CBC_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CBC_Mode::block_size
    linkageType: ''
    returnType: bool
    signature: bool CBC_Mode::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::CBC_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 1
    functionsReached:
    - Botan::CBC_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool CBC_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:68,1
    - Dst: Botan::CBC_Mode::clear
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan::CBC_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CBC_Mode::clear
    - set_key
    linkageType: ''
    returnType: void
    signature: void CBC_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:73,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:74,1
    - Dst: Botan::CBC_Mode::name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:74,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:83,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:84,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:85,1
    - Dst: Botan::CBC_Mode::block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: Botan::CBC_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - resize
    - Botan::CBC_Mode::block_size
    - Invalid_IV_Length
    - Botan::CBC_Mode::valid_nonce_length
    - assign
    - Botan::CBC_Mode::name
    - empty
    linkageType: ''
    returnType: void
    signature: void CBC_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::CBC_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Encryption::minimum_final_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:95,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::CBC_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - padding
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Encryption::output_length(size_t input_length) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:99,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:99,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:100,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:102,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:106,1
    - Dst: state_ptr
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:106,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:107,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:110,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:111,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 118
    functionName: Botan::CBC_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - xor_buf
    - state_ptr
    - state
    - BOTAN_ARG_CHECK
    - block_size
    - cipher
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:121,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:121,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:122,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:122,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:124,1
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:126,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:126,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:127,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:128,1
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:129,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:131,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:131,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: Botan::CBC_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - padding
    - resize
    - state
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - BOTAN_ASSERT_EQUAL
    - update
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void CBC_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: Botan::CTS_Encryption::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: bool
    signature: bool CTS_Encryption::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: Botan::CTS_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CTS_Encryption::minimum_final_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan::CTS_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CTS_Encryption::output_length(size_t input_length) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:149,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:149,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:150,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:150,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:151,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:152,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:154,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:157,1
    - Dst: name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:157,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:161,1
    - Dst: std::swap
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:165,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:165,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:165,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:170,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:173,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:174,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:176,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:176,1
    - Dst: state_ptr
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:176,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:177,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:177,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:184,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 188
    functionName: Botan::CTS_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - std::swap
    - BOTAN_ASSERT
    - state
    - xor_buf
    - state_ptr
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - Encoding_Error
    - name
    - cipher
    - secure_vector::data
    - update
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void CTS_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: Botan::CBC_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Decryption::output_length(size_t input_length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: Botan::CBC_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Decryption::minimum_final_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:199,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:199,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:201,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:203,1
    - Dst: min
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:207,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:207,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:209,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:209,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:211,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:211,1
    - Dst: state_ptr
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:211,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:212,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:213,1
    - Dst: state_ptr
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:213,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:215,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 222
    functionName: Botan::CBC_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - min
    - data
    - xor_buf
    - state_ptr
    - state
    - copy_mem
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - cipher
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:225,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:225,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:226,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:226,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:227,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:229,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:232,1
    - Dst: name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:232,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:235,1
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:237,1
    - Dst: last
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:237,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:238,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:238,1
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:239,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 242
    functionName: Botan::CBC_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - padding
    - resize
    - Decoding_Error
    - state
    - last
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - name
    - update
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void CBC_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::reset
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:245,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: Botan::CBC_Decryption::reset
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CBC_Mode::reset
    - zeroise
    linkageType: ''
    returnType: void
    signature: void CBC_Decryption::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: Botan::CTS_Decryption::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: bool
    signature: bool CTS_Decryption::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: Botan::CTS_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CTS_Decryption::minimum_final_size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:258,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:258,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:259,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:259,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:260,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:261,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:263,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:266,1
    - Dst: name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:266,1
    - Dst: std::swap
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:273,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:273,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:273,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:276,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:280,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:283,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:284,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:286,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:286,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:288,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:288,1
    - Dst: std::swap
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:291,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:294,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:294,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:295,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:295,1
    - Dst: state_ptr
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 299
    functionName: Botan::CTS_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - std::swap
    - BOTAN_ASSERT
    - state
    - xor_buf
    - state_ptr
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - Encoding_Error
    - name
    - cipher
    - secure_vector::data
    - update
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void CTS_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:20,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:20,1
    - Dst: Botan::CBC_Mode::block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:20,1
    - Dst: valid_blocksize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:21,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:22,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:22,1
    - Dst: Botan::CBC_Mode::name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:22,1
    - Dst: Botan::CBC_Mode::name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - cipher
    - padding
    argTypes:
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<BlockCipherModePaddingMethod>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: Botan::CBC_Mode::CBC_Mode
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::move
    - valid_blocksize
    - Botan::CBC_Mode::block_size
    - Botan::CBC_Mode::name
    - fmt
    linkageType: ''
    returnType: void
    signature: void CBC_Mode::CBC_Mode(std::unique_ptr<BlockCipher> cipher, std::unique_ptr<BlockCipherModePaddingMethod>
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::clear
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:27,1
    - Dst: Botan::CBC_Mode::reset
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan::CBC_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 4
    functionsReached:
    - Botan::CBC_Mode::reset
    - Botan::CBC_Mode::clear
    linkageType: ''
    returnType: void
    signature: void CBC_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::clear
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::CBC_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 3
    functionsReached:
    - Botan::CBC_Mode::clear
    linkageType: ''
    returnType: void
    signature: void CBC_Mode::reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:37,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:37,1
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:37,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:39,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: Botan::CBC_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 3
    functionsReached:
    - padding
    - cipher
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string CBC_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::CBC_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - cipher
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::CBC_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - cipher
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::CBC_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - cipher
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification CBC_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::CBC_Mode::default_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CBC_Mode::block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Mode::default_nonce_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::CBC_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 1
    functionsReached:
    - Botan::CBC_Mode::block_size
    linkageType: ''
    returnType: bool
    signature: bool CBC_Mode::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::CBC_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 2
    functionsReached:
    - Botan::CBC_Mode::has_keying_material
    linkageType: ''
    returnType: bool
    signature: bool CBC_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:68,1
    - Dst: Botan::CBC_Mode::clear
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan::CBC_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CBC_Mode::clear
    - set_key
    linkageType: ''
    returnType: void
    signature: void CBC_Mode::key_schedule(std::span<const uint8_t> key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::valid_nonce_length
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:73,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:74,1
    - Dst: Botan::CBC_Mode::name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:74,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:83,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:84,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:85,1
    - Dst: Botan::CBC_Mode::block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: Botan::CBC_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - resize
    - Botan::CBC_Mode::block_size
    - Invalid_IV_Length
    - Botan::CBC_Mode::valid_nonce_length
    - assign
    - Botan::CBC_Mode::name
    - empty
    linkageType: ''
    returnType: void
    signature: void CBC_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::CBC_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Encryption::minimum_final_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:95,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::CBC_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - padding
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Encryption::output_length(size_t input_length) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:99,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:99,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:100,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:102,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:106,1
    - Dst: state_ptr
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:106,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:107,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:110,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:111,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 118
    functionName: Botan::CBC_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - xor_buf
    - state_ptr
    - state
    - BOTAN_ARG_CHECK
    - block_size
    - cipher
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Encryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:121,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:121,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:122,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:122,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:124,1
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:126,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:126,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:127,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:128,1
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:129,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:131,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:131,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: Botan::CBC_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - padding
    - resize
    - state
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - BOTAN_ASSERT_EQUAL
    - update
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void CBC_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: Botan::CTS_Encryption::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: bool
    signature: bool CTS_Encryption::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: Botan::CTS_Encryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CTS_Encryption::minimum_final_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan::CTS_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CTS_Encryption::output_length(size_t input_length) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:149,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:149,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:150,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:150,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:151,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:152,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:154,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:157,1
    - Dst: name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:157,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:161,1
    - Dst: std::swap
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:165,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:165,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:165,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:170,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:173,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:174,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:176,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:176,1
    - Dst: state_ptr
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:176,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:177,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:177,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:184,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 188
    functionName: Botan::CTS_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - std::swap
    - BOTAN_ASSERT
    - state
    - xor_buf
    - state_ptr
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - Encoding_Error
    - name
    - cipher
    - secure_vector::data
    - update
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void CTS_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: Botan::CBC_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Decryption::output_length(size_t input_length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: Botan::CBC_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Decryption::minimum_final_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:199,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:199,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:201,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:203,1
    - Dst: min
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:207,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:207,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:209,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:209,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:211,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:211,1
    - Dst: state_ptr
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:211,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:212,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:213,1
    - Dst: state_ptr
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:213,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:215,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 222
    functionName: Botan::CBC_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - min
    - data
    - xor_buf
    - state_ptr
    - state
    - copy_mem
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - cipher
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t CBC_Decryption::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:225,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:225,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:226,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:226,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:227,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:229,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:232,1
    - Dst: name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:232,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:235,1
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:237,1
    - Dst: last
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:237,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:238,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:238,1
    - Dst: padding
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:239,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 242
    functionName: Botan::CBC_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - padding
    - resize
    - Decoding_Error
    - state
    - last
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - name
    - update
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void CBC_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CBC_Mode::reset
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:245,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: Botan::CBC_Decryption::reset
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CBC_Mode::reset
    - zeroise
    linkageType: ''
    returnType: void
    signature: void CBC_Decryption::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: Botan::CTS_Decryption::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: bool
    signature: bool CTS_Decryption::valid_nonce_length(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: Botan::CTS_Decryption::minimum_final_size
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CTS_Decryption::minimum_final_size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:258,1
    - Dst: state
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:258,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:259,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:259,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:260,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:261,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:263,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:266,1
    - Dst: name
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:266,1
    - Dst: std::swap
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:273,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:273,1
    - Dst: size
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:273,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:276,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:280,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:283,1
    - Dst: update
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:284,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:286,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:286,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:288,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:288,1
    - Dst: std::swap
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:291,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:294,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:294,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:295,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:295,1
    - Dst: state_ptr
      Src: /src/botan/src/lib/modes/cbc/cbc.cpp:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 299
    functionName: Botan::CTS_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/cbc/cbc.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - std::swap
    - BOTAN_ASSERT
    - state
    - xor_buf
    - state_ptr
    - BOTAN_ARG_CHECK
    - block_size
    - size
    - Encoding_Error
    - name
    - cipher
    - secure_vector::data
    - update
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void CTS_Decryption::finish_msg(secure_vector<uint8_t>& buffer, size_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::new_object
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::clone
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - Botan::new_object
    linkageType: ''
    returnType: PBKDF
    signature: PBKDF * clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: ~PBKDF()
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PBKDF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:180,1
    - Dst: pbkdf_iterations
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out_len
    - passphrase
    - salt
    - salt_len
    - iterations
    argTypes:
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - Botan::OctetString
    - pbkdf_iterations
    linkageType: ''
    returnType: OctetString
    signature: "OctetString derive_key(\n         size_t out_len, std::string_view
      passphrase, const uint8_t salt[], size_t salt_len, size_t iterations) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:195,1
    - Dst: pbkdf_iterations
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:195,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:195,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out_len
    - passphrase
    - ' salt'
    - iterations
    argTypes:
    - size_t
    - std::string_view
    - std::vector<uint8_t, Alloc>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - Botan::data
    - Botan::size
    - Botan::OctetString
    - pbkdf_iterations
    linkageType: ''
    returnType: OctetString
    signature: "OctetString derive_key(size_t out_len,\n                             std::string_view
      passphrase,\n                             const std::vector<uint8_t, Alloc>&
      salt,\n                             size_t iterations) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:213,1
    - Dst: pbkdf_timed
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - out_len
    - passphrase
    - salt
    - salt_len
    - msec
    - ' iterations'
    argTypes:
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - std::chrono::milliseconds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - pbkdf_timed
    - Botan::OctetString
    linkageType: ''
    returnType: OctetString
    signature: "OctetString derive_key(size_t out_len,\n                             std::string_view
      passphrase,\n                             const uint8_t salt[],\n                             size_t
      salt_len,\n                             std::chrono::milliseconds msec,\n                             size_t&
      iterations) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:230,1
    - Dst: pbkdf_timed
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:230,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:230,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out_len
    - passphrase
    - ' salt'
    - msec
    - ' iterations'
    argTypes:
    - size_t
    - std::string_view
    - std::vector<uint8_t, Alloc>
    - std::chrono::milliseconds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 231
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - Botan::data
    - Botan::size
    - pbkdf_timed
    - Botan::OctetString
    linkageType: ''
    returnType: OctetString
    signature: "OctetString derive_key(size_t out_len,\n                             std::string_view
      passphrase,\n                             const std::vector<uint8_t, Alloc>&
      salt,\n                             std::chrono::milliseconds msec,\n                             size_t&
      iterations) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::new_object
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::clone
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - Botan::new_object
    linkageType: ''
    returnType: PBKDF
    signature: PBKDF * clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: ~PBKDF()
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PBKDF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:180,1
    - Dst: pbkdf_iterations
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out_len
    - passphrase
    - salt
    - salt_len
    - iterations
    argTypes:
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - Botan::OctetString
    - pbkdf_iterations
    linkageType: ''
    returnType: OctetString
    signature: "OctetString derive_key(\n         size_t out_len, std::string_view
      passphrase, const uint8_t salt[], size_t salt_len, size_t iterations) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:195,1
    - Dst: pbkdf_iterations
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:195,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:195,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out_len
    - passphrase
    - ' salt'
    - iterations
    argTypes:
    - size_t
    - std::string_view
    - std::vector<uint8_t, Alloc>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - Botan::data
    - Botan::size
    - Botan::OctetString
    - pbkdf_iterations
    linkageType: ''
    returnType: OctetString
    signature: "OctetString derive_key(size_t out_len,\n                             std::string_view
      passphrase,\n                             const std::vector<uint8_t, Alloc>&
      salt,\n                             size_t iterations) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:213,1
    - Dst: pbkdf_timed
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - out_len
    - passphrase
    - salt
    - salt_len
    - msec
    - ' iterations'
    argTypes:
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - std::chrono::milliseconds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - pbkdf_timed
    - Botan::OctetString
    linkageType: ''
    returnType: OctetString
    signature: "OctetString derive_key(size_t out_len,\n                             std::string_view
      passphrase,\n                             const uint8_t salt[],\n                             size_t
      salt_len,\n                             std::chrono::milliseconds msec,\n                             size_t&
      iterations) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OctetString
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:230,1
    - Dst: pbkdf_timed
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:230,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:230,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out_len
    - passphrase
    - ' salt'
    - msec
    - ' iterations'
    argTypes:
    - size_t
    - std::string_view
    - std::vector<uint8_t, Alloc>
    - std::chrono::milliseconds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 231
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - Botan::data
    - Botan::size
    - pbkdf_timed
    - Botan::OctetString
    linkageType: ''
    returnType: OctetString
    signature: "OctetString derive_key(size_t out_len,\n                             std::string_view
      passphrase,\n                             const std::vector<uint8_t, Alloc>&
      salt,\n                             std::chrono::milliseconds msec,\n                             size_t&
      iterations) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: get_pbkdf
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    linkageType: ''
    returnType: PBKDF
    signature: PBKDF * get_pbkdf(std::string_view algo_spec, std::string_view provider
      = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pbkdf/pbkdf.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: get_s2k
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.h
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    linkageType: ''
    returnType: PBKDF
    signature: PBKDF * get_s2k(std::string_view algo_spec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:28,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:29,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:30,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:30,1
    - Dst: std::make_unique<PKCS5_PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:31,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:31,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:34,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:34,1
    - Dst: std::make_unique<PKCS5_PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:35,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:35,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:44,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:44,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:45,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:45,1
    - Dst: std::make_unique<OpenPGP_S2K>
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:46,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - algo_spec
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 54
    functionName: Botan::PBKDF::create
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 12
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - std::make_unique<OpenPGP_S2K>
    - std::move
    - BOTAN_UNUSED
    - std::string_view::empty
    - std::make_unique<PKCS5_PBKDF2>
    - Botan::HashFunction::create
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    linkageType: ''
    returnType: std::unique_ptr<PBKDF>
    signature: std::unique_ptr<PBKDF> PBKDF::create(std::string_view algo_spec, std::string_view
      provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:58,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - algo
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: Botan::PBKDF::create_or_throw
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 2
    functionsReached:
    - Botan::PBKDF::create
    - Lookup_Error
    linkageType: ''
    returnType: std::unique_ptr<PBKDF>
    signature: std::unique_ptr<PBKDF> PBKDF::create_or_throw(std::string_view algo,
      std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: probe_providers_of<PBKDF>
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan::PBKDF::providers
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 0
    functionsReached:
    - probe_providers_of<PBKDF>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PBKDF::providers(std::string_view algo_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pbkdf
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - out
    - out_len
    - passphrase
    - salt
    - salt_len
    - msec
    - ' iterations'
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - std::chrono::milliseconds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: Botan::PBKDF::pbkdf_timed
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 0
    functionsReached:
    - pbkdf
    linkageType: ''
    returnType: void
    signature: "void PBKDF::pbkdf_timed(uint8_t out[],\n                        size_t
      out_len,\n                        std::string_view passphrase,\n                        const
      uint8_t salt[],\n                        size_t salt_len,\n                        std::chrono::milliseconds
      msec,\n                        size_t& iterations) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:85,1
    - Dst: name
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:85,1
    - Dst: pbkdf
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:89,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:89,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - out
    - out_len
    - passphrase
    - salt
    - salt_len
    - iterations
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: Botan::PBKDF::pbkdf_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - pbkdf
    - name
    - Botan_CLI::Timer::milliseconds
    - BOTAN_ASSERT_EQUAL
    linkageType: ''
    returnType: void
    signature: "void PBKDF::pbkdf_iterations(uint8_t out[],\n                             size_t
      out_len,\n                             std::string_view passphrase,\n                             const
      uint8_t salt[],\n                             size_t salt_len,\n                             size_t
      iterations) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::pbkdf_iterations
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:96,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - out_len
    - passphrase
    - salt
    - salt_len
    - iterations
    argTypes:
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: Botan::PBKDF::pbkdf_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 1
    functionsReached:
    - secure_vector::data
    - Botan::PBKDF::pbkdf_iterations
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PBKDF::pbkdf_iterations(\n   size_t out_len,
      std::string_view passphrase, const uint8_t salt[], size_t salt_len, size_t iterations)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::pbkdf_timed
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:107,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - out_len
    - passphrase
    - salt
    - salt_len
    - msec
    - ' iterations'
    argTypes:
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - std::chrono::milliseconds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: Botan::PBKDF::pbkdf_timed
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 1
    functionsReached:
    - Botan::PBKDF::pbkdf_timed
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PBKDF::pbkdf_timed(size_t out_len,\n                                          std::string_view
      passphrase,\n                                          const uint8_t salt[],\n
      \                                         size_t salt_len,\n                                          std::chrono::milliseconds
      msec,\n                                          size_t& iterations) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:28,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:29,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:30,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:30,1
    - Dst: std::make_unique<PKCS5_PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:31,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:31,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:34,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:34,1
    - Dst: std::make_unique<PKCS5_PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:35,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:35,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:44,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:44,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:45,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:45,1
    - Dst: std::make_unique<OpenPGP_S2K>
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:46,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - algo_spec
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 54
    functionName: Botan::PBKDF::create
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 13
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - std::make_unique<OpenPGP_S2K>
    - std::move
    - BOTAN_UNUSED
    - std::string_view::empty
    - std::make_unique<PKCS5_PBKDF2>
    - Botan::HashFunction::create
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    linkageType: ''
    returnType: std::unique_ptr<PBKDF>
    signature: std::unique_ptr<PBKDF> PBKDF::create(std::string_view algo_spec, std::string_view
      provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:58,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - algo
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: Botan::PBKDF::create_or_throw
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 2
    functionsReached:
    - Botan::PBKDF::create
    - Lookup_Error
    linkageType: ''
    returnType: std::unique_ptr<PBKDF>
    signature: std::unique_ptr<PBKDF> PBKDF::create_or_throw(std::string_view algo,
      std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: probe_providers_of<PBKDF>
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan::PBKDF::providers
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 0
    functionsReached:
    - probe_providers_of<PBKDF>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PBKDF::providers(std::string_view algo_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pbkdf
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - out
    - out_len
    - passphrase
    - salt
    - salt_len
    - msec
    - ' iterations'
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - std::chrono::milliseconds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: Botan::PBKDF::pbkdf_timed
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 1
    functionsReached:
    - pbkdf
    linkageType: ''
    returnType: void
    signature: "void PBKDF::pbkdf_timed(uint8_t out[],\n                        size_t
      out_len,\n                        std::string_view passphrase,\n                        const
      uint8_t salt[],\n                        size_t salt_len,\n                        std::chrono::milliseconds
      msec,\n                        size_t& iterations) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:85,1
    - Dst: name
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:85,1
    - Dst: pbkdf
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:89,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:89,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - out
    - out_len
    - passphrase
    - salt
    - salt_len
    - iterations
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: Botan::PBKDF::pbkdf_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 1
    functionsReached:
    - Invalid_Argument
    - pbkdf
    - name
    - Botan_CLI::Timer::milliseconds
    - BOTAN_ASSERT_EQUAL
    linkageType: ''
    returnType: void
    signature: "void PBKDF::pbkdf_iterations(uint8_t out[],\n                             size_t
      out_len,\n                             std::string_view passphrase,\n                             const
      uint8_t salt[],\n                             size_t salt_len,\n                             size_t
      iterations) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::pbkdf_iterations
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:96,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - out_len
    - passphrase
    - salt
    - salt_len
    - iterations
    argTypes:
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: Botan::PBKDF::pbkdf_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 2
    functionsReached:
    - secure_vector::data
    - Botan::PBKDF::pbkdf_iterations
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PBKDF::pbkdf_iterations(\n   size_t out_len,
      std::string_view passphrase, const uint8_t salt[], size_t salt_len, size_t iterations)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::pbkdf_timed
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:107,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - out_len
    - passphrase
    - salt
    - salt_len
    - msec
    - ' iterations'
    argTypes:
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - std::chrono::milliseconds
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: Botan::PBKDF::pbkdf_timed
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf.cpp
    functionUses: 2
    functionsReached:
    - Botan::PBKDF::pbkdf_timed
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PBKDF::pbkdf_timed(size_t out_len,\n                                          std::string_view
      passphrase,\n                                          const uint8_t salt[],\n
      \                                         size_t salt_len,\n                                          std::chrono::milliseconds
      msec,\n                                          size_t& iterations) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::memory_param
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t memory_param() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::parallelism
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::total_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t total_memory_usage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::supports_keyed_operation
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_keyed_operation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::supports_associated_data
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_associated_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::derive_key
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - password
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::hash
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached:
    - std::string_view::data
    - std::span<uint8_t>::data
    - Botan::derive_key
    - std::span<uint8_t>::size
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::string_view::size
    linkageType: ''
    returnType: void
    signature: void hash(std::span<uint8_t> out, std::string_view password, std::span<const
      uint8_t> salt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::derive_key
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:114,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:114,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:115,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:116,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:117,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:118,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:119,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:120,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:121,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:122,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - password
    - salt
    - associated_data
    - key
    argTypes:
    - std::span<uint8_t>
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: Botan::hash
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached:
    - std::string_view::data
    - std::span<uint8_t>::data
    - Botan::derive_key
    - std::span<uint8_t>::size
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::string_view::size
    linkageType: ''
    returnType: void
    signature: "void hash(std::span<uint8_t> out,\n                std::string_view
      password,\n                std::span<const uint8_t> salt,\n                std::span<const
      uint8_t> associated_data,\n                std::span<const uint8_t> key) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::memory_param
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t memory_param() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::parallelism
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::total_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t total_memory_usage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::supports_keyed_operation
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_keyed_operation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::supports_associated_data
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_associated_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::derive_key
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - password
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::hash
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached:
    - std::string_view::data
    - std::span<uint8_t>::data
    - Botan::derive_key
    - std::span<uint8_t>::size
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::string_view::size
    linkageType: ''
    returnType: void
    signature: void hash(std::span<uint8_t> out, std::string_view password, std::span<const
      uint8_t> salt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::derive_key
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:114,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:114,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:115,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:116,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:117,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:118,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:119,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:120,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:121,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:122,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - password
    - salt
    - associated_data
    - key
    argTypes:
    - std::span<uint8_t>
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: Botan::hash
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached:
    - std::string_view::data
    - std::span<uint8_t>::data
    - Botan::derive_key
    - std::span<uint8_t>::size
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::string_view::size
    linkageType: ''
    returnType: void
    signature: "void hash(std::span<uint8_t> out,\n                std::string_view
      password,\n                std::span<const uint8_t> salt,\n                std::span<const
      uint8_t> associated_data,\n                std::span<const uint8_t> key) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: ~PasswordHashFamily()
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PasswordHashFamily()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:273,1
    - Dst: tune_params
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:279,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:280,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:280,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:282,1
    - Dst: count
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - output_length
    - msec
    argTypes:
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 283
    functionName: tune
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - tune_params
    - std::chrono::milliseconds::count
    - count
    - Botan_CLI::Timer::milliseconds
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> tune(size_t output_length,\n                                         std::chrono::milliseconds
      msec,\n                                         size_t max_memory_usage_mb =
      0,\n                                         std::chrono::milliseconds tuning_msec
      = std::chrono::milliseconds(10)) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:45,1
    - Dst: Botan::PasswordHash::derive_key
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:48,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:50,1
    - Dst: Botan::PasswordHash::to_string
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 10
    argNames:
    - out
    - out_len
    - password
    - password_len
    - salt
    - salt_len
    - ad
    - ad_len
    - key
    - key_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: Botan::PasswordHash::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.cpp
    functionUses: 1
    functionsReached:
    - Botan::PasswordHash::derive_key
    - BOTAN_UNUSED
    - Not_Implemented
    - Botan::PasswordHash::to_string
    linkageType: ''
    returnType: void
    signature: "void PasswordHash::derive_key(uint8_t out[],\n                              size_t
      out_len,\n                              const char* password,\n                              size_t
      password_len,\n                              const uint8_t salt[],\n                              size_t
      salt_len,\n                              const uint8_t ad[],\n                              size_t
      ad_len,\n                              const uint8_t key[],\n                              size_t
      key_len) const"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:58,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:59,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:60,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:60,1
    - Dst: std::make_unique<PBKDF2_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:61,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:61,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:64,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:64,1
    - Dst: std::make_unique<PBKDF2_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:65,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:65,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:74,1
    - Dst: std::make_unique<Scrypt_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:75,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:80,1
    - Dst: std::make_unique<Argon2_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:81,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:81,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:82,1
    - Dst: std::make_unique<Argon2_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:83,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:83,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:84,1
    - Dst: std::make_unique<Argon2_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:85,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:85,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:90,1
    - Dst: std::make_unique<Bcrypt_PBKDF_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:91,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:96,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:96,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:97,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:97,1
    - Dst: std::make_unique<RFC4880_S2K_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:98,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:103,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:104,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - algo_spec
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 107
    functionName: Botan::PasswordHashFamily::create
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.cpp
    functionUses: 28
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - std::move
    - BOTAN_UNUSED
    - SCAN_Name::arg_count
    - std::make_unique<Argon2_Family>
    - std::string_view::empty
    - std::make_unique<Scrypt_Family>
    - SCAN_Name::algo_name
    - std::make_unique<Bcrypt_PBKDF_Family>
    - Botan::HashFunction::create
    - std::make_unique<PBKDF2_Family>
    - SCAN_Name::arg
    - static_cast<uint8_t>
    - std::make_unique<RFC4880_S2K_Family>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHashFamily>
    signature: std::unique_ptr<PasswordHashFamily> PasswordHashFamily::create(std::string_view
      algo_spec, std::string_view provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:112,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - algo
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: Botan::PasswordHashFamily::create_or_throw
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.cpp
    functionUses: 8
    functionsReached:
    - Botan::PasswordHashFamily::create
    - Lookup_Error
    linkageType: ''
    returnType: std::unique_ptr<PasswordHashFamily>
    signature: "std::unique_ptr<PasswordHashFamily> PasswordHashFamily::create_or_throw(std::string_view
      algo,\n                                                                        std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: probe_providers_of<PasswordHashFamily>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::PasswordHashFamily::providers
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.cpp
    functionUses: 0
    functionsReached:
    - probe_providers_of<PasswordHashFamily>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PasswordHashFamily::providers(std::string_view
      algo_spec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:45,1
    - Dst: Botan::PasswordHash::derive_key
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:48,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:50,1
    - Dst: Botan::PasswordHash::to_string
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 10
    argNames:
    - out
    - out_len
    - password
    - password_len
    - salt
    - salt_len
    - ad
    - ad_len
    - key
    - key_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: Botan::PasswordHash::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.cpp
    functionUses: 2
    functionsReached:
    - Botan::PasswordHash::derive_key
    - BOTAN_UNUSED
    - Not_Implemented
    - Botan::PasswordHash::to_string
    linkageType: ''
    returnType: void
    signature: "void PasswordHash::derive_key(uint8_t out[],\n                              size_t
      out_len,\n                              const char* password,\n                              size_t
      password_len,\n                              const uint8_t salt[],\n                              size_t
      salt_len,\n                              const uint8_t ad[],\n                              size_t
      ad_len,\n                              const uint8_t key[],\n                              size_t
      key_len) const"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:58,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:59,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:60,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:60,1
    - Dst: std::make_unique<PBKDF2_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:61,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:61,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:64,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:64,1
    - Dst: std::make_unique<PBKDF2_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:65,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:65,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:74,1
    - Dst: std::make_unique<Scrypt_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:75,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:80,1
    - Dst: std::make_unique<Argon2_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:81,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:81,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:82,1
    - Dst: std::make_unique<Argon2_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:83,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:83,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:84,1
    - Dst: std::make_unique<Argon2_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:85,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:85,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:90,1
    - Dst: std::make_unique<Bcrypt_PBKDF_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:91,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:96,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:96,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:97,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:97,1
    - Dst: std::make_unique<RFC4880_S2K_Family>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:98,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:103,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:104,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - algo_spec
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 107
    functionName: Botan::PasswordHashFamily::create
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.cpp
    functionUses: 29
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    - std::move
    - BOTAN_UNUSED
    - SCAN_Name::arg_count
    - std::make_unique<Argon2_Family>
    - std::string_view::empty
    - std::make_unique<Scrypt_Family>
    - SCAN_Name::algo_name
    - std::make_unique<Bcrypt_PBKDF_Family>
    - Botan::HashFunction::create
    - std::make_unique<PBKDF2_Family>
    - SCAN_Name::arg
    - static_cast<uint8_t>
    - std::make_unique<RFC4880_S2K_Family>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHashFamily>
    signature: std::unique_ptr<PasswordHashFamily> PasswordHashFamily::create(std::string_view
      algo_spec, std::string_view provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:112,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - algo
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: Botan::PasswordHashFamily::create_or_throw
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.cpp
    functionUses: 8
    functionsReached:
    - Botan::PasswordHashFamily::create
    - Lookup_Error
    linkageType: ''
    returnType: std::unique_ptr<PasswordHashFamily>
    signature: "std::unique_ptr<PasswordHashFamily> PasswordHashFamily::create_or_throw(std::string_view
      algo,\n                                                                        std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: probe_providers_of<PasswordHashFamily>
      Src: /src/botan/src/lib/pbkdf/pwdhash.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::PasswordHashFamily::providers
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.cpp
    functionUses: 0
    functionsReached:
    - probe_providers_of<PasswordHashFamily>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PasswordHashFamily::providers(std::string_view
      algo_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::name
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h
    functionUses: 4
    functionsReached:
    - Botan::name
    linkageType: ''
    returnType: OpenPGP_S2K
    signature: OpenPGP_S2K final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OpenPGP_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h:48,1
    - Dst: Botan::new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::new_object
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h
    functionUses: 3
    functionsReached:
    - std::make_unique<OpenPGP_S2K>
    - Botan::new_object
    linkageType: ''
    returnType: std::unique_ptr<PBKDF>
    signature: std::unique_ptr<PBKDF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::encode_count
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h
    functionUses: 0
    functionsReached:
    - Botan::RFC4880_encode_count
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t encode_count(size_t iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoded_iter
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::decode_count
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h
    functionUses: 0
    functionsReached:
    - Botan::RFC4880_decode_count
    linkageType: ''
    returnType: size_t
    signature: size_t decode_count(uint8_t encoded_iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::name
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h
    functionUses: 4
    functionsReached:
    - Botan::name
    linkageType: ''
    returnType: OpenPGP_S2K
    signature: OpenPGP_S2K final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<OpenPGP_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h:48,1
    - Dst: Botan::new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::new_object
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h
    functionUses: 4
    functionsReached:
    - std::make_unique<OpenPGP_S2K>
    - Botan::new_object
    linkageType: ''
    returnType: std::unique_ptr<PBKDF>
    signature: std::unique_ptr<PBKDF> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::encode_count
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h
    functionUses: 0
    functionsReached:
    - Botan::RFC4880_encode_count
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t encode_count(size_t iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoded_iter
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::decode_count
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h
    functionUses: 0
    functionsReached:
    - Botan::RFC4880_decode_count
    linkageType: ''
    returnType: size_t
    signature: size_t decode_count(uint8_t encoded_iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RFC4880_S2K
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 102
    functionName: PasswordHash
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h
    functionUses: 0
    functionsReached:
    - RFC4880_S2K
    linkageType: ''
    returnType: RFC4880_S2K
    signature: RFC4880_S2K PasswordHash
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t iterations() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 128
    functionName: PasswordHashFamily
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RFC4880_S2K_Family
    signature: RFC4880_S2K_Family PasswordHashFamily
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.h:33,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Botan::RFC4880_round_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.h
    functionUses: 0
    functionsReached:
    - Botan::RFC4880_encode_count
    - Botan::RFC4880_decode_count
    linkageType: ''
    returnType: size_t
    signature: size_t RFC4880_round_iterations(size_t iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RFC4880_decode_count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.h:33,1
    - Dst: Botan::RFC4880_encode_count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Botan::RFC4880_round_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.h
    functionUses: 0
    functionsReached:
    - Botan::RFC4880_encode_count
    - Botan::RFC4880_decode_count
    linkageType: ''
    returnType: size_t
    signature: size_t RFC4880_round_iterations(size_t iterations)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.cpp:56,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - desired_iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: Botan::RFC4880_encode_count
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    - std::lower_bound
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t RFC4880_encode_count(size_t desired_iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::RFC4880_decode_count
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RFC4880_decode_count(uint8_t iter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.cpp:56,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - desired_iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: Botan::RFC4880_encode_count
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    - std::lower_bound
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t RFC4880_encode_count(size_t desired_iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::RFC4880_decode_count
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RFC4880_decode_count(uint8_t iter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:31,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:36,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:36,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: std::span
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:42,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:48,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:48,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:52,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:55,1
    - Dst: max
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:56,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:56,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:58,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:59,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:59,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:64,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:64,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:65,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:65,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 8
    argNames:
    - ' hash'
    - output_buf
    - output_len
    - password
    - password_size
    - salt
    - salt_len
    - iterations
    argTypes:
    - HashFunction
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 69
    functionName: Botan::pgp_s2k
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan::Invalid_Argument
    - secure_vector::empty
    - Botan::copy_mem
    - Botan::update
    - max
    - secure_vector::size
    - std::span
    - secure_vector::data
    - Botan::final
    - Botan::output_length
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: "void pgp_s2k(HashFunction& hash,\n             uint8_t output_buf[],\n
      \            size_t output_len,\n             const char* password,\n             const
      size_t password_size,\n             const uint8_t salt[],\n             size_t
      salt_len,\n             size_t iterations)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:31,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:36,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:36,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: std::span
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:42,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:48,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:48,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:52,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:55,1
    - Dst: max
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:56,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:56,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:58,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:59,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:59,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:64,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:64,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:65,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:65,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 8
    argNames:
    - ' hash'
    - output_buf
    - output_len
    - password
    - password_size
    - salt
    - salt_len
    - iterations
    argTypes:
    - HashFunction
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 69
    functionName: Botan::pgp_s2k
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan::Invalid_Argument
    - secure_vector::empty
    - Botan::copy_mem
    - Botan::update
    - max
    - secure_vector::size
    - std::span
    - secure_vector::data
    - Botan::final
    - Botan::output_length
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: "void pgp_s2k(HashFunction& hash,\n             uint8_t output_buf[],\n
      \            size_t output_len,\n             const char* password,\n             const
      size_t password_size,\n             const uint8_t salt[],\n             size_t
      salt_len,\n             size_t iterations)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:81,1
    - Dst: RFC4880_S2K_Family::tune_params
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:82,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:82,1
    - Dst: pgp_s2k
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:85,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:85,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - output_buf
    - output_len
    - password
    - salt
    - salt_len
    - iterations
    - desired_msec
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 88
    functionName: Botan::OpenPGP_S2K::pbkdf
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::data
    - std::chrono::milliseconds::count
    - std::string_view::size
    - RFC4880_S2K_Family::tune_params
    - new_object
    - pgp_s2k
    linkageType: ''
    returnType: size_t
    signature: "size_t OpenPGP_S2K::pbkdf(uint8_t output_buf[],\n                          size_t
      output_len,\n                          std::string_view password,\n                          const
      uint8_t salt[],\n                          size_t salt_len,\n                          size_t
      iterations,\n                          std::chrono::milliseconds desired_msec)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:91,1
    - Dst: Botan::RFC4880_S2K_Family::name
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::RFC4880_S2K_Family::name
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 1
    functionsReached:
    - Botan::RFC4880_S2K_Family::name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string RFC4880_S2K_Family::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:101,1
    - Dst: update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:101,1
    - Dst: output_length
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:106,1
    - Dst: RFC4880_round_iterations
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:110,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:110,1
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:112,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - output_len
    - desired_msec
    - tuning_msec
    argTypes:
    - size_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: Botan::RFC4880_S2K_Family::tune_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RFC4880_S2K>
    - static_cast<size_t>
    - update
    - measure_cost
    - RFC4880_round_iterations
    - output_length
    - new_object
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> RFC4880_S2K_Family::tune_params(size_t
      output_len,\n                                                              uint64_t
      desired_msec,\n                                                              std::optional<size_t>
      /*max_memory*/,\n                                                              uint64_t
      tuning_msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:118,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: Botan::RFC4880_S2K_Family::from_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RFC4880_S2K>
    - new_object
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> RFC4880_S2K_Family::from_params(size_t
      iterations,\n                                                              size_t
      /*unused*/,\n                                                              size_t
      /*unused*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:122,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: Botan::RFC4880_S2K_Family::default_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RFC4880_S2K>
    - new_object
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> RFC4880_S2K_Family::default_params()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:126,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: Botan::RFC4880_S2K_Family::from_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RFC4880_S2K>
    - new_object
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> RFC4880_S2K_Family::from_iterations(size_t
      iterations) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hash
    - iterations
    argTypes:
    - std::unique_ptr<HashFunction>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: Botan::RFC4880_S2K::RFC4880_S2K
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RFC4880_S2K::RFC4880_S2K(std::unique_ptr<HashFunction> hash, size_t
      iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:133,1
    - Dst: name
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: Botan::RFC4880_S2K::to_string
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string RFC4880_S2K::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_s2k
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - out
    - out_len
    - password
    - password_len
    - salt
    - salt_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: Botan::RFC4880_S2K::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - pgp_s2k
    linkageType: ''
    returnType: void
    signature: "void RFC4880_S2K::derive_key(uint8_t out[],\n                             size_t
      out_len,\n                             const char* password,\n                             const
      size_t password_len,\n                             const uint8_t salt[],\n                             size_t
      salt_len) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:31,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:36,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:36,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: std::span
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:42,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:48,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:48,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:52,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:55,1
    - Dst: max
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:56,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:56,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:58,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:59,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:59,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:64,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:64,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:65,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:65,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 8
    argNames:
    - ' hash'
    - output_buf
    - output_len
    - password
    - password_size
    - salt
    - salt_len
    - iterations
    argTypes:
    - HashFunction
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 69
    functionName: Botan::pgp_s2k
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan::Invalid_Argument
    - secure_vector::empty
    - Botan::copy_mem
    - Botan::update
    - max
    - secure_vector::size
    - std::span
    - secure_vector::data
    - Botan::final
    - Botan::output_length
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: "void pgp_s2k(HashFunction& hash,\n             uint8_t output_buf[],\n
      \            size_t output_len,\n             const char* password,\n             const
      size_t password_size,\n             const uint8_t salt[],\n             size_t
      salt_len,\n             size_t iterations)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:31,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:36,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:36,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: std::span
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:39,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:42,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:48,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:48,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:52,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:55,1
    - Dst: max
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:56,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:56,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:58,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:59,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:59,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:64,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:64,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:65,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:65,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 8
    argNames:
    - ' hash'
    - output_buf
    - output_len
    - password
    - password_size
    - salt
    - salt_len
    - iterations
    argTypes:
    - HashFunction
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 69
    functionName: Botan::pgp_s2k
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan::Invalid_Argument
    - secure_vector::empty
    - Botan::copy_mem
    - Botan::update
    - max
    - secure_vector::size
    - std::span
    - secure_vector::data
    - Botan::final
    - Botan::output_length
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: "void pgp_s2k(HashFunction& hash,\n             uint8_t output_buf[],\n
      \            size_t output_len,\n             const char* password,\n             const
      size_t password_size,\n             const uint8_t salt[],\n             size_t
      salt_len,\n             size_t iterations)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:81,1
    - Dst: RFC4880_S2K_Family::tune_params
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:82,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:82,1
    - Dst: pgp_s2k
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:85,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:85,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - output_buf
    - output_len
    - password
    - salt
    - salt_len
    - iterations
    - desired_msec
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 88
    functionName: Botan::OpenPGP_S2K::pbkdf
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::data
    - std::chrono::milliseconds::count
    - std::string_view::size
    - RFC4880_S2K_Family::tune_params
    - new_object
    - pgp_s2k
    linkageType: ''
    returnType: size_t
    signature: "size_t OpenPGP_S2K::pbkdf(uint8_t output_buf[],\n                          size_t
      output_len,\n                          std::string_view password,\n                          const
      uint8_t salt[],\n                          size_t salt_len,\n                          size_t
      iterations,\n                          std::chrono::milliseconds desired_msec)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:91,1
    - Dst: Botan::RFC4880_S2K_Family::name
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::RFC4880_S2K_Family::name
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 2
    functionsReached:
    - Botan::RFC4880_S2K_Family::name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string RFC4880_S2K_Family::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:101,1
    - Dst: update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:101,1
    - Dst: output_length
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:106,1
    - Dst: RFC4880_round_iterations
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:110,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:110,1
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:112,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - output_len
    - desired_msec
    - tuning_msec
    argTypes:
    - size_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: Botan::RFC4880_S2K_Family::tune_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RFC4880_S2K>
    - static_cast<size_t>
    - update
    - measure_cost
    - RFC4880_round_iterations
    - output_length
    - new_object
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> RFC4880_S2K_Family::tune_params(size_t
      output_len,\n                                                              uint64_t
      desired_msec,\n                                                              std::optional<size_t>
      /*max_memory*/,\n                                                              uint64_t
      tuning_msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:118,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: Botan::RFC4880_S2K_Family::from_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RFC4880_S2K>
    - new_object
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> RFC4880_S2K_Family::from_params(size_t
      iterations,\n                                                              size_t
      /*unused*/,\n                                                              size_t
      /*unused*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:122,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: Botan::RFC4880_S2K_Family::default_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RFC4880_S2K>
    - new_object
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> RFC4880_S2K_Family::default_params()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:126,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: Botan::RFC4880_S2K_Family::from_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RFC4880_S2K>
    - new_object
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> RFC4880_S2K_Family::from_iterations(size_t
      iterations) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hash
    - iterations
    argTypes:
    - std::unique_ptr<HashFunction>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: Botan::RFC4880_S2K::RFC4880_S2K
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RFC4880_S2K::RFC4880_S2K(std::unique_ptr<HashFunction> hash, size_t
      iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:133,1
    - Dst: name
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: Botan::RFC4880_S2K::to_string
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string RFC4880_S2K::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_s2k
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - out
    - out_len
    - password
    - password_len
    - salt
    - salt_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: Botan::RFC4880_S2K::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - pgp_s2k
    linkageType: ''
    returnType: void
    signature: "void RFC4880_S2K::derive_key(uint8_t out[],\n                             size_t
      out_len,\n                             const char* password,\n                             const
      size_t password_len,\n                             const uint8_t salt[],\n                             size_t
      salt_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Argon2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:26,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:61,1
    - Dst: Botan::p
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:63,1
    - Dst: Botan::M
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:65,1
    - Dst: Botan::M
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 96
    functionName: Botan::PasswordHash
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::p
    - Botan::M
    - Botan::t
    - Argon2
    linkageType: ''
    returnType: Argon2
    signature: Argon2 PasswordHash
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::M
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t M() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::t
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::p
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::supports_keyed_operation
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_keyed_operation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::supports_associated_data
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_associated_data() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::t
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::t
    linkageType: ''
    returnType: size_t
    signature: size_t iterations() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::p
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::parallelism
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::p
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::M
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::memory_param
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::M
    linkageType: ''
    returnType: size_t
    signature: size_t memory_param() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::M
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::total_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::M
    linkageType: ''
    returnType: size_t
    signature: size_t total_memory_usage() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: Botan::PasswordHashFamily
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Argon2_Family
    signature: Argon2_Family PasswordHashFamily
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:153,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:162,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:165,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 14
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - key
    - key_len
    - ad
    - ad_len
    - y
    - p
    - M
    - t
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 167
    functionName: Botan::argon2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::derive_key
    - Not_Implemented
    - Botan::PasswordHashFamily::create_or_throw
    linkageType: ''
    returnType: void
    signature: "void argon2(uint8_t output[],\n                   size_t output_len,\n
      \                  const char* password,\n                   size_t password_len,\n
      \                  const uint8_t salt[],\n                   size_t salt_len,\n
      \                  const uint8_t key[],\n                   size_t key_len,\n
      \                  const uint8_t ad[],\n                   size_t ad_len,\n
      \                  uint8_t y,\n                   size_t p,\n                   size_t
      M,\n                   size_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Argon2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:26,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:61,1
    - Dst: Botan::p
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:63,1
    - Dst: Botan::M
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:65,1
    - Dst: Botan::M
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 96
    functionName: Botan::PasswordHash
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::p
    - Botan::M
    - Botan::t
    - Argon2
    linkageType: ''
    returnType: Argon2
    signature: Argon2 PasswordHash
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::M
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t M() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::t
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::p
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::supports_keyed_operation
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_keyed_operation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::supports_associated_data
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_associated_data() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::t
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::t
    linkageType: ''
    returnType: size_t
    signature: size_t iterations() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::p
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::parallelism
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::p
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::M
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::memory_param
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::M
    linkageType: ''
    returnType: size_t
    signature: size_t memory_param() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::M
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::total_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::M
    linkageType: ''
    returnType: size_t
    signature: size_t total_memory_usage() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: Botan::PasswordHashFamily
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Argon2_Family
    signature: Argon2_Family PasswordHashFamily
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:153,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:162,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:165,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 14
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - key
    - key_len
    - ad
    - ad_len
    - y
    - p
    - M
    - t
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 167
    functionName: Botan::argon2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::derive_key
    - Not_Implemented
    - Botan::PasswordHashFamily::create_or_throw
    linkageType: ''
    returnType: void
    signature: "void argon2(uint8_t output[],\n                   size_t output_len,\n
      \                  const char* password,\n                   size_t password_len,\n
      \                  const uint8_t salt[],\n                   size_t salt_len,\n
      \                  const uint8_t key[],\n                   size_t key_len,\n
      \                  const uint8_t ad[],\n                   size_t ad_len,\n
      \                  uint8_t y,\n                   size_t p,\n                   size_t
      M,\n                   size_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:48,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:48,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:49,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:49,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:50,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:50,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:51,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:51,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:52,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:53,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:53,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:55,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:55,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:58,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:61,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:61,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:64,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 15
    argNames:
    - H0
    - ' blake2b'
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - key
    - key_len
    - ad
    - ad_len
    - y
    - p
    - M
    - t
    argTypes:
    - uint8_t[]
    - HashFunction
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 68
    functionName: Botan::argon2_H0
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - update_le
    - Botan::update
    - Botan::final
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: "void argon2_H0(uint8_t H0[64],\n               HashFunction& blake2b,\n
      \              size_t output_len,\n               const char* password,\n               size_t
      password_len,\n               const uint8_t salt[],\n               size_t salt_len,\n
      \              const uint8_t key[],\n               size_t key_len,\n               const
      uint8_t ad[],\n               size_t ad_len,\n               size_t y,\n               size_t
      p,\n               size_t M,\n               size_t t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:85,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:85,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:88,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:90,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:94,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:97,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:99,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:102,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:102,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:107,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:108,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:113,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:114,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:116,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:116,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - output
    - output_len
    - ' B'
    - memory
    - threads
    argTypes:
    - uint8_t[]
    - size_t
    - secure_vector<uint64_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 121
    functionName: Botan::extract_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::fmt
    - Botan::copy_mem
    - auto::update_le
    - Botan::HashFunction::create_or_throw
    - auto::update
    - auto::final
    - secure_vector::data
    linkageType: ''
    returnType: void
    signature: void extract_key(uint8_t output[], size_t output_len, const secure_vector<uint64_t>&
      B, size_t memory, size_t threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:125,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:125,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:130,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:130,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:135,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:135,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:137,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:137,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:138,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:138,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:142,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:143,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:144,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - ' B'
    - ' blake2b'
    - H0
    - memory
    - threads
    argTypes:
    - secure_vector<uint64_t>
    - HashFunction
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 150
    functionName: Botan::init_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::load_le
    - update_le
    - Botan::update
    - Botan::size
    - BOTAN_ASSERT_NOMSG
    - Botan::final
    linkageType: ''
    returnType: void
    signature: "void init_blocks(\n   secure_vector<uint64_t>& B, HashFunction& blake2b,
      const uint8_t H0[64], size_t memory, size_t threads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    - static_cast<uint32_t>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_G(uint64_t& A, uint64_t& B, uint64_t& C,
      uint64_t& D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:48,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:48,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:49,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:49,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:50,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:50,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:51,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:51,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:52,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:53,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:53,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:55,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:55,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:58,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:61,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:61,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:64,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 15
    argNames:
    - H0
    - ' blake2b'
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - key
    - key_len
    - ad
    - ad_len
    - y
    - p
    - M
    - t
    argTypes:
    - uint8_t[]
    - HashFunction
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 68
    functionName: Botan::argon2_H0
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - update_le
    - Botan::update
    - Botan::final
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: "void argon2_H0(uint8_t H0[64],\n               HashFunction& blake2b,\n
      \              size_t output_len,\n               const char* password,\n               size_t
      password_len,\n               const uint8_t salt[],\n               size_t salt_len,\n
      \              const uint8_t key[],\n               size_t key_len,\n               const
      uint8_t ad[],\n               size_t ad_len,\n               size_t y,\n               size_t
      p,\n               size_t M,\n               size_t t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:85,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:85,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:88,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:90,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:94,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:97,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:99,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:102,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:102,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:107,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:108,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:113,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:114,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:116,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:116,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - output
    - output_len
    - ' B'
    - memory
    - threads
    argTypes:
    - uint8_t[]
    - size_t
    - secure_vector<uint64_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 121
    functionName: Botan::extract_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::fmt
    - Botan::copy_mem
    - auto::update_le
    - Botan::HashFunction::create_or_throw
    - auto::update
    - auto::final
    - secure_vector::data
    linkageType: ''
    returnType: void
    signature: void extract_key(uint8_t output[], size_t output_len, const secure_vector<uint64_t>&
      B, size_t memory, size_t threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:125,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:125,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:130,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:130,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:135,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:135,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:137,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:137,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:138,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:138,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:142,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:143,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:144,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - ' B'
    - ' blake2b'
    - H0
    - memory
    - threads
    argTypes:
    - secure_vector<uint64_t>
    - HashFunction
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 150
    functionName: Botan::init_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::load_le
    - update_le
    - Botan::update
    - Botan::size
    - BOTAN_ASSERT_NOMSG
    - Botan::final
    linkageType: ''
    returnType: void
    signature: "void init_blocks(\n   secure_vector<uint64_t>& B, HashFunction& blake2b,
      const uint8_t H0[64], size_t memory, size_t threads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    - static_cast<uint32_t>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_G(uint64_t& A, uint64_t& B, uint64_t& C,
      uint64_t& D)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:170,1
    - Dst: Botan::Argon2::blamka_avx2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:171,1
    - Dst: has
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:176,1
    - Dst: Botan::BOTAN_FN_ISA_SIMD_2X64::blamka_simd64
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:177,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:181,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:184,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:185,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:186,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:187,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:189,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:190,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:191,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:192,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:196,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:197,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:198,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:199,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:201,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:202,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:203,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - N
    - T
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 210
    functionName: Botan::Argon2::blamka
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::BOTAN_FN_ISA_SIMD_2X64::blamka_simd64
    - blamka_G
    - copy_mem
    - Botan::Argon2::blamka_avx2
    - has
    linkageType: ''
    returnType: void
    signature: void Argon2::blamka(uint64_t N[128], uint64_t T[128])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:223,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 9
    argNames:
    - T
    - B
    - n
    - lane
    - slice
    - memory
    - time
    - mode
    - cnt
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 236
    functionName: Botan::gen_2i_addresses
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::Argon2::blamka
    - Botan::clear_mem
    linkageType: ''
    returnType: void
    signature: "void gen_2i_addresses(uint64_t T[128],\n                      uint64_t
      B[128],\n                      size_t n,\n                      size_t lane,\n
      \                     size_t slice,\n                      size_t memory,\n
      \                     size_t time,\n                      size_t mode,\n                      size_t
      cnt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:240,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:265,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 8
    argNames:
    - random
    - lanes
    - segments
    - threads
    - n
    - slice
    - lane
    - index
    argTypes:
    - uint64_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 270
    functionName: Botan::index_alpha
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t index_alpha(\n   uint64_t random, size_t lanes, size_t segments,
      size_t threads, size_t n, size_t slice, size_t lane, size_t index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:294,1
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:307,1
    - Dst: at
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:310,1
    - Dst: Botan::index_alpha
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:311,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:318,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 10
    argNames:
    - ' B'
    - n
    - slice
    - lane
    - lanes
    - segments
    - threads
    - mode
    - memory
    - time
    argTypes:
    - secure_vector<uint64_t>
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - uint8_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 326
    functionName: Botan::process_block
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::index_alpha
    - at
    - Botan::Argon2::blamka
    - Botan::gen_2i_addresses
    linkageType: ''
    returnType: void
    signature: "void process_block(secure_vector<uint64_t>& B,\n                   size_t
      n,\n                   size_t slice,\n                   size_t lane,\n                   size_t
      lanes,\n                   size_t segments,\n                   size_t threads,\n
      \                  uint8_t mode,\n                   size_t memory,\n                   size_t
      time)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:334,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:339,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:342,1
    - Dst: Botan::run
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:342,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:347,1
    - Dst: Botan::process_block
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - ' B'
    - t
    - memory
    - threads
    - mode
    argTypes:
    - secure_vector<uint64_t>
    - size_t
    - size_t
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 363
    functionName: Botan::process_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::reserve
    - Botan::process_block
    - Botan::run
    - std::ref
    - Thread_Pool::global_instance
    - Botan::get
    linkageType: ''
    returnType: void
    signature: void process_blocks(secure_vector<uint64_t>& B, size_t t, size_t memory,
      size_t threads, uint8_t mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:223,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 9
    argNames:
    - T
    - B
    - n
    - lane
    - slice
    - memory
    - time
    - mode
    - cnt
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 236
    functionName: Botan::gen_2i_addresses
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 1
    functionsReached:
    - Botan::Argon2::blamka
    - Botan::clear_mem
    linkageType: ''
    returnType: void
    signature: "void gen_2i_addresses(uint64_t T[128],\n                      uint64_t
      B[128],\n                      size_t n,\n                      size_t lane,\n
      \                     size_t slice,\n                      size_t memory,\n
      \                     size_t time,\n                      size_t mode,\n                      size_t
      cnt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:240,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:265,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 8
    argNames:
    - random
    - lanes
    - segments
    - threads
    - n
    - slice
    - lane
    - index
    argTypes:
    - uint64_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 270
    functionName: Botan::index_alpha
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t index_alpha(\n   uint64_t random, size_t lanes, size_t segments,
      size_t threads, size_t n, size_t slice, size_t lane, size_t index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:294,1
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:307,1
    - Dst: at
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:310,1
    - Dst: Botan::index_alpha
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:311,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:318,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 10
    argNames:
    - ' B'
    - n
    - slice
    - lane
    - lanes
    - segments
    - threads
    - mode
    - memory
    - time
    argTypes:
    - secure_vector<uint64_t>
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - uint8_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 326
    functionName: Botan::process_block
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 1
    functionsReached:
    - Botan::index_alpha
    - at
    - Botan::Argon2::blamka
    - Botan::gen_2i_addresses
    linkageType: ''
    returnType: void
    signature: "void process_block(secure_vector<uint64_t>& B,\n                   size_t
      n,\n                   size_t slice,\n                   size_t lane,\n                   size_t
      lanes,\n                   size_t segments,\n                   size_t threads,\n
      \                  uint8_t mode,\n                   size_t memory,\n                   size_t
      time)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:334,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:339,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:342,1
    - Dst: Botan::run
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:342,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:347,1
    - Dst: Botan::process_block
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - ' B'
    - t
    - memory
    - threads
    - mode
    argTypes:
    - secure_vector<uint64_t>
    - size_t
    - size_t
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 363
    functionName: Botan::process_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::reserve
    - Botan::process_block
    - Botan::run
    - std::ref
    - Thread_Pool::global_instance
    - Botan::get
    linkageType: ''
    returnType: void
    signature: void process_blocks(secure_vector<uint64_t>& B, size_t t, size_t memory,
      size_t threads, uint8_t mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:377,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:377,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:379,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:379,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:380,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:380,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:381,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:381,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:382,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:382,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:384,1
    - Dst: argon2_H0
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:387,1
    - Dst: init_blocks
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:407,1
    - Dst: process_blocks
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:408,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:410,1
    - Dst: extract_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 10
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - key
    - key_len
    - ad
    - ad_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 412
    functionName: Botan::Argon2::argon2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - init_blocks
    - argon2_H0
    - Botan::HashFunction::create_or_throw
    - BOTAN_ARG_CHECK
    - extract_key
    - process_blocks
    - clear_mem
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: void
    signature: "void Argon2::argon2(uint8_t output[],\n                    size_t
      output_len,\n                    const char* password,\n                    size_t
      password_len,\n                    const uint8_t salt[],\n                    size_t
      salt_len,\n                    const uint8_t key[],\n                    size_t
      key_len,\n                    const uint8_t ad[],\n                    size_t
      ad_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:48,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:48,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:49,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:49,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:50,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:50,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:51,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:51,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:52,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:53,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:53,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:55,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:55,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:58,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:61,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:61,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:64,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 15
    argNames:
    - H0
    - ' blake2b'
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - key
    - key_len
    - ad
    - ad_len
    - y
    - p
    - M
    - t
    argTypes:
    - uint8_t[]
    - HashFunction
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 68
    functionName: Botan::argon2_H0
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - update_le
    - Botan::update
    - Botan::final
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: "void argon2_H0(uint8_t H0[64],\n               HashFunction& blake2b,\n
      \              size_t output_len,\n               const char* password,\n               size_t
      password_len,\n               const uint8_t salt[],\n               size_t salt_len,\n
      \              const uint8_t key[],\n               size_t key_len,\n               const
      uint8_t ad[],\n               size_t ad_len,\n               size_t y,\n               size_t
      p,\n               size_t M,\n               size_t t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:85,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:85,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:88,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:90,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:94,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:97,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:99,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:102,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:102,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:107,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:108,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:113,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:114,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:116,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:116,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - output
    - output_len
    - ' B'
    - memory
    - threads
    argTypes:
    - uint8_t[]
    - size_t
    - secure_vector<uint64_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 121
    functionName: Botan::extract_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::fmt
    - Botan::copy_mem
    - auto::update_le
    - Botan::HashFunction::create_or_throw
    - auto::update
    - auto::final
    - secure_vector::data
    linkageType: ''
    returnType: void
    signature: void extract_key(uint8_t output[], size_t output_len, const secure_vector<uint64_t>&
      B, size_t memory, size_t threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:125,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:125,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:130,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:130,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:135,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:135,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:137,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:137,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:138,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:138,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:142,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:143,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:144,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - ' B'
    - ' blake2b'
    - H0
    - memory
    - threads
    argTypes:
    - secure_vector<uint64_t>
    - HashFunction
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 150
    functionName: Botan::init_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::load_le
    - update_le
    - Botan::update
    - Botan::size
    - BOTAN_ASSERT_NOMSG
    - Botan::final
    linkageType: ''
    returnType: void
    signature: "void init_blocks(\n   secure_vector<uint64_t>& B, HashFunction& blake2b,
      const uint8_t H0[64], size_t memory, size_t threads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    - static_cast<uint32_t>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_G(uint64_t& A, uint64_t& B, uint64_t& C,
      uint64_t& D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:48,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:48,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:49,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:49,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:50,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:50,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:51,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:51,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:52,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:52,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:53,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:53,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:55,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:55,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:58,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:61,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:61,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:64,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 15
    argNames:
    - H0
    - ' blake2b'
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - key
    - key_len
    - ad
    - ad_len
    - y
    - p
    - M
    - t
    argTypes:
    - uint8_t[]
    - HashFunction
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 68
    functionName: Botan::argon2_H0
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - update_le
    - Botan::update
    - Botan::final
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: "void argon2_H0(uint8_t H0[64],\n               HashFunction& blake2b,\n
      \              size_t output_len,\n               const char* password,\n               size_t
      password_len,\n               const uint8_t salt[],\n               size_t salt_len,\n
      \              const uint8_t key[],\n               size_t key_len,\n               const
      uint8_t ad[],\n               size_t ad_len,\n               size_t y,\n               size_t
      p,\n               size_t M,\n               size_t t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:85,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:85,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:88,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:90,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:94,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:97,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:99,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:102,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:102,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:107,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:108,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:113,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:114,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:116,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:116,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - output
    - output_len
    - ' B'
    - memory
    - threads
    argTypes:
    - uint8_t[]
    - size_t
    - secure_vector<uint64_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 121
    functionName: Botan::extract_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::fmt
    - Botan::copy_mem
    - auto::update_le
    - Botan::HashFunction::create_or_throw
    - auto::update
    - auto::final
    - secure_vector::data
    linkageType: ''
    returnType: void
    signature: void extract_key(uint8_t output[], size_t output_len, const secure_vector<uint64_t>&
      B, size_t memory, size_t threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:125,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:125,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:130,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:130,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:135,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:135,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:137,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:137,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:138,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:138,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:142,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:143,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:144,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - ' B'
    - ' blake2b'
    - H0
    - memory
    - threads
    argTypes:
    - secure_vector<uint64_t>
    - HashFunction
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 150
    functionName: Botan::init_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::load_le
    - update_le
    - Botan::update
    - Botan::size
    - BOTAN_ASSERT_NOMSG
    - Botan::final
    linkageType: ''
    returnType: void
    signature: "void init_blocks(\n   secure_vector<uint64_t>& B, HashFunction& blake2b,
      const uint8_t H0[64], size_t memory, size_t threads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:153,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:156,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:159,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:162,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    - static_cast<uint32_t>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_G(uint64_t& A, uint64_t& B, uint64_t& C,
      uint64_t& D)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:170,1
    - Dst: Botan::Argon2::blamka_avx2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:171,1
    - Dst: has
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:176,1
    - Dst: Botan::BOTAN_FN_ISA_SIMD_2X64::blamka_simd64
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:177,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:181,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:184,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:185,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:186,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:187,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:189,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:190,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:191,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:192,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:196,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:197,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:198,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:199,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:201,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:202,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:203,1
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - N
    - T
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 210
    functionName: Botan::Argon2::blamka
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 4
    functionsReached:
    - Botan::BOTAN_FN_ISA_SIMD_2X64::blamka_simd64
    - blamka_G
    - copy_mem
    - Botan::Argon2::blamka_avx2
    - has
    linkageType: ''
    returnType: void
    signature: void Argon2::blamka(uint64_t N[128], uint64_t T[128])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:223,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 9
    argNames:
    - T
    - B
    - n
    - lane
    - slice
    - memory
    - time
    - mode
    - cnt
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 236
    functionName: Botan::gen_2i_addresses
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 2
    functionsReached:
    - Botan::Argon2::blamka
    - Botan::clear_mem
    linkageType: ''
    returnType: void
    signature: "void gen_2i_addresses(uint64_t T[128],\n                      uint64_t
      B[128],\n                      size_t n,\n                      size_t lane,\n
      \                     size_t slice,\n                      size_t memory,\n
      \                     size_t time,\n                      size_t mode,\n                      size_t
      cnt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:240,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:265,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 8
    argNames:
    - random
    - lanes
    - segments
    - threads
    - n
    - slice
    - lane
    - index
    argTypes:
    - uint64_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 270
    functionName: Botan::index_alpha
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t index_alpha(\n   uint64_t random, size_t lanes, size_t segments,
      size_t threads, size_t n, size_t slice, size_t lane, size_t index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:294,1
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:307,1
    - Dst: at
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:310,1
    - Dst: Botan::index_alpha
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:311,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:318,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 10
    argNames:
    - ' B'
    - n
    - slice
    - lane
    - lanes
    - segments
    - threads
    - mode
    - memory
    - time
    argTypes:
    - secure_vector<uint64_t>
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - uint8_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 326
    functionName: Botan::process_block
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 2
    functionsReached:
    - Botan::index_alpha
    - at
    - Botan::Argon2::blamka
    - Botan::gen_2i_addresses
    linkageType: ''
    returnType: void
    signature: "void process_block(secure_vector<uint64_t>& B,\n                   size_t
      n,\n                   size_t slice,\n                   size_t lane,\n                   size_t
      lanes,\n                   size_t segments,\n                   size_t threads,\n
      \                  uint8_t mode,\n                   size_t memory,\n                   size_t
      time)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:334,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:339,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:342,1
    - Dst: Botan::run
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:342,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:347,1
    - Dst: Botan::process_block
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - ' B'
    - t
    - memory
    - threads
    - mode
    argTypes:
    - secure_vector<uint64_t>
    - size_t
    - size_t
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 363
    functionName: Botan::process_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::reserve
    - Botan::process_block
    - Botan::run
    - std::ref
    - Thread_Pool::global_instance
    - Botan::get
    linkageType: ''
    returnType: void
    signature: void process_blocks(secure_vector<uint64_t>& B, size_t t, size_t memory,
      size_t threads, uint8_t mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:223,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 9
    argNames:
    - T
    - B
    - n
    - lane
    - slice
    - memory
    - time
    - mode
    - cnt
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 236
    functionName: Botan::gen_2i_addresses
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 3
    functionsReached:
    - Botan::Argon2::blamka
    - Botan::clear_mem
    linkageType: ''
    returnType: void
    signature: "void gen_2i_addresses(uint64_t T[128],\n                      uint64_t
      B[128],\n                      size_t n,\n                      size_t lane,\n
      \                     size_t slice,\n                      size_t memory,\n
      \                     size_t time,\n                      size_t mode,\n                      size_t
      cnt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:240,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:265,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 8
    argNames:
    - random
    - lanes
    - segments
    - threads
    - n
    - slice
    - lane
    - index
    argTypes:
    - uint64_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 270
    functionName: Botan::index_alpha
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t index_alpha(\n   uint64_t random, size_t lanes, size_t segments,
      size_t threads, size_t n, size_t slice, size_t lane, size_t index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:294,1
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:307,1
    - Dst: at
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:310,1
    - Dst: Botan::index_alpha
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:311,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:318,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 10
    argNames:
    - ' B'
    - n
    - slice
    - lane
    - lanes
    - segments
    - threads
    - mode
    - memory
    - time
    argTypes:
    - secure_vector<uint64_t>
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    - uint8_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 326
    functionName: Botan::process_block
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 3
    functionsReached:
    - Botan::index_alpha
    - at
    - Botan::Argon2::blamka
    - Botan::gen_2i_addresses
    linkageType: ''
    returnType: void
    signature: "void process_block(secure_vector<uint64_t>& B,\n                   size_t
      n,\n                   size_t slice,\n                   size_t lane,\n                   size_t
      lanes,\n                   size_t segments,\n                   size_t threads,\n
      \                  uint8_t mode,\n                   size_t memory,\n                   size_t
      time)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:334,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:339,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:342,1
    - Dst: Botan::run
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:342,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:347,1
    - Dst: Botan::process_block
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - ' B'
    - t
    - memory
    - threads
    - mode
    argTypes:
    - secure_vector<uint64_t>
    - size_t
    - size_t
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 363
    functionName: Botan::process_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::reserve
    - Botan::process_block
    - Botan::run
    - std::ref
    - Thread_Pool::global_instance
    - Botan::get
    linkageType: ''
    returnType: void
    signature: void process_blocks(secure_vector<uint64_t>& B, size_t t, size_t memory,
      size_t threads, uint8_t mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:377,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:377,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:379,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:379,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:380,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:380,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:381,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:381,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:382,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:382,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:384,1
    - Dst: argon2_H0
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:387,1
    - Dst: init_blocks
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:407,1
    - Dst: process_blocks
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:408,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:410,1
    - Dst: extract_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 10
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - key
    - key_len
    - ad
    - ad_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 412
    functionName: Botan::Argon2::argon2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - init_blocks
    - argon2_H0
    - Botan::HashFunction::create_or_throw
    - BOTAN_ARG_CHECK
    - extract_key
    - process_blocks
    - clear_mem
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: void
    signature: "void Argon2::argon2(uint8_t output[],\n                    size_t
      output_len,\n                    const char* password,\n                    size_t
      password_len,\n                    const uint8_t salt[],\n                    size_t
      salt_len,\n                    const uint8_t key[],\n                    size_t
      key_len,\n                    const uint8_t ad[],\n                    size_t
      ad_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:19,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:20,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:21,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - family
    - M
    - t
    - p
    argTypes:
    - uint8_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: Botan::Argon2::Argon2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: void
    signature: void Argon2::Argon2(uint8_t family, size_t M, size_t t, size_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Argon2::argon2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: Botan::Argon2::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Argon2::argon2
    linkageType: ''
    returnType: void
    signature: "void Argon2::derive_key(uint8_t output[],\n                        size_t
      output_len,\n                        const char* password,\n                        size_t
      password_len,\n                        const uint8_t salt[],\n                        size_t
      salt_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Argon2::argon2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - ad
    - ad_len
    - key
    - key_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: Botan::Argon2::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Argon2::argon2
    linkageType: ''
    returnType: void
    signature: "void Argon2::derive_key(uint8_t output[],\n                        size_t
      output_len,\n                        const char* password,\n                        size_t
      password_len,\n                        const uint8_t salt[],\n                        size_t
      salt_len,\n                        const uint8_t ad[],\n                        size_t
      ad_len,\n                        const uint8_t key[],\n                        size_t
      key_len) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: Botan::argon2_family_name
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: std::string
    signature: std::string argon2_family_name(uint8_t f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: Botan::argon2_family_name
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: std::string
    signature: std::string argon2_family_name(uint8_t f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:64,1
    - Dst: argon2_family_name
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::Argon2::to_string
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - argon2_family_name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Argon2::to_string() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - family
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: Botan::Argon2_Family::Argon2_Family
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Argon2_Family::Argon2_Family(uint8_t family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: argon2_family_name
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan::Argon2_Family::name
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - argon2_family_name
    linkageType: ''
    returnType: std::string
    signature: std::string Argon2_Family::name() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<size_t>::value_or
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:82,1
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:92,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:96,1
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:99,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:101,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:117,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:118,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:124,1
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - desired_msec
    - max_memory
    - tune_msec
    argTypes:
    - uint64_t
    - std::optional<size_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 128
    functionName: Botan::Argon2_Family::tune_params
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan::Argon2_Family::from_params
    - static_cast<uint64_t>
    - std::optional<size_t>::value_or
    - auto::derive_key
    - static_cast<size_t>
    - measure_cost
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Argon2_Family::tune_params(size_t /*output_length*/,\n
      \                                                        uint64_t desired_msec,\n
      \                                                        std::optional<size_t>
      max_memory,\n                                                         uint64_t
      tune_msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: Botan::Argon2_Family::default_params
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Argon2_Family::from_params
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Argon2_Family::default_params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 144
    functionName: Botan::Argon2_Family::from_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Argon2_Family::from_params
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Argon2_Family::from_iterations(size_t
      iter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Argon2>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - M
    - t
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan::Argon2_Family::from_params
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 3
    functionsReached:
    - std::make_unique<Argon2>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Argon2_Family::from_params(size_t M,
      size_t t, size_t p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:19,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:20,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:21,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - family
    - M
    - t
    - p
    argTypes:
    - uint8_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: Botan::Argon2::Argon2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: void
    signature: void Argon2::Argon2(uint8_t family, size_t M, size_t t, size_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Argon2::argon2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: Botan::Argon2::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Argon2::argon2
    linkageType: ''
    returnType: void
    signature: "void Argon2::derive_key(uint8_t output[],\n                        size_t
      output_len,\n                        const char* password,\n                        size_t
      password_len,\n                        const uint8_t salt[],\n                        size_t
      salt_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Argon2::argon2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - ad
    - ad_len
    - key
    - key_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: Botan::Argon2::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Argon2::argon2
    linkageType: ''
    returnType: void
    signature: "void Argon2::derive_key(uint8_t output[],\n                        size_t
      output_len,\n                        const char* password,\n                        size_t
      password_len,\n                        const uint8_t salt[],\n                        size_t
      salt_len,\n                        const uint8_t ad[],\n                        size_t
      ad_len,\n                        const uint8_t key[],\n                        size_t
      key_len) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: Botan::argon2_family_name
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: std::string
    signature: std::string argon2_family_name(uint8_t f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: Botan::argon2_family_name
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: std::string
    signature: std::string argon2_family_name(uint8_t f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:64,1
    - Dst: argon2_family_name
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::Argon2::to_string
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - argon2_family_name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Argon2::to_string() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - family
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: Botan::Argon2_Family::Argon2_Family
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Argon2_Family::Argon2_Family(uint8_t family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: argon2_family_name
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan::Argon2_Family::name
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - argon2_family_name
    linkageType: ''
    returnType: std::string
    signature: std::string Argon2_Family::name() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<size_t>::value_or
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:82,1
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:92,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:96,1
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:99,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:101,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:117,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:118,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:124,1
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - desired_msec
    - max_memory
    - tune_msec
    argTypes:
    - uint64_t
    - std::optional<size_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 128
    functionName: Botan::Argon2_Family::tune_params
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan::Argon2_Family::from_params
    - static_cast<uint64_t>
    - std::optional<size_t>::value_or
    - auto::derive_key
    - static_cast<size_t>
    - measure_cost
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Argon2_Family::tune_params(size_t /*output_length*/,\n
      \                                                        uint64_t desired_msec,\n
      \                                                        std::optional<size_t>
      max_memory,\n                                                         uint64_t
      tune_msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: Botan::Argon2_Family::default_params
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Argon2_Family::from_params
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Argon2_Family::default_params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 144
    functionName: Botan::Argon2_Family::from_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Argon2_Family::from_params
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Argon2_Family::from_iterations(size_t
      iter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Argon2>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - M
    - t
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan::Argon2_Family::from_params
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 6
    functionsReached:
    - std::make_unique<Argon2>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Argon2_Family::from_params(size_t M,
      size_t t, size_t p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:24,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:25,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:28,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:29,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:31,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:36,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:38,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:42,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:43,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:45,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:46,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:49,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 8
    argNames:
    - ' A0'
    - ' A1'
    - ' B0'
    - ' B1'
    - ' C0'
    - ' C1'
    - ' D0'
    - ' D1'
    argTypes:
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    - Botan::SIMD_4x64::mul2_32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE blamka_G(SIMD_2x64& A0,\n                                                        SIMD_2x64&
      A1,\n                                                        SIMD_2x64& B0,\n
      \                                                       SIMD_2x64& B1,\n                                                        SIMD_2x64&
      C0,\n                                                        SIMD_2x64& C1,\n
      \                                                       SIMD_2x64& D0,\n                                                        SIMD_2x64&
      D1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:61,1
    - Dst: Botan::SIMD_4x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:63,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:64,1
    - Dst: Botan::SIMD_4x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - ' A0'
    - ' A1'
    - ' B0'
    - ' B1'
    - ' C0'
    - ' C1'
    - ' D0'
    - ' D1'
    argTypes:
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x64::twist
    - Botan::SIMD_4x64::untwist
    - Botan::blamka_G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE blamka_R(SIMD_2x64& A0,\n                                                        SIMD_2x64&
      A1,\n                                                        SIMD_2x64& B0,\n
      \                                                       SIMD_2x64& B1,\n                                                        SIMD_2x64&
      C0,\n                                                        SIMD_2x64& C1,\n
      \                                                       SIMD_2x64& D0,\n                                                        SIMD_2x64&
      D1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:24,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:25,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:28,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:29,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:31,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:36,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:38,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:42,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:43,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:45,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:46,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:49,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 8
    argNames:
    - ' A0'
    - ' A1'
    - ' B0'
    - ' B1'
    - ' C0'
    - ' C1'
    - ' D0'
    - ' D1'
    argTypes:
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp
    functionUses: 1
    functionsReached:
    - Botan::rotr
    - Botan::SIMD_4x64::mul2_32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE blamka_G(SIMD_2x64& A0,\n                                                        SIMD_2x64&
      A1,\n                                                        SIMD_2x64& B0,\n
      \                                                       SIMD_2x64& B1,\n                                                        SIMD_2x64&
      C0,\n                                                        SIMD_2x64& C1,\n
      \                                                       SIMD_2x64& D0,\n                                                        SIMD_2x64&
      D1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:61,1
    - Dst: Botan::SIMD_4x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:63,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:64,1
    - Dst: Botan::SIMD_4x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - ' A0'
    - ' A1'
    - ' B0'
    - ' B1'
    - ' C0'
    - ' C1'
    - ' D0'
    - ' D1'
    argTypes:
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x64::twist
    - Botan::SIMD_4x64::untwist
    - Botan::blamka_G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE blamka_R(SIMD_2x64& A0,\n                                                        SIMD_2x64&
      A1,\n                                                        SIMD_2x64& B0,\n
      \                                                       SIMD_2x64& B1,\n                                                        SIMD_2x64&
      C0,\n                                                        SIMD_2x64& C1,\n
      \                                                       SIMD_2x64& D0,\n                                                        SIMD_2x64&
      D1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:74,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:75,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:78,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:81,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:82,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:89,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:90,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:93,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:96,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:97,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:102,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:103,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:104,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:105,1
    - Dst: SIMD_2x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:109,1
    - Dst: SIMD_2x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - N
    - T
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 112
    functionName: Botan::BOTAN_FN_ISA_SIMD_2X64::blamka_simd64
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp
    functionUses: 2
    functionsReached:
    - SIMD_2x64::store_le
    - blamka_R
    - store_le
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_SIMD_2X64 Argon2::blamka_simd64(uint64_t N[128],
      uint64_t T[128])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:24,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:25,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:28,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:29,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:31,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:36,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:38,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:42,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:43,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:45,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:46,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:49,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 8
    argNames:
    - ' A0'
    - ' A1'
    - ' B0'
    - ' B1'
    - ' C0'
    - ' C1'
    - ' D0'
    - ' D1'
    argTypes:
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp
    functionUses: 2
    functionsReached:
    - Botan::rotr
    - Botan::SIMD_4x64::mul2_32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE blamka_G(SIMD_2x64& A0,\n                                                        SIMD_2x64&
      A1,\n                                                        SIMD_2x64& B0,\n
      \                                                       SIMD_2x64& B1,\n                                                        SIMD_2x64&
      C0,\n                                                        SIMD_2x64& C1,\n
      \                                                       SIMD_2x64& D0,\n                                                        SIMD_2x64&
      D1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:61,1
    - Dst: Botan::SIMD_4x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:63,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:64,1
    - Dst: Botan::SIMD_4x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - ' A0'
    - ' A1'
    - ' B0'
    - ' B1'
    - ' C0'
    - ' C1'
    - ' D0'
    - ' D1'
    argTypes:
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x64::twist
    - Botan::SIMD_4x64::untwist
    - Botan::blamka_G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE blamka_R(SIMD_2x64& A0,\n                                                        SIMD_2x64&
      A1,\n                                                        SIMD_2x64& B0,\n
      \                                                       SIMD_2x64& B1,\n                                                        SIMD_2x64&
      C0,\n                                                        SIMD_2x64& C1,\n
      \                                                       SIMD_2x64& D0,\n                                                        SIMD_2x64&
      D1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:24,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:25,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:28,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:29,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:31,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:36,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:38,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:42,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:43,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:45,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:46,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:49,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 8
    argNames:
    - ' A0'
    - ' A1'
    - ' B0'
    - ' B1'
    - ' C0'
    - ' C1'
    - ' D0'
    - ' D1'
    argTypes:
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp
    functionUses: 3
    functionsReached:
    - Botan::rotr
    - Botan::SIMD_4x64::mul2_32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE blamka_G(SIMD_2x64& A0,\n                                                        SIMD_2x64&
      A1,\n                                                        SIMD_2x64& B0,\n
      \                                                       SIMD_2x64& B1,\n                                                        SIMD_2x64&
      C0,\n                                                        SIMD_2x64& C1,\n
      \                                                       SIMD_2x64& D0,\n                                                        SIMD_2x64&
      D1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:61,1
    - Dst: Botan::SIMD_4x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:63,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:64,1
    - Dst: Botan::SIMD_4x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - ' A0'
    - ' A1'
    - ' B0'
    - ' B1'
    - ' C0'
    - ' C1'
    - ' D0'
    - ' D1'
    argTypes:
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    - SIMD_2x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x64::twist
    - Botan::SIMD_4x64::untwist
    - Botan::blamka_G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE blamka_R(SIMD_2x64& A0,\n                                                        SIMD_2x64&
      A1,\n                                                        SIMD_2x64& B0,\n
      \                                                       SIMD_2x64& B1,\n                                                        SIMD_2x64&
      C0,\n                                                        SIMD_2x64& C1,\n
      \                                                       SIMD_2x64& D0,\n                                                        SIMD_2x64&
      D1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:74,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:75,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:78,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:81,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:82,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:89,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:90,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:93,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:96,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:97,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:102,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:103,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:104,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:105,1
    - Dst: SIMD_2x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:109,1
    - Dst: SIMD_2x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - N
    - T
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 112
    functionName: Botan::BOTAN_FN_ISA_SIMD_2X64::blamka_simd64
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_simd64/argon2_simd64.cpp
    functionUses: 2
    functionsReached:
    - SIMD_2x64::store_le
    - blamka_R
    - store_le
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_SIMD_2X64 Argon2::blamka_simd64(uint64_t N[128],
      uint64_t T[128])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:18,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:20,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:22,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:24,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:26,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:28,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:30,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 4
    functionsReached:
    - Botan::rotr
    - Botan::SIMD_4x64::mul2_32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_G(SIMD_4x64& A, SIMD_4x64& B, SIMD_4x64&
      C, SIMD_4x64& D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:36,1
    - Dst: Botan::SIMD_4x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:38,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:39,1
    - Dst: Botan::SIMD_4x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x64::twist
    - Botan::SIMD_4x64::untwist
    - Botan::blamka_G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_R(SIMD_4x64& A, SIMD_4x64& B, SIMD_4x64&
      C, SIMD_4x64& D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:18,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:20,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:22,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:24,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:26,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:28,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:30,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 5
    functionsReached:
    - Botan::rotr
    - Botan::SIMD_4x64::mul2_32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_G(SIMD_4x64& A, SIMD_4x64& B, SIMD_4x64&
      C, SIMD_4x64& D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:36,1
    - Dst: Botan::SIMD_4x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:38,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:39,1
    - Dst: Botan::SIMD_4x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x64::twist
    - Botan::SIMD_4x64::untwist
    - Botan::blamka_G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_R(SIMD_4x64& A, SIMD_4x64& B, SIMD_4x64&
      C, SIMD_4x64& D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:47,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:48,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:49,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:50,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:52,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:54,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:55,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:56,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:57,1
    - Dst: Botan::SIMD_4x64::load_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:61,1
    - Dst: Botan::SIMD_4x64::load_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:62,1
    - Dst: Botan::SIMD_4x64::load_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:63,1
    - Dst: Botan::SIMD_4x64::load_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:64,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:66,1
    - Dst: SIMD_4x64::store_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:68,1
    - Dst: SIMD_4x64::store_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:69,1
    - Dst: SIMD_4x64::store_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:70,1
    - Dst: SIMD_4x64::store_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:71,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:75,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:76,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:77,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:78,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:82,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - N
    - T
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 85
    functionName: Botan::Argon2::blamka_avx2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 2
    functionsReached:
    - SIMD_4x64::store_le
    - blamka_R
    - SIMD_4x64::store_le2
    - Botan::SIMD_4x64::load_le2
    - Botan::SIMD_4x64::load_le
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2
    signature: BOTAN_FN_ISA_AVX2 Argon2::blamka_avx2(uint64_t N[128], uint64_t T[128])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:18,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:20,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:22,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:24,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:26,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:28,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:30,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 6
    functionsReached:
    - Botan::rotr
    - Botan::SIMD_4x64::mul2_32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_G(SIMD_4x64& A, SIMD_4x64& B, SIMD_4x64&
      C, SIMD_4x64& D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:36,1
    - Dst: Botan::SIMD_4x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:38,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:39,1
    - Dst: Botan::SIMD_4x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x64::twist
    - Botan::SIMD_4x64::untwist
    - Botan::blamka_G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_R(SIMD_4x64& A, SIMD_4x64& B, SIMD_4x64&
      C, SIMD_4x64& D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:18,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:20,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:22,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:24,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:26,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:28,1
    - Dst: Botan::SIMD_4x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:30,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 7
    functionsReached:
    - Botan::rotr
    - Botan::SIMD_4x64::mul2_32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_G(SIMD_4x64& A, SIMD_4x64& B, SIMD_4x64&
      C, SIMD_4x64& D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:36,1
    - Dst: Botan::SIMD_4x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:38,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:39,1
    - Dst: Botan::SIMD_4x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    argTypes:
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    - SIMD_4x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x64::twist
    - Botan::SIMD_4x64::untwist
    - Botan::blamka_G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE blamka_R(SIMD_4x64& A, SIMD_4x64& B, SIMD_4x64&
      C, SIMD_4x64& D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:47,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:48,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:49,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:50,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:52,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:54,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:55,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:56,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:57,1
    - Dst: Botan::SIMD_4x64::load_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:61,1
    - Dst: Botan::SIMD_4x64::load_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:62,1
    - Dst: Botan::SIMD_4x64::load_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:63,1
    - Dst: Botan::SIMD_4x64::load_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:64,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:66,1
    - Dst: SIMD_4x64::store_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:68,1
    - Dst: SIMD_4x64::store_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:69,1
    - Dst: SIMD_4x64::store_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:70,1
    - Dst: SIMD_4x64::store_le2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:71,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:75,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:76,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:77,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:78,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:82,1
    - Dst: SIMD_4x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - N
    - T
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 85
    functionName: Botan::Argon2::blamka_avx2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 2
    functionsReached:
    - SIMD_4x64::store_le
    - blamka_R
    - SIMD_4x64::store_le2
    - Botan::SIMD_4x64::load_le2
    - Botan::SIMD_4x64::load_le
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2
    signature: BOTAN_FN_ISA_AVX2 Argon2::blamka_avx2(uint64_t N[128], uint64_t T[128])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - N
    - r
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::scrypt_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t scrypt_memory_usage(size_t N, size_t r, size_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - N
    - r
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::scrypt_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t scrypt_memory_usage(size_t N, size_t r, size_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::Scrypt_Family::name
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Scrypt_Family::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::Scrypt_Family::default_params
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Scrypt>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Scrypt_Family::default_params() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<size_t>::value_or
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:54,1
    - Dst: Botan::Scrypt_Family::from_params
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:61,1
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:63,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:65,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:68,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:77,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:85,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:96,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:96,1
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - desired_msec
    - max_memory
    - tuning_msec
    argTypes:
    - uint64_t
    - std::optional<size_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 100
    functionName: Botan::Scrypt_Family::tune_params
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - scrypt_memory_usage
    - static_cast<uint64_t>
    - std::make_unique<Scrypt>
    - std::optional<size_t>::value_or
    - auto::derive_key
    - static_cast<size_t>
    - measure_cost
    - Botan::Scrypt_Family::from_params
    - std::min<size_t>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Scrypt_Family::tune_params(size_t /*output_length*/,\n
      \                                                        uint64_t desired_msec,\n
      \                                                        std::optional<size_t>
      max_memory,\n                                                         uint64_t
      tuning_msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - N
    - r
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Botan::Scrypt_Family::from_params
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Scrypt>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Scrypt_Family::from_params(size_t N,
      size_t r, size_t p) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: Botan::Scrypt_Family::from_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Scrypt>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Scrypt_Family::from_iterations(size_t
      iter) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:126,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:127,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:131,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:134,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 3
    argNames:
    - N
    - r
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: Botan::Scrypt::Scrypt
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - is_power_of_2
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Scrypt::Scrypt(size_t N, size_t r, size_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Botan::Scrypt::to_string
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Scrypt::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memory_param
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:146,1
    - Dst: parallelism
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:147,1
    - Dst: iterations
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:148,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: Botan::Scrypt::total_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - scrypt_memory_usage
    - iterations
    - parallelism
    - memory_param
    linkageType: ''
    returnType: size_t
    signature: size_t Scrypt::total_memory_usage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:158,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:158,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:161,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:161,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:162,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:162,1
    - Dst: Botan::Salsa20::salsa_core
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:163,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:163,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:164,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:164,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:168,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - r
    - B
    - Y
    argTypes:
    - size_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 174
    functionName: Botan::scryptBlockMix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_le
    - Botan::copy_mem
    - Botan::Salsa20::salsa_core
    - secure_vector::data
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: void scryptBlockMix(size_t r, uint8_t* B, uint8_t* Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:180,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:181,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:186,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:187,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - r
    - N
    - B
    - ' V'
    argTypes:
    - size_t
    - size_t
    - uint8_t*
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: Botan::scryptROMmix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::scryptBlockMix
    - Botan::load_le
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: void scryptROMmix(size_t r, size_t N, uint8_t* B, secure_vector<uint8_t>&
      V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:158,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:158,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:161,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:161,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:162,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:162,1
    - Dst: Botan::Salsa20::salsa_core
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:163,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:163,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:164,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:164,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:168,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - r
    - B
    - Y
    argTypes:
    - size_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 174
    functionName: Botan::scryptBlockMix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_le
    - Botan::copy_mem
    - Botan::Salsa20::salsa_core
    - secure_vector::data
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: void scryptBlockMix(size_t r, uint8_t* B, uint8_t* Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:180,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:181,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:186,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:187,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - r
    - N
    - B
    - ' V'
    argTypes:
    - size_t
    - size_t
    - uint8_t*
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: Botan::scryptROMmix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::scryptBlockMix
    - Botan::load_le
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: void scryptROMmix(size_t r, size_t N, uint8_t* B, secure_vector<uint8_t>&
      V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memory_param
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:200,1
    - Dst: parallelism
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:201,1
    - Dst: iterations
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:202,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:209,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:212,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:212,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:214,1
    - Dst: pbkdf2
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:217,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:217,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:217,1
    - Dst: scryptROMmix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:221,1
    - Dst: pbkdf2
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:224,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:224,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 225
    functionName: Botan::Scrypt::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Invalid_Argument
    - auto::set_key
    - memory_param
    - scryptROMmix
    - as_span_of_bytes
    - secure_vector::size
    - iterations
    - pbkdf2
    - secure_vector::data
    - parallelism
    linkageType: ''
    returnType: void
    signature: "void Scrypt::derive_key(uint8_t output[],\n                        size_t
      output_len,\n                        const char* password,\n                        size_t
      password_len,\n                        const uint8_t salt[],\n                        size_t
      salt_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - N
    - r
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::scrypt_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t scrypt_memory_usage(size_t N, size_t r, size_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - N
    - r
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::scrypt_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t scrypt_memory_usage(size_t N, size_t r, size_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::Scrypt_Family::name
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Scrypt_Family::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::Scrypt_Family::default_params
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Scrypt>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Scrypt_Family::default_params() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<size_t>::value_or
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:54,1
    - Dst: Botan::Scrypt_Family::from_params
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:61,1
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:63,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:65,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:68,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:77,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:85,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:96,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:96,1
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - desired_msec
    - max_memory
    - tuning_msec
    argTypes:
    - uint64_t
    - std::optional<size_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 100
    functionName: Botan::Scrypt_Family::tune_params
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - scrypt_memory_usage
    - static_cast<uint64_t>
    - std::make_unique<Scrypt>
    - std::optional<size_t>::value_or
    - auto::derive_key
    - static_cast<size_t>
    - measure_cost
    - Botan::Scrypt_Family::from_params
    - std::min<size_t>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Scrypt_Family::tune_params(size_t /*output_length*/,\n
      \                                                        uint64_t desired_msec,\n
      \                                                        std::optional<size_t>
      max_memory,\n                                                         uint64_t
      tuning_msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - N
    - r
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Botan::Scrypt_Family::from_params
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<Scrypt>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Scrypt_Family::from_params(size_t N,
      size_t r, size_t p) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: Botan::Scrypt_Family::from_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Scrypt>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Scrypt_Family::from_iterations(size_t
      iter) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:126,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:127,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:131,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:134,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 3
    argNames:
    - N
    - r
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: Botan::Scrypt::Scrypt
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - is_power_of_2
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Scrypt::Scrypt(size_t N, size_t r, size_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Botan::Scrypt::to_string
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Scrypt::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memory_param
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:146,1
    - Dst: parallelism
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:147,1
    - Dst: iterations
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:148,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: Botan::Scrypt::total_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - scrypt_memory_usage
    - iterations
    - parallelism
    - memory_param
    linkageType: ''
    returnType: size_t
    signature: size_t Scrypt::total_memory_usage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:158,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:158,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:161,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:161,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:162,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:162,1
    - Dst: Botan::Salsa20::salsa_core
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:163,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:163,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:164,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:164,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:168,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - r
    - B
    - Y
    argTypes:
    - size_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 174
    functionName: Botan::scryptBlockMix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 2
    functionsReached:
    - Botan::load_le
    - Botan::copy_mem
    - Botan::Salsa20::salsa_core
    - secure_vector::data
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: void scryptBlockMix(size_t r, uint8_t* B, uint8_t* Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:180,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:181,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:186,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:187,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - r
    - N
    - B
    - ' V'
    argTypes:
    - size_t
    - size_t
    - uint8_t*
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: Botan::scryptROMmix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::scryptBlockMix
    - Botan::load_le
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: void scryptROMmix(size_t r, size_t N, uint8_t* B, secure_vector<uint8_t>&
      V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:158,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:158,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:161,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:161,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:162,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:162,1
    - Dst: Botan::Salsa20::salsa_core
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:163,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:163,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:164,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:164,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:168,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - r
    - B
    - Y
    argTypes:
    - size_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 174
    functionName: Botan::scryptBlockMix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 3
    functionsReached:
    - Botan::load_le
    - Botan::copy_mem
    - Botan::Salsa20::salsa_core
    - secure_vector::data
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: void scryptBlockMix(size_t r, uint8_t* B, uint8_t* Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:180,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:181,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:186,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:187,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - r
    - N
    - B
    - ' V'
    argTypes:
    - size_t
    - size_t
    - uint8_t*
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: Botan::scryptROMmix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::scryptBlockMix
    - Botan::load_le
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: void scryptROMmix(size_t r, size_t N, uint8_t* B, secure_vector<uint8_t>&
      V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memory_param
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:200,1
    - Dst: parallelism
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:201,1
    - Dst: iterations
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:202,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:209,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:212,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:212,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:214,1
    - Dst: pbkdf2
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:217,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:217,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:217,1
    - Dst: scryptROMmix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:221,1
    - Dst: pbkdf2
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:224,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:224,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 225
    functionName: Botan::Scrypt::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - Invalid_Argument
    - auto::set_key
    - memory_param
    - scryptROMmix
    - as_span_of_bytes
    - secure_vector::size
    - iterations
    - pbkdf2
    - secure_vector::data
    - parallelism
    linkageType: ''
    returnType: void
    signature: "void Scrypt::derive_key(uint8_t output[],\n                        size_t
      output_len,\n                        const char* password,\n                        size_t
      password_len,\n                        const uint8_t salt[],\n                        size_t
      salt_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Scrypt
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 47
    functionName: Botan::PasswordHash
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached:
    - Scrypt
    linkageType: ''
    returnType: Scrypt
    signature: Scrypt PasswordHash
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t iterations() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::parallelism
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::memory_param
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t memory_param() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::PasswordHashFamily
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Scrypt_Family
    signature: Scrypt_Family PasswordHashFamily
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:92,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:93,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - N
    - r
    - p
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: Botan::scrypt
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::derive_key
    - Botan::PasswordHashFamily::create_or_throw
    linkageType: ''
    returnType: void
    signature: "void scrypt(uint8_t output[],\n                   size_t output_len,\n
      \                  const char* password,\n                   size_t password_len,\n
      \                  const uint8_t salt[],\n                   size_t salt_len,\n
      \                  size_t N,\n                   size_t r,\n                   size_t
      p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:123,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:124,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:125,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:125,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - output
    - output_len
    - password
    - salt
    - salt_len
    - N
    - r
    - p
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: Botan::scrypt
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached:
    - auto::from_params
    - std::string_view::data
    - auto::derive_key
    - Botan::PasswordHashFamily::create_or_throw
    - std::string_view::size
    linkageType: ''
    returnType: void
    signature: "void scrypt(uint8_t output[],\n                   size_t output_len,\n
      \                  std::string_view password,\n                   const uint8_t
      salt[],\n                   size_t salt_len,\n                   size_t N,\n
      \                  size_t r,\n                   size_t p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Scrypt
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 47
    functionName: Botan::PasswordHash
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached:
    - Scrypt
    linkageType: ''
    returnType: Scrypt
    signature: Scrypt PasswordHash
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t iterations() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::parallelism
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::memory_param
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t memory_param() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::PasswordHashFamily
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Scrypt_Family
    signature: Scrypt_Family PasswordHashFamily
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:92,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:93,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - N
    - r
    - p
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: Botan::scrypt
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::derive_key
    - Botan::PasswordHashFamily::create_or_throw
    linkageType: ''
    returnType: void
    signature: "void scrypt(uint8_t output[],\n                   size_t output_len,\n
      \                  const char* password,\n                   size_t password_len,\n
      \                  const uint8_t salt[],\n                   size_t salt_len,\n
      \                  size_t N,\n                   size_t r,\n                   size_t
      p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:123,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:124,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:125,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:125,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - output
    - output_len
    - password
    - salt
    - salt_len
    - N
    - r
    - p
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: Botan::scrypt
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.h
    functionUses: 0
    functionsReached:
    - auto::from_params
    - std::string_view::data
    - auto::derive_key
    - Botan::PasswordHashFamily::create_or_throw
    - std::string_view::size
    linkageType: ''
    returnType: void
    signature: "void scrypt(uint8_t output[],\n                   size_t output_len,\n
      \                  std::string_view password,\n                   const uint8_t
      salt[],\n                   size_t salt_len,\n                   size_t N,\n
      \                  size_t r,\n                   size_t p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 46
    functionName: Botan::PasswordHash
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bcrypt_PBKDF
    signature: Bcrypt_PBKDF PasswordHash
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t iterations() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::parallelism
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::memory_param
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t memory_param() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::total_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t total_memory_usage() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bcrypt_PBKDF_Family
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: Botan::PasswordHashFamily
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached:
    - Bcrypt_PBKDF_Family
    linkageType: ''
    returnType: Bcrypt_PBKDF_Family
    signature: Bcrypt_PBKDF_Family PasswordHashFamily
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h:78,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h:79,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - rounds
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: Botan::bcrypt_pbkdf
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::derive_key
    - Botan::PasswordHashFamily::create_or_throw
    linkageType: ''
    returnType: void
    signature: "void bcrypt_pbkdf(uint8_t output[],\n                         size_t
      output_len,\n                         const char* password,\n                         size_t
      password_len,\n                         const uint8_t salt[],\n                         size_t
      salt_len,\n                         size_t rounds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 46
    functionName: Botan::PasswordHash
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bcrypt_PBKDF
    signature: Bcrypt_PBKDF PasswordHash
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t iterations() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::parallelism
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parallelism() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::memory_param
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t memory_param() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::total_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t total_memory_usage() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bcrypt_PBKDF_Family
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: Botan::PasswordHashFamily
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached:
    - Bcrypt_PBKDF_Family
    linkageType: ''
    returnType: Bcrypt_PBKDF_Family
    signature: Bcrypt_PBKDF_Family PasswordHashFamily
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h:78,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h:79,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    - rounds
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: Botan::bcrypt_pbkdf
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.h
    functionUses: 0
    functionsReached:
    - auto::from_params
    - auto::derive_key
    - Botan::PasswordHashFamily::create_or_throw
    linkageType: ''
    returnType: void
    signature: "void bcrypt_pbkdf(uint8_t output[],\n                         size_t
      output_len,\n                         const char* password,\n                         size_t
      password_len,\n                         const uint8_t salt[],\n                         size_t
      salt_len,\n                         size_t rounds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::Bcrypt_PBKDF::Bcrypt_PBKDF
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void Bcrypt_PBKDF::Bcrypt_PBKDF(size_t iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::Bcrypt_PBKDF::to_string
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Bcrypt_PBKDF::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::Bcrypt_PBKDF_Family::name
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Bcrypt_PBKDF_Family::name() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Bcrypt_PBKDF_Family::default_params
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:37,1
    - Dst: Botan::Bcrypt_PBKDF_Family::from_iterations
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:42,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:46,1
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:49,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:51,1
    - Dst: Botan::Bcrypt_PBKDF_Family::from_iterations
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:56,1
    - Dst: Botan::Bcrypt_PBKDF_Family::from_iterations
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:59,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - output_length
    - desired_msec
    - tune_msec
    argTypes:
    - size_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: Botan::Bcrypt_PBKDF_Family::tune_params
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - Botan::Bcrypt_PBKDF_Family::from_iterations
    - auto::derive_key
    - static_cast<size_t>
    - Botan::Bcrypt_PBKDF_Family::default_params
    - measure_cost
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Bcrypt_PBKDF_Family::tune_params(size_t
      output_length,\n                                                               uint64_t
      desired_msec,\n                                                               std::optional<size_t>
      /*max_memory*/,\n                                                               uint64_t
      tune_msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Bcrypt_PBKDF_Family::from_iterations
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan::Bcrypt_PBKDF_Family::default_params
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 1
    functionsReached:
    - Botan::Bcrypt_PBKDF_Family::from_iterations
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Bcrypt_PBKDF_Family::default_params()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Bcrypt_PBKDF>
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::Bcrypt_PBKDF_Family::from_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<Bcrypt_PBKDF>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Bcrypt_PBKDF_Family::from_iterations(size_t
      iterations) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Bcrypt_PBKDF_Family::from_iterations
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::Bcrypt_PBKDF_Family::from_params
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Botan::Bcrypt_PBKDF_Family::from_iterations
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Bcrypt_PBKDF_Family::from_params(size_t
      iterations, size_t /*t*/, size_t /*p*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: salted_set_key
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:91,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:94,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:94,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:96,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:106,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:106,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:107,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' blowfish'
    - ' pass_hash'
    - ' salt_hash'
    - ' out'
    - ' tmp'
    argTypes:
    - Blowfish
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 111
    functionName: Botan::bcrypt_round
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Botan::encrypt
    - Botan::load_le
    - Botan::data
    - Botan::copy_mem
    - Botan::store_be
    - Botan::size
    - salted_set_key
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: "void bcrypt_round(Blowfish& blowfish,\n                  const secure_vector<uint8_t>&
      pass_hash,\n                  const secure_vector<uint8_t>& salt_hash,\n                  secure_vector<uint8_t>&
      out,\n                  secure_vector<uint8_t>& tmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: salted_set_key
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:91,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:94,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:94,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:96,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:106,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:106,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:107,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' blowfish'
    - ' pass_hash'
    - ' salt_hash'
    - ' out'
    - ' tmp'
    argTypes:
    - Blowfish
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 111
    functionName: Botan::bcrypt_round
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Botan::encrypt
    - Botan::load_le
    - Botan::data
    - Botan::copy_mem
    - Botan::store_be
    - Botan::size
    - salted_set_key
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: "void bcrypt_round(Blowfish& blowfish,\n                  const secure_vector<uint8_t>&
      pass_hash,\n                  const secure_vector<uint8_t>& salt_hash,\n                  secure_vector<uint8_t>&
      out,\n                  secure_vector<uint8_t>& tmp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:126,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:131,1
    - Dst: auto::process
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:132,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:132,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:134,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:141,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:141,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:141,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:143,1
    - Dst: auto::update_be
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:144,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:144,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:145,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:145,1
    - Dst: bcrypt_round
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:147,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:151,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:152,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:152,1
    - Dst: bcrypt_round
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 164
    functionName: Botan::Bcrypt_PBKDF::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - bcrypt_round
    - secure_vector::data
    - auto::output_length
    - as_span_of_bytes
    - Botan::HashFunction::create_or_throw
    - secure_vector::size
    - auto::final
    - BOTAN_ARG_CHECK
    - auto::update
    - clear_mem
    - auto::process
    - auto::update_be
    linkageType: ''
    returnType: void
    signature: "void Bcrypt_PBKDF::derive_key(uint8_t output[],\n                              size_t
      output_len,\n                              const char* password,\n                              size_t
      password_len,\n                              const uint8_t salt[],\n                              size_t
      salt_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::Bcrypt_PBKDF::Bcrypt_PBKDF
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void Bcrypt_PBKDF::Bcrypt_PBKDF(size_t iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::Bcrypt_PBKDF::to_string
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Bcrypt_PBKDF::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::Bcrypt_PBKDF_Family::name
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Bcrypt_PBKDF_Family::name() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Bcrypt_PBKDF_Family::default_params
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:37,1
    - Dst: Botan::Bcrypt_PBKDF_Family::from_iterations
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:42,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:46,1
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:49,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:51,1
    - Dst: Botan::Bcrypt_PBKDF_Family::from_iterations
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:56,1
    - Dst: Botan::Bcrypt_PBKDF_Family::from_iterations
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:59,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - output_length
    - desired_msec
    - tune_msec
    argTypes:
    - size_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: Botan::Bcrypt_PBKDF_Family::tune_params
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - Botan::Bcrypt_PBKDF_Family::from_iterations
    - auto::derive_key
    - static_cast<size_t>
    - Botan::Bcrypt_PBKDF_Family::default_params
    - measure_cost
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Bcrypt_PBKDF_Family::tune_params(size_t
      output_length,\n                                                               uint64_t
      desired_msec,\n                                                               std::optional<size_t>
      /*max_memory*/,\n                                                               uint64_t
      tune_msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Bcrypt_PBKDF_Family::from_iterations
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan::Bcrypt_PBKDF_Family::default_params
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 2
    functionsReached:
    - Botan::Bcrypt_PBKDF_Family::from_iterations
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Bcrypt_PBKDF_Family::default_params()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Bcrypt_PBKDF>
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::Bcrypt_PBKDF_Family::from_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 5
    functionsReached:
    - std::make_unique<Bcrypt_PBKDF>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Bcrypt_PBKDF_Family::from_iterations(size_t
      iterations) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Bcrypt_PBKDF_Family::from_iterations
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::Bcrypt_PBKDF_Family::from_params
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Botan::Bcrypt_PBKDF_Family::from_iterations
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> Bcrypt_PBKDF_Family::from_params(size_t
      iterations, size_t /*t*/, size_t /*p*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: salted_set_key
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:91,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:94,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:94,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:96,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:106,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:106,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:107,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' blowfish'
    - ' pass_hash'
    - ' salt_hash'
    - ' out'
    - ' tmp'
    argTypes:
    - Blowfish
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 111
    functionName: Botan::bcrypt_round
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Botan::encrypt
    - Botan::load_le
    - Botan::data
    - Botan::copy_mem
    - Botan::store_be
    - Botan::size
    - salted_set_key
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: "void bcrypt_round(Blowfish& blowfish,\n                  const secure_vector<uint8_t>&
      pass_hash,\n                  const secure_vector<uint8_t>& salt_hash,\n                  secure_vector<uint8_t>&
      out,\n                  secure_vector<uint8_t>& tmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: salted_set_key
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:91,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:92,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:94,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:94,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:96,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:106,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:106,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:107,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' blowfish'
    - ' pass_hash'
    - ' salt_hash'
    - ' out'
    - ' tmp'
    argTypes:
    - Blowfish
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 111
    functionName: Botan::bcrypt_round
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Botan::encrypt
    - Botan::load_le
    - Botan::data
    - Botan::copy_mem
    - Botan::store_be
    - Botan::size
    - salted_set_key
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: "void bcrypt_round(Blowfish& blowfish,\n                  const secure_vector<uint8_t>&
      pass_hash,\n                  const secure_vector<uint8_t>& salt_hash,\n                  secure_vector<uint8_t>&
      out,\n                  secure_vector<uint8_t>& tmp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:126,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:131,1
    - Dst: auto::process
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:132,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:132,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:134,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:141,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:141,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:141,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:143,1
    - Dst: auto::update_be
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:144,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:144,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:145,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:145,1
    - Dst: bcrypt_round
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:147,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:151,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:152,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:152,1
    - Dst: bcrypt_round
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - output
    - output_len
    - password
    - password_len
    - salt
    - salt_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 164
    functionName: Botan::Bcrypt_PBKDF::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - bcrypt_round
    - secure_vector::data
    - auto::output_length
    - as_span_of_bytes
    - Botan::HashFunction::create_or_throw
    - secure_vector::size
    - auto::final
    - BOTAN_ARG_CHECK
    - auto::update
    - clear_mem
    - auto::process
    - auto::update_be
    linkageType: ''
    returnType: void
    signature: "void Bcrypt_PBKDF::derive_key(uint8_t output[],\n                              size_t
      output_len,\n                              const char* password,\n                              size_t
      password_len,\n                              const uint8_t salt[],\n                              size_t
      salt_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:23,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:23,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' prf'
    - password
    - password_len
    argTypes:
    - MessageAuthenticationCode
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: Botan::pbkdf2_set_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - Botan::set_key
    - Botan::Invalid_Argument
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: void pbkdf2_set_key(MessageAuthenticationCode& prf, const char* password,
      size_t password_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:37,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:38,1
    - Dst: Botan::set_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:45,1
    - Dst: Botan::measure_cost
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:47,1
    - Dst: Botan::pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:50,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' prf'
    - output_length
    - desired_msec
    argTypes:
    - MessageAuthenticationCode
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 68
    functionName: Botan::tune_pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - Botan::pbkdf2
    - BOTAN_ASSERT_NOMSG
    - static_cast<size_t>
    - Botan::measure_cost
    - Botan::set_key
    - Botan::output_length
    linkageType: ''
    returnType: size_t
    signature: "size_t tune_pbkdf2(MessageAuthenticationCode& prf,\n                   size_t
      output_length,\n                   uint64_t desired_msec,\n                   uint64_t
      tuning_msec = 10)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:23,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:23,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' prf'
    - password
    - password_len
    argTypes:
    - MessageAuthenticationCode
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: Botan::pbkdf2_set_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - Botan::set_key
    - Botan::Invalid_Argument
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: void pbkdf2_set_key(MessageAuthenticationCode& prf, const char* password,
      size_t password_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:37,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:38,1
    - Dst: Botan::set_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:45,1
    - Dst: Botan::measure_cost
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:47,1
    - Dst: Botan::pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:50,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' prf'
    - output_length
    - desired_msec
    argTypes:
    - MessageAuthenticationCode
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 68
    functionName: Botan::tune_pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - Botan::pbkdf2
    - BOTAN_ASSERT_NOMSG
    - static_cast<size_t>
    - Botan::measure_cost
    - Botan::set_key
    - Botan::output_length
    linkageType: ''
    returnType: size_t
    signature: "size_t tune_pbkdf2(MessageAuthenticationCode& prf,\n                   size_t
      output_length,\n                   uint64_t desired_msec,\n                   uint64_t
      tuning_msec = 10)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::tune_pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:81,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:81,1
    - Dst: PBKDF2::derive_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:86,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:86,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 8
    argNames:
    - ' prf'
    - out
    - out_len
    - password
    - salt
    - salt_len
    - iterations
    - msec
    argTypes:
    - MessageAuthenticationCode
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: Botan::pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 2
    functionsReached:
    - std::string_view::data
    - Botan::tune_pbkdf2
    - std::chrono::milliseconds::count
    - PBKDF2::derive_key
    - std::string_view::size
    linkageType: ''
    returnType: size_t
    signature: "size_t pbkdf2(MessageAuthenticationCode& prf,\n              uint8_t
      out[],\n              size_t out_len,\n              std::string_view password,\n
      \             const uint8_t salt[],\n              size_t salt_len,\n              size_t
      iterations,\n              std::chrono::milliseconds msec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:98,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:101,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:107,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:108,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:114,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:116,1
    - Dst: update_be
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:117,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:118,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:118,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:120,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:120,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:123,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:124,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:124,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:125,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - ' prf'
    - out
    - out_len
    - salt
    - salt_len
    - iterations
    argTypes:
    - MessageAuthenticationCode
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 131
    functionName: Botan::pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 2
    functionsReached:
    - update_be
    - Botan::Invalid_Argument
    - secure_vector::data
    - Botan::xor_buf
    - Botan::update
    - std::min<size_t>
    - BOTAN_ASSERT_NOMSG
    - Botan::final
    - Botan::output_length
    - Botan::clear_mem
    linkageType: ''
    returnType: void
    signature: "void pbkdf2(MessageAuthenticationCode& prf,\n            uint8_t out[],\n
      \           size_t out_len,\n            const uint8_t salt[],\n            size_t
      salt_len,\n            size_t iterations)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tune_pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:142,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:142,1
    - Dst: PBKDF2::derive_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:147,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:147,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - key
    - key_len
    - password
    - salt
    - salt_len
    - iterations
    - msec
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 150
    functionName: Botan::PKCS5_PBKDF2::pbkdf
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::data
    - std::chrono::milliseconds::count
    - tune_pbkdf2
    - PBKDF2::derive_key
    - std::string_view::size
    linkageType: ''
    returnType: size_t
    signature: "size_t PKCS5_PBKDF2::pbkdf(uint8_t key[],\n                           size_t
      key_len,\n                           std::string_view password,\n                           const
      uint8_t salt[],\n                           size_t salt_len,\n                           size_t
      iterations,\n                           std::chrono::milliseconds msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:153,1
    - Dst: Botan::PKCS5_PBKDF2::name
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Botan::PKCS5_PBKDF2::name
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 1
    functionsReached:
    - Botan::PKCS5_PBKDF2::name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string PKCS5_PBKDF2::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PKCS5_PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:157,1
    - Dst: Botan::PKCS5_PBKDF2::new_object
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: Botan::PKCS5_PBKDF2::new_object
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<PKCS5_PBKDF2>
    - Botan::PKCS5_PBKDF2::new_object
    linkageType: ''
    returnType: std::unique_ptr<PBKDF>
    signature: std::unique_ptr<PBKDF> PKCS5_PBKDF2::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:163,1
    - Dst: tune_pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:163,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' prf'
    - olen
    - msec
    argTypes:
    - MessageAuthenticationCode
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: Botan::PBKDF2::PBKDF2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - tune_pbkdf2
    - new_object
    linkageType: ''
    returnType: void
    signature: void PBKDF2::PBKDF2(const MessageAuthenticationCode& prf, size_t olen,
      std::chrono::milliseconds msec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:166,1
    - Dst: name
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::PBKDF2::to_string
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string PBKDF2::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pbkdf2_set_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:175,1
    - Dst: pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - out
    - out_len
    - password
    - password_len
    - salt
    - salt_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: Botan::PBKDF2::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - pbkdf2_set_key
    - pbkdf2
    linkageType: ''
    returnType: void
    signature: "void PBKDF2::derive_key(uint8_t out[],\n                        size_t
      out_len,\n                        const char* password,\n                        const
      size_t password_len,\n                        const uint8_t salt[],\n                        size_t
      salt_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:180,1
    - Dst: Botan::PBKDF2_Family::name
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: Botan::PBKDF2_Family::name
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 1
    functionsReached:
    - Botan::PBKDF2_Family::name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string PBKDF2_Family::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tune_pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:187,1
    - Dst: std::make_unique<PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - output_len
    - desired_runtime_msec
    - tune_msec
    argTypes:
    - size_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: Botan::PBKDF2_Family::tune_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - tune_pbkdf2
    - std::make_unique<PBKDF2>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> PBKDF2_Family::tune_params(size_t output_len,\n
      \                                                        uint64_t desired_runtime_msec,\n
      \                                                        std::optional<size_t>
      /*max_memory*/,\n                                                         uint64_t
      tune_msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Botan::PBKDF2_Family::default_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PBKDF2>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> PBKDF2_Family::default_params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Botan::PBKDF2_Family::from_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PBKDF2>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> PBKDF2_Family::from_params(size_t iter,
      size_t /*i2*/, size_t /*i3*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan::PBKDF2_Family::from_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PBKDF2>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> PBKDF2_Family::from_iterations(size_t
      iter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:23,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:23,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' prf'
    - password
    - password_len
    argTypes:
    - MessageAuthenticationCode
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: Botan::pbkdf2_set_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - Botan::set_key
    - Botan::Invalid_Argument
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: void pbkdf2_set_key(MessageAuthenticationCode& prf, const char* password,
      size_t password_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:37,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:38,1
    - Dst: Botan::set_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:45,1
    - Dst: Botan::measure_cost
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:47,1
    - Dst: Botan::pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:50,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' prf'
    - output_length
    - desired_msec
    argTypes:
    - MessageAuthenticationCode
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 68
    functionName: Botan::tune_pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 1
    functionsReached:
    - Botan::pbkdf2
    - BOTAN_ASSERT_NOMSG
    - static_cast<size_t>
    - Botan::measure_cost
    - Botan::set_key
    - Botan::output_length
    linkageType: ''
    returnType: size_t
    signature: "size_t tune_pbkdf2(MessageAuthenticationCode& prf,\n                   size_t
      output_length,\n                   uint64_t desired_msec,\n                   uint64_t
      tuning_msec = 10)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:23,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:23,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' prf'
    - password
    - password_len
    argTypes:
    - MessageAuthenticationCode
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: Botan::pbkdf2_set_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - Botan::set_key
    - Botan::Invalid_Argument
    - Botan::as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: void pbkdf2_set_key(MessageAuthenticationCode& prf, const char* password,
      size_t password_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:37,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:38,1
    - Dst: Botan::set_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:45,1
    - Dst: Botan::measure_cost
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:47,1
    - Dst: Botan::pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:50,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' prf'
    - output_length
    - desired_msec
    argTypes:
    - MessageAuthenticationCode
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 68
    functionName: Botan::tune_pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 1
    functionsReached:
    - Botan::pbkdf2
    - BOTAN_ASSERT_NOMSG
    - static_cast<size_t>
    - Botan::measure_cost
    - Botan::set_key
    - Botan::output_length
    linkageType: ''
    returnType: size_t
    signature: "size_t tune_pbkdf2(MessageAuthenticationCode& prf,\n                   size_t
      output_length,\n                   uint64_t desired_msec,\n                   uint64_t
      tuning_msec = 10)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::tune_pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:81,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:81,1
    - Dst: PBKDF2::derive_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:86,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:86,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 8
    argNames:
    - ' prf'
    - out
    - out_len
    - password
    - salt
    - salt_len
    - iterations
    - msec
    argTypes:
    - MessageAuthenticationCode
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: Botan::pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 4
    functionsReached:
    - std::string_view::data
    - Botan::tune_pbkdf2
    - std::chrono::milliseconds::count
    - PBKDF2::derive_key
    - std::string_view::size
    linkageType: ''
    returnType: size_t
    signature: "size_t pbkdf2(MessageAuthenticationCode& prf,\n              uint8_t
      out[],\n              size_t out_len,\n              std::string_view password,\n
      \             const uint8_t salt[],\n              size_t salt_len,\n              size_t
      iterations,\n              std::chrono::milliseconds msec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:98,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:101,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:107,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:108,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:114,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:116,1
    - Dst: update_be
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:117,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:118,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:118,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:120,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:120,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:123,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:124,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:124,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:125,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - ' prf'
    - out
    - out_len
    - salt
    - salt_len
    - iterations
    argTypes:
    - MessageAuthenticationCode
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 131
    functionName: Botan::pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 4
    functionsReached:
    - update_be
    - Botan::Invalid_Argument
    - secure_vector::data
    - Botan::xor_buf
    - Botan::update
    - std::min<size_t>
    - BOTAN_ASSERT_NOMSG
    - Botan::final
    - Botan::output_length
    - Botan::clear_mem
    linkageType: ''
    returnType: void
    signature: "void pbkdf2(MessageAuthenticationCode& prf,\n            uint8_t out[],\n
      \           size_t out_len,\n            const uint8_t salt[],\n            size_t
      salt_len,\n            size_t iterations)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tune_pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:142,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:142,1
    - Dst: PBKDF2::derive_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:147,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:147,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - key
    - key_len
    - password
    - salt
    - salt_len
    - iterations
    - msec
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - uint8_t[]
    - size_t
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 150
    functionName: Botan::PKCS5_PBKDF2::pbkdf
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::data
    - std::chrono::milliseconds::count
    - tune_pbkdf2
    - PBKDF2::derive_key
    - std::string_view::size
    linkageType: ''
    returnType: size_t
    signature: "size_t PKCS5_PBKDF2::pbkdf(uint8_t key[],\n                           size_t
      key_len,\n                           std::string_view password,\n                           const
      uint8_t salt[],\n                           size_t salt_len,\n                           size_t
      iterations,\n                           std::chrono::milliseconds msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:153,1
    - Dst: Botan::PKCS5_PBKDF2::name
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Botan::PKCS5_PBKDF2::name
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 2
    functionsReached:
    - Botan::PKCS5_PBKDF2::name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string PKCS5_PBKDF2::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PKCS5_PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:157,1
    - Dst: Botan::PKCS5_PBKDF2::new_object
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: Botan::PKCS5_PBKDF2::new_object
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<PKCS5_PBKDF2>
    - Botan::PKCS5_PBKDF2::new_object
    linkageType: ''
    returnType: std::unique_ptr<PBKDF>
    signature: std::unique_ptr<PBKDF> PKCS5_PBKDF2::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:163,1
    - Dst: tune_pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:163,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' prf'
    - olen
    - msec
    argTypes:
    - MessageAuthenticationCode
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: Botan::PBKDF2::PBKDF2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - tune_pbkdf2
    - new_object
    linkageType: ''
    returnType: void
    signature: void PBKDF2::PBKDF2(const MessageAuthenticationCode& prf, size_t olen,
      std::chrono::milliseconds msec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:166,1
    - Dst: name
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::PBKDF2::to_string
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string PBKDF2::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pbkdf2_set_key
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:175,1
    - Dst: pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - out
    - out_len
    - password
    - password_len
    - salt
    - salt_len
    argTypes:
    - uint8_t[]
    - size_t
    - char*
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: Botan::PBKDF2::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - pbkdf2_set_key
    - pbkdf2
    linkageType: ''
    returnType: void
    signature: "void PBKDF2::derive_key(uint8_t out[],\n                        size_t
      out_len,\n                        const char* password,\n                        const
      size_t password_len,\n                        const uint8_t salt[],\n                        size_t
      salt_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:180,1
    - Dst: Botan::PBKDF2_Family::name
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: Botan::PBKDF2_Family::name
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 2
    functionsReached:
    - Botan::PBKDF2_Family::name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string PBKDF2_Family::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tune_pbkdf2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:187,1
    - Dst: std::make_unique<PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - output_len
    - desired_runtime_msec
    - tune_msec
    argTypes:
    - size_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: Botan::PBKDF2_Family::tune_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - tune_pbkdf2
    - std::make_unique<PBKDF2>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> PBKDF2_Family::tune_params(size_t output_len,\n
      \                                                        uint64_t desired_runtime_msec,\n
      \                                                        std::optional<size_t>
      /*max_memory*/,\n                                                         uint64_t
      tune_msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Botan::PBKDF2_Family::default_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PBKDF2>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> PBKDF2_Family::default_params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Botan::PBKDF2_Family::from_params
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PBKDF2>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> PBKDF2_Family::from_params(size_t iter,
      size_t /*i2*/, size_t /*i3*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PBKDF2>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan::PBKDF2_Family::from_iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PBKDF2>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: std::unique_ptr<PasswordHash> PBKDF2_Family::from_iterations(size_t
      iter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PBKDF2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:47,1
    - Dst: m_prf
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:47,1
    - Dst: Botan::new_object
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:47,1
    - Dst: m_iterations
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:47,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: Botan::PasswordHash
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 0
    functionsReached:
    - m_iterations
    - PBKDF2
    - m_prf
    - BOTAN_DEPRECATED
    - Botan::new_object
    linkageType: ''
    returnType: PBKDF2
    signature: PBKDF2 PasswordHash
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t iterations() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 95
    functionName: Botan::PasswordHashFamily
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PBKDF2_Family
    signature: PBKDF2_Family PasswordHashFamily
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:118,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:125,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 130
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 18
    functionsReached:
    - std::move
    - BOTAN_DEPRECATED
    linkageType: ''
    returnType: PKCS5_PBKDF2
    signature: PKCS5_PBKDF2 final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mac_fn
    argTypes:
    - MessageAuthenticationCode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::PKCS5_PBKDF2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS5_PBKDF2(MessageAuthenticationCode* mac_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mac_fn
    argTypes:
    - std::unique_ptr<MessageAuthenticationCode>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::PKCS5_PBKDF2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PKCS5_PBKDF2(std::unique_ptr<MessageAuthenticationCode> mac_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PBKDF2
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:47,1
    - Dst: m_prf
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:47,1
    - Dst: Botan::new_object
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:47,1
    - Dst: m_iterations
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:47,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: Botan::PasswordHash
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 0
    functionsReached:
    - m_iterations
    - PBKDF2
    - m_prf
    - BOTAN_DEPRECATED
    - Botan::new_object
    linkageType: ''
    returnType: PBKDF2
    signature: PBKDF2 PasswordHash
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::iterations
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t iterations() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 95
    functionName: Botan::PasswordHashFamily
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PBKDF2_Family
    signature: PBKDF2_Family PasswordHashFamily
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:118,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:125,1
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 130
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 18
    functionsReached:
    - std::move
    - BOTAN_DEPRECATED
    linkageType: ''
    returnType: PKCS5_PBKDF2
    signature: PKCS5_PBKDF2 final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mac_fn
    argTypes:
    - MessageAuthenticationCode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::PKCS5_PBKDF2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS5_PBKDF2(MessageAuthenticationCode* mac_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mac_fn
    argTypes:
    - std::unique_ptr<MessageAuthenticationCode>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::PKCS5_PBKDF2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PKCS5_PBKDF2(std::unique_ptr<MessageAuthenticationCode> mac_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::Sponge::Sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void Sponge(Config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::Sponge::state_bytes
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t state_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sponge::state_bytes
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::Sponge::state_bits
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached:
    - Botan::Sponge::state_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t state_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::Sponge::bit_rate
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bit_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::Sponge::byte_rate
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t byte_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sponge::state_bits
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:51,1
    - Dst: Botan::Sponge::bit_rate
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::Sponge::bit_capacity
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached:
    - Botan::Sponge::state_bits
    - Botan::Sponge::bit_rate
    linkageType: ''
    returnType: size_t
    signature: size_t bit_capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sponge::state_bytes
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:53,1
    - Dst: Botan::Sponge::byte_rate
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::Sponge::byte_capacity
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached:
    - Botan::Sponge::byte_rate
    - Botan::Sponge::state_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t byte_capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& state()'
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto & state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::Sponge::cursor
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cursor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: '& _cursor()'
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t & _cursor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::Sponge::reset_cursor
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_cursor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::Sponge::Sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void Sponge(Config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::Sponge::state_bytes
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t state_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sponge::state_bytes
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::Sponge::state_bits
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 1
    functionsReached:
    - Botan::Sponge::state_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t state_bits()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::Sponge::bit_rate
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bit_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::Sponge::byte_rate
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t byte_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sponge::state_bits
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:51,1
    - Dst: Botan::Sponge::bit_rate
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::Sponge::bit_capacity
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached:
    - Botan::Sponge::state_bits
    - Botan::Sponge::bit_rate
    linkageType: ''
    returnType: size_t
    signature: size_t bit_capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sponge::state_bytes
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:53,1
    - Dst: Botan::Sponge::byte_rate
      Src: /src/botan/src/lib/permutations/sponge/sponge.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::Sponge::byte_capacity
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached:
    - Botan::Sponge::byte_rate
    - Botan::Sponge::state_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t byte_capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& state()'
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto & state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::Sponge::cursor
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cursor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: '& _cursor()'
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t & _cursor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::Sponge::reset_cursor
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_cursor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:61,1
    - Dst: subspan
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:61,1
    - Dst: load_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: Botan::detail::PartialWordBounds::read_from
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - copy_into
    - subspan
    - load_le
    linkageType: ''
    returnType: word_t
    signature: word_t read_from(BufferSlicer& slicer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:70,1
    - Dst: append
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:71,1
    - Dst: subspan
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' stuffer'
    - partial_word
    argTypes:
    - BufferStuffer
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::detail::PartialWordBounds::write_into
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - append
    - store_le
    - subspan
    linkageType: ''
    returnType: void
    signature: void write_into(BufferStuffer& stuffer, word_t partial_word) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:80,1
    - Dst: word_t
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state_word
    - partial_input_word
    argTypes:
    - word_t
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: Botan::detail::PartialWordBounds::masked_assignment
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - word_t
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: word_t
    signature: word_t masked_assignment(word_t state_word, word_t partial_input_word)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:97,1
    - Dst: take
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::detail::FullWordBounds::read_from
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - take
    - load_le
    linkageType: ''
    returnType: word_t
    signature: word_t read_from(BufferSlicer& slicer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:99,1
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' stuffer'
    - full_word
    argTypes:
    - BufferStuffer
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::detail::FullWordBounds::write_into
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - append
    - store_le
    linkageType: ''
    returnType: void
    signature: void write_into(BufferStuffer& stuffer, word_t full_word) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - full_input_word
    argTypes:
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::detail::FullWordBounds::masked_assignment
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: word_t
    signature: word_t masked_assignment(word_t /*unused*/, word_t full_input_word)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:61,1
    - Dst: subspan
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:61,1
    - Dst: load_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: Botan::detail::PartialWordBounds::read_from
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - copy_into
    - subspan
    - load_le
    linkageType: ''
    returnType: word_t
    signature: word_t read_from(BufferSlicer& slicer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:70,1
    - Dst: append
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:71,1
    - Dst: subspan
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' stuffer'
    - partial_word
    argTypes:
    - BufferStuffer
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::detail::PartialWordBounds::write_into
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - append
    - store_le
    - subspan
    linkageType: ''
    returnType: void
    signature: void write_into(BufferStuffer& stuffer, word_t partial_word) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:80,1
    - Dst: word_t
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state_word
    - partial_input_word
    argTypes:
    - word_t
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: Botan::detail::PartialWordBounds::masked_assignment
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - word_t
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: word_t
    signature: word_t masked_assignment(word_t state_word, word_t partial_input_word)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:97,1
    - Dst: take
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::detail::FullWordBounds::read_from
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - take
    - load_le
    linkageType: ''
    returnType: word_t
    signature: word_t read_from(BufferSlicer& slicer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:99,1
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' stuffer'
    - full_word
    argTypes:
    - BufferStuffer
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::detail::FullWordBounds::write_into
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - append
    - store_le
    linkageType: ''
    returnType: void
    signature: void write_into(BufferStuffer& stuffer, word_t full_word) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - full_input_word
    argTypes:
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::detail::FullWordBounds::masked_assignment
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: word_t
    signature: word_t masked_assignment(word_t /*unused*/, word_t full_input_word)
      const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: byte_rate
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:145,1
    - Dst: Botan::state
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:146,1
    - Dst: _cursor
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:147,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:150,1
    - Dst: min
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:153,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:154,1
    - Dst: modifier_fn
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:156,1
    - Dst: permutation_fn
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:165,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:172,1
    - Dst: modifier_fn
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:180,1
    - Dst: permutation_fn
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:186,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:194,1
    - Dst: modifier_fn
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:196,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - ' sponge'
    - bytes_to_process
    - ' permutation_fn'
    - ' modifier_fn'
    argTypes:
    - SpongeT
    - size_t
    - detail::PermutationFn auto
    - detail::ModifierFn<SpongeT> auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 203
    functionName: Botan::process_bytes_in_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - modifier_fn
    - min
    - byte_rate
    - BOTAN_DEBUG_ASSERT
    - static_cast<size_t>
    - Botan::state
    - permutation_fn
    - _cursor
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE process_bytes_in_sponge(SpongeT& sponge,\n                                                size_t
      bytes_to_process,\n                                                const detail::PermutationFn
      auto& permutation_fn,\n                                                const
      detail::ModifierFn<SpongeT> auto& modifier_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::process_bytes_in_sponge
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:209,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' sponge'
    - bytes_to_process
    - ' modifier_fn'
    argTypes:
    - SpongeT
    - size_t
    - detail::ModifierFn<SpongeT> auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: Botan::process_bytes_in_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 1
    functionsReached:
    - Botan::process_bytes_in_sponge
    - permute
    linkageType: ''
    returnType: void
    signature: "void process_bytes_in_sponge(SpongeT& sponge,\n                                    size_t
      bytes_to_process,\n                                    const detail::ModifierFn<SpongeT>
      auto& modifier_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::process_bytes_in_sponge
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:227,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:227,1
    - Dst: read_from
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:228,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:230,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' sponge'
    - input
    - ' permutation_fn'
    argTypes:
    - SpongeT
    - std::span<const uint8_t>
    - detail::PermutationFn auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: Botan::absorb_into_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - read_from
    - Botan::process_bytes_in_sponge
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: "void absorb_into_sponge(SpongeT& sponge,\n                               std::span<const
      uint8_t> input,\n                               const detail::PermutationFn
      auto& permutation_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::absorb_into_sponge
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:234,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' sponge'
    - input
    argTypes:
    - detail::SpongeLikeWithTrivialPermute auto
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: Botan::absorb_into_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 1
    functionsReached:
    - permute
    - Botan::absorb_into_sponge
    linkageType: ''
    returnType: void
    signature: void absorb_into_sponge(detail::SpongeLikeWithTrivialPermute auto&
      sponge, std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::process_bytes_in_sponge
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:251,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:251,1
    - Dst: write_into
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:255,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' sponge'
    - output
    - ' permutation_fn'
    argTypes:
    - SpongeT
    - std::span<uint8_t>
    - detail::PermutationFn auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 256
    functionName: Botan::squeeze_from_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - Botan::process_bytes_in_sponge
    - std::span<uint8_t>::size
    - write_into
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: "void squeeze_from_sponge(SpongeT& sponge,\n                                std::span<uint8_t>
      output,\n                                const detail::PermutationFn auto& permutation_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::squeeze_from_sponge
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:259,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' sponge'
    - output
    argTypes:
    - detail::SpongeLikeWithTrivialPermute auto
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: Botan::squeeze_from_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 1
    functionsReached:
    - Botan::squeeze_from_sponge
    - permute
    linkageType: ''
    returnType: void
    signature: void squeeze_from_sponge(detail::SpongeLikeWithTrivialPermute auto&
      sponge, std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:61,1
    - Dst: subspan
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:61,1
    - Dst: load_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: Botan::detail::PartialWordBounds::read_from
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - copy_into
    - subspan
    - load_le
    linkageType: ''
    returnType: word_t
    signature: word_t read_from(BufferSlicer& slicer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:70,1
    - Dst: append
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:71,1
    - Dst: subspan
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' stuffer'
    - partial_word
    argTypes:
    - BufferStuffer
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::detail::PartialWordBounds::write_into
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - append
    - store_le
    - subspan
    linkageType: ''
    returnType: void
    signature: void write_into(BufferStuffer& stuffer, word_t partial_word) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:80,1
    - Dst: word_t
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state_word
    - partial_input_word
    argTypes:
    - word_t
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: Botan::detail::PartialWordBounds::masked_assignment
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - word_t
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: word_t
    signature: word_t masked_assignment(word_t state_word, word_t partial_input_word)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:97,1
    - Dst: take
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::detail::FullWordBounds::read_from
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - take
    - load_le
    linkageType: ''
    returnType: word_t
    signature: word_t read_from(BufferSlicer& slicer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:99,1
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' stuffer'
    - full_word
    argTypes:
    - BufferStuffer
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::detail::FullWordBounds::write_into
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - append
    - store_le
    linkageType: ''
    returnType: void
    signature: void write_into(BufferStuffer& stuffer, word_t full_word) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - full_input_word
    argTypes:
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::detail::FullWordBounds::masked_assignment
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: word_t
    signature: word_t masked_assignment(word_t /*unused*/, word_t full_input_word)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:61,1
    - Dst: subspan
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:61,1
    - Dst: load_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: Botan::detail::PartialWordBounds::read_from
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - copy_into
    - subspan
    - load_le
    linkageType: ''
    returnType: word_t
    signature: word_t read_from(BufferSlicer& slicer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:70,1
    - Dst: append
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:71,1
    - Dst: subspan
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' stuffer'
    - partial_word
    argTypes:
    - BufferStuffer
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::detail::PartialWordBounds::write_into
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - append
    - store_le
    - subspan
    linkageType: ''
    returnType: void
    signature: void write_into(BufferStuffer& stuffer, word_t partial_word) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:80,1
    - Dst: word_t
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state_word
    - partial_input_word
    argTypes:
    - word_t
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: Botan::detail::PartialWordBounds::masked_assignment
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - word_t
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: word_t
    signature: word_t masked_assignment(word_t state_word, word_t partial_input_word)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:97,1
    - Dst: take
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::detail::FullWordBounds::read_from
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - take
    - load_le
    linkageType: ''
    returnType: word_t
    signature: word_t read_from(BufferSlicer& slicer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:99,1
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' stuffer'
    - full_word
    argTypes:
    - BufferStuffer
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::detail::FullWordBounds::write_into
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached:
    - append
    - store_le
    linkageType: ''
    returnType: void
    signature: void write_into(BufferStuffer& stuffer, word_t full_word) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - full_input_word
    argTypes:
    - word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::detail::FullWordBounds::masked_assignment
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: word_t
    signature: word_t masked_assignment(word_t /*unused*/, word_t full_input_word)
      const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: byte_rate
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:145,1
    - Dst: Botan::state
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:146,1
    - Dst: _cursor
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:147,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:150,1
    - Dst: min
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:153,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:154,1
    - Dst: modifier_fn
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:156,1
    - Dst: permutation_fn
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:165,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:172,1
    - Dst: modifier_fn
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:180,1
    - Dst: permutation_fn
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:186,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:194,1
    - Dst: modifier_fn
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:196,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - ' sponge'
    - bytes_to_process
    - ' permutation_fn'
    - ' modifier_fn'
    argTypes:
    - SpongeT
    - size_t
    - detail::PermutationFn auto
    - detail::ModifierFn<SpongeT> auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 203
    functionName: Botan::process_bytes_in_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 3
    functionsReached:
    - modifier_fn
    - min
    - byte_rate
    - BOTAN_DEBUG_ASSERT
    - static_cast<size_t>
    - Botan::state
    - permutation_fn
    - _cursor
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE process_bytes_in_sponge(SpongeT& sponge,\n                                                size_t
      bytes_to_process,\n                                                const detail::PermutationFn
      auto& permutation_fn,\n                                                const
      detail::ModifierFn<SpongeT> auto& modifier_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::process_bytes_in_sponge
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:209,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' sponge'
    - bytes_to_process
    - ' modifier_fn'
    argTypes:
    - SpongeT
    - size_t
    - detail::ModifierFn<SpongeT> auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: Botan::process_bytes_in_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 4
    functionsReached:
    - Botan::process_bytes_in_sponge
    - permute
    linkageType: ''
    returnType: void
    signature: "void process_bytes_in_sponge(SpongeT& sponge,\n                                    size_t
      bytes_to_process,\n                                    const detail::ModifierFn<SpongeT>
      auto& modifier_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::process_bytes_in_sponge
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:227,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:227,1
    - Dst: read_from
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:228,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:230,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' sponge'
    - input
    - ' permutation_fn'
    argTypes:
    - SpongeT
    - std::span<const uint8_t>
    - detail::PermutationFn auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: Botan::absorb_into_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 1
    functionsReached:
    - read_from
    - Botan::process_bytes_in_sponge
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: "void absorb_into_sponge(SpongeT& sponge,\n                               std::span<const
      uint8_t> input,\n                               const detail::PermutationFn
      auto& permutation_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::absorb_into_sponge
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:234,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' sponge'
    - input
    argTypes:
    - detail::SpongeLikeWithTrivialPermute auto
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: Botan::absorb_into_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 2
    functionsReached:
    - permute
    - Botan::absorb_into_sponge
    linkageType: ''
    returnType: void
    signature: void absorb_into_sponge(detail::SpongeLikeWithTrivialPermute auto&
      sponge, std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::process_bytes_in_sponge
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:251,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:251,1
    - Dst: write_into
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:255,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' sponge'
    - output
    - ' permutation_fn'
    argTypes:
    - SpongeT
    - std::span<uint8_t>
    - detail::PermutationFn auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 256
    functionName: Botan::squeeze_from_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 1
    functionsReached:
    - BufferStuffer::full
    - Botan::process_bytes_in_sponge
    - std::span<uint8_t>::size
    - write_into
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: "void squeeze_from_sponge(SpongeT& sponge,\n                                std::span<uint8_t>
      output,\n                                const detail::PermutationFn auto& permutation_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::squeeze_from_sponge
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:259,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/sponge/sponge_processing.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' sponge'
    - output
    argTypes:
    - detail::SpongeLikeWithTrivialPermute auto
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: Botan::squeeze_from_sponge
    functionSourceFile: /src/botan/src/lib/permutations/sponge/sponge_processing.h
    functionUses: 2
    functionsReached:
    - Botan::squeeze_from_sponge
    - permute
    linkageType: ''
    returnType: void
    signature: void squeeze_from_sponge(detail::SpongeLikeWithTrivialPermute auto&
      sponge, std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:36,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: Botan::Ascon_p::Ascon_p
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void Ascon_p(Config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::Ascon_p::provider
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::finish
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::Ascon_p::finish
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 1
    functionsReached:
    - Botan::Ascon_p::finish
    linkageType: ''
    returnType: void
    signature: void finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::finish
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::Ascon_p::intermediate_finish
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached:
    - Botan::Ascon_p::finish
    linkageType: ''
    returnType: void
    signature: void intermediate_finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::permute
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::Ascon_p::permute
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 1
    functionsReached:
    - Botan::Ascon_p::permute
    linkageType: ''
    returnType: void
    signature: void permute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::permute
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::Ascon_p::initial_permute
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached:
    - Botan::Ascon_p::permute
    linkageType: ''
    returnType: void
    signature: void initial_permute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:60,1
    - Dst: template subspan<offset, count>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::Ascon_p::range_of_state
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached:
    - state
    - template subspan<offset, count>
    linkageType: ''
    returnType: auto
    signature: auto range_of_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:36,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: Botan::Ascon_p::Ascon_p
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void Ascon_p(Config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::Ascon_p::provider
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::finish
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::Ascon_p::finish
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 3
    functionsReached:
    - Botan::Ascon_p::finish
    linkageType: ''
    returnType: void
    signature: void finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::finish
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::Ascon_p::intermediate_finish
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached:
    - Botan::Ascon_p::finish
    linkageType: ''
    returnType: void
    signature: void intermediate_finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::permute
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::Ascon_p::permute
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 3
    functionsReached:
    - Botan::Ascon_p::permute
    linkageType: ''
    returnType: void
    signature: void permute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::permute
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::Ascon_p::initial_permute
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached:
    - Botan::Ascon_p::permute
    linkageType: ''
    returnType: void
    signature: void initial_permute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:60,1
    - Dst: template subspan<offset, count>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::Ascon_p::range_of_state
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached:
    - state
    - template subspan<offset, count>
    linkageType: ''
    returnType: auto
    signature: auto range_of_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<uint8_t>::value_or
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:18,1
    - Dst: absorb_into_sponge
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:19,1
    - Dst: Botan::Ascon_p::permute
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - permutation_rounds
    argTypes:
    - std::span<const uint8_t>
    - std::optional<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: Botan::Ascon_p::absorb
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - std::optional<uint8_t>::value_or
    - Botan::Ascon_p::permute
    - absorb_into_sponge
    linkageType: ''
    returnType: void
    signature: void Ascon_p::absorb(std::span<const uint8_t> input, std::optional<uint8_t>
      permutation_rounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: squeeze_from_sponge
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::Ascon_p::squeeze
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - squeeze_from_sponge
    linkageType: ''
    returnType: void
    signature: void Ascon_p::squeeze(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_bytes_in_sponge
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:30,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:30,1
    - Dst: read_from
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:31,1
    - Dst: write_into
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:32,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:36,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:36,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:37,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: Botan::Ascon_p::percolate_in
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - read_from
    - BufferStuffer::full
    - BufferSlicer::empty
    - std::span<uint8_t>::size
    - process_bytes_in_sponge
    - write_into
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void Ascon_p::percolate_in(std::span<uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_bytes_in_sponge
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:44,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:44,1
    - Dst: read_from
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:45,1
    - Dst: write_into
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:46,1
    - Dst: masked_assignment
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:47,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:50,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:50,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:51,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: Botan::Ascon_p::percolate_out
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - read_from
    - BufferStuffer::full
    - BufferSlicer::empty
    - std::span<uint8_t>::size
    - process_bytes_in_sponge
    - masked_assignment
    - write_into
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void Ascon_p::percolate_out(std::span<uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::absorb
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:66,1
    - Dst: first
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:66,1
    - Dst: byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:66,1
    - Dst: cursor
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:66,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:67,1
    - Dst: cursor
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rounds
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: Botan::Ascon_p::finish
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 4
    functionsReached:
    - first
    - byte_rate
    - Botan::Ascon_p::absorb
    - BOTAN_ASSERT_NOMSG
    - cursor
    linkageType: ''
    returnType: void
    signature: void Ascon_p::finish(uint8_t rounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:71,1
    - Dst: state
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:73,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:107,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:107,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:108,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:108,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:109,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:109,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:110,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:110,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:111,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - rounds
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 113
    functionName: Botan::Ascon_p::permute
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 5
    functionsReached:
    - state
    - rotr
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: void
    signature: void Ascon_p::permute(uint8_t rounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<uint8_t>::value_or
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:18,1
    - Dst: absorb_into_sponge
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:19,1
    - Dst: Botan::Ascon_p::permute
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - permutation_rounds
    argTypes:
    - std::span<const uint8_t>
    - std::optional<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: Botan::Ascon_p::absorb
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 1
    functionsReached:
    - std::optional<uint8_t>::value_or
    - Botan::Ascon_p::permute
    - absorb_into_sponge
    linkageType: ''
    returnType: void
    signature: void Ascon_p::absorb(std::span<const uint8_t> input, std::optional<uint8_t>
      permutation_rounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: squeeze_from_sponge
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::Ascon_p::squeeze
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - squeeze_from_sponge
    linkageType: ''
    returnType: void
    signature: void Ascon_p::squeeze(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_bytes_in_sponge
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:30,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:30,1
    - Dst: read_from
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:31,1
    - Dst: write_into
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:32,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:36,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:36,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:37,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: Botan::Ascon_p::percolate_in
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - read_from
    - BufferStuffer::full
    - BufferSlicer::empty
    - std::span<uint8_t>::size
    - process_bytes_in_sponge
    - write_into
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void Ascon_p::percolate_in(std::span<uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_bytes_in_sponge
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:44,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:44,1
    - Dst: read_from
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:45,1
    - Dst: write_into
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:46,1
    - Dst: masked_assignment
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:47,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:50,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:50,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:51,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: Botan::Ascon_p::percolate_out
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - read_from
    - BufferStuffer::full
    - BufferSlicer::empty
    - std::span<uint8_t>::size
    - process_bytes_in_sponge
    - masked_assignment
    - write_into
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void Ascon_p::percolate_out(std::span<uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::absorb
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:66,1
    - Dst: first
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:66,1
    - Dst: byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:66,1
    - Dst: cursor
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:66,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:67,1
    - Dst: cursor
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rounds
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: Botan::Ascon_p::finish
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 4
    functionsReached:
    - first
    - byte_rate
    - Botan::Ascon_p::absorb
    - BOTAN_ASSERT_NOMSG
    - cursor
    linkageType: ''
    returnType: void
    signature: void Ascon_p::finish(uint8_t rounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:71,1
    - Dst: state
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:73,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:107,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:107,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:108,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:108,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:109,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:109,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:110,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:110,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:111,1
    - Dst: rotr
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - rounds
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 113
    functionName: Botan::Ascon_p::permute
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 6
    functionsReached:
    - state
    - rotr
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: void
    signature: void Ascon_p::permute(uint8_t rounds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:23,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 35
    functionName: Botan::Keccak_Permutation::provider
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string Keccak_Permutation::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:38,1
    - Dst: reset_cursor
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: Botan::Keccak_Permutation::clear
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - state
    - reset_cursor
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb_into_sponge
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::Keccak_Permutation::absorb
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - absorb_into_sponge
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::absorb(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: squeeze_from_sponge
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::Keccak_Permutation::squeeze
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - squeeze_from_sponge
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::squeeze(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:57,1
    - Dst: cursor
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:63,1
    - Dst: cursor
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:63,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:72,1
    - Dst: byte_rate
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:75,1
    - Dst: Botan::Keccak_Permutation::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:78,1
    - Dst: reset_cursor
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:79,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:81,1
    - Dst: cursor
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: Botan::Keccak_Permutation::finish
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - Botan::Keccak_Permutation::permute
    - BOTAN_DEBUG_ASSERT
    - byte_rate
    - state
    - cursor
    - reset_cursor
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::finish()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:86,1
    - Dst: permute_avx512
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:87,1
    - Dst: has
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:92,1
    - Dst: permute_bmi2
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:93,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:107,1
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:107,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:108,1
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 110
    functionName: Botan::Keccak_Permutation::permute
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 1
    functionsReached:
    - state
    - permute_avx512
    - Keccak_Permutation_round
    - permute_bmi2
    - has
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::permute()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:23,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 35
    functionName: Botan::Keccak_Permutation::provider
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string Keccak_Permutation::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:38,1
    - Dst: reset_cursor
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: Botan::Keccak_Permutation::clear
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - state
    - reset_cursor
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb_into_sponge
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::Keccak_Permutation::absorb
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - absorb_into_sponge
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::absorb(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: squeeze_from_sponge
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::Keccak_Permutation::squeeze
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - squeeze_from_sponge
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::squeeze(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:57,1
    - Dst: cursor
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:63,1
    - Dst: cursor
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:63,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:72,1
    - Dst: byte_rate
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:75,1
    - Dst: Botan::Keccak_Permutation::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:78,1
    - Dst: reset_cursor
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:79,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:81,1
    - Dst: cursor
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: Botan::Keccak_Permutation::finish
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - Botan::Keccak_Permutation::permute
    - BOTAN_DEBUG_ASSERT
    - byte_rate
    - state
    - cursor
    - reset_cursor
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::finish()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:86,1
    - Dst: permute_avx512
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:87,1
    - Dst: has
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:92,1
    - Dst: permute_bmi2
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:93,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:107,1
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:107,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:108,1
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 110
    functionName: Botan::Keccak_Permutation::permute
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 2
    functionsReached:
    - state
    - permute_avx512
    - Keccak_Permutation_round
    - permute_bmi2
    - has
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::permute()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::keccak_max_int_encoding_size
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t keccak_max_int_encoding_size()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:92,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:101,1
    - Dst: insert
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:103,1
    - Dst: Botan::end
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:103,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:103,1
    - Dst: Botan::end
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:103,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:105,1
    - Dst: absorb
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:110,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:110,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:110,1
    - Dst: absorb
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:111,1
    - Dst: absorb
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:118,1
    - Dst: absorb
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:124,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:124,1
    - Dst: encode_string_and_absorb
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:125,1
    - Dst: absorb_padding
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ' sink'
    - padding_mod
    argTypes:
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 129
    functionName: Botan::keccak_absorb_padded_strings_encoding
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h
    functionUses: 4
    functionsReached:
    - Botan::update
    - Botan::keccak_int_left_encode
    - Botan::end
    - insert
    - Botan::size
    - absorb
    - Botan::begin
    - BOTAN_ASSERT_NOMSG
    - encode_string_and_absorb
    - absorb_padding
    linkageType: ''
    returnType: size_t
    signature: size_t keccak_absorb_padded_strings_encoding(T& sink, size_t padding_mod,
      Ts... byte_strings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::keccak_max_int_encoding_size
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t keccak_max_int_encoding_size()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:92,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:101,1
    - Dst: insert
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:103,1
    - Dst: Botan::end
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:103,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:103,1
    - Dst: Botan::end
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:103,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:105,1
    - Dst: absorb
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:110,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:110,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:110,1
    - Dst: absorb
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:111,1
    - Dst: absorb
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:118,1
    - Dst: absorb
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:124,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:124,1
    - Dst: encode_string_and_absorb
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:125,1
    - Dst: absorb_padding
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ' sink'
    - padding_mod
    argTypes:
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 129
    functionName: Botan::keccak_absorb_padded_strings_encoding
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.h
    functionUses: 4
    functionsReached:
    - Botan::update
    - Botan::keccak_int_left_encode
    - Botan::end
    - insert
    - Botan::size
    - absorb
    - Botan::begin
    - BOTAN_ASSERT_NOMSG
    - encode_string_and_absorb
    - absorb_padding
    linkageType: ''
    returnType: size_t
    signature: size_t keccak_absorb_padded_strings_encoding(T& sink, size_t padding_mod,
      Ts... byte_strings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:22,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:23,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:24,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:25,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:26,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:29,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:30,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:31,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:32,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:39,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:40,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:41,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:42,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:43,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:50,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:51,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:52,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:53,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:54,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:61,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:62,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:63,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:64,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:65,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:72,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:73,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:74,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:75,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 3
    argNames:
    - T
    - A
    - RC
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 82
    functionName: Botan::Keccak_Permutation_round
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE Keccak_Permutation_round(uint64_t T[25], const uint64_t
      A[25], uint64_t RC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:22,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:23,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:24,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:25,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:26,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:29,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:30,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:31,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:32,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:39,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:40,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:41,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:42,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:43,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:50,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:51,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:52,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:53,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:54,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:61,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:62,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:63,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:64,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:65,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:72,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:73,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:74,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:75,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 3
    argNames:
    - T
    - A
    - RC
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 82
    functionName: Botan::Keccak_Permutation_round
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_round.h
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE Keccak_Permutation_round(uint64_t T[25], const uint64_t
      A[25], uint64_t RC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:21,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:21,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    - Dst: max
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: Botan::int_encoding_size
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - Botan::ceil_log2
    - max
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan::ceil_tobytes
    linkageType: ''
    returnType: size_t
    signature: size_t int_encoding_size(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::int_encoding_size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:26,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:27,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:28,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:28,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:33,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:33,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::array::begin
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::array::end
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - std::span<uint8_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: Botan::encode
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy
    - std::span<uint8_t>::size
    - std::span<uint8_t>::begin
    - Botan::store_be
    - Botan::int_encoding_size
    - static_cast<uint8_t>
    - std::array::end
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::array::begin
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t encode(std::span<uint8_t> out, uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:21,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:21,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    - Dst: max
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: Botan::int_encoding_size
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 1
    functionsReached:
    - Botan::ceil_log2
    - max
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan::ceil_tobytes
    linkageType: ''
    returnType: size_t
    signature: size_t int_encoding_size(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::int_encoding_size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:26,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:27,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:28,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:28,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:33,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:33,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::array::begin
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::array::end
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - std::span<uint8_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: Botan::encode
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy
    - std::span<uint8_t>::size
    - std::span<uint8_t>::begin
    - Botan::store_be
    - Botan::int_encoding_size
    - static_cast<uint8_t>
    - std::array::end
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::array::begin
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t encode(std::span<uint8_t> out, uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:43,1
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:43,1
    - Dst: Botan::encode
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:44,1
    - Dst: std::span<uint8_t>::last
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:44,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:44,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan::keccak_int_left_encode
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 6
    functionsReached:
    - std::span<uint8_t>::size
    - std::span<uint8_t>::first
    - std::span<uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<uint8_t>::last
    - Botan::encode
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> keccak_int_left_encode(std::span<uint8_t>
      out, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::encode
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:49,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:50,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:50,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan::keccak_int_right_encode
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 4
    functionsReached:
    - std::span<uint8_t>::size
    - BOTAN_ASSERT_NOMSG
    - std::span<uint8_t>::first
    - Botan::encode
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> keccak_int_right_encode(std::span<uint8_t>
      out, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::int_encoding_size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::keccak_int_encoding_size
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 12
    functionsReached:
    - Botan::int_encoding_size
    linkageType: ''
    returnType: size_t
    signature: size_t keccak_int_encoding_size(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:21,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:21,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    - Dst: max
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: Botan::int_encoding_size
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 3
    functionsReached:
    - Botan::ceil_log2
    - max
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan::ceil_tobytes
    linkageType: ''
    returnType: size_t
    signature: size_t int_encoding_size(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::int_encoding_size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:26,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:27,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:28,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:28,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:33,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:33,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::array::begin
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::array::end
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - std::span<uint8_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: Botan::encode
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 2
    functionsReached:
    - Botan::copy
    - std::span<uint8_t>::size
    - std::span<uint8_t>::begin
    - Botan::store_be
    - Botan::int_encoding_size
    - static_cast<uint8_t>
    - std::array::end
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::array::begin
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t encode(std::span<uint8_t> out, uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:21,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:21,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    - Dst: max
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: Botan::int_encoding_size
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 4
    functionsReached:
    - Botan::ceil_log2
    - max
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan::ceil_tobytes
    linkageType: ''
    returnType: size_t
    signature: size_t int_encoding_size(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::int_encoding_size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:26,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:27,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:28,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:28,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:33,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:33,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::array::begin
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::array::end
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:35,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - std::span<uint8_t>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: Botan::encode
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 2
    functionsReached:
    - Botan::copy
    - std::span<uint8_t>::size
    - std::span<uint8_t>::begin
    - Botan::store_be
    - Botan::int_encoding_size
    - static_cast<uint8_t>
    - std::array::end
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::array::begin
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t encode(std::span<uint8_t> out, uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:43,1
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:43,1
    - Dst: Botan::encode
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:44,1
    - Dst: std::span<uint8_t>::last
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:44,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:44,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan::keccak_int_left_encode
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 6
    functionsReached:
    - std::span<uint8_t>::size
    - std::span<uint8_t>::first
    - std::span<uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<uint8_t>::last
    - Botan::encode
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> keccak_int_left_encode(std::span<uint8_t>
      out, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::encode
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:49,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:50,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:50,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - std::span<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan::keccak_int_right_encode
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 4
    functionsReached:
    - std::span<uint8_t>::size
    - BOTAN_ASSERT_NOMSG
    - std::span<uint8_t>::first
    - Botan::encode
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> keccak_int_right_encode(std::span<uint8_t>
      out, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::int_encoding_size
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::keccak_int_encoding_size
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp
    functionUses: 12
    functionsReached:
    - Botan::int_encoding_size
    linkageType: ''
    returnType: size_t
    signature: size_t keccak_int_encoding_size(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::sha3
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeccakPadding
    signature: KeccakPadding sha3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan::shake
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeccakPadding
    signature: KeccakPadding shake()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::cshake
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeccakPadding
    signature: KeccakPadding cshake()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::keccak1600
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeccakPadding
    signature: KeccakPadding keccak1600()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state_bits
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: Botan::Keccak_Permutation::Keccak_Permutation
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached:
    - state_bits
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation(Config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::sha3
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeccakPadding
    signature: KeccakPadding sha3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan::shake
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeccakPadding
    signature: KeccakPadding shake()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::cshake
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeccakPadding
    signature: KeccakPadding cshake()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::keccak1600
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeccakPadding
    signature: KeccakPadding keccak1600()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state_bits
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: Botan::Keccak_Permutation::Keccak_Permutation
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached:
    - state_bits
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation(Config config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:26,1
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:26,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:27,1
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: BOTAN_FN_ISA_BMI2 Keccak_Permutation::permute_bmi2()
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp
    functionUses: 0
    functionsReached:
    - state
    - Keccak_Permutation_round
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_BMI2 Keccak_Permutation::permute_bmi2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:26,1
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:26,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:27,1
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: BOTAN_FN_ISA_BMI2 Keccak_Permutation::permute_bmi2()
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp
    functionUses: 0
    functionsReached:
    - state
    - Keccak_Permutation_round
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_BMI2 Keccak_Permutation::permute_bmi2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: Botan::SIMD_5x64::BOTAN_FN_ISA_AVX512::SIMD_5x64
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_setzero_si512
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 SIMD_5x64()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:21,1
    - Dst: _mm512_maskz_set1_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - RC
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::SIMD_5x64::rc
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - SIMD_5x64
    - _mm512_maskz_set1_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rc(uint64_t RC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:25,1
    - Dst: _mm512_maskz_loadu_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::SIMD_5x64::load
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_maskz_loadu_epi64
    - SIMD_5x64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 load(const uint64_t v[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:31,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:32,1
    - Dst: _mm512_permutexvar_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::SIMD_5x64::permute
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi64
    - SIMD_5x64
    - _mm512_setr_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 permute() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_unpacklo_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:39,1
    - Dst: _mm512_unpacklo_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:40,1
    - Dst: _mm512_unpackhi_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:42,1
    - Dst: _mm512_unpackhi_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:43,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:46,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:47,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:49,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:50,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:53,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:54,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:55,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:57,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:58,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:59,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:60,1
    - Dst: _mm512_mask_blend_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:61,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ' i0'
    - ' i1'
    - ' i2'
    - ' i3'
    - ' i4'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: Botan::SIMD_5x64::transpose5
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_unpackhi_epi64
    - _mm512_setr_epi64
    - _mm512_permutex2var_epi64
    - _mm512_unpacklo_epi64
    - _mm512_mask_blend_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: "BOTAN_FN_ISA_AVX512 transpose5(\n         SIMD_5x64& i0, SIMD_5x64&
      i1, SIMD_5x64& i2, SIMD_5x64& i3, SIMD_5x64& i4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:66,1
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::SIMD_5x64::chi
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - SIMD_5x64
    - _mm512_ternarylogic_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 chi(const SIMD_5x64& x, const SIMD_5x64& y, const
      SIMD_5x64& z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:70,1
    - Dst: _mm512_xor_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: operator^(const SIMD_5x64& x, const SIMD_5x64& y)
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - SIMD_5x64
    - _mm512_xor_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 operator^(const SIMD_5x64& x, const SIMD_5x64&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:76,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:77,1
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' i0'
    - ' i1'
    - ' i2'
    - ' i3'
    - ' i4'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: Botan::SIMD_5x64::xor5
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - SIMD_5x64
    - _mm512_ternarylogic_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xor5(const SIMD_5x64& i0, const SIMD_5x64& i1,
      const SIMD_5x64& i2, const SIMD_5x64& i3, const SIMD_5x64& i4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:80,1
    - Dst: _mm512_rol_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::SIMD_5x64::rol1
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_rol_epi64
    - SIMD_5x64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rol1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:85,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:86,1
    - Dst: _mm512_rolv_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: Botan::SIMD_5x64::rolv
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - SIMD_5x64
    - _mm512_rolv_epi64
    - _mm512_setr_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rolv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_mask_storeu_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::SIMD_5x64::store
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_mask_storeu_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store(uint64_t v[5]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::SIMD_5x64::BOTAN_FN_ISA_AVX512::SIMD_5x64
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 SIMD_5x64(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_5x64::xor5
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:98,1
    - Dst: auto::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:100,1
    - Dst: auto::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:100,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:102,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:103,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:104,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:105,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:106,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:108,1
    - Dst: Botan::SIMD_5x64::rc
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:108,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:109,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:110,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:111,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:112,1
    - Dst: Botan::SIMD_5x64::transpose5
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - A
    - RC
    argTypes:
    - SIMD_5x64[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 121
    functionName: Botan::BOTAN_FN_ISA_AVX512::Keccak_Permutation_round_avx512
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_5x64::xor5
    - Botan::SIMD_5x64::transpose5
    - Botan::SIMD_5x64::rc
    - Botan::SIMD_5x64::chi
    - auto::permute
    - permute
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 Keccak_Permutation_round_avx512(SIMD_5x64
      A[5], uint64_t RC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: Botan::SIMD_5x64::BOTAN_FN_ISA_AVX512::SIMD_5x64
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_setzero_si512
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 SIMD_5x64()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:21,1
    - Dst: _mm512_maskz_set1_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - RC
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::SIMD_5x64::rc
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 1
    functionsReached:
    - SIMD_5x64
    - _mm512_maskz_set1_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rc(uint64_t RC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:25,1
    - Dst: _mm512_maskz_loadu_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::SIMD_5x64::load
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_maskz_loadu_epi64
    - SIMD_5x64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 load(const uint64_t v[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:31,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:32,1
    - Dst: _mm512_permutexvar_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::SIMD_5x64::permute
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi64
    - SIMD_5x64
    - _mm512_setr_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 permute() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_unpacklo_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:39,1
    - Dst: _mm512_unpacklo_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:40,1
    - Dst: _mm512_unpackhi_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:42,1
    - Dst: _mm512_unpackhi_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:43,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:46,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:47,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:49,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:50,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:53,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:54,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:55,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:57,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:58,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:59,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:60,1
    - Dst: _mm512_mask_blend_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:61,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ' i0'
    - ' i1'
    - ' i2'
    - ' i3'
    - ' i4'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: Botan::SIMD_5x64::transpose5
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_unpackhi_epi64
    - _mm512_setr_epi64
    - _mm512_permutex2var_epi64
    - _mm512_unpacklo_epi64
    - _mm512_mask_blend_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: "BOTAN_FN_ISA_AVX512 transpose5(\n         SIMD_5x64& i0, SIMD_5x64&
      i1, SIMD_5x64& i2, SIMD_5x64& i3, SIMD_5x64& i4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:66,1
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::SIMD_5x64::chi
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 1
    functionsReached:
    - SIMD_5x64
    - _mm512_ternarylogic_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 chi(const SIMD_5x64& x, const SIMD_5x64& y, const
      SIMD_5x64& z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:70,1
    - Dst: _mm512_xor_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: operator^(const SIMD_5x64& x, const SIMD_5x64& y)
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - SIMD_5x64
    - _mm512_xor_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 operator^(const SIMD_5x64& x, const SIMD_5x64&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:76,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:77,1
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' i0'
    - ' i1'
    - ' i2'
    - ' i3'
    - ' i4'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: Botan::SIMD_5x64::xor5
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 1
    functionsReached:
    - SIMD_5x64
    - _mm512_ternarylogic_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xor5(const SIMD_5x64& i0, const SIMD_5x64& i1,
      const SIMD_5x64& i2, const SIMD_5x64& i3, const SIMD_5x64& i4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:80,1
    - Dst: _mm512_rol_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::SIMD_5x64::rol1
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_rol_epi64
    - SIMD_5x64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rol1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:85,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:86,1
    - Dst: _mm512_rolv_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: Botan::SIMD_5x64::rolv
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - SIMD_5x64
    - _mm512_rolv_epi64
    - _mm512_setr_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rolv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_mask_storeu_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::SIMD_5x64::store
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_mask_storeu_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store(uint64_t v[5]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::SIMD_5x64::BOTAN_FN_ISA_AVX512::SIMD_5x64
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 SIMD_5x64(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_5x64::xor5
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:98,1
    - Dst: auto::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:100,1
    - Dst: auto::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:100,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:102,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:103,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:104,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:105,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:106,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:108,1
    - Dst: Botan::SIMD_5x64::rc
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:108,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:109,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:110,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:111,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:112,1
    - Dst: Botan::SIMD_5x64::transpose5
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - A
    - RC
    argTypes:
    - SIMD_5x64[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 121
    functionName: Botan::BOTAN_FN_ISA_AVX512::Keccak_Permutation_round_avx512
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_5x64::xor5
    - Botan::SIMD_5x64::transpose5
    - Botan::SIMD_5x64::rc
    - Botan::SIMD_5x64::chi
    - auto::permute
    - permute
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 Keccak_Permutation_round_avx512(SIMD_5x64
      A[5], uint64_t RC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:133,1
    - Dst: Botan::SIMD_5x64::load
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:136,1
    - Dst: Botan::SIMD_5x64::load
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:137,1
    - Dst: Botan::SIMD_5x64::load
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:138,1
    - Dst: Botan::SIMD_5x64::load
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:139,1
    - Dst: Botan::SIMD_5x64::load
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:140,1
    - Dst: Keccak_Permutation_round_avx512
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:145,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:145,1
    - Dst: store
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 151
    functionName: BOTAN_FN_ISA_AVX512 Keccak_Permutation::permute_avx512()
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_5x64::load
    - state
    - Keccak_Permutation_round_avx512
    - std::array::data
    - store
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 Keccak_Permutation::permute_avx512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: Botan::SIMD_5x64::BOTAN_FN_ISA_AVX512::SIMD_5x64
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_setzero_si512
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 SIMD_5x64()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:21,1
    - Dst: _mm512_maskz_set1_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - RC
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::SIMD_5x64::rc
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 2
    functionsReached:
    - SIMD_5x64
    - _mm512_maskz_set1_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rc(uint64_t RC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:25,1
    - Dst: _mm512_maskz_loadu_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::SIMD_5x64::load
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_maskz_loadu_epi64
    - SIMD_5x64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 load(const uint64_t v[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:31,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:32,1
    - Dst: _mm512_permutexvar_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::SIMD_5x64::permute
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi64
    - SIMD_5x64
    - _mm512_setr_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 permute() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_unpacklo_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:39,1
    - Dst: _mm512_unpacklo_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:40,1
    - Dst: _mm512_unpackhi_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:42,1
    - Dst: _mm512_unpackhi_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:43,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:46,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:47,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:49,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:50,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:53,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:54,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:55,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:57,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:58,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:59,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:60,1
    - Dst: _mm512_mask_blend_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:61,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ' i0'
    - ' i1'
    - ' i2'
    - ' i3'
    - ' i4'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: Botan::SIMD_5x64::transpose5
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 2
    functionsReached:
    - _mm512_unpackhi_epi64
    - _mm512_setr_epi64
    - _mm512_permutex2var_epi64
    - _mm512_unpacklo_epi64
    - _mm512_mask_blend_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: "BOTAN_FN_ISA_AVX512 transpose5(\n         SIMD_5x64& i0, SIMD_5x64&
      i1, SIMD_5x64& i2, SIMD_5x64& i3, SIMD_5x64& i4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:66,1
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::SIMD_5x64::chi
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 2
    functionsReached:
    - SIMD_5x64
    - _mm512_ternarylogic_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 chi(const SIMD_5x64& x, const SIMD_5x64& y, const
      SIMD_5x64& z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:70,1
    - Dst: _mm512_xor_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: operator^(const SIMD_5x64& x, const SIMD_5x64& y)
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - SIMD_5x64
    - _mm512_xor_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 operator^(const SIMD_5x64& x, const SIMD_5x64&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:76,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:77,1
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' i0'
    - ' i1'
    - ' i2'
    - ' i3'
    - ' i4'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: Botan::SIMD_5x64::xor5
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 2
    functionsReached:
    - SIMD_5x64
    - _mm512_ternarylogic_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xor5(const SIMD_5x64& i0, const SIMD_5x64& i1,
      const SIMD_5x64& i2, const SIMD_5x64& i3, const SIMD_5x64& i4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:80,1
    - Dst: _mm512_rol_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::SIMD_5x64::rol1
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_rol_epi64
    - SIMD_5x64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rol1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:85,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:86,1
    - Dst: _mm512_rolv_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: Botan::SIMD_5x64::rolv
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - SIMD_5x64
    - _mm512_rolv_epi64
    - _mm512_setr_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rolv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_mask_storeu_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::SIMD_5x64::store
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_mask_storeu_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store(uint64_t v[5]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::SIMD_5x64::BOTAN_FN_ISA_AVX512::SIMD_5x64
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 SIMD_5x64(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_5x64::xor5
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:98,1
    - Dst: auto::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:100,1
    - Dst: auto::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:100,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:102,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:103,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:104,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:105,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:106,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:108,1
    - Dst: Botan::SIMD_5x64::rc
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:108,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:109,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:110,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:111,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:112,1
    - Dst: Botan::SIMD_5x64::transpose5
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - A
    - RC
    argTypes:
    - SIMD_5x64[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 121
    functionName: Botan::BOTAN_FN_ISA_AVX512::Keccak_Permutation_round_avx512
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_5x64::xor5
    - Botan::SIMD_5x64::transpose5
    - Botan::SIMD_5x64::rc
    - Botan::SIMD_5x64::chi
    - auto::permute
    - permute
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 Keccak_Permutation_round_avx512(SIMD_5x64
      A[5], uint64_t RC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: Botan::SIMD_5x64::BOTAN_FN_ISA_AVX512::SIMD_5x64
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_setzero_si512
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 SIMD_5x64()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:21,1
    - Dst: _mm512_maskz_set1_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - RC
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::SIMD_5x64::rc
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 3
    functionsReached:
    - SIMD_5x64
    - _mm512_maskz_set1_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rc(uint64_t RC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:25,1
    - Dst: _mm512_maskz_loadu_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::SIMD_5x64::load
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_maskz_loadu_epi64
    - SIMD_5x64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 load(const uint64_t v[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:31,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:32,1
    - Dst: _mm512_permutexvar_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::SIMD_5x64::permute
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi64
    - SIMD_5x64
    - _mm512_setr_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 permute() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_unpacklo_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:39,1
    - Dst: _mm512_unpacklo_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:40,1
    - Dst: _mm512_unpackhi_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:42,1
    - Dst: _mm512_unpackhi_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:43,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:46,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:47,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:49,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:50,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:53,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:54,1
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:55,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:57,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:58,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:59,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:60,1
    - Dst: _mm512_mask_blend_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:61,1
    - Dst: _mm512_permutex2var_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ' i0'
    - ' i1'
    - ' i2'
    - ' i3'
    - ' i4'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: Botan::SIMD_5x64::transpose5
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 3
    functionsReached:
    - _mm512_unpackhi_epi64
    - _mm512_setr_epi64
    - _mm512_permutex2var_epi64
    - _mm512_unpacklo_epi64
    - _mm512_mask_blend_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: "BOTAN_FN_ISA_AVX512 transpose5(\n         SIMD_5x64& i0, SIMD_5x64&
      i1, SIMD_5x64& i2, SIMD_5x64& i3, SIMD_5x64& i4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:66,1
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::SIMD_5x64::chi
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 3
    functionsReached:
    - SIMD_5x64
    - _mm512_ternarylogic_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 chi(const SIMD_5x64& x, const SIMD_5x64& y, const
      SIMD_5x64& z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:70,1
    - Dst: _mm512_xor_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: operator^(const SIMD_5x64& x, const SIMD_5x64& y)
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - SIMD_5x64
    - _mm512_xor_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 operator^(const SIMD_5x64& x, const SIMD_5x64&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:76,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:77,1
    - Dst: _mm512_ternarylogic_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' i0'
    - ' i1'
    - ' i2'
    - ' i3'
    - ' i4'
    argTypes:
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    - SIMD_5x64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: Botan::SIMD_5x64::xor5
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 3
    functionsReached:
    - SIMD_5x64
    - _mm512_ternarylogic_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xor5(const SIMD_5x64& i0, const SIMD_5x64& i1,
      const SIMD_5x64& i2, const SIMD_5x64& i3, const SIMD_5x64& i4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:80,1
    - Dst: _mm512_rol_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::SIMD_5x64::rol1
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_rol_epi64
    - SIMD_5x64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rol1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setr_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:85,1
    - Dst: SIMD_5x64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:86,1
    - Dst: _mm512_rolv_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: Botan::SIMD_5x64::rolv
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - SIMD_5x64
    - _mm512_rolv_epi64
    - _mm512_setr_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 rolv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_mask_storeu_epi64
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::SIMD_5x64::store
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_mask_storeu_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store(uint64_t v[5]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::SIMD_5x64::BOTAN_FN_ISA_AVX512::SIMD_5x64
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 SIMD_5x64(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_5x64::xor5
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:98,1
    - Dst: auto::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:100,1
    - Dst: auto::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:100,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:102,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:103,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:104,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:105,1
    - Dst: permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:106,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:108,1
    - Dst: Botan::SIMD_5x64::rc
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:108,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:109,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:110,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:111,1
    - Dst: Botan::SIMD_5x64::chi
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:112,1
    - Dst: Botan::SIMD_5x64::transpose5
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - A
    - RC
    argTypes:
    - SIMD_5x64[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 121
    functionName: Botan::BOTAN_FN_ISA_AVX512::Keccak_Permutation_round_avx512
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_5x64::xor5
    - Botan::SIMD_5x64::transpose5
    - Botan::SIMD_5x64::rc
    - Botan::SIMD_5x64::chi
    - auto::permute
    - permute
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 Keccak_Permutation_round_avx512(SIMD_5x64
      A[5], uint64_t RC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:133,1
    - Dst: Botan::SIMD_5x64::load
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:136,1
    - Dst: Botan::SIMD_5x64::load
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:137,1
    - Dst: Botan::SIMD_5x64::load
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:138,1
    - Dst: Botan::SIMD_5x64::load
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:139,1
    - Dst: Botan::SIMD_5x64::load
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:140,1
    - Dst: Keccak_Permutation_round_avx512
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:145,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:145,1
    - Dst: store
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 151
    functionName: BOTAN_FN_ISA_AVX512 Keccak_Permutation::permute_avx512()
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_avx512/keccak_perm_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_5x64::load
    - state
    - Keccak_Permutation_round_avx512
    - std::array::data
    - store
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX512 Keccak_Permutation::permute_avx512()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 133
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Alert
    signature: Alert final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::TLS::is_valid
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan::TLS::is_fatal
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_fatal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type_code
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: Botan::TLS::Alert
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Alert(Type type_code, bool fatal = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Alert
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Alert()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 133
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Alert
    signature: Alert final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::TLS::is_valid
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan::TLS::is_fatal
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_fatal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type_code
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: Botan::TLS::Alert
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Alert(Type type_code, bool fatal = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Alert
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Alert()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Manager_Noop
      Src: /src/botan/src/lib/tls/tls_session_manager_noop.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: Botan::TLS::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached:
    - Session_Manager_Noop
    linkageType: ''
    returnType: Session_Manager_Noop
    signature: Session_Manager_Noop Session_Manager
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::TLS::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store(const Session& /*session*/, const Session_Handle& /*handle*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::TLS::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& /*session*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::TLS::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Manager_Noop
      Src: /src/botan/src/lib/tls/tls_session_manager_noop.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: Botan::TLS::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached:
    - Session_Manager_Noop
    linkageType: ''
    returnType: Session_Manager_Noop
    signature: Session_Manager_Noop Session_Manager
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::TLS::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store(const Session& /*session*/, const Session_Handle& /*handle*/)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::TLS::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& /*session*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::TLS::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: ~Channel_Impl()
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Channel_Impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl(const Channel_Impl& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl(Channel_Impl&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& operator=(const Channel_Impl& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl
    signature: Channel_Impl & operator=(const Channel_Impl& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& operator=(Channel_Impl&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl
    signature: Channel_Impl & operator=(Channel_Impl&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:66,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Channel_Impl::send_warning_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - Alert
    - send_alert
    linkageType: ''
    returnType: void
    signature: void send_warning_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:71,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Channel_Impl::send_fatal_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - Alert
    - send_alert
    linkageType: ''
    returnType: void
    signature: void send_fatal_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl::send_warning_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Channel_Impl::close
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 21
    functionsReached:
    - Botan::TLS::Channel_Impl::send_warning_alert
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Channel_Impl::new_session_ticket_supported
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool new_session_ticket_supported() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Channel_Impl::send_new_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t send_new_session_tickets(const size_t /* tickets */)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:225,1
    - Dst: peer_transcript::insert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: peer_transcript::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan::TLS::Channel_Impl::preserve_peer_transcript
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - peer_transcript::insert
    - std::span<const uint8_t>::begin
    - peer_transcript::end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void preserve_peer_transcript(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:230,1
    - Dst: client_hello_message::assign
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: Botan::TLS::Channel_Impl::preserve_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - client_hello_message::assign
    - std::span<const uint8_t>::begin
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void preserve_client_hello(std::span<const uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io_buf_sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: Botan::TLS::Channel_Impl::set_io_buffer_size
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void set_io_buffer_size(size_t io_buf_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: Botan::TLS::Channel_Impl::request_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void request_downgrade()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:256,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:256,1
    - Dst: peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:257,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:257,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:258,1
    - Dst: Session_with_Handle::session::version
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:259,1
    - Dst: Botan::TLS::Channel_Impl::request_downgrade
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - session
    argTypes:
    - Session_with_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: Botan::TLS::Channel_Impl::request_downgrade_for_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - Session_with_Handle::session::version
    - peer_transcript::empty
    - std::move
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Channel_Impl::request_downgrade
    - tls12_session::has_value
    - client_hello_message::empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void request_downgrade_for_resumption(Session_with_Handle session)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Botan::TLS::Channel_Impl::is_downgrading
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_downgrading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: Botan::TLS::Channel_Impl::extract_downgrade_info
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::unique_ptr<Downgrade_Information>
    signature: std::unique_ptr<Downgrade_Information> extract_downgrade_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan::TLS::Channel_Impl::expects_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool expects_downgrade() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: ~Channel_Impl()
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Channel_Impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl(const Channel_Impl& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl(Channel_Impl&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& operator=(const Channel_Impl& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl
    signature: Channel_Impl & operator=(const Channel_Impl& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& operator=(Channel_Impl&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl
    signature: Channel_Impl & operator=(Channel_Impl&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:66,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Channel_Impl::send_warning_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 1
    functionsReached:
    - Alert
    - send_alert
    linkageType: ''
    returnType: void
    signature: void send_warning_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:71,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Channel_Impl::send_fatal_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - Alert
    - send_alert
    linkageType: ''
    returnType: void
    signature: void send_fatal_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl::send_warning_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Channel_Impl::close
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 21
    functionsReached:
    - Botan::TLS::Channel_Impl::send_warning_alert
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Channel_Impl::new_session_ticket_supported
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool new_session_ticket_supported() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Channel_Impl::send_new_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t send_new_session_tickets(const size_t /* tickets */)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:225,1
    - Dst: peer_transcript::insert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: peer_transcript::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan::TLS::Channel_Impl::preserve_peer_transcript
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - peer_transcript::insert
    - std::span<const uint8_t>::begin
    - peer_transcript::end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void preserve_peer_transcript(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:230,1
    - Dst: client_hello_message::assign
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: Botan::TLS::Channel_Impl::preserve_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - client_hello_message::assign
    - std::span<const uint8_t>::begin
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void preserve_client_hello(std::span<const uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io_buf_sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: Botan::TLS::Channel_Impl::set_io_buffer_size
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void set_io_buffer_size(size_t io_buf_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: Botan::TLS::Channel_Impl::request_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 1
    functionsReached:
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void request_downgrade()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:256,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:256,1
    - Dst: peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:257,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:257,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:258,1
    - Dst: Session_with_Handle::session::version
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:259,1
    - Dst: Botan::TLS::Channel_Impl::request_downgrade
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - session
    argTypes:
    - Session_with_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: Botan::TLS::Channel_Impl::request_downgrade_for_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - Session_with_Handle::session::version
    - peer_transcript::empty
    - std::move
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Channel_Impl::request_downgrade
    - tls12_session::has_value
    - client_hello_message::empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void request_downgrade_for_resumption(Session_with_Handle session)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Botan::TLS::Channel_Impl::is_downgrading
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_downgrading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: Botan::TLS::Channel_Impl::extract_downgrade_info
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::unique_ptr<Downgrade_Information>
    signature: std::unique_ptr<Downgrade_Information> extract_downgrade_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan::TLS::Channel_Impl::expects_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool expects_downgrade() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: ~Channel_Impl()
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Channel_Impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl(const Channel_Impl& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl(Channel_Impl&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& operator=(const Channel_Impl& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl
    signature: Channel_Impl & operator=(const Channel_Impl& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& operator=(Channel_Impl&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl
    signature: Channel_Impl & operator=(Channel_Impl&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:66,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Channel_Impl::send_warning_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 2
    functionsReached:
    - Alert
    - send_alert
    linkageType: ''
    returnType: void
    signature: void send_warning_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:71,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Channel_Impl::send_fatal_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - Alert
    - send_alert
    linkageType: ''
    returnType: void
    signature: void send_fatal_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl::send_warning_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Channel_Impl::close
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 21
    functionsReached:
    - Botan::TLS::Channel_Impl::send_warning_alert
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Channel_Impl::new_session_ticket_supported
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool new_session_ticket_supported() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Channel_Impl::send_new_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t send_new_session_tickets(const size_t /* tickets */)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:225,1
    - Dst: peer_transcript::insert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: peer_transcript::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan::TLS::Channel_Impl::preserve_peer_transcript
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - peer_transcript::insert
    - std::span<const uint8_t>::begin
    - peer_transcript::end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void preserve_peer_transcript(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:230,1
    - Dst: client_hello_message::assign
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: Botan::TLS::Channel_Impl::preserve_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - client_hello_message::assign
    - std::span<const uint8_t>::begin
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void preserve_client_hello(std::span<const uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io_buf_sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: Botan::TLS::Channel_Impl::set_io_buffer_size
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void set_io_buffer_size(size_t io_buf_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: Botan::TLS::Channel_Impl::request_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 2
    functionsReached:
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void request_downgrade()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:256,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:256,1
    - Dst: peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:257,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:257,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:258,1
    - Dst: Session_with_Handle::session::version
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:259,1
    - Dst: Botan::TLS::Channel_Impl::request_downgrade
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - session
    argTypes:
    - Session_with_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: Botan::TLS::Channel_Impl::request_downgrade_for_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - Session_with_Handle::session::version
    - peer_transcript::empty
    - std::move
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Channel_Impl::request_downgrade
    - tls12_session::has_value
    - client_hello_message::empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void request_downgrade_for_resumption(Session_with_Handle session)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Botan::TLS::Channel_Impl::is_downgrading
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_downgrading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: Botan::TLS::Channel_Impl::extract_downgrade_info
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::unique_ptr<Downgrade_Information>
    signature: std::unique_ptr<Downgrade_Information> extract_downgrade_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan::TLS::Channel_Impl::expects_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool expects_downgrade() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: ~Channel_Impl()
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Channel_Impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl(const Channel_Impl& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl(Channel_Impl&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& operator=(const Channel_Impl& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl
    signature: Channel_Impl & operator=(const Channel_Impl& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& operator=(Channel_Impl&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl
    signature: Channel_Impl & operator=(Channel_Impl&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:66,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Channel_Impl::send_warning_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 3
    functionsReached:
    - Alert
    - send_alert
    linkageType: ''
    returnType: void
    signature: void send_warning_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:71,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Channel_Impl::send_fatal_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - Alert
    - send_alert
    linkageType: ''
    returnType: void
    signature: void send_fatal_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl::send_warning_alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Channel_Impl::close
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 21
    functionsReached:
    - Botan::TLS::Channel_Impl::send_warning_alert
    linkageType: ''
    returnType: void
    signature: void close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Channel_Impl::new_session_ticket_supported
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool new_session_ticket_supported() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Channel_Impl::send_new_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t send_new_session_tickets(const size_t /* tickets */)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan::TLS::Channel_Impl::Channel_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:225,1
    - Dst: peer_transcript::insert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: peer_transcript::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan::TLS::Channel_Impl::preserve_peer_transcript
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - peer_transcript::insert
    - std::span<const uint8_t>::begin
    - peer_transcript::end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void preserve_peer_transcript(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:230,1
    - Dst: client_hello_message::assign
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: Botan::TLS::Channel_Impl::preserve_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - client_hello_message::assign
    - std::span<const uint8_t>::begin
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void preserve_client_hello(std::span<const uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io_buf_sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: Botan::TLS::Channel_Impl::set_io_buffer_size
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void set_io_buffer_size(size_t io_buf_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: Botan::TLS::Channel_Impl::request_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 3
    functionsReached:
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void request_downgrade()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:256,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:256,1
    - Dst: peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:257,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:257,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:258,1
    - Dst: Session_with_Handle::session::version
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:259,1
    - Dst: Botan::TLS::Channel_Impl::request_downgrade
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - session
    argTypes:
    - Session_with_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: Botan::TLS::Channel_Impl::request_downgrade_for_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - Session_with_Handle::session::version
    - peer_transcript::empty
    - std::move
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Channel_Impl::request_downgrade
    - tls12_session::has_value
    - client_hello_message::empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void request_downgrade_for_resumption(Session_with_Handle session)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Botan::TLS::Channel_Impl::is_downgrading
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_downgrading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: Botan::TLS::Channel_Impl::extract_downgrade_info
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::unique_ptr<Downgrade_Information>
    signature: std::unique_ptr<Downgrade_Information> extract_downgrade_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan::TLS::Channel_Impl::expects_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool expects_downgrade() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/lib/tls/tls_server_info.h:24,1
    - Dst: BOTAN_FUTURE_EXPLICIT::empty
      Src: /src/botan/src/lib/tls/tls_server_info.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 69
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - BOTAN_FUTURE_EXPLICIT::empty
    linkageType: ''
    returnType: Server_Information
    signature: Server_Information final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hostname
    - service
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Server_Information
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Information(std::string_view hostname, std::string_view
      service, uint16_t port = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::hostname
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::service
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string service() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan::TLS::port
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_server_info.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    - Dst: Botan::TLS::hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    - Dst: Botan::TLS::service
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    - Dst: Botan::TLS::service
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    - Dst: Botan::TLS::port
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    - Dst: Botan::TLS::port
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Server_Information
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: operator==(const Server_Information& a, const Server_Information&
      b)
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::service
    - Botan::TLS::hostname
    - Botan::TLS::port
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Server_Information& a, const Server_Information&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Server_Information
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: operator!=(const Server_Information& a, const Server_Information&
      b)
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Server_Information& a, const Server_Information&
      b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:80,1
    - Dst: Botan::TLS::hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:80,1
    - Dst: Botan::TLS::hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:81,1
    - Dst: Botan::TLS::hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:81,1
    - Dst: Botan::TLS::service
      Src: /src/botan/src/lib/tls/tls_server_info.h:83,1
    - Dst: Botan::TLS::service
      Src: /src/botan/src/lib/tls/tls_server_info.h:83,1
    - Dst: Botan::TLS::service
      Src: /src/botan/src/lib/tls/tls_server_info.h:84,1
    - Dst: Botan::TLS::service
      Src: /src/botan/src/lib/tls/tls_server_info.h:84,1
    - Dst: Botan::TLS::port
      Src: /src/botan/src/lib/tls/tls_server_info.h:86,1
    - Dst: Botan::TLS::port
      Src: /src/botan/src/lib/tls/tls_server_info.h:86,1
    - Dst: Botan::TLS::port
      Src: /src/botan/src/lib/tls/tls_server_info.h:87,1
    - Dst: Botan::TLS::port
      Src: /src/botan/src/lib/tls/tls_server_info.h:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Server_Information
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: operator<(const Server_Information& a, const Server_Information&
      b)
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::service
    - Botan::TLS::hostname
    - Botan::TLS::port
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Server_Information& a, const Server_Information&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/lib/tls/tls_server_info.h:24,1
    - Dst: BOTAN_FUTURE_EXPLICIT::empty
      Src: /src/botan/src/lib/tls/tls_server_info.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 69
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - BOTAN_FUTURE_EXPLICIT::empty
    linkageType: ''
    returnType: Server_Information
    signature: Server_Information final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hostname
    - service
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Server_Information
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Information(std::string_view hostname, std::string_view
      service, uint16_t port = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::hostname
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::service
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string service() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan::TLS::port
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t port() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_server_info.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    - Dst: service
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    - Dst: service
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    - Dst: port
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    - Dst: port
      Src: /src/botan/src/lib/tls/tls_server_info.h:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Server_Information
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: operator==(const Server_Information& a, const Server_Information&
      b)
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 0
    functionsReached:
    - port
    - hostname
    - service
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Server_Information& a, const Server_Information&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Server_Information
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: operator!=(const Server_Information& a, const Server_Information&
      b)
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Server_Information& a, const Server_Information&
      b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:80,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:80,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:81,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls_server_info.h:81,1
    - Dst: service
      Src: /src/botan/src/lib/tls/tls_server_info.h:83,1
    - Dst: service
      Src: /src/botan/src/lib/tls/tls_server_info.h:83,1
    - Dst: service
      Src: /src/botan/src/lib/tls/tls_server_info.h:84,1
    - Dst: service
      Src: /src/botan/src/lib/tls/tls_server_info.h:84,1
    - Dst: port
      Src: /src/botan/src/lib/tls/tls_server_info.h:86,1
    - Dst: port
      Src: /src/botan/src/lib/tls/tls_server_info.h:86,1
    - Dst: port
      Src: /src/botan/src/lib/tls/tls_server_info.h:87,1
    - Dst: port
      Src: /src/botan/src/lib/tls/tls_server_info.h:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Server_Information
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: operator<(const Server_Information& a, const Server_Information&
      b)
    functionSourceFile: /src/botan/src/lib/tls/tls_server_info.h
    functionUses: 0
    functionsReached:
    - port
    - hostname
    - service
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Server_Information& a, const Server_Information&
      b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:15,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:16,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:20,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:23,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:26,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:27,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:30,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:30,1
    - Dst: end
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:30,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 31
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - begin
    - end
    - size
    - assign
    - make_uint32
    linkageType: ''
    returnType: void
    signature: void Certificate_Status::Certificate_Status(const std::vector<uint8_t>&
      buf, const Connection_Side /*side*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - raw_response_bytes
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Certificate_Status::Certificate_Status(std::vector<uint8_t> raw_response_bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:37,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:38,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:41,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:41,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:44,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:47,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:47,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:50,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:50,1
    - Dst: end
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Certificate_Status::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - std::vector::push_back
    - std::vector::end
    - get_byte_var
    - begin
    - std::vector::reserve
    - size
    - Encoding_Error
    - std::vector::insert
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Status::serialize() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:15,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:16,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:20,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:23,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:26,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:27,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:30,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:30,1
    - Dst: end
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:30,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 31
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - begin
    - end
    - size
    - assign
    - make_uint32
    linkageType: ''
    returnType: void
    signature: void Certificate_Status::Certificate_Status(const std::vector<uint8_t>&
      buf, const Connection_Side /*side*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - raw_response_bytes
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Certificate_Status::Certificate_Status(std::vector<uint8_t> raw_response_bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:37,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:38,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:41,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:41,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:44,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:47,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:47,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:50,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:50,1
    - Dst: end
      Src: /src/botan/src/lib/tls/msg_cert_status.cpp:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Certificate_Status::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - std::vector::push_back
    - std::vector::end
    - get_byte_var
    - begin
    - std::vector::reserve
    - size
    - Encoding_Error
    - std::vector::insert
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Status::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/tls_exceptn.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::TLS::error_code
    functionSourceFile: /src/botan/src/lib/tls/tls_exceptn.h
    functionUses: 8
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int error_code() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::error_type
    functionSourceFile: /src/botan/src/lib/tls/tls_exceptn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ErrorType
    signature: ErrorType error_type() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/tls_exceptn.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::TLS::error_code
    functionSourceFile: /src/botan/src/lib/tls/tls_exceptn.h
    functionUses: 8
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int error_code() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::error_type
    functionSourceFile: /src/botan/src/lib/tls/tls_exceptn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ErrorType
    signature: ErrorType error_type() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: TLS_Exception
    functionSourceFile: /src/botan/src/lib/tls/tls_exceptn.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: Unexpected_Message
    signature: Unexpected_Message TLS_Exception
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_reader.cpp:15,1
    - Dst: Botan::TLS::TLS_Data_Reader::throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.cpp:17,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_reader.cpp:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: Botan::TLS::TLS_Data_Reader::assert_at_least
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.cpp
    functionUses: 0
    functionsReached:
    - fmt
    - Botan::TLS::TLS_Data_Reader::throw_decode_error
    - remaining_bytes
    linkageType: ''
    returnType: void
    signature: void TLS_Data_Reader::assert_at_least(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_reader.cpp:22,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_reader.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - why
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::TLS_Data_Reader::throw_decode_error
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.cpp
    functionUses: 1
    functionsReached:
    - fmt
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void TLS_Data_Reader::throw_decode_error(std::string_view why) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_reader.cpp:15,1
    - Dst: Botan::TLS::TLS_Data_Reader::throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.cpp:17,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_reader.cpp:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: Botan::TLS::TLS_Data_Reader::assert_at_least
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.cpp
    functionUses: 0
    functionsReached:
    - fmt
    - Botan::TLS::TLS_Data_Reader::throw_decode_error
    - remaining_bytes
    linkageType: ''
    returnType: void
    signature: void TLS_Data_Reader::assert_at_least(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_reader.cpp:22,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_reader.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - why
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::TLS_Data_Reader::throw_decode_error
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.cpp
    functionUses: 2
    functionsReached:
    - fmt
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void TLS_Data_Reader::throw_decode_error(std::string_view why) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:20,1
    - Dst: Policy::allow_ssl_key_log_file
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: Botan::TLS::Text_Policy::allow_ssl_key_log_file
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allow_ssl_key_log_file
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_ssl_key_log_file() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:24,1
    - Dst: Policy::allowed_ciphers
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::TLS::Text_Policy::allowed_ciphers
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allowed_ciphers
    - Botan::TLS::Text_Policy::get_list
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::allowed_ciphers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:28,1
    - Dst: Policy::allowed_signature_hashes
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan::TLS::Text_Policy::allowed_signature_hashes
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allowed_signature_hashes
    - Botan::TLS::Text_Policy::get_list
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::allowed_signature_hashes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:32,1
    - Dst: Policy::allowed_macs
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::TLS::Text_Policy::allowed_macs
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allowed_macs
    - Botan::TLS::Text_Policy::get_list
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::allowed_macs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:36,1
    - Dst: Policy::allowed_key_exchange_methods
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Text_Policy::allowed_key_exchange_methods
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_list
    - Policy::allowed_key_exchange_methods
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::allowed_key_exchange_methods()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:40,1
    - Dst: Policy::allowed_signature_methods
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::TLS::Text_Policy::allowed_signature_methods
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allowed_signature_methods
    - Botan::TLS::Text_Policy::get_list
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::allowed_signature_methods() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:44,1
    - Dst: Policy::use_ecc_point_compression
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Text_Policy::use_ecc_point_compression
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::use_ecc_point_compression
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::use_ecc_point_compression() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:48,1
    - Dst: Policy::allow_tls12
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Text_Policy::allow_tls12
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allow_tls12
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_tls12() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:52,1
    - Dst: Policy::allow_tls13
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Text_Policy::allow_tls13
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allow_tls13
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_tls13() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:56,1
    - Dst: Policy::allow_dtls12
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Text_Policy::allow_dtls12
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_dtls12
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_dtls12() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:60,1
    - Dst: Policy::allow_insecure_renegotiation
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Text_Policy::allow_insecure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_insecure_renegotiation
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_insecure_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:64,1
    - Dst: Policy::include_time_in_hello_random
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Text_Policy::include_time_in_hello_random
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::include_time_in_hello_random
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::include_time_in_hello_random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:68,1
    - Dst: Policy::require_client_certificate_authentication
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Text_Policy::require_client_certificate_authentication
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::require_client_certificate_authentication
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::require_client_certificate_authentication() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:72,1
    - Dst: Policy::allow_client_initiated_renegotiation
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::TLS::Text_Policy::allow_client_initiated_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_client_initiated_renegotiation
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_client_initiated_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:76,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:77,1
    - Dst: Policy::accepted_client_certificate_types
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:77,1
    - Dst: Botan::TLS::Text_Policy::read_cert_type_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Text_Policy::accepted_client_certificate_types
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::read_cert_type_list
    - auto::empty
    - Policy::accepted_client_certificate_types
    - Botan::TLS::Text_Policy::get_str
    linkageType: ''
    returnType: std::vector<Certificate_Type>
    signature: std::vector<Certificate_Type> Text_Policy::accepted_client_certificate_types()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:81,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:82,1
    - Dst: Policy::accepted_server_certificate_types
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:82,1
    - Dst: Botan::TLS::Text_Policy::read_cert_type_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: Botan::TLS::Text_Policy::accepted_server_certificate_types
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::read_cert_type_list
    - auto::empty
    - Botan::TLS::Text_Policy::get_str
    - Policy::accepted_server_certificate_types
    linkageType: ''
    returnType: std::vector<Certificate_Type>
    signature: std::vector<Certificate_Type> Text_Policy::accepted_server_certificate_types()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:86,1
    - Dst: Policy::allow_server_initiated_renegotiation
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Text_Policy::allow_server_initiated_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_server_initiated_renegotiation
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_server_initiated_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:90,1
    - Dst: Policy::server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Text_Policy::server_uses_own_ciphersuite_preferences
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::server_uses_own_ciphersuite_preferences
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::server_uses_own_ciphersuite_preferences() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:94,1
    - Dst: Policy::negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Text_Policy::negotiate_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::negotiate_encrypt_then_mac
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::negotiate_encrypt_then_mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:98,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:101,1
    - Dst: std::make_optional
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:102,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: Botan::TLS::Text_Policy::record_size_limit
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - std::make_optional
    - Botan::TLS::Text_Policy::get_len
    - static_cast<uint16_t>
    linkageType: ''
    returnType: std::optional<uint16_t>
    signature: std::optional<uint16_t> Text_Policy::record_size_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:106,1
    - Dst: Policy::support_cert_status_message
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: Botan::TLS::Text_Policy::support_cert_status_message
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::support_cert_status_message
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::support_cert_status_message() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:110,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:112,1
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:114,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:117,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:118,1
    - Dst: Botan::TLS::Text_Policy::read_group_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: Botan::TLS::Text_Policy::key_exchange_groups
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::key_exchange_groups
    - Botan::TLS::Text_Policy::get_str
    - std::string::empty
    - Botan::TLS::Text_Policy::read_group_list
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Text_Policy::key_exchange_groups() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:125,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:127,1
    - Dst: Botan::TLS::Text_Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:129,1
    - Dst: Botan::TLS::Text_Policy::read_group_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Text_Policy::key_exchange_groups_to_offer
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Text_Policy::key_exchange_groups_to_offer
    - Botan::TLS::Text_Policy::get_str
    - std::string::empty
    - Botan::TLS::Text_Policy::read_group_list
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Text_Policy::key_exchange_groups_to_offer()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:140,1
    - Dst: Policy::minimum_ecdh_group_size
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Text_Policy::minimum_ecdh_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::minimum_ecdh_group_size
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::minimum_ecdh_group_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:144,1
    - Dst: Policy::minimum_ecdsa_group_size
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Text_Policy::minimum_ecdsa_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::minimum_ecdsa_group_size
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::minimum_ecdsa_group_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:148,1
    - Dst: Policy::minimum_dh_group_size
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Text_Policy::minimum_dh_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::minimum_dh_group_size
    - Botan::TLS::Text_Policy::get_len
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::minimum_dh_group_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:152,1
    - Dst: Policy::minimum_rsa_bits
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Text_Policy::minimum_rsa_bits
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::minimum_rsa_bits
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::minimum_rsa_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:156,1
    - Dst: Policy::minimum_signature_strength
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: Botan::TLS::Text_Policy::minimum_signature_strength
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::minimum_signature_strength
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::minimum_signature_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:160,1
    - Dst: Policy::dtls_default_mtu
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: Botan::TLS::Text_Policy::dtls_default_mtu
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::dtls_default_mtu
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::dtls_default_mtu() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:164,1
    - Dst: Policy::dtls_initial_timeout
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Text_Policy::dtls_initial_timeout
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::dtls_initial_timeout
    - Botan::TLS::Text_Policy::get_len
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::dtls_initial_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:168,1
    - Dst: Policy::dtls_maximum_timeout
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan::TLS::Text_Policy::dtls_maximum_timeout
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::dtls_maximum_timeout
    - Botan::TLS::Text_Policy::get_len
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::dtls_maximum_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:172,1
    - Dst: Policy::require_cert_revocation_info
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Text_Policy::require_cert_revocation_info
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::require_cert_revocation_info
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::require_cert_revocation_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:176,1
    - Dst: Policy::hide_unknown_users
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Text_Policy::hide_unknown_users
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::hide_unknown_users
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::hide_unknown_users() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:180,1
    - Dst: Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: Botan::TLS::Text_Policy::maximum_session_tickets_per_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::maximum_session_tickets_per_client_hello
    - Botan::TLS::Text_Policy::get_len
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::maximum_session_tickets_per_client_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_duration
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:184,1
    - Dst: Policy::session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: Botan::TLS::Text_Policy::session_ticket_lifetime
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_duration
    - Policy::session_ticket_lifetime
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds Text_Policy::session_ticket_lifetime() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:188,1
    - Dst: Policy::reuse_session_tickets
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Botan::TLS::Text_Policy::reuse_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::reuse_session_tickets
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::reuse_session_tickets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:192,1
    - Dst: Policy::new_session_tickets_upon_handshake_success
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Botan::TLS::Text_Policy::new_session_tickets_upon_handshake_success
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::new_session_tickets_upon_handshake_success
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::new_session_tickets_upon_handshake_success() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:197,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:198,1
    - Dst: to_uint16
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: Botan::TLS::Text_Policy::srtp_profiles
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - to_uint16
    - Botan::TLS::Text_Policy::get_list
    - std::vector::push_back
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> Text_Policy::srtp_profiles() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:204,1
    - Dst: Policy::tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan::TLS::Text_Policy::tls_13_middlebox_compatibility_mode
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::tls_13_middlebox_compatibility_mode
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::tls_13_middlebox_compatibility_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:208,1
    - Dst: Policy::hash_hello_random
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: Botan::TLS::Text_Policy::hash_hello_random
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::hash_hello_random
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::hash_hello_random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' key'
    - ' value'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: Botan::TLS::Text_Policy::set
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Text_Policy::set(const std::string& key, const std::string& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:216,1
    - Dst: read_cfg
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: Botan::TLS::Text_Policy::Text_Policy
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - read_cfg
    linkageType: ''
    returnType: void
    signature: void Text_Policy::Text_Policy(std::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_cfg
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: Botan::TLS::Text_Policy::Text_Policy
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - read_cfg
    linkageType: ''
    returnType: void
    signature: void Text_Policy::Text_Policy(std::istream& in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:223,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:225,1
    - Dst: split_on
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' key'
    - ' def'
    argTypes:
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: Botan::TLS::Text_Policy::get_list
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 6
    functionsReached:
    - split_on
    - Botan::TLS::Text_Policy::get_str
    - std::string::empty
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::get_list(const std::string& key,
      const std::vector<std::string>& def) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: split_on
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:234,1
    - Dst: Botan::TLS::Group_Params::from_string
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:235,1
    - Dst: Group_Params::is_available
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:237,1
    - Dst: std::stoul
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:244,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:245,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:249,1
    - Dst: static_cast<Group_Params>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:255,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - group_str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 267
    functionName: Botan::TLS::Text_Policy::read_group_list
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 2
    functionsReached:
    - split_on
    - Botan::TLS::Group_Params::from_string
    - std::vector::push_back
    - static_cast<uint16_t>
    - size
    - Group_Params::is_available
    - static_cast<Group_Params>
    - std::stoul
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Text_Policy::read_group_list(std::string_view
      group_str) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: split_on
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:272,1
    - Dst: certificate_type_from_string
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' cert_type_names'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: Botan::TLS::Text_Policy::read_cert_type_list
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 2
    functionsReached:
    - split_on
    - certificate_type_from_string
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Certificate_Type>
    signature: std::vector<Certificate_Type> Text_Policy::read_cert_type_list(const
      std::string& cert_type_names) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:279,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:281,1
    - Dst: to_u32bit
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' key'
    - def
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: Botan::TLS::Text_Policy::get_len
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 11
    functionsReached:
    - to_u32bit
    - Botan::TLS::Text_Policy::get_str
    - std::string::empty
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::get_len(const std::string& key, size_t def) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:290,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:291,1
    - Dst: max
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:298,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:298,1
    - Dst: rep_t
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:298,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:300,1
    - Dst: std::min<ull>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:300,1
    - Dst: static_cast<rep_t>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:302,1
    - Dst: std::min<ull>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:302,1
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:302,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' key'
    - def
    argTypes:
    - std::string
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 305
    functionName: Botan::TLS::Text_Policy::get_duration
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - std::min<ull>
    - max
    - static_cast<rep_t>
    - static_cast<size_t>
    - Botan_CLI::Timer::seconds
    - rep_t
    - std::chrono::seconds::count
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds Text_Policy::get_duration(const std::string& key,
      std::chrono::seconds def) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:308,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:310,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' key'
    - def
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 321
    functionName: Botan::TLS::Text_Policy::get_bool
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 18
    functionsReached:
    - Botan::TLS::Text_Policy::get_str
    - std::string::empty
    - Decoding_Error
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::get_bool(const std::string& key, bool def) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:324,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' key'
    - ' def'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 330
    functionName: Botan::TLS::Text_Policy::get_str
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 7
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string Text_Policy::get_str(const std::string& key, const std::string&
      def) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:333,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:335,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:339,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' key'
    - val
    - overwrite
    argTypes:
    - std::string
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: Botan::TLS::Text_Policy::set_value
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::make_pair
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::set_value(const std::string& key, std::string_view
      val, bool overwrite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:20,1
    - Dst: Policy::allow_ssl_key_log_file
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: Botan::TLS::Text_Policy::allow_ssl_key_log_file
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allow_ssl_key_log_file
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_ssl_key_log_file() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:24,1
    - Dst: Policy::allowed_ciphers
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::TLS::Text_Policy::allowed_ciphers
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allowed_ciphers
    - Botan::TLS::Text_Policy::get_list
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::allowed_ciphers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:28,1
    - Dst: Policy::allowed_signature_hashes
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan::TLS::Text_Policy::allowed_signature_hashes
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allowed_signature_hashes
    - Botan::TLS::Text_Policy::get_list
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::allowed_signature_hashes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:32,1
    - Dst: Policy::allowed_macs
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::TLS::Text_Policy::allowed_macs
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allowed_macs
    - Botan::TLS::Text_Policy::get_list
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::allowed_macs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:36,1
    - Dst: Policy::allowed_key_exchange_methods
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Text_Policy::allowed_key_exchange_methods
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_list
    - Policy::allowed_key_exchange_methods
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::allowed_key_exchange_methods()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:40,1
    - Dst: Policy::allowed_signature_methods
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::TLS::Text_Policy::allowed_signature_methods
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allowed_signature_methods
    - Botan::TLS::Text_Policy::get_list
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::allowed_signature_methods() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:44,1
    - Dst: Policy::use_ecc_point_compression
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Text_Policy::use_ecc_point_compression
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::use_ecc_point_compression
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::use_ecc_point_compression() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:48,1
    - Dst: Policy::allow_tls12
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Text_Policy::allow_tls12
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allow_tls12
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_tls12() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:52,1
    - Dst: Policy::allow_tls13
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Text_Policy::allow_tls13
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allow_tls13
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_tls13() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:56,1
    - Dst: Policy::allow_dtls12
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Text_Policy::allow_dtls12
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_dtls12
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_dtls12() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:60,1
    - Dst: Policy::allow_insecure_renegotiation
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Text_Policy::allow_insecure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_insecure_renegotiation
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_insecure_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:64,1
    - Dst: Policy::include_time_in_hello_random
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Text_Policy::include_time_in_hello_random
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::include_time_in_hello_random
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::include_time_in_hello_random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:68,1
    - Dst: Policy::require_client_certificate_authentication
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Text_Policy::require_client_certificate_authentication
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::require_client_certificate_authentication
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::require_client_certificate_authentication() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:72,1
    - Dst: Policy::allow_client_initiated_renegotiation
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::TLS::Text_Policy::allow_client_initiated_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_client_initiated_renegotiation
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_client_initiated_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:76,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:77,1
    - Dst: Policy::accepted_client_certificate_types
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:77,1
    - Dst: Botan::TLS::Text_Policy::read_cert_type_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Text_Policy::accepted_client_certificate_types
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::read_cert_type_list
    - auto::empty
    - Policy::accepted_client_certificate_types
    - Botan::TLS::Text_Policy::get_str
    linkageType: ''
    returnType: std::vector<Certificate_Type>
    signature: std::vector<Certificate_Type> Text_Policy::accepted_client_certificate_types()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:81,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:82,1
    - Dst: Policy::accepted_server_certificate_types
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:82,1
    - Dst: Botan::TLS::Text_Policy::read_cert_type_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: Botan::TLS::Text_Policy::accepted_server_certificate_types
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::read_cert_type_list
    - auto::empty
    - Botan::TLS::Text_Policy::get_str
    - Policy::accepted_server_certificate_types
    linkageType: ''
    returnType: std::vector<Certificate_Type>
    signature: std::vector<Certificate_Type> Text_Policy::accepted_server_certificate_types()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:86,1
    - Dst: Policy::allow_server_initiated_renegotiation
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Text_Policy::allow_server_initiated_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_server_initiated_renegotiation
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::allow_server_initiated_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:90,1
    - Dst: Policy::server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Text_Policy::server_uses_own_ciphersuite_preferences
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::server_uses_own_ciphersuite_preferences
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::server_uses_own_ciphersuite_preferences() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:94,1
    - Dst: Policy::negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Text_Policy::negotiate_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::negotiate_encrypt_then_mac
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::negotiate_encrypt_then_mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:98,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:101,1
    - Dst: std::make_optional
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:102,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: Botan::TLS::Text_Policy::record_size_limit
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - std::make_optional
    - Botan::TLS::Text_Policy::get_len
    - static_cast<uint16_t>
    linkageType: ''
    returnType: std::optional<uint16_t>
    signature: std::optional<uint16_t> Text_Policy::record_size_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:106,1
    - Dst: Policy::support_cert_status_message
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: Botan::TLS::Text_Policy::support_cert_status_message
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::support_cert_status_message
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::support_cert_status_message() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:110,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:112,1
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:114,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:117,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:118,1
    - Dst: Botan::TLS::Text_Policy::read_group_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: Botan::TLS::Text_Policy::key_exchange_groups
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::key_exchange_groups
    - Botan::TLS::Text_Policy::get_str
    - std::string::empty
    - Botan::TLS::Text_Policy::read_group_list
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Text_Policy::key_exchange_groups() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:125,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:127,1
    - Dst: Botan::TLS::Text_Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:129,1
    - Dst: Botan::TLS::Text_Policy::read_group_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Text_Policy::key_exchange_groups_to_offer
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Text_Policy::key_exchange_groups_to_offer
    - Botan::TLS::Text_Policy::get_str
    - std::string::empty
    - Botan::TLS::Text_Policy::read_group_list
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Text_Policy::key_exchange_groups_to_offer()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:140,1
    - Dst: Policy::minimum_ecdh_group_size
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Text_Policy::minimum_ecdh_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::minimum_ecdh_group_size
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::minimum_ecdh_group_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:144,1
    - Dst: Policy::minimum_ecdsa_group_size
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Text_Policy::minimum_ecdsa_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::minimum_ecdsa_group_size
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::minimum_ecdsa_group_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:148,1
    - Dst: Policy::minimum_dh_group_size
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Text_Policy::minimum_dh_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::minimum_dh_group_size
    - Botan::TLS::Text_Policy::get_len
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::minimum_dh_group_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:152,1
    - Dst: Policy::minimum_rsa_bits
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Text_Policy::minimum_rsa_bits
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::minimum_rsa_bits
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::minimum_rsa_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:156,1
    - Dst: Policy::minimum_signature_strength
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: Botan::TLS::Text_Policy::minimum_signature_strength
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::minimum_signature_strength
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::minimum_signature_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:160,1
    - Dst: Policy::dtls_default_mtu
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: Botan::TLS::Text_Policy::dtls_default_mtu
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::dtls_default_mtu
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::dtls_default_mtu() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:164,1
    - Dst: Policy::dtls_initial_timeout
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Text_Policy::dtls_initial_timeout
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::dtls_initial_timeout
    - Botan::TLS::Text_Policy::get_len
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::dtls_initial_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:168,1
    - Dst: Policy::dtls_maximum_timeout
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan::TLS::Text_Policy::dtls_maximum_timeout
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::dtls_maximum_timeout
    - Botan::TLS::Text_Policy::get_len
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::dtls_maximum_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:172,1
    - Dst: Policy::require_cert_revocation_info
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Text_Policy::require_cert_revocation_info
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::require_cert_revocation_info
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::require_cert_revocation_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:176,1
    - Dst: Policy::hide_unknown_users
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Text_Policy::hide_unknown_users
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::hide_unknown_users
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::hide_unknown_users() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:180,1
    - Dst: Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: Botan::TLS::Text_Policy::maximum_session_tickets_per_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::maximum_session_tickets_per_client_hello
    - Botan::TLS::Text_Policy::get_len
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::maximum_session_tickets_per_client_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_duration
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:184,1
    - Dst: Policy::session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: Botan::TLS::Text_Policy::session_ticket_lifetime
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_duration
    - Policy::session_ticket_lifetime
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds Text_Policy::session_ticket_lifetime() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:188,1
    - Dst: Policy::reuse_session_tickets
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Botan::TLS::Text_Policy::reuse_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::reuse_session_tickets
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::reuse_session_tickets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:192,1
    - Dst: Policy::new_session_tickets_upon_handshake_success
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Botan::TLS::Text_Policy::new_session_tickets_upon_handshake_success
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - Policy::new_session_tickets_upon_handshake_success
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::new_session_tickets_upon_handshake_success() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_list
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:197,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:197,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:198,1
    - Dst: to_uint16
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: Botan::TLS::Text_Policy::srtp_profiles
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - to_uint16
    - Botan::TLS::Text_Policy::get_list
    - std::vector::push_back
    - std::vector<std::string>
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> Text_Policy::srtp_profiles() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:204,1
    - Dst: Policy::tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan::TLS::Text_Policy::tls_13_middlebox_compatibility_mode
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::tls_13_middlebox_compatibility_mode
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::tls_13_middlebox_compatibility_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_bool
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:208,1
    - Dst: Policy::hash_hello_random
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: Botan::TLS::Text_Policy::hash_hello_random
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::hash_hello_random
    - Botan::TLS::Text_Policy::get_bool
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::hash_hello_random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' key'
    - ' value'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: Botan::TLS::Text_Policy::set
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Text_Policy::set(const std::string& key, const std::string& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:216,1
    - Dst: read_cfg
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: Botan::TLS::Text_Policy::Text_Policy
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - read_cfg
    linkageType: ''
    returnType: void
    signature: void Text_Policy::Text_Policy(std::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_cfg
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: Botan::TLS::Text_Policy::Text_Policy
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - read_cfg
    linkageType: ''
    returnType: void
    signature: void Text_Policy::Text_Policy(std::istream& in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:223,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:225,1
    - Dst: split_on
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' key'
    - ' def'
    argTypes:
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: Botan::TLS::Text_Policy::get_list
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 12
    functionsReached:
    - split_on
    - Botan::TLS::Text_Policy::get_str
    - std::string::empty
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Text_Policy::get_list(const std::string& key,
      const std::vector<std::string>& def) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: split_on
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:234,1
    - Dst: Botan::TLS::Group_Params::from_string
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:235,1
    - Dst: Group_Params::is_available
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:237,1
    - Dst: std::stoul
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:244,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:245,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:249,1
    - Dst: static_cast<Group_Params>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:255,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - group_str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 267
    functionName: Botan::TLS::Text_Policy::read_group_list
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 4
    functionsReached:
    - split_on
    - Botan::TLS::Group_Params::from_string
    - std::vector::push_back
    - static_cast<uint16_t>
    - size
    - Group_Params::is_available
    - static_cast<Group_Params>
    - std::stoul
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Text_Policy::read_group_list(std::string_view
      group_str) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: split_on
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:272,1
    - Dst: certificate_type_from_string
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' cert_type_names'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: Botan::TLS::Text_Policy::read_cert_type_list
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 4
    functionsReached:
    - split_on
    - certificate_type_from_string
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Certificate_Type>
    signature: std::vector<Certificate_Type> Text_Policy::read_cert_type_list(const
      std::string& cert_type_names) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:279,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:281,1
    - Dst: to_u32bit
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' key'
    - def
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: Botan::TLS::Text_Policy::get_len
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 23
    functionsReached:
    - to_u32bit
    - Botan::TLS::Text_Policy::get_str
    - std::string::empty
    linkageType: ''
    returnType: size_t
    signature: size_t Text_Policy::get_len(const std::string& key, size_t def) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:290,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:291,1
    - Dst: max
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:298,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:298,1
    - Dst: rep_t
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:298,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:300,1
    - Dst: std::min<ull>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:300,1
    - Dst: static_cast<rep_t>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:302,1
    - Dst: std::min<ull>
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:302,1
    - Dst: Botan::TLS::Text_Policy::get_len
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:302,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' key'
    - def
    argTypes:
    - std::string
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 305
    functionName: Botan::TLS::Text_Policy::get_duration
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Text_Policy::get_len
    - std::min<ull>
    - max
    - static_cast<rep_t>
    - static_cast<size_t>
    - Botan_CLI::Timer::seconds
    - rep_t
    - std::chrono::seconds::count
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds Text_Policy::get_duration(const std::string& key,
      std::chrono::seconds def) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Text_Policy::get_str
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:308,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:310,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' key'
    - def
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 321
    functionName: Botan::TLS::Text_Policy::get_bool
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 36
    functionsReached:
    - Botan::TLS::Text_Policy::get_str
    - std::string::empty
    - Decoding_Error
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::get_bool(const std::string& key, bool def) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:324,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' key'
    - ' def'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 330
    functionName: Botan::TLS::Text_Policy::get_str
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 14
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: std::string
    signature: std::string Text_Policy::get_str(const std::string& key, const std::string&
      def) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:333,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:335,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:339,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls_text_policy.cpp:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' key'
    - val
    - overwrite
    argTypes:
    - std::string
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: Botan::TLS::Text_Policy::set_value
    functionSourceFile: /src/botan/src/lib/tls/tls_text_policy.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::make_pair
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool Text_Policy::set_value(const std::string& key, std::string_view
      val, bool overwrite)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: Botan::Credentials_Manager::psk_identity_hint
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Credentials_Manager::psk_identity_hint(const std::string&
      /*unused*/, const std::string& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: Botan::Credentials_Manager::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string Credentials_Manager::psk_identity(const std::string& /*unused*/,\n
      \                                             const std::string& /*unused*/,\n
      \                                             const std::string& /*unused*/)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:36,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:36,1
    - Dst: Botan::Credentials_Manager::session_ticket_key
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:46,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:46,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:47,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:47,1
    - Dst: Botan::Credentials_Manager::dtls_cookie_secret
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:50,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:50,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:51,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:51,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:56,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:56,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:57,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:57,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:61,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:61,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - ' type'
    - ' context'
    - ' identity'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 62
    functionName: Botan::Credentials_Manager::psk
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan::Credentials_Manager::dtls_cookie_secret
    - auto::size
    - Botan::Credentials_Manager::session_ticket_key
    - SymmetricKey
    - std::move
    - auto::empty
    - Botan::Credentials_Manager::find_preshared_keys
    - Internal_Error
    - fmt
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey Credentials_Manager::psk(const std::string& type,\n                                      const
      std::string& context,\n                                      const std::string&
      identity)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: Botan::Credentials_Manager::find_preshared_keys
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TLS::ExternalPSK>
    signature: "std::vector<TLS::ExternalPSK> Credentials_Manager::find_preshared_keys(std::string_view
      /* host */,\n                                                                       TLS::Connection_Side
      /* whoami */,\n                                                                       const
      std::vector<std::string>& /* identities */,\n                                                                       const
      std::optional<std::string>& /* prf */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:75,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:76,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:79,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - host
    - whoami
    - ' identities'
    - ' prf'
    argTypes:
    - std::string_view
    - TLS::Connection_Side
    - std::vector<std::string>
    - std::optional<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: Botan::Credentials_Manager::choose_preshared_key
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::Credentials_Manager::find_preshared_keys
    - auto::empty
    - auto::front
    linkageType: ''
    returnType: std::optional<TLS::ExternalPSK>
    signature: "std::optional<TLS::ExternalPSK> Credentials_Manager::choose_preshared_key(std::string_view
      host,\n                                                                          TLS::Connection_Side
      whoami,\n                                                                          const
      std::vector<std::string>& identities,\n                                                                          const
      std::optional<std::string>& prf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Credentials_Manager::cert_chain
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' key_types'
    - ' cert_signature_schemes'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::vector<AlgorithmIdentifier>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: Botan::Credentials_Manager::find_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::Credentials_Manager::cert_chain
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: "std::vector<X509_Certificate> Credentials_Manager::find_cert_chain(\n
      \  const std::vector<std::string>& key_types,\n   const std::vector<AlgorithmIdentifier>&
      cert_signature_schemes,\n   const std::vector<X509_DN>& /*unused*/,\n   const
      std::string& type,\n   const std::string& context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: Botan::Credentials_Manager::find_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Public_Key>
    signature: "std::shared_ptr<Public_Key> Credentials_Manager::find_raw_public_key(const
      std::vector<std::string>& /* key_types */,\n                                                                     const
      std::string& /* type */,\n                                                                     const
      std::string& /* context */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::Credentials_Manager::cert_chain
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 1
    functionsReached:
    - std::vector<X509_Certificate>
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: "std::vector<X509_Certificate> Credentials_Manager::cert_chain(const
      std::vector<std::string>& /*unused*/,\n                                                              const
      std::vector<AlgorithmIdentifier>& /*unused*/,\n                                                              const
      std::string& /*unused*/,\n                                                              const
      std::string& /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Credentials_Manager::find_cert_chain
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:110,1
    - Dst: std::vector<X509_DN>
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' cert_key_type'
    - ' cert_signature_schemes'
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::vector<AlgorithmIdentifier>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan::Credentials_Manager::cert_chain_single_type
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::Credentials_Manager::find_cert_chain
    - std::vector<X509_DN>
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: "std::vector<X509_Certificate> Credentials_Manager::cert_chain_single_type(\n
      \  const std::string& cert_key_type,\n   const std::vector<AlgorithmIdentifier>&
      cert_signature_schemes,\n   const std::string& type,\n   const std::string&
      context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: Botan::Credentials_Manager::private_key_for
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Private_Key>
    signature: "std::shared_ptr<Private_Key> Credentials_Manager::private_key_for(const
      X509_Certificate& /*unused*/,\n                                                                  const
      std::string& /*unused*/,\n                                                                  const
      std::string& /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: Botan::Credentials_Manager::private_key_for
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Private_Key>
    signature: "std::shared_ptr<Private_Key> Credentials_Manager::private_key_for(const
      Public_Key& /* raw_public_key */,\n                                                                  const
      std::string& /* type */,\n                                                                  const
      std::string& /* context */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: Botan::Credentials_Manager::session_ticket_key
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Credentials_Manager::session_ticket_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Botan::Credentials_Manager::dtls_cookie_secret
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Credentials_Manager::dtls_cookie_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<Certificate_Store*>
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: Botan::Credentials_Manager::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - std::vector<Certificate_Store*>
    linkageType: ''
    returnType: std::vector<Certificate_Store*>
    signature: "std::vector<Certificate_Store*> Credentials_Manager::trusted_certificate_authorities(const
      std::string& /*unused*/,\n                                                                                     const
      std::string& /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: Botan::Credentials_Manager::psk_identity_hint
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Credentials_Manager::psk_identity_hint(const std::string&
      /*unused*/, const std::string& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: Botan::Credentials_Manager::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string Credentials_Manager::psk_identity(const std::string& /*unused*/,\n
      \                                             const std::string& /*unused*/,\n
      \                                             const std::string& /*unused*/)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:36,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:36,1
    - Dst: Botan::Credentials_Manager::session_ticket_key
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:46,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:46,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:47,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:47,1
    - Dst: Botan::Credentials_Manager::dtls_cookie_secret
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:50,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:50,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:51,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:51,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:56,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:56,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:57,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:57,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:61,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:61,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - ' type'
    - ' context'
    - ' identity'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 62
    functionName: Botan::Credentials_Manager::psk
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan::Credentials_Manager::dtls_cookie_secret
    - auto::size
    - Botan::Credentials_Manager::session_ticket_key
    - SymmetricKey
    - std::move
    - auto::empty
    - Botan::Credentials_Manager::find_preshared_keys
    - Internal_Error
    - fmt
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey Credentials_Manager::psk(const std::string& type,\n                                      const
      std::string& context,\n                                      const std::string&
      identity)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: Botan::Credentials_Manager::find_preshared_keys
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: std::vector<TLS::ExternalPSK>
    signature: "std::vector<TLS::ExternalPSK> Credentials_Manager::find_preshared_keys(std::string_view
      /* host */,\n                                                                       TLS::Connection_Side
      /* whoami */,\n                                                                       const
      std::vector<std::string>& /* identities */,\n                                                                       const
      std::optional<std::string>& /* prf */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:75,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:76,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:79,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - host
    - whoami
    - ' identities'
    - ' prf'
    argTypes:
    - std::string_view
    - TLS::Connection_Side
    - std::vector<std::string>
    - std::optional<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: Botan::Credentials_Manager::choose_preshared_key
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::Credentials_Manager::find_preshared_keys
    - auto::empty
    - auto::front
    linkageType: ''
    returnType: std::optional<TLS::ExternalPSK>
    signature: "std::optional<TLS::ExternalPSK> Credentials_Manager::choose_preshared_key(std::string_view
      host,\n                                                                          TLS::Connection_Side
      whoami,\n                                                                          const
      std::vector<std::string>& identities,\n                                                                          const
      std::optional<std::string>& prf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Credentials_Manager::cert_chain
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' key_types'
    - ' cert_signature_schemes'
    - ' type'
    - ' context'
    argTypes:
    - std::vector<std::string>
    - std::vector<AlgorithmIdentifier>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: Botan::Credentials_Manager::find_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 1
    functionsReached:
    - Botan::Credentials_Manager::cert_chain
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: "std::vector<X509_Certificate> Credentials_Manager::find_cert_chain(\n
      \  const std::vector<std::string>& key_types,\n   const std::vector<AlgorithmIdentifier>&
      cert_signature_schemes,\n   const std::vector<X509_DN>& /*unused*/,\n   const
      std::string& type,\n   const std::string& context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: Botan::Credentials_Manager::find_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Public_Key>
    signature: "std::shared_ptr<Public_Key> Credentials_Manager::find_raw_public_key(const
      std::vector<std::string>& /* key_types */,\n                                                                     const
      std::string& /* type */,\n                                                                     const
      std::string& /* context */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::Credentials_Manager::cert_chain
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 2
    functionsReached:
    - std::vector<X509_Certificate>
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: "std::vector<X509_Certificate> Credentials_Manager::cert_chain(const
      std::vector<std::string>& /*unused*/,\n                                                              const
      std::vector<AlgorithmIdentifier>& /*unused*/,\n                                                              const
      std::string& /*unused*/,\n                                                              const
      std::string& /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Credentials_Manager::find_cert_chain
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:110,1
    - Dst: std::vector<X509_DN>
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' cert_key_type'
    - ' cert_signature_schemes'
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::vector<AlgorithmIdentifier>
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan::Credentials_Manager::cert_chain_single_type
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::Credentials_Manager::find_cert_chain
    - std::vector<X509_DN>
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: "std::vector<X509_Certificate> Credentials_Manager::cert_chain_single_type(\n
      \  const std::string& cert_key_type,\n   const std::vector<AlgorithmIdentifier>&
      cert_signature_schemes,\n   const std::string& type,\n   const std::string&
      context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: Botan::Credentials_Manager::private_key_for
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Private_Key>
    signature: "std::shared_ptr<Private_Key> Credentials_Manager::private_key_for(const
      X509_Certificate& /*unused*/,\n                                                                  const
      std::string& /*unused*/,\n                                                                  const
      std::string& /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: Botan::Credentials_Manager::private_key_for
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<Private_Key>
    signature: "std::shared_ptr<Private_Key> Credentials_Manager::private_key_for(const
      Public_Key& /* raw_public_key */,\n                                                                  const
      std::string& /* type */,\n                                                                  const
      std::string& /* context */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: Botan::Credentials_Manager::session_ticket_key
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Credentials_Manager::session_ticket_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Botan::Credentials_Manager::dtls_cookie_secret
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Credentials_Manager::dtls_cookie_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<Certificate_Store*>
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: Botan::Credentials_Manager::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - std::vector<Certificate_Store*>
    linkageType: ''
    returnType: std::vector<Certificate_Store*>
    signature: "std::vector<Certificate_Store*> Credentials_Manager::trusted_certificate_authorities(const
      std::string& /*unused*/,\n                                                                                     const
      std::string& /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_session.cpp:35,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:39,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:39,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:40,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:40,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:43,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:43,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:44,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:44,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session.cpp:44,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:50,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:50,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:51,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:51,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Session_Handle::validate_constraints
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - size
    - std::visit
    - Botan_Tests::random_bit_generator::max
    - empty
    linkageType: ''
    returnType: void
    signature: void Session_Handle::validate_constraints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Opaque_Session_Handle
      Src: /src/botan/src/lib/tls/tls_session.cpp:60,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_session.cpp:60,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Session_Handle::opaque_handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::visit
    - Opaque_Session_Handle
    - get
    linkageType: ''
    returnType: Opaque_Session_Handle
    signature: Opaque_Session_Handle Session_Handle::opaque_handle() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:64,1
    - Dst: std::get<Session_ID>
      Src: /src/botan/src/lib/tls/tls_session.cpp:65,1
    - Dst: is_opaque_handle
      Src: /src/botan/src/lib/tls/tls_session.cpp:69,1
    - Dst: std::get<Opaque_Session_Handle>
      Src: /src/botan/src/lib/tls/tls_session.cpp:70,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:71,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls_session.cpp:72,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: Botan::TLS::Session_Handle::id
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::get<Session_ID>
    - is_opaque_handle
    - Session_ID
    - get
    - is_id
    - size
    - std::get<Opaque_Session_Handle>
    linkageType: ''
    returnType: std::optional<Session_ID>
    signature: std::optional<Session_ID> Session_Handle::id() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_ticket
      Src: /src/botan/src/lib/tls/tls_session.cpp:80,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/lib/tls/tls_session.cpp:81,1
    - Dst: is_opaque_handle
      Src: /src/botan/src/lib/tls/tls_session.cpp:85,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/tls_session.cpp:86,1
    - Dst: std::get<Opaque_Session_Handle>
      Src: /src/botan/src/lib/tls/tls_session.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: Botan::TLS::Session_Handle::ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - is_opaque_handle
    - std::get<Session_Ticket>
    - is_ticket
    - Session_Ticket
    - std::get<Opaque_Session_Handle>
    linkageType: ''
    returnType: std::optional<Session_Ticket>
    signature: std::optional<Session_Ticket> Session_Handle::ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Session_Base::Session_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Base::Session_Base()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Session_Base::~Session_Base()
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Base::~Session_Base()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Session_Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Session_Base::Session_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Base::Session_Base(const Session_Base& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Session_Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::TLS::Session_Base::Session_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Base::Session_Base(Session_Base&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 10
    argNames:
    - start_time
    - version
    - ciphersuite
    - connection_side
    - srtp_profile
    - extended_master_secret
    - encrypt_then_mac
    - ' peer_certs'
    - peer_raw_public_key
    - server_info
    argTypes:
    - std::chrono::system_clock::time_point
    - Protocol_Version
    - uint16_t
    - Connection_Side
    - uint16_t
    - bool
    - bool
    - std::vector<X509_Certificate>
    - std::shared_ptr<const Public_Key>
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 121
    functionName: Botan::TLS::Session_Base::Session_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Session_Base::Session_Base(std::chrono::system_clock::time_point
      start_time,\n                           Protocol_Version version,\n                           uint16_t
      ciphersuite,\n                           Connection_Side connection_side,\n
      \                          uint16_t srtp_profile,\n                           bool
      extended_master_secret,\n                           bool encrypt_then_mac,\n
      \                          const std::vector<X509_Certificate>& peer_certs,\n
      \                          std::shared_ptr<const Public_Key> peer_raw_public_key,\n
      \                          Server_Information server_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:124,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:125,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:126,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:126,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: Botan::TLS::Session_Base::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - Decoding_Error
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - auto::value
    linkageType: ''
    returnType: Ciphersuite
    signature: Ciphersuite Session_Base::ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:134,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:135,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session.cpp:135,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:137,1
    - Dst: auto::kex_algo
      Src: /src/botan/src/lib/tls/tls_session.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' base'
    - was_resumption
    - psk_identity
    argTypes:
    - Session_Base
    - bool
    - std::optional<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Session_Summary::Session_Summary
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite
    - std::move
    - version
    - auto::kex_algo
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: "void Session_Summary::Session_Summary(const Session_Base& base,\n
      \                                bool was_resumption,\n                                 std::optional<std::string>
      psk_identity)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:147,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:148,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:150,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:151,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:151,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:152,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:153,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:154,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:155,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:159,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:161,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:161,1
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:162,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:163,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:165,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:166,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:166,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:167,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:168,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:169,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:170,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:175,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 2
    argNames:
    - psk
    - group
    argTypes:
    - bool
    - std::optional<Named_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 176
    functionName: Botan::TLS::tls13_kex_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::optional<Named_Group>::is_pure_frodokem
    - Botan::TLS::kex_method_to_string
    - std::optional<Named_Group>::to_string
    - std::optional<Named_Group>::is_x25519
    - std::optional<Named_Group>::is_pure_ml_kem
    - std::optional<Named_Group>::is_pqc_hybrid
    - std::optional<Named_Group>::is_dh_named_group
    - std::optional<Named_Group>::is_x448
    - std::optional<Named_Group>::is_ecdh_named_curve
    - BOTAN_ASSERT_NOMSG
    - std::optional<Named_Group>::has_value
    linkageType: ''
    returnType: std::string
    signature: std::string tls13_kex_to_string(bool psk, std::optional<Named_Group>
      group)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:147,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:148,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:150,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:151,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:151,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:152,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:153,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:154,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:155,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:159,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:161,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:161,1
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:162,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:163,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:165,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:166,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:166,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:167,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:168,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:169,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:170,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:175,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 2
    argNames:
    - psk
    - group
    argTypes:
    - bool
    - std::optional<Named_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 176
    functionName: Botan::TLS::tls13_kex_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::optional<Named_Group>::is_pure_frodokem
    - Botan::TLS::kex_method_to_string
    - std::optional<Named_Group>::to_string
    - std::optional<Named_Group>::is_x25519
    - std::optional<Named_Group>::is_pure_ml_kem
    - std::optional<Named_Group>::is_pqc_hybrid
    - std::optional<Named_Group>::is_dh_named_group
    - std::optional<Named_Group>::is_x448
    - std::optional<Named_Group>::is_ecdh_named_curve
    - BOTAN_ASSERT_NOMSG
    - std::optional<Named_Group>::has_value
    linkageType: ''
    returnType: std::string
    signature: std::string tls13_kex_to_string(bool psk, std::optional<Named_Group>
      group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:189,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:206,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:207,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:208,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:210,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session.cpp:210,1
    - Dst: set_session_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:211,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:211,1
    - Dst: psk_used
      Src: /src/botan/src/lib/tls/tls_session.cpp:217,1
    - Dst: was_resumption
      Src: /src/botan/src/lib/tls/tls_session.cpp:217,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls_session.cpp:218,1
    - Dst: auto*::selected_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:219,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls_session.cpp:224,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session.cpp:225,1
    - Dst: auto*::selected_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:226,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:230,1
    - Dst: std::optional::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:231,1
    - Dst: tls13_kex_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:234,1
    - Dst: psk_used
      Src: /src/botan/src/lib/tls/tls_session.cpp:234,1
    - Dst: was_resumption
      Src: /src/botan/src/lib/tls/tls_session.cpp:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 8
    argNames:
    - ' server_hello'
    - side
    - ' peer_certs'
    - peer_raw_public_key
    - psk_identity
    - session_was_resumed
    - server_info
    - current_timestamp
    argTypes:
    - Server_Hello_13
    - Connection_Side
    - std::vector<X509_Certificate>
    - std::shared_ptr<const Public_Key>
    - std::optional<std::string>
    - bool
    - Server_Information
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 235
    functionName: Botan::TLS::Session_Summary::Session_Summary
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::optional::to_string
    - psk_used
    - ciphersuite
    - extensions
    - auto*::selected_group
    - std::move
    - version
    - was_resumption
    - BOTAN_ARG_CHECK
    - tls13_kex_to_string
    - BOTAN_ASSERT_NONNULL
    - set_session_id
    - selected_version
    - session_id
    - std::optional::has_value
    linkageType: ''
    returnType: void
    signature: "void Session_Summary::Session_Summary(const Server_Hello_13& server_hello,\n
      \                                Connection_Side side,\n                                 const
      std::vector<X509_Certificate>& peer_certs,\n                                 std::shared_ptr<const
      Public_Key> peer_raw_public_key,\n                                 std::optional<std::string>
      psk_identity,\n                                 bool session_was_resumed,\n
      \                                Server_Information server_info,\n                                 std::chrono::system_clock::time_point
      current_timestamp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:265,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - ' master_secret'
    - version
    - ciphersuite
    - side
    - extended_master_secret
    - encrypt_then_mac
    - ' certs'
    - ' server_info'
    - srtp_profile
    - current_timestamp
    - lifetime_hint
    argTypes:
    - secure_vector<uint8_t>
    - Protocol_Version
    - uint16_t
    - Connection_Side
    - bool
    - bool
    - std::vector<X509_Certificate>
    - Server_Information
    - uint16_t
    - std::chrono::system_clock::time_point
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 266
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::is_pre_tls_13
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: "void Session::Session(const secure_vector<uint8_t>& master_secret,\n
      \                Protocol_Version version,\n                 uint16_t ciphersuite,\n
      \                Connection_Side side,\n                 bool extended_master_secret,\n
      \                bool encrypt_then_mac,\n                 const std::vector<X509_Certificate>&
      certs,\n                 const Server_Information& server_info,\n                 uint16_t
      srtp_profile,\n                 std::chrono::system_clock::time_point current_timestamp,\n
      \                std::chrono::seconds lifetime_hint)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:299,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:302,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session.cpp:303,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:306,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - ' session_psk'
    - ' max_early_data_bytes'
    - ticket_age_add
    - lifetime_hint
    - version
    - ciphersuite
    - side
    - ' peer_certs'
    - peer_raw_public_key
    - ' server_info'
    - current_timestamp
    argTypes:
    - secure_vector<uint8_t>
    - std::optional<uint32_t>
    - uint32_t
    - std::chrono::seconds
    - Protocol_Version
    - uint16_t
    - Connection_Side
    - std::vector<X509_Certificate>
    - std::shared_ptr<const Public_Key>
    - Server_Information
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 307
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - value_or
    - std::move
    - Protocol_Version::is_pre_tls_13
    - BOTAN_ARG_CHECK
    - has_value
    linkageType: ''
    returnType: void
    signature: "void Session::Session(const secure_vector<uint8_t>& session_psk,\n
      \                const std::optional<uint32_t>& max_early_data_bytes,\n                 uint32_t
      ticket_age_add,\n                 std::chrono::seconds lifetime_hint,\n                 Protocol_Version
      version,\n                 uint16_t ciphersuite,\n                 Connection_Side
      side,\n                 const std::vector<X509_Certificate>& peer_certs,\n                 std::shared_ptr<const
      Public_Key> peer_raw_public_key,\n                 const Server_Information&
      server_info,\n                 std::chrono::system_clock::time_point current_timestamp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_session.cpp:318,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:319,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:320,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:326,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls_session.cpp:327,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_session.cpp:327,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:328,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:329,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session.cpp:330,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls_session.cpp:331,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:331,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:333,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 9
    argNames:
    - ' session_psk'
    - ' max_early_data_bytes'
    - lifetime_hint
    - ' peer_certs'
    - peer_raw_public_key
    - ' client_hello'
    - ' server_hello'
    - ' callbacks'
    - ' rng'
    argTypes:
    - secure_vector<uint8_t>
    - std::optional<uint32_t>
    - std::chrono::seconds
    - std::vector<X509_Certificate>
    - std::shared_ptr<const Public_Key>
    - Client_Hello_13
    - Server_Hello_13
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 335
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - value_or
    - ciphersuite
    - random_vec
    - tls_current_timestamp
    - std::move
    - load_be
    - sni_hostname
    - BOTAN_ARG_CHECK
    - is_pre_tls_13
    - Server_Information
    - has_value
    - selected_version
    linkageType: ''
    returnType: void
    signature: "void Session::Session(secure_vector<uint8_t>&& session_psk,\n                 const
      std::optional<uint32_t>& max_early_data_bytes,\n                 std::chrono::seconds
      lifetime_hint,\n                 const std::vector<X509_Certificate>& peer_certs,\n
      \                std::shared_ptr<const Public_Key> peer_raw_public_key,\n                 const
      Client_Hello_13& client_hello,\n                 const Server_Hello_13& server_hello,\n
      \                Callbacks& callbacks,\n                 RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/tls/tls_session.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Botan::PEM_Code::decode_check_label
    linkageType: ''
    returnType: void
    signature: void Session::Session(std::string_view pem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/tls/tls_session.cpp:358,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:358,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls_session.cpp:358,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:382,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:383,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:386,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_session.cpp:390,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/lib/tls/tls_session.cpp:391,1
    - Dst: static_cast<Connection_Side>
      Src: /src/botan/src/lib/tls/tls_session.cpp:392,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:393,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls_session.cpp:396,1
    - Dst: ASN1_String::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:396,1
    - Dst: ASN1_String::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:396,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:396,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:398,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:399,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/tls_session.cpp:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ber_data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 403
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - ASN1_String::value
    - BER_Decoder
    - std::to_string
    - Decoding_Error
    - Protocol_Version
    - std::chrono::system_clock::from_time_t
    - static_cast<Connection_Side>
    - static_cast<uint16_t>
    - Botan_CLI::Timer::seconds
    - Botan::TLS::Ciphersuite::by_id
    - Server_Information
    - Botan::X509::load_key
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void Session::Session(std::span<const uint8_t> ber_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:407,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/tls/tls_session.cpp:409,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:412,1
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/lib/tls/tls_session.cpp:412,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:413,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:413,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:414,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:414,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:415,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:416,1
    - Dst: ASN1_String
      Src: /src/botan/src/lib/tls/tls_session.cpp:424,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls_session.cpp:424,1
    - Dst: ASN1_String
      Src: /src/botan/src/lib/tls/tls_session.cpp:425,1
    - Dst: service
      Src: /src/botan/src/lib/tls/tls_session.cpp:425,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:426,1
    - Dst: port
      Src: /src/botan/src/lib/tls/tls_session.cpp:426,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:427,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:431,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:432,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:433,1
    - Dst: count
      Src: /src/botan/src/lib/tls/tls_session.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 436
    functionName: Botan::TLS::Session::DER_encode
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 4
    functionsReached:
    - major_version
    - port
    - subject_public_key
    - count
    - DER_Encoder
    - static_cast<size_t>
    - hostname
    - service
    - std::chrono::system_clock::to_time_t
    - minor_version
    - ASN1_String
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Session::DER_encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/tls/tls_session.cpp:439,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/lib/tls/tls_session.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: Botan::TLS::Session::PEM_encode
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Session::DER_encode
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string Session::PEM_encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:443,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:443,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls_session.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: Botan::TLS::Session::extract_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Session::extract_master_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:469,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:470,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:473,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:474,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:475,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/tls/tls_session.cpp:476,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:481,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:482,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:484,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:485,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/lib/tls/tls_session.cpp:487,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_session.cpp:491,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/tls_session.cpp:491,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/tls/tls_session.cpp:492,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls_session.cpp:493,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:498,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:499,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:499,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:500,1
    - Dst: auto::tag_size
      Src: /src/botan/src/lib/tls/tls_session.cpp:500,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:501,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/tls/tls_session.cpp:502,1
    - Dst: auto::start
      Src: /src/botan/src/lib/tls/tls_session.cpp:503,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/tls/tls_session.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - ' key'
    - ' rng'
    argTypes:
    - SymmetricKey
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 509
    functionName: Botan::TLS::Session::encrypt
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Session::DER_encode
    - random_vec
    - auto::final
    - store_be
    - auto::start
    - auto::update
    - auto::finish
    - BOTAN_ASSERT_NOMSG
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_associated_data
    - std::vector::resize
    - auto::tag_size
    - auto::valid_nonce_length
    - auto::set_key
    - auto::output_length
    - secure_vector::size
    - std::vector::data
    - std::vector::reserve
    - Botan::AEAD_Mode::create_or_throw
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Session::encrypt(const SymmetricKey& key, RandomNumberGenerator&
      rng) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls_session.cpp:514,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:515,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:519,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:520,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:521,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:522,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/tls/tls_session.cpp:523,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/tls/tls_session.cpp:523,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls_session.cpp:525,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:526,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:529,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:530,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:533,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:534,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:535,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:535,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls_session.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:537,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:538,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:541,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:542,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:544,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:545,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/tls/tls_session.cpp:546,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:546,1
    - Dst: auto::start
      Src: /src/botan/src/lib/tls/tls_session.cpp:547,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/tls/tls_session.cpp:548,1
    - Dst: Botan::TLS::Session::Session
      Src: /src/botan/src/lib/tls/tls_session.cpp:549,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:551,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_session.cpp:551,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_session.cpp:551,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - in
    - ' key'
    argTypes:
    - std::span<const uint8_t>
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 553
    functionName: Botan::TLS::Session::decrypt
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 4
    functionsReached:
    - std::string
    - Botan::TLS::Session::Session
    - Botan::CT::is_equal
    - auto::final
    - BufferSlicer::copy_as_secure_vector
    - auto::start
    - auto::update
    - auto::finish
    - std::span<const uint8_t>::data
    - BufferSlicer::take
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_associated_data
    - load_be
    - what
    - auto::set_key
    - Decoding_Error
    - auto::output_length
    - std::vector::data
    - BufferSlicer::remaining
    - Botan::AEAD_Mode::create_or_throw
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Session
    signature: Session Session::decrypt(std::span<const uint8_t> in, const SymmetricKey&
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_session.cpp:35,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:39,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:39,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:40,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:40,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:43,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:43,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:44,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:44,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session.cpp:44,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:50,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:50,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:51,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:51,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Session_Handle::validate_constraints
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - size
    - std::visit
    - Botan_Tests::random_bit_generator::max
    - empty
    linkageType: ''
    returnType: void
    signature: void Session_Handle::validate_constraints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Opaque_Session_Handle
      Src: /src/botan/src/lib/tls/tls_session.cpp:60,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_session.cpp:60,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Session_Handle::opaque_handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::visit
    - Opaque_Session_Handle
    - get
    linkageType: ''
    returnType: Opaque_Session_Handle
    signature: Opaque_Session_Handle Session_Handle::opaque_handle() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:64,1
    - Dst: std::get<Session_ID>
      Src: /src/botan/src/lib/tls/tls_session.cpp:65,1
    - Dst: is_opaque_handle
      Src: /src/botan/src/lib/tls/tls_session.cpp:69,1
    - Dst: std::get<Opaque_Session_Handle>
      Src: /src/botan/src/lib/tls/tls_session.cpp:70,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:71,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls_session.cpp:72,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: Botan::TLS::Session_Handle::id
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::get<Session_ID>
    - is_opaque_handle
    - Session_ID
    - get
    - is_id
    - size
    - std::get<Opaque_Session_Handle>
    linkageType: ''
    returnType: std::optional<Session_ID>
    signature: std::optional<Session_ID> Session_Handle::id() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_ticket
      Src: /src/botan/src/lib/tls/tls_session.cpp:80,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/lib/tls/tls_session.cpp:81,1
    - Dst: is_opaque_handle
      Src: /src/botan/src/lib/tls/tls_session.cpp:85,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/tls_session.cpp:86,1
    - Dst: std::get<Opaque_Session_Handle>
      Src: /src/botan/src/lib/tls/tls_session.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: Botan::TLS::Session_Handle::ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - is_opaque_handle
    - std::get<Session_Ticket>
    - is_ticket
    - Session_Ticket
    - std::get<Opaque_Session_Handle>
    linkageType: ''
    returnType: std::optional<Session_Ticket>
    signature: std::optional<Session_Ticket> Session_Handle::ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Session_Base::Session_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Base::Session_Base()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Session_Base::~Session_Base()
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Base::~Session_Base()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Session_Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Session_Base::Session_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Base::Session_Base(const Session_Base& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Session_Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::TLS::Session_Base::Session_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Base::Session_Base(Session_Base&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 10
    argNames:
    - start_time
    - version
    - ciphersuite
    - connection_side
    - srtp_profile
    - extended_master_secret
    - encrypt_then_mac
    - ' peer_certs'
    - peer_raw_public_key
    - server_info
    argTypes:
    - std::chrono::system_clock::time_point
    - Protocol_Version
    - uint16_t
    - Connection_Side
    - uint16_t
    - bool
    - bool
    - std::vector<X509_Certificate>
    - std::shared_ptr<const Public_Key>
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 121
    functionName: Botan::TLS::Session_Base::Session_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Session_Base::Session_Base(std::chrono::system_clock::time_point
      start_time,\n                           Protocol_Version version,\n                           uint16_t
      ciphersuite,\n                           Connection_Side connection_side,\n
      \                          uint16_t srtp_profile,\n                           bool
      extended_master_secret,\n                           bool encrypt_then_mac,\n
      \                          const std::vector<X509_Certificate>& peer_certs,\n
      \                          std::shared_ptr<const Public_Key> peer_raw_public_key,\n
      \                          Server_Information server_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:124,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:125,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:126,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:126,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: Botan::TLS::Session_Base::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - Decoding_Error
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - auto::value
    linkageType: ''
    returnType: Ciphersuite
    signature: Ciphersuite Session_Base::ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:134,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:135,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session.cpp:135,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:137,1
    - Dst: auto::kex_algo
      Src: /src/botan/src/lib/tls/tls_session.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' base'
    - was_resumption
    - psk_identity
    argTypes:
    - Session_Base
    - bool
    - std::optional<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Session_Summary::Session_Summary
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite
    - std::move
    - version
    - auto::kex_algo
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: "void Session_Summary::Session_Summary(const Session_Base& base,\n
      \                                bool was_resumption,\n                                 std::optional<std::string>
      psk_identity)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:147,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:148,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:150,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:151,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:151,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:152,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:153,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:154,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:155,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:159,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:161,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:161,1
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:162,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:163,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:165,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:166,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:166,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:167,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:168,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:169,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:170,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:175,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 2
    argNames:
    - psk
    - group
    argTypes:
    - bool
    - std::optional<Named_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 176
    functionName: Botan::TLS::tls13_kex_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::optional<Named_Group>::is_pure_frodokem
    - Botan::TLS::kex_method_to_string
    - std::optional<Named_Group>::to_string
    - std::optional<Named_Group>::is_x25519
    - std::optional<Named_Group>::is_pure_ml_kem
    - std::optional<Named_Group>::is_pqc_hybrid
    - std::optional<Named_Group>::is_dh_named_group
    - std::optional<Named_Group>::is_x448
    - std::optional<Named_Group>::is_ecdh_named_curve
    - BOTAN_ASSERT_NOMSG
    - std::optional<Named_Group>::has_value
    linkageType: ''
    returnType: std::string
    signature: std::string tls13_kex_to_string(bool psk, std::optional<Named_Group>
      group)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:147,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:148,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:149,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:150,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:151,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:151,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:152,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:153,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:154,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:155,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:159,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:161,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:161,1
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:162,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:163,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:164,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:165,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:166,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:166,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:167,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:168,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:169,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:170,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:175,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 2
    argNames:
    - psk
    - group
    argTypes:
    - bool
    - std::optional<Named_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 176
    functionName: Botan::TLS::tls13_kex_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::optional<Named_Group>::is_pure_frodokem
    - Botan::TLS::kex_method_to_string
    - std::optional<Named_Group>::to_string
    - std::optional<Named_Group>::is_x25519
    - std::optional<Named_Group>::is_pure_ml_kem
    - std::optional<Named_Group>::is_pqc_hybrid
    - std::optional<Named_Group>::is_dh_named_group
    - std::optional<Named_Group>::is_x448
    - std::optional<Named_Group>::is_ecdh_named_curve
    - BOTAN_ASSERT_NOMSG
    - std::optional<Named_Group>::has_value
    linkageType: ''
    returnType: std::string
    signature: std::string tls13_kex_to_string(bool psk, std::optional<Named_Group>
      group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:189,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:206,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:207,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:208,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:210,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session.cpp:210,1
    - Dst: set_session_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:211,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:211,1
    - Dst: psk_used
      Src: /src/botan/src/lib/tls/tls_session.cpp:217,1
    - Dst: was_resumption
      Src: /src/botan/src/lib/tls/tls_session.cpp:217,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls_session.cpp:218,1
    - Dst: auto*::selected_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:219,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls_session.cpp:224,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session.cpp:225,1
    - Dst: auto*::selected_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:226,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:230,1
    - Dst: std::optional::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:231,1
    - Dst: tls13_kex_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:234,1
    - Dst: psk_used
      Src: /src/botan/src/lib/tls/tls_session.cpp:234,1
    - Dst: was_resumption
      Src: /src/botan/src/lib/tls/tls_session.cpp:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 8
    argNames:
    - ' server_hello'
    - side
    - ' peer_certs'
    - peer_raw_public_key
    - psk_identity
    - session_was_resumed
    - server_info
    - current_timestamp
    argTypes:
    - Server_Hello_13
    - Connection_Side
    - std::vector<X509_Certificate>
    - std::shared_ptr<const Public_Key>
    - std::optional<std::string>
    - bool
    - Server_Information
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 235
    functionName: Botan::TLS::Session_Summary::Session_Summary
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::optional::to_string
    - psk_used
    - ciphersuite
    - extensions
    - auto*::selected_group
    - std::move
    - version
    - was_resumption
    - BOTAN_ARG_CHECK
    - tls13_kex_to_string
    - BOTAN_ASSERT_NONNULL
    - set_session_id
    - selected_version
    - session_id
    - std::optional::has_value
    linkageType: ''
    returnType: void
    signature: "void Session_Summary::Session_Summary(const Server_Hello_13& server_hello,\n
      \                                Connection_Side side,\n                                 const
      std::vector<X509_Certificate>& peer_certs,\n                                 std::shared_ptr<const
      Public_Key> peer_raw_public_key,\n                                 std::optional<std::string>
      psk_identity,\n                                 bool session_was_resumed,\n
      \                                Server_Information server_info,\n                                 std::chrono::system_clock::time_point
      current_timestamp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:265,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - ' master_secret'
    - version
    - ciphersuite
    - side
    - extended_master_secret
    - encrypt_then_mac
    - ' certs'
    - ' server_info'
    - srtp_profile
    - current_timestamp
    - lifetime_hint
    argTypes:
    - secure_vector<uint8_t>
    - Protocol_Version
    - uint16_t
    - Connection_Side
    - bool
    - bool
    - std::vector<X509_Certificate>
    - Server_Information
    - uint16_t
    - std::chrono::system_clock::time_point
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 266
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 1
    functionsReached:
    - Protocol_Version::is_pre_tls_13
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: "void Session::Session(const secure_vector<uint8_t>& master_secret,\n
      \                Protocol_Version version,\n                 uint16_t ciphersuite,\n
      \                Connection_Side side,\n                 bool extended_master_secret,\n
      \                bool encrypt_then_mac,\n                 const std::vector<X509_Certificate>&
      certs,\n                 const Server_Information& server_info,\n                 uint16_t
      srtp_profile,\n                 std::chrono::system_clock::time_point current_timestamp,\n
      \                std::chrono::seconds lifetime_hint)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:299,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:302,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session.cpp:303,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:306,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - ' session_psk'
    - ' max_early_data_bytes'
    - ticket_age_add
    - lifetime_hint
    - version
    - ciphersuite
    - side
    - ' peer_certs'
    - peer_raw_public_key
    - ' server_info'
    - current_timestamp
    argTypes:
    - secure_vector<uint8_t>
    - std::optional<uint32_t>
    - uint32_t
    - std::chrono::seconds
    - Protocol_Version
    - uint16_t
    - Connection_Side
    - std::vector<X509_Certificate>
    - std::shared_ptr<const Public_Key>
    - Server_Information
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 307
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 1
    functionsReached:
    - value_or
    - std::move
    - Protocol_Version::is_pre_tls_13
    - BOTAN_ARG_CHECK
    - has_value
    linkageType: ''
    returnType: void
    signature: "void Session::Session(const secure_vector<uint8_t>& session_psk,\n
      \                const std::optional<uint32_t>& max_early_data_bytes,\n                 uint32_t
      ticket_age_add,\n                 std::chrono::seconds lifetime_hint,\n                 Protocol_Version
      version,\n                 uint16_t ciphersuite,\n                 Connection_Side
      side,\n                 const std::vector<X509_Certificate>& peer_certs,\n                 std::shared_ptr<const
      Public_Key> peer_raw_public_key,\n                 const Server_Information&
      server_info,\n                 std::chrono::system_clock::time_point current_timestamp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_session.cpp:318,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:319,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:320,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:326,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls_session.cpp:327,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_session.cpp:327,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:328,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:329,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session.cpp:330,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls_session.cpp:331,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:331,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:333,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 9
    argNames:
    - ' session_psk'
    - ' max_early_data_bytes'
    - lifetime_hint
    - ' peer_certs'
    - peer_raw_public_key
    - ' client_hello'
    - ' server_hello'
    - ' callbacks'
    - ' rng'
    argTypes:
    - secure_vector<uint8_t>
    - std::optional<uint32_t>
    - std::chrono::seconds
    - std::vector<X509_Certificate>
    - std::shared_ptr<const Public_Key>
    - Client_Hello_13
    - Server_Hello_13
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 335
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 1
    functionsReached:
    - value_or
    - ciphersuite
    - random_vec
    - tls_current_timestamp
    - std::move
    - load_be
    - sni_hostname
    - BOTAN_ARG_CHECK
    - is_pre_tls_13
    - Server_Information
    - has_value
    - selected_version
    linkageType: ''
    returnType: void
    signature: "void Session::Session(secure_vector<uint8_t>&& session_psk,\n                 const
      std::optional<uint32_t>& max_early_data_bytes,\n                 std::chrono::seconds
      lifetime_hint,\n                 const std::vector<X509_Certificate>& peer_certs,\n
      \                std::shared_ptr<const Public_Key> peer_raw_public_key,\n                 const
      Client_Hello_13& client_hello,\n                 const Server_Hello_13& server_hello,\n
      \                Callbacks& callbacks,\n                 RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/tls/tls_session.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 1
    functionsReached:
    - Botan::PEM_Code::decode_check_label
    linkageType: ''
    returnType: void
    signature: void Session::Session(std::string_view pem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/tls/tls_session.cpp:358,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:358,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls_session.cpp:358,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:382,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:383,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:386,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_session.cpp:390,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/lib/tls/tls_session.cpp:391,1
    - Dst: static_cast<Connection_Side>
      Src: /src/botan/src/lib/tls/tls_session.cpp:392,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:393,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls_session.cpp:396,1
    - Dst: ASN1_String::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:396,1
    - Dst: ASN1_String::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:396,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:396,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:398,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:399,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/tls_session.cpp:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ber_data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 403
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 1
    functionsReached:
    - ASN1_String::value
    - BER_Decoder
    - std::to_string
    - Decoding_Error
    - Protocol_Version
    - std::chrono::system_clock::from_time_t
    - static_cast<Connection_Side>
    - static_cast<uint16_t>
    - Botan_CLI::Timer::seconds
    - Botan::TLS::Ciphersuite::by_id
    - Server_Information
    - Botan::X509::load_key
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void Session::Session(std::span<const uint8_t> ber_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:407,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/tls/tls_session.cpp:409,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:412,1
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/lib/tls/tls_session.cpp:412,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:413,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:413,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:414,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:414,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:415,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:416,1
    - Dst: ASN1_String
      Src: /src/botan/src/lib/tls/tls_session.cpp:424,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls_session.cpp:424,1
    - Dst: ASN1_String
      Src: /src/botan/src/lib/tls/tls_session.cpp:425,1
    - Dst: service
      Src: /src/botan/src/lib/tls/tls_session.cpp:425,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:426,1
    - Dst: port
      Src: /src/botan/src/lib/tls/tls_session.cpp:426,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:427,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:431,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:432,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:433,1
    - Dst: count
      Src: /src/botan/src/lib/tls/tls_session.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 436
    functionName: Botan::TLS::Session::DER_encode
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 6
    functionsReached:
    - major_version
    - port
    - subject_public_key
    - count
    - DER_Encoder
    - static_cast<size_t>
    - hostname
    - service
    - std::chrono::system_clock::to_time_t
    - minor_version
    - ASN1_String
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Session::DER_encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/tls/tls_session.cpp:439,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/lib/tls/tls_session.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: Botan::TLS::Session::PEM_encode
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Session::DER_encode
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string Session::PEM_encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:443,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:443,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls_session.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: Botan::TLS::Session::extract_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Session::extract_master_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:469,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:470,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:473,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:474,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:475,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:475,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/tls/tls_session.cpp:476,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:481,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:482,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:484,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:485,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/lib/tls/tls_session.cpp:487,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_session.cpp:491,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/tls_session.cpp:491,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/tls/tls_session.cpp:492,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls_session.cpp:493,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:498,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:499,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:499,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:500,1
    - Dst: auto::tag_size
      Src: /src/botan/src/lib/tls/tls_session.cpp:500,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:501,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/tls/tls_session.cpp:502,1
    - Dst: auto::start
      Src: /src/botan/src/lib/tls/tls_session.cpp:503,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/tls/tls_session.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - ' key'
    - ' rng'
    argTypes:
    - SymmetricKey
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 509
    functionName: Botan::TLS::Session::encrypt
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Session::DER_encode
    - random_vec
    - auto::final
    - store_be
    - auto::start
    - auto::update
    - auto::finish
    - BOTAN_ASSERT_NOMSG
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_associated_data
    - std::vector::resize
    - auto::tag_size
    - auto::valid_nonce_length
    - auto::set_key
    - auto::output_length
    - secure_vector::size
    - std::vector::data
    - std::vector::reserve
    - Botan::AEAD_Mode::create_or_throw
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Session::encrypt(const SymmetricKey& key, RandomNumberGenerator&
      rng) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls_session.cpp:514,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:515,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:519,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:520,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:521,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:522,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/tls/tls_session.cpp:523,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/tls/tls_session.cpp:523,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls_session.cpp:525,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:526,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:529,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:530,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:533,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:534,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:535,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:535,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls_session.cpp:537,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:537,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:538,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:541,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:542,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:544,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:545,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/tls/tls_session.cpp:546,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:546,1
    - Dst: auto::start
      Src: /src/botan/src/lib/tls/tls_session.cpp:547,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/tls/tls_session.cpp:548,1
    - Dst: Botan::TLS::Session::Session
      Src: /src/botan/src/lib/tls/tls_session.cpp:549,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:551,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_session.cpp:551,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_session.cpp:551,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - in
    - ' key'
    argTypes:
    - std::span<const uint8_t>
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 553
    functionName: Botan::TLS::Session::decrypt
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 4
    functionsReached:
    - std::string
    - Botan::TLS::Session::Session
    - Botan::CT::is_equal
    - auto::final
    - BufferSlicer::copy_as_secure_vector
    - auto::start
    - auto::update
    - auto::finish
    - std::span<const uint8_t>::data
    - BufferSlicer::take
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_associated_data
    - load_be
    - what
    - auto::set_key
    - Decoding_Error
    - auto::output_length
    - std::vector::data
    - BufferSlicer::remaining
    - Botan::AEAD_Mode::create_or_throw
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Session
    signature: Session Session::decrypt(std::span<const uint8_t> in, const SymmetricKey&
      key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature_Scheme
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:23,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:23,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:24,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:25,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:27,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Certificate_Verify::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - is_set
    - Decoding_Error
    - TLS_Data_Reader::get_range
    - TLS_Data_Reader::assert_done
    - Signature_Scheme
    - TLS_Data_Reader::get_uint16_t
    linkageType: ''
    returnType: void
    signature: void Certificate_Verify::Certificate_Verify(const std::vector<uint8_t>&
      buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:36,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:36,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:38,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:38,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:41,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:42,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:42,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:44,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:45,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:48,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:49,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:50,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: Botan::TLS::Certificate_Verify::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - is_set
    - std::vector::push_back
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - std::vector::reserve
    - wire_code
    - size
    - Encoding_Error
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Verify::serialize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature_Scheme
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:23,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:23,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:24,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:25,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:27,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Certificate_Verify::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - is_set
    - Decoding_Error
    - TLS_Data_Reader::get_range
    - TLS_Data_Reader::assert_done
    - Signature_Scheme
    - TLS_Data_Reader::get_uint16_t
    linkageType: ''
    returnType: void
    signature: void Certificate_Verify::Certificate_Verify(const std::vector<uint8_t>&
      buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:36,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:36,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:38,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:38,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:40,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:41,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:42,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:42,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:44,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:45,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:48,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:49,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:50,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: Botan::TLS::Certificate_Verify::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - is_set
    - std::vector::push_back
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - std::vector::reserve
    - wire_code
    - size
    - Encoding_Error
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Verify::serialize() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader
      Src: /src/botan/src/lib/tls/tls_reader.h:26,1
    - Dst: m_typename
      Src: /src/botan/src/lib/tls/tls_reader.h:27,1
    - Dst: m_buf
      Src: /src/botan/src/lib/tls/tls_reader.h:27,1
    - Dst: m_offset
      Src: /src/botan/src/lib/tls/tls_reader.h:27,1
    - Dst: Botan::TLS::has_remaining
      Src: /src/botan/src/lib/tls/tls_reader.h:30,1
    - Dst: throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:31,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_reader.h:37,1
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls_reader.h:39,1
    - Dst: subspan
      Src: /src/botan/src/lib/tls/tls_reader.h:42,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    - Dst: first
      Src: /src/botan/src/lib/tls/tls_reader.h:47,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:52,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:57,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls_reader.h:59,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:65,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls_reader.h:66,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:72,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls_reader.h:73,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:79,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls_reader.h:80,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:84,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:92,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls_reader.h:97,1
    - Dst: Botan::TLS::get_fixed
      Src: /src/botan/src/lib/tls/tls_reader.h:106,1
    - Dst: get_length_field
      Src: /src/botan/src/lib/tls/tls_reader.h:106,1
    - Dst: Botan::TLS::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:111,1
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:113,1
    - Dst: Botan::TLS::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:118,1
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:120,1
    - Dst: Botan::TLS::get_range_vector
      Src: /src/botan/src/lib/tls/tls_reader.h:124,1
    - Dst: bytes_to_string
      Src: /src/botan/src/lib/tls/tls_reader.h:125,1
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:130,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:135,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_reader.h:138,1
    - Dst: Botan::TLS::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_reader.h:140,1
    - Dst: Botan::TLS::get_uint24_t
      Src: /src/botan/src/lib/tls/tls_reader.h:142,1
    - Dst: throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 146
    functionName: Botan::TLS::TLS_Data_Reader
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::get_range_vector
    - get_length_field
    - throw_decode_error
    - Botan::TLS::TLS_Data_Reader
    - Botan::TLS::get_byte
    - std::span::end
    - make_uint32
    - first
    - assert_at_least
    - m_typename
    - Botan::TLS::get_num_elems
    - Botan::TLS::has_remaining
    - Botan::TLS::get_fixed
    - Botan::TLS::get_uint16_t
    - m_buf
    - m_offset
    - load_be
    - Botan::TLS::remaining_bytes
    - std::span::begin
    - Botan::TLS::get_uint24_t
    - bytes_to_string
    - subspan
    - std::vector<uint8_t>
    - Botan::TLS::get_elem
    - make_uint16
    - size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_Data_Reader
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::has_remaining
      Src: /src/botan/src/lib/tls/tls_reader.h:30,1
    - Dst: throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::TLS::assert_done
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - throw_decode_error
    - Botan::TLS::has_remaining
    linkageType: ''
    returnType: void
    signature: void assert_done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::TLS::read_so_far
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t read_so_far() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_reader.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::remaining_bytes
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t remaining_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls_reader.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::TLS::has_remaining
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::remaining_bytes
    linkageType: ''
    returnType: bool
    signature: bool has_remaining() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subspan
      Src: /src/botan/src/lib/tls/tls_reader.h:42,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan::TLS::get_remaining
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - std::span::end
    - std::vector<uint8_t>
    - subspan
    - std::span::begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_remaining()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/botan/src/lib/tls/tls_reader.h:47,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: Botan::TLS::get_data_read_so_far
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - std::span::end
    - std::span::begin
    - first
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_data_read_so_far()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: Botan::TLS::discard_next
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - assert_at_least
    linkageType: ''
    returnType: void
    signature: void discard_next(size_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:57,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls_reader.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan::TLS::get_uint32_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - make_uint32
    - assert_at_least
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_uint32_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:65,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls_reader.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: Botan::TLS::get_uint24_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - make_uint32
    - assert_at_least
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_uint24_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:72,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls_reader.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: Botan::TLS::get_uint16_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - make_uint16
    - assert_at_least
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_uint16_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:79,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls_reader.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::TLS::peek_uint16_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - make_uint16
    - assert_at_least
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t peek_uint16_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: Botan::TLS::get_byte
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - assert_at_least
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_byte()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:92,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls_reader.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - num_elems
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: Botan::TLS::get_elem
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - load_be
    - assert_at_least
    linkageType: ''
    returnType: Container
    signature: Container get_elem(size_t num_elems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_fixed
      Src: /src/botan/src/lib/tls/tls_reader.h:106,1
    - Dst: get_length_field
      Src: /src/botan/src/lib/tls/tls_reader.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: Botan::TLS::get_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - get_length_field
    - Botan::TLS::get_fixed
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_tls_length_value(size_t len_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:111,1
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - len_bytes
    - min_elems
    - max_elems
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan::TLS::get_range
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::get_num_elems
    - Botan::TLS::get_elem
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> get_range(size_t len_bytes, size_t min_elems, size_t
      max_elems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:118,1
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - len_bytes
    - min_elems
    - max_elems
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: Botan::TLS::get_range_vector
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::get_num_elems
    - Botan::TLS::get_elem
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> get_range_vector(size_t len_bytes, size_t min_elems,
      size_t max_elems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_range_vector
      Src: /src/botan/src/lib/tls/tls_reader.h:124,1
    - Dst: bytes_to_string
      Src: /src/botan/src/lib/tls/tls_reader.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - len_bytes
    - min_bytes
    - max_bytes
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: Botan::TLS::get_string
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - bytes_to_string
    - Botan::TLS::get_range_vector
    linkageType: ''
    returnType: std::string
    signature: std::string get_string(size_t len_bytes, size_t min_bytes, size_t max_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Botan::TLS::get_fixed
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::get_elem
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> get_fixed(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_length_field
      Src: /src/botan/src/lib/tls/tls_reader.h:149,1
    - Dst: throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:152,1
    - Dst: throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - len_bytes
    - T_size
    - min_elems
    - max_elems
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: Botan::TLS::get_num_elems
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 3
    functionsReached:
    - get_length_field
    - throw_decode_error
    linkageType: ''
    returnType: size_t
    signature: size_t get_num_elems(size_t len_bytes, size_t T_size, size_t min_elems,
      size_t max_elems)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader
      Src: /src/botan/src/lib/tls/tls_reader.h:26,1
    - Dst: m_typename
      Src: /src/botan/src/lib/tls/tls_reader.h:27,1
    - Dst: m_buf
      Src: /src/botan/src/lib/tls/tls_reader.h:27,1
    - Dst: m_offset
      Src: /src/botan/src/lib/tls/tls_reader.h:27,1
    - Dst: Botan::TLS::has_remaining
      Src: /src/botan/src/lib/tls/tls_reader.h:30,1
    - Dst: throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:31,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_reader.h:37,1
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls_reader.h:39,1
    - Dst: subspan
      Src: /src/botan/src/lib/tls/tls_reader.h:42,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    - Dst: first
      Src: /src/botan/src/lib/tls/tls_reader.h:47,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:52,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:57,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls_reader.h:59,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:65,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls_reader.h:66,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:72,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls_reader.h:73,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:79,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls_reader.h:80,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:84,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:92,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls_reader.h:97,1
    - Dst: Botan::TLS::get_fixed
      Src: /src/botan/src/lib/tls/tls_reader.h:106,1
    - Dst: get_length_field
      Src: /src/botan/src/lib/tls/tls_reader.h:106,1
    - Dst: Botan::TLS::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:111,1
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:113,1
    - Dst: Botan::TLS::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:118,1
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:120,1
    - Dst: Botan::TLS::get_range_vector
      Src: /src/botan/src/lib/tls/tls_reader.h:124,1
    - Dst: bytes_to_string
      Src: /src/botan/src/lib/tls/tls_reader.h:125,1
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:130,1
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:135,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_reader.h:138,1
    - Dst: Botan::TLS::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_reader.h:140,1
    - Dst: Botan::TLS::get_uint24_t
      Src: /src/botan/src/lib/tls/tls_reader.h:142,1
    - Dst: throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 146
    functionName: Botan::TLS::TLS_Data_Reader
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::get_range_vector
    - get_length_field
    - throw_decode_error
    - Botan::TLS::TLS_Data_Reader
    - Botan::TLS::get_byte
    - std::span::end
    - make_uint32
    - first
    - assert_at_least
    - m_typename
    - Botan::TLS::get_num_elems
    - Botan::TLS::has_remaining
    - Botan::TLS::get_fixed
    - Botan::TLS::get_uint16_t
    - m_buf
    - m_offset
    - load_be
    - Botan::TLS::remaining_bytes
    - std::span::begin
    - Botan::TLS::get_uint24_t
    - bytes_to_string
    - subspan
    - std::vector<uint8_t>
    - Botan::TLS::get_elem
    - make_uint16
    - size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_Data_Reader
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::has_remaining
      Src: /src/botan/src/lib/tls/tls_reader.h:30,1
    - Dst: throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::TLS::assert_done
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - throw_decode_error
    - Botan::TLS::has_remaining
    linkageType: ''
    returnType: void
    signature: void assert_done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::TLS::read_so_far
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t read_so_far() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_reader.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::remaining_bytes
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 3
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t remaining_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls_reader.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::TLS::has_remaining
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::remaining_bytes
    linkageType: ''
    returnType: bool
    signature: bool has_remaining() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subspan
      Src: /src/botan/src/lib/tls/tls_reader.h:42,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan::TLS::get_remaining
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - std::span::end
    - std::vector<uint8_t>
    - subspan
    - std::span::begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_remaining()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/botan/src/lib/tls/tls_reader.h:47,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: Botan::TLS::get_data_read_so_far
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - std::span::end
    - std::span::begin
    - first
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_data_read_so_far()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: Botan::TLS::discard_next
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - assert_at_least
    linkageType: ''
    returnType: void
    signature: void discard_next(size_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:57,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls_reader.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan::TLS::get_uint32_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - make_uint32
    - assert_at_least
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_uint32_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:65,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls_reader.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: Botan::TLS::get_uint24_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 2
    functionsReached:
    - make_uint32
    - assert_at_least
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_uint24_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:72,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls_reader.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: Botan::TLS::get_uint16_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 2
    functionsReached:
    - make_uint16
    - assert_at_least
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_uint16_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:79,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls_reader.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::TLS::peek_uint16_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - make_uint16
    - assert_at_least
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t peek_uint16_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: Botan::TLS::get_byte
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 2
    functionsReached:
    - assert_at_least
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_byte()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:92,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls_reader.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - num_elems
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: Botan::TLS::get_elem
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 5
    functionsReached:
    - load_be
    - assert_at_least
    linkageType: ''
    returnType: Container
    signature: Container get_elem(size_t num_elems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_fixed
      Src: /src/botan/src/lib/tls/tls_reader.h:106,1
    - Dst: get_length_field
      Src: /src/botan/src/lib/tls/tls_reader.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: Botan::TLS::get_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - get_length_field
    - Botan::TLS::get_fixed
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_tls_length_value(size_t len_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:111,1
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - len_bytes
    - min_elems
    - max_elems
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan::TLS::get_range
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::get_num_elems
    - Botan::TLS::get_elem
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> get_range(size_t len_bytes, size_t min_elems, size_t
      max_elems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:118,1
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - len_bytes
    - min_elems
    - max_elems
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: Botan::TLS::get_range_vector
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 3
    functionsReached:
    - Botan::TLS::get_num_elems
    - Botan::TLS::get_elem
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> get_range_vector(size_t len_bytes, size_t min_elems,
      size_t max_elems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_range_vector
      Src: /src/botan/src/lib/tls/tls_reader.h:124,1
    - Dst: bytes_to_string
      Src: /src/botan/src/lib/tls/tls_reader.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - len_bytes
    - min_bytes
    - max_bytes
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: Botan::TLS::get_string
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - bytes_to_string
    - Botan::TLS::get_range_vector
    linkageType: ''
    returnType: std::string
    signature: std::string get_string(size_t len_bytes, size_t min_bytes, size_t max_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_elem
      Src: /src/botan/src/lib/tls/tls_reader.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Botan::TLS::get_fixed
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::get_elem
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> get_fixed(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_length_field
      Src: /src/botan/src/lib/tls/tls_reader.h:149,1
    - Dst: throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:152,1
    - Dst: throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - len_bytes
    - T_size
    - min_elems
    - max_elems
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: Botan::TLS::get_num_elems
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 6
    functionsReached:
    - get_length_field
    - throw_decode_error
    linkageType: ''
    returnType: size_t
    signature: size_t get_num_elems(size_t len_bytes, size_t T_size, size_t min_elems,
      size_t max_elems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_reader.h:184,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_reader.h:188,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_reader.h:191,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls_reader.h:191,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_reader.h:196,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls_reader.h:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - ' buf'
    - vals
    - vals_size
    - tag_size
    argTypes:
    - std::vector<uint8_t, Alloc>
    - T*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 199
    functionName: append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 4
    functionsReached:
    - BOTAN_ARG_CHECK
    - get_byte_var
    - push_back
    linkageType: ''
    returnType: void
    signature: "void append_tls_length_value(std::vector<uint8_t, Alloc>& buf,\n                                    const
      T* vals,\n                                    size_t vals_size,\n                                    size_t
      tag_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_reader.h:203,1
    - Dst: std::span<const T>::data
      Src: /src/botan/src/lib/tls/tls_reader.h:203,1
    - Dst: std::span<const T>::size
      Src: /src/botan/src/lib/tls/tls_reader.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' buf'
    - vals
    - tag_size
    argTypes:
    - std::vector<uint8_t, Alloc>
    - std::span<const T>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 5
    functionsReached:
    - std::span<const T>::size
    - append_tls_length_value
    - std::span<const T>::data
    linkageType: ''
    returnType: void
    signature: void append_tls_length_value(std::vector<uint8_t, Alloc>& buf, std::span<const
      T> vals, size_t tag_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_reader.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' buf'
    - ' vals'
    - tag_size
    argTypes:
    - std::vector<uint8_t, Alloc>
    - std::vector<T, Alloc2>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 6
    functionsReached:
    - append_tls_length_value
    linkageType: ''
    returnType: void
    signature: "void append_tls_length_value(std::vector<uint8_t, Alloc>& buf,\n                                    const
      std::vector<T, Alloc2>& vals,\n                                    size_t tag_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_reader.h:215,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls_reader.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' buf'
    - str
    - tag_size
    argTypes:
    - std::vector<uint8_t, Alloc>
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 7
    functionsReached:
    - as_span_of_bytes
    - append_tls_length_value
    linkageType: ''
    returnType: void
    signature: void append_tls_length_value(std::vector<uint8_t, Alloc>& buf, std::string_view
      str, size_t tag_size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:23,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Ciphersuite::nonce_bytes_from_handshake
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - cipher_algo
    - Invalid_State
    linkageType: ''
    returnType: size_t
    signature: size_t Ciphersuite::nonce_bytes_from_handshake() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:41,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:44,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Ciphersuite::nonce_bytes_from_record
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - cipher_algo
    - BOTAN_UNUSED
    - Invalid_State
    linkageType: ''
    returnType: size_t
    signature: size_t Ciphersuite::nonce_bytes_from_record(Protocol_Version version)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - suite
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: Botan::TLS::Ciphersuite::is_scsv
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::is_scsv(uint16_t suite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:61,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Ciphersuite::psk_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - kex_method
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::psk_ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:65,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:65,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Ciphersuite::ecc_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - kex_method
    - auth_method
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::ecc_ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:78,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Ciphersuite::usable_in_version
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::is_pre_tls_13
    - ciphersuite_code
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::usable_in_version(Protocol_Version version) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:83,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::TLS::Ciphersuite::cbc_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - cipher_algo
    - mac_algo
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::cbc_ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Ciphersuite::null_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - cipher_algo
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::null_ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Ciphersuite::aead_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - mac_algo
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::aead_ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Ciphersuite::signature_used
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - auth_method
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::signature_used() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: all_known_ciphersuites
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:99,1
    - Dst: std::lower_bound
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:100,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:100,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:100,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:102,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - suite
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: Botan::TLS::Ciphersuite::by_id
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 28
    functionsReached:
    - auto::ciphersuite_code
    - begin
    - all_known_ciphersuites
    - std::lower_bound
    - end
    linkageType: ''
    returnType: std::optional<Ciphersuite>
    signature: std::optional<Ciphersuite> Ciphersuite::by_id(uint16_t suite)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: all_known_ciphersuites
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:110,1
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: Botan::TLS::Ciphersuite::from_name
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 22
    functionsReached:
    - all_known_ciphersuites
    - to_string
    linkageType: ''
    returnType: std::optional<Ciphersuite>
    signature: std::optional<Ciphersuite> Ciphersuite::from_name(std::string_view
      name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan::TLS::have_hash
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::providers
    linkageType: ''
    returnType: bool
    signature: bool have_hash(std::string_view prf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:128,1
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan::TLS::have_cipher
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::providers
    - Botan::BlockCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool have_cipher(std::string_view cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan::TLS::have_hash
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::providers
    linkageType: ''
    returnType: bool
    signature: bool have_hash(std::string_view prf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:128,1
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan::TLS::have_cipher
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::providers
    - Botan::BlockCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool have_cipher(std::string_view cipher)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:136,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:137,1
    - Dst: have_hash
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:141,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:141,1
    - Dst: Botan::TLS::Ciphersuite::cbc_ciphersuite
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:146,1
    - Dst: Botan::TLS::Ciphersuite::null_ciphersuite
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:152,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:157,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:158,1
    - Dst: split_on
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:163,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:163,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:164,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:164,1
    - Dst: have_cipher
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:165,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:190,1
    - Dst: have_cipher
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:194,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:194,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:194,1
    - Dst: have_hash
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:197,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:197,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:202,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:202,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:206,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:212,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:216,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 225
    functionName: Botan::TLS::Ciphersuite::is_usable
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - split_on
    - have_cipher
    - auto::size
    - BOTAN_ASSERT
    - BOTAN_UNUSED
    - have_hash
    - cipher_algo
    - kex_method
    - Botan::TLS::Ciphersuite::cbc_ciphersuite
    - mac_algo
    - prf_algo
    - auth_method
    - Botan::TLS::Ciphersuite::null_ciphersuite
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::is_usable() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:23,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Ciphersuite::nonce_bytes_from_handshake
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - cipher_algo
    - Invalid_State
    linkageType: ''
    returnType: size_t
    signature: size_t Ciphersuite::nonce_bytes_from_handshake() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:41,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:44,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Ciphersuite::nonce_bytes_from_record
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - cipher_algo
    - BOTAN_UNUSED
    - Invalid_State
    linkageType: ''
    returnType: size_t
    signature: size_t Ciphersuite::nonce_bytes_from_record(Protocol_Version version)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - suite
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: Botan::TLS::Ciphersuite::is_scsv
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::is_scsv(uint16_t suite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:61,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Ciphersuite::psk_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - kex_method
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::psk_ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:65,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:65,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Ciphersuite::ecc_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - kex_method
    - auth_method
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::ecc_ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:78,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Ciphersuite::usable_in_version
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::is_pre_tls_13
    - ciphersuite_code
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::usable_in_version(Protocol_Version version) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:83,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::TLS::Ciphersuite::cbc_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 1
    functionsReached:
    - cipher_algo
    - mac_algo
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::cbc_ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Ciphersuite::null_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 1
    functionsReached:
    - cipher_algo
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::null_ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Ciphersuite::aead_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - mac_algo
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::aead_ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Ciphersuite::signature_used
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - auth_method
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::signature_used() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: all_known_ciphersuites
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:99,1
    - Dst: std::lower_bound
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:100,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:100,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:100,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:102,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - suite
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: Botan::TLS::Ciphersuite::by_id
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 28
    functionsReached:
    - auto::ciphersuite_code
    - begin
    - all_known_ciphersuites
    - std::lower_bound
    - end
    linkageType: ''
    returnType: std::optional<Ciphersuite>
    signature: std::optional<Ciphersuite> Ciphersuite::by_id(uint16_t suite)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: all_known_ciphersuites
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:110,1
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: Botan::TLS::Ciphersuite::from_name
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 22
    functionsReached:
    - all_known_ciphersuites
    - to_string
    linkageType: ''
    returnType: std::optional<Ciphersuite>
    signature: std::optional<Ciphersuite> Ciphersuite::from_name(std::string_view
      name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan::TLS::have_hash
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::providers
    linkageType: ''
    returnType: bool
    signature: bool have_hash(std::string_view prf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:128,1
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan::TLS::have_cipher
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::providers
    - Botan::BlockCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool have_cipher(std::string_view cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan::TLS::have_hash
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::providers
    linkageType: ''
    returnType: bool
    signature: bool have_hash(std::string_view prf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:128,1
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan::TLS::have_cipher
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::providers
    - Botan::BlockCipher::providers
    linkageType: ''
    returnType: bool
    signature: bool have_cipher(std::string_view cipher)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:136,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:137,1
    - Dst: have_hash
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:141,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:141,1
    - Dst: Botan::TLS::Ciphersuite::cbc_ciphersuite
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:146,1
    - Dst: Botan::TLS::Ciphersuite::null_ciphersuite
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:152,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:157,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:158,1
    - Dst: split_on
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:163,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:163,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:164,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:164,1
    - Dst: have_cipher
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:165,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:190,1
    - Dst: have_cipher
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:194,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:194,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:194,1
    - Dst: have_hash
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:197,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:197,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:202,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:202,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:206,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:212,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.cpp:216,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 225
    functionName: Botan::TLS::Ciphersuite::is_usable
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 0
    functionsReached:
    - split_on
    - have_cipher
    - auto::size
    - BOTAN_ASSERT
    - BOTAN_UNUSED
    - have_hash
    - cipher_algo
    - kex_method
    - Botan::TLS::Ciphersuite::cbc_ciphersuite
    - mac_algo
    - prf_algo
    - auth_method
    - Botan::TLS::Ciphersuite::null_ciphersuite
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::is_usable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls_version.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: Botan::TLS::Protocol_Version::latest_tls_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Protocol_Version::latest_tls_version()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls_version.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: Botan::TLS::Protocol_Version::latest_dtls_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 4
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Protocol_Version::latest_dtls_version()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:35,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:36,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:43,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:47,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:51,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Protocol_Version::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 6
    functionsReached:
    - minor_version
    - major_version
    - Botan::TLS::Protocol_Version::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string Protocol_Version::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Protocol_Version::is_datagram_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 4
    functionsReached:
    - major_version
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::is_datagram_protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:59,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Protocol_Version::is_pre_tls_13
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Protocol_Version::is_datagram_protocol
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::is_pre_tls_13() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:64,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Protocol_Version::is_tls_13_or_later
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Protocol_Version::is_datagram_protocol
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::is_tls_13_or_later() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:69,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:69,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_version.cpp:70,1
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:70,1
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:70,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: Protocol_Version::operator>(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 0
    functionsReached:
    - is_datagram_protocol
    - TLS_Exception
    - Protocol_Version::is_datagram_protocol
    - to_string
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::operator>(const Protocol_Version& other) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:81,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Protocol_Version::valid
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 0
    functionsReached:
    - minor_version
    - major_version
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::valid() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:104,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:110,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 119
    functionName: Botan::TLS::Protocol_Version::known_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::known_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls_version.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: Botan::TLS::Protocol_Version::latest_tls_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Protocol_Version::latest_tls_version()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls_version.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: Botan::TLS::Protocol_Version::latest_dtls_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 4
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Protocol_Version::latest_dtls_version()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:35,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:36,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:43,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:47,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:51,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Protocol_Version::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 7
    functionsReached:
    - minor_version
    - major_version
    - Botan::TLS::Protocol_Version::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string Protocol_Version::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Protocol_Version::is_datagram_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 6
    functionsReached:
    - major_version
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::is_datagram_protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:59,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Protocol_Version::is_pre_tls_13
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Protocol_Version::is_datagram_protocol
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::is_pre_tls_13() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:64,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Protocol_Version::is_tls_13_or_later
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Protocol_Version::is_datagram_protocol
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::is_tls_13_or_later() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:69,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:69,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_version.cpp:70,1
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:70,1
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:70,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: Protocol_Version::operator>(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 0
    functionsReached:
    - is_datagram_protocol
    - TLS_Exception
    - Protocol_Version::is_datagram_protocol
    - to_string
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::operator>(const Protocol_Version& other) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:81,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Protocol_Version::valid
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 0
    functionsReached:
    - minor_version
    - major_version
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::valid() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:104,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:110,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 119
    functionName: Botan::TLS::Protocol_Version::known_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: bool
    signature: bool Protocol_Version::known_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    functionName: ~Policy()
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    functionName: ~Policy()
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 678
    functionName: Botan::allow_insecure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_insecure_renegotiation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 680
    functionName: Botan::allow_server_initiated_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_server_initiated_renegotiation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 682
    functionName: Botan::server_uses_own_ciphersuite_preferences
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool server_uses_own_ciphersuite_preferences() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 684
    functionName: Botan::negotiate_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool negotiate_encrypt_then_mac() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 686
    functionName: Botan::minimum_rsa_bits
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_rsa_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 688
    functionName: Botan::minimum_dh_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_dh_group_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 690
    functionName: Botan::minimum_ecdh_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_ecdh_group_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 692
    functionName: Botan::minimum_ecdsa_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_ecdsa_group_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: Botan::allow_tls12
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_tls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 696
    functionName: Botan::allow_tls13
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_tls13() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 698
    functionName: Botan::allow_dtls12
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    functionName: ~Policy()
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    functionName: ~Policy()
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 678
    functionName: Botan::allow_insecure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_insecure_renegotiation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 680
    functionName: Botan::allow_server_initiated_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_server_initiated_renegotiation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 682
    functionName: Botan::server_uses_own_ciphersuite_preferences
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool server_uses_own_ciphersuite_preferences() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 684
    functionName: Botan::negotiate_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool negotiate_encrypt_then_mac() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 686
    functionName: Botan::minimum_rsa_bits
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_rsa_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 688
    functionName: Botan::minimum_dh_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_dh_group_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 690
    functionName: Botan::minimum_ecdh_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_ecdh_group_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 692
    functionName: Botan::minimum_ecdsa_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_ecdsa_group_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: Botan::allow_tls12
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_tls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 696
    functionName: Botan::allow_tls13
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_tls13() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 698
    functionName: Botan::allow_dtls12
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_dtls12() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' creds'
    - ' rng'
    argTypes:
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: Botan::TLS::Session_Manager_Stateless::Session_Manager_Stateless
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void Session_Manager_Stateless::Session_Manager_Stateless(const std::shared_ptr<Credentials_Manager>&
      creds,\n                                                     const std::shared_ptr<RandomNumberGenerator>&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Session_Manager_Stateless::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_Stateless::find_some(const
      Server_Information& /*info*/,\n                                                                      size_t
      /*max_sessions_hint*/)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:33,1
    - Dst: side
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:33,1
    - Dst: Botan::TLS::Session_Manager_Stateless::get_ticket_key
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:38,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:39,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:43,1
    - Dst: encrypt
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:43,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' session'
    - tls12_no_ticket
    argTypes:
    - Session
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Session_Manager_Stateless::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 8
    functionsReached:
    - side
    - BOTAN_ASSERT
    - Botan::TLS::Session_Manager_Stateless::get_ticket_key
    - auto::has_value
    - Session_Handle
    - auto::value
    - encrypt
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> Session_Manager_Stateless::establish(const
      Session& session,\n                                                                   const
      std::optional<Session_ID>& /*session_id*/,\n                                                                   bool
      tls12_no_ticket)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::TLS::Session_Manager_Stateless::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 4
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Session_Manager_Stateless::store(const Session& /*session*/, const
      Session_Handle& /*handle*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:51,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:52,1
    - Dst: Botan::TLS::Session_Manager_Stateless::get_ticket_key
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:56,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:57,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:62,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:62,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Session_Manager_Stateless::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 0
    functionsReached:
    - ticket
    - Botan::TLS::Session_Manager_Stateless::get_ticket_key
    - auto::has_value
    - auto::value
    - Botan::TLS::Session::decrypt
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> Session_Manager_Stateless::retrieve_one(const
      Session_Handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_Stateless::get_ticket_key
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Session_Manager_Stateless::get_ticket_key
    linkageType: ''
    returnType: bool
    signature: bool Session_Manager_Stateless::emits_session_tickets()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:77,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: Botan::TLS::Session_Manager_Stateless::get_ticket_key
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 3
    functionsReached:
    - auto::empty
    - psk
    linkageType: ''
    returnType: std::optional<SymmetricKey>
    signature: std::optional<SymmetricKey> Session_Manager_Stateless::get_ticket_key()
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' creds'
    - ' rng'
    argTypes:
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: Botan::TLS::Session_Manager_Stateless::Session_Manager_Stateless
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void Session_Manager_Stateless::Session_Manager_Stateless(const std::shared_ptr<Credentials_Manager>&
      creds,\n                                                     const std::shared_ptr<RandomNumberGenerator>&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Session_Manager_Stateless::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_Stateless::find_some(const
      Server_Information& /*info*/,\n                                                                      size_t
      /*max_sessions_hint*/)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:33,1
    - Dst: side
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:33,1
    - Dst: Botan::TLS::Session_Manager_Stateless::get_ticket_key
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:38,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:39,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:43,1
    - Dst: encrypt
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:43,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' session'
    - tls12_no_ticket
    argTypes:
    - Session
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Session_Manager_Stateless::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 8
    functionsReached:
    - side
    - BOTAN_ASSERT
    - Botan::TLS::Session_Manager_Stateless::get_ticket_key
    - auto::has_value
    - Session_Handle
    - auto::value
    - encrypt
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> Session_Manager_Stateless::establish(const
      Session& session,\n                                                                   const
      std::optional<Session_ID>& /*session_id*/,\n                                                                   bool
      tls12_no_ticket)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::TLS::Session_Manager_Stateless::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 4
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Session_Manager_Stateless::store(const Session& /*session*/, const
      Session_Handle& /*handle*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:51,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:52,1
    - Dst: Botan::TLS::Session_Manager_Stateless::get_ticket_key
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:56,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:57,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:62,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:62,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Session_Manager_Stateless::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 0
    functionsReached:
    - ticket
    - Botan::TLS::Session_Manager_Stateless::get_ticket_key
    - auto::has_value
    - auto::value
    - Botan::TLS::Session::decrypt
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> Session_Manager_Stateless::retrieve_one(const
      Session_Handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_Stateless::get_ticket_key
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Session_Manager_Stateless::get_ticket_key
    linkageType: ''
    returnType: bool
    signature: bool Session_Manager_Stateless::emits_session_tickets()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:77,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: Botan::TLS::Session_Manager_Stateless::get_ticket_key
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 6
    functionsReached:
    - auto::empty
    - psk
    linkageType: ''
    returnType: std::optional<SymmetricKey>
    signature: std::optional<SymmetricKey> Session_Manager_Stateless::get_ticket_key()
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::TLS::tls_session_activated
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_session_activated()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::TLS::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/tls/tls_callbacks.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: Botan::TLS::tls_verify_cert_chain_ocsp_timeout
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds tls_verify_cert_chain_ocsp_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::TLS::tls_session_activated
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_session_activated()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::TLS::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/tls/tls_callbacks.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: Botan::TLS::tls_verify_cert_chain_ocsp_timeout
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds tls_verify_cert_chain_ocsp_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::TLS::tls_session_activated
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_session_activated()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::TLS::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/tls/tls_callbacks.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: Botan::TLS::tls_verify_cert_chain_ocsp_timeout
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds tls_verify_cert_chain_ocsp_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::TLS::tls_session_activated
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tls_session_activated()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::TLS::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/tls/tls_callbacks.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: Botan::TLS::tls_verify_cert_chain_ocsp_timeout
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds tls_verify_cert_chain_ocsp_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: TLS::Callbacks::tls_inspect_handshake_msg(const Handshake_Message&
      /*unused*/)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS::Callbacks::tls_inspect_handshake_msg(const Handshake_Message&
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: TLS::Callbacks::tls_server_choose_app_protocol(const std::vector<std::string>&
      /*unused*/)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string TLS::Callbacks::tls_server_choose_app_protocol(const std::vector<std::string>&
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: TLS::Callbacks::tls_peer_network_identity()
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string TLS::Callbacks::tls_peer_network_identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: TLS::Callbacks::tls_current_timestamp()
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point TLS::Callbacks::tls_current_timestamp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: "TLS::Callbacks::tls_modify_extensions(Extensions& /*unused*/,\n
      \                                          Connection_Side /*unused*/,\n                                           Handshake_Type
      /*unused*/)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TLS::Callbacks::tls_modify_extensions(Extensions& /*unused*/,\n
      \                                          Connection_Side /*unused*/,\n                                           Handshake_Type
      /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: "TLS::Callbacks::tls_examine_extensions(const Extensions& /*unused*/,\n
      \                                           Connection_Side /*unused*/,\n                                            Handshake_Type
      /*unused*/)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TLS::Callbacks::tls_examine_extensions(const Extensions& /*unused*/,\n
      \                                           Connection_Side /*unused*/,\n                                            Handshake_Type
      /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lifetime_hint
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:85,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: TLS::Callbacks::tls_should_persist_resumption_information(const
      Session& session)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - version
    - lifetime_hint
    linkageType: ''
    returnType: bool
    signature: bool TLS::Callbacks::tls_should_persist_resumption_information(const
      Session& session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:94,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:95,1
    - Dst: require_cert_revocation_info
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:98,1
    - Dst: minimum_signature_strength
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:99,1
    - Dst: x509_path_validate
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:101,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:106,1
    - Dst: tls_verify_cert_chain_ocsp_timeout
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:107,1
    - Dst: Path_Validation_Result::successful_validation
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:110,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:111,1
    - Dst: Path_Validation_Result::result_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - ' cert_chain'
    - ' ocsp_responses'
    - ' trusted_roots'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - std::vector<X509_Certificate>
    - std::vector<std::optional<OCSP::Response>>
    - std::vector<Certificate_Store*>
    - Usage_Type
    - std::string_view
    - TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: "TLS::Callbacks::tls_verify_cert_chain(const std::vector<X509_Certificate>&
      cert_chain,\n                                           const std::vector<std::optional<OCSP::Response>>&
      ocsp_responses,\n                                           const std::vector<Certificate_Store*>&
      trusted_roots,\n                                           Usage_Type usage,\n
      \                                          std::string_view hostname,\n                                           const
      TLS::Policy& policy)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - minimum_signature_strength
    - Invalid_Argument
    - tls_current_timestamp
    - require_cert_revocation_info
    - Path_Validation_Result::result_string
    - TLS_Exception
    - x509_path_validate
    - Path_Validation_Result::successful_validation
    - tls_verify_cert_chain_ocsp_timeout
    - empty
    linkageType: ''
    returnType: void
    signature: "void TLS::Callbacks::tls_verify_cert_chain(const std::vector<X509_Certificate>&
      cert_chain,\n                                           const std::vector<std::optional<OCSP::Response>>&
      ocsp_responses,\n                                           const std::vector<Certificate_Store*>&
      trusted_roots,\n                                           Usage_Type usage,\n
      \                                          std::string_view hostname,\n                                           const
      TLS::Policy& policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:119,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - ' raw_public_key'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - Public_Key
    - Usage_Type
    - std::string_view
    - TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: "TLS::Callbacks::tls_verify_raw_public_key(const Public_Key& raw_public_key,\n
      \                                              Usage_Type usage,\n                                               std::string_view
      hostname,\n                                               const TLS::Policy&
      policy)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: "void TLS::Callbacks::tls_verify_raw_public_key(const Public_Key& raw_public_key,\n
      \                                              Usage_Type usage,\n                                               std::string_view
      hostname,\n                                               const TLS::Policy&
      policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' raw_response'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: TLS::Callbacks::tls_parse_ocsp_response(const std::vector<uint8_t>&
      raw_response)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    linkageType: ''
    returnType: std::optional<OCSP::Response>
    signature: std::optional<OCSP::Response> TLS::Callbacks::tls_parse_ocsp_response(const
      std::vector<uint8_t>& raw_response)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:136,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:137,1
    - Dst: tls_provide_cert_status
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' chain'
    - ' csr'
    argTypes:
    - std::vector<X509_Certificate>
    - Certificate_Status_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: "TLS::Callbacks::tls_provide_cert_chain_status(\n   const std::vector<X509_Certificate>&
      chain, const Certificate_Status_Request& csr)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - tls_provide_cert_status
    - size
    - empty
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: "std::vector<std::vector<uint8_t>> TLS::Callbacks::tls_provide_cert_chain_status(\n
      \  const std::vector<X509_Certificate>& chain, const Certificate_Status_Request&
      csr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK_Signer::sign_message
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - ' msg'
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: "TLS::Callbacks::tls_sign_message(const Private_Key& key,\n                                                      RandomNumberGenerator&
      rng,\n                                                      std::string_view
      padding,\n                                                      Signature_Format
      format,\n                                                      const std::vector<uint8_t>&
      msg)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - PK_Signer::sign_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> TLS::Callbacks::tls_sign_message(const Private_Key&
      key,\n                                                      RandomNumberGenerator&
      rng,\n                                                      std::string_view
      padding,\n                                                      Signature_Format
      format,\n                                                      const std::vector<uint8_t>&
      msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK_Verifier::verify_message
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' key'
    - padding
    - format
    - ' msg'
    - ' sig'
    argTypes:
    - Public_Key
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: "TLS::Callbacks::tls_verify_message(const Public_Key& key,\n                                        std::string_view
      padding,\n                                        Signature_Format format,\n
      \                                       const std::vector<uint8_t>& msg,\n                                        const
      std::vector<uint8_t>& sig)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - PK_Verifier::verify_message
    linkageType: ''
    returnType: bool
    signature: "bool TLS::Callbacks::tls_verify_message(const Public_Key& key,\n                                        std::string_view
      padding,\n                                        Signature_Format format,\n
      \                                       const std::vector<uint8_t>& msg,\n                                        const
      std::vector<uint8_t>& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<DL_Group>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:166,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::is_dh_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - std::holds_alternative<DL_Group>
    - std::get<TLS::Group_Params>
    linkageType: ''
    returnType: bool
    signature: bool is_dh_group(const std::variant<TLS::Group_Params, DL_Group>& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:170,1
    - Dst: Botan::is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:170,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:177,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: Botan::get_dl_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - std::visit
    - Botan::DL_Group::from_name
    - Botan::to_string
    - BOTAN_ASSERT_NOMSG
    - Botan::is_dh_group
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group get_dl_group(const std::variant<TLS::Group_Params, DL_Group>&
      group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<DL_Group>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:166,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::is_dh_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 1
    functionsReached:
    - std::holds_alternative<DL_Group>
    - std::get<TLS::Group_Params>
    linkageType: ''
    returnType: bool
    signature: bool is_dh_group(const std::variant<TLS::Group_Params, DL_Group>& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:170,1
    - Dst: Botan::is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:170,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:177,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: Botan::get_dl_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - std::visit
    - Botan::DL_Group::from_name
    - Botan::to_string
    - BOTAN_ASSERT_NOMSG
    - Botan::is_dh_group
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group get_dl_group(const std::variant<TLS::Group_Params, DL_Group>&
      group)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:185,1
    - Dst: get_dl_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:188,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:190,1
    - Dst: auto::get_p
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:198,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:199,1
    - Dst: std::make_unique<DH_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:202,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:207,1
    - Dst: std::holds_alternative<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:207,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:208,1
    - Dst: auto::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:210,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:211,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:211,1
    - Dst: std::make_unique<ECDH_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:212,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:212,1
    - Dst: auto::is_x25519
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:216,1
    - Dst: std::make_unique<X25519_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:217,1
    - Dst: auto::is_x448
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:222,1
    - Dst: std::make_unique<X448_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:223,1
    - Dst: auto::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:228,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:229,1
    - Dst: auto::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:234,1
    - Dst: std::make_unique<ML_KEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:235,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:235,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:235,1
    - Dst: auto::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:240,1
    - Dst: std::make_unique<FrodoKEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:241,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:241,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:241,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:245,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - ' group'
    - key_bits
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 246
    functionName: "TLS::Callbacks::tls_deserialize_peer_public_key(\n   const std::variant<TLS::Group_Params,
      DL_Group>& group, std::span<const uint8_t> key_bits)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - auto::is_pure_ml_kem
    - auto::is_pqc_hybrid
    - Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
    - Botan::BigInt::from_bytes
    - get_dl_group
    - auto::is_pure_frodokem
    - EC_AffinePoint
    - std::make_unique<X25519_PublicKey>
    - std::holds_alternative<TLS::Group_Params>
    - std::make_unique<ML_KEM_PublicKey>
    - BOTAN_ASSERT_NOMSG
    - FrodoKEMMode
    - std::make_unique<X448_PublicKey>
    - Botan::EC_Group::from_name
    - std::make_unique<DH_PublicKey>
    - std::get<TLS::Group_Params>
    - Decoding_Error
    - is_dh_group
    - auto::is_x448
    - std::make_unique<FrodoKEM_PublicKey>
    - auto::get_p
    - ML_KEM_Mode
    - auto::to_string
    - std::make_unique<ECDH_PublicKey>
    - auto::is_x25519
    - auto::is_ecdh_named_curve
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: "std::unique_ptr<Public_Key> TLS::Callbacks::tls_deserialize_peer_public_key(\n
      \  const std::variant<TLS::Group_Params, DL_Group>& group, std::span<const uint8_t>
      key_bits)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TLS::Group_Params::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:250,1
    - Dst: std::make_unique<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:251,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:251,1
    - Dst: TLS::Group_Params::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:251,1
    - Dst: TLS::Group_Params::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:256,1
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:257,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:257,1
    - Dst: TLS::Group_Params::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:257,1
    - Dst: TLS::Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:262,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:263,1
    - Dst: tls_generate_ephemeral_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - group
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 268
    functionName: TLS::Callbacks::tls_kem_generate_key(TLS::Group_Params group, RandomNumberGenerator&
      rng)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - TLS::Group_Params::to_string
    - TLS::Group_Params::is_pqc_hybrid
    - std::make_unique<ML_KEM_PrivateKey>
    - std::make_unique<FrodoKEM_PrivateKey>
    - tls_generate_ephemeral_key
    - TLS::Group_Params::is_pure_ml_kem
    - TLS::Group_Params::is_pure_frodokem
    - FrodoKEMMode
    - ML_KEM_Mode
    - Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> TLS::Callbacks::tls_kem_generate_key(TLS::Group_Params
      group, RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:274,1
    - Dst: tls_deserialize_peer_public_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:277,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:281,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:281,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:285,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:286,1
    - Dst: PK_KEM_Encryptor
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:289,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:291,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:291,1
    - Dst: tls_generate_ephemeral_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:297,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:298,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:299,1
    - Dst: tls_ephemeral_key_agreement
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - group
    - ' encoded_public_key'
    - ' rng'
    - ' policy'
    argTypes:
    - TLS::Group_Params
    - std::vector<uint8_t>
    - RandomNumberGenerator
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 302
    functionName: "TLS::Callbacks::tls_kem_encapsulate(TLS::Group_Params group,\n
      \                                                     const std::vector<uint8_t>&
      encoded_public_key,\n                                                      RandomNumberGenerator&
      rng,\n                                                      const Policy& policy)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - PK_KEM_Encryptor
    - TLS::Group_Params::is_kem
    - tls_ephemeral_key_agreement
    - tls_deserialize_peer_public_key
    - tls_generate_ephemeral_key
    - auto::public_value
    - TLS_Exception
    - BOTAN_ASSERT_NONNULL
    - check_peer_key_acceptable
    - what
    linkageType: ''
    returnType: KEM_Encapsulation
    signature: "KEM_Encapsulation TLS::Callbacks::tls_kem_encapsulate(TLS::Group_Params
      group,\n                                                      const std::vector<uint8_t>&
      encoded_public_key,\n                                                      RandomNumberGenerator&
      rng,\n                                                      const Policy& policy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:309,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:311,1
    - Dst: PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:311,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:312,1
    - Dst: PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:314,1
    - Dst: dynamic_cast<const PK_Key_Agreement_Key&>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:318,1
    - Dst: tls_ephemeral_key_agreement
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:319,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - group
    - ' private_key'
    - ' encapsulated_bytes'
    - ' rng'
    - ' policy'
    argTypes:
    - TLS::Group_Params
    - Private_Key
    - std::vector<uint8_t>
    - RandomNumberGenerator
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 323
    functionName: "TLS::Callbacks::tls_kem_decapsulate(TLS::Group_Params group,\n
      \                                                          const Private_Key&
      private_key,\n                                                           const
      std::vector<uint8_t>& encapsulated_bytes,\n                                                           RandomNumberGenerator&
      rng,\n                                                           const Policy&
      policy)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - TLS::Group_Params::is_kem
    - PK_KEM_Decryptor::decrypt
    - tls_ephemeral_key_agreement
    - TLS_Exception
    - size
    - PK_KEM_Decryptor::encapsulated_key_length
    - dynamic_cast<const PK_Key_Agreement_Key&>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> TLS::Callbacks::tls_kem_decapsulate(TLS::Group_Params
      group,\n                                                           const Private_Key&
      private_key,\n                                                           const
      std::vector<uint8_t>& encapsulated_bytes,\n                                                           RandomNumberGenerator&
      rng,\n                                                           const Policy&
      policy)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:327,1
    - Dst: get_dl_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:328,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:329,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:332,1
    - Dst: std::holds_alternative<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:332,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:333,1
    - Dst: auto::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:335,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:336,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:336,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:337,1
    - Dst: auto::is_x25519
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:341,1
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:342,1
    - Dst: auto::is_x448
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:347,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:348,1
    - Dst: auto::is_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:352,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:353,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:356,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 357
    functionName: "TLS::Callbacks::tls_generate_ephemeral_key(\n   const std::variant<TLS::Group_Params,
      DL_Group>& group, RandomNumberGenerator& rng)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - auto::is_ecdh_named_curve
    - auto::is_kem
    - std::get<TLS::Group_Params>
    - std::make_unique<X448_PrivateKey>
    - is_dh_group
    - std::make_unique<X25519_PrivateKey>
    - auto::is_x25519
    - std::make_unique<ECDH_PrivateKey>
    - auto::is_x448
    - Botan::EC_Group::from_name
    - TLS_Exception
    - std::holds_alternative<TLS::Group_Params>
    - BOTAN_ASSERT_NOMSG
    - auto::to_string
    - std::make_unique<DH_PrivateKey>
    - get_dl_group
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> TLS::Callbacks::tls_generate_ephemeral_key(\n
      \  const std::variant<TLS::Group_Params, DL_Group>& group, RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls_generate_ephemeral_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:362,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:371,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:371,1
    - Dst: auto*::set_point_encoding
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - group
    - ' rng'
    - tls12_ecc_pubkey_encoding_format
    argTypes:
    - TLS::Group_Params
    - RandomNumberGenerator
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 376
    functionName: "TLS::Callbacks::tls12_generate_ephemeral_ecdh_key(\n   TLS::Group_Params
      group, RandomNumberGenerator& rng, EC_Point_Format tls12_ecc_pubkey_encoding_format)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - dynamic_cast<ECDH_PublicKey*>
    - auto*::set_point_encoding
    - tls_generate_ephemeral_key
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> TLS::Callbacks::tls12_generate_ephemeral_ecdh_key(\n
      \  TLS::Group_Params group, RandomNumberGenerator& rng, EC_Point_Format tls12_ecc_pubkey_encoding_format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_deserialize_peer_public_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:386,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:390,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:390,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:394,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:395,1
    - Dst: PK_Key_Agreement::derive_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:406,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:406,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:408,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - ' group'
    - ' private_key'
    - ' public_value'
    - ' rng'
    - ' policy'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - PK_Key_Agreement_Key
    - std::vector<uint8_t>
    - RandomNumberGenerator
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 410
    functionName: "TLS::Callbacks::tls_ephemeral_key_agreement(\n   const std::variant<TLS::Group_Params,
      DL_Group>& group,\n   const PK_Key_Agreement_Key& private_key,\n   const std::vector<uint8_t>&
      public_value,\n   RandomNumberGenerator& rng,\n   const Policy& policy)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - tls_deserialize_peer_public_key
    - PK_Key_Agreement::derive_key
    - TLS_Exception
    - BOTAN_ASSERT_NONNULL
    - check_peer_key_acceptable
    - what
    - auto::raw_public_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> TLS::Callbacks::tls_ephemeral_key_agreement(\n
      \  const std::variant<TLS::Group_Params, DL_Group>& group,\n   const PK_Key_Agreement_Key&
      private_key,\n   const std::vector<uint8_t>& public_value,\n   RandomNumberGenerator&
      rng,\n   const Policy& policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: TLS::Callbacks::tls_session_established(const Session_Summary& session)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void TLS::Callbacks::tls_session_established(const Session_Summary&
      session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:418,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' chain'
    - ' csr'
    argTypes:
    - std::vector<X509_Certificate>
    - Certificate_Status_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: "TLS::Callbacks::tls_provide_cert_status(const std::vector<X509_Certificate>&
      chain,\n                                                             const Certificate_Status_Request&
      csr)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> TLS::Callbacks::tls_provide_cert_status(const
      std::vector<X509_Certificate>& chain,\n                                                             const
      Certificate_Status_Request& csr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: TLS::Callbacks::tls_log_error(const char* err)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void TLS::Callbacks::tls_log_error(const char* err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - what
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: TLS::Callbacks::tls_log_debug(const char* what)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void TLS::Callbacks::tls_log_debug(const char* what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - descr
    - val
    - val_len
    argTypes:
    - char*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 432
    functionName: TLS::Callbacks::tls_log_debug_bin(const char* descr, const uint8_t
      val[], size_t val_len)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void TLS::Callbacks::tls_log_debug_bin(const char* descr, const uint8_t
      val[], size_t val_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - label
    - client_random
    - secret
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: "TLS::Callbacks::tls_ssl_key_log_data(std::string_view label,\n
      \                                         std::span<const uint8_t> client_random,\n
      \                                         std::span<const uint8_t> secret) const"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: "void TLS::Callbacks::tls_ssl_key_log_data(std::string_view label,\n
      \                                         std::span<const uint8_t> client_random,\n
      \                                         std::span<const uint8_t> secret) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:442,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:445,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - prf_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 446
    functionName: TLS::Callbacks::tls12_protocol_specific_kdf(std::string_view prf_algo)
      const
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::PBKDF::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<KDF>
    signature: std::unique_ptr<KDF> TLS::Callbacks::tls12_protocol_specific_kdf(std::string_view
      prf_algo) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: TLS::Callbacks::tls_inspect_handshake_msg(const Handshake_Message&
      /*unused*/)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS::Callbacks::tls_inspect_handshake_msg(const Handshake_Message&
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: TLS::Callbacks::tls_server_choose_app_protocol(const std::vector<std::string>&
      /*unused*/)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string TLS::Callbacks::tls_server_choose_app_protocol(const std::vector<std::string>&
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: TLS::Callbacks::tls_peer_network_identity()
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string TLS::Callbacks::tls_peer_network_identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: TLS::Callbacks::tls_current_timestamp()
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    linkageType: ''
    returnType: std::chrono::system_clock::time_point
    signature: std::chrono::system_clock::time_point TLS::Callbacks::tls_current_timestamp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: "TLS::Callbacks::tls_modify_extensions(Extensions& /*unused*/,\n
      \                                          Connection_Side /*unused*/,\n                                           Handshake_Type
      /*unused*/)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TLS::Callbacks::tls_modify_extensions(Extensions& /*unused*/,\n
      \                                          Connection_Side /*unused*/,\n                                           Handshake_Type
      /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: "TLS::Callbacks::tls_examine_extensions(const Extensions& /*unused*/,\n
      \                                           Connection_Side /*unused*/,\n                                            Handshake_Type
      /*unused*/)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TLS::Callbacks::tls_examine_extensions(const Extensions& /*unused*/,\n
      \                                           Connection_Side /*unused*/,\n                                            Handshake_Type
      /*unused*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lifetime_hint
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:85,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: TLS::Callbacks::tls_should_persist_resumption_information(const
      Session& session)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - version
    - lifetime_hint
    linkageType: ''
    returnType: bool
    signature: bool TLS::Callbacks::tls_should_persist_resumption_information(const
      Session& session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:94,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:95,1
    - Dst: require_cert_revocation_info
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:98,1
    - Dst: minimum_signature_strength
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:99,1
    - Dst: x509_path_validate
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:101,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:106,1
    - Dst: tls_verify_cert_chain_ocsp_timeout
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:107,1
    - Dst: Path_Validation_Result::successful_validation
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:110,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:111,1
    - Dst: Path_Validation_Result::result_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - ' cert_chain'
    - ' ocsp_responses'
    - ' trusted_roots'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - std::vector<X509_Certificate>
    - std::vector<std::optional<OCSP::Response>>
    - std::vector<Certificate_Store*>
    - Usage_Type
    - std::string_view
    - TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: "TLS::Callbacks::tls_verify_cert_chain(const std::vector<X509_Certificate>&
      cert_chain,\n                                           const std::vector<std::optional<OCSP::Response>>&
      ocsp_responses,\n                                           const std::vector<Certificate_Store*>&
      trusted_roots,\n                                           Usage_Type usage,\n
      \                                          std::string_view hostname,\n                                           const
      TLS::Policy& policy)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - minimum_signature_strength
    - Invalid_Argument
    - tls_current_timestamp
    - require_cert_revocation_info
    - Path_Validation_Result::result_string
    - TLS_Exception
    - x509_path_validate
    - Path_Validation_Result::successful_validation
    - tls_verify_cert_chain_ocsp_timeout
    - empty
    linkageType: ''
    returnType: void
    signature: "void TLS::Callbacks::tls_verify_cert_chain(const std::vector<X509_Certificate>&
      cert_chain,\n                                           const std::vector<std::optional<OCSP::Response>>&
      ocsp_responses,\n                                           const std::vector<Certificate_Store*>&
      trusted_roots,\n                                           Usage_Type usage,\n
      \                                          std::string_view hostname,\n                                           const
      TLS::Policy& policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:119,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - ' raw_public_key'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - Public_Key
    - Usage_Type
    - std::string_view
    - TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: "TLS::Callbacks::tls_verify_raw_public_key(const Public_Key& raw_public_key,\n
      \                                              Usage_Type usage,\n                                               std::string_view
      hostname,\n                                               const TLS::Policy&
      policy)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: "void TLS::Callbacks::tls_verify_raw_public_key(const Public_Key& raw_public_key,\n
      \                                              Usage_Type usage,\n                                               std::string_view
      hostname,\n                                               const TLS::Policy&
      policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' raw_response'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: TLS::Callbacks::tls_parse_ocsp_response(const std::vector<uint8_t>&
      raw_response)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    linkageType: ''
    returnType: std::optional<OCSP::Response>
    signature: std::optional<OCSP::Response> TLS::Callbacks::tls_parse_ocsp_response(const
      std::vector<uint8_t>& raw_response)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:136,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:137,1
    - Dst: tls_provide_cert_status
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' chain'
    - ' csr'
    argTypes:
    - std::vector<X509_Certificate>
    - Certificate_Status_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: "TLS::Callbacks::tls_provide_cert_chain_status(\n   const std::vector<X509_Certificate>&
      chain, const Certificate_Status_Request& csr)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - tls_provide_cert_status
    - size
    - empty
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: "std::vector<std::vector<uint8_t>> TLS::Callbacks::tls_provide_cert_chain_status(\n
      \  const std::vector<X509_Certificate>& chain, const Certificate_Status_Request&
      csr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK_Signer::sign_message
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - ' msg'
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: "TLS::Callbacks::tls_sign_message(const Private_Key& key,\n                                                      RandomNumberGenerator&
      rng,\n                                                      std::string_view
      padding,\n                                                      Signature_Format
      format,\n                                                      const std::vector<uint8_t>&
      msg)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - PK_Signer::sign_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> TLS::Callbacks::tls_sign_message(const Private_Key&
      key,\n                                                      RandomNumberGenerator&
      rng,\n                                                      std::string_view
      padding,\n                                                      Signature_Format
      format,\n                                                      const std::vector<uint8_t>&
      msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK_Verifier::verify_message
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' key'
    - padding
    - format
    - ' msg'
    - ' sig'
    argTypes:
    - Public_Key
    - std::string_view
    - Signature_Format
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: "TLS::Callbacks::tls_verify_message(const Public_Key& key,\n                                        std::string_view
      padding,\n                                        Signature_Format format,\n
      \                                       const std::vector<uint8_t>& msg,\n                                        const
      std::vector<uint8_t>& sig)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - PK_Verifier::verify_message
    linkageType: ''
    returnType: bool
    signature: "bool TLS::Callbacks::tls_verify_message(const Public_Key& key,\n                                        std::string_view
      padding,\n                                        Signature_Format format,\n
      \                                       const std::vector<uint8_t>& msg,\n                                        const
      std::vector<uint8_t>& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<DL_Group>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:166,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::is_dh_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 2
    functionsReached:
    - std::holds_alternative<DL_Group>
    - std::get<TLS::Group_Params>
    linkageType: ''
    returnType: bool
    signature: bool is_dh_group(const std::variant<TLS::Group_Params, DL_Group>& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:170,1
    - Dst: Botan::is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:170,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:177,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: Botan::get_dl_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - std::visit
    - Botan::DL_Group::from_name
    - Botan::to_string
    - BOTAN_ASSERT_NOMSG
    - Botan::is_dh_group
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group get_dl_group(const std::variant<TLS::Group_Params, DL_Group>&
      group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<DL_Group>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:166,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::is_dh_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 3
    functionsReached:
    - std::holds_alternative<DL_Group>
    - std::get<TLS::Group_Params>
    linkageType: ''
    returnType: bool
    signature: bool is_dh_group(const std::variant<TLS::Group_Params, DL_Group>& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:170,1
    - Dst: Botan::is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:170,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:177,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: Botan::get_dl_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - std::visit
    - Botan::DL_Group::from_name
    - Botan::to_string
    - BOTAN_ASSERT_NOMSG
    - Botan::is_dh_group
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group get_dl_group(const std::variant<TLS::Group_Params, DL_Group>&
      group)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:185,1
    - Dst: get_dl_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:188,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:190,1
    - Dst: auto::get_p
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:198,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:199,1
    - Dst: std::make_unique<DH_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:202,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:207,1
    - Dst: std::holds_alternative<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:207,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:208,1
    - Dst: auto::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:210,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:211,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:211,1
    - Dst: std::make_unique<ECDH_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:212,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:212,1
    - Dst: auto::is_x25519
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:216,1
    - Dst: std::make_unique<X25519_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:217,1
    - Dst: auto::is_x448
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:222,1
    - Dst: std::make_unique<X448_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:223,1
    - Dst: auto::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:228,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:229,1
    - Dst: auto::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:234,1
    - Dst: std::make_unique<ML_KEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:235,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:235,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:235,1
    - Dst: auto::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:240,1
    - Dst: std::make_unique<FrodoKEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:241,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:241,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:241,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:245,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - ' group'
    - key_bits
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 246
    functionName: "TLS::Callbacks::tls_deserialize_peer_public_key(\n   const std::variant<TLS::Group_Params,
      DL_Group>& group, std::span<const uint8_t> key_bits)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - auto::is_pure_ml_kem
    - auto::is_pqc_hybrid
    - Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
    - Botan::BigInt::from_bytes
    - get_dl_group
    - auto::is_pure_frodokem
    - EC_AffinePoint
    - std::make_unique<X25519_PublicKey>
    - std::holds_alternative<TLS::Group_Params>
    - std::make_unique<ML_KEM_PublicKey>
    - BOTAN_ASSERT_NOMSG
    - FrodoKEMMode
    - std::make_unique<X448_PublicKey>
    - Botan::EC_Group::from_name
    - std::make_unique<DH_PublicKey>
    - std::get<TLS::Group_Params>
    - Decoding_Error
    - is_dh_group
    - auto::is_x448
    - std::make_unique<FrodoKEM_PublicKey>
    - auto::get_p
    - ML_KEM_Mode
    - auto::to_string
    - std::make_unique<ECDH_PublicKey>
    - auto::is_x25519
    - auto::is_ecdh_named_curve
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: "std::unique_ptr<Public_Key> TLS::Callbacks::tls_deserialize_peer_public_key(\n
      \  const std::variant<TLS::Group_Params, DL_Group>& group, std::span<const uint8_t>
      key_bits)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TLS::Group_Params::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:250,1
    - Dst: std::make_unique<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:251,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:251,1
    - Dst: TLS::Group_Params::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:251,1
    - Dst: TLS::Group_Params::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:256,1
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:257,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:257,1
    - Dst: TLS::Group_Params::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:257,1
    - Dst: TLS::Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:262,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:263,1
    - Dst: tls_generate_ephemeral_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - group
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 268
    functionName: TLS::Callbacks::tls_kem_generate_key(TLS::Group_Params group, RandomNumberGenerator&
      rng)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - TLS::Group_Params::to_string
    - TLS::Group_Params::is_pqc_hybrid
    - std::make_unique<ML_KEM_PrivateKey>
    - std::make_unique<FrodoKEM_PrivateKey>
    - tls_generate_ephemeral_key
    - TLS::Group_Params::is_pure_ml_kem
    - TLS::Group_Params::is_pure_frodokem
    - FrodoKEMMode
    - ML_KEM_Mode
    - Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> TLS::Callbacks::tls_kem_generate_key(TLS::Group_Params
      group, RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:274,1
    - Dst: tls_deserialize_peer_public_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:277,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:281,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:281,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:285,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:286,1
    - Dst: PK_KEM_Encryptor
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:289,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:291,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:291,1
    - Dst: tls_generate_ephemeral_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:297,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:298,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:299,1
    - Dst: tls_ephemeral_key_agreement
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - group
    - ' encoded_public_key'
    - ' rng'
    - ' policy'
    argTypes:
    - TLS::Group_Params
    - std::vector<uint8_t>
    - RandomNumberGenerator
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 302
    functionName: "TLS::Callbacks::tls_kem_encapsulate(TLS::Group_Params group,\n
      \                                                     const std::vector<uint8_t>&
      encoded_public_key,\n                                                      RandomNumberGenerator&
      rng,\n                                                      const Policy& policy)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - PK_KEM_Encryptor
    - TLS::Group_Params::is_kem
    - tls_ephemeral_key_agreement
    - tls_deserialize_peer_public_key
    - tls_generate_ephemeral_key
    - auto::public_value
    - TLS_Exception
    - BOTAN_ASSERT_NONNULL
    - check_peer_key_acceptable
    - what
    linkageType: ''
    returnType: KEM_Encapsulation
    signature: "KEM_Encapsulation TLS::Callbacks::tls_kem_encapsulate(TLS::Group_Params
      group,\n                                                      const std::vector<uint8_t>&
      encoded_public_key,\n                                                      RandomNumberGenerator&
      rng,\n                                                      const Policy& policy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:309,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:311,1
    - Dst: PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:311,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:312,1
    - Dst: PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:314,1
    - Dst: dynamic_cast<const PK_Key_Agreement_Key&>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:318,1
    - Dst: tls_ephemeral_key_agreement
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:319,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - group
    - ' private_key'
    - ' encapsulated_bytes'
    - ' rng'
    - ' policy'
    argTypes:
    - TLS::Group_Params
    - Private_Key
    - std::vector<uint8_t>
    - RandomNumberGenerator
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 323
    functionName: "TLS::Callbacks::tls_kem_decapsulate(TLS::Group_Params group,\n
      \                                                          const Private_Key&
      private_key,\n                                                           const
      std::vector<uint8_t>& encapsulated_bytes,\n                                                           RandomNumberGenerator&
      rng,\n                                                           const Policy&
      policy)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - TLS::Group_Params::is_kem
    - PK_KEM_Decryptor::decrypt
    - tls_ephemeral_key_agreement
    - TLS_Exception
    - size
    - PK_KEM_Decryptor::encapsulated_key_length
    - dynamic_cast<const PK_Key_Agreement_Key&>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> TLS::Callbacks::tls_kem_decapsulate(TLS::Group_Params
      group,\n                                                           const Private_Key&
      private_key,\n                                                           const
      std::vector<uint8_t>& encapsulated_bytes,\n                                                           RandomNumberGenerator&
      rng,\n                                                           const Policy&
      policy)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:327,1
    - Dst: get_dl_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:328,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:329,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:332,1
    - Dst: std::holds_alternative<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:332,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:333,1
    - Dst: auto::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:335,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:336,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:336,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:337,1
    - Dst: auto::is_x25519
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:341,1
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:342,1
    - Dst: auto::is_x448
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:347,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:348,1
    - Dst: auto::is_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:352,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:353,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:356,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 357
    functionName: "TLS::Callbacks::tls_generate_ephemeral_key(\n   const std::variant<TLS::Group_Params,
      DL_Group>& group, RandomNumberGenerator& rng)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - auto::is_ecdh_named_curve
    - auto::is_kem
    - std::get<TLS::Group_Params>
    - std::make_unique<X448_PrivateKey>
    - is_dh_group
    - std::make_unique<X25519_PrivateKey>
    - auto::is_x25519
    - std::make_unique<ECDH_PrivateKey>
    - auto::is_x448
    - Botan::EC_Group::from_name
    - TLS_Exception
    - std::holds_alternative<TLS::Group_Params>
    - BOTAN_ASSERT_NOMSG
    - auto::to_string
    - std::make_unique<DH_PrivateKey>
    - get_dl_group
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> TLS::Callbacks::tls_generate_ephemeral_key(\n
      \  const std::variant<TLS::Group_Params, DL_Group>& group, RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls_generate_ephemeral_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:362,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:371,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:371,1
    - Dst: auto*::set_point_encoding
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - group
    - ' rng'
    - tls12_ecc_pubkey_encoding_format
    argTypes:
    - TLS::Group_Params
    - RandomNumberGenerator
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 376
    functionName: "TLS::Callbacks::tls12_generate_ephemeral_ecdh_key(\n   TLS::Group_Params
      group, RandomNumberGenerator& rng, EC_Point_Format tls12_ecc_pubkey_encoding_format)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - dynamic_cast<ECDH_PublicKey*>
    - auto*::set_point_encoding
    - tls_generate_ephemeral_key
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> TLS::Callbacks::tls12_generate_ephemeral_ecdh_key(\n
      \  TLS::Group_Params group, RandomNumberGenerator& rng, EC_Point_Format tls12_ecc_pubkey_encoding_format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_deserialize_peer_public_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:386,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:390,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:390,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:394,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:395,1
    - Dst: PK_Key_Agreement::derive_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:406,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:406,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:408,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - ' group'
    - ' private_key'
    - ' public_value'
    - ' rng'
    - ' policy'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    - PK_Key_Agreement_Key
    - std::vector<uint8_t>
    - RandomNumberGenerator
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 410
    functionName: "TLS::Callbacks::tls_ephemeral_key_agreement(\n   const std::variant<TLS::Group_Params,
      DL_Group>& group,\n   const PK_Key_Agreement_Key& private_key,\n   const std::vector<uint8_t>&
      public_value,\n   RandomNumberGenerator& rng,\n   const Policy& policy)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - tls_deserialize_peer_public_key
    - PK_Key_Agreement::derive_key
    - TLS_Exception
    - BOTAN_ASSERT_NONNULL
    - check_peer_key_acceptable
    - what
    - auto::raw_public_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> TLS::Callbacks::tls_ephemeral_key_agreement(\n
      \  const std::variant<TLS::Group_Params, DL_Group>& group,\n   const PK_Key_Agreement_Key&
      private_key,\n   const std::vector<uint8_t>& public_value,\n   RandomNumberGenerator&
      rng,\n   const Policy& policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: TLS::Callbacks::tls_session_established(const Session_Summary& session)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void TLS::Callbacks::tls_session_established(const Session_Summary&
      session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:418,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' chain'
    - ' csr'
    argTypes:
    - std::vector<X509_Certificate>
    - Certificate_Status_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: "TLS::Callbacks::tls_provide_cert_status(const std::vector<X509_Certificate>&
      chain,\n                                                             const Certificate_Status_Request&
      csr)"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> TLS::Callbacks::tls_provide_cert_status(const
      std::vector<X509_Certificate>& chain,\n                                                             const
      Certificate_Status_Request& csr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: TLS::Callbacks::tls_log_error(const char* err)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void TLS::Callbacks::tls_log_error(const char* err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - what
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: TLS::Callbacks::tls_log_debug(const char* what)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void TLS::Callbacks::tls_log_debug(const char* what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - descr
    - val
    - val_len
    argTypes:
    - char*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 432
    functionName: TLS::Callbacks::tls_log_debug_bin(const char* descr, const uint8_t
      val[], size_t val_len)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: void TLS::Callbacks::tls_log_debug_bin(const char* descr, const uint8_t
      val[], size_t val_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - label
    - client_random
    - secret
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: "TLS::Callbacks::tls_ssl_key_log_data(std::string_view label,\n
      \                                         std::span<const uint8_t> client_random,\n
      \                                         std::span<const uint8_t> secret) const"
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: "void TLS::Callbacks::tls_ssl_key_log_data(std::string_view label,\n
      \                                         std::span<const uint8_t> client_random,\n
      \                                         std::span<const uint8_t> secret) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:442,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:445,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - prf_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 446
    functionName: TLS::Callbacks::tls12_protocol_specific_kdf(std::string_view prf_algo)
      const
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::PBKDF::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<KDF>
    signature: std::unique_ptr<KDF> TLS::Callbacks::tls12_protocol_specific_kdf(std::string_view
      prf_algo) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:94,1
    - Dst: Botan::TLS::kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:94,1
    - Dst: Botan::TLS::auth_method_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:101,1
    - Dst: Botan::TLS::auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:101,1
    - Dst: Botan::TLS::kdf_algo_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:115,1
    - Dst: Botan::TLS::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:137,1
    - Dst: Botan::TLS::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:137,1
    - Dst: Botan::TLS::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:139,1
    - Dst: is_usable
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 186
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::kex_method
    - Botan::TLS::kex_method_to_string
    - Botan::TLS::ciphersuite_code
    - is_usable
    - Botan::TLS::auth_method_to_string
    - Botan::TLS::auth_method
    - Botan::TLS::kdf_algo_to_string
    linkageType: ''
    returnType: Ciphersuite
    signature: Ciphersuite final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::TLS::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::TLS::ciphersuite_code
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ciphersuite_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:94,1
    - Dst: Botan::TLS::kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::kex_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::kex_method
    - Botan::TLS::kex_method_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string kex_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::kex_method
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Kex_Algo
    signature: Kex_Algo kex_method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::auth_method_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:101,1
    - Dst: Botan::TLS::auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::TLS::sig_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::auth_method
    - Botan::TLS::auth_method_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string sig_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: Botan::TLS::auth_method
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Auth_Method
    signature: Auth_Method auth_method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::TLS::cipher_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string cipher_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::TLS::mac_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string mac_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kdf_algo_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan::TLS::prf_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::kdf_algo_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string prf_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan::TLS::cipher_keylen
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cipher_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::TLS::nonce_format
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Nonce_Format
    signature: Nonce_Format nonce_format() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan::TLS::mac_keylen
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mac_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::valid
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:137,1
    - Dst: Botan::TLS::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: operator<(const Ciphersuite& o) const
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::ciphersuite_code
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Ciphersuite& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: operator<(const uint16_t c) const
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::ciphersuite_code
    linkageType: ''
    returnType: bool
    signature: bool operator<(const uint16_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_usable
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 10
    argNames:
    - ciphersuite_code
    - iana_id
    - auth_method
    - kex_algo
    - cipher_algo
    - cipher_keylen
    - mac_algo
    - mac_keylen
    - prf_algo
    - nonce_format
    argTypes:
    - uint16_t
    - char*
    - Auth_Method
    - Kex_Algo
    - char*
    - size_t
    - char*
    - size_t
    - KDF_Algo
    - Nonce_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 164
    functionName: Botan::TLS::Ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - is_usable
    linkageType: ''
    returnType: void
    signature: "void Ciphersuite(uint16_t ciphersuite_code,\n                  const
      char* iana_id,\n                  Auth_Method auth_method,\n                  Kex_Algo
      kex_algo,\n                  const char* cipher_algo,\n                  size_t
      cipher_keylen,\n                  const char* mac_algo,\n                  size_t
      mac_keylen,\n                  KDF_Algo prf_algo,\n                  Nonce_Format
      nonce_format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:94,1
    - Dst: Botan::TLS::kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:94,1
    - Dst: Botan::TLS::auth_method_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:101,1
    - Dst: Botan::TLS::auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:101,1
    - Dst: Botan::TLS::kdf_algo_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:115,1
    - Dst: Botan::TLS::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:137,1
    - Dst: Botan::TLS::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:137,1
    - Dst: Botan::TLS::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:139,1
    - Dst: is_usable
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 186
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::kex_method
    - Botan::TLS::kex_method_to_string
    - Botan::TLS::ciphersuite_code
    - is_usable
    - Botan::TLS::auth_method_to_string
    - Botan::TLS::auth_method
    - Botan::TLS::kdf_algo_to_string
    linkageType: ''
    returnType: Ciphersuite
    signature: Ciphersuite final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::TLS::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::TLS::ciphersuite_code
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ciphersuite_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:94,1
    - Dst: Botan::TLS::kex_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::kex_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::kex_method
    - Botan::TLS::kex_method_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string kex_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::kex_method
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Kex_Algo
    signature: Kex_Algo kex_method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::auth_method_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:101,1
    - Dst: Botan::TLS::auth_method
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::TLS::sig_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::auth_method
    - Botan::TLS::auth_method_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string sig_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: Botan::TLS::auth_method
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Auth_Method
    signature: Auth_Method auth_method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::TLS::cipher_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string cipher_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::TLS::mac_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string mac_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kdf_algo_to_string
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan::TLS::prf_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::kdf_algo_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string prf_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan::TLS::cipher_keylen
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cipher_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::TLS::nonce_format
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Nonce_Format
    signature: Nonce_Format nonce_format() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan::TLS::mac_keylen
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mac_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::valid
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:137,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: operator<(const Ciphersuite& o) const
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - ciphersuite_code
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Ciphersuite& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: operator<(const uint16_t c) const
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - ciphersuite_code
    linkageType: ''
    returnType: bool
    signature: bool operator<(const uint16_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_usable
      Src: /src/botan/src/lib/tls/tls_ciphersuite.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 10
    argNames:
    - ciphersuite_code
    - iana_id
    - auth_method
    - kex_algo
    - cipher_algo
    - cipher_keylen
    - mac_algo
    - mac_keylen
    - prf_algo
    - nonce_format
    argTypes:
    - uint16_t
    - char*
    - Auth_Method
    - Kex_Algo
    - char*
    - size_t
    - char*
    - size_t
    - KDF_Algo
    - Nonce_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 164
    functionName: Botan::TLS::Ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.h
    functionUses: 0
    functionsReached:
    - is_usable
    linkageType: ''
    returnType: void
    signature: "void Ciphersuite(uint16_t ciphersuite_code,\n                  const
      char* iana_id,\n                  Auth_Method auth_method,\n                  Kex_Algo
      kex_algo,\n                  const char* cipher_algo,\n                  size_t
      cipher_keylen,\n                  const char* mac_algo,\n                  size_t
      mac_keylen,\n                  KDF_Algo prf_algo,\n                  Nonce_Format
      nonce_format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::TLS::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& /*handle*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::TLS::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& /*handle*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::TLS::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& /*handle*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::TLS::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& /*handle*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:41,1
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:41,1
    - Dst: std::make_unique<Server_Name_Indicator>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:44,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:47,1
    - Dst: std::make_unique<Certificate_Status_Request>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:50,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:53,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:56,1
    - Dst: std::make_unique<SRTP_Protection_Profiles>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:59,1
    - Dst: std::make_unique<Application_Layer_Protocol_Notification>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:62,1
    - Dst: std::make_unique<Client_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:65,1
    - Dst: std::make_unique<Server_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:68,1
    - Dst: std::make_unique<Record_Size_Limit>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:71,1
    - Dst: std::make_unique<Supported_Versions>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:74,1
    - Dst: std::make_unique<Supported_Point_Formats>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:78,1
    - Dst: std::make_unique<Renegotiation_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:81,1
    - Dst: std::make_unique<Extended_Master_Secret>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:84,1
    - Dst: std::make_unique<Encrypt_then_MAC>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:87,1
    - Dst: std::make_unique<Session_Ticket_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:90,1
    - Dst: std::make_unique<PSK>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:102,1
    - Dst: std::make_unique<EarlyDataIndication>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:105,1
    - Dst: std::make_unique<Cookie>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:108,1
    - Dst: std::make_unique<PSK_Key_Exchange_Modes>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:111,1
    - Dst: std::make_unique<Certificate_Authorities>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:114,1
    - Dst: std::make_unique<Key_Share>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:117,1
    - Dst: std::make_unique<Unknown_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 4
    argNames:
    - ' reader'
    - code
    - from
    - message_type
    argTypes:
    - TLS_Data_Reader
    - Extension_Code
    - Connection_Side
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 130
    functionName: Botan::TLS::make_extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PSK>
    - std::make_unique<Application_Layer_Protocol_Notification>
    - std::make_unique<Client_Certificate_Type>
    - std::make_unique<Record_Size_Limit>
    - std::make_unique<Session_Ticket_Extension>
    - std::make_unique<EarlyDataIndication>
    - std::make_unique<Renegotiation_Extension>
    - std::make_unique<Signature_Algorithms>
    - std::make_unique<Certificate_Status_Request>
    - std::make_unique<Server_Certificate_Type>
    - std::make_unique<SRTP_Protection_Profiles>
    - std::make_unique<Certificate_Authorities>
    - std::make_unique<Key_Share>
    - std::make_unique<Extended_Master_Secret>
    - std::make_unique<Encrypt_then_MAC>
    - std::make_unique<Supported_Point_Formats>
    - std::make_unique<PSK_Key_Exchange_Modes>
    - Botan::TLS::remaining_bytes
    - std::make_unique<Signature_Algorithms_Cert>
    - std::make_unique<Server_Name_Indicator>
    - std::make_unique<Unknown_Extension>
    - std::make_unique<Supported_Groups>
    - static_cast<uint16_t>
    - std::make_unique<Supported_Versions>
    - std::make_unique<Cookie>
    linkageType: ''
    returnType: std::unique_ptr<Extension>
    signature: "std::unique_ptr<Extension> make_extension(TLS_Data_Reader& reader,\n
      \                                         Extension_Code code,\n                                          const
      Connection_Side from,\n                                          const Handshake_Type
      message_type)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:41,1
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:41,1
    - Dst: std::make_unique<Server_Name_Indicator>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:44,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:47,1
    - Dst: std::make_unique<Certificate_Status_Request>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:50,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:53,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:56,1
    - Dst: std::make_unique<SRTP_Protection_Profiles>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:59,1
    - Dst: std::make_unique<Application_Layer_Protocol_Notification>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:62,1
    - Dst: std::make_unique<Client_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:65,1
    - Dst: std::make_unique<Server_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:68,1
    - Dst: std::make_unique<Record_Size_Limit>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:71,1
    - Dst: std::make_unique<Supported_Versions>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:74,1
    - Dst: std::make_unique<Supported_Point_Formats>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:78,1
    - Dst: std::make_unique<Renegotiation_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:81,1
    - Dst: std::make_unique<Extended_Master_Secret>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:84,1
    - Dst: std::make_unique<Encrypt_then_MAC>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:87,1
    - Dst: std::make_unique<Session_Ticket_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:90,1
    - Dst: std::make_unique<PSK>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:102,1
    - Dst: std::make_unique<EarlyDataIndication>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:105,1
    - Dst: std::make_unique<Cookie>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:108,1
    - Dst: std::make_unique<PSK_Key_Exchange_Modes>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:111,1
    - Dst: std::make_unique<Certificate_Authorities>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:114,1
    - Dst: std::make_unique<Key_Share>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:117,1
    - Dst: std::make_unique<Unknown_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 4
    argNames:
    - ' reader'
    - code
    - from
    - message_type
    argTypes:
    - TLS_Data_Reader
    - Extension_Code
    - Connection_Side
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 130
    functionName: Botan::TLS::make_extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PSK>
    - std::make_unique<Application_Layer_Protocol_Notification>
    - std::make_unique<Client_Certificate_Type>
    - std::make_unique<Record_Size_Limit>
    - std::make_unique<Session_Ticket_Extension>
    - std::make_unique<EarlyDataIndication>
    - std::make_unique<Renegotiation_Extension>
    - std::make_unique<Signature_Algorithms>
    - std::make_unique<Certificate_Status_Request>
    - std::make_unique<Server_Certificate_Type>
    - std::make_unique<SRTP_Protection_Profiles>
    - std::make_unique<Certificate_Authorities>
    - std::make_unique<Key_Share>
    - std::make_unique<Extended_Master_Secret>
    - std::make_unique<Encrypt_then_MAC>
    - std::make_unique<Supported_Point_Formats>
    - std::make_unique<PSK_Key_Exchange_Modes>
    - Botan::TLS::remaining_bytes
    - std::make_unique<Signature_Algorithms_Cert>
    - std::make_unique<Server_Name_Indicator>
    - std::make_unique<Unknown_Extension>
    - std::make_unique<Supported_Groups>
    - static_cast<uint16_t>
    - std::make_unique<Supported_Versions>
    - std::make_unique<Cookie>
    linkageType: ''
    returnType: std::unique_ptr<Extension>
    signature: "std::unique_ptr<Extension> make_extension(TLS_Data_Reader& reader,\n
      \                                         Extension_Code code,\n                                          const
      Connection_Side from,\n                                          const Handshake_Type
      message_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Extensions::~Extensions()
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Extensions::~Extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:138,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:138,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:138,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:138,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:140,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Extensions::get
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - cend
    - cbegin
    - auto::get
    - std::find_if
    - type
    - end
    linkageType: ''
    returnType: Extension
    signature: Extension * Extensions::get(Extension_Code type) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:144,1
    - Dst: std::unique_ptr<Extension>::type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:144,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:145,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:146,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:146,1
    - Dst: std::unique_ptr<Extension>::type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:146,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:149,1
    - Dst: std::unique_ptr<Extension>::release
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - extn
    argTypes:
    - std::unique_ptr<Extension>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Extensions::add
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::unique_ptr<Extension>::release
    - std::to_string
    - static_cast<uint16_t>
    - emplace_back
    - std::unique_ptr<Extension>::type
    - has
    linkageType: ''
    returnType: void
    signature: void Extensions::add(std::unique_ptr<Extension> extn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:153,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:154,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:156,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:157,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:160,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:161,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:162,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: Botan::TLS::Extensions::has
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:166,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:167,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:172,1
    - Dst: Botan::TLS::Extensions::add
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:174,1
    - Dst: make_extension
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:174,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - ' reader'
    - from
    - message_type
    argTypes:
    - TLS_Data_Reader
    - Connection_Side
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 178
    functionName: Botan::TLS::Extensions::deserialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - make_extension
    - Decoding_Error
    - remaining_bytes
    - get_uint16_t
    - Botan::TLS::Extensions::has
    - TLS_Exception
    - Botan::TLS::Extensions::add
    - TLS_Data_Reader::assert_done
    - static_cast<Extension_Code>
    - has_remaining
    linkageType: ''
    returnType: void
    signature: void Extensions::deserialize(TLS_Data_Reader& reader, const Connection_Side
      from, const Handshake_Type message_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Extensions::extension_types
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:182,1
    - Dst: std::set_difference
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:185,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:191,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:191,1
    - Dst: std::vector::cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:191,1
    - Dst: Botan::TLS::Extensions::get
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:192,1
    - Dst: auto::is_implemented
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:193,1
    - Dst: std::vector::cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:197,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' allowed_extensions'
    - allow_unknown_extensions
    argTypes:
    - std::set<Extension_Code>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 201
    functionName: Botan::TLS::Extensions::contains_other_than
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - cend
    - Botan::TLS::Extensions::get
    - cbegin
    - std::vector::cend
    - Botan::TLS::Extensions::extension_types
    - std::find_if
    - auto::is_implemented
    - std::vector::cbegin
    - std::back_inserter
    - auto::cbegin
    - auto::end
    - std::set_difference
    linkageType: ''
    returnType: bool
    signature: "bool Extensions::contains_other_than(const std::set<Extension_Code>&
      allowed_extensions,\n                                     const bool allow_unknown_extensions)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:205,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:205,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:205,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:205,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:208,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:209,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: Botan::TLS::Extensions::take
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    - erase
    - begin
    - std::find_if
    - type
    - end
    linkageType: ''
    returnType: std::unique_ptr<Extension>
    signature: std::unique_ptr<Extension> Extensions::take(Extension_Code type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:220,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:224,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:224,1
    - Dst: Botan::TLS::Extensions::serialize
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:226,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:228,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:228,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:229,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:229,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:232,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:232,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:232,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:232,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:237,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:237,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:239,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:240,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:243,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 248
    functionName: Botan::TLS::Extensions::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - std::vector<uint8_t>
    - static_cast<uint16_t>
    - get_byte<0>
    - Botan::TLS::Extensions::serialize
    - type
    - empty
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Extensions::serialize(Connection_Side whoami)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:252,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:253,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:253,1
    - Dst: std::inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:253,1
    - Dst: std::set::begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:253,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: Botan::TLS::Extensions::extension_types
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 1
    functionsReached:
    - std::inserter
    - cend
    - cbegin
    - std::set::begin
    - transform
    - type
    linkageType: ''
    returnType: std::set<Extension_Code>
    signature: std::set<Extension_Code> Extensions::extension_types() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - ' reader'
    - extension_size
    argTypes:
    - Extension_Code
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Unknown_Extension::Unknown_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    linkageType: ''
    returnType: void
    signature: void Unknown_Extension::Unknown_Extension(Extension_Code type, TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Botan::TLS::Unknown_Extension::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Unknown_Extension::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:274,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:277,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:281,1
    - Dst: get_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:286,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:287,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:287,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 294
    functionName: Botan::TLS::Server_Name_Indicator::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_byte
    - get_string
    - Decoding_Error
    - get_uint16_t
    - static_cast<uint16_t>
    - discard_next
    - size
    linkageType: ''
    returnType: void
    signature: void Server_Name_Indicator::Server_Name_Indicator(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:307,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:309,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:309,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:309,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:310,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:310,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:310,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:311,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:313,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:313,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:313,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:314,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:314,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:314,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 319
    functionName: Botan::TLS::Server_Name_Indicator::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - as_span_of_bytes
    - static_cast<uint16_t>
    - get_byte<0>
    - size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Name_Indicator::serialize(Connection_Side
      whoami) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:324,1
    - Dst: string_to_ipv4
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:328,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 338
    functionName: Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - string_to_ipv4
    - std::string_view::find
    linkageType: ''
    returnType: bool
    signature: bool Server_Name_Indicator::hostname_acceptable_for_sni(std::string_view
      hostname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:347,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:352,1
    - Dst: get_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:356,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:358,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:359,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:362,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:363,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:366,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:368,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:375,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:376,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:378,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:378,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - from
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 380
    functionName: Botan::TLS::Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - get_string
    - Decoding_Error
    - get_uint16_t
    - std::to_string
    - std::string::size
    - TLS_Exception
    - size
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification(TLS_Data_Reader&
      reader,\n                                                                                 uint16_t
      extension_size,\n                                                                                 Connection_Side
      from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:383,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:383,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: Botan::TLS::Application_Layer_Protocol_Notification::single_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - front
    - size
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::string
    signature: std::string Application_Layer_Protocol_Notification::single_protocol()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:391,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:392,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:394,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:395,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:399,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:399,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:399,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:400,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:400,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:400,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 403
    functionName: Botan::TLS::Application_Layer_Protocol_Notification::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - std::vector::size
    - TLS_Exception
    - append_tls_length_value
    - empty
    - length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Application_Layer_Protocol_Notification::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:406,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:407,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - supported_cert_types
    argTypes:
    - std::vector<Certificate_Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: Botan::TLS::Certificate_Type_Base::Certificate_Type_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ARG_CHECK
    - empty
    linkageType: ''
    returnType: void
    signature: void Certificate_Type_Base::Certificate_Type_Base(std::vector<Certificate_Type>
      supported_cert_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: accepted_client_certificate_types
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' cct'
    - ' policy'
    argTypes:
    - Client_Certificate_Type
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 411
    functionName: Botan::TLS::Client_Certificate_Type::Client_Certificate_Type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - accepted_client_certificate_types
    linkageType: ''
    returnType: void
    signature: void Client_Certificate_Type::Client_Certificate_Type(const Client_Certificate_Type&
      cct, const Policy& policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: accepted_server_certificate_types
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sct'
    - ' policy'
    argTypes:
    - Server_Certificate_Type
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: Botan::TLS::Server_Certificate_Type::Server_Certificate_Type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - accepted_server_certificate_types
    linkageType: ''
    returnType: void
    signature: void Server_Certificate_Type::Server_Certificate_Type(const Server_Certificate_Type&
      sct, const Policy& policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:426,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:427,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' certificate_type_from_client'
    - ' server_preference'
    argTypes:
    - Certificate_Type_Base
    - std::vector<Certificate_Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 438
    functionName: Botan::TLS::Certificate_Type_Base::Certificate_Type_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - value_exists
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Certificate_Type_Base::Certificate_Type_Base(const Certificate_Type_Base&
      certificate_type_from_client,\n                                             const
      std::vector<Certificate_Type>& server_preference)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:443,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:447,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:448,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:448,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:449,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:451,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:452,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:452,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:452,1
    - Dst: static_cast<Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:453,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:460,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:462,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:463,1
    - Dst: static_cast<Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:463,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - from
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 465
    functionName: Botan::TLS::Certificate_Type_Base::Certificate_Type_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_tls_length_value
    - auto::begin
    - get_byte
    - auto::size
    - Decoding_Error
    - static_cast<Certificate_Type>
    - transform
    - static_cast<size_t>
    - std::back_inserter
    - auto::end
    - push_back
    linkageType: ''
    returnType: void
    signature: void Certificate_Type_Base::Certificate_Type_Base(TLS_Data_Reader&
      reader, uint16_t extension_size, Connection_Side from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:471,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:472,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:472,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:472,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:473,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:475,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:477,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:477,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:478,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:478,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 481
    functionName: Botan::TLS::Certificate_Type_Base::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - front
    - transform
    - begin
    - size
    - BOTAN_ASSERT_NOMSG
    - std::back_inserter
    - append_tls_length_value
    - static_cast<uint8_t>
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Type_Base::serialize(Connection_Side
      whoami) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:484,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:485,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:491,1
    - Dst: Botan::TLS::Certificate_Type_Base::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:491,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:492,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:493,1
    - Dst: certificate_type_to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:494,1
    - Dst: Botan::TLS::Certificate_Type_Base::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' from_server'
    argTypes:
    - Certificate_Type_Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 496
    functionName: Botan::TLS::Certificate_Type_Base::validate_selection
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - value_exists
    - certificate_type_to_string
    - TLS_Exception
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Certificate_Type_Base::selected_certificate_type
    linkageType: ''
    returnType: void
    signature: void Certificate_Type_Base::validate_selection(const Certificate_Type_Base&
      from_server) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:499,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:500,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:500,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: Botan::TLS::Certificate_Type_Base::selected_certificate_type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 1
    functionsReached:
    - front
    - BOTAN_ASSERT_NOMSG
    - size
    linkageType: ''
    returnType: Certificate_Type
    signature: Certificate_Type Certificate_Type_Base::selected_certificate_type()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' groups'
    argTypes:
    - std::vector<Group_Params>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: Botan::TLS::Supported_Groups::Supported_Groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Supported_Groups::Supported_Groups(const std::vector<Group_Params>&
      groups)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 508
    functionName: '& Supported_Groups::groups() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> & Supported_Groups::groups() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pure_ecc_group
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:513,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 518
    functionName: Botan::TLS::Supported_Groups::ec_groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - is_pure_ecc_group
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Supported_Groups::ec_groups() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_in_ffdhe_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:523,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 528
    functionName: Botan::TLS::Supported_Groups::dh_groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - is_in_ffdhe_range
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Supported_Groups::dh_groups() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:534,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:537,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:537,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:538,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:538,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:542,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:542,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:542,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:543,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:543,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 546
    functionName: Botan::TLS::Supported_Groups::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - wire_code
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Supported_Groups::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:549,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:552,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:556,1
    - Dst: static_cast<Group_Params>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:562,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:562,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:564,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:565,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 568
    functionName: Botan::TLS::Supported_Groups::Supported_Groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_uint16_t
    - value_exists
    - static_cast<Group_Params>
    - push_back
    linkageType: ''
    returnType: void
    signature: void Supported_Groups::Supported_Groups(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:573,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:573,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:577,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:577,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:579,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:579,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:580,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:580,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 588
    functionName: Botan::TLS::serialize_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::wire_code
    - std::vector::push_back
    - BOTAN_ASSERT
    - static_cast<uint16_t>
    - size
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize_signature_algorithms(const std::vector<Signature_Scheme>&
      schemes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:591,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:594,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:598,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:600,1
    - Dst: Botan::TLS::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 605
    functionName: Botan::TLS::parse_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::get_uint16_t
    - std::vector::reserve
    - std::vector::emplace_back
    - Decoding_Error
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> parse_signature_algorithms(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:573,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:573,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:577,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:577,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:579,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:579,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:580,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:580,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 588
    functionName: Botan::TLS::serialize_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::wire_code
    - std::vector::push_back
    - BOTAN_ASSERT
    - static_cast<uint16_t>
    - size
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize_signature_algorithms(const std::vector<Signature_Scheme>&
      schemes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:591,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:594,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:598,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:600,1
    - Dst: Botan::TLS::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 605
    functionName: Botan::TLS::parse_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::get_uint16_t
    - std::vector::reserve
    - std::vector::emplace_back
    - Decoding_Error
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> parse_signature_algorithms(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: Botan::TLS::Signature_Algorithms::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - serialize_signature_algorithms
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature_Algorithms::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 614
    functionName: Botan::TLS::Signature_Algorithms::Signature_Algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - parse_signature_algorithms
    linkageType: ''
    returnType: void
    signature: void Signature_Algorithms::Signature_Algorithms(TLS_Data_Reader& reader,
      uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 618
    functionName: Botan::TLS::Signature_Algorithms_Cert::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - serialize_signature_algorithms
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature_Algorithms_Cert::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: Botan::TLS::Signature_Algorithms_Cert::Signature_Algorithms_Cert
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - parse_signature_algorithms
    linkageType: ''
    returnType: void
    signature: void Signature_Algorithms_Cert::Signature_Algorithms_Cert(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:624,1
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:627,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:627,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:628,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:631,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 634
    functionName: Botan::TLS::SRTP_Protection_Profiles::SRTP_Protection_Profiles
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - std::vector::size
    - size
    - get_range
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void SRTP_Protection_Profiles::SRTP_Protection_Profiles(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:639,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:639,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:640,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:641,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:641,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:644,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:644,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:645,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:645,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 651
    functionName: Botan::TLS::SRTP_Protection_Profiles::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SRTP_Protection_Profiles::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:657,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:657,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:658,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:658,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:659,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:659,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:661,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:661,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:662,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:662,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:664,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:667,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:667,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:668,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 673
    functionName: Botan::TLS::Supported_Versions::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - major_version
    - std::vector::push_back
    - size
    - BOTAN_ASSERT_NOMSG
    - minor_version
    - static_cast<uint8_t>
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Supported_Versions::serialize(Connection_Side
      whoami) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:684,1
    - Dst: allow_tls13
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:685,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:686,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:692,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:693,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:694,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:697,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:698,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:704,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - offer
    - ' policy'
    argTypes:
    - Protocol_Version
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 705
    functionName: Botan::TLS::Supported_Versions::Supported_Versions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - allow_tls12
    - Protocol_Version::is_datagram_protocol
    - BOTAN_UNUSED
    - allow_tls13
    - allow_dtls12
    - push_back
    linkageType: ''
    returnType: void
    signature: void Supported_Versions::Supported_Versions(Protocol_Version offer,
      const Policy& policy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:710,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:712,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:712,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:712,1
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:714,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:717,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:717,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:720,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:721,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - from
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 724
    functionName: Botan::TLS::Supported_Versions::Supported_Versions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - get_uint16_t
    - Protocol_Version
    - Decoding_Error
    - get_range
    - push_back
    linkageType: ''
    returnType: void
    signature: void Supported_Versions::Supported_Versions(TLS_Data_Reader& reader,
      uint16_t extension_size, Connection_Side from)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 733
    functionName: Botan::TLS::Supported_Versions::supports
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Supported_Versions::supports(Protocol_Version version) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:736,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - limit
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 739
    functionName: Botan::TLS::Record_Size_Limit::Record_Size_Limit
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void Record_Size_Limit::Record_Size_Limit(const uint16_t limit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:743,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:746,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:762,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:771,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - from
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 773
    functionName: Botan::TLS::Record_Size_Limit::Record_Size_Limit
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - get_uint16_t
    linkageType: ''
    returnType: void
    signature: void Record_Size_Limit::Record_Size_Limit(TLS_Data_Reader& reader,
      uint16_t extension_size, Connection_Side from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:778,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:778,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:779,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 782
    functionName: Botan::TLS::Record_Size_Limit::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - get_byte<0>
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Record_Size_Limit::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:41,1
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:41,1
    - Dst: std::make_unique<Server_Name_Indicator>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:44,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:47,1
    - Dst: std::make_unique<Certificate_Status_Request>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:50,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:53,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:56,1
    - Dst: std::make_unique<SRTP_Protection_Profiles>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:59,1
    - Dst: std::make_unique<Application_Layer_Protocol_Notification>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:62,1
    - Dst: std::make_unique<Client_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:65,1
    - Dst: std::make_unique<Server_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:68,1
    - Dst: std::make_unique<Record_Size_Limit>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:71,1
    - Dst: std::make_unique<Supported_Versions>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:74,1
    - Dst: std::make_unique<Supported_Point_Formats>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:78,1
    - Dst: std::make_unique<Renegotiation_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:81,1
    - Dst: std::make_unique<Extended_Master_Secret>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:84,1
    - Dst: std::make_unique<Encrypt_then_MAC>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:87,1
    - Dst: std::make_unique<Session_Ticket_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:90,1
    - Dst: std::make_unique<PSK>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:102,1
    - Dst: std::make_unique<EarlyDataIndication>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:105,1
    - Dst: std::make_unique<Cookie>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:108,1
    - Dst: std::make_unique<PSK_Key_Exchange_Modes>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:111,1
    - Dst: std::make_unique<Certificate_Authorities>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:114,1
    - Dst: std::make_unique<Key_Share>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:117,1
    - Dst: std::make_unique<Unknown_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 4
    argNames:
    - ' reader'
    - code
    - from
    - message_type
    argTypes:
    - TLS_Data_Reader
    - Extension_Code
    - Connection_Side
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 130
    functionName: Botan::TLS::make_extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PSK>
    - std::make_unique<Application_Layer_Protocol_Notification>
    - std::make_unique<Client_Certificate_Type>
    - std::make_unique<Record_Size_Limit>
    - std::make_unique<Session_Ticket_Extension>
    - std::make_unique<EarlyDataIndication>
    - std::make_unique<Renegotiation_Extension>
    - std::make_unique<Signature_Algorithms>
    - std::make_unique<Certificate_Status_Request>
    - std::make_unique<Server_Certificate_Type>
    - std::make_unique<SRTP_Protection_Profiles>
    - std::make_unique<Certificate_Authorities>
    - std::make_unique<Key_Share>
    - std::make_unique<Extended_Master_Secret>
    - std::make_unique<Encrypt_then_MAC>
    - std::make_unique<Supported_Point_Formats>
    - std::make_unique<PSK_Key_Exchange_Modes>
    - Botan::TLS::remaining_bytes
    - std::make_unique<Signature_Algorithms_Cert>
    - std::make_unique<Server_Name_Indicator>
    - std::make_unique<Unknown_Extension>
    - std::make_unique<Supported_Groups>
    - static_cast<uint16_t>
    - std::make_unique<Supported_Versions>
    - std::make_unique<Cookie>
    linkageType: ''
    returnType: std::unique_ptr<Extension>
    signature: "std::unique_ptr<Extension> make_extension(TLS_Data_Reader& reader,\n
      \                                         Extension_Code code,\n                                          const
      Connection_Side from,\n                                          const Handshake_Type
      message_type)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:41,1
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:41,1
    - Dst: std::make_unique<Server_Name_Indicator>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:44,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:47,1
    - Dst: std::make_unique<Certificate_Status_Request>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:50,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:53,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:56,1
    - Dst: std::make_unique<SRTP_Protection_Profiles>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:59,1
    - Dst: std::make_unique<Application_Layer_Protocol_Notification>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:62,1
    - Dst: std::make_unique<Client_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:65,1
    - Dst: std::make_unique<Server_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:68,1
    - Dst: std::make_unique<Record_Size_Limit>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:71,1
    - Dst: std::make_unique<Supported_Versions>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:74,1
    - Dst: std::make_unique<Supported_Point_Formats>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:78,1
    - Dst: std::make_unique<Renegotiation_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:81,1
    - Dst: std::make_unique<Extended_Master_Secret>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:84,1
    - Dst: std::make_unique<Encrypt_then_MAC>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:87,1
    - Dst: std::make_unique<Session_Ticket_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:90,1
    - Dst: std::make_unique<PSK>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:102,1
    - Dst: std::make_unique<EarlyDataIndication>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:105,1
    - Dst: std::make_unique<Cookie>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:108,1
    - Dst: std::make_unique<PSK_Key_Exchange_Modes>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:111,1
    - Dst: std::make_unique<Certificate_Authorities>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:114,1
    - Dst: std::make_unique<Key_Share>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:117,1
    - Dst: std::make_unique<Unknown_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 4
    argNames:
    - ' reader'
    - code
    - from
    - message_type
    argTypes:
    - TLS_Data_Reader
    - Extension_Code
    - Connection_Side
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 130
    functionName: Botan::TLS::make_extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PSK>
    - std::make_unique<Application_Layer_Protocol_Notification>
    - std::make_unique<Client_Certificate_Type>
    - std::make_unique<Record_Size_Limit>
    - std::make_unique<Session_Ticket_Extension>
    - std::make_unique<EarlyDataIndication>
    - std::make_unique<Renegotiation_Extension>
    - std::make_unique<Signature_Algorithms>
    - std::make_unique<Certificate_Status_Request>
    - std::make_unique<Server_Certificate_Type>
    - std::make_unique<SRTP_Protection_Profiles>
    - std::make_unique<Certificate_Authorities>
    - std::make_unique<Key_Share>
    - std::make_unique<Extended_Master_Secret>
    - std::make_unique<Encrypt_then_MAC>
    - std::make_unique<Supported_Point_Formats>
    - std::make_unique<PSK_Key_Exchange_Modes>
    - Botan::TLS::remaining_bytes
    - std::make_unique<Signature_Algorithms_Cert>
    - std::make_unique<Server_Name_Indicator>
    - std::make_unique<Unknown_Extension>
    - std::make_unique<Supported_Groups>
    - static_cast<uint16_t>
    - std::make_unique<Supported_Versions>
    - std::make_unique<Cookie>
    linkageType: ''
    returnType: std::unique_ptr<Extension>
    signature: "std::unique_ptr<Extension> make_extension(TLS_Data_Reader& reader,\n
      \                                         Extension_Code code,\n                                          const
      Connection_Side from,\n                                          const Handshake_Type
      message_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Extensions::~Extensions()
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Extensions::~Extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:138,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:138,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:138,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:138,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:140,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Extensions::get
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 1
    functionsReached:
    - cend
    - cbegin
    - auto::get
    - std::find_if
    - type
    - end
    linkageType: ''
    returnType: Extension
    signature: Extension * Extensions::get(Extension_Code type) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:144,1
    - Dst: std::unique_ptr<Extension>::type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:144,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:145,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:146,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:146,1
    - Dst: std::unique_ptr<Extension>::type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:146,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:149,1
    - Dst: std::unique_ptr<Extension>::release
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - extn
    argTypes:
    - std::unique_ptr<Extension>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Extensions::add
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 1
    functionsReached:
    - Invalid_Argument
    - std::unique_ptr<Extension>::release
    - std::to_string
    - static_cast<uint16_t>
    - emplace_back
    - std::unique_ptr<Extension>::type
    - has
    linkageType: ''
    returnType: void
    signature: void Extensions::add(std::unique_ptr<Extension> extn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:153,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:154,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:156,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:157,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:160,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:161,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:162,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: Botan::TLS::Extensions::has
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:166,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:167,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:172,1
    - Dst: Botan::TLS::Extensions::add
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:174,1
    - Dst: make_extension
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:174,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - ' reader'
    - from
    - message_type
    argTypes:
    - TLS_Data_Reader
    - Connection_Side
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 178
    functionName: Botan::TLS::Extensions::deserialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - make_extension
    - Decoding_Error
    - remaining_bytes
    - get_uint16_t
    - Botan::TLS::Extensions::has
    - TLS_Exception
    - Botan::TLS::Extensions::add
    - TLS_Data_Reader::assert_done
    - static_cast<Extension_Code>
    - has_remaining
    linkageType: ''
    returnType: void
    signature: void Extensions::deserialize(TLS_Data_Reader& reader, const Connection_Side
      from, const Handshake_Type message_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Extensions::extension_types
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:182,1
    - Dst: std::set_difference
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:185,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:191,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:191,1
    - Dst: std::vector::cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:191,1
    - Dst: Botan::TLS::Extensions::get
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:192,1
    - Dst: auto::is_implemented
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:193,1
    - Dst: std::vector::cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:197,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' allowed_extensions'
    - allow_unknown_extensions
    argTypes:
    - std::set<Extension_Code>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 201
    functionName: Botan::TLS::Extensions::contains_other_than
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - cend
    - Botan::TLS::Extensions::get
    - cbegin
    - std::vector::cend
    - Botan::TLS::Extensions::extension_types
    - std::find_if
    - auto::is_implemented
    - std::vector::cbegin
    - std::back_inserter
    - auto::cbegin
    - auto::end
    - std::set_difference
    linkageType: ''
    returnType: bool
    signature: "bool Extensions::contains_other_than(const std::set<Extension_Code>&
      allowed_extensions,\n                                     const bool allow_unknown_extensions)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:205,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:205,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:205,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:205,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:208,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:209,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: Botan::TLS::Extensions::take
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    - erase
    - begin
    - std::find_if
    - type
    - end
    linkageType: ''
    returnType: std::unique_ptr<Extension>
    signature: std::unique_ptr<Extension> Extensions::take(Extension_Code type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:220,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:224,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:224,1
    - Dst: Botan::TLS::Extensions::serialize
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:226,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:228,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:228,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:229,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:229,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:232,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:232,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:232,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:232,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:237,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:237,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:239,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:240,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:243,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 248
    functionName: Botan::TLS::Extensions::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - std::vector<uint8_t>
    - static_cast<uint16_t>
    - get_byte<0>
    - Botan::TLS::Extensions::serialize
    - type
    - empty
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Extensions::serialize(Connection_Side whoami)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:252,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:253,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:253,1
    - Dst: std::inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:253,1
    - Dst: std::set::begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:253,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: Botan::TLS::Extensions::extension_types
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 2
    functionsReached:
    - std::inserter
    - cend
    - cbegin
    - std::set::begin
    - transform
    - type
    linkageType: ''
    returnType: std::set<Extension_Code>
    signature: std::set<Extension_Code> Extensions::extension_types() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - ' reader'
    - extension_size
    argTypes:
    - Extension_Code
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Unknown_Extension::Unknown_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    linkageType: ''
    returnType: void
    signature: void Unknown_Extension::Unknown_Extension(Extension_Code type, TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Botan::TLS::Unknown_Extension::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Unknown_Extension::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:274,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:277,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:281,1
    - Dst: get_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:286,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:287,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:287,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 294
    functionName: Botan::TLS::Server_Name_Indicator::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_byte
    - get_string
    - Decoding_Error
    - get_uint16_t
    - static_cast<uint16_t>
    - discard_next
    - size
    linkageType: ''
    returnType: void
    signature: void Server_Name_Indicator::Server_Name_Indicator(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:307,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:309,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:309,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:309,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:310,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:310,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:310,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:311,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:313,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:313,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:313,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:314,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:314,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:314,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 319
    functionName: Botan::TLS::Server_Name_Indicator::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - as_span_of_bytes
    - static_cast<uint16_t>
    - get_byte<0>
    - size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Name_Indicator::serialize(Connection_Side
      whoami) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:324,1
    - Dst: string_to_ipv4
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:328,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 338
    functionName: Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - string_to_ipv4
    - std::string_view::find
    linkageType: ''
    returnType: bool
    signature: bool Server_Name_Indicator::hostname_acceptable_for_sni(std::string_view
      hostname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:347,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:352,1
    - Dst: get_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:356,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:358,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:359,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:362,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:363,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:366,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:368,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:375,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:376,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:378,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:378,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - from
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 380
    functionName: Botan::TLS::Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - get_string
    - Decoding_Error
    - get_uint16_t
    - std::to_string
    - std::string::size
    - TLS_Exception
    - size
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification(TLS_Data_Reader&
      reader,\n                                                                                 uint16_t
      extension_size,\n                                                                                 Connection_Side
      from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:383,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:383,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: Botan::TLS::Application_Layer_Protocol_Notification::single_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - front
    - size
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::string
    signature: std::string Application_Layer_Protocol_Notification::single_protocol()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:391,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:392,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:394,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:395,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:399,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:399,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:399,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:400,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:400,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:400,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 403
    functionName: Botan::TLS::Application_Layer_Protocol_Notification::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - std::vector::size
    - TLS_Exception
    - append_tls_length_value
    - empty
    - length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Application_Layer_Protocol_Notification::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:406,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:407,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - supported_cert_types
    argTypes:
    - std::vector<Certificate_Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: Botan::TLS::Certificate_Type_Base::Certificate_Type_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ARG_CHECK
    - empty
    linkageType: ''
    returnType: void
    signature: void Certificate_Type_Base::Certificate_Type_Base(std::vector<Certificate_Type>
      supported_cert_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: accepted_client_certificate_types
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' cct'
    - ' policy'
    argTypes:
    - Client_Certificate_Type
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 411
    functionName: Botan::TLS::Client_Certificate_Type::Client_Certificate_Type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - accepted_client_certificate_types
    linkageType: ''
    returnType: void
    signature: void Client_Certificate_Type::Client_Certificate_Type(const Client_Certificate_Type&
      cct, const Policy& policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: accepted_server_certificate_types
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sct'
    - ' policy'
    argTypes:
    - Server_Certificate_Type
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: Botan::TLS::Server_Certificate_Type::Server_Certificate_Type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - accepted_server_certificate_types
    linkageType: ''
    returnType: void
    signature: void Server_Certificate_Type::Server_Certificate_Type(const Server_Certificate_Type&
      sct, const Policy& policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:426,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:427,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' certificate_type_from_client'
    - ' server_preference'
    argTypes:
    - Certificate_Type_Base
    - std::vector<Certificate_Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 438
    functionName: Botan::TLS::Certificate_Type_Base::Certificate_Type_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - value_exists
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Certificate_Type_Base::Certificate_Type_Base(const Certificate_Type_Base&
      certificate_type_from_client,\n                                             const
      std::vector<Certificate_Type>& server_preference)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:443,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:447,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:448,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:448,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:449,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:451,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:452,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:452,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:452,1
    - Dst: static_cast<Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:453,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:460,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:462,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:463,1
    - Dst: static_cast<Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:463,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - from
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 465
    functionName: Botan::TLS::Certificate_Type_Base::Certificate_Type_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_tls_length_value
    - auto::begin
    - get_byte
    - auto::size
    - Decoding_Error
    - static_cast<Certificate_Type>
    - transform
    - static_cast<size_t>
    - std::back_inserter
    - auto::end
    - push_back
    linkageType: ''
    returnType: void
    signature: void Certificate_Type_Base::Certificate_Type_Base(TLS_Data_Reader&
      reader, uint16_t extension_size, Connection_Side from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:471,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:472,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:472,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:472,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:473,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:475,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:477,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:477,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:478,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:478,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 481
    functionName: Botan::TLS::Certificate_Type_Base::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - front
    - transform
    - begin
    - size
    - BOTAN_ASSERT_NOMSG
    - std::back_inserter
    - append_tls_length_value
    - static_cast<uint8_t>
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Type_Base::serialize(Connection_Side
      whoami) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:484,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:485,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:491,1
    - Dst: Botan::TLS::Certificate_Type_Base::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:491,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:492,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:493,1
    - Dst: certificate_type_to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:494,1
    - Dst: Botan::TLS::Certificate_Type_Base::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' from_server'
    argTypes:
    - Certificate_Type_Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 496
    functionName: Botan::TLS::Certificate_Type_Base::validate_selection
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - value_exists
    - certificate_type_to_string
    - TLS_Exception
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Certificate_Type_Base::selected_certificate_type
    linkageType: ''
    returnType: void
    signature: void Certificate_Type_Base::validate_selection(const Certificate_Type_Base&
      from_server) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:499,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:500,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:500,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: Botan::TLS::Certificate_Type_Base::selected_certificate_type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 2
    functionsReached:
    - front
    - BOTAN_ASSERT_NOMSG
    - size
    linkageType: ''
    returnType: Certificate_Type
    signature: Certificate_Type Certificate_Type_Base::selected_certificate_type()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' groups'
    argTypes:
    - std::vector<Group_Params>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: Botan::TLS::Supported_Groups::Supported_Groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Supported_Groups::Supported_Groups(const std::vector<Group_Params>&
      groups)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 508
    functionName: '& Supported_Groups::groups() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> & Supported_Groups::groups() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pure_ecc_group
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:513,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 518
    functionName: Botan::TLS::Supported_Groups::ec_groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - is_pure_ecc_group
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Supported_Groups::ec_groups() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_in_ffdhe_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:523,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 528
    functionName: Botan::TLS::Supported_Groups::dh_groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - is_in_ffdhe_range
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Supported_Groups::dh_groups() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:534,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:537,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:537,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:538,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:538,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:542,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:542,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:542,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:543,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:543,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 546
    functionName: Botan::TLS::Supported_Groups::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - wire_code
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Supported_Groups::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:549,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:552,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:556,1
    - Dst: static_cast<Group_Params>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:562,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:562,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:564,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:565,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 568
    functionName: Botan::TLS::Supported_Groups::Supported_Groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_uint16_t
    - value_exists
    - static_cast<Group_Params>
    - push_back
    linkageType: ''
    returnType: void
    signature: void Supported_Groups::Supported_Groups(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:573,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:573,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:577,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:577,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:579,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:579,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:580,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:580,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 588
    functionName: Botan::TLS::serialize_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::wire_code
    - std::vector::push_back
    - BOTAN_ASSERT
    - static_cast<uint16_t>
    - size
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize_signature_algorithms(const std::vector<Signature_Scheme>&
      schemes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:591,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:594,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:598,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:600,1
    - Dst: Botan::TLS::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 605
    functionName: Botan::TLS::parse_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::get_uint16_t
    - std::vector::reserve
    - std::vector::emplace_back
    - Decoding_Error
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> parse_signature_algorithms(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:573,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:573,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:577,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:577,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:579,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:579,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:580,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:580,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 588
    functionName: Botan::TLS::serialize_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::wire_code
    - std::vector::push_back
    - BOTAN_ASSERT
    - static_cast<uint16_t>
    - size
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize_signature_algorithms(const std::vector<Signature_Scheme>&
      schemes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:591,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:594,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:598,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:600,1
    - Dst: Botan::TLS::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 605
    functionName: Botan::TLS::parse_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::get_uint16_t
    - std::vector::reserve
    - std::vector::emplace_back
    - Decoding_Error
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> parse_signature_algorithms(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: Botan::TLS::Signature_Algorithms::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - serialize_signature_algorithms
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature_Algorithms::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 614
    functionName: Botan::TLS::Signature_Algorithms::Signature_Algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - parse_signature_algorithms
    linkageType: ''
    returnType: void
    signature: void Signature_Algorithms::Signature_Algorithms(TLS_Data_Reader& reader,
      uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 618
    functionName: Botan::TLS::Signature_Algorithms_Cert::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - serialize_signature_algorithms
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature_Algorithms_Cert::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: Botan::TLS::Signature_Algorithms_Cert::Signature_Algorithms_Cert
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - parse_signature_algorithms
    linkageType: ''
    returnType: void
    signature: void Signature_Algorithms_Cert::Signature_Algorithms_Cert(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:624,1
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:627,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:627,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:628,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:631,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 634
    functionName: Botan::TLS::SRTP_Protection_Profiles::SRTP_Protection_Profiles
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - std::vector::size
    - size
    - get_range
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void SRTP_Protection_Profiles::SRTP_Protection_Profiles(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:639,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:639,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:640,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:641,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:641,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:644,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:644,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:645,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:645,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 651
    functionName: Botan::TLS::SRTP_Protection_Profiles::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SRTP_Protection_Profiles::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:657,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:657,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:658,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:658,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:659,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:659,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:661,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:661,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:662,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:662,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:664,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:667,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:667,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:668,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 673
    functionName: Botan::TLS::Supported_Versions::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - major_version
    - std::vector::push_back
    - size
    - BOTAN_ASSERT_NOMSG
    - minor_version
    - static_cast<uint8_t>
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Supported_Versions::serialize(Connection_Side
      whoami) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:684,1
    - Dst: allow_tls13
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:685,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:686,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:692,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:693,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:694,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:697,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:698,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:704,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - offer
    - ' policy'
    argTypes:
    - Protocol_Version
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 705
    functionName: Botan::TLS::Supported_Versions::Supported_Versions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - allow_tls12
    - Protocol_Version::is_datagram_protocol
    - BOTAN_UNUSED
    - allow_tls13
    - allow_dtls12
    - push_back
    linkageType: ''
    returnType: void
    signature: void Supported_Versions::Supported_Versions(Protocol_Version offer,
      const Policy& policy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:710,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:712,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:712,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:712,1
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:714,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:717,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:717,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:720,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:721,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - from
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 724
    functionName: Botan::TLS::Supported_Versions::Supported_Versions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - get_uint16_t
    - Protocol_Version
    - Decoding_Error
    - get_range
    - push_back
    linkageType: ''
    returnType: void
    signature: void Supported_Versions::Supported_Versions(TLS_Data_Reader& reader,
      uint16_t extension_size, Connection_Side from)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 733
    functionName: Botan::TLS::Supported_Versions::supports
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Supported_Versions::supports(Protocol_Version version) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:736,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - limit
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 739
    functionName: Botan::TLS::Record_Size_Limit::Record_Size_Limit
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void Record_Size_Limit::Record_Size_Limit(const uint16_t limit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:743,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:746,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:762,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:771,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - from
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 773
    functionName: Botan::TLS::Record_Size_Limit::Record_Size_Limit
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - get_uint16_t
    linkageType: ''
    returnType: void
    signature: void Record_Size_Limit::Record_Size_Limit(TLS_Data_Reader& reader,
      uint16_t extension_size, Connection_Side from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:778,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:778,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:779,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 782
    functionName: Botan::TLS::Record_Size_Limit::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - get_byte<0>
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Record_Size_Limit::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::shared_ptr<RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Session_Manager::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void Session_Manager::Session_Manager(const std::shared_ptr<RandomNumberGenerator>&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:35,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:36,1
    - Dst: side
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:36,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:38,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:38,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' session'
    - ' id'
    - tls12_no_ticket
    argTypes:
    - Session
    - std::optional<Session_ID>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: Botan::TLS::Session_Manager::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - value_or
    - side
    - random_vec
    - BOTAN_ASSERT
    - BOTAN_UNUSED
    - store
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> Session_Manager::establish(const Session&
      session,\n                                                         const std::optional<Session_ID>&
      id,\n                                                         bool tls12_no_ticket)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: retrieve_one
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:50,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:51,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:57,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:57,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:57,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:78,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:78,1
    - Dst: auto::start_time
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:78,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' handle'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Session_Handle
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Session_Manager::retrieve
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::seconds>
    - tls_current_timestamp
    - auto::start_time
    - retrieve_one
    - session_ticket_lifetime
    - auto::has_value
    - remove
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: std::optional<Session>
    signature: "std::optional<Session> Session_Manager::retrieve(const Session_Handle&
      handle,\n                                                 Callbacks& callbacks,\n
      \                                                const Policy& policy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:95,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:95,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:95,1
    - Dst: max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:97,1
    - Dst: maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:97,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:98,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:107,1
    - Dst: find_some
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:108,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:111,1
    - Dst: std::erase_if
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:115,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:116,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:116,1
    - Dst: session::lifetime_hint
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:148,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:149,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 160
    functionName: Botan::TLS::Session_Manager::find_and_filter
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - min
    - std::chrono::duration_cast<std::chrono::seconds>
    - tls_current_timestamp
    - max
    - session_ticket_lifetime
    - std::erase_if
    - session::start_time
    - session::lifetime_hint
    - maximum_session_tickets_per_client_hello
    - remove
    - Botan_Tests::random_bit_generator::max
    - find_some
    - std::vector::empty
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager::find_and_filter(const
      Server_Information& info,\n                                                                  Callbacks&
      callbacks,\n                                                                  const
      Policy& policy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reuse_session_tickets
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:165,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:173,1
    - Dst: mutex
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:173,1
    - Dst: Botan::TLS::Session_Manager::find_and_filter
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:176,1
    - Dst: maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:180,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:181,1
    - Dst: auto::pop_back
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:182,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:194,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:194,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:196,1
    - Dst: is_id
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:196,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:197,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 203
    functionName: Botan::TLS::Session_Manager::find
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 12
    functionsReached:
    - auto::size
    - Botan::TLS::Session_Manager::find_and_filter
    - auto::pop_back
    - version
    - maximum_session_tickets_per_client_hello
    - is_id
    - reuse_session_tickets
    - std::optional::has_value
    - remove
    - BOTAN_ASSERT_NOMSG
    - std::optional::emplace
    - mutex
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager::find(const Server_Information&
      info,\n                                                       Callbacks& callbacks,\n
      \                                                      const Policy& policy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager::retrieve
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:216,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:216,1
    - Dst: Opaque_Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:216,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:216,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:217,1
    - Dst: auto::ciphersuite
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:217,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:218,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:219,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - ' tickets'
    - hash_function
    - ' callbacks'
    - ' policy'
    argTypes:
    - std::vector<PskIdentity>
    - std::string_view
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 238
    functionName: Botan::TLS::Session_Manager::choose_from_offered_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::version
    - Botan::TLS::Session_Manager::retrieve
    - std::move
    - Opaque_Session_Handle
    - auto::has_value
    - identity
    - Session_Handle
    - auto::value
    - auto::ciphersuite
    linkageType: ''
    returnType: std::optional<std::pair<Session, uint16_t>>
    signature: "std::optional<std::pair<Session, uint16_t>> Session_Manager::choose_from_offered_tickets(\n
      \  const std::vector<PskIdentity>& tickets,\n   std::string_view hash_function,\n
      \  Callbacks& callbacks,\n   const Policy& policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::shared_ptr<RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Session_Manager::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void Session_Manager::Session_Manager(const std::shared_ptr<RandomNumberGenerator>&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:35,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:36,1
    - Dst: side
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:36,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:38,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:38,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' session'
    - ' id'
    - tls12_no_ticket
    argTypes:
    - Session
    - std::optional<Session_ID>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: Botan::TLS::Session_Manager::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - value_or
    - side
    - random_vec
    - BOTAN_ASSERT
    - BOTAN_UNUSED
    - store
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> Session_Manager::establish(const Session&
      session,\n                                                         const std::optional<Session_ID>&
      id,\n                                                         bool tls12_no_ticket)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: retrieve_one
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:50,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:51,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:57,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:57,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:57,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:78,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:78,1
    - Dst: auto::start_time
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:78,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' handle'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Session_Handle
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Session_Manager::retrieve
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 1
    functionsReached:
    - std::chrono::duration_cast<std::chrono::seconds>
    - tls_current_timestamp
    - auto::start_time
    - retrieve_one
    - session_ticket_lifetime
    - auto::has_value
    - remove
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: std::optional<Session>
    signature: "std::optional<Session> Session_Manager::retrieve(const Session_Handle&
      handle,\n                                                 Callbacks& callbacks,\n
      \                                                const Policy& policy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:95,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:95,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:95,1
    - Dst: max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:97,1
    - Dst: maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:97,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:98,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:107,1
    - Dst: find_some
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:108,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:111,1
    - Dst: std::erase_if
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:115,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:116,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:116,1
    - Dst: session::lifetime_hint
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:148,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:149,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 160
    functionName: Botan::TLS::Session_Manager::find_and_filter
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 1
    functionsReached:
    - min
    - std::chrono::duration_cast<std::chrono::seconds>
    - tls_current_timestamp
    - max
    - session_ticket_lifetime
    - std::erase_if
    - session::start_time
    - session::lifetime_hint
    - maximum_session_tickets_per_client_hello
    - remove
    - Botan_Tests::random_bit_generator::max
    - find_some
    - std::vector::empty
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager::find_and_filter(const
      Server_Information& info,\n                                                                  Callbacks&
      callbacks,\n                                                                  const
      Policy& policy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reuse_session_tickets
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:165,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:173,1
    - Dst: mutex
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:173,1
    - Dst: Botan::TLS::Session_Manager::find_and_filter
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:176,1
    - Dst: maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:180,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:181,1
    - Dst: auto::pop_back
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:182,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:194,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:194,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:196,1
    - Dst: is_id
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:196,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:197,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 203
    functionName: Botan::TLS::Session_Manager::find
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 12
    functionsReached:
    - auto::size
    - Botan::TLS::Session_Manager::find_and_filter
    - auto::pop_back
    - version
    - maximum_session_tickets_per_client_hello
    - is_id
    - reuse_session_tickets
    - std::optional::has_value
    - remove
    - BOTAN_ASSERT_NOMSG
    - std::optional::emplace
    - mutex
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager::find(const Server_Information&
      info,\n                                                       Callbacks& callbacks,\n
      \                                                      const Policy& policy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager::retrieve
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:216,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:216,1
    - Dst: Opaque_Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:216,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:216,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:217,1
    - Dst: auto::ciphersuite
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:217,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:218,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:219,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - ' tickets'
    - hash_function
    - ' callbacks'
    - ' policy'
    argTypes:
    - std::vector<PskIdentity>
    - std::string_view
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 238
    functionName: Botan::TLS::Session_Manager::choose_from_offered_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::version
    - Botan::TLS::Session_Manager::retrieve
    - std::move
    - Opaque_Session_Handle
    - auto::has_value
    - identity
    - Session_Handle
    - auto::value
    - auto::ciphersuite
    linkageType: ''
    returnType: std::optional<std::pair<Session, uint16_t>>
    signature: "std::optional<std::pair<Session, uint16_t>> Session_Manager::choose_from_offered_tickets(\n
      \  const std::vector<PskIdentity>& tickets,\n   std::string_view hash_function,\n
      \  Callbacks& callbacks,\n   const Policy& policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan::TLS::version
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::TLS::ciphersuite_code
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ciphersuite_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::TLS::side
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Connection_Side
    signature: Connection_Side side() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::TLS::dtls_srtp_profile
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t dtls_srtp_profile() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::TLS::supports_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_encrypt_then_mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan::TLS::supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_extended_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::TLS::peer_certs
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> & peer_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::TLS::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> peer_raw_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan::TLS::server_info
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Server_Information
    signature: Server_Information & server_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan::TLS::version
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::TLS::ciphersuite_code
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ciphersuite_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::TLS::side
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Connection_Side
    signature: Connection_Side side() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::TLS::dtls_srtp_profile
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t dtls_srtp_profile() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::TLS::supports_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_encrypt_then_mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan::TLS::supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_extended_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::TLS::peer_certs
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> & peer_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::TLS::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> peer_raw_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan::TLS::server_info
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Server_Information
    signature: Server_Information & server_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: was_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool was_resumption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: kex_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string kex_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: kex_parameters
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> kex_parameters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: cipher_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 16
    functionsReached:
    - ciphersuite
    linkageType: ''
    returnType: std::string
    signature: std::string cipher_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: mac_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 10
    functionsReached:
    - ciphersuite
    linkageType: ''
    returnType: std::string
    signature: std::string mac_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: prf_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 14
    functionsReached:
    - ciphersuite
    linkageType: ''
    returnType: std::string
    signature: std::string prf_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - Session_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: set_session_id
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 2
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_session_id(Session_ID id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticket
    argTypes:
    - Session_Ticket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: set_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_session_ticket(Session_Ticket ticket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session
      Src: /src/botan/src/lib/tls/tls_session.h:244,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session.h:254,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/lib/tls/tls_session.h:320,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/tls_session.h:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 395
    functionName: Session_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - Session
    - Botan::TLS::Session::decrypt
    - std::span
    linkageType: ''
    returnType: Session
    signature: Session Session_Base
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/lib/tls/tls_session.h:320,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/tls_session.h:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctext
    - ctext_size
    - ' key'
    argTypes:
    - uint8_t[]
    - size_t
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: decrypt
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 168
    functionsReached:
    - Botan::TLS::Session::decrypt
    - std::span
    linkageType: ''
    returnType: Session
    signature: Session decrypt(const uint8_t ctext[], size_t ctext_size, const SymmetricKey&
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 340
    functionName: master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    functionName: supports_early_data
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_early_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    functionName: session_age_add
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t session_age_add() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: max_early_data_bytes
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t max_early_data_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    functionName: lifetime_hint
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds lifetime_hint() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_algos.cpp:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - algo
    argTypes:
    - KDF_Algo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: Botan::TLS::kdf_algo_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 4
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::string
    signature: std::string kdf_algo_to_string(KDF_Algo algo)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_algos.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - method
    argTypes:
    - Kex_Algo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 54
    functionName: Botan::TLS::kex_method_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 12
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::string
    signature: std::string kex_method_to_string(Kex_Algo method)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_algos.cpp:101,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_algos.cpp:101,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 102
    functionName: Botan::TLS::kex_method_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 4
    functionsReached:
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: Kex_Algo
    signature: Kex_Algo kex_method_from_string(std::string_view str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_algos.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - method
    argTypes:
    - Auth_Method
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: Botan::TLS::auth_method_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 8
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::string
    signature: std::string auth_method_to_string(Auth_Method method)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_algos.cpp:133,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_algos.cpp:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: Botan::TLS::auth_method_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 4
    functionsReached:
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: Auth_Method
    signature: Auth_Method auth_method_from_string(std::string_view str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_x25519
      Src: /src/botan/src/lib/tls/tls_algos.cpp:138,1
    - Dst: is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_algos.cpp:141,1
    - Dst: Botan::TLS::Group_Params::pqc_hybrid_ecc
      Src: /src/botan/src/lib/tls/tls_algos.cpp:141,1
    - Dst: is_x448
      Src: /src/botan/src/lib/tls/tls_algos.cpp:147,1
    - Dst: is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_algos.cpp:150,1
    - Dst: Botan::TLS::Group_Params::pqc_hybrid_ecc
      Src: /src/botan/src/lib/tls/tls_algos.cpp:150,1
    - Dst: is_in_ffdhe_range
      Src: /src/botan/src/lib/tls/tls_algos.cpp:156,1
    - Dst: is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:162,1
    - Dst: is_pqc_hybrid_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:162,1
    - Dst: is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:168,1
    - Dst: is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 174
    functionName: Botan::TLS::Group_Params::is_available
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 0
    functionsReached:
    - is_pure_frodokem
    - is_x448
    - is_pqc_hybrid_frodokem
    - is_pqc_hybrid_ml_kem
    - is_pqc_hybrid
    - is_pure_ml_kem
    - Botan::TLS::Group_Params::pqc_hybrid_ecc
    - is_in_ffdhe_range
    - is_x25519
    linkageType: ''
    returnType: bool
    signature: bool Group_Params::is_available() const
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 205
    functionName: Botan::TLS::Group_Params::pqc_hybrid_ecc
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Group_Params_Code>
    signature: std::optional<Group_Params_Code> Group_Params::pqc_hybrid_ecc() const
  - BBCount: 36
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 107
    argCount: 1
    argNames:
    - group_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 323
    functionName: Botan::TLS::Group_Params::from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Group_Params>
    signature: std::optional<Group_Params> Group_Params::from_string(std::string_view
      group_name)
  - BBCount: 37
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 406
    functionName: Botan::TLS::Group_Params::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Group_Params::to_string() const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 417
    functionName: Botan::TLS::certificate_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string certificate_type_to_string(Certificate_Type type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_algos.cpp:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' type_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 427
    functionName: Botan::TLS::certificate_type_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: Certificate_Type
    signature: Certificate_Type certificate_type_from_string(const std::string& type_str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_algos.cpp:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - algo
    argTypes:
    - KDF_Algo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: Botan::TLS::kdf_algo_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 4
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::string
    signature: std::string kdf_algo_to_string(KDF_Algo algo)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_algos.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - method
    argTypes:
    - Kex_Algo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 54
    functionName: Botan::TLS::kex_method_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 12
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::string
    signature: std::string kex_method_to_string(Kex_Algo method)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_algos.cpp:101,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_algos.cpp:101,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 102
    functionName: Botan::TLS::kex_method_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 4
    functionsReached:
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: Kex_Algo
    signature: Kex_Algo kex_method_from_string(std::string_view str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_algos.cpp:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - method
    argTypes:
    - Auth_Method
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: Botan::TLS::auth_method_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 8
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::string
    signature: std::string auth_method_to_string(Auth_Method method)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_algos.cpp:133,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_algos.cpp:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: Botan::TLS::auth_method_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 4
    functionsReached:
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: Auth_Method
    signature: Auth_Method auth_method_from_string(std::string_view str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_x25519
      Src: /src/botan/src/lib/tls/tls_algos.cpp:138,1
    - Dst: is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_algos.cpp:141,1
    - Dst: Botan::TLS::Group_Params::pqc_hybrid_ecc
      Src: /src/botan/src/lib/tls/tls_algos.cpp:141,1
    - Dst: is_x448
      Src: /src/botan/src/lib/tls/tls_algos.cpp:147,1
    - Dst: is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_algos.cpp:150,1
    - Dst: Botan::TLS::Group_Params::pqc_hybrid_ecc
      Src: /src/botan/src/lib/tls/tls_algos.cpp:150,1
    - Dst: is_in_ffdhe_range
      Src: /src/botan/src/lib/tls/tls_algos.cpp:156,1
    - Dst: is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:162,1
    - Dst: is_pqc_hybrid_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:162,1
    - Dst: is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:168,1
    - Dst: is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 174
    functionName: Botan::TLS::Group_Params::is_available
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 0
    functionsReached:
    - is_pure_frodokem
    - is_x448
    - is_pqc_hybrid_frodokem
    - is_pqc_hybrid_ml_kem
    - is_pqc_hybrid
    - is_pure_ml_kem
    - Botan::TLS::Group_Params::pqc_hybrid_ecc
    - is_in_ffdhe_range
    - is_x25519
    linkageType: ''
    returnType: bool
    signature: bool Group_Params::is_available() const
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 205
    functionName: Botan::TLS::Group_Params::pqc_hybrid_ecc
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Group_Params_Code>
    signature: std::optional<Group_Params_Code> Group_Params::pqc_hybrid_ecc() const
  - BBCount: 36
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 107
    argCount: 1
    argNames:
    - group_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 323
    functionName: Botan::TLS::Group_Params::from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Group_Params>
    signature: std::optional<Group_Params> Group_Params::from_string(std::string_view
      group_name)
  - BBCount: 37
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 406
    functionName: Botan::TLS::Group_Params::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Group_Params::to_string() const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 417
    functionName: Botan::TLS::certificate_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string certificate_type_to_string(Certificate_Type type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_algos.cpp:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' type_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 427
    functionName: Botan::TLS::certificate_type_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: Certificate_Type
    signature: Certificate_Type certificate_type_from_string(const std::string& type_str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_client.cpp:39,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/tls_client.cpp:39,1
    - Dst: std::make_unique<Client_Impl_13>
      Src: /src/botan/src/lib/tls/tls_client.cpp:44,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_client.cpp:45,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls_client.cpp:47,1
    - Dst: set_io_buffer_size
      Src: /src/botan/src/lib/tls/tls_client.cpp:48,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_client.cpp:51,1
    - Dst: Botan::TLS::Client::downgrade
      Src: /src/botan/src/lib/tls/tls_client.cpp:54,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_client.cpp:62,1
    - Dst: std::make_unique<Client_Impl_12>
      Src: /src/botan/src/lib/tls/tls_client.cpp:63,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_client.cpp:68,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_client.cpp:69,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_client.cpp:76,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls_client.cpp:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 9
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' creds'
    - ' policy'
    - ' rng'
    - info
    - offer_version
    - ' next_protocols'
    - io_buf_sz
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    - Server_Information
    - Protocol_Version
    - std::vector<std::string>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Client::Client
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 0
    functionsReached:
    - acceptable_protocol_version
    - set_io_buffer_size
    - expects_downgrade
    - Protocol_Version::is_datagram_protocol
    - std::move
    - is_downgrading
    - BOTAN_UNUSED
    - std::make_unique<Client_Impl_12>
    - Protocol_Version::is_pre_tls_13
    - BOTAN_ARG_CHECK
    - std::make_unique<Client_Impl_13>
    - Not_Implemented
    - Botan::TLS::Client::downgrade
    linkageType: ''
    returnType: void
    signature: "void Client::Client(const std::shared_ptr<Callbacks>& callbacks,\n
      \              const std::shared_ptr<Session_Manager>& session_manager,\n               const
      std::shared_ptr<Credentials_Manager>& creds,\n               const std::shared_ptr<const
      Policy>& policy,\n               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n               Server_Information info,\n               Protocol_Version
      offer_version,\n               const std::vector<std::string>& next_protocols,\n
      \              size_t io_buf_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Client::~Client()
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client::~Client()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_client.cpp:83,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_client.cpp:83,1
    - Dst: extract_downgrade_info
      Src: /src/botan/src/lib/tls/tls_client.cpp:86,1
    - Dst: std::make_unique<Client_Impl_12>
      Src: /src/botan/src/lib/tls/tls_client.cpp:87,1
    - Dst: auto::peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_client.cpp:89,1
    - Dst: Botan::TLS::Client::from_peer
      Src: /src/botan/src/lib/tls/tls_client.cpp:91,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/tls/tls_client.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Client::downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - extract_downgrade_info
    - is_downgrading
    - std::make_unique<Client_Impl_12>
    - Botan::TLS::Client::from_peer
    - BOTAN_ASSERT_NOMSG
    - auto::peer_transcript::empty
    linkageType: ''
    returnType: size_t
    signature: size_t Client::downgrade()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::from_peer
      Src: /src/botan/src/lib/tls/tls_client.cpp:105,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_client.cpp:107,1
    - Dst: Botan::TLS::Client::downgrade
      Src: /src/botan/src/lib/tls/tls_client.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Client::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - is_downgrading
    - Botan::TLS::Client::from_peer
    - Botan::TLS::Client::downgrade
    linkageType: ''
    returnType: size_t
    signature: size_t Client::from_peer(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls_client.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: Botan::TLS::Client::is_handshake_complete
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::is_handshake_complete
    linkageType: ''
    returnType: bool
    signature: bool Client::is_handshake_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/lib/tls/tls_client.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Client::is_active
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 7
    functionsReached:
    - Botan::TLS::Client::is_active
    linkageType: ''
    returnType: bool
    signature: bool Client::is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::is_closed
      Src: /src/botan/src/lib/tls/tls_client.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Client::is_closed
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Client::is_closed
    linkageType: ''
    returnType: bool
    signature: bool Client::is_closed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::is_closed_for_reading
      Src: /src/botan/src/lib/tls/tls_client.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Client::is_closed_for_reading
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::is_closed_for_reading
    linkageType: ''
    returnType: bool
    signature: bool Client::is_closed_for_reading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::is_closed_for_writing
      Src: /src/botan/src/lib/tls/tls_client.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Client::is_closed_for_writing
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::is_closed_for_writing
    linkageType: ''
    returnType: bool
    signature: bool Client::is_closed_for_writing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls_client.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: Botan::TLS::Client::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::peer_cert_chain
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Client::peer_cert_chain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls_client.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Client::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::peer_raw_public_key
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Client::peer_raw_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::external_psk_identity
      Src: /src/botan/src/lib/tls/tls_client.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: Botan::TLS::Client::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::external_psk_identity
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Client::external_psk_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::key_material_export
      Src: /src/botan/src/lib/tls/tls_client.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Client::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::key_material_export
    linkageType: ''
    returnType: SymmetricKey
    signature: SymmetricKey Client::key_material_export(std::string_view label, std::string_view
      context, size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::renegotiate
      Src: /src/botan/src/lib/tls/tls_client.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan::TLS::Client::renegotiate
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Client::renegotiate
    linkageType: ''
    returnType: void
    signature: void Client::renegotiate(bool force_full_renegotiation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::update_traffic_keys
      Src: /src/botan/src/lib/tls/tls_client.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Botan::TLS::Client::update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::update_traffic_keys
    linkageType: ''
    returnType: void
    signature: void Client::update_traffic_keys(bool request_peer_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls_client.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: Botan::TLS::Client::secure_renegotiation_supported
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::secure_renegotiation_supported
    linkageType: ''
    returnType: bool
    signature: bool Client::secure_renegotiation_supported() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::to_peer
      Src: /src/botan/src/lib/tls/tls_client.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: Botan::TLS::Client::to_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::to_peer
    linkageType: ''
    returnType: void
    signature: void Client::to_peer(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::send_alert
      Src: /src/botan/src/lib/tls/tls_client.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: Botan::TLS::Client::send_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::send_alert
    linkageType: ''
    returnType: void
    signature: void Client::send_alert(const Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::send_warning_alert
      Src: /src/botan/src/lib/tls/tls_client.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: Botan::TLS::Client::send_warning_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::send_warning_alert
    linkageType: ''
    returnType: void
    signature: void Client::send_warning_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::send_fatal_alert
      Src: /src/botan/src/lib/tls/tls_client.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: Botan::TLS::Client::send_fatal_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client::send_fatal_alert
    linkageType: ''
    returnType: void
    signature: void Client::send_fatal_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::close
      Src: /src/botan/src/lib/tls/tls_client.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: Botan::TLS::Client::close
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Client::close
    linkageType: ''
    returnType: void
    signature: void Client::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::timeout_check
      Src: /src/botan/src/lib/tls/tls_client.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: Botan::TLS::Client::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Client::timeout_check
    linkageType: ''
    returnType: bool
    signature: bool Client::timeout_check()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::application_protocol
      Src: /src/botan/src/lib/tls/tls_client.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: Botan::TLS::Client::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Client::application_protocol
    linkageType: ''
    returnType: std::string
    signature: std::string Client::application_protocol() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_client.cpp:39,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/tls_client.cpp:39,1
    - Dst: std::make_unique<Client_Impl_13>
      Src: /src/botan/src/lib/tls/tls_client.cpp:44,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_client.cpp:45,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls_client.cpp:47,1
    - Dst: set_io_buffer_size
      Src: /src/botan/src/lib/tls/tls_client.cpp:48,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_client.cpp:51,1
    - Dst: Botan::TLS::Client::downgrade
      Src: /src/botan/src/lib/tls/tls_client.cpp:54,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_client.cpp:62,1
    - Dst: std::make_unique<Client_Impl_12>
      Src: /src/botan/src/lib/tls/tls_client.cpp:63,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_client.cpp:68,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_client.cpp:69,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_client.cpp:76,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls_client.cpp:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 9
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' creds'
    - ' policy'
    - ' rng'
    - info
    - offer_version
    - ' next_protocols'
    - io_buf_sz
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    - Server_Information
    - Protocol_Version
    - std::vector<std::string>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Client::Client
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 0
    functionsReached:
    - acceptable_protocol_version
    - set_io_buffer_size
    - expects_downgrade
    - Protocol_Version::is_datagram_protocol
    - std::move
    - is_downgrading
    - BOTAN_UNUSED
    - std::make_unique<Client_Impl_12>
    - Protocol_Version::is_pre_tls_13
    - BOTAN_ARG_CHECK
    - std::make_unique<Client_Impl_13>
    - Not_Implemented
    - Botan::TLS::Client::downgrade
    linkageType: ''
    returnType: void
    signature: "void Client::Client(const std::shared_ptr<Callbacks>& callbacks,\n
      \              const std::shared_ptr<Session_Manager>& session_manager,\n               const
      std::shared_ptr<Credentials_Manager>& creds,\n               const std::shared_ptr<const
      Policy>& policy,\n               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n               Server_Information info,\n               Protocol_Version
      offer_version,\n               const std::vector<std::string>& next_protocols,\n
      \              size_t io_buf_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Client::~Client()
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client::~Client()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_client.cpp:83,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_client.cpp:83,1
    - Dst: extract_downgrade_info
      Src: /src/botan/src/lib/tls/tls_client.cpp:86,1
    - Dst: std::make_unique<Client_Impl_12>
      Src: /src/botan/src/lib/tls/tls_client.cpp:87,1
    - Dst: auto::peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_client.cpp:89,1
    - Dst: Botan::TLS::Client::from_peer
      Src: /src/botan/src/lib/tls/tls_client.cpp:91,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/tls/tls_client.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Client::downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - extract_downgrade_info
    - is_downgrading
    - std::make_unique<Client_Impl_12>
    - Botan::TLS::Client::from_peer
    - BOTAN_ASSERT_NOMSG
    - auto::peer_transcript::empty
    linkageType: ''
    returnType: size_t
    signature: size_t Client::downgrade()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::from_peer
      Src: /src/botan/src/lib/tls/tls_client.cpp:105,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_client.cpp:107,1
    - Dst: Botan::TLS::Client::downgrade
      Src: /src/botan/src/lib/tls/tls_client.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Client::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 4
    functionsReached:
    - is_downgrading
    - Botan::TLS::Client::from_peer
    - Botan::TLS::Client::downgrade
    linkageType: ''
    returnType: size_t
    signature: size_t Client::from_peer(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls_client.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: Botan::TLS::Client::is_handshake_complete
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::is_handshake_complete
    linkageType: ''
    returnType: bool
    signature: bool Client::is_handshake_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/lib/tls/tls_client.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Client::is_active
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 8
    functionsReached:
    - Botan::TLS::Client::is_active
    linkageType: ''
    returnType: bool
    signature: bool Client::is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::is_closed
      Src: /src/botan/src/lib/tls/tls_client.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Client::is_closed
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Client::is_closed
    linkageType: ''
    returnType: bool
    signature: bool Client::is_closed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::is_closed_for_reading
      Src: /src/botan/src/lib/tls/tls_client.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Client::is_closed_for_reading
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::is_closed_for_reading
    linkageType: ''
    returnType: bool
    signature: bool Client::is_closed_for_reading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::is_closed_for_writing
      Src: /src/botan/src/lib/tls/tls_client.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Client::is_closed_for_writing
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::is_closed_for_writing
    linkageType: ''
    returnType: bool
    signature: bool Client::is_closed_for_writing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls_client.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: Botan::TLS::Client::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::peer_cert_chain
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Client::peer_cert_chain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls_client.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Client::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::peer_raw_public_key
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Client::peer_raw_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::external_psk_identity
      Src: /src/botan/src/lib/tls/tls_client.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: Botan::TLS::Client::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::external_psk_identity
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Client::external_psk_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::key_material_export
      Src: /src/botan/src/lib/tls/tls_client.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Client::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::key_material_export
    linkageType: ''
    returnType: SymmetricKey
    signature: SymmetricKey Client::key_material_export(std::string_view label, std::string_view
      context, size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::renegotiate
      Src: /src/botan/src/lib/tls/tls_client.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan::TLS::Client::renegotiate
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Client::renegotiate
    linkageType: ''
    returnType: void
    signature: void Client::renegotiate(bool force_full_renegotiation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::update_traffic_keys
      Src: /src/botan/src/lib/tls/tls_client.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Botan::TLS::Client::update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::update_traffic_keys
    linkageType: ''
    returnType: void
    signature: void Client::update_traffic_keys(bool request_peer_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls_client.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: Botan::TLS::Client::secure_renegotiation_supported
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::secure_renegotiation_supported
    linkageType: ''
    returnType: bool
    signature: bool Client::secure_renegotiation_supported() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::to_peer
      Src: /src/botan/src/lib/tls/tls_client.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: Botan::TLS::Client::to_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::to_peer
    linkageType: ''
    returnType: void
    signature: void Client::to_peer(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::send_alert
      Src: /src/botan/src/lib/tls/tls_client.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: Botan::TLS::Client::send_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::send_alert
    linkageType: ''
    returnType: void
    signature: void Client::send_alert(const Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::send_warning_alert
      Src: /src/botan/src/lib/tls/tls_client.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: Botan::TLS::Client::send_warning_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::send_warning_alert
    linkageType: ''
    returnType: void
    signature: void Client::send_warning_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::send_fatal_alert
      Src: /src/botan/src/lib/tls/tls_client.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: Botan::TLS::Client::send_fatal_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::send_fatal_alert
    linkageType: ''
    returnType: void
    signature: void Client::send_fatal_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::close
      Src: /src/botan/src/lib/tls/tls_client.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: Botan::TLS::Client::close
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Client::close
    linkageType: ''
    returnType: void
    signature: void Client::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::timeout_check
      Src: /src/botan/src/lib/tls/tls_client.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: Botan::TLS::Client::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Client::timeout_check
    linkageType: ''
    returnType: bool
    signature: bool Client::timeout_check()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client::application_protocol
      Src: /src/botan/src/lib/tls/tls_client.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: Botan::TLS::Client::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Client::application_protocol
    linkageType: ''
    returnType: std::string
    signature: std::string Client::application_protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan::TLS::wire_code
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Signature_Scheme::Code
    signature: Signature_Scheme::Code wire_code() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Signature_Scheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: operator==(const Signature_Scheme& rhs) const
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Signature_Scheme& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Signature_Scheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: operator!=(const Signature_Scheme& rhs) const
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Signature_Scheme& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan::TLS::wire_code
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Signature_Scheme::Code
    signature: Signature_Scheme::Code wire_code() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Signature_Scheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: operator==(const Signature_Scheme& rhs) const
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Signature_Scheme& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Signature_Scheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: operator!=(const Signature_Scheme& rhs) const
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Signature_Scheme& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client
      Src: /src/botan/src/lib/tls/tls_client.h:80,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/lib/tls/tls_client.h:85,1
    - Dst: Botan::TLS::Protocol_Version::latest_tls_version
      Src: /src/botan/src/lib/tls/tls_client.h:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Channel
    functionSourceFile: /src/botan/src/lib/tls/tls_client.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - Botan::TLS::Protocol_Version::latest_tls_version
    - Botan::TLS::Client
    linkageType: ''
    returnType: Client
    signature: Client Channel
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Client
    functionSourceFile: /src/botan/src/lib/tls/tls_client.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client(const Client& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::Client
    functionSourceFile: /src/botan/src/lib/tls/tls_client.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client(Client&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client
      Src: /src/botan/src/lib/tls/tls_client.h:80,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/lib/tls/tls_client.h:85,1
    - Dst: Botan::TLS::Protocol_Version::latest_tls_version
      Src: /src/botan/src/lib/tls/tls_client.h:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Channel
    functionSourceFile: /src/botan/src/lib/tls/tls_client.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - Botan::TLS::Protocol_Version::latest_tls_version
    - Botan::TLS::Client
    linkageType: ''
    returnType: Client
    signature: Client Channel
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Client
    functionSourceFile: /src/botan/src/lib/tls/tls_client.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client(const Client& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Client
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::Client
    functionSourceFile: /src/botan/src/lib/tls/tls_client.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client(Client&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:82,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:84,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:87,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:109,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:111,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:112,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:114,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:137,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:139,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:142,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:145,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:174,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:253,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls_messages.h:255,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:257,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:258,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 283
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - extension_types
    - supported_dh_groups
    - Client_Hello
    - random
    - Botan::TLS::serialize
    - signature_scheme
    - supported_ecc_curves
    - sni_hostname
    - compression_methods
    - ciphersuites
    - supports_alpn
    - signature_schemes
    - srtp_profiles
    - Botan::TLS::type
    - supported_versions
    - certificate_signature_schemes
    - next_protocols
    - Botan::TLS::extensions
    - Botan::TLS::cookie
    - Server_Hello
    - sent_signature_algorithms
    - cookie_input_data
    - offered_suite
    - Certificate_Verify
    - session_id
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Hello_Verify_Request
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::cookie
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:82,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:84,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:87,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:109,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:111,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:112,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:114,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:137,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:139,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:142,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' client_hello_bits'
    - client_identity
    - ' secret_key'
    argTypes:
    - std::vector<uint8_t>
    - std::string_view
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - extension_types
    - supported_dh_groups
    - Client_Hello
    - random
    - Botan::TLS::serialize
    - supported_ecc_curves
    - sni_hostname
    - compression_methods
    - ciphersuites
    - supports_alpn
    - signature_schemes
    - srtp_profiles
    - supported_versions
    - certificate_signature_schemes
    - next_protocols
    - Botan::TLS::extensions
    - Botan::TLS::cookie
    - sent_signature_algorithms
    - cookie_input_data
    - offered_suite
    - session_id
    linkageType: ''
    returnType: void
    signature: "void Hello_Verify_Request(const std::vector<uint8_t>& client_hello_bits,\n
      \                          std::string_view client_identity,\n                           const
      SymmetricKey& secret_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 203
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Server_Hello
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Handshake_Message
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 228
    functionName: Botan::TLS::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: Botan::TLS::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Status
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan::TLS::response
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & response() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:253,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls_messages.h:255,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:257,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:258,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 274
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 3
    functionsReached:
    - Botan::TLS::type
    - Certificate_Verify
    - Botan::TLS::serialize
    - signature_scheme
    linkageType: ''
    returnType: void
    signature: void serialize() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan::TLS::verify_data
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> verify_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:82,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:84,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:87,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:109,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:111,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:112,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:114,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:137,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:139,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:142,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:145,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:174,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:253,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls_messages.h:255,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:257,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:258,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 283
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - extension_types
    - supported_dh_groups
    - Client_Hello
    - random
    - Botan::TLS::serialize
    - signature_scheme
    - supported_ecc_curves
    - sni_hostname
    - compression_methods
    - ciphersuites
    - supports_alpn
    - signature_schemes
    - srtp_profiles
    - Botan::TLS::type
    - supported_versions
    - certificate_signature_schemes
    - next_protocols
    - Botan::TLS::extensions
    - Botan::TLS::cookie
    - Server_Hello
    - sent_signature_algorithms
    - cookie_input_data
    - offered_suite
    - Certificate_Verify
    - session_id
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Hello_Verify_Request
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::cookie
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:82,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:84,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:87,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:109,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:111,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:112,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:114,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:137,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:139,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:142,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' client_hello_bits'
    - client_identity
    - ' secret_key'
    argTypes:
    - std::vector<uint8_t>
    - std::string_view
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - extension_types
    - supported_dh_groups
    - Client_Hello
    - random
    - Botan::TLS::serialize
    - supported_ecc_curves
    - sni_hostname
    - compression_methods
    - ciphersuites
    - supports_alpn
    - signature_schemes
    - srtp_profiles
    - supported_versions
    - certificate_signature_schemes
    - next_protocols
    - Botan::TLS::extensions
    - Botan::TLS::cookie
    - sent_signature_algorithms
    - cookie_input_data
    - offered_suite
    - session_id
    linkageType: ''
    returnType: void
    signature: "void Hello_Verify_Request(const std::vector<uint8_t>& client_hello_bits,\n
      \                          std::string_view client_identity,\n                           const
      SymmetricKey& secret_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 203
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Server_Hello
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Handshake_Message
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 228
    functionName: Botan::TLS::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: Botan::TLS::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Status
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan::TLS::response
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & response() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:253,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls_messages.h:255,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:257,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:258,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 274
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 6
    functionsReached:
    - Botan::TLS::type
    - Certificate_Verify
    - Botan::TLS::serialize
    - signature_scheme
    linkageType: ''
    returnType: void
    signature: void serialize() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan::TLS::verify_data
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> verify_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:82,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:84,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:87,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:109,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:111,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:112,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:114,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:137,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:139,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:142,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:145,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:174,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:253,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls_messages.h:255,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:257,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:258,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 283
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - extension_types
    - supported_dh_groups
    - Client_Hello
    - random
    - Botan::TLS::serialize
    - signature_scheme
    - supported_ecc_curves
    - sni_hostname
    - compression_methods
    - ciphersuites
    - supports_alpn
    - signature_schemes
    - srtp_profiles
    - Botan::TLS::type
    - supported_versions
    - certificate_signature_schemes
    - next_protocols
    - Botan::TLS::extensions
    - Botan::TLS::cookie
    - Server_Hello
    - sent_signature_algorithms
    - cookie_input_data
    - offered_suite
    - Certificate_Verify
    - session_id
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Hello_Verify_Request
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::cookie
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:82,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:84,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:87,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:109,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:111,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:112,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:114,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:137,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:139,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:142,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' client_hello_bits'
    - client_identity
    - ' secret_key'
    argTypes:
    - std::vector<uint8_t>
    - std::string_view
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - extension_types
    - supported_dh_groups
    - Client_Hello
    - random
    - Botan::TLS::serialize
    - supported_ecc_curves
    - sni_hostname
    - compression_methods
    - ciphersuites
    - supports_alpn
    - signature_schemes
    - srtp_profiles
    - supported_versions
    - certificate_signature_schemes
    - next_protocols
    - Botan::TLS::extensions
    - Botan::TLS::cookie
    - sent_signature_algorithms
    - cookie_input_data
    - offered_suite
    - session_id
    linkageType: ''
    returnType: void
    signature: "void Hello_Verify_Request(const std::vector<uint8_t>& client_hello_bits,\n
      \                          std::string_view client_identity,\n                           const
      SymmetricKey& secret_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 203
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Server_Hello
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Handshake_Message
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 228
    functionName: Botan::TLS::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: Botan::TLS::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Status
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan::TLS::response
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & response() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:253,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls_messages.h:255,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:257,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:258,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 274
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 9
    functionsReached:
    - Botan::TLS::type
    - Certificate_Verify
    - Botan::TLS::serialize
    - signature_scheme
    linkageType: ''
    returnType: void
    signature: void serialize() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan::TLS::verify_data
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> verify_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:82,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:84,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:87,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:109,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:111,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:112,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:114,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:137,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:139,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:142,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:145,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:174,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:253,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls_messages.h:255,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:257,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:258,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 283
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - extension_types
    - supported_dh_groups
    - Client_Hello
    - random
    - Botan::TLS::serialize
    - signature_scheme
    - supported_ecc_curves
    - sni_hostname
    - compression_methods
    - ciphersuites
    - supports_alpn
    - signature_schemes
    - srtp_profiles
    - Botan::TLS::type
    - supported_versions
    - certificate_signature_schemes
    - next_protocols
    - Botan::TLS::extensions
    - Botan::TLS::cookie
    - Server_Hello
    - sent_signature_algorithms
    - cookie_input_data
    - offered_suite
    - Certificate_Verify
    - session_id
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Hello_Verify_Request
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::cookie
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:82,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:84,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:87,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:109,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:111,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:112,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:114,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:137,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:139,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:142,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ' client_hello_bits'
    - client_identity
    - ' secret_key'
    argTypes:
    - std::vector<uint8_t>
    - std::string_view
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - extension_types
    - supported_dh_groups
    - Client_Hello
    - random
    - Botan::TLS::serialize
    - supported_ecc_curves
    - sni_hostname
    - compression_methods
    - ciphersuites
    - supports_alpn
    - signature_schemes
    - srtp_profiles
    - supported_versions
    - certificate_signature_schemes
    - next_protocols
    - Botan::TLS::extensions
    - Botan::TLS::cookie
    - sent_signature_algorithms
    - cookie_input_data
    - offered_suite
    - session_id
    linkageType: ''
    returnType: void
    signature: "void Hello_Verify_Request(const std::vector<uint8_t>& client_hello_bits,\n
      \                          std::string_view client_identity,\n                           const
      SymmetricKey& secret_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 203
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Server_Hello
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Handshake_Message
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 228
    functionName: Botan::TLS::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: Botan::TLS::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Status
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: Botan::TLS::response
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & response() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:253,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls_messages.h:255,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:257,1
    - Dst: Certificate_Verify
      Src: /src/botan/src/lib/tls/tls_messages.h:258,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 274
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 12
    functionsReached:
    - Botan::TLS::type
    - Certificate_Verify
    - Botan::TLS::serialize
    - signature_scheme
    linkageType: ''
    returnType: void
    signature: void serialize() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan::TLS::verify_data
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> verify_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const override
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:83,1
    - Dst: Botan::TLS::to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:84,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 1
    argNames:
    - type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 85
    functionName: Botan::TLS::bitmask_for_handshake_type
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - static_cast<size_t>
    - Botan::TLS::to_string
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bitmask_for_handshake_type(Handshake_Type type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:111,1
    - Dst: Botan::TLS::handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:115,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - mask
    - combiner
    argTypes:
    - uint32_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 121
    functionName: Botan::TLS::handshake_mask_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan::TLS::handshake_type_to_string
    - Botan::TLS::bitmask_for_handshake_type
    linkageType: ''
    returnType: std::string
    signature: std::string handshake_mask_to_string(uint32_t mask, char combiner)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:83,1
    - Dst: Botan::TLS::to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:84,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 1
    argNames:
    - type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 85
    functionName: Botan::TLS::bitmask_for_handshake_type
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 1
    functionsReached:
    - TLS_Exception
    - static_cast<size_t>
    - Botan::TLS::to_string
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bitmask_for_handshake_type(Handshake_Type type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:111,1
    - Dst: Botan::TLS::handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:115,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - mask
    - combiner
    argTypes:
    - uint32_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 121
    functionName: Botan::TLS::handshake_mask_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan::TLS::handshake_type_to_string
    - Botan::TLS::bitmask_for_handshake_type
    linkageType: ''
    returnType: std::string
    signature: std::string handshake_mask_to_string(uint32_t mask, char combiner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg_type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Botan::TLS::Handshake_Transitions::received_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 4
    functionsReached:
    - bitmask_for_handshake_type
    linkageType: ''
    returnType: bool
    signature: bool Handshake_Transitions::received_handshake_msg(Handshake_Type msg_type)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:132,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:143,1
    - Dst: handshake_mask_to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:148,1
    - Dst: handshake_mask_to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:152,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:155,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - msg_type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 163
    functionName: Botan::TLS::Handshake_Transitions::confirm_transition_to
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 4
    functionsReached:
    - Unexpected_Message
    - handshake_mask_to_string
    - std::ostringstream::str
    - bitmask_for_handshake_type
    - handshake_type_to_string
    linkageType: ''
    returnType: void
    signature: void Handshake_Transitions::confirm_transition_to(Handshake_Type msg_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg_type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::TLS::Handshake_Transitions::set_expected_next
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 4
    functionsReached:
    - bitmask_for_handshake_type
    linkageType: ''
    returnType: void
    signature: void Handshake_Transitions::set_expected_next(Handshake_Type msg_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' msg_types'
    argTypes:
    - std::vector<Handshake_Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Handshake_Transitions::set_expected_next
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 5
    functionsReached:
    - Botan::TLS::Handshake_Transitions::set_expected_next
    linkageType: ''
    returnType: void
    signature: void Handshake_Transitions::set_expected_next(const std::vector<Handshake_Type>&
      msg_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 4
    functionsReached:
    - bitmask_for_handshake_type
    linkageType: ''
    returnType: bool
    signature: bool Handshake_Transitions::change_cipher_spec_expected() const
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:83,1
    - Dst: Botan::TLS::to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:84,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 1
    argNames:
    - type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 85
    functionName: Botan::TLS::bitmask_for_handshake_type
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 2
    functionsReached:
    - TLS_Exception
    - static_cast<size_t>
    - Botan::TLS::to_string
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bitmask_for_handshake_type(Handshake_Type type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:111,1
    - Dst: Botan::TLS::handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:115,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - mask
    - combiner
    argTypes:
    - uint32_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 121
    functionName: Botan::TLS::handshake_mask_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan::TLS::handshake_type_to_string
    - Botan::TLS::bitmask_for_handshake_type
    linkageType: ''
    returnType: std::string
    signature: std::string handshake_mask_to_string(uint32_t mask, char combiner)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:83,1
    - Dst: Botan::TLS::to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:84,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 1
    argNames:
    - type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 85
    functionName: Botan::TLS::bitmask_for_handshake_type
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 3
    functionsReached:
    - TLS_Exception
    - static_cast<size_t>
    - Botan::TLS::to_string
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bitmask_for_handshake_type(Handshake_Type type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:111,1
    - Dst: Botan::TLS::handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:115,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - mask
    - combiner
    argTypes:
    - uint32_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 121
    functionName: Botan::TLS::handshake_mask_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - Botan::TLS::handshake_type_to_string
    - Botan::TLS::bitmask_for_handshake_type
    linkageType: ''
    returnType: std::string
    signature: std::string handshake_mask_to_string(uint32_t mask, char combiner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg_type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Botan::TLS::Handshake_Transitions::received_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 4
    functionsReached:
    - bitmask_for_handshake_type
    linkageType: ''
    returnType: bool
    signature: bool Handshake_Transitions::received_handshake_msg(Handshake_Type msg_type)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:132,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:143,1
    - Dst: handshake_mask_to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:148,1
    - Dst: handshake_mask_to_string
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:152,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:155,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - msg_type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 163
    functionName: Botan::TLS::Handshake_Transitions::confirm_transition_to
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 4
    functionsReached:
    - Unexpected_Message
    - handshake_mask_to_string
    - std::ostringstream::str
    - bitmask_for_handshake_type
    - handshake_type_to_string
    linkageType: ''
    returnType: void
    signature: void Handshake_Transitions::confirm_transition_to(Handshake_Type msg_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg_type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::TLS::Handshake_Transitions::set_expected_next
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 5
    functionsReached:
    - bitmask_for_handshake_type
    linkageType: ''
    returnType: void
    signature: void Handshake_Transitions::set_expected_next(Handshake_Type msg_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_Transitions::set_expected_next
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' msg_types'
    argTypes:
    - std::vector<Handshake_Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Handshake_Transitions::set_expected_next
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 6
    functionsReached:
    - Botan::TLS::Handshake_Transitions::set_expected_next
    linkageType: ''
    returnType: void
    signature: void Handshake_Transitions::set_expected_next(const std::vector<Handshake_Type>&
      msg_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmask_for_handshake_type
      Src: /src/botan/src/lib/tls/tls_handshake_transitions.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.cpp
    functionUses: 4
    functionsReached:
    - bitmask_for_handshake_type
    linkageType: ''
    returnType: bool
    signature: bool Handshake_Transitions::change_cipher_spec_expected() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_alert.cpp:15,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_alert.cpp:16,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_alert.cpp:16,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_alert.cpp:16,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_alert.cpp:24,1
    - Dst: static_cast<Type>
      Src: /src/botan/src/lib/tls/tls_alert.cpp:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Alert::Alert
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - Decoding_Error
    - static_cast<Type>
    - TLS_Exception
    - size
    linkageType: ''
    returnType: void
    signature: void Alert::Alert(const secure_vector<uint8_t>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_alert.cpp:33,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_alert.cpp:33,1
    - Dst: is_fatal
      Src: /src/botan/src/lib/tls/tls_alert.cpp:33,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_alert.cpp:33,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_alert.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Alert::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.cpp
    functionUses: 0
    functionsReached:
    - is_fatal
    - std::vector<uint8_t>
    - type
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Alert::serialize() const
  - BBCount: 36
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 74
    argCount: 1
    argNames:
    - type
    argTypes:
    - AlertType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 114
    functionName: Botan::TLS::alert_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * alert_type_to_string(AlertType type)
  - BBCount: 36
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 74
    argCount: 1
    argNames:
    - type
    argTypes:
    - AlertType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 114
    functionName: Botan::TLS::alert_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * alert_type_to_string(AlertType type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alert_type_to_string
      Src: /src/botan/src/lib/tls/tls_alert.cpp:119,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_alert.cpp:119,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_alert.cpp:120,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_alert.cpp:123,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_alert.cpp:123,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_alert.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Alert::type_string
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.cpp
    functionUses: 22
    functionsReached:
    - std::string
    - std::to_string
    - static_cast<size_t>
    - type
    - alert_type_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string Alert::type_string() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_alert.cpp:15,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_alert.cpp:16,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_alert.cpp:16,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_alert.cpp:16,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_alert.cpp:24,1
    - Dst: static_cast<Type>
      Src: /src/botan/src/lib/tls/tls_alert.cpp:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Alert::Alert
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - Decoding_Error
    - static_cast<Type>
    - TLS_Exception
    - size
    linkageType: ''
    returnType: void
    signature: void Alert::Alert(const secure_vector<uint8_t>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_alert.cpp:33,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_alert.cpp:33,1
    - Dst: is_fatal
      Src: /src/botan/src/lib/tls/tls_alert.cpp:33,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_alert.cpp:33,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_alert.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Alert::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.cpp
    functionUses: 0
    functionsReached:
    - is_fatal
    - std::vector<uint8_t>
    - type
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Alert::serialize() const
  - BBCount: 36
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 74
    argCount: 1
    argNames:
    - type
    argTypes:
    - AlertType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 114
    functionName: Botan::TLS::alert_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * alert_type_to_string(AlertType type)
  - BBCount: 36
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 74
    argCount: 1
    argNames:
    - type
    argTypes:
    - AlertType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 114
    functionName: Botan::TLS::alert_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * alert_type_to_string(AlertType type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alert_type_to_string
      Src: /src/botan/src/lib/tls/tls_alert.cpp:119,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_alert.cpp:119,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_alert.cpp:120,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_alert.cpp:123,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_alert.cpp:123,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_alert.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Alert::type_string
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.cpp
    functionUses: 22
    functionsReached:
    - std::string
    - std::to_string
    - static_cast<size_t>
    - type
    - alert_type_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string Alert::type_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: ~ExternalPSK()
    functionSourceFile: /src/botan/src/lib/tls/tls_external_psk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ExternalPSK()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_external_psk.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - identity
    - prf_algo
    - psk
    argTypes:
    - std::string_view
    - std::string_view
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan::TLS::ExternalPSK
    functionSourceFile: /src/botan/src/lib/tls/tls_external_psk.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ExternalPSK(std::string_view identity, std::string_view prf_algo,
      secure_vector<uint8_t> psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::TLS::identity
    functionSourceFile: /src/botan/src/lib/tls/tls_external_psk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::prf_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_external_psk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & prf_algo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: ~ExternalPSK()
    functionSourceFile: /src/botan/src/lib/tls/tls_external_psk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ExternalPSK()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_external_psk.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - identity
    - prf_algo
    - psk
    argTypes:
    - std::string_view
    - std::string_view
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: Botan::TLS::ExternalPSK
    functionSourceFile: /src/botan/src/lib/tls/tls_external_psk.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ExternalPSK(std::string_view identity, std::string_view prf_algo,
      secure_vector<uint8_t> psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::TLS::identity
    functionSourceFile: /src/botan/src/lib/tls/tls_external_psk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::prf_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_external_psk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & prf_algo() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - max_sessions
    argTypes:
    - std::shared_ptr<RandomNumberGenerator>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: Botan::TLS::Session_Manager_In_Memory::Session_Manager_In_Memory
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - emplace
    linkageType: ''
    returnType: void
    signature: "void Session_Manager_In_Memory::Session_Manager_In_Memory(const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                                     size_t max_sessions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:30,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:31,1
    - Dst: capacity
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:31,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:32,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:32,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:32,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:33,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:33,1
    - Dst: pop_front
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:34,1
    - Dst: id
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:40,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:40,1
    - Dst: emplace
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:41,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:43,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:44,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Session_Manager_In_Memory::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 4
    functionsReached:
    - emplace
    - random_vec
    - front
    - std::move
    - erase
    - capacity
    - emplace_back
    - size
    - pop_front
    - BOTAN_ASSERT_NOMSG
    - has_value
    - id
    linkageType: ''
    returnType: void
    signature: void Session_Manager_In_Memory::store(const Session& session, const
      Session_Handle& handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:51,1
    - Dst: find
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:52,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:52,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Session_Manager_In_Memory::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - auto::value
    - find
    - end
    - id
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> Session_Manager_In_Memory::retrieve_one(const
      Session_Handle& handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:63,1
    - Dst: session::server_info
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:70,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' info'
    - max_sessions_hint
    argTypes:
    - Server_Information
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Session_Manager_In_Memory::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - BOTAN_UNUSED
    - session::server_info
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_In_Memory::find_some(const
      Server_Information& info,\n                                                                      const
      size_t max_sessions_hint)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove_internal
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::TLS::Session_Manager_In_Memory::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Session_Manager_In_Memory::remove_internal
    linkageType: ''
    returnType: size_t
    signature: size_t Session_Manager_In_Memory::remove(const Session_Handle& handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:84,1
    - Dst: std::erase_if
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:92,1
    - Dst: is_ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:95,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:95,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:98,1
    - Dst: id
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:100,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove_internal
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:101,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:101,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:101,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:107,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove_internal
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:108,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:108,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:108,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 115
    functionName: Botan::TLS::Session_Manager_In_Memory::remove_internal
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 2
    functionsReached:
    - ticket
    - erase
    - Session_Handle
    - is_ticket
    - std::erase_if
    - get
    - Botan::TLS::Session_Manager_In_Memory::remove_internal
    - std::visit
    - auto::value
    - id
    linkageType: ''
    returnType: size_t
    signature: size_t Session_Manager_In_Memory::remove_internal(const Session_Handle&
      handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:120,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:121,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:122,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: Botan::TLS::Session_Manager_In_Memory::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - size
    - clear
    - has_value
    linkageType: ''
    returnType: size_t
    signature: size_t Session_Manager_In_Memory::remove_all()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - max_sessions
    argTypes:
    - std::shared_ptr<RandomNumberGenerator>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: Botan::TLS::Session_Manager_In_Memory::Session_Manager_In_Memory
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - emplace
    linkageType: ''
    returnType: void
    signature: "void Session_Manager_In_Memory::Session_Manager_In_Memory(const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                                     size_t max_sessions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:30,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:31,1
    - Dst: capacity
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:31,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:32,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:32,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:32,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:33,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:33,1
    - Dst: pop_front
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:34,1
    - Dst: id
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:40,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:40,1
    - Dst: emplace
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:41,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:43,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:44,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Session_Manager_In_Memory::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 4
    functionsReached:
    - emplace
    - random_vec
    - front
    - std::move
    - erase
    - capacity
    - emplace_back
    - size
    - pop_front
    - BOTAN_ASSERT_NOMSG
    - has_value
    - id
    linkageType: ''
    returnType: void
    signature: void Session_Manager_In_Memory::store(const Session& session, const
      Session_Handle& handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:51,1
    - Dst: find
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:52,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:52,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Session_Manager_In_Memory::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - auto::value
    - find
    - end
    - id
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> Session_Manager_In_Memory::retrieve_one(const
      Session_Handle& handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:63,1
    - Dst: session::server_info
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:70,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' info'
    - max_sessions_hint
    argTypes:
    - Server_Information
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Session_Manager_In_Memory::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - BOTAN_UNUSED
    - session::server_info
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_In_Memory::find_some(const
      Server_Information& info,\n                                                                      const
      size_t max_sessions_hint)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove_internal
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::TLS::Session_Manager_In_Memory::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Session_Manager_In_Memory::remove_internal
    linkageType: ''
    returnType: size_t
    signature: size_t Session_Manager_In_Memory::remove(const Session_Handle& handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:84,1
    - Dst: std::erase_if
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:92,1
    - Dst: is_ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:95,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:95,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:98,1
    - Dst: id
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:100,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove_internal
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:101,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:101,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:101,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:107,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove_internal
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:108,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:108,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:108,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 115
    functionName: Botan::TLS::Session_Manager_In_Memory::remove_internal
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 4
    functionsReached:
    - ticket
    - erase
    - Session_Handle
    - is_ticket
    - std::erase_if
    - get
    - Botan::TLS::Session_Manager_In_Memory::remove_internal
    - std::visit
    - auto::value
    - id
    linkageType: ''
    returnType: size_t
    signature: size_t Session_Manager_In_Memory::remove_internal(const Session_Handle&
      handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:120,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:121,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:122,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: Botan::TLS::Session_Manager_In_Memory::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - size
    - clear
    - has_value
    linkageType: ''
    returnType: size_t
    signature: size_t Session_Manager_In_Memory::remove_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_external_psk.cpp:17,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_external_psk.cpp:17,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls_external_psk.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: Botan::TLS::ExternalPSK::extract_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_external_psk.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ExternalPSK::extract_master_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_external_psk.cpp:17,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_external_psk.cpp:17,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls_external_psk.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: Botan::TLS::ExternalPSK::extract_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_external_psk.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ExternalPSK::extract_master_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:20,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:21,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:22,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:23,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:24,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:25,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:26,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:27,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:28,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:29,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:30,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:31,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:32,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:33,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:34,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:35,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:36,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:37,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:38,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:39,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:40,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:41,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:42,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:43,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:44,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:45,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:46,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:47,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:48,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:49,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:50,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:51,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:52,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:53,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:54,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:55,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:56,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:57,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:58,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:59,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:60,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:61,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:62,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:63,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:64,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:65,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:66,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:67,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:68,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:69,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:70,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:71,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:72,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:73,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:74,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:75,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:76,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:77,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:78,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:79,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:80,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:81,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:82,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:83,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:84,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:85,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:86,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:87,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:88,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:89,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:90,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:91,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:92,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:93,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:94,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:95,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:96,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:97,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:98,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:99,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:100,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:101,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:102,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:103,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:104,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:105,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:106,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:107,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:108,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:109,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:110,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:111,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:112,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:113,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:114,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:115,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:116,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:117,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:118,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:119,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:120,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 127
    functionName: '& Ciphersuite::all_known_ciphersuites()'
    functionSourceFile: /src/botan/src/lib/tls/tls_suite_info.cpp
    functionUses: 0
    functionsReached:
    - Ciphersuite
    linkageType: ''
    returnType: std::vector<Ciphersuite>
    signature: std::vector<Ciphersuite> & Ciphersuite::all_known_ciphersuites()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:20,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:21,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:22,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:23,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:24,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:25,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:26,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:27,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:28,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:29,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:30,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:31,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:32,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:33,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:34,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:35,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:36,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:37,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:38,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:39,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:40,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:41,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:42,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:43,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:44,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:45,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:46,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:47,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:48,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:49,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:50,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:51,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:52,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:53,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:54,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:55,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:56,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:57,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:58,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:59,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:60,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:61,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:62,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:63,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:64,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:65,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:66,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:67,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:68,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:69,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:70,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:71,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:72,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:73,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:74,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:75,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:76,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:77,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:78,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:79,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:80,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:81,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:82,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:83,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:84,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:85,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:86,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:87,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:88,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:89,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:90,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:91,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:92,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:93,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:94,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:95,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:96,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:97,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:98,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:99,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:100,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:101,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:102,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:103,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:104,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:105,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:106,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:107,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:108,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:109,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:110,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:111,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:112,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:113,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:114,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:115,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:116,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:117,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:118,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:119,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:120,1
    - Dst: Ciphersuite
      Src: /src/botan/src/lib/tls/tls_suite_info.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 127
    functionName: '& Ciphersuite::all_known_ciphersuites()'
    functionSourceFile: /src/botan/src/lib/tls/tls_suite_info.cpp
    functionUses: 0
    functionsReached:
    - Ciphersuite
    linkageType: ''
    returnType: std::vector<Ciphersuite>
    signature: std::vector<Ciphersuite> & Ciphersuite::all_known_ciphersuites()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Policy::allow_ssl_key_log_file
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::allow_ssl_key_log_file() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature_Scheme::all_available_schemes
      Src: /src/botan/src/lib/tls/tls_policy.cpp:32,1
    - Dst: Policy::allowed_signature_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:33,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls_policy.cpp:33,1
    - Dst: Policy::allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls_policy.cpp:34,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls_policy.cpp:34,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_policy.cpp:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: Policy::allowed_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 6
    functionsReached:
    - std::vector::push_back
    - Policy::allowed_signature_method
    - Policy::allowed_signature_hash
    - algorithm_name
    - Signature_Scheme::all_available_schemes
    - hash_function_name
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> Policy::allowed_signature_schemes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Policy::allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls_policy.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Policy::acceptable_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached:
    - Policy::allowed_signature_schemes
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> Policy::acceptable_signature_schemes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Policy::acceptable_certificate_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::vector<Signature_Scheme>>
    signature: std::optional<std::vector<Signature_Scheme>> Policy::acceptable_certificate_signature_schemes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: Policy::allowed_ciphers
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Policy::allowed_ciphers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: Policy::allowed_signature_hashes
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Policy::allowed_signature_hashes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: Policy::allowed_macs
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Policy::allowed_macs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: Policy::allowed_key_exchange_methods
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Policy::allowed_key_exchange_methods() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: Policy::allowed_signature_methods
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Policy::allowed_signature_methods() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:113,1
    - Dst: Policy::allowed_signature_methods
      Src: /src/botan/src/lib/tls/tls_policy.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig_method
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: Policy::allowed_signature_method
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 1
    functionsReached:
    - Policy::allowed_signature_methods
    - value_exists
    linkageType: ''
    returnType: bool
    signature: bool Policy::allowed_signature_method(std::string_view sig_method)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:117,1
    - Dst: Policy::allowed_signature_hashes
      Src: /src/botan/src/lib/tls/tls_policy.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig_hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: Policy::allowed_signature_hash
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 1
    functionsReached:
    - Policy::allowed_signature_hashes
    - value_exists
    linkageType: ''
    returnType: bool
    signature: bool Policy::allowed_signature_hash(std::string_view sig_hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: Policy::use_ecc_point_compression
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::use_ecc_point_compression() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_policy.cpp:126,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls_policy.cpp:130,1
    - Dst: is_post_quantum
      Src: /src/botan/src/lib/tls/tls_policy.cpp:134,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:134,1
    - Dst: is_post_quantum
      Src: /src/botan/src/lib/tls/tls_policy.cpp:141,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:141,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:149,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:157,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - ' supported_by_peer'
    - ' offered_by_peer'
    argTypes:
    - std::vector<Group_Params>
    - std::vector<Group_Params>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 163
    functionName: Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - is_post_quantum
    - key_exchange_groups
    - value_exists
    - empty
    linkageType: ''
    returnType: Group_Params
    signature: "Group_Params Policy::choose_key_exchange_group(const std::vector<Group_Params>&
      supported_by_peer,\n                                               const std::vector<Group_Params>&
      offered_by_peer) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls_policy.cpp:169,1
    - Dst: is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_policy.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: Policy::default_dh_group
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - key_exchange_groups
    - is_dh_named_group
    linkageType: ''
    returnType: Group_Params
    signature: Group_Params Policy::default_dh_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: Policy::minimum_dh_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Policy::minimum_dh_group_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: Policy::minimum_ecdsa_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Policy::minimum_ecdsa_group_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: Policy::minimum_ecdh_group_size
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Policy::minimum_ecdh_group_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: Policy::minimum_signature_strength
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Policy::minimum_signature_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Policy::require_cert_revocation_info
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::require_cert_revocation_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: Policy::minimum_rsa_bits
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Policy::minimum_rsa_bits() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls_policy.cpp:278,1
    - Dst: key_length
      Src: /src/botan/src/lib/tls/tls_policy.cpp:280,1
    - Dst: Policy::minimum_rsa_bits
      Src: /src/botan/src/lib/tls/tls_policy.cpp:284,1
    - Dst: Policy::minimum_dh_group_size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:286,1
    - Dst: Policy::minimum_ecdh_group_size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:288,1
    - Dst: Policy::minimum_ecdsa_group_size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:290,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_policy.cpp:295,1
    - Dst: Policy::to_string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:296,1
    - Dst: Policy::to_string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:299,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' public_key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 301
    functionName: Policy::check_peer_key_acceptable
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 16
    functionsReached:
    - Policy::minimum_dh_group_size
    - Policy::minimum_rsa_bits
    - algo_name
    - Policy::to_string
    - Policy::minimum_ecdsa_group_size
    - TLS_Exception
    - key_length
    - Policy::minimum_ecdh_group_size
    linkageType: ''
    returnType: void
    signature: void Policy::check_peer_key_acceptable(const Public_Key& public_key)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: Policy::maximum_session_tickets_per_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Policy::maximum_session_tickets_per_client_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::days
      Src: /src/botan/src/lib/tls/tls_policy.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: Policy::session_ticket_lifetime
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached:
    - std::chrono::days
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds Policy::session_ticket_lifetime() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: Policy::reuse_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::reuse_session_tickets() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 317
    functionName: Policy::new_session_tickets_upon_handshake_success
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Policy::new_session_tickets_upon_handshake_success() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Policy::allow_tls13
      Src: /src/botan/src/lib/tls/tls_policy.cpp:321,1
    - Dst: Policy::allow_tls12
      Src: /src/botan/src/lib/tls/tls_policy.cpp:327,1
    - Dst: Policy::allow_dtls12
      Src: /src/botan/src/lib/tls/tls_policy.cpp:331,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_policy.cpp:336,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 338
    functionName: Policy::acceptable_protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allow_tls13
    - Policy::allow_tls12
    - BOTAN_UNUSED
    - Policy::allow_dtls12
    linkageType: ''
    returnType: bool
    signature: bool Policy::acceptable_protocol_version(Protocol_Version version)
      const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Policy::acceptable_protocol_version
      Src: /src/botan/src/lib/tls/tls_policy.cpp:342,1
    - Dst: Policy::acceptable_protocol_version
      Src: /src/botan/src/lib/tls/tls_policy.cpp:346,1
    - Dst: Policy::acceptable_protocol_version
      Src: /src/botan/src/lib/tls/tls_policy.cpp:349,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_policy.cpp:354,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - datagram
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 355
    functionName: Policy::latest_supported_version
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::acceptable_protocol_version
    - Invalid_State
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Policy::latest_supported_version(bool datagram) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:358,1
    - Dst: Policy::allowed_ciphers
      Src: /src/botan/src/lib/tls/tls_policy.cpp:358,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:358,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:359,1
    - Dst: Policy::allowed_macs
      Src: /src/botan/src/lib/tls/tls_policy.cpp:359,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ciphersuite'
    argTypes:
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: Policy::acceptable_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allowed_ciphers
    - value_exists
    - Policy::allowed_macs
    - cipher_algo
    - mac_algo
    linkageType: ''
    returnType: bool
    signature: bool Policy::acceptable_ciphersuite(const Ciphersuite& ciphersuite)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 364
    functionName: Policy::allow_client_initiated_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::allow_client_initiated_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 368
    functionName: Policy::allow_server_initiated_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::allow_server_initiated_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 372
    functionName: Policy::allow_insecure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::allow_insecure_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: Policy::allow_tls12
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::allow_tls12() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: Policy::allow_tls13
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::allow_tls13() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 396
    functionName: Policy::allow_dtls12
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::allow_dtls12() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: Policy::include_time_in_hello_random
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::include_time_in_hello_random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 404
    functionName: Policy::hide_unknown_users
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::hide_unknown_users() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 408
    functionName: Policy::server_uses_own_ciphersuite_preferences
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::server_uses_own_ciphersuite_preferences() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    functionName: Policy::negotiate_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::negotiate_encrypt_then_mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 416
    functionName: Policy::record_size_limit
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<uint16_t>
    signature: std::optional<uint16_t> Policy::record_size_limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: Policy::support_cert_status_message
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::support_cert_status_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: Policy::allow_resumption_for_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::allow_resumption_for_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: Policy::tls_13_middlebox_compatibility_mode
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::tls_13_middlebox_compatibility_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 432
    functionName: Policy::hash_hello_random
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::hash_hello_random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: Policy::only_resume_with_exact_version
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::only_resume_with_exact_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: Policy::require_client_certificate_authentication
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::require_client_certificate_authentication() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Policy::require_client_certificate_authentication
      Src: /src/botan/src/lib/tls/tls_policy.cpp:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 444
    functionName: Policy::request_client_certificate_authentication
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::require_client_certificate_authentication
    linkageType: ''
    returnType: bool
    signature: bool Policy::request_client_certificate_authentication() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: Policy::abort_connection_on_undesired_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::abort_connection_on_undesired_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: Policy::accepted_client_certificate_types
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Certificate_Type>
    signature: std::vector<Certificate_Type> Policy::accepted_client_certificate_types()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: Policy::accepted_server_certificate_types
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Certificate_Type>
    signature: std::vector<Certificate_Type> Policy::accepted_server_certificate_types()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: Policy::allow_dtls_epoch0_restart
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Policy::allow_dtls_epoch0_restart() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: Policy::maximum_certificate_chain_size
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Policy::maximum_certificate_chain_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 469
    functionName: Policy::dtls_initial_timeout
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Policy::dtls_initial_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 473
    functionName: Policy::dtls_maximum_timeout
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Policy::dtls_maximum_timeout() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: Policy::dtls_default_mtu
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Policy::dtls_default_mtu() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint16_t>
      Src: /src/botan/src/lib/tls/tls_policy.cpp:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 482
    functionName: Policy::srtp_profiles
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint16_t>
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> Policy::srtp_profiles() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ciphers'
    - ' macs'
    - ' kex'
    - ' sigs'
    argTypes:
    - std::vector<std::string>
    - std::vector<std::string>
    - std::vector<std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: Ciphersuite_Preference_Ordering::Ciphersuite_Preference_Ordering
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Ciphersuite_Preference_Ordering(const std::vector<std::string>&
      ciphers,\n                                      const std::vector<std::string>&
      macs,\n                                      const std::vector<std::string>&
      kex,\n                                      const std::vector<std::string>&
      sigs)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:495,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:495,1
    - Dst: kex_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:497,1
    - Dst: kex_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:500,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:506,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:506,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:508,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:511,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:517,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:517,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:518,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:518,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:521,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:521,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:526,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:526,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:528,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:531,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:537,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:537,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:539,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:542,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Ciphersuite
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 549
    functionName: operator()(const Ciphersuite& a, const Ciphersuite& b) const
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - cipher_keylen
    - sig_algo
    - cipher_algo
    - kex_method
    - mac_algo
    - auth_method
    - kex_algo
    linkageType: ''
    returnType: bool
    signature: bool operator()(const Ciphersuite& a, const Ciphersuite& b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' ciphers'
    - ' macs'
    - ' kex'
    - ' sigs'
    argTypes:
    - std::vector<std::string>
    - std::vector<std::string>
    - std::vector<std::string>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: Ciphersuite_Preference_Ordering::Ciphersuite_Preference_Ordering
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Ciphersuite_Preference_Ordering(const std::vector<std::string>&
      ciphers,\n                                      const std::vector<std::string>&
      macs,\n                                      const std::vector<std::string>&
      kex,\n                                      const std::vector<std::string>&
      sigs)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:495,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:495,1
    - Dst: kex_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:497,1
    - Dst: kex_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:500,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:506,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:506,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:508,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:511,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:517,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:517,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:518,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:518,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:521,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:521,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:526,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:526,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:528,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:531,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:537,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:537,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:539,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:542,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Ciphersuite
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 549
    functionName: operator()(const Ciphersuite& a, const Ciphersuite& b) const
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - cipher_keylen
    - sig_algo
    - cipher_algo
    - kex_method
    - mac_algo
    - auth_method
    - kex_algo
    linkageType: ''
    returnType: bool
    signature: bool operator()(const Ciphersuite& a, const Ciphersuite& b) const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Policy::allowed_ciphers
      Src: /src/botan/src/lib/tls/tls_policy.cpp:558,1
    - Dst: Policy::allowed_macs
      Src: /src/botan/src/lib/tls/tls_policy.cpp:559,1
    - Dst: Policy::allowed_key_exchange_methods
      Src: /src/botan/src/lib/tls/tls_policy.cpp:560,1
    - Dst: Policy::allowed_signature_methods
      Src: /src/botan/src/lib/tls/tls_policy.cpp:561,1
    - Dst: Ciphersuite::all_known_ciphersuites
      Src: /src/botan/src/lib/tls/tls_policy.cpp:565,1
    - Dst: valid
      Src: /src/botan/src/lib/tls/tls_policy.cpp:567,1
    - Dst: usable_in_version
      Src: /src/botan/src/lib/tls/tls_policy.cpp:572,1
    - Dst: Policy::acceptable_ciphersuite
      Src: /src/botan/src/lib/tls/tls_policy.cpp:577,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:581,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:581,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_policy.cpp:587,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:588,1
    - Dst: kex_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:588,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:592,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:592,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:596,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:596,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:598,1
    - Dst: psk_ciphersuite
      Src: /src/botan/src/lib/tls/tls_policy.cpp:598,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_policy.cpp:605,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_policy.cpp:608,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_policy.cpp:609,1
    - Dst: std::sort
      Src: /src/botan/src/lib/tls/tls_policy.cpp:613,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls_policy.cpp:613,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls_policy.cpp:613,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_policy.cpp:616,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:616,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_policy.cpp:618,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_policy.cpp:618,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 36
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 621
    functionName: Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - std::sort
    - Policy::allowed_ciphers
    - valid
    - std::vector::begin
    - mac_algo
    - auth_method
    - Invalid_State
    - usable_in_version
    - std::vector::end
    - value_exists
    - Protocol_Version::is_pre_tls_13
    - Policy::acceptable_ciphersuite
    - std::vector::empty
    - std::vector::size
    - sig_algo
    - Policy::allowed_key_exchange_methods
    - Policy::allowed_macs
    - cipher_algo
    - ciphersuite_code
    - kex_algo
    - psk_ciphersuite
    - std::vector::push_back
    - Policy::allowed_signature_methods
    - std::vector::reserve
    - Ciphersuite::all_known_ciphersuites
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> Policy::ciphersuite_list(Protocol_Version version)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:627,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' o'
    - key
    - ' v'
    argTypes:
    - std::ostream
    - char*
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 634
    functionName: print_vec
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void print_vec(std::ostream& o, const char* key, const std::vector<std::string>&
      v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_policy.cpp:641,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_policy.cpp:641,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:647,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:649,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ' o'
    - key
    - ' params'
    argTypes:
    - std::ostream
    - char*
    - std::vector<Group_Params>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 654
    functionName: print_vec
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - auto::value
    - std::vector::push_back
    - std::vector::size
    - to_string
    linkageType: ''
    returnType: void
    signature: void print_vec(std::ostream& o, const char* key, const std::vector<Group_Params>&
      params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:658,1
    - Dst: certificate_type_to_string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:659,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' o'
    - key
    - ' types'
    argTypes:
    - std::ostream
    - char*
    - std::vector<Certificate_Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 665
    functionName: print_vec
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - size
    - certificate_type_to_string
    linkageType: ''
    returnType: void
    signature: void print_vec(std::ostream& o, const char* key, const std::vector<Certificate_Type>&
      types)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' o'
    - key
    - b
    argTypes:
    - std::ostream
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: print_bool
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print_bool(std::ostream& o, const char* key, bool b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:627,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' o'
    - key
    - ' v'
    argTypes:
    - std::ostream
    - char*
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 634
    functionName: print_vec
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void print_vec(std::ostream& o, const char* key, const std::vector<std::string>&
      v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:640,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_policy.cpp:641,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_policy.cpp:641,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:647,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:649,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ' o'
    - key
    - ' params'
    argTypes:
    - std::ostream
    - char*
    - std::vector<Group_Params>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 654
    functionName: print_vec
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - auto::value
    - std::vector::push_back
    - std::vector::size
    - to_string
    linkageType: ''
    returnType: void
    signature: void print_vec(std::ostream& o, const char* key, const std::vector<Group_Params>&
      params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:658,1
    - Dst: certificate_type_to_string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:659,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' o'
    - key
    - ' types'
    argTypes:
    - std::ostream
    - char*
    - std::vector<Certificate_Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 665
    functionName: print_vec
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - size
    - certificate_type_to_string
    linkageType: ''
    returnType: void
    signature: void print_vec(std::ostream& o, const char* key, const std::vector<Certificate_Type>&
      types)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' o'
    - key
    - b
    argTypes:
    - std::ostream
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: print_bool
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print_bool(std::ostream& o, const char* key, bool b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:674,1
    - Dst: Policy::allow_tls12
      Src: /src/botan/src/lib/tls/tls_policy.cpp:674,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:675,1
    - Dst: Policy::allow_tls13
      Src: /src/botan/src/lib/tls/tls_policy.cpp:675,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:676,1
    - Dst: Policy::allow_dtls12
      Src: /src/botan/src/lib/tls/tls_policy.cpp:676,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:677,1
    - Dst: Policy::allow_ssl_key_log_file
      Src: /src/botan/src/lib/tls/tls_policy.cpp:677,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:678,1
    - Dst: Policy::allowed_ciphers
      Src: /src/botan/src/lib/tls/tls_policy.cpp:678,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:679,1
    - Dst: Policy::allowed_macs
      Src: /src/botan/src/lib/tls/tls_policy.cpp:679,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:680,1
    - Dst: Policy::allowed_signature_hashes
      Src: /src/botan/src/lib/tls/tls_policy.cpp:680,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:681,1
    - Dst: Policy::allowed_signature_methods
      Src: /src/botan/src/lib/tls/tls_policy.cpp:681,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:682,1
    - Dst: Policy::allowed_key_exchange_methods
      Src: /src/botan/src/lib/tls/tls_policy.cpp:682,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:683,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls_policy.cpp:683,1
    - Dst: key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls_policy.cpp:684,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls_policy.cpp:685,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:686,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:686,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:688,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:690,1
    - Dst: Policy::allow_insecure_renegotiation
      Src: /src/botan/src/lib/tls/tls_policy.cpp:690,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:691,1
    - Dst: Policy::include_time_in_hello_random
      Src: /src/botan/src/lib/tls/tls_policy.cpp:691,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:692,1
    - Dst: Policy::allow_server_initiated_renegotiation
      Src: /src/botan/src/lib/tls/tls_policy.cpp:692,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:693,1
    - Dst: Policy::hide_unknown_users
      Src: /src/botan/src/lib/tls/tls_policy.cpp:693,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:694,1
    - Dst: Policy::server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/tls_policy.cpp:694,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:695,1
    - Dst: Policy::negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls_policy.cpp:695,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:696,1
    - Dst: Policy::support_cert_status_message
      Src: /src/botan/src/lib/tls/tls_policy.cpp:696,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:697,1
    - Dst: Policy::tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/tls_policy.cpp:697,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:698,1
    - Dst: Policy::accepted_client_certificate_types
      Src: /src/botan/src/lib/tls/tls_policy.cpp:698,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:699,1
    - Dst: Policy::accepted_server_certificate_types
      Src: /src/botan/src/lib/tls/tls_policy.cpp:699,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:700,1
    - Dst: Policy::hash_hello_random
      Src: /src/botan/src/lib/tls/tls_policy.cpp:700,1
    - Dst: Policy::record_size_limit
      Src: /src/botan/src/lib/tls/tls_policy.cpp:701,1
    - Dst: Policy::record_size_limit
      Src: /src/botan/src/lib/tls/tls_policy.cpp:702,1
    - Dst: Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_policy.cpp:704,1
    - Dst: Policy::session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_policy.cpp:705,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:706,1
    - Dst: Policy::reuse_session_tickets
      Src: /src/botan/src/lib/tls/tls_policy.cpp:706,1
    - Dst: Policy::new_session_tickets_upon_handshake_success
      Src: /src/botan/src/lib/tls/tls_policy.cpp:707,1
    - Dst: Policy::minimum_dh_group_size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:708,1
    - Dst: Policy::minimum_ecdh_group_size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:709,1
    - Dst: Policy::minimum_rsa_bits
      Src: /src/botan/src/lib/tls/tls_policy.cpp:710,1
    - Dst: Policy::minimum_signature_strength
      Src: /src/botan/src/lib/tls/tls_policy.cpp:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 712
    functionName: Policy::print
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - print_bool
    - std::string
    - Policy::tls_13_middlebox_compatibility_mode
    - Policy::allowed_ciphers
    - Policy::server_uses_own_ciphersuite_preferences
    - Policy::record_size_limit
    - Policy::allow_tls13
    - Policy::minimum_dh_group_size
    - Policy::include_time_in_hello_random
    - Policy::allow_tls12
    - Policy::allowed_signature_hashes
    - Policy::new_session_tickets_upon_handshake_success
    - Policy::allow_dtls12
    - key_exchange_groups_to_offer
    - Policy::minimum_rsa_bits
    - auto::empty
    - Policy::allowed_key_exchange_methods
    - Policy::allowed_macs
    - Policy::hash_hello_random
    - Policy::allow_ssl_key_log_file
    - Policy::maximum_session_tickets_per_client_hello
    - Policy::reuse_session_tickets
    - Policy::hide_unknown_users
    - key_exchange_groups
    - Policy::negotiate_encrypt_then_mac
    - Policy::support_cert_status_message
    - Policy::accepted_server_certificate_types
    - Policy::minimum_signature_strength
    - Policy::allowed_signature_methods
    - Policy::accepted_client_certificate_types
    - Policy::allow_insecure_renegotiation
    - Policy::allow_server_initiated_renegotiation
    - print_vec
    - Policy::session_ticket_lifetime
    - Policy::minimum_ecdh_group_size
    linkageType: ''
    returnType: void
    signature: void Policy::print(std::ostream& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Policy::print
      Src: /src/botan/src/lib/tls/tls_policy.cpp:716,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls_policy.cpp:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 718
    functionName: Policy::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 5
    functionsReached:
    - std::ostringstream::str
    - Policy::print
    linkageType: ''
    returnType: std::string
    signature: std::string Policy::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 722
    functionName: Strict_Policy::allowed_ciphers
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Strict_Policy::allowed_ciphers() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 726
    functionName: Strict_Policy::allowed_signature_hashes
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Strict_Policy::allowed_signature_hashes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 730
    functionName: Strict_Policy::allowed_macs
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Strict_Policy::allowed_macs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 734
    functionName: Strict_Policy::allowed_key_exchange_methods
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Strict_Policy::allowed_key_exchange_methods()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::TLS::is_implemented
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_implemented() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: ~Extension()
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: Botan::TLS::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Name_Indicator
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 8
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - host_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Name_Indicator(std::string_view host_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::TLS::host_name
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::TLS::is_implemented
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_implemented() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: ~Extension()
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: Botan::TLS::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Name_Indicator
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 8
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - host_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Name_Indicator(std::string_view host_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::TLS::host_name
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan::Application_Layer_Protocol_Notification
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Application_Layer_Protocol_Notification
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::protocols
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & protocols() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_extensions.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: Botan::Application_Layer_Protocol_Notification
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void Application_Layer_Protocol_Notification(std::string_view protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' protocols'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: Botan::Application_Layer_Protocol_Notification
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Application_Layer_Protocol_Notification(const std::vector<std::string>&
      protocols)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::empty
      Src: /src/botan/src/lib/tls/tls_extensions.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 1
    functionsReached:
    - Botan::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::TLS::is_implemented
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_implemented() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: ~Extension()
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: Botan::TLS::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Name_Indicator
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 8
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - host_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Name_Indicator(std::string_view host_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::TLS::host_name
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::TLS::is_implemented
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_implemented() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: ~Extension()
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: Botan::TLS::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Name_Indicator
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 8
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - host_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Name_Indicator(std::string_view host_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::TLS::host_name
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string host_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan::Application_Layer_Protocol_Notification
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Application_Layer_Protocol_Notification
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::protocols
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & protocols() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_extensions.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: Botan::Application_Layer_Protocol_Notification
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - std::string
    linkageType: ''
    returnType: void
    signature: void Application_Layer_Protocol_Notification(std::string_view protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' protocols'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: Botan::Application_Layer_Protocol_Notification
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Application_Layer_Protocol_Notification(const std::vector<std::string>&
      protocols)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::empty
      Src: /src/botan/src/lib/tls/tls_extensions.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 2
    functionsReached:
    - Botan::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Certificate_Type_Base
      Src: /src/botan/src/lib/tls/tls_extensions.h:175,1
    - Dst: Certificate_Type_Base
      Src: /src/botan/src/lib/tls/tls_extensions.h:179,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.h:191,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.h:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 198
    functionName: Certificate_Type_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 1
    functionsReached:
    - front
    - size
    - Certificate_Type_Base
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Type_Base
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.h:191,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.h:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 753
    functionsReached:
    - front
    - size
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 212
    functionName: Client_Certificate_Type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - static_type
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Client_Certificate_Type
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: static_type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code static_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 126
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 226
    functionName: Server_Certificate_Type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - static_type
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Certificate_Type
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: static_type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code static_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 128
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: Supported_Groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Supported_Groups
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 129
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 754
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: Signature_Algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Signature_Algorithms
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 130
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 266
    functionName: supported_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> & supported_schemes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 755
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - schemes
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: Signature_Algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 4
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature_Algorithms(std::vector<Signature_Scheme> schemes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: Signature_Algorithms_Cert
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Signature_Algorithms_Cert
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 131
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: supported_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> & supported_schemes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 756
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - schemes
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: Signature_Algorithms_Cert
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature_Algorithms_Cert(std::vector<Signature_Scheme> schemes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: SRTP_Protection_Profiles
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API SRTP_Protection_Profiles
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 132
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 322
    functionName: profiles
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> & profiles() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 757
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' pp'
    argTypes:
    - std::vector<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 328
    functionName: SRTP_Protection_Profiles
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SRTP_Protection_Profiles(const std::vector<uint16_t>& pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pp
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 330
    functionName: SRTP_Protection_Profiles
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SRTP_Protection_Profiles(uint16_t pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Status_Request
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 133
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 351
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 757
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 383
    functionName: ~Certificate_Status_Request() override
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - static_type
    linkageType: ''
    returnType: void
    signature: void ~Certificate_Status_Request() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 135
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.h:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 758
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.h:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: Supported_Versions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void Supported_Versions(Protocol_Version version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: versions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Protocol_Version>
    signature: std::vector<Protocol_Version> & versions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: Record_Size_Limit
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Record_Size_Limit
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 136
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 422
    functionName: limit
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t limit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 426
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 758
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Unknown_Extension
      Src: /src/botan/src/lib/tls/tls_extensions.h:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 452
    functionName: Unknown_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 1
    functionsReached:
    - Unknown_Extension
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Unknown_Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 441
    functionName: value
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 345
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & value()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 443
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 758
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 445
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 136
    functionsReached: []
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 447
    functionName: is_implemented
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_implemented() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<T*>
      Src: /src/botan/src/lib/tls/tls_extensions.h:465,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_extensions.h:465,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:465,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_extensions.h:470,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_extensions.h:473,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.h:475,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.h:477,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls_extensions.h:481,1
    - Dst: std::unique_ptr<Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.h:481,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/tls_extensions.h:503,1
    - Dst: take
      Src: /src/botan/src/lib/tls/tls_extensions.h:514,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:514,1
    - Dst: std::unique_ptr::reset
      Src: /src/botan/src/lib/tls/tls_extensions.h:516,1
    - Dst: dynamic_cast<T*>
      Src: /src/botan/src/lib/tls/tls_extensions.h:516,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_extensions.h:516,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.h:517,1
    - Dst: auto::release
      Src: /src/botan/src/lib/tls/tls_extensions.h:518,1
    - Dst: take
      Src: /src/botan/src/lib/tls/tls_extensions.h:537,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls_extensions.h:547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 552
    functionName: Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - dynamic_cast<T*>
    - contains_other_than
    - auto::get
    - get
    - take
    - deserialize
    - add
    - std::unique_ptr<Extension>
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    - size
    - std::unique_ptr::reset
    - BOTAN_ASSERT_NOMSG
    - auto::release
    - empty
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Extensions
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 461
    functionName: all
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Extension>>
    signature: std::vector<std::unique_ptr<Extension>> & all() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<T*>
      Src: /src/botan/src/lib/tls/tls_extensions.h:465,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_extensions.h:465,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 466
    functionName: get
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 394
    functionsReached:
    - dynamic_cast<T*>
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    - get
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_extensions.h:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 471
    functionName: has
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 24
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool has() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_extensions.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 473
    functionName: has
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 24
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool has(Extension_Code type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.h:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 475
    functionName: size
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 1926
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 477
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 760
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/lib/tls/tls_extensions.h:481,1
    - Dst: std::unique_ptr<Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - extn
    argTypes:
    - Extension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 481
    functionName: add
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 195
    functionsReached:
    - std::unique_ptr<Extension>
    - add
    linkageType: ''
    returnType: void
    signature: void add(Extension* extn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/tls_extensions.h:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' allowed_extensions'
    argTypes:
    - std::set<Extension_Code>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 504
    functionName: contains_implemented_extensions_other_than
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - contains_other_than
    linkageType: ''
    returnType: bool
    signature: bool contains_implemented_extensions_other_than(const std::set<Extension_Code>&
      allowed_extensions) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/botan/src/lib/tls/tls_extensions.h:514,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:514,1
    - Dst: std::unique_ptr::reset
      Src: /src/botan/src/lib/tls/tls_extensions.h:516,1
    - Dst: dynamic_cast<T*>
      Src: /src/botan/src/lib/tls/tls_extensions.h:516,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_extensions.h:516,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.h:517,1
    - Dst: auto::release
      Src: /src/botan/src/lib/tls/tls_extensions.h:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 522
    functionName: take
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 28
    functionsReached:
    - dynamic_cast<T*>
    - auto::get
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    - std::unique_ptr::reset
    - BOTAN_ASSERT_NOMSG
    - auto::release
    - take
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) take()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/botan/src/lib/tls/tls_extensions.h:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 537
    functionName: remove_extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 2
    functionsReached:
    - take
    linkageType: ''
    returnType: bool
    signature: bool remove_extension(Extension_Code type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 540
    functionName: Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Extensions(const Extensions&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 542
    functionName: Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Extensions(Extensions&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls_extensions.h:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' reader'
    - side
    - message_type
    argTypes:
    - TLS_Data_Reader
    - Connection_Side
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 548
    functionName: Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - deserialize
    linkageType: ''
    returnType: void
    signature: void Extensions(TLS_Data_Reader& reader, Connection_Side side, Handshake_Type
      message_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Client_Hello_Internal::Client_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client_Hello_Internal()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan::TLS::Client_Hello_Internal::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& random() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: '& ciphersuites() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> & ciphersuites() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: '& comp_methods() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & comp_methods() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '& hello_cookie() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & hello_cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: '& hello_cookie_input_bits() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & hello_cookie_input_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages_internal.h:124,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages_internal.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - lv
    - sid
    - r
    - cs
    - cm
    argTypes:
    - Protocol_Version
    - Session_ID
    - std::vector<uint8_t>
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Server_Hello_Internal::Server_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_Internal(Protocol_Version lv,\n                            Session_ID
      sid,\n                            std::vector<uint8_t> r,\n                            const
      uint16_t cs,\n                            const uint8_t cm,\n                            bool
      is_hrr = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Server_Hello_Internal::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: '& random() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan::TLS::Server_Hello_Internal::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Server_Hello_Internal::comp_method
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t comp_method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Server_Hello_Internal::is_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_hello_retry_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Client_Hello_Internal::Client_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client_Hello_Internal()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan::TLS::Client_Hello_Internal::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& random() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: '& ciphersuites() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> & ciphersuites() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: '& comp_methods() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & comp_methods() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '& hello_cookie() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & hello_cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: '& hello_cookie_input_bits() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & hello_cookie_input_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages_internal.h:124,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages_internal.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - lv
    - sid
    - r
    - cs
    - cm
    argTypes:
    - Protocol_Version
    - Session_ID
    - std::vector<uint8_t>
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Server_Hello_Internal::Server_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_Internal(Protocol_Version lv,\n                            Session_ID
      sid,\n                            std::vector<uint8_t> r,\n                            const
      uint16_t cs,\n                            const uint8_t cm,\n                            bool
      is_hrr = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Server_Hello_Internal::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: '& random() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan::TLS::Server_Hello_Internal::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Server_Hello_Internal::comp_method
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t comp_method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Server_Hello_Internal::is_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_hello_retry_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server
      Src: /src/botan/src/lib/tls/tls_server.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Channel
    functionSourceFile: /src/botan/src/lib/tls/tls_server.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server
    linkageType: ''
    returnType: Server
    signature: Server Channel
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan::TLS::Server
    functionSourceFile: /src/botan/src/lib/tls/tls_server.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server(const Server& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::TLS::Server
    functionSourceFile: /src/botan/src/lib/tls/tls_server.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server(Server&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server
      Src: /src/botan/src/lib/tls/tls_server.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Channel
    functionSourceFile: /src/botan/src/lib/tls/tls_server.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server
    linkageType: ''
    returnType: Server
    signature: Server Channel
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: Botan::TLS::Server
    functionSourceFile: /src/botan/src/lib/tls/tls_server.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server(const Server& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Server
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::TLS::Server
    functionSourceFile: /src/botan/src/lib/tls/tls_server.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server(Server&& other)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_magic.cpp:78,1
    - Dst: Botan::TLS::to_string
      Src: /src/botan/src/lib/tls/tls_magic.cpp:79,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_magic.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 1
    argNames:
    - type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 80
    functionName: Botan::TLS::handshake_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_magic.cpp
    functionUses: 4
    functionsReached:
    - TLS_Exception
    - static_cast<size_t>
    - Botan::TLS::to_string
    linkageType: ''
    returnType: char
    signature: char * handshake_type_to_string(Handshake_Type type)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_magic.cpp:78,1
    - Dst: Botan::TLS::to_string
      Src: /src/botan/src/lib/tls/tls_magic.cpp:79,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_magic.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 1
    argNames:
    - type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 80
    functionName: Botan::TLS::handshake_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_magic.cpp
    functionUses: 4
    functionsReached:
    - TLS_Exception
    - static_cast<size_t>
    - Botan::TLS::to_string
    linkageType: ''
    returnType: char
    signature: char * handshake_type_to_string(Handshake_Type type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:26,1
    - Dst: hash_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:28,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:29,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:30,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:31,1
    - Dst: include_time_in_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:37,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:37,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:37,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:38,1
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:38,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:38,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:40,1
    - Dst: auto::data
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' rng'
    - ' cb'
    - ' policy'
    argTypes:
    - RandomNumberGenerator
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 44
    functionName: Botan::TLS::make_hello_random
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - allow_tls12
    - static_cast<uint32_t>
    - random_vec
    - auto::data
    - include_time_in_hello_random
    - tls_current_timestamp
    - Botan::HashFunction::create_or_throw
    - allow_dtls12
    - auto::update
    - auto::final
    - std::chrono::system_clock::to_time_t
    - store_be
    - hash_hello_random
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> make_hello_random(RandomNumberGenerator& rng,
      Callbacks& cb, const Policy& policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:47,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:48,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:53,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:54,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:56,1
    - Dst: TLS_Data_Reader::get_fixed
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:57,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:58,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:58,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:60,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:61,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:62,1
    - Dst: TLS_Data_Reader::get_data_read_so_far
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:62,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:64,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:66,1
    - Dst: TLS_Data_Reader::get_remaining
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:66,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:67,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:70,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:71,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 74
    functionName: Botan::TLS::Client_Hello_Internal::Client_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::get_fixed
    - TLS_Data_Reader::get_byte
    - Protocol_Version
    - Decoding_Error
    - Session_ID
    - Botan::HashFunction::create_or_throw
    - deserialize
    - TLS_Data_Reader::get_range
    - is_datagram_protocol
    - size
    - auto::update
    - TLS_Data_Reader::get_range_vector
    - TLS_Data_Reader::get_remaining
    - TLS_Data_Reader::get_data_read_so_far
    - auto::final_stdvec
    linkageType: ''
    returnType: void
    signature: void Client_Hello_Internal::Client_Hello_Internal(const std::vector<uint8_t>&
      buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:92,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:93,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Client_Hello_Internal::version
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - is_datagram_protocol
    - extensions
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Client_Hello_Internal::version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Client_Hello::Client_Hello
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client_Hello::Client_Hello(Client_Hello&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Client_Hello::~Client_Hello()
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client_Hello::~Client_Hello()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Hello_Internal>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Client_Hello::Client_Hello
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Client_Hello_Internal>
    linkageType: ''
    returnType: void
    signature: void Client_Hello::Client_Hello()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:114,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: Botan::TLS::Client_Hello::Client_Hello
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void Client_Hello::Client_Hello(std::unique_ptr<Client_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Client_Hello::type
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type Client_Hello::type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Client_Hello::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client_Hello::legacy_version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Client_Hello::legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: '& Client_Hello::random() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - random
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & Client_Hello::random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: '& Client_Hello::session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - session_id
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & Client_Hello::session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: '& Client_Hello::compression_methods() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - comp_methods
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & Client_Hello::compression_methods() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: '& Client_Hello::ciphersuites() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - ciphersuites
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> & Client_Hello::ciphersuites() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: Botan::TLS::Client_Hello::extension_types
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: std::set<Extension_Code>
    signature: std::set<Extension_Code> Client_Hello::extension_types() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: '& Client_Hello::extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: Extensions
    signature: Extensions & Client_Hello::extensions() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:155,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:157,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:157,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:158,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:158,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:159,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:161,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:161,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:163,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:164,1
    - Dst: hello_cookie
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:164,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:167,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:167,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:168,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:168,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 179
    functionName: Botan::TLS::Client_Hello::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - std::vector::push_back
    - hello_cookie
    - session_id
    - Botan::TLS::Client_Hello::legacy_version
    - std::vector::reserve
    - comp_methods
    - random
    - append_tls_length_value
    - ciphersuites
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Client_Hello::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:182,1
    - Dst: hello_cookie_input_bits
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:182,1
    - Dst: hello_cookie_input_bits
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: Botan::TLS::Client_Hello::cookie_input_data
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - hello_cookie_input_bits
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Client_Hello::cookie_input_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:191,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:191,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:191,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ciphersuite
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: Botan::TLS::Client_Hello::offered_suite
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - ciphersuites
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello::offered_suite(uint16_t ciphersuite) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:196,1
    - Dst: Signature_Algorithms*::supported_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: Botan::TLS::Client_Hello::signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Signature_Algorithms*::supported_schemes
    - extensions
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> Client_Hello::signature_schemes() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:207,1
    - Dst: Signature_Algorithms_Cert*::supported_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:208,1
    - Dst: Botan::TLS::Client_Hello::signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: Botan::TLS::Client_Hello::certificate_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Signature_Algorithms_Cert*::supported_schemes
    - Botan::TLS::Client_Hello::signature_schemes
    - extensions
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> Client_Hello::certificate_signature_schemes()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:215,1
    - Dst: Supported_Groups*::ec_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: Botan::TLS::Client_Hello::supported_ecc_curves
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Supported_Groups*::ec_groups
    - extensions
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Client_Hello::supported_ecc_curves() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:222,1
    - Dst: Supported_Groups*::dh_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:223,1
    - Dst: std::vector<Group_Params>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: Botan::TLS::Client_Hello::supported_dh_groups
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::vector<Group_Params>
    - extensions
    - Supported_Groups*::dh_groups
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Client_Hello::supported_dh_groups() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:229,1
    - Dst: Server_Name_Indicator*::host_name
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Client_Hello::sni_hostname
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Server_Name_Indicator*::host_name
    - extensions
    linkageType: ''
    returnType: std::string
    signature: std::string Client_Hello::sni_hostname() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:236,1
    - Dst: Supported_Versions*::versions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: Botan::TLS::Client_Hello::supported_versions
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Supported_Versions*::versions
    - extensions
    linkageType: ''
    returnType: std::vector<Protocol_Version>
    signature: std::vector<Protocol_Version> Client_Hello::supported_versions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: Botan::TLS::Client_Hello::supports_alpn
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello::supports_alpn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: Botan::TLS::Client_Hello::sent_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello::sent_signature_algorithms() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:251,1
    - Dst: auto*::protocols
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: Botan::TLS::Client_Hello::next_protocols
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - auto*::protocols
    - extensions
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Client_Hello::next_protocols() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:258,1
    - Dst: SRTP_Protection_Profiles*::profiles
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Client_Hello::srtp_profiles
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - SRTP_Protection_Profiles*::profiles
    - extensions
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> Client_Hello::srtp_profiles() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hello_cookie
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: '& Client_Hello::cookie() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - hello_cookie
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & Client_Hello::cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: Botan::TLS::Client_Hello_12_Shim::Client_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12_Shim::Client_Hello_12_Shim(std::unique_ptr<Client_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Hello_Internal>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: Botan::TLS::Client_Hello_12_Shim::Client_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Client_Hello_Internal>
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12_Shim::Client_Hello_12_Shim(const std::vector<uint8_t>&
      buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:26,1
    - Dst: hash_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:28,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:29,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:30,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:31,1
    - Dst: include_time_in_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:37,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:37,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:37,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:38,1
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:38,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:38,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:40,1
    - Dst: auto::data
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' rng'
    - ' cb'
    - ' policy'
    argTypes:
    - RandomNumberGenerator
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 44
    functionName: Botan::TLS::make_hello_random
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - allow_tls12
    - static_cast<uint32_t>
    - random_vec
    - auto::data
    - include_time_in_hello_random
    - tls_current_timestamp
    - Botan::HashFunction::create_or_throw
    - allow_dtls12
    - auto::update
    - auto::final
    - std::chrono::system_clock::to_time_t
    - store_be
    - hash_hello_random
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> make_hello_random(RandomNumberGenerator& rng,
      Callbacks& cb, const Policy& policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:47,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:48,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:53,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:54,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:56,1
    - Dst: TLS_Data_Reader::get_fixed
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:57,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:58,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:58,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:60,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:61,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:62,1
    - Dst: TLS_Data_Reader::get_data_read_so_far
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:62,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:64,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:66,1
    - Dst: TLS_Data_Reader::get_remaining
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:66,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:67,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:70,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:71,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 74
    functionName: Botan::TLS::Client_Hello_Internal::Client_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::get_fixed
    - TLS_Data_Reader::get_byte
    - Protocol_Version
    - Decoding_Error
    - Session_ID
    - Botan::HashFunction::create_or_throw
    - deserialize
    - TLS_Data_Reader::get_range
    - is_datagram_protocol
    - size
    - auto::update
    - TLS_Data_Reader::get_range_vector
    - TLS_Data_Reader::get_remaining
    - TLS_Data_Reader::get_data_read_so_far
    - auto::final_stdvec
    linkageType: ''
    returnType: void
    signature: void Client_Hello_Internal::Client_Hello_Internal(const std::vector<uint8_t>&
      buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:92,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:93,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Client_Hello_Internal::version
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - is_datagram_protocol
    - extensions
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Client_Hello_Internal::version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Client_Hello::Client_Hello
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client_Hello::Client_Hello(Client_Hello&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Client_Hello::~Client_Hello()
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client_Hello::~Client_Hello()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Hello_Internal>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Client_Hello::Client_Hello
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Client_Hello_Internal>
    linkageType: ''
    returnType: void
    signature: void Client_Hello::Client_Hello()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:114,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: Botan::TLS::Client_Hello::Client_Hello
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void Client_Hello::Client_Hello(std::unique_ptr<Client_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Client_Hello::type
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type Client_Hello::type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Client_Hello::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Client_Hello::legacy_version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Client_Hello::legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: '& Client_Hello::random() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - random
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & Client_Hello::random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: '& Client_Hello::session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - session_id
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & Client_Hello::session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: '& Client_Hello::compression_methods() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - comp_methods
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & Client_Hello::compression_methods() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: '& Client_Hello::ciphersuites() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - ciphersuites
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> & Client_Hello::ciphersuites() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: Botan::TLS::Client_Hello::extension_types
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: std::set<Extension_Code>
    signature: std::set<Extension_Code> Client_Hello::extension_types() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: '& Client_Hello::extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: Extensions
    signature: Extensions & Client_Hello::extensions() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:155,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:157,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:157,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:158,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:158,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:159,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:161,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:161,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:163,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:164,1
    - Dst: hello_cookie
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:164,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:167,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:167,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:168,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:168,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 179
    functionName: Botan::TLS::Client_Hello::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - std::vector::push_back
    - hello_cookie
    - session_id
    - Botan::TLS::Client_Hello::legacy_version
    - std::vector::reserve
    - comp_methods
    - random
    - append_tls_length_value
    - ciphersuites
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Client_Hello::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:182,1
    - Dst: hello_cookie_input_bits
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:182,1
    - Dst: hello_cookie_input_bits
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: Botan::TLS::Client_Hello::cookie_input_data
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - hello_cookie_input_bits
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Client_Hello::cookie_input_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:191,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:191,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:191,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ciphersuite
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: Botan::TLS::Client_Hello::offered_suite
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - ciphersuites
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello::offered_suite(uint16_t ciphersuite) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:196,1
    - Dst: Signature_Algorithms*::supported_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: Botan::TLS::Client_Hello::signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 1
    functionsReached:
    - Signature_Algorithms*::supported_schemes
    - extensions
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> Client_Hello::signature_schemes() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:207,1
    - Dst: Signature_Algorithms_Cert*::supported_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:208,1
    - Dst: Botan::TLS::Client_Hello::signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: Botan::TLS::Client_Hello::certificate_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Signature_Algorithms_Cert*::supported_schemes
    - Botan::TLS::Client_Hello::signature_schemes
    - extensions
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> Client_Hello::certificate_signature_schemes()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:215,1
    - Dst: Supported_Groups*::ec_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: Botan::TLS::Client_Hello::supported_ecc_curves
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Supported_Groups*::ec_groups
    - extensions
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Client_Hello::supported_ecc_curves() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:222,1
    - Dst: Supported_Groups*::dh_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:223,1
    - Dst: std::vector<Group_Params>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: Botan::TLS::Client_Hello::supported_dh_groups
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::vector<Group_Params>
    - extensions
    - Supported_Groups*::dh_groups
    linkageType: ''
    returnType: std::vector<Group_Params>
    signature: std::vector<Group_Params> Client_Hello::supported_dh_groups() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:229,1
    - Dst: Server_Name_Indicator*::host_name
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Client_Hello::sni_hostname
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Server_Name_Indicator*::host_name
    - extensions
    linkageType: ''
    returnType: std::string
    signature: std::string Client_Hello::sni_hostname() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:236,1
    - Dst: Supported_Versions*::versions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: Botan::TLS::Client_Hello::supported_versions
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Supported_Versions*::versions
    - extensions
    linkageType: ''
    returnType: std::vector<Protocol_Version>
    signature: std::vector<Protocol_Version> Client_Hello::supported_versions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: Botan::TLS::Client_Hello::supports_alpn
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello::supports_alpn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: Botan::TLS::Client_Hello::sent_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello::sent_signature_algorithms() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:251,1
    - Dst: auto*::protocols
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: Botan::TLS::Client_Hello::next_protocols
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - auto*::protocols
    - extensions
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Client_Hello::next_protocols() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:258,1
    - Dst: SRTP_Protection_Profiles*::profiles
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Client_Hello::srtp_profiles
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - SRTP_Protection_Profiles*::profiles
    - extensions
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> Client_Hello::srtp_profiles() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hello_cookie
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: '& Client_Hello::cookie() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - hello_cookie
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & Client_Hello::cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: Botan::TLS::Client_Hello_12_Shim::Client_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12_Shim::Client_Hello_12_Shim(std::unique_ptr<Client_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Hello_Internal>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: Botan::TLS::Client_Hello_12_Shim::Client_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Client_Hello_Internal>
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12_Shim::Client_Hello_12_Shim(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Null_RNG>
      Src: /src/botan/src/lib/tls/tls_session_manager_noop.cpp:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: Botan::TLS::Session_Manager_Noop::Session_Manager_Noop
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Null_RNG>
    linkageType: ''
    returnType: void
    signature: void Session_Manager_Noop::Session_Manager_Noop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: Botan::TLS::Session_Manager_Noop::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> Session_Manager_Noop::establish(const
      Session& /*session*/,\n                                                              const
      std::optional<Session_ID>& /*session_id*/,\n                                                              bool
      /*tls12_no_ticket*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Session_Manager_Noop::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> Session_Manager_Noop::retrieve_one(const Session_Handle&
      /*handle*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: Botan::TLS::Session_Manager_Noop::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_Noop::find_some(const
      Server_Information& /*info*/,\n                                                                 size_t
      /*max_sessions_hint*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Null_RNG>
      Src: /src/botan/src/lib/tls/tls_session_manager_noop.cpp:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: Botan::TLS::Session_Manager_Noop::Session_Manager_Noop
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Null_RNG>
    linkageType: ''
    returnType: void
    signature: void Session_Manager_Noop::Session_Manager_Noop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: Botan::TLS::Session_Manager_Noop::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> Session_Manager_Noop::establish(const
      Session& /*session*/,\n                                                              const
      std::optional<Session_ID>& /*session_id*/,\n                                                              bool
      /*tls12_no_ticket*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Session_Manager_Noop::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> Session_Manager_Noop::retrieve_one(const Session_Handle&
      /*handle*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: Botan::TLS::Session_Manager_Noop::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_Noop::find_some(const
      Server_Information& /*info*/,\n                                                                 size_t
      /*max_sessions_hint*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: ~Channel()
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Channel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::TLS::Channel
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel(const Channel& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Channel
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel(Channel&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: ~Channel()
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Channel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::TLS::Channel
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel(const Channel& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Channel
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel(Channel&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: from_peer
      Src: /src/botan/src/lib/tls/tls_channel.h:60,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/tls_channel.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buf_size
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: received_data
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 71
    functionsReached:
    - from_peer
    - std::span
    linkageType: ''
    returnType: size_t
    signature: size_t received_data(const uint8_t buf[], size_t buf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_peer
      Src: /src/botan/src/lib/tls/tls_channel.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: send
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 71
    functionsReached:
    - to_peer
    linkageType: ''
    returnType: void
    signature: void send(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_peer
      Src: /src/botan/src/lib/tls/tls_channel.h:68,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/tls_channel.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buf_size
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: send
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 71
    functionsReached:
    - to_peer
    - std::span
    linkageType: ''
    returnType: void
    signature: void send(const uint8_t buf[], size_t buf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/botan/src/lib/tls/tls_channel.h:74,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/tls/tls_channel.h:74,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/tls/tls_channel.h:74,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/tls_channel.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: send
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 72
    functionsReached:
    - reinterpret_cast<const uint8_t*>
    - std::string_view::data
    - std::string_view::size
    - send
    linkageType: ''
    returnType: void
    signature: void send(std::string_view s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:28,1
    - Dst: Botan::TLS::make_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:29,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:39,1
    - Dst: allow_tls13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:39,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:41,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:41,1
    - Dst: last
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:42,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ' rng'
    - offered_version
    - ' cb'
    - ' policy'
    argTypes:
    - RandomNumberGenerator
    - Protocol_Version
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 47
    functionName: Botan::TLS::make_server_hello_random
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - BOTAN_UNUSED
    - last
    - Protocol_Version::is_pre_tls_13
    - allow_tls13
    - Botan::TLS::make_hello_random
    - store_be
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> make_server_hello_random(RandomNumberGenerator&
      rng,\n                                              Protocol_Version offered_version,\n
      \                                             Callbacks& cb,\n                                              const
      Policy& policy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:50,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:51,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:56,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:57,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:59,1
    - Dst: TLS_Data_Reader::get_fixed
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:65,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:66,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:68,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:68,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:69,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:70,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Server_Hello_Internal::Server_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::get_fixed
    - TLS_Data_Reader::get_byte
    - Protocol_Version
    - Decoding_Error
    - CT::is_equal<uint8_t>
    - Session_ID
    - TLS_Data_Reader::get_range
    - size
    - deserialize
    - TLS_Data_Reader::get_uint16_t
    linkageType: ''
    returnType: void
    signature: void Server_Hello_Internal::Server_Hello_Internal(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: Botan::TLS::Server_Hello_Internal::version
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Server_Hello_Internal::version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Server_Hello::Server_Hello
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_Hello::Server_Hello(std::unique_ptr<Server_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::TLS::Server_Hello::Server_Hello
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Hello::Server_Hello(Server_Hello&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Server_Hello::~Server_Hello()
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Hello::~Server_Hello()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:107,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:109,1
    - Dst: Botan::TLS::Server_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:109,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:110,1
    - Dst: Botan::TLS::Server_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:110,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:111,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:113,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:113,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:115,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:115,1
    - Dst: Botan::TLS::Server_Hello::ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:115,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:116,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:116,1
    - Dst: Botan::TLS::Server_Hello::ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:118,1
    - Dst: comp_method
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:118,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: Botan::TLS::Server_Hello::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - std::vector::push_back
    - get_byte<1>
    - session_id
    - Botan::TLS::Server_Hello::ciphersuite
    - get_byte<0>
    - std::vector::reserve
    - Botan::TLS::Server_Hello::legacy_version
    - comp_method
    - random
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Hello::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: Botan::TLS::Server_Hello::type
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type Server_Hello::type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Botan::TLS::Server_Hello::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server_Hello::legacy_version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Server_Hello::legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: '& Server_Hello::random() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - random
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & Server_Hello::random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: comp_method
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Server_Hello::compression_method
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - comp_method
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Server_Hello::compression_method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: '& Server_Hello::session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - session_id
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & Server_Hello::session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Hello::ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: Botan::TLS::Server_Hello::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server_Hello::ciphersuite
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t Server_Hello::ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: Botan::TLS::Server_Hello::extension_types
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: std::set<Extension_Code>
    signature: std::set<Extension_Code> Server_Hello::extension_types() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: '& Server_Hello::extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: Extensions
    signature: Extensions & Server_Hello::extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: Botan::TLS::Server_Hello_12_Shim::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Server_Hello_Internal>
    linkageType: ''
    returnType: void
    signature: void Server_Hello_12_Shim::Server_Hello_12_Shim(const std::vector<uint8_t>&
      buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:161,1
    - Dst: version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:162,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Server_Hello_12_Shim::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TLS_Exception
    - version
    linkageType: ''
    returnType: void
    signature: void Server_Hello_12_Shim::Server_Hello_12_Shim(std::unique_ptr<Server_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan::TLS::Server_Hello_12_Shim::selected_version
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - legacy_version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Server_Hello_12_Shim::selected_version() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_be
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:172,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: Botan::TLS::Server_Hello_12_Shim::random_signals_downgrade
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - random
    - load_be
    linkageType: ''
    returnType: std::optional<Protocol_Version>
    signature: std::optional<Protocol_Version> Server_Hello_12_Shim::random_signals_downgrade()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:28,1
    - Dst: Botan::TLS::make_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:29,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:39,1
    - Dst: allow_tls13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:39,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:41,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:41,1
    - Dst: last
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:42,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ' rng'
    - offered_version
    - ' cb'
    - ' policy'
    argTypes:
    - RandomNumberGenerator
    - Protocol_Version
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 47
    functionName: Botan::TLS::make_server_hello_random
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - BOTAN_UNUSED
    - last
    - Protocol_Version::is_pre_tls_13
    - allow_tls13
    - Botan::TLS::make_hello_random
    - store_be
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> make_server_hello_random(RandomNumberGenerator&
      rng,\n                                              Protocol_Version offered_version,\n
      \                                             Callbacks& cb,\n                                              const
      Policy& policy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:50,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:51,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:56,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:57,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:59,1
    - Dst: TLS_Data_Reader::get_fixed
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:65,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:66,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:68,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:68,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:69,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:70,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Server_Hello_Internal::Server_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::get_fixed
    - TLS_Data_Reader::get_byte
    - Protocol_Version
    - Decoding_Error
    - CT::is_equal<uint8_t>
    - Session_ID
    - TLS_Data_Reader::get_range
    - size
    - deserialize
    - TLS_Data_Reader::get_uint16_t
    linkageType: ''
    returnType: void
    signature: void Server_Hello_Internal::Server_Hello_Internal(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: Botan::TLS::Server_Hello_Internal::version
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Server_Hello_Internal::version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Server_Hello::Server_Hello
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_Hello::Server_Hello(std::unique_ptr<Server_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::TLS::Server_Hello::Server_Hello
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Hello::Server_Hello(Server_Hello&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Server_Hello::~Server_Hello()
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Hello::~Server_Hello()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:107,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:109,1
    - Dst: Botan::TLS::Server_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:109,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:110,1
    - Dst: Botan::TLS::Server_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:110,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:111,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:113,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:113,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:115,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:115,1
    - Dst: Botan::TLS::Server_Hello::ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:115,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:116,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:116,1
    - Dst: Botan::TLS::Server_Hello::ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:118,1
    - Dst: comp_method
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:118,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: Botan::TLS::Server_Hello::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - std::vector::push_back
    - get_byte<1>
    - session_id
    - Botan::TLS::Server_Hello::ciphersuite
    - get_byte<0>
    - std::vector::reserve
    - Botan::TLS::Server_Hello::legacy_version
    - comp_method
    - random
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Hello::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: Botan::TLS::Server_Hello::type
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type Server_Hello::type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Botan::TLS::Server_Hello::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Server_Hello::legacy_version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Server_Hello::legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: '& Server_Hello::random() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - random
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & Server_Hello::random() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: comp_method
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Server_Hello::compression_method
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - comp_method
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Server_Hello::compression_method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: '& Server_Hello::session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - session_id
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & Server_Hello::session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Hello::ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: Botan::TLS::Server_Hello::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Server_Hello::ciphersuite
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t Server_Hello::ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: Botan::TLS::Server_Hello::extension_types
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: std::set<Extension_Code>
    signature: std::set<Extension_Code> Server_Hello::extension_types() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: '& Server_Hello::extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: Extensions
    signature: Extensions & Server_Hello::extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: Botan::TLS::Server_Hello_12_Shim::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Server_Hello_Internal>
    linkageType: ''
    returnType: void
    signature: void Server_Hello_12_Shim::Server_Hello_12_Shim(const std::vector<uint8_t>&
      buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:161,1
    - Dst: version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:162,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Server_Hello_12_Shim::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - TLS_Exception
    - version
    linkageType: ''
    returnType: void
    signature: void Server_Hello_12_Shim::Server_Hello_12_Shim(std::unique_ptr<Server_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan::TLS::Server_Hello_12_Shim::selected_version
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - legacy_version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Server_Hello_12_Shim::selected_version() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_be
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:172,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: Botan::TLS::Server_Hello_12_Shim::random_signals_downgrade
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - random
    - load_be
    linkageType: ''
    returnType: std::optional<Protocol_Version>
    signature: std::optional<Protocol_Version> Server_Hello_12_Shim::random_signals_downgrade()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:62,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:69,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:69,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:84,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 152
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - static_cast<uint16_t>
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Protocol_Version()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Protocol_Version(uint16_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - named_version
    argTypes:
    - Version_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void Protocol_Version(Version_Code named_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:69,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - major
    - minor
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void Protocol_Version(uint8_t major, uint8_t minor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan::TLS::major_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t major_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::TLS::minor_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t minor_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::version_code
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t version_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: operator==(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Protocol_Version& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: operator!=(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Protocol_Version& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: operator>=(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Protocol_Version& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: operator<(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Protocol_Version& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: operator<=(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Protocol_Version& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:62,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:69,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:69,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:84,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 152
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - static_cast<uint16_t>
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Protocol_Version()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Protocol_Version(uint16_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - named_version
    argTypes:
    - Version_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void Protocol_Version(Version_Code named_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:69,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - major
    - minor
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void Protocol_Version(uint8_t major, uint8_t minor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan::TLS::major_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t major_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::TLS::minor_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t minor_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::version_code
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t version_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: operator==(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Protocol_Version& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: operator!=(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Protocol_Version& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: operator>=(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Protocol_Version& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: operator<(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Protocol_Version& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: operator<=(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Protocol_Version& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 60
    functionName: Botan::TLS::Handshake_Transitions
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Handshake_Transitions
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 60
    functionName: Botan::TLS::Handshake_Transitions
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_transitions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Handshake_Transitions
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Group_Params_Code>
      Src: /src/botan/src/lib/tls/tls_algos.h:147,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_algos.h:162,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:181,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:181,1
    - Dst: Botan::TLS::is_x25519
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    - Dst: Botan::TLS::is_x448
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    - Dst: Botan::TLS::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    - Dst: Botan::TLS::is_pqc_hybrid_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.h:234,1
    - Dst: Botan::TLS::is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.h:234,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 253
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::is_pqc_hybrid_frodokem
    - Botan::TLS::wire_code
    - static_cast<uint16_t>
    - Botan::TLS::is_pqc_hybrid_ml_kem
    - Botan::TLS::is_x25519
    - static_cast<Group_Params_Code>
    - Botan::TLS::is_x448
    - Botan::TLS::is_ecdh_named_curve
    linkageType: ''
    returnType: Group_Params
    signature: Group_Params final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Group_Params
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Group_Params()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - Group_Params_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: Botan::TLS::Group_Params
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Group_Params(Group_Params_Code code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Group_Params_Code>
      Src: /src/botan/src/lib/tls/tls_algos.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::TLS::Group_Params
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - static_cast<Group_Params_Code>
    linkageType: ''
    returnType: void
    signature: void Group_Params(uint16_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - Group_Params_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: operator==(Group_Params_Code code) const
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(Group_Params_Code code) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: operator==(Group_Params other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(Group_Params other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: operator<(Group_Params other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(Group_Params other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: Botan::TLS::code
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Group_Params_Code
    signature: Group_Params_Code code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_algos.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::TLS::wire_code
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 5
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t wire_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: Botan::TLS::is_x25519
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_x25519() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: Botan::TLS::is_x448
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_x448() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: Botan::TLS::is_ecdh_named_curve
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_ecdh_named_curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:181,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: Botan::TLS::is_in_ffdhe_range
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::wire_code
    linkageType: ''
    returnType: bool
    signature: bool is_in_ffdhe_range() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: Botan::TLS::is_dh_named_group
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_dh_named_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: Botan::TLS::is_pure_ml_kem
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_pure_ml_kem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: Botan::TLS::is_pure_frodokem
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_pure_frodokem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::is_x25519
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    - Dst: Botan::TLS::is_x448
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    - Dst: Botan::TLS::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: Botan::TLS::is_pure_ecc_group
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::is_x448
    - Botan::TLS::is_ecdh_named_curve
    - Botan::TLS::is_x25519
    linkageType: ''
    returnType: bool
    signature: bool is_pure_ecc_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: Botan::TLS::is_post_quantum
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_post_quantum() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: Botan::TLS::is_pqc_hybrid_ml_kem
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_pqc_hybrid_ml_kem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 232
    functionName: Botan::TLS::is_pqc_hybrid_frodokem
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_pqc_hybrid_frodokem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::is_pqc_hybrid_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.h:234,1
    - Dst: Botan::TLS::is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.h:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: Botan::TLS::is_pqc_hybrid
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::is_pqc_hybrid_frodokem
    - Botan::TLS::is_pqc_hybrid_ml_kem
    linkageType: ''
    returnType: bool
    signature: bool is_pqc_hybrid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: Botan::TLS::is_kem
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_kem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - Kex_Algo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: Botan::TLS::key_exchange_is_psk
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool key_exchange_is_psk(Kex_Algo m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Group_Params_Code>
      Src: /src/botan/src/lib/tls/tls_algos.h:147,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_algos.h:162,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:181,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:181,1
    - Dst: Botan::TLS::is_x25519
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    - Dst: Botan::TLS::is_x448
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    - Dst: Botan::TLS::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    - Dst: Botan::TLS::is_pqc_hybrid_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.h:234,1
    - Dst: Botan::TLS::is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.h:234,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 253
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::is_pqc_hybrid_frodokem
    - Botan::TLS::wire_code
    - static_cast<uint16_t>
    - Botan::TLS::is_pqc_hybrid_ml_kem
    - Botan::TLS::is_x25519
    - static_cast<Group_Params_Code>
    - Botan::TLS::is_x448
    - Botan::TLS::is_ecdh_named_curve
    linkageType: ''
    returnType: Group_Params
    signature: Group_Params final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Group_Params
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Group_Params()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - Group_Params_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: Botan::TLS::Group_Params
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Group_Params(Group_Params_Code code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Group_Params_Code>
      Src: /src/botan/src/lib/tls/tls_algos.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::TLS::Group_Params
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - static_cast<Group_Params_Code>
    linkageType: ''
    returnType: void
    signature: void Group_Params(uint16_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - Group_Params_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: operator==(Group_Params_Code code) const
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(Group_Params_Code code) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: operator==(Group_Params other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(Group_Params other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: operator<(Group_Params other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(Group_Params other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: Botan::TLS::code
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Group_Params_Code
    signature: Group_Params_Code code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_algos.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::TLS::wire_code
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 7
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t wire_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: Botan::TLS::is_x25519
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_x25519() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: Botan::TLS::is_x448
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_x448() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: Botan::TLS::is_ecdh_named_curve
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_ecdh_named_curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:181,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: Botan::TLS::is_in_ffdhe_range
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::wire_code
    linkageType: ''
    returnType: bool
    signature: bool is_in_ffdhe_range() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: Botan::TLS::is_dh_named_group
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_dh_named_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: Botan::TLS::is_pure_ml_kem
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_pure_ml_kem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: Botan::TLS::is_pure_frodokem
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_pure_frodokem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::is_x25519
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    - Dst: Botan::TLS::is_x448
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    - Dst: Botan::TLS::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_algos.h:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: Botan::TLS::is_pure_ecc_group
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::is_x448
    - Botan::TLS::is_ecdh_named_curve
    - Botan::TLS::is_x25519
    linkageType: ''
    returnType: bool
    signature: bool is_pure_ecc_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: Botan::TLS::is_post_quantum
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_post_quantum() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: Botan::TLS::is_pqc_hybrid_ml_kem
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_pqc_hybrid_ml_kem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 232
    functionName: Botan::TLS::is_pqc_hybrid_frodokem
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_pqc_hybrid_frodokem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::is_pqc_hybrid_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.h:234,1
    - Dst: Botan::TLS::is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.h:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: Botan::TLS::is_pqc_hybrid
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::is_pqc_hybrid_frodokem
    - Botan::TLS::is_pqc_hybrid_ml_kem
    linkageType: ''
    returnType: bool
    signature: bool is_pqc_hybrid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: Botan::TLS::is_kem
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_kem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - Kex_Algo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: Botan::TLS::key_exchange_is_psk
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool key_exchange_is_psk(Kex_Algo m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: latest_supported_version
      Src: /src/botan/src/lib/tls/tls_server.cpp:37,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_server.cpp:40,1
    - Dst: std::make_unique<Server_Impl_13>
      Src: /src/botan/src/lib/tls/tls_server.cpp:41,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls_server.cpp:43,1
    - Dst: set_io_buffer_size
      Src: /src/botan/src/lib/tls/tls_server.cpp:44,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_server.cpp:52,1
    - Dst: std::make_unique<Server_Impl_12>
      Src: /src/botan/src/lib/tls/tls_server.cpp:53,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_server.cpp:58,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls_server.cpp:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' creds'
    - ' policy'
    - ' rng'
    - is_datagram
    - io_buf_sz
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: Botan::TLS::Server::Server
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 0
    functionsReached:
    - set_io_buffer_size
    - latest_supported_version
    - expects_downgrade
    - auto::is_pre_tls_13
    - BOTAN_UNUSED
    - std::make_unique<Server_Impl_13>
    - std::make_unique<Server_Impl_12>
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: "void Server::Server(const std::shared_ptr<Callbacks>& callbacks,\n
      \              const std::shared_ptr<Session_Manager>& session_manager,\n               const
      std::shared_ptr<Credentials_Manager>& creds,\n               const std::shared_ptr<const
      Policy>& policy,\n               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n               bool is_datagram,\n               size_t io_buf_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Server::~Server()
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server::~Server()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::from_peer
      Src: /src/botan/src/lib/tls/tls_server.cpp:65,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_server.cpp:70,1
    - Dst: extract_downgrade_info
      Src: /src/botan/src/lib/tls/tls_server.cpp:71,1
    - Dst: std::make_unique<Server_Impl_12>
      Src: /src/botan/src/lib/tls/tls_server.cpp:72,1
    - Dst: Botan::TLS::Server::from_peer
      Src: /src/botan/src/lib/tls/tls_server.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Server::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Server_Impl_12>
    - extract_downgrade_info
    - Botan::TLS::Server::from_peer
    - is_downgrading
    linkageType: ''
    returnType: size_t
    signature: size_t Server::from_peer(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls_server.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::TLS::Server::is_handshake_complete
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::is_handshake_complete
    linkageType: ''
    returnType: bool
    signature: bool Server::is_handshake_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/lib/tls/tls_server.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Server::is_active
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 7
    functionsReached:
    - Botan::TLS::Server::is_active
    linkageType: ''
    returnType: bool
    signature: bool Server::is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::is_closed
      Src: /src/botan/src/lib/tls/tls_server.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Server::is_closed
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Server::is_closed
    linkageType: ''
    returnType: bool
    signature: bool Server::is_closed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::is_closed_for_reading
      Src: /src/botan/src/lib/tls/tls_server.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Server::is_closed_for_reading
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::is_closed_for_reading
    linkageType: ''
    returnType: bool
    signature: bool Server::is_closed_for_reading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::is_closed_for_writing
      Src: /src/botan/src/lib/tls/tls_server.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Server::is_closed_for_writing
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::is_closed_for_writing
    linkageType: ''
    returnType: bool
    signature: bool Server::is_closed_for_writing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls_server.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Server::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::peer_cert_chain
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Server::peer_cert_chain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls_server.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Server::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::peer_raw_public_key
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Server::peer_raw_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::external_psk_identity
      Src: /src/botan/src/lib/tls/tls_server.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Server::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::external_psk_identity
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Server::external_psk_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::key_material_export
      Src: /src/botan/src/lib/tls/tls_server.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: Botan::TLS::Server::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::key_material_export
    linkageType: ''
    returnType: SymmetricKey
    signature: SymmetricKey Server::key_material_export(std::string_view label, std::string_view
      context, size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::renegotiate
      Src: /src/botan/src/lib/tls/tls_server.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Server::renegotiate
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::renegotiate
    linkageType: ''
    returnType: void
    signature: void Server::renegotiate(bool force_full_renegotiation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::new_session_ticket_supported
      Src: /src/botan/src/lib/tls/tls_server.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Server::new_session_ticket_supported
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::new_session_ticket_supported
    linkageType: ''
    returnType: bool
    signature: bool Server::new_session_ticket_supported() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::send_new_session_tickets
      Src: /src/botan/src/lib/tls/tls_server.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tickets
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Server::send_new_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::send_new_session_tickets
    linkageType: ''
    returnType: size_t
    signature: size_t Server::send_new_session_tickets(const size_t tickets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::update_traffic_keys
      Src: /src/botan/src/lib/tls/tls_server.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Server::update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::update_traffic_keys
    linkageType: ''
    returnType: void
    signature: void Server::update_traffic_keys(bool request_peer_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls_server.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: Botan::TLS::Server::secure_renegotiation_supported
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::secure_renegotiation_supported
    linkageType: ''
    returnType: bool
    signature: bool Server::secure_renegotiation_supported() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::to_peer
      Src: /src/botan/src/lib/tls/tls_server.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Server::to_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::to_peer
    linkageType: ''
    returnType: void
    signature: void Server::to_peer(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::send_alert
      Src: /src/botan/src/lib/tls/tls_server.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: Botan::TLS::Server::send_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::send_alert
    linkageType: ''
    returnType: void
    signature: void Server::send_alert(const Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::send_warning_alert
      Src: /src/botan/src/lib/tls/tls_server.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Server::send_warning_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::send_warning_alert
    linkageType: ''
    returnType: void
    signature: void Server::send_warning_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::send_fatal_alert
      Src: /src/botan/src/lib/tls/tls_server.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan::TLS::Server::send_fatal_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::send_fatal_alert
    linkageType: ''
    returnType: void
    signature: void Server::send_fatal_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::close
      Src: /src/botan/src/lib/tls/tls_server.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Botan::TLS::Server::close
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Server::close
    linkageType: ''
    returnType: void
    signature: void Server::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::timeout_check
      Src: /src/botan/src/lib/tls/tls_server.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: Botan::TLS::Server::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::timeout_check
    linkageType: ''
    returnType: bool
    signature: bool Server::timeout_check()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::application_protocol
      Src: /src/botan/src/lib/tls/tls_server.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: Botan::TLS::Server::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server::application_protocol
    linkageType: ''
    returnType: std::string
    signature: std::string Server::application_protocol() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: latest_supported_version
      Src: /src/botan/src/lib/tls/tls_server.cpp:37,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_server.cpp:40,1
    - Dst: std::make_unique<Server_Impl_13>
      Src: /src/botan/src/lib/tls/tls_server.cpp:41,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls_server.cpp:43,1
    - Dst: set_io_buffer_size
      Src: /src/botan/src/lib/tls/tls_server.cpp:44,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_server.cpp:52,1
    - Dst: std::make_unique<Server_Impl_12>
      Src: /src/botan/src/lib/tls/tls_server.cpp:53,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls_server.cpp:58,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls_server.cpp:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' creds'
    - ' policy'
    - ' rng'
    - is_datagram
    - io_buf_sz
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: Botan::TLS::Server::Server
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 0
    functionsReached:
    - set_io_buffer_size
    - latest_supported_version
    - expects_downgrade
    - auto::is_pre_tls_13
    - BOTAN_UNUSED
    - std::make_unique<Server_Impl_13>
    - std::make_unique<Server_Impl_12>
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: "void Server::Server(const std::shared_ptr<Callbacks>& callbacks,\n
      \              const std::shared_ptr<Session_Manager>& session_manager,\n               const
      std::shared_ptr<Credentials_Manager>& creds,\n               const std::shared_ptr<const
      Policy>& policy,\n               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n               bool is_datagram,\n               size_t io_buf_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Server::~Server()
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server::~Server()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::from_peer
      Src: /src/botan/src/lib/tls/tls_server.cpp:65,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_server.cpp:70,1
    - Dst: extract_downgrade_info
      Src: /src/botan/src/lib/tls/tls_server.cpp:71,1
    - Dst: std::make_unique<Server_Impl_12>
      Src: /src/botan/src/lib/tls/tls_server.cpp:72,1
    - Dst: Botan::TLS::Server::from_peer
      Src: /src/botan/src/lib/tls/tls_server.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Server::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<Server_Impl_12>
    - extract_downgrade_info
    - Botan::TLS::Server::from_peer
    - is_downgrading
    linkageType: ''
    returnType: size_t
    signature: size_t Server::from_peer(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls_server.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::TLS::Server::is_handshake_complete
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::is_handshake_complete
    linkageType: ''
    returnType: bool
    signature: bool Server::is_handshake_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/lib/tls/tls_server.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Server::is_active
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 8
    functionsReached:
    - Botan::TLS::Server::is_active
    linkageType: ''
    returnType: bool
    signature: bool Server::is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::is_closed
      Src: /src/botan/src/lib/tls/tls_server.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Server::is_closed
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Server::is_closed
    linkageType: ''
    returnType: bool
    signature: bool Server::is_closed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::is_closed_for_reading
      Src: /src/botan/src/lib/tls/tls_server.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Server::is_closed_for_reading
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::is_closed_for_reading
    linkageType: ''
    returnType: bool
    signature: bool Server::is_closed_for_reading() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::is_closed_for_writing
      Src: /src/botan/src/lib/tls/tls_server.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Server::is_closed_for_writing
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::is_closed_for_writing
    linkageType: ''
    returnType: bool
    signature: bool Server::is_closed_for_writing() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls_server.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Server::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::peer_cert_chain
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Server::peer_cert_chain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls_server.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Server::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::peer_raw_public_key
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Server::peer_raw_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::external_psk_identity
      Src: /src/botan/src/lib/tls/tls_server.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Server::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::external_psk_identity
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Server::external_psk_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::key_material_export
      Src: /src/botan/src/lib/tls/tls_server.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: Botan::TLS::Server::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::key_material_export
    linkageType: ''
    returnType: SymmetricKey
    signature: SymmetricKey Server::key_material_export(std::string_view label, std::string_view
      context, size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::renegotiate
      Src: /src/botan/src/lib/tls/tls_server.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Server::renegotiate
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::renegotiate
    linkageType: ''
    returnType: void
    signature: void Server::renegotiate(bool force_full_renegotiation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::new_session_ticket_supported
      Src: /src/botan/src/lib/tls/tls_server.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Server::new_session_ticket_supported
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::new_session_ticket_supported
    linkageType: ''
    returnType: bool
    signature: bool Server::new_session_ticket_supported() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::send_new_session_tickets
      Src: /src/botan/src/lib/tls/tls_server.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tickets
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Server::send_new_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::send_new_session_tickets
    linkageType: ''
    returnType: size_t
    signature: size_t Server::send_new_session_tickets(const size_t tickets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::update_traffic_keys
      Src: /src/botan/src/lib/tls/tls_server.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Server::update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::update_traffic_keys
    linkageType: ''
    returnType: void
    signature: void Server::update_traffic_keys(bool request_peer_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls_server.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: Botan::TLS::Server::secure_renegotiation_supported
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::secure_renegotiation_supported
    linkageType: ''
    returnType: bool
    signature: bool Server::secure_renegotiation_supported() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::to_peer
      Src: /src/botan/src/lib/tls/tls_server.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Server::to_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::to_peer
    linkageType: ''
    returnType: void
    signature: void Server::to_peer(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::send_alert
      Src: /src/botan/src/lib/tls/tls_server.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: Botan::TLS::Server::send_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::send_alert
    linkageType: ''
    returnType: void
    signature: void Server::send_alert(const Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::send_warning_alert
      Src: /src/botan/src/lib/tls/tls_server.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Server::send_warning_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::send_warning_alert
    linkageType: ''
    returnType: void
    signature: void Server::send_warning_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::send_fatal_alert
      Src: /src/botan/src/lib/tls/tls_server.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan::TLS::Server::send_fatal_alert
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::send_fatal_alert
    linkageType: ''
    returnType: void
    signature: void Server::send_fatal_alert(Alert::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::close
      Src: /src/botan/src/lib/tls/tls_server.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Botan::TLS::Server::close
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Server::close
    linkageType: ''
    returnType: void
    signature: void Server::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::timeout_check
      Src: /src/botan/src/lib/tls/tls_server.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: Botan::TLS::Server::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::timeout_check
    linkageType: ''
    returnType: bool
    signature: bool Server::timeout_check()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server::application_protocol
      Src: /src/botan/src/lib/tls/tls_server.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: Botan::TLS::Server::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server::application_protocol
    linkageType: ''
    returnType: std::string
    signature: std::string Server::application_protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 45
    functionName: '& Signature_Scheme::all_available_schemes()'
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> & Signature_Scheme::all_available_schemes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Signature_Scheme::Signature_Scheme
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Signature_Scheme::Signature_Scheme()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::PerfTest_MessageAuthenticationCode
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wire_code
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Signature_Scheme::Signature_Scheme
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 8
    functionsReached:
    - Botan_CLI::PerfTest_MessageAuthenticationCode::PerfTest_MessageAuthenticationCode
    linkageType: ''
    returnType: void
    signature: void Signature_Scheme::Signature_Scheme(uint16_t wire_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wire_code
    argTypes:
    - Signature_Scheme::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Signature_Scheme::Signature_Scheme
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Signature_Scheme::Signature_Scheme(Signature_Scheme::Code wire_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:54,1
    - Dst: Signature_Scheme::all_available_schemes
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Signature_Scheme::is_available
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 8
    functionsReached:
    - value_exists
    - Signature_Scheme::all_available_schemes
    linkageType: ''
    returnType: bool
    signature: bool Signature_Scheme::is_available() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Signature_Scheme::is_set
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature_Scheme::is_set() const noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Signature_Scheme::to_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Signature_Scheme::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 7
    functionsReached:
    - Botan::TLS::Signature_Scheme::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string Signature_Scheme::to_string() const noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 126
    functionName: Botan::TLS::Signature_Scheme::hash_function_name
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Signature_Scheme::hash_function_name() const noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 162
    functionName: Botan::TLS::Signature_Scheme::padding_string
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Signature_Scheme::padding_string() const noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 190
    functionName: Botan::TLS::Signature_Scheme::algorithm_name
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Signature_Scheme::algorithm_name() const noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:195,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:196,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:199,1
    - Dst: der_encode_oid
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:205,1
    - Dst: der_encode_oid
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:207,1
    - Dst: der_encode_oid
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:209,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 228
    functionName: Botan::TLS::Signature_Scheme::key_algorithm_identifier
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 4
    functionsReached:
    - Botan::OID::from_name
    - der_encode_oid
    - BOTAN_ASSERT_UNREACHABLE
    - auto::BER_encode
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Signature_Scheme::key_algorithm_identifier() const
      noexcept
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:233,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:233,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:235,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:235,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:237,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:237,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:239,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:239,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:242,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:242,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:244,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:244,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:246,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:246,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:248,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:248,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:251,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:251,1
    - Dst: PSS_Params
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:251,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:253,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:253,1
    - Dst: PSS_Params
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:253,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:255,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:255,1
    - Dst: PSS_Params
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:255,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 261
    functionName: Botan::TLS::Signature_Scheme::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - PSS_Params
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Signature_Scheme::algorithm_identifier() const
      noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 285
    functionName: Botan::TLS::Signature_Scheme::format
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Signature_Format>
    signature: std::optional<Signature_Format> Signature_Scheme::format() const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Signature_Scheme::hash_function_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:293,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - ' protocol_version'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 308
    functionName: Botan::TLS::Signature_Scheme::is_compatible_with
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Signature_Scheme::hash_function_name
    - is_pre_tls_13
    linkageType: ''
    returnType: bool
    signature: bool Signature_Scheme::is_compatible_with(const Protocol_Version& protocol_version)
      const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Signature_Scheme::algorithm_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:311,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:311,1
    - Dst: key_length
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:316,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 334
    functionName: Botan::TLS::Signature_Scheme::is_suitable_for
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - key_length
    - Botan::TLS::Signature_Scheme::algorithm_name
    - algo_name
    linkageType: ''
    returnType: bool
    signature: bool Signature_Scheme::is_suitable_for(const Private_Key& private_key)
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:338,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:338,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:340,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: Botan::TLS::to_algorithm_identifiers
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - algorithm_identifier
    - size
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<AlgorithmIdentifier>
    signature: std::vector<AlgorithmIdentifier> to_algorithm_identifiers(const std::vector<Signature_Scheme>&
      schemes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 45
    functionName: '& Signature_Scheme::all_available_schemes()'
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> & Signature_Scheme::all_available_schemes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Signature_Scheme::Signature_Scheme
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Signature_Scheme::Signature_Scheme()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::PerfTest_MessageAuthenticationCode
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wire_code
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Signature_Scheme::Signature_Scheme
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 8
    functionsReached:
    - Botan_CLI::PerfTest_MessageAuthenticationCode::PerfTest_MessageAuthenticationCode
    linkageType: ''
    returnType: void
    signature: void Signature_Scheme::Signature_Scheme(uint16_t wire_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wire_code
    argTypes:
    - Signature_Scheme::Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Signature_Scheme::Signature_Scheme
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Signature_Scheme::Signature_Scheme(Signature_Scheme::Code wire_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:54,1
    - Dst: Signature_Scheme::all_available_schemes
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Signature_Scheme::is_available
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 8
    functionsReached:
    - value_exists
    - Signature_Scheme::all_available_schemes
    linkageType: ''
    returnType: bool
    signature: bool Signature_Scheme::is_available() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Signature_Scheme::is_set
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature_Scheme::is_set() const noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Signature_Scheme::to_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Signature_Scheme::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 8
    functionsReached:
    - Botan::TLS::Signature_Scheme::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string Signature_Scheme::to_string() const noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 126
    functionName: Botan::TLS::Signature_Scheme::hash_function_name
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Signature_Scheme::hash_function_name() const noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 162
    functionName: Botan::TLS::Signature_Scheme::padding_string
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Signature_Scheme::padding_string() const noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 190
    functionName: Botan::TLS::Signature_Scheme::algorithm_name
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string Signature_Scheme::algorithm_name() const noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:195,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:196,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:199,1
    - Dst: der_encode_oid
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:205,1
    - Dst: der_encode_oid
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:207,1
    - Dst: der_encode_oid
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:209,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 228
    functionName: Botan::TLS::Signature_Scheme::key_algorithm_identifier
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 4
    functionsReached:
    - Botan::OID::from_name
    - der_encode_oid
    - BOTAN_ASSERT_UNREACHABLE
    - auto::BER_encode
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Signature_Scheme::key_algorithm_identifier() const
      noexcept
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:233,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:233,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:235,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:235,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:237,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:237,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:239,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:239,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:242,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:242,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:244,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:244,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:246,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:246,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:248,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:248,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:251,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:251,1
    - Dst: PSS_Params
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:251,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:253,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:253,1
    - Dst: PSS_Params
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:253,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:255,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:255,1
    - Dst: PSS_Params
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:255,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 261
    functionName: Botan::TLS::Signature_Scheme::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - PSS_Params
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Signature_Scheme::algorithm_identifier() const
      noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 285
    functionName: Botan::TLS::Signature_Scheme::format
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Signature_Format>
    signature: std::optional<Signature_Format> Signature_Scheme::format() const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Signature_Scheme::hash_function_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:293,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - ' protocol_version'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 308
    functionName: Botan::TLS::Signature_Scheme::is_compatible_with
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Signature_Scheme::hash_function_name
    - is_pre_tls_13
    linkageType: ''
    returnType: bool
    signature: bool Signature_Scheme::is_compatible_with(const Protocol_Version& protocol_version)
      const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Signature_Scheme::algorithm_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:311,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:311,1
    - Dst: key_length
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:316,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 334
    functionName: Botan::TLS::Signature_Scheme::is_suitable_for
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - key_length
    - Botan::TLS::Signature_Scheme::algorithm_name
    - algo_name
    linkageType: ''
    returnType: bool
    signature: bool Signature_Scheme::is_suitable_for(const Private_Key& private_key)
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:338,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:338,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:340,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: Botan::TLS::to_algorithm_identifiers
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - algorithm_identifier
    - size
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<AlgorithmIdentifier>
    signature: std::vector<AlgorithmIdentifier> to_algorithm_identifiers(const std::vector<Signature_Scheme>&
      schemes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::capacity
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool emits_session_tickets() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::capacity
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool emits_session_tickets() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::capacity
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool emits_session_tickets() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::capacity
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t capacity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool emits_session_tickets() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Manager_Hybrid
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:52,1
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:69,1
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::store
    - Botan::TLS::get
    - Botan::TLS::remove_all
    - Session_Manager_Hybrid
    - Botan::TLS::remove
    linkageType: ''
    returnType: Session_Manager_Hybrid
    signature: Session_Manager_Hybrid Session_Manager
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::TLS::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::store
    linkageType: ''
    returnType: void
    signature: void store(const Session& session, const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::remove
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::TLS::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::remove_all
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::TLS::underlying_stateful_manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::get
    linkageType: ''
    returnType: Session_Manager
    signature: Session_Manager * underlying_stateful_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Manager_Hybrid
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:52,1
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:69,1
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::store
    - Botan::TLS::get
    - Botan::TLS::remove_all
    - Session_Manager_Hybrid
    - Botan::TLS::remove
    linkageType: ''
    returnType: Session_Manager_Hybrid
    signature: Session_Manager_Hybrid Session_Manager
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::TLS::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::store
    linkageType: ''
    returnType: void
    signature: void store(const Session& session, const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::remove
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::TLS::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::remove_all
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::TLS::underlying_stateful_manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::get
    linkageType: ''
    returnType: Session_Manager
    signature: Session_Manager * underlying_stateful_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Manager_Hybrid
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:52,1
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:69,1
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::store
    - Botan::TLS::get
    - Botan::TLS::remove_all
    - Session_Manager_Hybrid
    - Botan::TLS::remove
    linkageType: ''
    returnType: Session_Manager_Hybrid
    signature: Session_Manager_Hybrid Session_Manager
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::TLS::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 6
    functionsReached:
    - Botan::TLS::store
    linkageType: ''
    returnType: void
    signature: void store(const Session& session, const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 6
    functionsReached:
    - Botan::TLS::remove
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::TLS::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 6
    functionsReached:
    - Botan::TLS::remove_all
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::TLS::underlying_stateful_manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::get
    linkageType: ''
    returnType: Session_Manager
    signature: Session_Manager * underlying_stateful_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Manager_Hybrid
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:52,1
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:69,1
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::store
    - Botan::TLS::get
    - Botan::TLS::remove_all
    - Session_Manager_Hybrid
    - Botan::TLS::remove
    linkageType: ''
    returnType: Session_Manager_Hybrid
    signature: Session_Manager_Hybrid Session_Manager
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::TLS::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 8
    functionsReached:
    - Botan::TLS::store
    linkageType: ''
    returnType: void
    signature: void store(const Session& session, const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::remove
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 8
    functionsReached:
    - Botan::TLS::remove
    linkageType: ''
    returnType: size_t
    signature: size_t remove(const Session_Handle& handle) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::TLS::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 8
    functionsReached:
    - Botan::TLS::remove_all
    linkageType: ''
    returnType: size_t
    signature: size_t remove_all() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::TLS::underlying_stateful_manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::get
    linkageType: ''
    returnType: Session_Manager
    signature: Session_Manager * underlying_stateful_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_handshake_msg.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: Botan::TLS::wire_type
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_msg.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::type
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type wire_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: ~Handshake_Message()
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_msg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Handshake_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_msg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_msg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_Message(const Handshake_Message&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_msg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_Message(Handshake_Message&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_handshake_msg.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: Botan::TLS::wire_type
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_msg.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::type
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type wire_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: ~Handshake_Message()
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_msg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Handshake_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_msg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_msg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_Message(const Handshake_Message&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_handshake_msg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_Message(Handshake_Message&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_id.h:32,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_id.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' id1'
    - ' id2'
    argTypes:
    - Session_ID
    - Session_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: operator<(const Session_ID& id1, const Session_ID& id2)
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::get
    linkageType: ''
    returnType: auto
    signature: auto operator<(const Session_ID& id1, const Session_ID& id2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_id.h:78,1
    - Dst: validate_constraints
      Src: /src/botan/src/lib/tls/tls_session_id.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticket
    argTypes:
    - Opaque_Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Session_Handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 4
    functionsReached:
    - std::move
    - validate_constraints
    linkageType: ''
    returnType: void
    signature: void Session_Handle(Opaque_Session_Handle ticket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Session_ID>
      Src: /src/botan/src/lib/tls/tls_session_id.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan::TLS::is_id
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 0
    functionsReached:
    - std::holds_alternative<Session_ID>
    linkageType: ''
    returnType: bool
    signature: bool is_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Session_Ticket>
      Src: /src/botan/src/lib/tls/tls_session_id.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan::TLS::is_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 0
    functionsReached:
    - std::holds_alternative<Session_Ticket>
    linkageType: ''
    returnType: bool
    signature: bool is_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Opaque_Session_Handle>
      Src: /src/botan/src/lib/tls/tls_session_id.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::is_opaque_handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 0
    functionsReached:
    - std::holds_alternative<Opaque_Session_Handle>
    linkageType: ''
    returnType: bool
    signature: bool is_opaque_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session_id.h:32,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session_id.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' id1'
    - ' id2'
    argTypes:
    - Session_ID
    - Session_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: operator<(const Session_ID& id1, const Session_ID& id2)
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: auto
    signature: auto operator<(const Session_ID& id1, const Session_ID& id2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_id.h:78,1
    - Dst: validate_constraints
      Src: /src/botan/src/lib/tls/tls_session_id.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticket
    argTypes:
    - Opaque_Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Session_Handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 4
    functionsReached:
    - std::move
    - validate_constraints
    linkageType: ''
    returnType: void
    signature: void Session_Handle(Opaque_Session_Handle ticket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Session_ID>
      Src: /src/botan/src/lib/tls/tls_session_id.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan::TLS::is_id
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 0
    functionsReached:
    - std::holds_alternative<Session_ID>
    linkageType: ''
    returnType: bool
    signature: bool is_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Session_Ticket>
      Src: /src/botan/src/lib/tls/tls_session_id.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan::TLS::is_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 0
    functionsReached:
    - std::holds_alternative<Session_Ticket>
    linkageType: ''
    returnType: bool
    signature: bool is_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Opaque_Session_Handle>
      Src: /src/botan/src/lib/tls/tls_session_id.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::is_opaque_handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 0
    functionsReached:
    - std::holds_alternative<Opaque_Session_Handle>
    linkageType: ''
    returnType: bool
    signature: bool is_opaque_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls_session_id.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:22,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - stateful
    - ' credentials_manager'
    - ' rng'
    - prefer_tickets
    argTypes:
    - std::unique_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<RandomNumberGenerator>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void Session_Manager_Hybrid::Session_Manager_Hybrid(std::unique_ptr<Session_Manager>
      stateful,\n                                               const std::shared_ptr<Credentials_Manager>&
      credentials_manager,\n                                               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                               bool prefer_tickets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_Hybrid::find
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: Botan::TLS::Session_Manager_Hybrid::find
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Session_Manager_Hybrid::find
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_Hybrid::find(const
      Server_Information& info,\n                                                              Callbacks&
      callbacks,\n                                                              const
      Policy& policy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_Hybrid::establish
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:42,1
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:43,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:43,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:44,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::establish
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:52,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:52,1
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:53,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:54,1
    - Dst: auto::is_id
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:54,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:62,1
    - Dst: preferred
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:65,1
    - Dst: fallback
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ' session'
    - ' id'
    - tls12_no_ticket
    argTypes:
    - Session
    - std::optional<Session_ID>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Session_Manager_Hybrid::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 1
    functionsReached:
    - auto::is_ticket
    - std::swap
    - BOTAN_ASSERT_IMPLICATION
    - version
    - preferred
    - Botan::TLS::Session_Manager_Hybrid::establish
    - fallback
    - auto::has_value
    - auto::is_id
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> Session_Manager_Hybrid::establish(const
      Session& session,\n                                                                const
      std::optional<Session_ID>& id,\n                                                                bool
      tls12_no_ticket)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:79,1
    - Dst: std::reference_wrapper::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:82,1
    - Dst: std::reference_wrapper::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' handle'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Session_Handle
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Session_Manager_Hybrid::retrieve
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 0
    functionsReached:
    - std::reference_wrapper::get
    - std::swap
    linkageType: ''
    returnType: std::optional<Session>
    signature: "std::optional<Session> Session_Manager_Hybrid::retrieve(const Session_Handle&
      handle,\n                                                        Callbacks&
      callbacks,\n                                                        const Policy&
      policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:90,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 5
    functionsReached:
    - Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    linkageType: ''
    returnType: bool
    signature: bool Session_Manager_Hybrid::emits_session_tickets()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Session_Manager_Hybrid::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> Session_Manager_Hybrid::retrieve_one(const Session_Handle&
      /*handle*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Session_Manager_Hybrid::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_Hybrid::find_some(const
      Server_Information& /*info*/,\n                                                                   size_t
      /*max_sessions_hint*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:22,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - stateful
    - ' credentials_manager'
    - ' rng'
    - prefer_tickets
    argTypes:
    - std::unique_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<RandomNumberGenerator>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void Session_Manager_Hybrid::Session_Manager_Hybrid(std::unique_ptr<Session_Manager>
      stateful,\n                                               const std::shared_ptr<Credentials_Manager>&
      credentials_manager,\n                                               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                               bool prefer_tickets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_Hybrid::find
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: Botan::TLS::Session_Manager_Hybrid::find
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Session_Manager_Hybrid::find
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_Hybrid::find(const
      Server_Information& info,\n                                                              Callbacks&
      callbacks,\n                                                              const
      Policy& policy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_Hybrid::establish
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:42,1
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:43,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:43,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:44,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::establish
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:52,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:52,1
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:53,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:54,1
    - Dst: auto::is_id
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:54,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:62,1
    - Dst: preferred
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:65,1
    - Dst: fallback
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ' session'
    - ' id'
    - tls12_no_ticket
    argTypes:
    - Session
    - std::optional<Session_ID>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Session_Manager_Hybrid::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 2
    functionsReached:
    - auto::is_ticket
    - std::swap
    - BOTAN_ASSERT_IMPLICATION
    - version
    - preferred
    - Botan::TLS::Session_Manager_Hybrid::establish
    - fallback
    - auto::has_value
    - auto::is_id
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> Session_Manager_Hybrid::establish(const
      Session& session,\n                                                                const
      std::optional<Session_ID>& id,\n                                                                bool
      tls12_no_ticket)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:79,1
    - Dst: std::reference_wrapper::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:82,1
    - Dst: std::reference_wrapper::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' handle'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Session_Handle
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Session_Manager_Hybrid::retrieve
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 0
    functionsReached:
    - std::reference_wrapper::get
    - std::swap
    linkageType: ''
    returnType: std::optional<Session>
    signature: "std::optional<Session> Session_Manager_Hybrid::retrieve(const Session_Handle&
      handle,\n                                                        Callbacks&
      callbacks,\n                                                        const Policy&
      policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:90,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 6
    functionsReached:
    - Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    linkageType: ''
    returnType: bool
    signature: bool Session_Manager_Hybrid::emits_session_tickets()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Session_Manager_Hybrid::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> Session_Manager_Hybrid::retrieve_one(const Session_Handle&
      /*handle*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Session_Manager_Hybrid::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_Hybrid::find_some(const
      Server_Information& /*info*/,\n                                                                   size_t
      /*max_sessions_hint*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::RFC6066_Empty_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6066_Empty_Certificate_Status_Request()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::RFC6066_Empty_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void RFC6066_Empty_Certificate_Status_Request(uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - names
    - keys
    argTypes:
    - std::vector<uint8_t>
    - std::vector<std::vector<uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::RFC6066_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RFC6066_Certificate_Status_Request(std::vector<uint8_t> names,
      std::vector<std::vector<uint8_t>> keys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:40,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:43,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:45,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:46,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:47,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:48,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::RFC6066_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - get_byte
    - get_uint16_t
    - Decoding_Error
    - discard_next
    linkageType: ''
    returnType: void
    signature: void RFC6066_Certificate_Status_Request(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::RFC6066_Empty_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6066_Empty_Certificate_Status_Request()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::RFC6066_Empty_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void RFC6066_Empty_Certificate_Status_Request(uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - names
    - keys
    argTypes:
    - std::vector<uint8_t>
    - std::vector<std::vector<uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::RFC6066_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RFC6066_Certificate_Status_Request(std::vector<uint8_t> names,
      std::vector<std::vector<uint8_t>> keys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:40,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:43,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:45,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:46,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:47,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:48,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::RFC6066_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - get_byte
    - get_uint16_t
    - Decoding_Error
    - discard_next
    linkageType: ''
    returnType: void
    signature: void RFC6066_Certificate_Status_Request(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - Contents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::TLS::Certificate_Status_Request_Internal::Certificate_Status_Request_Internal
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Certificate_Status_Request_Internal(Contents c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:109,1
    - Dst: RFC6066_Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:110,1
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:123,1
    - Dst: RFC6066_Empty_Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:124,1
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:139,1
    - Dst: Certificate_Status
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:140,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:140,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - ' reader'
    - extension_size
    - message_type
    - from
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Handshake_Type
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Certificate_Status_Request::Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - RFC6066_Empty_Certificate_Status_Request
    - std::make_unique<Certificate_Status_Request_Internal>
    - TLS_Exception
    - Certificate_Status
    - RFC6066_Certificate_Status_Request
    linkageType: ''
    returnType: void
    signature: "void Certificate_Status_Request::Certificate_Status_Request(TLS_Data_Reader&
      reader,\n                                                       uint16_t extension_size,\n
      \                                                      Handshake_Type message_type,\n
      \                                                      Connection_Side from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:151,1
    - Dst: RFC6066_Empty_Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: Botan::TLS::Certificate_Status_Request::Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Certificate_Status_Request_Internal>
    - RFC6066_Empty_Certificate_Status_Request
    linkageType: ''
    returnType: void
    signature: void Certificate_Status_Request::Certificate_Status_Request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:155,1
    - Dst: RFC6066_Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ocsp_responder_ids
    - ocsp_key_ids
    argTypes:
    - std::vector<uint8_t>
    - std::vector<std::vector<uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: Botan::TLS::Certificate_Status_Request::Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Certificate_Status_Request_Internal>
    - RFC6066_Certificate_Status_Request
    linkageType: ''
    returnType: void
    signature: "void Certificate_Status_Request::Certificate_Status_Request(std::vector<uint8_t>
      ocsp_responder_ids,\n                                                       std::vector<std::vector<uint8_t>>
      ocsp_key_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:159,1
    - Dst: Certificate_Status
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:159,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - response
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: Botan::TLS::Certificate_Status_Request::Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Certificate_Status_Request_Internal>
    - Certificate_Status
    linkageType: ''
    returnType: void
    signature: void Certificate_Status_Request::Certificate_Status_Request(std::vector<uint8_t>
      response)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Certificate_Status_Request::~Certificate_Status_Request()
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Status_Request::~Certificate_Status_Request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:164,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:165,1
    - Dst: std::holds_alternative<Certificate_Status>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:165,1
    - Dst: std::get<Certificate_Status>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: '& Certificate_Status_Request::get_ocsp_response() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::get<Certificate_Status>
    - BOTAN_ASSERT_NONNULL
    - std::holds_alternative<Certificate_Status>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & Certificate_Status_Request::get_ocsp_response()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:170,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:171,1
    - Dst: Botan::TLS::Certificate_Status_Request::serialize
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: Botan::TLS::Certificate_Status_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Certificate_Status_Request::serialize
    - std::visit
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Status_Request::serialize(Connection_Side
      /*side*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::RFC6066_Empty_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6066_Empty_Certificate_Status_Request()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::RFC6066_Empty_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void RFC6066_Empty_Certificate_Status_Request(uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - names
    - keys
    argTypes:
    - std::vector<uint8_t>
    - std::vector<std::vector<uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::RFC6066_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RFC6066_Certificate_Status_Request(std::vector<uint8_t> names,
      std::vector<std::vector<uint8_t>> keys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:40,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:43,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:45,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:46,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:47,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:48,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::RFC6066_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - get_byte
    - get_uint16_t
    - Decoding_Error
    - discard_next
    linkageType: ''
    returnType: void
    signature: void RFC6066_Certificate_Status_Request(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::RFC6066_Empty_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6066_Empty_Certificate_Status_Request()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::RFC6066_Empty_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void RFC6066_Empty_Certificate_Status_Request(uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::TLS::RFC6066_Empty_Certificate_Status_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - names
    - keys
    argTypes:
    - std::vector<uint8_t>
    - std::vector<std::vector<uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::RFC6066_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void RFC6066_Certificate_Status_Request(std::vector<uint8_t> names,
      std::vector<std::vector<uint8_t>> keys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:40,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:43,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:45,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:46,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:47,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:48,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::RFC6066_Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - get_byte
    - get_uint16_t
    - Decoding_Error
    - discard_next
    linkageType: ''
    returnType: void
    signature: void RFC6066_Certificate_Status_Request(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: Botan::TLS::RFC6066_Certificate_Status_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - Contents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::TLS::Certificate_Status_Request_Internal::Certificate_Status_Request_Internal
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Certificate_Status_Request_Internal(Contents c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:109,1
    - Dst: RFC6066_Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:110,1
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:123,1
    - Dst: RFC6066_Empty_Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:124,1
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:139,1
    - Dst: Certificate_Status
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:140,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:140,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - ' reader'
    - extension_size
    - message_type
    - from
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Handshake_Type
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Certificate_Status_Request::Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - RFC6066_Empty_Certificate_Status_Request
    - std::make_unique<Certificate_Status_Request_Internal>
    - TLS_Exception
    - Certificate_Status
    - RFC6066_Certificate_Status_Request
    linkageType: ''
    returnType: void
    signature: "void Certificate_Status_Request::Certificate_Status_Request(TLS_Data_Reader&
      reader,\n                                                       uint16_t extension_size,\n
      \                                                      Handshake_Type message_type,\n
      \                                                      Connection_Side from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:151,1
    - Dst: RFC6066_Empty_Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: Botan::TLS::Certificate_Status_Request::Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Certificate_Status_Request_Internal>
    - RFC6066_Empty_Certificate_Status_Request
    linkageType: ''
    returnType: void
    signature: void Certificate_Status_Request::Certificate_Status_Request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:155,1
    - Dst: RFC6066_Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ocsp_responder_ids
    - ocsp_key_ids
    argTypes:
    - std::vector<uint8_t>
    - std::vector<std::vector<uint8_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: Botan::TLS::Certificate_Status_Request::Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Certificate_Status_Request_Internal>
    - RFC6066_Certificate_Status_Request
    linkageType: ''
    returnType: void
    signature: "void Certificate_Status_Request::Certificate_Status_Request(std::vector<uint8_t>
      ocsp_responder_ids,\n                                                       std::vector<std::vector<uint8_t>>
      ocsp_key_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Certificate_Status_Request_Internal>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:159,1
    - Dst: Certificate_Status
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:159,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - response
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: Botan::TLS::Certificate_Status_Request::Certificate_Status_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Certificate_Status_Request_Internal>
    - Certificate_Status
    linkageType: ''
    returnType: void
    signature: void Certificate_Status_Request::Certificate_Status_Request(std::vector<uint8_t>
      response)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Certificate_Status_Request::~Certificate_Status_Request()
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Status_Request::~Certificate_Status_Request()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:164,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:165,1
    - Dst: std::holds_alternative<Certificate_Status>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:165,1
    - Dst: std::get<Certificate_Status>
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: '& Certificate_Status_Request::get_ocsp_response() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 0
    functionsReached:
    - std::get<Certificate_Status>
    - BOTAN_ASSERT_NONNULL
    - std::holds_alternative<Certificate_Status>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & Certificate_Status_Request::get_ocsp_response()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:170,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:171,1
    - Dst: Botan::TLS::Certificate_Status_Request::serialize
      Src: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: Botan::TLS::Certificate_Status_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Certificate_Status_Request::serialize
    - std::visit
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Status_Request::serialize(Connection_Side
      /*side*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan::TLS::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool emits_session_tickets()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: ~Session_Manager()
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Session_Manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: Botan::TLS::mutex
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: recursive_mutex_type
    signature: recursive_mutex_type & mutex()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan::TLS::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool emits_session_tickets()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: ~Session_Manager()
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Session_Manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: Botan::TLS::mutex
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: recursive_mutex_type
    signature: recursive_mutex_type & mutex()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 77
    functionName: Botan::TLS::algorithm_specs_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - Group_Params::code
    - Group_Params::is_pqc_hybrid
    linkageType: ''
    returnType: std::vector<std::pair<std::string, std::string>>
    signature: std::vector<std::pair<std::string, std::string>> algorithm_specs_for_group(Group_Params
      group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: Botan::TLS::algorithm_specs_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:84,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:84,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:97,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: Botan::TLS::algorithm_identifiers_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - std::vector::push_back
    - Botan::TLS::algorithm_specs_for_group
    - Group_Params::is_pqc_hybrid
    - std::vector::reserve
    - Botan::EC_Group::from_name
    - AlgorithmIdentifier
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: std::vector<AlgorithmIdentifier>
    signature: std::vector<AlgorithmIdentifier> algorithm_identifiers_for_group(Group_Params
      group)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:105,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:105,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: Botan::TLS::public_key_lengths_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Group_Params::code
    - Group_Params::is_pqc_hybrid
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> public_key_lengths_for_group(Group_Params group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:147,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:149,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: Botan::TLS::convert_kex_to_kem_pks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::unique_ptr<Public_Key>>::end
    - std::vector<std::unique_ptr<Public_Key>>::begin
    - std::move
    - std::make_unique<KEX_to_KEM_Adapter_PublicKey>
    - transform
    - supports_operation
    - BOTAN_ARG_CHECK
    - std::back_inserter
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Public_Key>>
    signature: std::vector<std::unique_ptr<Public_Key>> convert_kex_to_kem_pks(std::vector<std::unique_ptr<Public_Key>>
      pks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:161,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:163,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: release
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:166,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: Botan::TLS::convert_kex_to_kem_sks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector<std::unique_ptr<Private_Key>>::end
    - transform
    - supports_operation
    - dynamic_cast<PK_Key_Agreement_Key*>
    - Botan::TLS::get
    - std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
    - BOTAN_ARG_CHECK
    - std::unique_ptr<PK_Key_Agreement_Key>
    - BOTAN_ASSERT_NONNULL
    - std::vector<std::unique_ptr<Private_Key>>::begin
    - std::back_inserter
    - release
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Private_Key>>
    signature: std::vector<std::unique_ptr<Private_Key>> convert_kex_to_kem_sks(std::vector<std::unique_ptr<Private_Key>>
      sks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:187,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' op'
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - KEM_Operation
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: Botan::TLS::concat_secret_combiner
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - shared_key_length
    - std::span<uint8_t>::size
    - BufferStuffer::append
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: "void concat_secret_combiner(KEM_Operation& op,\n                            std::span<uint8_t>
      out_shared_secret,\n                            const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                            size_t desired_shared_key_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:192,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - std::vector<KEM_Operation>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: Botan::TLS::concat_shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - reduce
    - shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t concat_shared_key_length(const std::vector<KEM_Operation>& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' public_keys'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::Hybrid_TLS_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hybrid_TLS_KEM_Encryptor(const std::vector<std::unique_ptr<Public_Key>>&
      public_keys, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_secret_combiner
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::combine_shared_secrets
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_secret_combiner
    linkageType: ''
    returnType: void
    signature: "void combine_shared_secrets(std::span<uint8_t> out_shared_secret,\n
      \                                 const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                                  const std::vector<std::vector<uint8_t>>&
      /*ciphertexts*/,\n                                  size_t desired_shared_key_len,\n
      \                                 std::span<const uint8_t> /*salt*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:211,1
    - Dst: encryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_shared_key_length
    - encryptors
    linkageType: ''
    returnType: size_t
    signature: size_t shared_key_length(size_t /*desired_shared_key_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' private_keys'
    - ' rng'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::Hybrid_TLS_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Hybrid_TLS_KEM_Decryptor(const std::vector<std::unique_ptr<Private_Key>>&
      private_keys,\n                               RandomNumberGenerator& rng,\n
      \                              const std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_secret_combiner
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::combine_shared_secrets
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_secret_combiner
    linkageType: ''
    returnType: void
    signature: "void combine_shared_secrets(std::span<uint8_t> out_shared_secret,\n
      \                                 const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                                  const std::vector<std::vector<uint8_t>>&
      /*ciphertexts*/,\n                                  size_t desired_shared_key_len,\n
      \                                 std::span<const uint8_t> /*salt*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:232,1
    - Dst: decryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_shared_key_length
    - decryptors
    linkageType: ''
    returnType: size_t
    signature: size_t shared_key_length(size_t /*desired_shared_key_len*/) const override
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 77
    functionName: Botan::TLS::algorithm_specs_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ARG_CHECK
    - Group_Params::code
    - Group_Params::is_pqc_hybrid
    linkageType: ''
    returnType: std::vector<std::pair<std::string, std::string>>
    signature: std::vector<std::pair<std::string, std::string>> algorithm_specs_for_group(Group_Params
      group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: Botan::TLS::algorithm_specs_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:84,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:84,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:97,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: Botan::TLS::algorithm_identifiers_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - std::vector::push_back
    - Botan::TLS::algorithm_specs_for_group
    - Group_Params::is_pqc_hybrid
    - std::vector::reserve
    - Botan::EC_Group::from_name
    - AlgorithmIdentifier
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: std::vector<AlgorithmIdentifier>
    signature: std::vector<AlgorithmIdentifier> algorithm_identifiers_for_group(Group_Params
      group)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:105,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:105,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: Botan::TLS::public_key_lengths_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Group_Params::code
    - Group_Params::is_pqc_hybrid
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> public_key_lengths_for_group(Group_Params group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:147,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:149,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: Botan::TLS::convert_kex_to_kem_pks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::unique_ptr<Public_Key>>::end
    - std::vector<std::unique_ptr<Public_Key>>::begin
    - std::move
    - std::make_unique<KEX_to_KEM_Adapter_PublicKey>
    - transform
    - supports_operation
    - BOTAN_ARG_CHECK
    - std::back_inserter
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Public_Key>>
    signature: std::vector<std::unique_ptr<Public_Key>> convert_kex_to_kem_pks(std::vector<std::unique_ptr<Public_Key>>
      pks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:161,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:163,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: release
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:166,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: Botan::TLS::convert_kex_to_kem_sks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector<std::unique_ptr<Private_Key>>::end
    - transform
    - supports_operation
    - dynamic_cast<PK_Key_Agreement_Key*>
    - Botan::TLS::get
    - std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
    - BOTAN_ARG_CHECK
    - std::unique_ptr<PK_Key_Agreement_Key>
    - BOTAN_ASSERT_NONNULL
    - std::vector<std::unique_ptr<Private_Key>>::begin
    - std::back_inserter
    - release
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Private_Key>>
    signature: std::vector<std::unique_ptr<Private_Key>> convert_kex_to_kem_sks(std::vector<std::unique_ptr<Private_Key>>
      sks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:187,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' op'
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - KEM_Operation
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: Botan::TLS::concat_secret_combiner
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - shared_key_length
    - std::span<uint8_t>::size
    - BufferStuffer::append
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: "void concat_secret_combiner(KEM_Operation& op,\n                            std::span<uint8_t>
      out_shared_secret,\n                            const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                            size_t desired_shared_key_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:192,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - std::vector<KEM_Operation>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: Botan::TLS::concat_shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - reduce
    - shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t concat_shared_key_length(const std::vector<KEM_Operation>& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' public_keys'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::Hybrid_TLS_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hybrid_TLS_KEM_Encryptor(const std::vector<std::unique_ptr<Public_Key>>&
      public_keys, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_secret_combiner
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::combine_shared_secrets
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_secret_combiner
    linkageType: ''
    returnType: void
    signature: "void combine_shared_secrets(std::span<uint8_t> out_shared_secret,\n
      \                                 const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                                  const std::vector<std::vector<uint8_t>>&
      /*ciphertexts*/,\n                                  size_t desired_shared_key_len,\n
      \                                 std::span<const uint8_t> /*salt*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:211,1
    - Dst: encryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_shared_key_length
    - encryptors
    linkageType: ''
    returnType: size_t
    signature: size_t shared_key_length(size_t /*desired_shared_key_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' private_keys'
    - ' rng'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::Hybrid_TLS_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Hybrid_TLS_KEM_Decryptor(const std::vector<std::unique_ptr<Private_Key>>&
      private_keys,\n                               RandomNumberGenerator& rng,\n
      \                              const std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_secret_combiner
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::combine_shared_secrets
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_secret_combiner
    linkageType: ''
    returnType: void
    signature: "void combine_shared_secrets(std::span<uint8_t> out_shared_secret,\n
      \                                 const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                                  const std::vector<std::vector<uint8_t>>&
      /*ciphertexts*/,\n                                  size_t desired_shared_key_len,\n
      \                                 std::span<const uint8_t> /*salt*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:232,1
    - Dst: decryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_shared_key_length
    - decryptors
    linkageType: ''
    returnType: size_t
    signature: size_t shared_key_length(size_t /*desired_shared_key_len*/) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: public_key_lengths_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:240,1
    - Dst: algorithm_identifiers_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:241,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:242,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:242,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:242,1
    - Dst: reduce
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:245,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:246,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:247,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:252,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:252,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:253,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:254,1
    - Dst: load_public_key
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:254,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:254,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:256,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:256,1
    - Dst: std::make_unique<Hybrid_KEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - group
    - concatenated_public_keys
    argTypes:
    - Group_Params
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 258
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 2
    functionsReached:
    - load_public_key
    - std::make_unique<Hybrid_KEM_PublicKey>
    - auto::size
    - Decoding_Error
    - std::move
    - std::vector::emplace_back
    - std::vector::reserve
    - reduce
    - BufferSlicer::take
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - public_key_lengths_for_group
    - std::span<const uint8_t>::size
    - algorithm_identifiers_for_group
    linkageType: ''
    returnType: std::unique_ptr<Hybrid_KEM_PublicKey>
    signature: "std::unique_ptr<Hybrid_KEM_PublicKey> Hybrid_KEM_PublicKey::load_for_group(\n
      \  Group_Params group, std::span<const uint8_t> concatenated_public_keys)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_kex_to_kem_pks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:261,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::Hybrid_KEM_PublicKey
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - convert_kex_to_kem_pks
    linkageType: ''
    returnType: void
    signature: void Hybrid_KEM_PublicKey::Hybrid_KEM_PublicKey(std::vector<std::unique_ptr<Public_Key>>
      pks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_kex_to_kem_pks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:264,1
    - Dst: extract_public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:264,1
    - Dst: convert_kex_to_kem_sks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:265,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 4
    functionsReached:
    - extract_public_keys
    - std::move
    - convert_kex_to_kem_sks
    - convert_kex_to_kem_pks
    linkageType: ''
    returnType: void
    signature: void Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey(std::vector<std::unique_ptr<Private_Key>>
      sks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:269,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:273,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - public_keys
    linkageType: ''
    returnType: std::string
    signature: std::string Hybrid_KEM_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::Not_Implemented::Not_Implemented
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Hybrid_KEM_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hybrid_KEM_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:295,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:295,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:295,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:296,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 298
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 6
    functionsReached:
    - concat
    - public_keys
    - std::vector<uint8_t>
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - reduce
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hybrid_KEM_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Hybrid_KEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:301,1
    - Dst: generate_other_sks_from_pks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - generate_other_sks_from_pks
    - std::make_unique<Hybrid_KEM_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Hybrid_KEM_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:306,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:307,1
    - Dst: std::make_unique<Hybrid_TLS_KEM_Encryptor>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:309,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - public_keys
    - Botan::Invalid_Argument
    - std::make_unique<Hybrid_TLS_KEM_Encryptor>
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<Botan::PK_Ops::KEM_Encryption> Hybrid_KEM_PublicKey::create_kem_encryption_op(\n
      \  std::string_view params, std::string_view provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: algorithm_specs_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:314,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:316,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:316,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:318,1
    - Dst: create_private_key
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:318,1
    - Dst: std::make_unique<Hybrid_KEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:320,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - group
    - ' rng'
    argTypes:
    - Group_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 321
    functionName: Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 2
    functionsReached:
    - algorithm_specs_for_group
    - create_private_key
    - auto::size
    - std::vector::push_back
    - std::move
    - std::vector::reserve
    - std::make_unique<Hybrid_KEM_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Hybrid_KEM_PrivateKey>
    signature: "std::unique_ptr<Hybrid_KEM_PrivateKey> Hybrid_KEM_PrivateKey::generate_from_group(Group_Params
      group,\n                                                                                  RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:325,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:326,1
    - Dst: std::make_unique<Hybrid_TLS_KEM_Decryptor>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:328,1
    - Dst: private_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: Botan::TLS::Hybrid_KEM_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - private_keys
    - std::make_unique<Hybrid_TLS_KEM_Decryptor>
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<Botan::PK_Ops::KEM_Decryption> Hybrid_KEM_PrivateKey::create_kem_decryption_op(\n
      \  RandomNumberGenerator& rng, std::string_view params, std::string_view provider)
      const"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 77
    functionName: Botan::TLS::algorithm_specs_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ARG_CHECK
    - Group_Params::code
    - Group_Params::is_pqc_hybrid
    linkageType: ''
    returnType: std::vector<std::pair<std::string, std::string>>
    signature: std::vector<std::pair<std::string, std::string>> algorithm_specs_for_group(Group_Params
      group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: Botan::TLS::algorithm_specs_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:84,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:84,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:97,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: Botan::TLS::algorithm_identifiers_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - std::vector::push_back
    - Botan::TLS::algorithm_specs_for_group
    - Group_Params::is_pqc_hybrid
    - std::vector::reserve
    - Botan::EC_Group::from_name
    - AlgorithmIdentifier
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: std::vector<AlgorithmIdentifier>
    signature: std::vector<AlgorithmIdentifier> algorithm_identifiers_for_group(Group_Params
      group)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:105,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:105,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: Botan::TLS::public_key_lengths_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Group_Params::code
    - Group_Params::is_pqc_hybrid
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> public_key_lengths_for_group(Group_Params group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:147,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:149,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: Botan::TLS::convert_kex_to_kem_pks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::unique_ptr<Public_Key>>::end
    - std::vector<std::unique_ptr<Public_Key>>::begin
    - std::move
    - std::make_unique<KEX_to_KEM_Adapter_PublicKey>
    - transform
    - supports_operation
    - BOTAN_ARG_CHECK
    - std::back_inserter
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Public_Key>>
    signature: std::vector<std::unique_ptr<Public_Key>> convert_kex_to_kem_pks(std::vector<std::unique_ptr<Public_Key>>
      pks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:161,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:163,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: release
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:166,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: Botan::TLS::convert_kex_to_kem_sks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector<std::unique_ptr<Private_Key>>::end
    - transform
    - supports_operation
    - dynamic_cast<PK_Key_Agreement_Key*>
    - Botan::TLS::get
    - std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
    - BOTAN_ARG_CHECK
    - std::unique_ptr<PK_Key_Agreement_Key>
    - BOTAN_ASSERT_NONNULL
    - std::vector<std::unique_ptr<Private_Key>>::begin
    - std::back_inserter
    - release
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Private_Key>>
    signature: std::vector<std::unique_ptr<Private_Key>> convert_kex_to_kem_sks(std::vector<std::unique_ptr<Private_Key>>
      sks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:187,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' op'
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - KEM_Operation
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: Botan::TLS::concat_secret_combiner
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - shared_key_length
    - std::span<uint8_t>::size
    - BufferStuffer::append
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: "void concat_secret_combiner(KEM_Operation& op,\n                            std::span<uint8_t>
      out_shared_secret,\n                            const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                            size_t desired_shared_key_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:192,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - std::vector<KEM_Operation>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: Botan::TLS::concat_shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - reduce
    - shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t concat_shared_key_length(const std::vector<KEM_Operation>& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' public_keys'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::Hybrid_TLS_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hybrid_TLS_KEM_Encryptor(const std::vector<std::unique_ptr<Public_Key>>&
      public_keys, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_secret_combiner
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::combine_shared_secrets
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_secret_combiner
    linkageType: ''
    returnType: void
    signature: "void combine_shared_secrets(std::span<uint8_t> out_shared_secret,\n
      \                                 const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                                  const std::vector<std::vector<uint8_t>>&
      /*ciphertexts*/,\n                                  size_t desired_shared_key_len,\n
      \                                 std::span<const uint8_t> /*salt*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:211,1
    - Dst: encryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_shared_key_length
    - encryptors
    linkageType: ''
    returnType: size_t
    signature: size_t shared_key_length(size_t /*desired_shared_key_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' private_keys'
    - ' rng'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::Hybrid_TLS_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Hybrid_TLS_KEM_Decryptor(const std::vector<std::unique_ptr<Private_Key>>&
      private_keys,\n                               RandomNumberGenerator& rng,\n
      \                              const std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_secret_combiner
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::combine_shared_secrets
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_secret_combiner
    linkageType: ''
    returnType: void
    signature: "void combine_shared_secrets(std::span<uint8_t> out_shared_secret,\n
      \                                 const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                                  const std::vector<std::vector<uint8_t>>&
      /*ciphertexts*/,\n                                  size_t desired_shared_key_len,\n
      \                                 std::span<const uint8_t> /*salt*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:232,1
    - Dst: decryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_shared_key_length
    - decryptors
    linkageType: ''
    returnType: size_t
    signature: size_t shared_key_length(size_t /*desired_shared_key_len*/) const override
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 77
    functionName: Botan::TLS::algorithm_specs_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_ARG_CHECK
    - Group_Params::code
    - Group_Params::is_pqc_hybrid
    linkageType: ''
    returnType: std::vector<std::pair<std::string, std::string>>
    signature: std::vector<std::pair<std::string, std::string>> algorithm_specs_for_group(Group_Params
      group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: Botan::TLS::algorithm_specs_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:84,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:84,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:95,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:97,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: Botan::TLS::algorithm_identifiers_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - std::vector::push_back
    - Botan::TLS::algorithm_specs_for_group
    - Group_Params::is_pqc_hybrid
    - std::vector::reserve
    - Botan::EC_Group::from_name
    - AlgorithmIdentifier
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: std::vector<AlgorithmIdentifier>
    signature: std::vector<AlgorithmIdentifier> algorithm_identifiers_for_group(Group_Params
      group)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:105,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:105,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: Botan::TLS::public_key_lengths_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Group_Params::code
    - Group_Params::is_pqc_hybrid
    linkageType: ''
    returnType: std::vector<size_t>
    signature: std::vector<size_t> public_key_lengths_for_group(Group_Params group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:147,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:149,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: Botan::TLS::convert_kex_to_kem_pks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::unique_ptr<Public_Key>>::end
    - std::vector<std::unique_ptr<Public_Key>>::begin
    - std::move
    - std::make_unique<KEX_to_KEM_Adapter_PublicKey>
    - transform
    - supports_operation
    - BOTAN_ARG_CHECK
    - std::back_inserter
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Public_Key>>
    signature: std::vector<std::unique_ptr<Public_Key>> convert_kex_to_kem_pks(std::vector<std::unique_ptr<Public_Key>>
      pks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:161,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:163,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: release
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:166,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: Botan::TLS::convert_kex_to_kem_sks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector<std::unique_ptr<Private_Key>>::end
    - transform
    - supports_operation
    - dynamic_cast<PK_Key_Agreement_Key*>
    - Botan::TLS::get
    - std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
    - BOTAN_ARG_CHECK
    - std::unique_ptr<PK_Key_Agreement_Key>
    - BOTAN_ASSERT_NONNULL
    - std::vector<std::unique_ptr<Private_Key>>::begin
    - std::back_inserter
    - release
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Private_Key>>
    signature: std::vector<std::unique_ptr<Private_Key>> convert_kex_to_kem_sks(std::vector<std::unique_ptr<Private_Key>>
      sks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:180,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:187,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' op'
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - KEM_Operation
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: Botan::TLS::concat_secret_combiner
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - shared_key_length
    - std::span<uint8_t>::size
    - BufferStuffer::append
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: "void concat_secret_combiner(KEM_Operation& op,\n                            std::span<uint8_t>
      out_shared_secret,\n                            const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                            size_t desired_shared_key_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:192,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - std::vector<KEM_Operation>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: Botan::TLS::concat_shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - reduce
    - shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t concat_shared_key_length(const std::vector<KEM_Operation>& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' public_keys'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::Hybrid_TLS_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hybrid_TLS_KEM_Encryptor(const std::vector<std::unique_ptr<Public_Key>>&
      public_keys, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_secret_combiner
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::combine_shared_secrets
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_secret_combiner
    linkageType: ''
    returnType: void
    signature: "void combine_shared_secrets(std::span<uint8_t> out_shared_secret,\n
      \                                 const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                                  const std::vector<std::vector<uint8_t>>&
      /*ciphertexts*/,\n                                  size_t desired_shared_key_len,\n
      \                                 std::span<const uint8_t> /*salt*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:211,1
    - Dst: encryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: Botan::TLS::Hybrid_TLS_KEM_Encryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_shared_key_length
    - encryptors
    linkageType: ''
    returnType: size_t
    signature: size_t shared_key_length(size_t /*desired_shared_key_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' private_keys'
    - ' rng'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::Hybrid_TLS_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Hybrid_TLS_KEM_Decryptor(const std::vector<std::unique_ptr<Private_Key>>&
      private_keys,\n                               RandomNumberGenerator& rng,\n
      \                              const std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_secret_combiner
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_shared_secret
    - ' shared_secrets'
    - desired_shared_key_len
    argTypes:
    - std::span<uint8_t>
    - std::vector<secure_vector<uint8_t>>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::combine_shared_secrets
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_secret_combiner
    linkageType: ''
    returnType: void
    signature: "void combine_shared_secrets(std::span<uint8_t> out_shared_secret,\n
      \                                 const std::vector<secure_vector<uint8_t>>&
      shared_secrets,\n                                  const std::vector<std::vector<uint8_t>>&
      /*ciphertexts*/,\n                                  size_t desired_shared_key_len,\n
      \                                 std::span<const uint8_t> /*salt*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:232,1
    - Dst: decryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Hybrid_TLS_KEM_Decryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - concat_shared_key_length
    - decryptors
    linkageType: ''
    returnType: size_t
    signature: size_t shared_key_length(size_t /*desired_shared_key_len*/) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: public_key_lengths_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:240,1
    - Dst: algorithm_identifiers_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:241,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:242,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:242,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:242,1
    - Dst: reduce
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:245,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:246,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:247,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:252,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:252,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:253,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:254,1
    - Dst: load_public_key
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:254,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:254,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:256,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:256,1
    - Dst: std::make_unique<Hybrid_KEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - group
    - concatenated_public_keys
    argTypes:
    - Group_Params
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 258
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 2
    functionsReached:
    - load_public_key
    - std::make_unique<Hybrid_KEM_PublicKey>
    - auto::size
    - Decoding_Error
    - std::move
    - std::vector::emplace_back
    - std::vector::reserve
    - reduce
    - BufferSlicer::take
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - public_key_lengths_for_group
    - std::span<const uint8_t>::size
    - algorithm_identifiers_for_group
    linkageType: ''
    returnType: std::unique_ptr<Hybrid_KEM_PublicKey>
    signature: "std::unique_ptr<Hybrid_KEM_PublicKey> Hybrid_KEM_PublicKey::load_for_group(\n
      \  Group_Params group, std::span<const uint8_t> concatenated_public_keys)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_kex_to_kem_pks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:261,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::Hybrid_KEM_PublicKey
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - convert_kex_to_kem_pks
    linkageType: ''
    returnType: void
    signature: void Hybrid_KEM_PublicKey::Hybrid_KEM_PublicKey(std::vector<std::unique_ptr<Public_Key>>
      pks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_kex_to_kem_pks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:264,1
    - Dst: extract_public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:264,1
    - Dst: convert_kex_to_kem_sks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:265,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 4
    functionsReached:
    - extract_public_keys
    - std::move
    - convert_kex_to_kem_sks
    - convert_kex_to_kem_pks
    linkageType: ''
    returnType: void
    signature: void Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey(std::vector<std::unique_ptr<Private_Key>>
      sks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:269,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:273,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - public_keys
    linkageType: ''
    returnType: std::string
    signature: std::string Hybrid_KEM_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::Not_Implemented::Not_Implemented
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Hybrid_KEM_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hybrid_KEM_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:295,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:295,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:295,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:296,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 298
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 8
    functionsReached:
    - concat
    - public_keys
    - std::vector<uint8_t>
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - reduce
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hybrid_KEM_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Hybrid_KEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:301,1
    - Dst: generate_other_sks_from_pks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - generate_other_sks_from_pks
    - std::make_unique<Hybrid_KEM_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Hybrid_KEM_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:306,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:307,1
    - Dst: std::make_unique<Hybrid_TLS_KEM_Encryptor>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:309,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - public_keys
    - Botan::Invalid_Argument
    - std::make_unique<Hybrid_TLS_KEM_Encryptor>
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<Botan::PK_Ops::KEM_Encryption> Hybrid_KEM_PublicKey::create_kem_encryption_op(\n
      \  std::string_view params, std::string_view provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: algorithm_specs_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:314,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:316,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:316,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:318,1
    - Dst: create_private_key
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:318,1
    - Dst: std::make_unique<Hybrid_KEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:320,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - group
    - ' rng'
    argTypes:
    - Group_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 321
    functionName: Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 2
    functionsReached:
    - algorithm_specs_for_group
    - create_private_key
    - auto::size
    - std::vector::push_back
    - std::move
    - std::vector::reserve
    - std::make_unique<Hybrid_KEM_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Hybrid_KEM_PrivateKey>
    signature: "std::unique_ptr<Hybrid_KEM_PrivateKey> Hybrid_KEM_PrivateKey::generate_from_group(Group_Params
      group,\n                                                                                  RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:325,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:326,1
    - Dst: std::make_unique<Hybrid_TLS_KEM_Decryptor>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:328,1
    - Dst: private_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: Botan::TLS::Hybrid_KEM_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - private_keys
    - std::make_unique<Hybrid_TLS_KEM_Decryptor>
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: std::unique_ptr<Botan::PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<Botan::PK_Ops::KEM_Decryption> Hybrid_KEM_PrivateKey::create_kem_decryption_op(\n
      \  RandomNumberGenerator& rng, std::string_view params, std::string_view provider)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Hybrid_KEM_PublicKey
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h
    functionUses: 5
    functionsReached:
    - Botan::TLS::Hybrid_KEM_PublicKey
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Hybrid_KEM_PublicKey
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Hybrid_KEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h:82,1
    - Dst: extract_public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h:82,1
    - Dst: private_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Botan::TLS::public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Hybrid_KEM_PublicKey>
    - private_keys
    - extract_public_keys
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hybrid_PrivateKey::check_key
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::TLS::check_key
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h
    functionUses: 0
    functionsReached:
    - Botan::Hybrid_PrivateKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool check_key(RandomNumberGenerator& rng, bool strong) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Hybrid_KEM_PublicKey
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h
    functionUses: 6
    functionsReached:
    - Botan::TLS::Hybrid_KEM_PublicKey
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Hybrid_KEM_PublicKey
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Hybrid_KEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h:82,1
    - Dst: extract_public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h:82,1
    - Dst: private_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Botan::TLS::public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Hybrid_KEM_PublicKey>
    - private_keys
    - extract_public_keys
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hybrid_PrivateKey::check_key
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::TLS::check_key
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.h
    functionUses: 0
    functionsReached:
    - Botan::Hybrid_PrivateKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool check_key(RandomNumberGenerator& rng, bool strong) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:30,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:34,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:35,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:37,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:37,1
    - Dst: unlock
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: Botan::TLS::finished_compute_verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp
    functionUses: 0
    functionsReached:
    - hash
    - ciphersuite
    - session_keys
    - std::make_pair
    - auto::derive_key
    - protocol_specific_prf
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> finished_compute_verify_12(const Handshake_State&
      state, Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:30,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:34,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:35,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:37,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:37,1
    - Dst: unlock
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: Botan::TLS::finished_compute_verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp
    functionUses: 0
    functionsReached:
    - hash
    - ciphersuite
    - session_keys
    - std::make_pair
    - auto::derive_key
    - protocol_specific_prf
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> finished_compute_verify_12(const Handshake_State&
      state, Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finished_compute_verify_12
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:45,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:46,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' io'
    - ' state'
    - side
    argTypes:
    - Handshake_IO
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Finished_12::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp
    functionUses: 0
    functionsReached:
    - hash
    - finished_compute_verify_12
    - send
    linkageType: ''
    returnType: void
    signature: void Finished_12::Finished_12(Handshake_IO& io, Handshake_State& state,
      Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finished_compute_verify_12
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:50,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Finished_12::verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp
    functionUses: 0
    functionsReached:
    - CT::is_equal<uint8_t>
    - finished_compute_verify_12
    linkageType: ''
    returnType: bool
    signature: bool Finished_12::verify(const Handshake_State& state, Connection_Side
      side) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:30,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:34,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:35,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:37,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:37,1
    - Dst: unlock
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: Botan::TLS::finished_compute_verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp
    functionUses: 0
    functionsReached:
    - hash
    - ciphersuite
    - session_keys
    - std::make_pair
    - auto::derive_key
    - protocol_specific_prf
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> finished_compute_verify_12(const Handshake_State&
      state, Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:30,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:34,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:35,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:37,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:37,1
    - Dst: unlock
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: Botan::TLS::finished_compute_verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp
    functionUses: 0
    functionsReached:
    - hash
    - ciphersuite
    - session_keys
    - std::make_pair
    - auto::derive_key
    - protocol_specific_prf
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> finished_compute_verify_12(const Handshake_State&
      state, Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finished_compute_verify_12
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:45,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:46,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' io'
    - ' state'
    - side
    argTypes:
    - Handshake_IO
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Finished_12::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp
    functionUses: 0
    functionsReached:
    - hash
    - finished_compute_verify_12
    - send
    linkageType: ''
    returnType: void
    signature: void Finished_12::Finished_12(Handshake_IO& io, Handshake_State& state,
      Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finished_compute_verify_12
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:50,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Finished_12::verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_finished_12.cpp
    functionUses: 0
    functionsReached:
    - CT::is_equal<uint8_t>
    - finished_compute_verify_12
    linkageType: ''
    returnType: bool
    signature: bool Finished_12::verify(const Handshake_State& state, Connection_Side
      side) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Client_Impl_12::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string application_protocol() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Client_Impl_12::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string application_protocol() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::TLS::Handshake_IO::Handshake_IO
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_IO()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Handshake_IO::Handshake_IO
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_IO(const Handshake_IO&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Handshake_IO::Handshake_IO
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_IO(Handshake_IO&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: '& operator=(const Handshake_IO&)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_IO
    signature: Handshake_IO & operator=(const Handshake_IO&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: '& operator=(Handshake_IO&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_IO
    signature: Handshake_IO & operator=(Handshake_IO&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: ~Handshake_IO()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Handshake_IO()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - writer
    argTypes:
    - writer_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::TLS::Stream_Handshake_IO::Stream_Handshake_IO
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Stream_Handshake_IO(writer_fn writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::TLS::Stream_Handshake_IO::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool timeout_check() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Stream_Handshake_IO::have_more_data
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool have_more_data() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - writer
    - ' seq'
    - mtu
    - initial_timeout_ms
    - max_timeout_ms
    argTypes:
    - writer_fn
    - class Connection_Sequence_Numbers
    - uint16_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: Botan::TLS::Datagram_Handshake_IO::Datagram_Handshake_IO
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Datagram_Handshake_IO(writer_fn writer,\n                            class
      Connection_Sequence_Numbers& seq,\n                            uint16_t mtu,\n
      \                           uint64_t initial_timeout_ms,\n                            uint64_t
      max_timeout_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::TLS::Datagram_Handshake_IO::Handshake_Reassembly::epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t epoch() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - e
    - mt
    - ' msg'
    argTypes:
    - uint16_t
    - Handshake_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: Botan::TLS::Datagram_Handshake_IO::Message_Info
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message_Info(uint16_t e, Handshake_Type mt, const std::vector<uint8_t>&
      msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan::TLS::Datagram_Handshake_IO::Message_Info
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message_Info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::TLS::Handshake_IO::Handshake_IO
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_IO()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Handshake_IO::Handshake_IO
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_IO(const Handshake_IO&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Handshake_IO::Handshake_IO
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_IO(Handshake_IO&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: '& operator=(const Handshake_IO&)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_IO
    signature: Handshake_IO & operator=(const Handshake_IO&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: '& operator=(Handshake_IO&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_IO
    signature: Handshake_IO & operator=(Handshake_IO&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: ~Handshake_IO()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Handshake_IO()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - writer
    argTypes:
    - writer_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::TLS::Stream_Handshake_IO::Stream_Handshake_IO
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Stream_Handshake_IO(writer_fn writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::TLS::Stream_Handshake_IO::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool timeout_check() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Stream_Handshake_IO::have_more_data
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool have_more_data() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - writer
    - ' seq'
    - mtu
    - initial_timeout_ms
    - max_timeout_ms
    argTypes:
    - writer_fn
    - class Connection_Sequence_Numbers
    - uint16_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: Botan::TLS::Datagram_Handshake_IO::Datagram_Handshake_IO
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Datagram_Handshake_IO(writer_fn writer,\n                            class
      Connection_Sequence_Numbers& seq,\n                            uint16_t mtu,\n
      \                           uint64_t initial_timeout_ms,\n                            uint64_t
      max_timeout_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::TLS::Datagram_Handshake_IO::Handshake_Reassembly::epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t epoch() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - e
    - mt
    - ' msg'
    argTypes:
    - uint16_t
    - Handshake_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: Botan::TLS::Datagram_Handshake_IO::Message_Info
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message_Info(uint16_t e, Handshake_Type mt, const std::vector<uint8_t>&
      msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan::TLS::Datagram_Handshake_IO::Message_Info
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Message_Info()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:23,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:24,1
    - Dst: Handshake_State*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:24,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:25,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:25,1
    - Dst: Handshake_State*::ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:27,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:28,1
    - Dst: valid
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:28,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:30,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:31,1
    - Dst: nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:32,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:34,1
    - Dst: Handshake_State*::protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:45,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:54,1
    - Dst: Handshake_State*::hash
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:55,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:55,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:57,1
    - Dst: Handshake_State*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:58,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:59,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:62,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:67,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: Handshake_State*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:69,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:71,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:74,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:76,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:77,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:80,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:81,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:86,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:87,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:89,1
    - Dst: null_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:89,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:95,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:98,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:100,1
    - Dst: null_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 3
    argNames:
    - state
    - ' pre_master_secret'
    - resuming
    argTypes:
    - Handshake_State*
    - secure_vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Session_Keys::Session_Keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.cpp
    functionUses: 0
    functionsReached:
    - data
    - cipher_keylen
    - valid
    - auto::derive_key
    - copy_mem
    - secure_vector::data
    - mac_keylen
    - std::vector::size
    - BOTAN_STATE_CHECK
    - Handshake_State*::client_hello
    - nonce_bytes_from_handshake
    - BOTAN_ASSERT_NONNULL
    - Handshake_State*::hash
    - prf_algo
    - Handshake_State*::ciphersuite
    - resize
    - std::vector::assign
    - Handshake_State*::server_hello
    - std::vector::data
    - size
    - null_ciphersuite
    - Handshake_State*::protocol_specific_prf
    - assign
    linkageType: ''
    returnType: void
    signature: "void Session_Keys::Session_Keys(const Handshake_State* state,\n                           const
      secure_vector<uint8_t>& pre_master_secret,\n                           bool
      resuming)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:23,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:24,1
    - Dst: Handshake_State*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:24,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:25,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:25,1
    - Dst: Handshake_State*::ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:27,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:28,1
    - Dst: valid
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:28,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:30,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:31,1
    - Dst: nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:32,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:34,1
    - Dst: Handshake_State*::protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:45,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:54,1
    - Dst: Handshake_State*::hash
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:55,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:55,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:57,1
    - Dst: Handshake_State*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:58,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:59,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:62,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:67,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: Handshake_State*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:69,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:71,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:74,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:76,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:77,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:80,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:81,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:86,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:87,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:89,1
    - Dst: null_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:89,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:95,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:98,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:100,1
    - Dst: null_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 3
    argNames:
    - state
    - ' pre_master_secret'
    - resuming
    argTypes:
    - Handshake_State*
    - secure_vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Session_Keys::Session_Keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.cpp
    functionUses: 0
    functionsReached:
    - data
    - cipher_keylen
    - valid
    - auto::derive_key
    - copy_mem
    - secure_vector::data
    - mac_keylen
    - std::vector::size
    - BOTAN_STATE_CHECK
    - Handshake_State*::client_hello
    - nonce_bytes_from_handshake
    - BOTAN_ASSERT_NONNULL
    - Handshake_State*::hash
    - prf_algo
    - Handshake_State*::ciphersuite
    - resize
    - std::vector::assign
    - Handshake_State*::server_hello
    - std::vector::data
    - size
    - null_ciphersuite
    - Handshake_State*::protocol_specific_prf
    - assign
    linkageType: ''
    returnType: void
    signature: "void Session_Keys::Session_Keys(const Handshake_State* state,\n                           const
      secure_vector<uint8_t>& pre_master_secret,\n                           bool
      resuming)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:20,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:21,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' io'
    - ' hash'
    - ticket
    - lifetime
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Session_Ticket
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - update
    - send
    linkageType: ''
    returnType: void
    signature: "void New_Session_Ticket_12::New_Session_Ticket_12(Handshake_IO& io,\n
      \                                            Handshake_Hash& hash,\n                                             Session_Ticket
      ticket,\n                                             uint32_t lifetime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:25,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' io'
    - ' hash'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp
    functionUses: 0
    functionsReached:
    - update
    - send
    linkageType: ''
    returnType: void
    signature: void New_Session_Ticket_12::New_Session_Ticket_12(Handshake_IO& io,
      Handshake_Hash& hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:29,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:30,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:35,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:36,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:36,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::get_range
    - TLS_Data_Reader::assert_done
    - size
    - TLS_Data_Reader::get_uint32_t
    - Session_Ticket
    linkageType: ''
    returnType: void
    signature: void New_Session_Ticket_12::New_Session_Ticket_12(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:41,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:42,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan::TLS::New_Session_Ticket_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp
    functionUses: 0
    functionsReached:
    - get
    - append_tls_length_value
    - store_be
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> New_Session_Ticket_12::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:20,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:21,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' io'
    - ' hash'
    - ticket
    - lifetime
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Session_Ticket
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - update
    - send
    linkageType: ''
    returnType: void
    signature: "void New_Session_Ticket_12::New_Session_Ticket_12(Handshake_IO& io,\n
      \                                            Handshake_Hash& hash,\n                                             Session_Ticket
      ticket,\n                                             uint32_t lifetime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:25,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' io'
    - ' hash'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp
    functionUses: 0
    functionsReached:
    - update
    - send
    linkageType: ''
    returnType: void
    signature: void New_Session_Ticket_12::New_Session_Ticket_12(Handshake_IO& io,
      Handshake_Hash& hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:29,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:30,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:35,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:36,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:36,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::get_range
    - TLS_Data_Reader::assert_done
    - size
    - TLS_Data_Reader::get_uint32_t
    - Session_Ticket
    linkageType: ''
    returnType: void
    signature: void New_Session_Ticket_12::New_Session_Ticket_12(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:41,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:42,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan::TLS::New_Session_Ticket_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_session_ticket_12.cpp
    functionUses: 0
    functionsReached:
    - get
    - append_tls_length_value
    - store_be
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> New_Session_Ticket_12::serialize() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:15,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:16,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:21,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:22,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:25,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:25,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:26,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:29,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:29,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:29,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Hello_Verify_Request::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::is_datagram_protocol
    - Decoding_Error
    - begin
    - static_cast<size_t>
    - size
    - assign
    - end
    linkageType: ''
    returnType: void
    signature: void Hello_Verify_Request::Hello_Verify_Request(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:35,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:36,1
    - Dst: auto::update_be
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:38,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:38,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:38,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:39,1
    - Dst: auto::update_be
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:40,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:40,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:40,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:41,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:43,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:43,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:44,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' client_hello_bits'
    - client_identity
    - ' secret_key'
    argTypes:
    - std::vector<uint8_t>
    - std::string_view
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Hello_Verify_Request::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - resize
    - data
    - static_cast<uint64_t>
    - auto::set_key
    - auto::output_length
    - auto::update
    - size
    - auto::final
    - std::string_view::size
    - auto::update_be
    linkageType: ''
    returnType: void
    signature: "void Hello_Verify_Request::Hello_Verify_Request(const std::vector<uint8_t>&
      client_hello_bits,\n                                           std::string_view
      client_identity,\n                                           const SymmetricKey&
      secret_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:56,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:57,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:58,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:58,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Hello_Verify_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Protocol_Version::minor_version
    - size
    - Protocol_Version::major_version
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hello_Verify_Request::serialize() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:15,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:16,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:21,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:22,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:25,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:25,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:26,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:29,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:29,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:29,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Hello_Verify_Request::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::is_datagram_protocol
    - Decoding_Error
    - begin
    - static_cast<size_t>
    - size
    - assign
    - end
    linkageType: ''
    returnType: void
    signature: void Hello_Verify_Request::Hello_Verify_Request(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:35,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:36,1
    - Dst: auto::update_be
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:38,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:38,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:38,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:39,1
    - Dst: auto::update_be
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:40,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:40,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:40,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:41,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:43,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:43,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:44,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' client_hello_bits'
    - client_identity
    - ' secret_key'
    argTypes:
    - std::vector<uint8_t>
    - std::string_view
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Hello_Verify_Request::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - resize
    - data
    - static_cast<uint64_t>
    - auto::set_key
    - auto::output_length
    - auto::update
    - size
    - auto::final
    - std::string_view::size
    - auto::update_be
    linkageType: ''
    returnType: void
    signature: "void Hello_Verify_Request::Hello_Verify_Request(const std::vector<uint8_t>&
      client_hello_bits,\n                                           std::string_view
      client_identity,\n                                           const SymmetricKey&
      secret_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:56,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:57,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:58,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:58,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Hello_Verify_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_hello_verify.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Protocol_Version::minor_version
    - size
    - Protocol_Version::major_version
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hello_Verify_Request::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status_12.cpp:18,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status_12.cpp:19,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status_12.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' io'
    - ' hash'
    - raw_response_bytes
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: Botan::TLS::Certificate_Status_12::Certificate_Status_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_status_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - update
    - send
    linkageType: ''
    returnType: void
    signature: "void Certificate_Status_12::Certificate_Status_12(Handshake_IO& io,\n
      \                                            Handshake_Hash& hash,\n                                             std::vector<uint8_t>
      raw_response_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status_12.cpp:18,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status_12.cpp:19,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status_12.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' io'
    - ' hash'
    - raw_response_bytes
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: Botan::TLS::Certificate_Status_12::Certificate_Status_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_status_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - update
    - send
    linkageType: ''
    returnType: void
    signature: "void Certificate_Status_12::Certificate_Status_12(Handshake_IO& io,\n
      \                                            Handshake_Hash& hash,\n                                             std::vector<uint8_t>
      raw_response_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Connection_Cipher_State::~Connection_Cipher_State()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Connection_Cipher_State::~Connection_Cipher_State()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:42,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:43,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:44,1
    - Dst: aead_key
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:46,1
    - Dst: nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:47,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:50,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:50,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:52,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:55,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:55,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:55,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:56,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:56,1
    - Dst: std::make_unique<TLS_CBC_HMAC_AEAD_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:60,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:61,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:62,1
    - Dst: std::make_unique<TLS_CBC_HMAC_AEAD_Decryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:66,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:66,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:67,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:68,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:69,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:75,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:76,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:78,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:80,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:80,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:80,1
    - Dst: std::make_unique<TLS_NULL_HMAC_AEAD_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:83,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:83,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:83,1
    - Dst: std::make_unique<TLS_NULL_HMAC_AEAD_Decryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:85,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:85,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:85,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:88,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:92,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:92,1
    - Dst: set_key
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 6
    argNames:
    - version
    - side
    - our_side
    - ' suite'
    - ' keys'
    - uses_encrypt_then_mac
    argTypes:
    - Protocol_Version
    - Connection_Side
    - bool
    - Ciphersuite
    - Session_Keys
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Connection_Cipher_State::Connection_Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Connection_Cipher_State::nonce_format
    - cipher_keylen
    - std::make_unique<TLS_CBC_HMAC_AEAD_Decryption>
    - mac_algo
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
    - std::move
    - Botan::BlockCipher::create_or_throw
    - mac_keylen
    - std::make_unique<TLS_CBC_HMAC_AEAD_Encryption>
    - BOTAN_ASSERT_NOMSG
    - fmt
    - Botan::MessageAuthenticationCode::create_or_throw
    - std::make_unique<TLS_NULL_HMAC_AEAD_Encryption>
    - BOTAN_UNUSED
    - cipher_algo
    - Internal_Error
    - nonce
    - set_key
    - Botan::AEAD_Mode::create_or_throw
    - size
    - aead_key
    - std::make_unique<TLS_NULL_HMAC_AEAD_Decryption>
    linkageType: ''
    returnType: void
    signature: "void Connection_Cipher_State::Connection_Cipher_State(Protocol_Version
      version,\n                                                 Connection_Side side,\n
      \                                                bool our_side,\n                                                 const
      Ciphersuite& suite,\n                                                 const
      Session_Keys& keys,\n                                                 bool uses_encrypt_then_mac)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:104,1
    - Dst: std::vector::swap
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:106,1
    - Dst: randomize
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:110,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:110,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:110,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:115,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:115,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:116,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:116,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:116,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:120,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:120,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:122,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:122,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:123,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:123,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - seq
    - ' rng'
    argTypes:
    - uint64_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 129
    functionName: Botan::TLS::Connection_Cipher_State::aead_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - data
    - xor_buf
    - copy_mem
    - std::vector::data
    - std::vector::swap
    - size
    - randomize
    - BOTAN_ASSERT_NOMSG
    - Invalid_State
    - store_be
    - empty
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Connection_Cipher_State::aead_nonce(uint64_t seq,
      RandomNumberGenerator& rng)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:137,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:137,1
    - Dst: std::vector::swap
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:139,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:142,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:143,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:145,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:150,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:150,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:151,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:151,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:151,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:155,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:155,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:156,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:157,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:160,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:160,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:161,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:161,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:161,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:166,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - record
    - record_len
    - seq
    argTypes:
    - uint8_t[]
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 167
    functionName: Botan::TLS::Connection_Cipher_State::aead_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - data
    - Decoding_Error
    - xor_buf
    - copy_mem
    - std::vector::data
    - std::vector::swap
    - size
    - store_be
    - BOTAN_ASSERT_NOMSG
    - Invalid_State
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Connection_Cipher_State::aead_nonce(const uint8_t
      record[], size_t record_len, uint64_t seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:175,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:176,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:177,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:178,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:179,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - msg_sequence
    - msg_type
    - version
    - msg_length
    argTypes:
    - uint64_t
    - Record_Type
    - Protocol_Version
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: Botan::TLS::Connection_Cipher_State::format_ad
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - Protocol_Version::minor_version
    - get_byte<0>
    - store_be
    - Protocol_Version::major_version
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Connection_Cipher_State::format_ad(uint64_t msg_sequence,\n
      \                                                       Record_Type msg_type,\n
      \                                                       Protocol_Version version,\n
      \                                                       uint16_t msg_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:190,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:190,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:191,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' output'
    - len_field
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: Botan::TLS::append_u16_len
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_EQUAL
    - static_cast<uint16_t>
    - push_back
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: void
    signature: void append_u16_len(secure_vector<uint8_t>& output, size_t len_field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:198,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:201,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:201,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:206,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' output'
    - record_type
    - version
    - record_sequence
    argTypes:
    - secure_vector<uint8_t>
    - Record_Type
    - Protocol_Version
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: Botan::TLS::write_record_header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::is_datagram_protocol
    - Protocol_Version::minor_version
    - get_byte_var
    - clear
    - Protocol_Version::major_version
    - static_cast<uint8_t>
    - push_back
    linkageType: ''
    returnType: void
    signature: "void write_record_header(secure_vector<uint8_t>& output,\n                         Record_Type
      record_type,\n                         Protocol_Version version,\n                         uint64_t
      record_sequence)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:190,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:190,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:191,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' output'
    - len_field
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: Botan::TLS::append_u16_len
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_EQUAL
    - static_cast<uint16_t>
    - push_back
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: void
    signature: void append_u16_len(secure_vector<uint8_t>& output, size_t len_field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:198,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:201,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:201,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:206,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' output'
    - record_type
    - version
    - record_sequence
    argTypes:
    - secure_vector<uint8_t>
    - Record_Type
    - Protocol_Version
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: Botan::TLS::write_record_header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::is_datagram_protocol
    - Protocol_Version::minor_version
    - get_byte_var
    - clear
    - Protocol_Version::major_version
    - static_cast<uint8_t>
    - push_back
    linkageType: ''
    returnType: void
    signature: "void write_record_header(secure_vector<uint8_t>& output,\n                         Record_Type
      record_type,\n                         Protocol_Version version,\n                         uint64_t
      record_sequence)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:220,1
    - Dst: Botan::TLS::write_record_header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:222,1
    - Dst: Botan::TLS::append_u16_len
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:223,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:224,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - ' output'
    - record_type
    - version
    - record_sequence
    - message
    - message_len
    argTypes:
    - secure_vector<uint8_t>
    - Record_Type
    - Protocol_Version
    - uint64_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 225
    functionName: Botan::TLS::write_unencrypted_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::append_u16_len
    - Botan::TLS::write_record_header
    - insert
    - Internal_Error
    - end
    linkageType: ''
    returnType: void
    signature: "void write_unencrypted_record(secure_vector<uint8_t>& output,\n                              Record_Type
      record_type,\n                              Protocol_Version version,\n                              uint64_t
      record_sequence,\n                              const uint8_t* message,\n                              size_t
      message_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::write_record_header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:235,1
    - Dst: aead
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:237,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:238,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:238,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:240,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:242,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:244,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:246,1
    - Dst: Botan::TLS::append_u16_len
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:248,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:250,1
    - Dst: Botan::TLS::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:251,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:254,1
    - Dst: nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:254,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:254,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:258,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:259,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:261,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:262,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:264,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 8
    argNames:
    - ' output'
    - record_type
    - version
    - record_sequence
    - message
    - message_len
    - ' cs'
    - ' rng'
    argTypes:
    - secure_vector<uint8_t>
    - Record_Type
    - Protocol_Version
    - uint64_t
    - uint8_t*
    - size_t
    - Connection_Cipher_State
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 265
    functionName: Botan::TLS::write_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - finish
    - Botan::TLS::write_record_header
    - Botan::TLS::append_u16_len
    - Botan::TLS::nonce_format
    - BOTAN_ASSERT
    - aead
    - static_cast<uint16_t>
    - std::make_pair
    - format_ad
    - set_associated_data
    - nonce_bytes_from_handshake
    - start
    - size
    - output_length
    - nonce_bytes_from_record
    - aead_nonce
    linkageType: ''
    returnType: void
    signature: "void write_record(secure_vector<uint8_t>& output,\n                  Record_Type
      record_type,\n                  Protocol_Version version,\n                  uint64_t
      record_sequence,\n                  const uint8_t* message,\n                  size_t
      message_len,\n                  Connection_Cipher_State& cs,\n                  RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:271,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:277,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:277,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' readbuf'
    - ' input'
    - ' input_size'
    - ' input_consumed'
    - desired
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 283
    functionName: Botan::TLS::fill_buffer_to
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - insert
    - min
    - size
    - end
    linkageType: ''
    returnType: size_t
    signature: "size_t fill_buffer_to(\n   secure_vector<uint8_t>& readbuf, const
      uint8_t*& input, size_t& input_size, size_t& input_consumed, size_t desired)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aead
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:292,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:294,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:295,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:296,1
    - Dst: Botan::TLS::minimum_final_size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:305,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:306,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:309,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:311,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:314,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:316,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - ' output'
    - record_contents
    - record_len
    - record_sequence
    - record_version
    - record_type
    - ' cs'
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - uint64_t
    - Protocol_Version
    - Record_Type
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 318
    functionName: Botan::TLS::decrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - finish
    - static_cast<uint16_t>
    - set_associated_data
    - format_ad
    - TLS_Exception
    - start
    - output_length
    - assign
    - aead
    - Botan::TLS::minimum_final_size
    - nonce_bytes_from_record
    - aead_nonce
    linkageType: ''
    returnType: void
    signature: "void decrypt_record(secure_vector<uint8_t>& output,\n                    uint8_t
      record_contents[],\n                    size_t record_len,\n                    uint64_t
      record_sequence,\n                    Protocol_Version record_version,\n                    Record_Type
      record_type,\n                    Connection_Cipher_State& cs)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:327,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:329,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:330,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:333,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:333,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:356,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:360,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:368,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:370,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:375,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:376,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:379,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:382,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:386,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:389,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:390,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:395,1
    - Dst: Connection_Sequence_Numbers*::next_read_sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:401,1
    - Dst: Connection_Sequence_Numbers*::current_read_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:402,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:411,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:412,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:416,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:418,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:420,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:423,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:426,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:427,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 50
    argCount: 7
    argNames:
    - ' readbuf'
    - input
    - input_len
    - ' consumed'
    - ' recbuf'
    - sequence_numbers
    - ' get_cipherstate'
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - size_t
    - secure_vector<uint8_t>
    - Connection_Sequence_Numbers*
    - get_cipherstate_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 428
    functionName: Botan::TLS::read_tls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - data
    - BOTAN_ASSERT
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - static_cast<Record_Type>
    - clear
    - BOTAN_ASSERT_EQUAL
    - get_cipherstate
    - Protocol_Version::is_datagram_protocol
    - Connection_Sequence_Numbers*::current_read_epoch
    - begin
    - TLS_Exception
    - Connection_Sequence_Numbers*::read_accept
    - Connection_Sequence_Numbers*::next_read_sequence
    - make_uint16
    - static_cast<size_t>
    - size
    - Record_Header
    - assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: Record_Header
    signature: "Record_Header read_tls_record(secure_vector<uint8_t>& readbuf,\n                              const
      uint8_t input[],\n                              size_t input_len,\n                              size_t&
      consumed,\n                              secure_vector<uint8_t>& recbuf,\n                              Connection_Sequence_Numbers*
      sequence_numbers,\n                              const get_cipherstate_fn& get_cipherstate)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:438,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:440,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:441,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:442,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:445,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:445,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:450,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:451,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:452,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:455,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:459,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:460,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:463,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:465,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:466,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:471,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:473,1
    - Dst: Connection_Sequence_Numbers*::already_seen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:476,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:479,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:480,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:486,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:488,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:490,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:495,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:497,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:499,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:501,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:502,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:506,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:509,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:510,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 8
    argNames:
    - ' readbuf'
    - input
    - input_len
    - ' consumed'
    - ' recbuf'
    - sequence_numbers
    - ' get_cipherstate'
    - allow_epoch0_restart
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - size_t
    - secure_vector<uint8_t>
    - Connection_Sequence_Numbers*
    - get_cipherstate_fn
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 511
    functionName: Botan::TLS::read_dtls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::is_datagram_protocol
    - BOTAN_ASSERT
    - Botan::TLS::decrypt_record
    - load_be
    - begin
    - make_uint16
    - static_cast<Record_Type>
    - static_cast<size_t>
    - size
    - BOTAN_ASSERT_EQUAL
    - clear
    - Record_Header
    - Botan::TLS::fill_buffer_to
    - Connection_Sequence_Numbers*::already_seen
    - Connection_Sequence_Numbers*::read_accept
    - assign
    - get_cipherstate
    linkageType: ''
    returnType: Record_Header
    signature: "Record_Header read_dtls_record(secure_vector<uint8_t>& readbuf,\n
      \                              const uint8_t input[],\n                               size_t
      input_len,\n                               size_t& consumed,\n                               secure_vector<uint8_t>&
      recbuf,\n                               Connection_Sequence_Numbers* sequence_numbers,\n
      \                              const get_cipherstate_fn& get_cipherstate,\n
      \                              bool allow_epoch0_restart)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:271,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:277,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:277,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' readbuf'
    - ' input'
    - ' input_size'
    - ' input_consumed'
    - desired
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 283
    functionName: Botan::TLS::fill_buffer_to
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - insert
    - min
    - size
    - end
    linkageType: ''
    returnType: size_t
    signature: "size_t fill_buffer_to(\n   secure_vector<uint8_t>& readbuf, const
      uint8_t*& input, size_t& input_size, size_t& input_consumed, size_t desired)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aead
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:292,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:294,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:295,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:296,1
    - Dst: Botan::TLS::minimum_final_size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:305,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:306,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:309,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:311,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:314,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:316,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - ' output'
    - record_contents
    - record_len
    - record_sequence
    - record_version
    - record_type
    - ' cs'
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - uint64_t
    - Protocol_Version
    - Record_Type
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 318
    functionName: Botan::TLS::decrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - finish
    - static_cast<uint16_t>
    - set_associated_data
    - format_ad
    - TLS_Exception
    - start
    - output_length
    - assign
    - aead
    - Botan::TLS::minimum_final_size
    - nonce_bytes_from_record
    - aead_nonce
    linkageType: ''
    returnType: void
    signature: "void decrypt_record(secure_vector<uint8_t>& output,\n                    uint8_t
      record_contents[],\n                    size_t record_len,\n                    uint64_t
      record_sequence,\n                    Protocol_Version record_version,\n                    Record_Type
      record_type,\n                    Connection_Cipher_State& cs)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:327,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:329,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:330,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:333,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:333,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:356,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:360,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:368,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:370,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:375,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:376,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:379,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:382,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:386,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:389,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:390,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:395,1
    - Dst: Connection_Sequence_Numbers*::next_read_sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:401,1
    - Dst: Connection_Sequence_Numbers*::current_read_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:402,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:411,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:412,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:416,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:418,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:420,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:423,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:426,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:427,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 50
    argCount: 7
    argNames:
    - ' readbuf'
    - input
    - input_len
    - ' consumed'
    - ' recbuf'
    - sequence_numbers
    - ' get_cipherstate'
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - size_t
    - secure_vector<uint8_t>
    - Connection_Sequence_Numbers*
    - get_cipherstate_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 428
    functionName: Botan::TLS::read_tls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - data
    - BOTAN_ASSERT
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - static_cast<Record_Type>
    - clear
    - BOTAN_ASSERT_EQUAL
    - get_cipherstate
    - Protocol_Version::is_datagram_protocol
    - Connection_Sequence_Numbers*::current_read_epoch
    - begin
    - TLS_Exception
    - Connection_Sequence_Numbers*::read_accept
    - Connection_Sequence_Numbers*::next_read_sequence
    - make_uint16
    - static_cast<size_t>
    - size
    - Record_Header
    - assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: Record_Header
    signature: "Record_Header read_tls_record(secure_vector<uint8_t>& readbuf,\n                              const
      uint8_t input[],\n                              size_t input_len,\n                              size_t&
      consumed,\n                              secure_vector<uint8_t>& recbuf,\n                              Connection_Sequence_Numbers*
      sequence_numbers,\n                              const get_cipherstate_fn& get_cipherstate)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:438,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:440,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:441,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:442,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:445,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:445,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:450,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:451,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:452,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:455,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:459,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:460,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:463,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:465,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:466,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:471,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:473,1
    - Dst: Connection_Sequence_Numbers*::already_seen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:476,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:479,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:480,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:486,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:488,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:490,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:495,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:497,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:499,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:501,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:502,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:506,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:509,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:510,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 8
    argNames:
    - ' readbuf'
    - input
    - input_len
    - ' consumed'
    - ' recbuf'
    - sequence_numbers
    - ' get_cipherstate'
    - allow_epoch0_restart
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - size_t
    - secure_vector<uint8_t>
    - Connection_Sequence_Numbers*
    - get_cipherstate_fn
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 511
    functionName: Botan::TLS::read_dtls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::is_datagram_protocol
    - BOTAN_ASSERT
    - Botan::TLS::decrypt_record
    - load_be
    - begin
    - make_uint16
    - static_cast<Record_Type>
    - static_cast<size_t>
    - size
    - BOTAN_ASSERT_EQUAL
    - clear
    - Record_Header
    - Botan::TLS::fill_buffer_to
    - Connection_Sequence_Numbers*::already_seen
    - Connection_Sequence_Numbers*::read_accept
    - assign
    - get_cipherstate
    linkageType: ''
    returnType: Record_Header
    signature: "Record_Header read_dtls_record(secure_vector<uint8_t>& readbuf,\n
      \                              const uint8_t input[],\n                               size_t
      input_len,\n                               size_t& consumed,\n                               secure_vector<uint8_t>&
      recbuf,\n                               Connection_Sequence_Numbers* sequence_numbers,\n
      \                              const get_cipherstate_fn& get_cipherstate,\n
      \                              bool allow_epoch0_restart)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::read_dtls_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:525,1
    - Dst: Botan::TLS::read_tls_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 9
    argNames:
    - is_datagram
    - ' readbuf'
    - input
    - input_len
    - ' consumed'
    - ' recbuf'
    - sequence_numbers
    - ' get_cipherstate'
    - allow_epoch0_restart
    argTypes:
    - bool
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - size_t
    - secure_vector<uint8_t>
    - Connection_Sequence_Numbers*
    - get_cipherstate_fn
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 530
    functionName: Botan::TLS::read_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::read_dtls_record
    - Botan::TLS::read_tls_record
    linkageType: ''
    returnType: Record_Header
    signature: "Record_Header read_record(bool is_datagram,\n                          secure_vector<uint8_t>&
      readbuf,\n                          const uint8_t input[],\n                          size_t
      input_len,\n                          size_t& consumed,\n                          secure_vector<uint8_t>&
      recbuf,\n                          Connection_Sequence_Numbers* sequence_numbers,\n
      \                         const get_cipherstate_fn& get_cipherstate,\n                          bool
      allow_epoch0_restart)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Connection_Cipher_State::~Connection_Cipher_State()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Connection_Cipher_State::~Connection_Cipher_State()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:42,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:43,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:44,1
    - Dst: aead_key
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:46,1
    - Dst: nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:47,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:50,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:50,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:52,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:55,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:55,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:55,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:56,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:56,1
    - Dst: std::make_unique<TLS_CBC_HMAC_AEAD_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:60,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:61,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:62,1
    - Dst: std::make_unique<TLS_CBC_HMAC_AEAD_Decryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:66,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:66,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:67,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:68,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:69,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:75,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:76,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:78,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:80,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:80,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:80,1
    - Dst: std::make_unique<TLS_NULL_HMAC_AEAD_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:83,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:83,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:83,1
    - Dst: std::make_unique<TLS_NULL_HMAC_AEAD_Decryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:85,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:85,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:85,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:88,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:92,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:92,1
    - Dst: set_key
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 6
    argNames:
    - version
    - side
    - our_side
    - ' suite'
    - ' keys'
    - uses_encrypt_then_mac
    argTypes:
    - Protocol_Version
    - Connection_Side
    - bool
    - Ciphersuite
    - Session_Keys
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Connection_Cipher_State::Connection_Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Connection_Cipher_State::nonce_format
    - cipher_keylen
    - std::make_unique<TLS_CBC_HMAC_AEAD_Decryption>
    - mac_algo
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
    - std::move
    - Botan::BlockCipher::create_or_throw
    - mac_keylen
    - std::make_unique<TLS_CBC_HMAC_AEAD_Encryption>
    - BOTAN_ASSERT_NOMSG
    - fmt
    - Botan::MessageAuthenticationCode::create_or_throw
    - std::make_unique<TLS_NULL_HMAC_AEAD_Encryption>
    - BOTAN_UNUSED
    - cipher_algo
    - Internal_Error
    - nonce
    - set_key
    - Botan::AEAD_Mode::create_or_throw
    - size
    - aead_key
    - std::make_unique<TLS_NULL_HMAC_AEAD_Decryption>
    linkageType: ''
    returnType: void
    signature: "void Connection_Cipher_State::Connection_Cipher_State(Protocol_Version
      version,\n                                                 Connection_Side side,\n
      \                                                bool our_side,\n                                                 const
      Ciphersuite& suite,\n                                                 const
      Session_Keys& keys,\n                                                 bool uses_encrypt_then_mac)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:104,1
    - Dst: std::vector::swap
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:106,1
    - Dst: randomize
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:110,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:110,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:110,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:115,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:115,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:116,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:116,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:116,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:120,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:120,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:122,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:122,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:123,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:123,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - seq
    - ' rng'
    argTypes:
    - uint64_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 129
    functionName: Botan::TLS::Connection_Cipher_State::aead_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - data
    - xor_buf
    - copy_mem
    - std::vector::data
    - std::vector::swap
    - size
    - randomize
    - BOTAN_ASSERT_NOMSG
    - Invalid_State
    - store_be
    - empty
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Connection_Cipher_State::aead_nonce(uint64_t seq,
      RandomNumberGenerator& rng)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:137,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:137,1
    - Dst: std::vector::swap
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:139,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:142,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:143,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:145,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:150,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:150,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:151,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:151,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:151,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:155,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:155,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:156,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:157,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:160,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:160,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:161,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:161,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:161,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:166,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - record
    - record_len
    - seq
    argTypes:
    - uint8_t[]
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 167
    functionName: Botan::TLS::Connection_Cipher_State::aead_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - data
    - Decoding_Error
    - xor_buf
    - copy_mem
    - std::vector::data
    - std::vector::swap
    - size
    - store_be
    - BOTAN_ASSERT_NOMSG
    - Invalid_State
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Connection_Cipher_State::aead_nonce(const uint8_t
      record[], size_t record_len, uint64_t seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:175,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:176,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:177,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:178,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:179,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - msg_sequence
    - msg_type
    - version
    - msg_length
    argTypes:
    - uint64_t
    - Record_Type
    - Protocol_Version
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: Botan::TLS::Connection_Cipher_State::format_ad
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - Protocol_Version::minor_version
    - get_byte<0>
    - store_be
    - Protocol_Version::major_version
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Connection_Cipher_State::format_ad(uint64_t msg_sequence,\n
      \                                                       Record_Type msg_type,\n
      \                                                       Protocol_Version version,\n
      \                                                       uint16_t msg_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:190,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:190,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:191,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' output'
    - len_field
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: Botan::TLS::append_u16_len
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_EQUAL
    - static_cast<uint16_t>
    - push_back
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: void
    signature: void append_u16_len(secure_vector<uint8_t>& output, size_t len_field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:198,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:201,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:201,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:206,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' output'
    - record_type
    - version
    - record_sequence
    argTypes:
    - secure_vector<uint8_t>
    - Record_Type
    - Protocol_Version
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: Botan::TLS::write_record_header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - Protocol_Version::is_datagram_protocol
    - Protocol_Version::minor_version
    - get_byte_var
    - clear
    - Protocol_Version::major_version
    - static_cast<uint8_t>
    - push_back
    linkageType: ''
    returnType: void
    signature: "void write_record_header(secure_vector<uint8_t>& output,\n                         Record_Type
      record_type,\n                         Protocol_Version version,\n                         uint64_t
      record_sequence)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:190,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:190,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:191,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' output'
    - len_field
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: Botan::TLS::append_u16_len
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_EQUAL
    - static_cast<uint16_t>
    - push_back
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: void
    signature: void append_u16_len(secure_vector<uint8_t>& output, size_t len_field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:198,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:201,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:201,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:206,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' output'
    - record_type
    - version
    - record_sequence
    argTypes:
    - secure_vector<uint8_t>
    - Record_Type
    - Protocol_Version
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: Botan::TLS::write_record_header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - Protocol_Version::is_datagram_protocol
    - Protocol_Version::minor_version
    - get_byte_var
    - clear
    - Protocol_Version::major_version
    - static_cast<uint8_t>
    - push_back
    linkageType: ''
    returnType: void
    signature: "void write_record_header(secure_vector<uint8_t>& output,\n                         Record_Type
      record_type,\n                         Protocol_Version version,\n                         uint64_t
      record_sequence)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:220,1
    - Dst: Botan::TLS::write_record_header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:222,1
    - Dst: Botan::TLS::append_u16_len
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:223,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:224,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - ' output'
    - record_type
    - version
    - record_sequence
    - message
    - message_len
    argTypes:
    - secure_vector<uint8_t>
    - Record_Type
    - Protocol_Version
    - uint64_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 225
    functionName: Botan::TLS::write_unencrypted_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::append_u16_len
    - Botan::TLS::write_record_header
    - insert
    - Internal_Error
    - end
    linkageType: ''
    returnType: void
    signature: "void write_unencrypted_record(secure_vector<uint8_t>& output,\n                              Record_Type
      record_type,\n                              Protocol_Version version,\n                              uint64_t
      record_sequence,\n                              const uint8_t* message,\n                              size_t
      message_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::write_record_header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:235,1
    - Dst: aead
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:237,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:238,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:238,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:240,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:242,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:244,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:246,1
    - Dst: Botan::TLS::append_u16_len
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:248,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:250,1
    - Dst: Botan::TLS::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:251,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:254,1
    - Dst: nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:254,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:254,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:258,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:259,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:261,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:262,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:264,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 8
    argNames:
    - ' output'
    - record_type
    - version
    - record_sequence
    - message
    - message_len
    - ' cs'
    - ' rng'
    argTypes:
    - secure_vector<uint8_t>
    - Record_Type
    - Protocol_Version
    - uint64_t
    - uint8_t*
    - size_t
    - Connection_Cipher_State
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 265
    functionName: Botan::TLS::write_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - finish
    - Botan::TLS::write_record_header
    - Botan::TLS::append_u16_len
    - Botan::TLS::nonce_format
    - BOTAN_ASSERT
    - aead
    - static_cast<uint16_t>
    - std::make_pair
    - format_ad
    - set_associated_data
    - nonce_bytes_from_handshake
    - start
    - size
    - output_length
    - nonce_bytes_from_record
    - aead_nonce
    linkageType: ''
    returnType: void
    signature: "void write_record(secure_vector<uint8_t>& output,\n                  Record_Type
      record_type,\n                  Protocol_Version version,\n                  uint64_t
      record_sequence,\n                  const uint8_t* message,\n                  size_t
      message_len,\n                  Connection_Cipher_State& cs,\n                  RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:271,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:277,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:277,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' readbuf'
    - ' input'
    - ' input_size'
    - ' input_consumed'
    - desired
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 283
    functionName: Botan::TLS::fill_buffer_to
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 4
    functionsReached:
    - insert
    - min
    - size
    - end
    linkageType: ''
    returnType: size_t
    signature: "size_t fill_buffer_to(\n   secure_vector<uint8_t>& readbuf, const
      uint8_t*& input, size_t& input_size, size_t& input_consumed, size_t desired)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aead
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:292,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:294,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:295,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:296,1
    - Dst: Botan::TLS::minimum_final_size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:305,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:306,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:309,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:311,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:314,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:316,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - ' output'
    - record_contents
    - record_len
    - record_sequence
    - record_version
    - record_type
    - ' cs'
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - uint64_t
    - Protocol_Version
    - Record_Type
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 318
    functionName: Botan::TLS::decrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 4
    functionsReached:
    - finish
    - static_cast<uint16_t>
    - set_associated_data
    - format_ad
    - TLS_Exception
    - start
    - output_length
    - assign
    - aead
    - Botan::TLS::minimum_final_size
    - nonce_bytes_from_record
    - aead_nonce
    linkageType: ''
    returnType: void
    signature: "void decrypt_record(secure_vector<uint8_t>& output,\n                    uint8_t
      record_contents[],\n                    size_t record_len,\n                    uint64_t
      record_sequence,\n                    Protocol_Version record_version,\n                    Record_Type
      record_type,\n                    Connection_Cipher_State& cs)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:327,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:329,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:330,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:333,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:333,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:356,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:360,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:368,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:370,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:375,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:376,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:379,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:382,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:386,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:389,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:390,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:395,1
    - Dst: Connection_Sequence_Numbers*::next_read_sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:401,1
    - Dst: Connection_Sequence_Numbers*::current_read_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:402,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:411,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:412,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:416,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:418,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:420,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:423,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:426,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:427,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 50
    argCount: 7
    argNames:
    - ' readbuf'
    - input
    - input_len
    - ' consumed'
    - ' recbuf'
    - sequence_numbers
    - ' get_cipherstate'
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - size_t
    - secure_vector<uint8_t>
    - Connection_Sequence_Numbers*
    - get_cipherstate_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 428
    functionName: Botan::TLS::read_tls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 1
    functionsReached:
    - std::string
    - data
    - BOTAN_ASSERT
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - static_cast<Record_Type>
    - clear
    - BOTAN_ASSERT_EQUAL
    - get_cipherstate
    - Protocol_Version::is_datagram_protocol
    - Connection_Sequence_Numbers*::current_read_epoch
    - begin
    - TLS_Exception
    - Connection_Sequence_Numbers*::read_accept
    - Connection_Sequence_Numbers*::next_read_sequence
    - make_uint16
    - static_cast<size_t>
    - size
    - Record_Header
    - assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: Record_Header
    signature: "Record_Header read_tls_record(secure_vector<uint8_t>& readbuf,\n                              const
      uint8_t input[],\n                              size_t input_len,\n                              size_t&
      consumed,\n                              secure_vector<uint8_t>& recbuf,\n                              Connection_Sequence_Numbers*
      sequence_numbers,\n                              const get_cipherstate_fn& get_cipherstate)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:438,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:440,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:441,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:442,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:445,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:445,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:450,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:451,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:452,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:455,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:459,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:460,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:463,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:465,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:466,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:471,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:473,1
    - Dst: Connection_Sequence_Numbers*::already_seen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:476,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:479,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:480,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:486,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:488,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:490,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:495,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:497,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:499,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:501,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:502,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:506,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:509,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:510,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 8
    argNames:
    - ' readbuf'
    - input
    - input_len
    - ' consumed'
    - ' recbuf'
    - sequence_numbers
    - ' get_cipherstate'
    - allow_epoch0_restart
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - size_t
    - secure_vector<uint8_t>
    - Connection_Sequence_Numbers*
    - get_cipherstate_fn
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 511
    functionName: Botan::TLS::read_dtls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 1
    functionsReached:
    - Protocol_Version::is_datagram_protocol
    - BOTAN_ASSERT
    - Botan::TLS::decrypt_record
    - load_be
    - begin
    - make_uint16
    - static_cast<Record_Type>
    - static_cast<size_t>
    - size
    - BOTAN_ASSERT_EQUAL
    - clear
    - Record_Header
    - Botan::TLS::fill_buffer_to
    - Connection_Sequence_Numbers*::already_seen
    - Connection_Sequence_Numbers*::read_accept
    - assign
    - get_cipherstate
    linkageType: ''
    returnType: Record_Header
    signature: "Record_Header read_dtls_record(secure_vector<uint8_t>& readbuf,\n
      \                              const uint8_t input[],\n                               size_t
      input_len,\n                               size_t& consumed,\n                               secure_vector<uint8_t>&
      recbuf,\n                               Connection_Sequence_Numbers* sequence_numbers,\n
      \                              const get_cipherstate_fn& get_cipherstate,\n
      \                              bool allow_epoch0_restart)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:271,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:277,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:277,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ' readbuf'
    - ' input'
    - ' input_size'
    - ' input_consumed'
    - desired
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 283
    functionName: Botan::TLS::fill_buffer_to
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 6
    functionsReached:
    - insert
    - min
    - size
    - end
    linkageType: ''
    returnType: size_t
    signature: "size_t fill_buffer_to(\n   secure_vector<uint8_t>& readbuf, const
      uint8_t*& input, size_t& input_size, size_t& input_consumed, size_t desired)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aead
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:292,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:294,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:295,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:296,1
    - Dst: Botan::TLS::minimum_final_size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:305,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:306,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:309,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:311,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:314,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:316,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - ' output'
    - record_contents
    - record_len
    - record_sequence
    - record_version
    - record_type
    - ' cs'
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - uint64_t
    - Protocol_Version
    - Record_Type
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 318
    functionName: Botan::TLS::decrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 6
    functionsReached:
    - finish
    - static_cast<uint16_t>
    - set_associated_data
    - format_ad
    - TLS_Exception
    - start
    - output_length
    - assign
    - aead
    - Botan::TLS::minimum_final_size
    - nonce_bytes_from_record
    - aead_nonce
    linkageType: ''
    returnType: void
    signature: "void decrypt_record(secure_vector<uint8_t>& output,\n                    uint8_t
      record_contents[],\n                    size_t record_len,\n                    uint64_t
      record_sequence,\n                    Protocol_Version record_version,\n                    Record_Type
      record_type,\n                    Connection_Cipher_State& cs)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:327,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:329,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:330,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:333,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:333,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:353,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:356,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:360,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:368,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:370,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:375,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:376,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:379,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:382,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:386,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:389,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:390,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:395,1
    - Dst: Connection_Sequence_Numbers*::next_read_sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:401,1
    - Dst: Connection_Sequence_Numbers*::current_read_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:402,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:411,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:412,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:416,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:418,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:420,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:423,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:426,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:427,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 50
    argCount: 7
    argNames:
    - ' readbuf'
    - input
    - input_len
    - ' consumed'
    - ' recbuf'
    - sequence_numbers
    - ' get_cipherstate'
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - size_t
    - secure_vector<uint8_t>
    - Connection_Sequence_Numbers*
    - get_cipherstate_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 428
    functionName: Botan::TLS::read_tls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 1
    functionsReached:
    - std::string
    - data
    - BOTAN_ASSERT
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - static_cast<Record_Type>
    - clear
    - BOTAN_ASSERT_EQUAL
    - get_cipherstate
    - Protocol_Version::is_datagram_protocol
    - Connection_Sequence_Numbers*::current_read_epoch
    - begin
    - TLS_Exception
    - Connection_Sequence_Numbers*::read_accept
    - Connection_Sequence_Numbers*::next_read_sequence
    - make_uint16
    - static_cast<size_t>
    - size
    - Record_Header
    - assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: Record_Header
    signature: "Record_Header read_tls_record(secure_vector<uint8_t>& readbuf,\n                              const
      uint8_t input[],\n                              size_t input_len,\n                              size_t&
      consumed,\n                              secure_vector<uint8_t>& recbuf,\n                              Connection_Sequence_Numbers*
      sequence_numbers,\n                              const get_cipherstate_fn& get_cipherstate)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:438,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:440,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:441,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:442,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:445,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:445,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:450,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:451,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:452,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:455,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:459,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:460,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:463,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:465,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:466,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:471,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:473,1
    - Dst: Connection_Sequence_Numbers*::already_seen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:476,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:479,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:480,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:485,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:486,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:488,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:490,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:495,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:497,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:499,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:501,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:502,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:506,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:509,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:510,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 8
    argNames:
    - ' readbuf'
    - input
    - input_len
    - ' consumed'
    - ' recbuf'
    - sequence_numbers
    - ' get_cipherstate'
    - allow_epoch0_restart
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - size_t
    - secure_vector<uint8_t>
    - Connection_Sequence_Numbers*
    - get_cipherstate_fn
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 511
    functionName: Botan::TLS::read_dtls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 1
    functionsReached:
    - Protocol_Version::is_datagram_protocol
    - BOTAN_ASSERT
    - Botan::TLS::decrypt_record
    - load_be
    - begin
    - make_uint16
    - static_cast<Record_Type>
    - static_cast<size_t>
    - size
    - BOTAN_ASSERT_EQUAL
    - clear
    - Record_Header
    - Botan::TLS::fill_buffer_to
    - Connection_Sequence_Numbers*::already_seen
    - Connection_Sequence_Numbers*::read_accept
    - assign
    - get_cipherstate
    linkageType: ''
    returnType: Record_Header
    signature: "Record_Header read_dtls_record(secure_vector<uint8_t>& readbuf,\n
      \                              const uint8_t input[],\n                               size_t
      input_len,\n                               size_t& consumed,\n                               secure_vector<uint8_t>&
      recbuf,\n                               Connection_Sequence_Numbers* sequence_numbers,\n
      \                              const get_cipherstate_fn& get_cipherstate,\n
      \                              bool allow_epoch0_restart)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::read_dtls_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:525,1
    - Dst: Botan::TLS::read_tls_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 9
    argNames:
    - is_datagram
    - ' readbuf'
    - input
    - input_len
    - ' consumed'
    - ' recbuf'
    - sequence_numbers
    - ' get_cipherstate'
    - allow_epoch0_restart
    argTypes:
    - bool
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - size_t
    - secure_vector<uint8_t>
    - Connection_Sequence_Numbers*
    - get_cipherstate_fn
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 530
    functionName: Botan::TLS::read_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::read_dtls_record
    - Botan::TLS::read_tls_record
    linkageType: ''
    returnType: Record_Header
    signature: "Record_Header read_record(bool is_datagram,\n                          secure_vector<uint8_t>&
      readbuf,\n                          const uint8_t input[],\n                          size_t
      input_len,\n                          size_t& consumed,\n                          secure_vector<uint8_t>&
      recbuf,\n                          Connection_Sequence_Numbers* sequence_numbers,\n
      \                         const get_cipherstate_fn& get_cipherstate,\n                          bool
      allow_epoch0_restart)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Client_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - Client_Hello_12
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Client_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Settings(const Protocol_Version version, std::string_view hostname
      = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version protocol_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& hostname() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - new_session_id
    - new_session_version
    - ciphersuite
    - offer_session_ticket
    argTypes:
    - Session_ID
    - Protocol_Version
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Settings(Session_ID new_session_id,\n                     Protocol_Version
      new_session_version,\n                     uint16_t ciphersuite,\n                     bool
      offer_session_ticket)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version protocol_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Settings::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Settings::offer_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool offer_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Client_Key_Exchange
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: Botan::TLS::pre_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & pre_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: Botan::TLS::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> & psk_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:209,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:211,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:213,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:215,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:215,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:217,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:219,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:221,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - ' buf'
    - ' state'
    - server_rsa_kex_key
    - ' creds'
    - ' policy'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - Handshake_State
    - Private_Key*
    - Credentials_Manager
    - Policy
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    - Certificate_12
    - cert_chain
    - Botan::TLS::type
    - Botan::TLS::serialize
    - Botan::TLS::count
    linkageType: ''
    returnType: void
    signature: "void Client_Key_Exchange(const std::vector<uint8_t>& buf,\n                          const
      Handshake_State& state,\n                          const Private_Key* server_rsa_kex_key,\n
      \                         Credentials_Manager& creds,\n                          const
      Policy& policy,\n                          RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: Botan::TLS::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12(const Certificate_Request_12&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: Botan::TLS::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12(Certificate_Request_12&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 284
    functionName: Botan::TLS::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Verify_12
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Certificate_Status_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: Botan::TLS::Certificate_Status_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Certificate_Status_12
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Status_12
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: Botan::TLS::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Finished_12
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Handshake_Message
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Client_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - Client_Hello_12
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Client_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Settings(const Protocol_Version version, std::string_view hostname
      = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version protocol_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& hostname() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - new_session_id
    - new_session_version
    - ciphersuite
    - offer_session_ticket
    argTypes:
    - Session_ID
    - Protocol_Version
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Settings(Session_ID new_session_id,\n                     Protocol_Version
      new_session_version,\n                     uint16_t ciphersuite,\n                     bool
      offer_session_ticket)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version protocol_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Settings::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Settings::offer_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool offer_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Client_Key_Exchange
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: Botan::TLS::pre_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & pre_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: Botan::TLS::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> & psk_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:209,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:211,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:213,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:215,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:215,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:217,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:219,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:221,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - ' buf'
    - ' state'
    - server_rsa_kex_key
    - ' creds'
    - ' policy'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - Handshake_State
    - Private_Key*
    - Credentials_Manager
    - Policy
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    - Certificate_12
    - cert_chain
    - Botan::TLS::type
    - Botan::TLS::serialize
    - Botan::TLS::count
    linkageType: ''
    returnType: void
    signature: "void Client_Key_Exchange(const std::vector<uint8_t>& buf,\n                          const
      Handshake_State& state,\n                          const Private_Key* server_rsa_kex_key,\n
      \                         Credentials_Manager& creds,\n                          const
      Policy& policy,\n                          RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: Botan::TLS::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12(const Certificate_Request_12&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: Botan::TLS::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12(Certificate_Request_12&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 284
    functionName: Botan::TLS::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Verify_12
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Certificate_Status_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: Botan::TLS::Certificate_Status_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Certificate_Status_12
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Status_12
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: Botan::TLS::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Finished_12
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Handshake_Message
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: Botan::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Key_Exchange
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: Botan::params
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 337
    functionName: Botan::shared_group
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Group_Params>
    signature: std::optional<Group_Params> & shared_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Server_Key_Exchange
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: Botan::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Key_Exchange(const Server_Key_Exchange& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Server_Key_Exchange
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 354
    functionName: Botan::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Key_Exchange(Server_Key_Exchange&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Client_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - Client_Hello_12
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Client_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Settings(const Protocol_Version version, std::string_view hostname
      = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version protocol_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& hostname() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - new_session_id
    - new_session_version
    - ciphersuite
    - offer_session_ticket
    argTypes:
    - Session_ID
    - Protocol_Version
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Settings(Session_ID new_session_id,\n                     Protocol_Version
      new_session_version,\n                     uint16_t ciphersuite,\n                     bool
      offer_session_ticket)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version protocol_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Settings::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Settings::offer_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool offer_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Client_Key_Exchange
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: Botan::TLS::pre_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & pre_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: Botan::TLS::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> & psk_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:209,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:211,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:213,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:215,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:215,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:217,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:219,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:221,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - ' buf'
    - ' state'
    - server_rsa_kex_key
    - ' creds'
    - ' policy'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - Handshake_State
    - Private_Key*
    - Credentials_Manager
    - Policy
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    - Certificate_12
    - cert_chain
    - Botan::TLS::type
    - Botan::TLS::serialize
    - Botan::TLS::count
    linkageType: ''
    returnType: void
    signature: "void Client_Key_Exchange(const std::vector<uint8_t>& buf,\n                          const
      Handshake_State& state,\n                          const Private_Key* server_rsa_kex_key,\n
      \                         Credentials_Manager& creds,\n                          const
      Policy& policy,\n                          RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: Botan::TLS::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12(const Certificate_Request_12&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: Botan::TLS::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12(Certificate_Request_12&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 284
    functionName: Botan::TLS::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Verify_12
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Certificate_Status_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: Botan::TLS::Certificate_Status_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 3
    functionsReached:
    - Botan::TLS::Certificate_Status_12
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Status_12
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: Botan::TLS::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Finished_12
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Handshake_Message
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Client_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - Client_Hello_12
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Client_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Settings(const Protocol_Version version, std::string_view hostname
      = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version protocol_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& hostname() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Server_Hello_12_Shim
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12_Shim
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - new_session_id
    - new_session_version
    - ciphersuite
    - offer_session_ticket
    argTypes:
    - Session_ID
    - Protocol_Version
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Settings(Session_ID new_session_id,\n                     Protocol_Version
      new_session_version,\n                     uint16_t ciphersuite,\n                     bool
      offer_session_ticket)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_ID
    signature: Session_ID & session_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version protocol_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Settings::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ciphersuite() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Settings::offer_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool offer_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Client_Key_Exchange
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: Botan::TLS::pre_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & pre_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: Botan::TLS::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> & psk_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:209,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:211,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:213,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:215,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:215,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:217,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:219,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:221,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - ' buf'
    - ' state'
    - server_rsa_kex_key
    - ' creds'
    - ' policy'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - Handshake_State
    - Private_Key*
    - Credentials_Manager
    - Policy
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    - Certificate_12
    - cert_chain
    - Botan::TLS::type
    - Botan::TLS::serialize
    - Botan::TLS::count
    linkageType: ''
    returnType: void
    signature: "void Client_Key_Exchange(const std::vector<uint8_t>& buf,\n                          const
      Handshake_State& state,\n                          const Private_Key* server_rsa_kex_key,\n
      \                         Credentials_Manager& creds,\n                          const
      Policy& policy,\n                          RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: Botan::TLS::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12(const Certificate_Request_12&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: Botan::TLS::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12(Certificate_Request_12&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 284
    functionName: Botan::TLS::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Verify_12
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Certificate_Status_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: Botan::TLS::Certificate_Status_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::Certificate_Status_12
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Status_12
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: Botan::TLS::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Finished_12
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Handshake_Message
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: Botan::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Key_Exchange
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: Botan::params
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 337
    functionName: Botan::shared_group
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Group_Params>
    signature: std::optional<Group_Params> & shared_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Server_Key_Exchange
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: Botan::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Key_Exchange(const Server_Key_Exchange& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Server_Key_Exchange
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 354
    functionName: Botan::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Key_Exchange(Server_Key_Exchange&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: Server_Hello_Done
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_Done
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:389,1
    - Dst: ticket_lifetime_hint
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:391,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:393,1
    - Dst: New_Session_Ticket_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:395,1
    - Dst: New_Session_Ticket_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:400,1
    - Dst: New_Session_Ticket_12
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:402,1
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 416
    functionName: Server_Hello_Done
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 0
    functionsReached:
    - ticket
    - ticket_lifetime_hint
    - serialize
    - type
    - New_Session_Ticket_12
    linkageType: ''
    returnType: void
    signature: void Server_Hello_Done(const std::vector<uint8_t>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_messages_12.h:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 418
    functionName: serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_messages_12.h
    functionUses: 97
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Certificate_12::~Certificate_12()
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_12::~Certificate_12()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:29,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' io'
    - ' hash'
    - ' cert_list'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - std::vector<X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Certificate_12::Certificate_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - update
    - send
    linkageType: ''
    returnType: void
    signature: void Certificate_12::Certificate_12(Handshake_IO& io, Handshake_Hash&
      hash, const std::vector<X509_Certificate>& cert_list)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:36,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:37,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:40,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:42,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:43,1
    - Dst: maximum_certificate_chain_size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:46,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:48,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:51,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:53,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:53,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:55,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:58,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:61,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:65,1
    - Dst: X509_Certificate
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:65,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:77,1
    - Dst: x509_version
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:77,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:78,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 2
    argNames:
    - ' buf'
    - ' policy'
    argTypes:
    - std::vector<uint8_t>
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Certificate_12::Certificate_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - data
    - Decoding_Error
    - X509_Certificate
    - TLS_Exception
    - size
    - empty
    - x509_version
    - maximum_certificate_chain_size
    - push_back
    - make_uint32
    linkageType: ''
    returnType: void
    signature: void Certificate_12::Certificate_12(const std::vector<uint8_t>& buf,
      const Policy& policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_encode
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:89,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:90,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:92,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:92,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:92,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:97,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:99,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: Botan::TLS::Certificate_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - auto::size
    - std::vector::push_back
    - get_byte_var
    - BER_encode
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_12::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: Botan::TLS::Certificate_12::count
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Certificate_12::count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Certificate_12::~Certificate_12()
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_12::~Certificate_12()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:29,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' io'
    - ' hash'
    - ' cert_list'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - std::vector<X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Certificate_12::Certificate_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - update
    - send
    linkageType: ''
    returnType: void
    signature: void Certificate_12::Certificate_12(Handshake_IO& io, Handshake_Hash&
      hash, const std::vector<X509_Certificate>& cert_list)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:36,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:37,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:40,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:42,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:43,1
    - Dst: maximum_certificate_chain_size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:46,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:48,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:51,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:53,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:53,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:55,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:58,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:61,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:65,1
    - Dst: X509_Certificate
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:65,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:77,1
    - Dst: x509_version
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:77,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:78,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 2
    argNames:
    - ' buf'
    - ' policy'
    argTypes:
    - std::vector<uint8_t>
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Certificate_12::Certificate_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - data
    - Decoding_Error
    - X509_Certificate
    - TLS_Exception
    - size
    - empty
    - x509_version
    - maximum_certificate_chain_size
    - push_back
    - make_uint32
    linkageType: ''
    returnType: void
    signature: void Certificate_12::Certificate_12(const std::vector<uint8_t>& buf,
      const Policy& policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_encode
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:89,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:90,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:92,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:92,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:92,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:97,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:99,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: Botan::TLS::Certificate_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - auto::size
    - std::vector::push_back
    - get_byte_var
    - BER_encode
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_12::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: Botan::TLS::Certificate_12::count
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Certificate_12::count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: '& client_aead_key() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & client_aead_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& server_aead_key() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & server_aead_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& client_nonce() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & client_nonce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& server_nonce() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & server_nonce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& master_secret() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client_aead_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.h:49,1
    - Dst: server_aead_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: '& aead_key(Connection_Side side) const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached:
    - client_aead_key
    - server_aead_key
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & aead_key(Connection_Side side) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.h:53,1
    - Dst: server_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: '& nonce(Connection_Side side) const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached:
    - client_nonce
    - server_nonce
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & nonce(Connection_Side side) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Session_Keys::Session_Keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Keys()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: '& client_aead_key() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & client_aead_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& server_aead_key() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & server_aead_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& client_nonce() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & client_nonce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& server_nonce() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & server_nonce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& master_secret() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client_aead_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.h:49,1
    - Dst: server_aead_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: '& aead_key(Connection_Side side) const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached:
    - client_aead_key
    - server_aead_key
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & aead_key(Connection_Side side) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.h:53,1
    - Dst: server_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: '& nonce(Connection_Side side) const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached:
    - client_nonce
    - server_nonce
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & nonce(Connection_Side side) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Session_Keys::Session_Keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Keys()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:22,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::Handshake_Message::type_string
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - handshake_type_to_string
    - type
    linkageType: ''
    returnType: std::string
    signature: std::string Handshake_Message::type_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Handshake_State::~Handshake_State()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State::~Handshake_State()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:31,1
    - Dst: initial_record_version
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: Botan::TLS::Handshake_State::Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - initial_record_version
    linkageType: ''
    returnType: void
    signature: void Handshake_State::Handshake_State(std::unique_ptr<Handshake_IO>
      io, Callbacks& cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_inspect_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::TLS::Handshake_State::note_message
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - tls_inspect_handshake_msg
    linkageType: ''
    returnType: void
    signature: void Handshake_State::note_message(const Handshake_Message& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:38,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:40,1
    - Dst: update_hello_cookie
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:41,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:42,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:43,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:43,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' hello_verify'
    argTypes:
    - Hello_Verify_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Handshake_State::hello_verify_request
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - hash
    - handshake_io
    - BOTAN_ASSERT_NONNULL
    - update_hello_cookie
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::hello_verify_request(const Hello_Verify_Request&
      hello_verify)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:50,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:51,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:53,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::unique_ptr<Client_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Handshake_State::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - hash
    - reset
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::client_hello(std::unique_ptr<Client_Hello_12>
      client_hello)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:60,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:61,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:61,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - std::unique_ptr<Server_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Handshake_State::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Ciphersuite::by_id
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_hello(std::unique_ptr<Server_Hello_12>
      server_hello)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:66,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:67,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_certs
    argTypes:
    - std::unique_ptr<Certificate_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Handshake_State::server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_certs(std::unique_ptr<Certificate_12>
      server_certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:72,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:73,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_cert_status
    argTypes:
    - std::unique_ptr<Certificate_Status>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: Botan::TLS::Handshake_State::server_cert_status
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_cert_status(std::unique_ptr<Certificate_Status>
      server_cert_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:78,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:79,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_kex
    argTypes:
    - std::unique_ptr<Server_Key_Exchange>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: Botan::TLS::Handshake_State::server_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_kex(std::unique_ptr<Server_Key_Exchange>
      server_kex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:84,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:85,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cert_req
    argTypes:
    - std::unique_ptr<Certificate_Request_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Handshake_State::cert_req
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::cert_req(std::unique_ptr<Certificate_Request_12>
      cert_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:90,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:91,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_hello_done
    argTypes:
    - std::unique_ptr<Server_Hello_Done>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: Botan::TLS::Handshake_State::server_hello_done
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_hello_done(std::unique_ptr<Server_Hello_Done>
      server_hello_done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:96,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:97,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_certs
    argTypes:
    - std::unique_ptr<Certificate_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: Botan::TLS::Handshake_State::client_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::client_certs(std::unique_ptr<Certificate_12>
      client_certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:102,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:103,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_kex
    argTypes:
    - std::unique_ptr<Client_Key_Exchange>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: Botan::TLS::Handshake_State::client_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::client_kex(std::unique_ptr<Client_Key_Exchange>
      client_kex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:108,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:109,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_verify
    argTypes:
    - std::unique_ptr<Certificate_Verify_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Handshake_State::client_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::client_verify(std::unique_ptr<Certificate_Verify_12>
      client_verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:114,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:115,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_verify
    argTypes:
    - std::unique_ptr<Certificate_Verify_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: Botan::TLS::Handshake_State::server_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_verify(std::unique_ptr<Certificate_Verify_12>
      server_verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:121,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - new_session_ticket
    argTypes:
    - std::unique_ptr<New_Session_Ticket_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: Botan::TLS::Handshake_State::new_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::new_session_ticket(std::unique_ptr<New_Session_Ticket_12>
      new_session_ticket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:126,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:127,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_finished
    argTypes:
    - std::unique_ptr<Finished_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Botan::TLS::Handshake_State::server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_finished(std::unique_ptr<Finished_12>
      server_finished)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:132,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:133,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_finished
    argTypes:
    - std::unique_ptr<Finished_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: Botan::TLS::Handshake_State::client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::client_finished(std::unique_ptr<Finished_12>
      client_finished)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:138,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:139,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: '& Handshake_State::ciphersuite() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    - has_value
    - value
    linkageType: ''
    returnType: Ciphersuite
    signature: Ciphersuite & Handshake_State::ciphersuite() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Handshake_State::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Handshake_State::psk_identity
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Handshake_State::psk_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' version'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Handshake_State::set_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State::set_version(const Protocol_Version& version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:156,1
    - Dst: Botan::TLS::Handshake_State::client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:156,1
    - Dst: Session_Keys
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:157,1
    - Dst: Botan::TLS::Handshake_State::client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: Botan::TLS::Handshake_State::compute_session_keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Handshake_State::client_kex
    - Session_Keys
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void Handshake_State::compute_session_keys()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Keys
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' resume_master_secret'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: Botan::TLS::Handshake_State::compute_session_keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Session_Keys
    linkageType: ''
    returnType: void
    signature: void Handshake_State::compute_session_keys(const secure_vector<uint8_t>&
      resume_master_secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::confirm_transition_to
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: Botan::TLS::Handshake_State::confirm_transition_to
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Handshake_State::confirm_transition_to
    linkageType: ''
    returnType: void
    signature: void Handshake_State::confirm_transition_to(Handshake_Type handshake_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Botan::TLS::Handshake_State::set_expected_next
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Handshake_State::set_expected_next
    linkageType: ''
    returnType: void
    signature: void Handshake_State::set_expected_next(Handshake_Type handshake_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: Botan::TLS::Handshake_State::received_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Handshake_State::received_handshake_msg
    linkageType: ''
    returnType: bool
    signature: bool Handshake_State::received_handshake_msg(Handshake_Type handshake_msg)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_next_record
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:177,1
    - Dst: change_cipher_spec_expected
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: Botan::TLS::Handshake_State::get_next_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - get_next_record
    - change_cipher_spec_expected
    linkageType: ''
    returnType: std::pair<Handshake_Type, std::vector<uint8_t>>
    signature: std::pair<Handshake_Type, std::vector<uint8_t>> Handshake_State::get_next_handshake_msg()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:181,1
    - Dst: auto*::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:182,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:183,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:188,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:188,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: Botan::TLS::Handshake_State::session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Handshake_State::new_session_ticket
    - Botan::TLS::Handshake_State::client_hello
    - BOTAN_ASSERT_NONNULL
    - auto*::ticket
    - empty
    linkageType: ''
    returnType: Session_Ticket
    signature: Session_Ticket Handshake_State::session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls12_protocol_specific_kdf
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:193,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: Botan::TLS::Handshake_State::protocol_specific_prf
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - tls12_protocol_specific_kdf
    - ciphersuite
    linkageType: ''
    returnType: std::unique_ptr<KDF>
    signature: std::unique_ptr<KDF> Handshake_State::protocol_specific_prf() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:200,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:202,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:205,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:205,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:207,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:207,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:211,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:211,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:214,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:218,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:219,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:219,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:219,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:219,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:226,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:228,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:229,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:232,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:233,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:236,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:236,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:236,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - ' key'
    - ' chosen_scheme'
    - for_client_auth
    - ' policy'
    argTypes:
    - Private_Key
    - Signature_Scheme
    - bool
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 237
    functionName: Botan::TLS::Handshake_State::choose_sig_format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - allowed_signature_hash
    - Invalid_Argument
    - std::find
    - algo_name
    - std::vector::end
    - std::make_pair
    - padding_string
    - Botan::TLS::Handshake_State::cert_req
    - Botan::TLS::Handshake_State::client_hello
    - TLS_Exception
    - BOTAN_ASSERT_NONNULL
    - allowed_signature_schemes
    - is_available
    - algorithm_name
    - std::vector::begin
    - format
    - hash_function_name
    linkageType: ''
    returnType: std::pair<std::string, Signature_Format>
    signature: "std::pair<std::string, Signature_Format> Handshake_State::choose_sig_format(const
      Private_Key& key,\n                                                                            Signature_Scheme&
      chosen_scheme,\n                                                                            bool
      for_client_auth,\n                                                                            const
      Policy& policy) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' schemes'
    - key_type
    - hash_type
    argTypes:
    - std::vector<Signature_Scheme>
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: Botan::TLS::supported_algos_include
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - algorithm_name
    - is_available
    - hash_function_name
    linkageType: ''
    returnType: bool
    signature: "bool supported_algos_include(const std::vector<Signature_Scheme>&
      schemes,\n                             std::string_view key_type,\n                             std::string_view
      hash_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' schemes'
    - key_type
    - hash_type
    argTypes:
    - std::vector<Signature_Scheme>
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: Botan::TLS::supported_algos_include
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - algorithm_name
    - is_available
    - hash_function_name
    linkageType: ''
    returnType: bool
    signature: "bool supported_algos_include(const std::vector<Signature_Scheme>&
      schemes,\n                             std::string_view key_type,\n                             std::string_view
      hash_type)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:261,1
    - Dst: allowed_signature_method
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:263,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:264,1
    - Dst: Signature_Scheme::is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:267,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:268,1
    - Dst: Signature_Scheme::algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:271,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:272,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:275,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:276,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:285,1
    - Dst: Signature_Scheme::hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:287,1
    - Dst: Signature_Scheme::is_compatible_with
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:289,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:290,1
    - Dst: supported_algos_include
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:293,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:294,1
    - Dst: Signature_Scheme::format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:298,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:299,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:302,1
    - Dst: Signature_Scheme::padding_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:302,1
    - Dst: Signature_Scheme::format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:302,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 5
    argNames:
    - ' key'
    - scheme
    - ' offered_schemes'
    - for_client_auth
    - ' policy'
    argTypes:
    - Public_Key
    - Signature_Scheme
    - std::vector<Signature_Scheme>
    - bool
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 303
    functionName: Botan::TLS::Handshake_State::parse_sig_format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Signature_Scheme::is_available
    - Signature_Scheme::algorithm_name
    - Invalid_Argument
    - Signature_Scheme::padding_string
    - algo_name
    - Decoding_Error
    - std::make_pair
    - allowed_signature_method
    - Botan::TLS::Handshake_State::cert_req
    - TLS_Exception
    - Signature_Scheme::hash_function_name
    - Signature_Scheme::format
    - Signature_Scheme::is_compatible_with
    - supported_algos_include
    linkageType: ''
    returnType: std::pair<std::string, Signature_Format>
    signature: "std::pair<std::string, Signature_Format> Handshake_State::parse_sig_format(\n
      \  const Public_Key& key,\n   Signature_Scheme scheme,\n   const std::vector<Signature_Scheme>&
      offered_schemes,\n   bool for_client_auth,\n   const Policy& policy) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:22,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::Handshake_Message::type_string
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - handshake_type_to_string
    - type
    linkageType: ''
    returnType: std::string
    signature: std::string Handshake_Message::type_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Handshake_State::~Handshake_State()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State::~Handshake_State()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:31,1
    - Dst: initial_record_version
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: Botan::TLS::Handshake_State::Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - initial_record_version
    linkageType: ''
    returnType: void
    signature: void Handshake_State::Handshake_State(std::unique_ptr<Handshake_IO>
      io, Callbacks& cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_inspect_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::TLS::Handshake_State::note_message
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 15
    functionsReached:
    - tls_inspect_handshake_msg
    linkageType: ''
    returnType: void
    signature: void Handshake_State::note_message(const Handshake_Message& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:38,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:40,1
    - Dst: update_hello_cookie
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:41,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:42,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:43,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:43,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' hello_verify'
    argTypes:
    - Hello_Verify_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Handshake_State::hello_verify_request
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - hash
    - handshake_io
    - BOTAN_ASSERT_NONNULL
    - update_hello_cookie
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::hello_verify_request(const Hello_Verify_Request&
      hello_verify)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:50,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:51,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:53,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::unique_ptr<Client_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Handshake_State::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - hash
    - reset
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::client_hello(std::unique_ptr<Client_Hello_12>
      client_hello)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:60,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:61,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:61,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - std::unique_ptr<Server_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Handshake_State::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Ciphersuite::by_id
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_hello(std::unique_ptr<Server_Hello_12>
      server_hello)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:66,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:67,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_certs
    argTypes:
    - std::unique_ptr<Certificate_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Handshake_State::server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_certs(std::unique_ptr<Certificate_12>
      server_certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:72,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:73,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_cert_status
    argTypes:
    - std::unique_ptr<Certificate_Status>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: Botan::TLS::Handshake_State::server_cert_status
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_cert_status(std::unique_ptr<Certificate_Status>
      server_cert_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:78,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:79,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_kex
    argTypes:
    - std::unique_ptr<Server_Key_Exchange>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: Botan::TLS::Handshake_State::server_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_kex(std::unique_ptr<Server_Key_Exchange>
      server_kex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:84,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:85,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cert_req
    argTypes:
    - std::unique_ptr<Certificate_Request_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Handshake_State::cert_req
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::cert_req(std::unique_ptr<Certificate_Request_12>
      cert_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:90,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:91,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_hello_done
    argTypes:
    - std::unique_ptr<Server_Hello_Done>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: Botan::TLS::Handshake_State::server_hello_done
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_hello_done(std::unique_ptr<Server_Hello_Done>
      server_hello_done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:96,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:97,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_certs
    argTypes:
    - std::unique_ptr<Certificate_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: Botan::TLS::Handshake_State::client_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::client_certs(std::unique_ptr<Certificate_12>
      client_certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:102,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:103,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_kex
    argTypes:
    - std::unique_ptr<Client_Key_Exchange>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: Botan::TLS::Handshake_State::client_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::client_kex(std::unique_ptr<Client_Key_Exchange>
      client_kex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:108,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:109,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_verify
    argTypes:
    - std::unique_ptr<Certificate_Verify_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Handshake_State::client_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::client_verify(std::unique_ptr<Certificate_Verify_12>
      client_verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:114,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:115,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_verify
    argTypes:
    - std::unique_ptr<Certificate_Verify_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: Botan::TLS::Handshake_State::server_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_verify(std::unique_ptr<Certificate_Verify_12>
      server_verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:121,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - new_session_ticket
    argTypes:
    - std::unique_ptr<New_Session_Ticket_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: Botan::TLS::Handshake_State::new_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::new_session_ticket(std::unique_ptr<New_Session_Ticket_12>
      new_session_ticket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:126,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:127,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_finished
    argTypes:
    - std::unique_ptr<Finished_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Botan::TLS::Handshake_State::server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::server_finished(std::unique_ptr<Finished_12>
      server_finished)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:132,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:133,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_finished
    argTypes:
    - std::unique_ptr<Finished_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: Botan::TLS::Handshake_State::client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Handshake_State::note_message
    linkageType: ''
    returnType: void
    signature: void Handshake_State::client_finished(std::unique_ptr<Finished_12>
      client_finished)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:138,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:139,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: '& Handshake_State::ciphersuite() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    - has_value
    - value
    linkageType: ''
    returnType: Ciphersuite
    signature: Ciphersuite & Handshake_State::ciphersuite() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Handshake_State::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Handshake_State::psk_identity
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Handshake_State::psk_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' version'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Handshake_State::set_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State::set_version(const Protocol_Version& version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:156,1
    - Dst: Botan::TLS::Handshake_State::client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:156,1
    - Dst: Session_Keys
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:157,1
    - Dst: Botan::TLS::Handshake_State::client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: Botan::TLS::Handshake_State::compute_session_keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Handshake_State::client_kex
    - Session_Keys
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void Handshake_State::compute_session_keys()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Keys
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' resume_master_secret'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: Botan::TLS::Handshake_State::compute_session_keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Session_Keys
    linkageType: ''
    returnType: void
    signature: void Handshake_State::compute_session_keys(const secure_vector<uint8_t>&
      resume_master_secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::confirm_transition_to
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: Botan::TLS::Handshake_State::confirm_transition_to
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Handshake_State::confirm_transition_to
    linkageType: ''
    returnType: void
    signature: void Handshake_State::confirm_transition_to(Handshake_Type handshake_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Botan::TLS::Handshake_State::set_expected_next
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Handshake_State::set_expected_next
    linkageType: ''
    returnType: void
    signature: void Handshake_State::set_expected_next(Handshake_Type handshake_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: Botan::TLS::Handshake_State::received_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Handshake_State::received_handshake_msg
    linkageType: ''
    returnType: bool
    signature: bool Handshake_State::received_handshake_msg(Handshake_Type handshake_msg)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_next_record
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:177,1
    - Dst: change_cipher_spec_expected
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: Botan::TLS::Handshake_State::get_next_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - get_next_record
    - change_cipher_spec_expected
    linkageType: ''
    returnType: std::pair<Handshake_Type, std::vector<uint8_t>>
    signature: std::pair<Handshake_Type, std::vector<uint8_t>> Handshake_State::get_next_handshake_msg()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_State::new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:181,1
    - Dst: auto*::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:182,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:183,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:188,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:188,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: Botan::TLS::Handshake_State::session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Handshake_State::new_session_ticket
    - Botan::TLS::Handshake_State::client_hello
    - BOTAN_ASSERT_NONNULL
    - auto*::ticket
    - empty
    linkageType: ''
    returnType: Session_Ticket
    signature: Session_Ticket Handshake_State::session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls12_protocol_specific_kdf
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:193,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: Botan::TLS::Handshake_State::protocol_specific_prf
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - tls12_protocol_specific_kdf
    - ciphersuite
    linkageType: ''
    returnType: std::unique_ptr<KDF>
    signature: std::unique_ptr<KDF> Handshake_State::protocol_specific_prf() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:200,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:202,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:205,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:205,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:207,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:207,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:211,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:211,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:214,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:218,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:219,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:219,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:219,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:219,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:226,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:228,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:229,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:232,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:233,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:236,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:236,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:236,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - ' key'
    - ' chosen_scheme'
    - for_client_auth
    - ' policy'
    argTypes:
    - Private_Key
    - Signature_Scheme
    - bool
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 237
    functionName: Botan::TLS::Handshake_State::choose_sig_format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - allowed_signature_hash
    - Invalid_Argument
    - std::find
    - algo_name
    - std::vector::end
    - std::make_pair
    - padding_string
    - Botan::TLS::Handshake_State::cert_req
    - Botan::TLS::Handshake_State::client_hello
    - TLS_Exception
    - BOTAN_ASSERT_NONNULL
    - allowed_signature_schemes
    - is_available
    - algorithm_name
    - std::vector::begin
    - format
    - hash_function_name
    linkageType: ''
    returnType: std::pair<std::string, Signature_Format>
    signature: "std::pair<std::string, Signature_Format> Handshake_State::choose_sig_format(const
      Private_Key& key,\n                                                                            Signature_Scheme&
      chosen_scheme,\n                                                                            bool
      for_client_auth,\n                                                                            const
      Policy& policy) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' schemes'
    - key_type
    - hash_type
    argTypes:
    - std::vector<Signature_Scheme>
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: Botan::TLS::supported_algos_include
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - algorithm_name
    - is_available
    - hash_function_name
    linkageType: ''
    returnType: bool
    signature: "bool supported_algos_include(const std::vector<Signature_Scheme>&
      schemes,\n                             std::string_view key_type,\n                             std::string_view
      hash_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ' schemes'
    - key_type
    - hash_type
    argTypes:
    - std::vector<Signature_Scheme>
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: Botan::TLS::supported_algos_include
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - algorithm_name
    - is_available
    - hash_function_name
    linkageType: ''
    returnType: bool
    signature: "bool supported_algos_include(const std::vector<Signature_Scheme>&
      schemes,\n                             std::string_view key_type,\n                             std::string_view
      hash_type)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:261,1
    - Dst: allowed_signature_method
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:263,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:264,1
    - Dst: Signature_Scheme::is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:267,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:268,1
    - Dst: Signature_Scheme::algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:271,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:272,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:275,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:276,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:285,1
    - Dst: Signature_Scheme::hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:287,1
    - Dst: Signature_Scheme::is_compatible_with
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:289,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:290,1
    - Dst: supported_algos_include
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:293,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:294,1
    - Dst: Signature_Scheme::format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:298,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:299,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:302,1
    - Dst: Signature_Scheme::padding_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:302,1
    - Dst: Signature_Scheme::format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:302,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 5
    argNames:
    - ' key'
    - scheme
    - ' offered_schemes'
    - for_client_auth
    - ' policy'
    argTypes:
    - Public_Key
    - Signature_Scheme
    - std::vector<Signature_Scheme>
    - bool
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 303
    functionName: Botan::TLS::Handshake_State::parse_sig_format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Signature_Scheme::is_available
    - Signature_Scheme::algorithm_name
    - Invalid_Argument
    - Signature_Scheme::padding_string
    - algo_name
    - Decoding_Error
    - std::make_pair
    - allowed_signature_method
    - Botan::TLS::Handshake_State::cert_req
    - TLS_Exception
    - Signature_Scheme::hash_function_name
    - Signature_Scheme::format
    - Signature_Scheme::is_compatible_with
    - supported_algos_include
    linkageType: ''
    returnType: std::pair<std::string, Signature_Format>
    signature: "std::pair<std::string, Signature_Format> Handshake_State::parse_sig_format(\n
      \  const Public_Key& key,\n   Signature_Scheme scheme,\n   const std::vector<Signature_Scheme>&
      offered_schemes,\n   bool for_client_auth,\n   const Policy& policy) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: ~Connection_Sequence_Numbers()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Connection_Sequence_Numbers()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Stream_Sequence_Numbers::Stream_Sequence_Numbers
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Stream_Sequence_Numbers()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Stream_Sequence_Numbers::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: Botan::TLS::Stream_Sequence_Numbers::new_read_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void new_read_cipher_state() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Stream_Sequence_Numbers::new_write_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void new_write_cipher_state() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Stream_Sequence_Numbers::current_read_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t current_read_epoch() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Stream_Sequence_Numbers::current_write_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t current_write_epoch() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Stream_Sequence_Numbers::next_write_sequence
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t next_write_sequence(uint16_t /*epoch*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Stream_Sequence_Numbers::next_read_sequence
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t next_read_sequence() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Stream_Sequence_Numbers::already_seen
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool already_seen(uint64_t /*seq*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::TLS::Stream_Sequence_Numbers::read_accept
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void read_accept(uint64_t /*seq*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Datagram_Sequence_Numbers::reset
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Datagram_Sequence_Numbers::Datagram_Sequence_Numbers
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Datagram_Sequence_Numbers::reset
    linkageType: ''
    returnType: void
    signature: void Datagram_Sequence_Numbers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Datagram_Sequence_Numbers::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 1
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::TLS::Datagram_Sequence_Numbers::new_read_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void new_read_cipher_state() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Datagram_Sequence_Numbers::new_write_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void new_write_cipher_state() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Datagram_Sequence_Numbers::current_read_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t current_read_epoch() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Datagram_Sequence_Numbers::current_write_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t current_write_epoch() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:101,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:102,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:102,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Datagram_Sequence_Numbers::next_write_sequence
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - static_cast<uint64_t>
    - end
    - find
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t next_write_sequence(uint16_t epoch) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Datagram_Sequence_Numbers::next_read_sequence
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t next_read_sequence() override
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sequence
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: Botan::TLS::Datagram_Sequence_Numbers::already_seen
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool already_seen(uint64_t sequence) const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - sequence
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 151
    functionName: Botan::TLS::Datagram_Sequence_Numbers::read_accept
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void read_accept(uint64_t sequence) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: ~Connection_Sequence_Numbers()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Connection_Sequence_Numbers()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Stream_Sequence_Numbers::Stream_Sequence_Numbers
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Stream_Sequence_Numbers()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Stream_Sequence_Numbers::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: Botan::TLS::Stream_Sequence_Numbers::new_read_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void new_read_cipher_state() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Stream_Sequence_Numbers::new_write_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void new_write_cipher_state() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Stream_Sequence_Numbers::current_read_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t current_read_epoch() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Stream_Sequence_Numbers::current_write_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t current_write_epoch() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Stream_Sequence_Numbers::next_write_sequence
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t next_write_sequence(uint16_t /*epoch*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Stream_Sequence_Numbers::next_read_sequence
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t next_read_sequence() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Stream_Sequence_Numbers::already_seen
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool already_seen(uint64_t /*seq*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::TLS::Stream_Sequence_Numbers::read_accept
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void read_accept(uint64_t /*seq*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Datagram_Sequence_Numbers::reset
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Datagram_Sequence_Numbers::Datagram_Sequence_Numbers
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Datagram_Sequence_Numbers::reset
    linkageType: ''
    returnType: void
    signature: void Datagram_Sequence_Numbers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Datagram_Sequence_Numbers::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 2
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void reset() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::TLS::Datagram_Sequence_Numbers::new_read_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void new_read_cipher_state() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Datagram_Sequence_Numbers::new_write_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void new_write_cipher_state() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Datagram_Sequence_Numbers::current_read_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t current_read_epoch() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Datagram_Sequence_Numbers::current_write_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t current_write_epoch() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:101,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:102,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:102,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Datagram_Sequence_Numbers::next_write_sequence
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - static_cast<uint64_t>
    - end
    - find
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t next_write_sequence(uint16_t epoch) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Datagram_Sequence_Numbers::next_read_sequence
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t next_read_sequence() override
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sequence
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: Botan::TLS::Datagram_Sequence_Numbers::already_seen
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool already_seen(uint64_t sequence) const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - sequence
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 151
    functionName: Botan::TLS::Datagram_Sequence_Numbers::read_accept
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_seq_numbers.h
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void read_accept(uint64_t sequence) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Server_Key_Exchange::~Server_Key_Exchange()
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Key_Exchange::~Server_Key_Exchange()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:37,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:38,1
    - Dst: psk_identity_hint
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:41,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:43,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:47,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:60,1
    - Dst: default_dh_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:61,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:63,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:66,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:67,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:71,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:71,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:81,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:81,1
    - Dst: dynamic_cast<DH_PrivateKey*>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:82,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:82,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:84,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:87,1
    - Dst: auto*::get_int_field
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:87,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:88,1
    - Dst: auto*::get_int_field
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:88,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:89,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:89,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:91,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:93,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:94,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:97,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:99,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:100,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:104,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:105,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:108,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:110,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:115,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:118,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:119,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:120,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:120,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:121,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:121,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:126,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:126,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:128,1
    - Dst: kex_method_to_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:128,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:131,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:132,1
    - Dst: choose_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:135,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:137,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:139,1
    - Dst: params
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:140,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:142,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:145,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:145,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 6
    argNames:
    - ' io'
    - ' state'
    - ' policy'
    - ' creds'
    - ' rng'
    - signing_key
    argTypes:
    - Handshake_IO
    - Handshake_State
    - Policy
    - Credentials_Manager
    - RandomNumberGenerator
    - Private_Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 146
    functionName: Botan::TLS::Server_Key_Exchange::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - choose_key_exchange_group
    - BOTAN_ASSERT
    - dynamic_cast<DH_PrivateKey*>
    - callbacks
    - default_dh_group
    - auto*::get_int_field
    - auto*::public_value
    - is_ecdh_named_curve
    - params
    - raw_public_key_bits
    - psk_identity_hint
    - hash
    - get_byte<1>
    - get
    - get_byte<0>
    - std::vector::empty
    - ciphersuite
    - kex_method_to_string
    - client_hello
    - TLS_Exception
    - Internal_Error
    - value
    - choose_sig_format
    - send
    - server_hello
    - append_tls_length_value
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Server_Key_Exchange::Server_Key_Exchange(Handshake_IO& io,\n
      \                                        Handshake_State& state,\n                                         const
      Policy& policy,\n                                         Credentials_Manager&
      creds,\n                                         RandomNumberGenerator& rng,\n
      \                                        const Private_Key* signing_key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:155,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:165,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:172,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:175,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:176,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:177,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:179,1
    - Dst: kex_method_to_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:179,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:182,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:182,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:182,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:182,1
    - Dst: Signature_Scheme
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:185,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:185,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:186,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:189,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - ' buf'
    - kex_algo
    - auth_method
    - version
    argTypes:
    - std::vector<uint8_t>
    - Kex_Algo
    - Auth_Method
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 190
    functionName: Botan::TLS::Server_Key_Exchange::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - data
    - TLS_Data_Reader::get_byte
    - Decoding_Error
    - kex_method_to_string
    - BOTAN_UNUSED
    - TLS_Data_Reader::get_string
    - TLS_Data_Reader::get_range
    - TLS_Data_Reader::assert_done
    - Signature_Scheme
    - TLS_Data_Reader::read_so_far
    - TLS_Data_Reader::get_uint16_t
    - assign
    linkageType: ''
    returnType: void
    signature: "void Server_Key_Exchange::Server_Key_Exchange(const std::vector<uint8_t>&
      buf,\n                                         const Kex_Algo kex_algo,\n                                         const
      Auth_Method auth_method,\n                                         Protocol_Version
      version)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: params
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:196,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:198,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:199,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:200,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:200,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:200,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:201,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:201,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:201,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: Botan::TLS::Server_Key_Exchange::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - is_set
    - get_byte<1>
    - get_byte<0>
    - append_tls_length_value
    - wire_code
    - params
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Key_Exchange::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:216,1
    - Dst: parse_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:219,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:219,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:221,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:223,1
    - Dst: params
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:224,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:227,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ' server_key'
    - ' state'
    - ' policy'
    argTypes:
    - Public_Key
    - Handshake_State
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 235
    functionName: Botan::TLS::Server_Key_Exchange::verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - parse_sig_format
    - client_hello
    - callbacks
    - check_peer_key_acceptable
    - server_hello
    - params
    linkageType: ''
    returnType: bool
    signature: "bool Server_Key_Exchange::verify(const Public_Key& server_key,\n                                 const
      Handshake_State& state,\n                                 const Policy& policy)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: '& Server_Key_Exchange::server_kex_key() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: PK_Key_Agreement_Key
    signature: PK_Key_Agreement_Key & Server_Key_Exchange::server_kex_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Server_Key_Exchange::~Server_Key_Exchange()
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Key_Exchange::~Server_Key_Exchange()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:37,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:38,1
    - Dst: psk_identity_hint
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:41,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:43,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:47,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:60,1
    - Dst: default_dh_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:61,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:63,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:66,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:67,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:71,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:71,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:81,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:81,1
    - Dst: dynamic_cast<DH_PrivateKey*>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:82,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:82,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:84,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:87,1
    - Dst: auto*::get_int_field
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:87,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:88,1
    - Dst: auto*::get_int_field
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:88,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:89,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:89,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:91,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:93,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:94,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:97,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:99,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:100,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:104,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:105,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:108,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:110,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:115,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:118,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:119,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:120,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:120,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:121,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:121,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:126,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:126,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:128,1
    - Dst: kex_method_to_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:128,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:131,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:132,1
    - Dst: choose_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:135,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:137,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:139,1
    - Dst: params
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:140,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:142,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:145,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:145,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 6
    argNames:
    - ' io'
    - ' state'
    - ' policy'
    - ' creds'
    - ' rng'
    - signing_key
    argTypes:
    - Handshake_IO
    - Handshake_State
    - Policy
    - Credentials_Manager
    - RandomNumberGenerator
    - Private_Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 146
    functionName: Botan::TLS::Server_Key_Exchange::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - choose_key_exchange_group
    - BOTAN_ASSERT
    - dynamic_cast<DH_PrivateKey*>
    - callbacks
    - default_dh_group
    - auto*::get_int_field
    - auto*::public_value
    - is_ecdh_named_curve
    - params
    - raw_public_key_bits
    - psk_identity_hint
    - hash
    - get_byte<1>
    - get
    - get_byte<0>
    - std::vector::empty
    - ciphersuite
    - kex_method_to_string
    - client_hello
    - TLS_Exception
    - Internal_Error
    - value
    - choose_sig_format
    - send
    - server_hello
    - append_tls_length_value
    - push_back
    linkageType: ''
    returnType: void
    signature: "void Server_Key_Exchange::Server_Key_Exchange(Handshake_IO& io,\n
      \                                        Handshake_State& state,\n                                         const
      Policy& policy,\n                                         Credentials_Manager&
      creds,\n                                         RandomNumberGenerator& rng,\n
      \                                        const Private_Key* signing_key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:155,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:165,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:172,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:175,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:176,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:177,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:179,1
    - Dst: kex_method_to_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:179,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:182,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:182,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:182,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:182,1
    - Dst: Signature_Scheme
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:185,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:185,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:186,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:189,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - ' buf'
    - kex_algo
    - auth_method
    - version
    argTypes:
    - std::vector<uint8_t>
    - Kex_Algo
    - Auth_Method
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 190
    functionName: Botan::TLS::Server_Key_Exchange::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - data
    - TLS_Data_Reader::get_byte
    - Decoding_Error
    - kex_method_to_string
    - BOTAN_UNUSED
    - TLS_Data_Reader::get_string
    - TLS_Data_Reader::get_range
    - TLS_Data_Reader::assert_done
    - Signature_Scheme
    - TLS_Data_Reader::read_so_far
    - TLS_Data_Reader::get_uint16_t
    - assign
    linkageType: ''
    returnType: void
    signature: "void Server_Key_Exchange::Server_Key_Exchange(const std::vector<uint8_t>&
      buf,\n                                         const Kex_Algo kex_algo,\n                                         const
      Auth_Method auth_method,\n                                         Protocol_Version
      version)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: params
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:196,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:198,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:199,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:200,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:200,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:200,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:201,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:201,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:201,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: Botan::TLS::Server_Key_Exchange::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - is_set
    - get_byte<1>
    - get_byte<0>
    - append_tls_length_value
    - wire_code
    - params
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Key_Exchange::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:216,1
    - Dst: parse_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:219,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:219,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:221,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:223,1
    - Dst: params
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:224,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:227,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ' server_key'
    - ' state'
    - ' policy'
    argTypes:
    - Public_Key
    - Handshake_State
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 235
    functionName: Botan::TLS::Server_Key_Exchange::verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - parse_sig_format
    - client_hello
    - callbacks
    - check_peer_key_acceptable
    - server_hello
    - params
    linkageType: ''
    returnType: bool
    signature: "bool Server_Key_Exchange::verify(const Public_Key& server_key,\n                                 const
      Handshake_State& state,\n                                 const Policy& policy)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: '& Server_Key_Exchange::server_kex_key() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: PK_Key_Agreement_Key
    signature: PK_Key_Agreement_Key & Server_Key_Exchange::server_kex_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan::TLS::Handshake_Hash::update
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h
    functionUses: 0
    functionsReached:
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void update(const uint8_t in[], size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan::TLS::Handshake_Hash::update
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update(const std::vector<uint8_t>& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: '& get_contents() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & get_contents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::TLS::Handshake_Hash::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: Botan::TLS::Handshake_Hash::update
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h
    functionUses: 0
    functionsReached:
    - std::make_pair
    linkageType: ''
    returnType: void
    signature: void update(const uint8_t in[], size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan::TLS::Handshake_Hash::update
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update(const std::vector<uint8_t>& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: '& get_contents() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & get_contents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::TLS::Handshake_Hash::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_hash.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Connection_Cipher_State::Connection_Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Connection_Cipher_State(const Connection_Cipher_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Connection_Cipher_State::Connection_Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Connection_Cipher_State(Connection_Cipher_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(const Connection_Cipher_State& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Connection_Cipher_State
    signature: Connection_Cipher_State & operator=(const Connection_Cipher_State&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(Connection_Cipher_State&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Connection_Cipher_State
    signature: Connection_Cipher_State & operator=(Connection_Cipher_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:59,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: '& aead()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::get
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: AEAD_Mode
    signature: AEAD_Mode & aead()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t nonce_bytes_from_handshake() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t nonce_bytes_from_record() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::TLS::Connection_Cipher_State::nonce_format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Nonce_Format
    signature: Nonce_Format nonce_format() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - sequence
    - version
    - type
    argTypes:
    - uint64_t
    - Protocol_Version
    - Record_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Record_Header::Record_Header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record_Header(uint64_t sequence, Protocol_Version version, Record_Type
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - needed
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::TLS::Record_Header::Record_Header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record_Header(size_t needed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Record_Header::needed
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t needed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Record_Header::version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: Botan::TLS::Record_Header::sequence
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t sequence() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:103,1
    - Dst: Botan::TLS::Record_Header::sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: Botan::TLS::Record_Header::epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Record_Header::sequence
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t epoch() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Record_Header::type
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: Record_Type
    signature: Record_Type type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Connection_Cipher_State::Connection_Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Connection_Cipher_State(const Connection_Cipher_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Connection_Cipher_State::Connection_Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Connection_Cipher_State(Connection_Cipher_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(const Connection_Cipher_State& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Connection_Cipher_State
    signature: Connection_Cipher_State & operator=(const Connection_Cipher_State&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Connection_Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(Connection_Cipher_State&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Connection_Cipher_State
    signature: Connection_Cipher_State & operator=(Connection_Cipher_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:59,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: '& aead()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - get
    linkageType: ''
    returnType: AEAD_Mode
    signature: AEAD_Mode & aead()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t nonce_bytes_from_handshake() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t nonce_bytes_from_record() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::TLS::Connection_Cipher_State::nonce_format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Nonce_Format
    signature: Nonce_Format nonce_format() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - sequence
    - version
    - type
    argTypes:
    - uint64_t
    - Protocol_Version
    - Record_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Record_Header::Record_Header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record_Header(uint64_t sequence, Protocol_Version version, Record_Type
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - needed
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::TLS::Record_Header::Record_Header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record_Header(size_t needed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Record_Header::needed
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t needed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Record_Header::version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: Botan::TLS::Record_Header::sequence
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t sequence() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:103,1
    - Dst: Botan::TLS::Record_Header::sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: Botan::TLS::Record_Header::epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Record_Header::sequence
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t epoch() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Record_Header::type
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: Record_Type
    signature: Record_Type type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Client_Handshake_State_12::Client_Handshake_State_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Client_Handshake_State_12(std::unique_ptr<Handshake_IO> io, Callbacks&
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: '& server_public_key() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: Public_Key
    signature: Public_Key & server_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Client_Handshake_State_12::maybe_server_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Public_Key
    signature: Public_Key * maybe_server_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:40,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spk
    argTypes:
    - std::unique_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Client_Handshake_State_12::record_server_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void record_server_public_key(std::unique_ptr<Public_Key> spk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Client_Handshake_State_12::is_a_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool is_a_resumption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Client_Handshake_State_12::discard_resumption_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void discard_resumption_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session_info
    argTypes:
    - std::optional<Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Client_Handshake_State_12::record_resumption_info
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - has_value
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void record_resumption_info(std::optional<Session> session_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Client_Handshake_State_12::is_a_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_a_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Client_Handshake_State_12::mark_as_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mark_as_renegotiation()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    - Dst: master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: '& resume_master_secret() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - master_secret
    - is_a_resumption
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & resume_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    - Dst: Botan::TLS::peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: '& resume_peer_certs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::peer_certs
    - is_a_resumption
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> & resume_peer_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    - Dst: Botan::TLS::Client_Handshake_State_12::is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Client_Handshake_State_12::resumed_session_supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Handshake_State_12::is_a_resumption
    - supports_extended_master_secret
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: bool
    signature: bool resumed_session_supports_extended_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Client_Handshake_State_12::Client_Handshake_State_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Client_Handshake_State_12(std::unique_ptr<Handshake_IO> io, Callbacks&
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: '& server_public_key() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: Public_Key
    signature: Public_Key & server_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Client_Handshake_State_12::maybe_server_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Public_Key
    signature: Public_Key * maybe_server_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:40,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spk
    argTypes:
    - std::unique_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Client_Handshake_State_12::record_server_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void record_server_public_key(std::unique_ptr<Public_Key> spk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Client_Handshake_State_12::is_a_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 1
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool is_a_resumption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Client_Handshake_State_12::discard_resumption_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void discard_resumption_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session_info
    argTypes:
    - std::optional<Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Client_Handshake_State_12::record_resumption_info
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - has_value
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void record_resumption_info(std::optional<Session> session_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Client_Handshake_State_12::is_a_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_a_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Client_Handshake_State_12::mark_as_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mark_as_renegotiation()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    - Dst: master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: '& resume_master_secret() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - master_secret
    - is_a_resumption
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & resume_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    - Dst: Botan::TLS::peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: '& resume_peer_certs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::peer_certs
    - is_a_resumption
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> & resume_peer_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    - Dst: Botan::TLS::Client_Handshake_State_12::is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Client_Handshake_State_12::resumed_session_supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Handshake_State_12::is_a_resumption
    - supports_extended_master_secret
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: bool
    signature: bool resumed_session_supports_extended_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:96,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:97,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:99,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' creds'
    - ' policy'
    - ' rng'
    - info
    - datagram
    - ' next_protocols'
    - io_buf_sz
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    - Server_Information
    - bool
    - std::vector<std::string>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: Botan::TLS::Client_Impl_12::Client_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - create_handshake_state
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Client_Impl_12::send_client_hello
    linkageType: ''
    returnType: void
    signature: "void Client_Impl_12::Client_Impl_12(const std::shared_ptr<Callbacks>&
      callbacks,\n                               const std::shared_ptr<Session_Manager>&
      session_manager,\n                               const std::shared_ptr<Credentials_Manager>&
      creds,\n                               const std::shared_ptr<const Policy>&
      policy,\n                               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                               Server_Information info,\n                               bool
      datagram,\n                               const std::vector<std::string>& next_protocols,\n
      \                              size_t io_buf_sz)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:113,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:115,1
    - Dst: client_hello_message::begin
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:119,1
    - Dst: client_hello_message::end
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:120,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:122,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:122,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:123,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:125,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:125,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:126,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:130,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:130,1
    - Dst: tls12_session::session::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:131,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:132,1
    - Dst: tls12_session::session::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' downgrade_info'
    argTypes:
    - Channel_Impl::Downgrade_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 138
    functionName: Botan::TLS::Client_Impl_12::Client_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - hash
    - std::make_unique<Client_Hello_12>
    - Botan::TLS::Client_Impl_12::send_client_hello
    - client_hello_message::begin
    - client_hello
    - BOTAN_ASSERT_NOMSG
    - secure_renegotiation_check
    - set_expected_next
    - tls12_session::has_value
    - create_handshake_state
    - client_hello_message::empty
    - client_hello_message::end
    - tls12_session::session::version
    linkageType: ''
    returnType: void
    signature: void Client_Impl_12::Client_Impl_12(const Channel_Impl::Downgrade_Information&
      downgrade_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Handshake_State_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:141,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:141,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - io
    argTypes:
    - std::unique_ptr<Handshake_IO>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Client_Impl_12::new_handshake_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Client_Handshake_State_12>
    - callbacks
    linkageType: ''
    returnType: std::unique_ptr<Handshake_State>
    signature: std::unique_ptr<Handshake_State> Client_Impl_12::new_handshake_state(std::unique_ptr<Handshake_IO>
      io)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const Client_Handshake_State_12&>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:145,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:147,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:148,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:151,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:152,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Client_Impl_12::get_peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<X509_Certificate>
    - server_certs
    - is_a_resumption
    - dynamic_cast<const Client_Handshake_State_12&>
    - resume_peer_certs
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Client_Impl_12::get_peer_cert_chain(const
      Handshake_State& state) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:162,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - force_full_renegotiation
    argTypes:
    - Handshake_State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: Botan::TLS::Client_Impl_12::initiate_handshake
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - version
    - Botan::TLS::Client_Impl_12::send_client_hello
    linkageType: ''
    returnType: void
    signature: void Client_Impl_12::initiate_handshake(Handshake_State& state, bool
      force_full_renegotiation)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<Client_Handshake_State_12&>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:171,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:173,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:174,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:176,1
    - Dst: std::optional<Session_with_Handle>::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:182,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:182,1
    - Dst: std::optional<Session_with_Handle>::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:186,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:192,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:193,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:193,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:194,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:194,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:196,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:198,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:198,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:199,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:199,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:199,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:200,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:201,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:202,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:203,1
    - Dst: secure_renegotiation_data_for_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:204,1
    - Dst: std::optional<Session_with_Handle>::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:205,1
    - Dst: record_resumption_info
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:208,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:208,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:213,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:215,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:216,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:216,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:216,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:217,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:218,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:219,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:220,1
    - Dst: secure_renegotiation_data_for_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:221,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:226,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:226,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 5
    argNames:
    - ' state_base'
    - force_full_renegotiation
    - version
    - session_and_handle
    - ' next_protocols'
    argTypes:
    - Handshake_State
    - bool
    - Protocol_Version
    - std::optional<Session_with_Handle>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 227
    functionName: Botan::TLS::Client_Impl_12::send_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 3
    functionsReached:
    - auto::front
    - policy
    - callbacks
    - empty
    - hash
    - std::optional<Session_with_Handle>::has_value
    - std::move
    - handshake_io
    - secure_renegotiation_check
    - dynamic_cast<Client_Handshake_State_12&>
    - session_manager
    - std::make_unique<Client_Hello_12>
    - ciphersuite
    - Protocol_Version::is_datagram_protocol
    - version
    - auto::empty
    - client_hello
    - hostname
    - secure_renegotiation_data_for_client_hello
    - record_resumption_info
    - std::optional<Session_with_Handle>::value
    - set_expected_next
    - rng
    linkageType: ''
    returnType: void
    signature: "void Client_Impl_12::send_client_hello(Handshake_State& state_base,\n
      \                                      bool force_full_renegotiation,\n                                       Protocol_Version
      version,\n                                       std::optional<Session_with_Handle>
      session_and_handle,\n                                       const std::vector<std::string>&
      next_protocols)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:236,1
    - Dst: Key_Constraints::includes_any
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:237,1
    - Dst: Key_Constraints::includes_any
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - usage
    - ' suite'
    argTypes:
    - Key_Constraints
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: Botan::TLS::key_usage_matches_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Key_Constraints::includes_any
    - Botan::TLS::kex_method
    linkageType: ''
    returnType: bool
    signature: bool key_usage_matches_ciphersuite(Key_Constraints usage, const Ciphersuite&
      suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:236,1
    - Dst: Key_Constraints::includes_any
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:237,1
    - Dst: Key_Constraints::includes_any
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - usage
    - ' suite'
    argTypes:
    - Key_Constraints
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: Botan::TLS::key_usage_matches_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Key_Constraints::includes_any
    - Botan::TLS::kex_method
    linkageType: ''
    returnType: bool
    signature: bool key_usage_matches_ciphersuite(Key_Constraints usage, const Ciphersuite&
      suite)
  - BBCount: 74
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:253,1
    - Dst: dynamic_cast<Client_Handshake_State_12&>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:255,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:260,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:261,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:264,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:265,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:265,1
    - Dst: mark_as_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:266,1
    - Dst: Botan::TLS::Client_Impl_12::initiate_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:267,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:269,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:272,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:273,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:276,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:283,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:287,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:287,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:291,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:292,1
    - Dst: hello_verify_request
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:295,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:297,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:297,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:299,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:300,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:303,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:303,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:304,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:307,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:307,1
    - Dst: auto::usable_in_version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:308,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:308,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:309,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:318,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:318,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:319,1
    - Dst: Botan::TLS::Ciphersuite::is_scsv
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:323,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:323,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:324,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:327,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:328,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:331,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:331,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:341,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:342,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:342,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:343,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:347,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:348,1
    - Dst: std::set_difference
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:352,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:353,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:353,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:353,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:353,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:353,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:355,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:361,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:363,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:363,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:366,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:367,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:367,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:368,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:372,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:373,1
    - Dst: set_version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:375,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:375,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:376,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:378,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:378,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:381,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:382,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:382,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:386,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:386,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:392,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:392,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:393,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:396,1
    - Dst: resumed_session_supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:397,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:398,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:401,1
    - Dst: resumed_session_supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:402,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:403,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:406,1
    - Dst: resume_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:406,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:407,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:412,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:413,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:413,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:416,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:417,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:419,1
    - Dst: Handshake_State*::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:429,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:429,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:430,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:433,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:434,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:435,1
    - Dst: discard_resumption_state
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:439,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:441,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:442,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:443,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:446,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:446,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:447,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:450,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:450,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:451,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:454,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:454,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:455,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:456,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:459,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:459,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:460,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:461,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:470,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:471,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:472,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:473,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:475,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:476,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:480,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:480,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:480,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:482,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:484,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:485,1
    - Dst: Handshake_State*::server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:496,1
    - Dst: Handshake_State*::server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:497,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:500,1
    - Dst: X509_Certificate::subject_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:504,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:507,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:507,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:509,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:510,1
    - Dst: key_usage_matches_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:513,1
    - Dst: X509_Certificate::constraints
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:513,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:513,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:514,1
    - Dst: record_server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:517,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:517,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:519,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:520,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:522,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:523,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:526,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:527,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:530,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:530,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:532,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:533,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:533,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:537,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:537,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:541,1
    - Dst: std::make_unique<Certificate_Status>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:541,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:543,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:544,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:546,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:547,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:550,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:551,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:553,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:555,1
    - Dst: std::make_unique<Server_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:555,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:556,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:556,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:556,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:558,1
    - Dst: server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:559,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:561,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:561,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:562,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:566,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:567,1
    - Dst: std::make_unique<Certificate_Request_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:567,1
    - Dst: server_hello_done
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:569,1
    - Dst: std::make_unique<Server_Hello_Done>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:569,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:571,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:572,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:575,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:575,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:577,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:577,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:580,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:581,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:581,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:581,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:584,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:584,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:588,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:589,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:593,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:593,1
    - Dst: received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:597,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:598,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:601,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:601,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:601,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:603,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:603,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:603,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:603,1
    - Dst: client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: std::make_unique<Client_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:607,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:607,1
    - Dst: maybe_server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:607,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:607,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:607,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:609,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:610,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:615,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:616,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:616,1
    - Dst: received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:619,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:619,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:621,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:621,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:621,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:624,1
    - Dst: client_verify
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: std::make_unique<Certificate_Verify_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:628,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:628,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:628,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:628,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:628,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:631,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:631,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:633,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:635,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:635,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:635,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:637,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:638,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:640,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:643,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:643,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:645,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:647,1
    - Dst: change_cipher_spec_reader
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:649,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:651,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:652,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:655,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:655,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:657,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:658,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:661,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:661,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:663,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:665,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:665,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:666,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:667,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:667,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:667,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:673,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:674,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:674,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:676,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:680,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:681,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:682,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:684,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:685,1
    - Dst: Botan::TLS::Client_Impl_12::get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:686,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:688,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:689,1
    - Dst: session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:696,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:696,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:697,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:698,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:698,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:699,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:707,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:708,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:708,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:709,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:709,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:710,1
    - Dst: Session_Summary::set_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:711,1
    - Dst: auto*::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:711,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:716,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:717,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:726,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:726,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:726,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:730,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:730,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:730,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:731,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:731,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:734,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:736,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:736,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:738,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:738,1
    - Dst: activate_session
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:743,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:745,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 293
    argCount: 5
    argNames:
    - active_state
    - ' state_base'
    - type
    - ' contents'
    - epoch0_restart
    argTypes:
    - Handshake_State*
    - Handshake_State
    - Handshake_Type
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 747
    functionName: Botan::TLS::Client_Impl_12::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - policy
    - change_cipher_spec_writer
    - record_server_public_key
    - X509_Certificate::constraints
    - callbacks
    - discard_resumption_state
    - empty
    - Unexpected_Message
    - trusted_certificate_authorities
    - std::back_inserter
    - activate_session
    - change_cipher_spec_reader
    - ciphersuite
    - server_hello_done
    - resumed_session_supports_extended_master_secret
    - version
    - client_hello
    - std::set_difference
    - mark_as_renegotiation
    - std::make_unique<Finished_12>
    - Handshake_State*::server_hello
    - auto::algo_name
    - set_expected_next
    - Session_Summary::set_session_ticket
    - auto::value
    - std::make_unique<Server_Hello_Done>
    - client_verify
    - received_handshake_msg
    - std::make_unique<Client_Key_Exchange>
    - Botan_CLI::Timer::seconds
    - server_finished
    - BOTAN_ASSERT_NOMSG
    - Handshake_State*::server_certs
    - auto::end
    - std::make_unique<Server_Key_Exchange>
    - std::vector::empty
    - key_usage_matches_ciphersuite
    - client_finished
    - auto::begin
    - std::vector::emplace_back
    - cert_req
    - Botan::TLS::Ciphersuite::by_id
    - hostname
    - secure_renegotiation_supported
    - std::ostringstream::str
    - private_key_for
    - auto*::ticket
    - Botan::TLS::Ciphersuite::is_scsv
    - session_keys
    - auto::get
    - Session_Summary::set_session_id
    - find_cert_chain
    - auto::aead_ciphersuite
    - new_session_ticket
    - hash
    - Change_Cipher_Spec
    - std::move
    - handshake_io
    - value_exists
    - secure_renegotiation_check
    - dynamic_cast<Client_Handshake_State_12&>
    - session_manager
    - client_kex
    - is_a_resumption
    - what
    - X509_Certificate::subject_public_key
    - Botan::TLS::Client_Impl_12::initiate_handshake
    - std::make_unique<Server_Hello_12>
    - auto::usable_in_version
    - external_psk_identity
    - std::make_unique<Certificate_Request_12>
    - Botan::TLS::Client_Impl_12::get_peer_cert_chain
    - rng
    - set_version
    - std::make_unique<Certificate_Verify_12>
    - Botan_Tests::random_bit_generator::max
    - maybe_server_public_key
    - server_certs
    - static_cast<int>
    - Session_Handle
    - compute_session_keys
    - Handshake_State*::version
    - auto::is_ticket
    - server_kex
    - session_ticket
    - std::make_unique<Certificate_Status>
    - hello_verify_request
    - send_warning_alert
    - TLS_Exception
    - client_certs
    - auto::has_value
    - std::make_unique<New_Session_Ticket_12>
    - confirm_transition_to
    - server_public_key
    - server_cert_status
    - resume_master_secret
    - server_hello
    - std::make_unique<Certificate_12>
    linkageType: ''
    returnType: void
    signature: "void Client_Impl_12::process_handshake_msg(const Handshake_State*
      active_state,\n                                           Handshake_State& state_base,\n
      \                                          Handshake_Type type,\n                                           const
      std::vector<uint8_t>& contents,\n                                           bool
      epoch0_restart)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Client_Handshake_State_12::Client_Handshake_State_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Client_Handshake_State_12(std::unique_ptr<Handshake_IO> io, Callbacks&
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: '& server_public_key() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: Public_Key
    signature: Public_Key & server_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Client_Handshake_State_12::maybe_server_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Public_Key
    signature: Public_Key * maybe_server_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:40,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spk
    argTypes:
    - std::unique_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Client_Handshake_State_12::record_server_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void record_server_public_key(std::unique_ptr<Public_Key> spk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Client_Handshake_State_12::is_a_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 2
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool is_a_resumption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Client_Handshake_State_12::discard_resumption_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void discard_resumption_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session_info
    argTypes:
    - std::optional<Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Client_Handshake_State_12::record_resumption_info
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - has_value
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void record_resumption_info(std::optional<Session> session_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Client_Handshake_State_12::is_a_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_a_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Client_Handshake_State_12::mark_as_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mark_as_renegotiation()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    - Dst: master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: '& resume_master_secret() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - master_secret
    - is_a_resumption
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & resume_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    - Dst: peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: '& resume_peer_certs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - peer_certs
    - is_a_resumption
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> & resume_peer_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    - Dst: Botan::TLS::Client_Handshake_State_12::is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Client_Handshake_State_12::resumed_session_supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Handshake_State_12::is_a_resumption
    - supports_extended_master_secret
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: bool
    signature: bool resumed_session_supports_extended_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Client_Handshake_State_12::Client_Handshake_State_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Client_Handshake_State_12(std::unique_ptr<Handshake_IO> io, Callbacks&
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: '& server_public_key() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: Public_Key
    signature: Public_Key & server_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Client_Handshake_State_12::maybe_server_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Public_Key
    signature: Public_Key * maybe_server_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:40,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spk
    argTypes:
    - std::unique_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Client_Handshake_State_12::record_server_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void record_server_public_key(std::unique_ptr<Public_Key> spk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Client_Handshake_State_12::is_a_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 3
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool is_a_resumption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Client_Handshake_State_12::discard_resumption_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void discard_resumption_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session_info
    argTypes:
    - std::optional<Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Client_Handshake_State_12::record_resumption_info
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - has_value
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void record_resumption_info(std::optional<Session> session_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Client_Handshake_State_12::is_a_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_a_renegotiation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Client_Handshake_State_12::mark_as_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mark_as_renegotiation()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    - Dst: master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: '& resume_master_secret() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - master_secret
    - is_a_resumption
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & resume_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    - Dst: peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: '& resume_peer_certs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - peer_certs
    - is_a_resumption
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> & resume_peer_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    - Dst: Botan::TLS::Client_Handshake_State_12::is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Client_Handshake_State_12::resumed_session_supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Handshake_State_12::is_a_resumption
    - supports_extended_master_secret
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: bool
    signature: bool resumed_session_supports_extended_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:96,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:97,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:99,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' creds'
    - ' policy'
    - ' rng'
    - info
    - datagram
    - ' next_protocols'
    - io_buf_sz
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    - Server_Information
    - bool
    - std::vector<std::string>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: Botan::TLS::Client_Impl_12::Client_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - create_handshake_state
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Client_Impl_12::send_client_hello
    linkageType: ''
    returnType: void
    signature: "void Client_Impl_12::Client_Impl_12(const std::shared_ptr<Callbacks>&
      callbacks,\n                               const std::shared_ptr<Session_Manager>&
      session_manager,\n                               const std::shared_ptr<Credentials_Manager>&
      creds,\n                               const std::shared_ptr<const Policy>&
      policy,\n                               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                               Server_Information info,\n                               bool
      datagram,\n                               const std::vector<std::string>& next_protocols,\n
      \                              size_t io_buf_sz)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:113,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:115,1
    - Dst: client_hello_message::begin
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:119,1
    - Dst: client_hello_message::end
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:120,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:122,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:122,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:123,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:125,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:125,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:126,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:130,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:130,1
    - Dst: tls12_session::session::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:131,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:132,1
    - Dst: tls12_session::session::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' downgrade_info'
    argTypes:
    - Channel_Impl::Downgrade_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 138
    functionName: Botan::TLS::Client_Impl_12::Client_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - hash
    - std::make_unique<Client_Hello_12>
    - Botan::TLS::Client_Impl_12::send_client_hello
    - client_hello_message::begin
    - client_hello
    - BOTAN_ASSERT_NOMSG
    - secure_renegotiation_check
    - set_expected_next
    - tls12_session::has_value
    - create_handshake_state
    - client_hello_message::empty
    - client_hello_message::end
    - tls12_session::session::version
    linkageType: ''
    returnType: void
    signature: void Client_Impl_12::Client_Impl_12(const Channel_Impl::Downgrade_Information&
      downgrade_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Handshake_State_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:141,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:141,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - io
    argTypes:
    - std::unique_ptr<Handshake_IO>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Client_Impl_12::new_handshake_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Client_Handshake_State_12>
    - callbacks
    linkageType: ''
    returnType: std::unique_ptr<Handshake_State>
    signature: std::unique_ptr<Handshake_State> Client_Impl_12::new_handshake_state(std::unique_ptr<Handshake_IO>
      io)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const Client_Handshake_State_12&>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:145,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:147,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:148,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:151,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:152,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Client_Impl_12::get_peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 1
    functionsReached:
    - std::vector<X509_Certificate>
    - server_certs
    - is_a_resumption
    - dynamic_cast<const Client_Handshake_State_12&>
    - resume_peer_certs
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Client_Impl_12::get_peer_cert_chain(const
      Handshake_State& state) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:162,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - force_full_renegotiation
    argTypes:
    - Handshake_State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: Botan::TLS::Client_Impl_12::initiate_handshake
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 1
    functionsReached:
    - version
    - Botan::TLS::Client_Impl_12::send_client_hello
    linkageType: ''
    returnType: void
    signature: void Client_Impl_12::initiate_handshake(Handshake_State& state, bool
      force_full_renegotiation)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<Client_Handshake_State_12&>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:171,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:173,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:174,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:176,1
    - Dst: std::optional<Session_with_Handle>::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:182,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:182,1
    - Dst: std::optional<Session_with_Handle>::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:186,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:192,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:193,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:193,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:194,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:194,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:196,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:198,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:198,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:199,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:199,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:199,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:200,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:201,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:202,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:203,1
    - Dst: secure_renegotiation_data_for_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:204,1
    - Dst: std::optional<Session_with_Handle>::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:205,1
    - Dst: record_resumption_info
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:208,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:208,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:213,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:215,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:216,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:216,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:216,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:217,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:218,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:219,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:220,1
    - Dst: secure_renegotiation_data_for_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:221,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:226,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:226,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 5
    argNames:
    - ' state_base'
    - force_full_renegotiation
    - version
    - session_and_handle
    - ' next_protocols'
    argTypes:
    - Handshake_State
    - bool
    - Protocol_Version
    - std::optional<Session_with_Handle>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 227
    functionName: Botan::TLS::Client_Impl_12::send_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 6
    functionsReached:
    - auto::front
    - policy
    - callbacks
    - empty
    - hash
    - std::optional<Session_with_Handle>::has_value
    - std::move
    - handshake_io
    - secure_renegotiation_check
    - dynamic_cast<Client_Handshake_State_12&>
    - session_manager
    - std::make_unique<Client_Hello_12>
    - ciphersuite
    - Protocol_Version::is_datagram_protocol
    - version
    - auto::empty
    - client_hello
    - hostname
    - secure_renegotiation_data_for_client_hello
    - record_resumption_info
    - std::optional<Session_with_Handle>::value
    - set_expected_next
    - rng
    linkageType: ''
    returnType: void
    signature: "void Client_Impl_12::send_client_hello(Handshake_State& state_base,\n
      \                                      bool force_full_renegotiation,\n                                       Protocol_Version
      version,\n                                       std::optional<Session_with_Handle>
      session_and_handle,\n                                       const std::vector<std::string>&
      next_protocols)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:236,1
    - Dst: Key_Constraints::includes_any
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:237,1
    - Dst: Key_Constraints::includes_any
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - usage
    - ' suite'
    argTypes:
    - Key_Constraints
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: Botan::TLS::key_usage_matches_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Key_Constraints::includes_any
    - Botan::TLS::kex_method
    linkageType: ''
    returnType: bool
    signature: bool key_usage_matches_ciphersuite(Key_Constraints usage, const Ciphersuite&
      suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:236,1
    - Dst: Key_Constraints::includes_any
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:237,1
    - Dst: Key_Constraints::includes_any
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - usage
    - ' suite'
    argTypes:
    - Key_Constraints
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: Botan::TLS::key_usage_matches_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Key_Constraints::includes_any
    - Botan::TLS::kex_method
    linkageType: ''
    returnType: bool
    signature: bool key_usage_matches_ciphersuite(Key_Constraints usage, const Ciphersuite&
      suite)
  - BBCount: 74
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:253,1
    - Dst: dynamic_cast<Client_Handshake_State_12&>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:255,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:260,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:261,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:264,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:265,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:265,1
    - Dst: mark_as_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:266,1
    - Dst: Botan::TLS::Client_Impl_12::initiate_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:267,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:269,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:272,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:273,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:276,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:283,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:287,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:287,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:291,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:292,1
    - Dst: hello_verify_request
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:295,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:297,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:297,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:299,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:300,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:303,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:303,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:304,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:307,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:307,1
    - Dst: auto::usable_in_version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:308,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:308,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:309,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:318,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:318,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:319,1
    - Dst: Botan::TLS::Ciphersuite::is_scsv
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:323,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:323,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:324,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:327,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:328,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:331,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:331,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:341,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:342,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:342,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:343,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:347,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:348,1
    - Dst: std::set_difference
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:352,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:353,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:353,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:353,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:353,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:353,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:355,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:361,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:363,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:363,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:366,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:367,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:367,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:368,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:372,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:373,1
    - Dst: set_version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:375,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:375,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:376,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:378,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:378,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:381,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:382,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:382,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:386,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:386,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:392,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:392,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:393,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:396,1
    - Dst: resumed_session_supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:397,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:398,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:401,1
    - Dst: resumed_session_supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:402,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:403,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:406,1
    - Dst: resume_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:406,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:407,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:412,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:413,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:413,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:416,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:417,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:419,1
    - Dst: Handshake_State*::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:429,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:429,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:430,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:433,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:434,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:435,1
    - Dst: discard_resumption_state
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:439,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:441,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:442,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:443,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:446,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:446,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:447,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:450,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:450,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:451,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:454,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:454,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:455,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:456,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:459,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:459,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:460,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:461,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:470,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:471,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:472,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:473,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:475,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:476,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:480,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:480,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:480,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:482,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:484,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:485,1
    - Dst: Handshake_State*::server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:496,1
    - Dst: Handshake_State*::server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:497,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:500,1
    - Dst: X509_Certificate::subject_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:504,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:507,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:507,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:509,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:510,1
    - Dst: key_usage_matches_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:513,1
    - Dst: X509_Certificate::constraints
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:513,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:513,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:514,1
    - Dst: record_server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:517,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:517,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:519,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:520,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:522,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:523,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:526,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:527,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:530,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:530,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:532,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:533,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:533,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:537,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:537,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:541,1
    - Dst: std::make_unique<Certificate_Status>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:541,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:543,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:544,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:546,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:547,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:550,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:551,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:553,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:555,1
    - Dst: std::make_unique<Server_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:555,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:556,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:556,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:556,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:558,1
    - Dst: server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:559,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:561,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:561,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:562,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:566,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:567,1
    - Dst: std::make_unique<Certificate_Request_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:567,1
    - Dst: server_hello_done
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:569,1
    - Dst: std::make_unique<Server_Hello_Done>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:569,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:571,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:572,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:575,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:575,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:577,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:577,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:580,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:581,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:581,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:581,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:584,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:584,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:588,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:589,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:593,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:593,1
    - Dst: received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:597,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:598,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:601,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:601,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:601,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:603,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:603,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:603,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:603,1
    - Dst: client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: std::make_unique<Client_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:607,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:607,1
    - Dst: maybe_server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:607,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:607,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:607,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:609,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:610,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:615,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:616,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:616,1
    - Dst: received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:619,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:619,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:621,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:621,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:621,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:624,1
    - Dst: client_verify
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: std::make_unique<Certificate_Verify_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:628,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:628,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:628,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:628,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:628,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:631,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:631,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:633,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:635,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:635,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:635,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:637,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:638,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:640,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:643,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:643,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:645,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:647,1
    - Dst: change_cipher_spec_reader
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:649,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:651,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:652,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:655,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:655,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:657,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:658,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:661,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:661,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:663,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:665,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:665,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:666,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:667,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:667,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:667,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:673,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:674,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:674,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:676,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:680,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:681,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:682,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:684,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:685,1
    - Dst: Botan::TLS::Client_Impl_12::get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:686,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:688,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:689,1
    - Dst: session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:696,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:696,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:697,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:698,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:698,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:699,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:707,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:708,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:708,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:709,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:709,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:710,1
    - Dst: Session_Summary::set_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:711,1
    - Dst: auto*::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:711,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:716,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:717,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:726,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:726,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:726,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:730,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:730,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:730,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:731,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:731,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:734,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:736,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:736,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:738,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:738,1
    - Dst: activate_session
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:743,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:745,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 293
    argCount: 5
    argNames:
    - active_state
    - ' state_base'
    - type
    - ' contents'
    - epoch0_restart
    argTypes:
    - Handshake_State*
    - Handshake_State
    - Handshake_Type
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 747
    functionName: Botan::TLS::Client_Impl_12::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - policy
    - change_cipher_spec_writer
    - record_server_public_key
    - X509_Certificate::constraints
    - callbacks
    - discard_resumption_state
    - empty
    - Unexpected_Message
    - trusted_certificate_authorities
    - std::back_inserter
    - activate_session
    - change_cipher_spec_reader
    - ciphersuite
    - server_hello_done
    - resumed_session_supports_extended_master_secret
    - version
    - client_hello
    - std::set_difference
    - mark_as_renegotiation
    - std::make_unique<Finished_12>
    - Handshake_State*::server_hello
    - auto::algo_name
    - set_expected_next
    - Session_Summary::set_session_ticket
    - auto::value
    - std::make_unique<Server_Hello_Done>
    - client_verify
    - received_handshake_msg
    - std::make_unique<Client_Key_Exchange>
    - Botan_CLI::Timer::seconds
    - server_finished
    - BOTAN_ASSERT_NOMSG
    - Handshake_State*::server_certs
    - auto::end
    - std::make_unique<Server_Key_Exchange>
    - std::vector::empty
    - key_usage_matches_ciphersuite
    - client_finished
    - auto::begin
    - std::vector::emplace_back
    - cert_req
    - Botan::TLS::Ciphersuite::by_id
    - hostname
    - secure_renegotiation_supported
    - std::ostringstream::str
    - private_key_for
    - auto*::ticket
    - Botan::TLS::Ciphersuite::is_scsv
    - session_keys
    - auto::get
    - Session_Summary::set_session_id
    - find_cert_chain
    - auto::aead_ciphersuite
    - new_session_ticket
    - hash
    - Change_Cipher_Spec
    - std::move
    - handshake_io
    - value_exists
    - secure_renegotiation_check
    - dynamic_cast<Client_Handshake_State_12&>
    - session_manager
    - client_kex
    - is_a_resumption
    - what
    - X509_Certificate::subject_public_key
    - Botan::TLS::Client_Impl_12::initiate_handshake
    - std::make_unique<Server_Hello_12>
    - auto::usable_in_version
    - external_psk_identity
    - std::make_unique<Certificate_Request_12>
    - Botan::TLS::Client_Impl_12::get_peer_cert_chain
    - rng
    - set_version
    - std::make_unique<Certificate_Verify_12>
    - Botan_Tests::random_bit_generator::max
    - maybe_server_public_key
    - server_certs
    - static_cast<int>
    - Session_Handle
    - compute_session_keys
    - Handshake_State*::version
    - auto::is_ticket
    - server_kex
    - session_ticket
    - std::make_unique<Certificate_Status>
    - hello_verify_request
    - send_warning_alert
    - TLS_Exception
    - client_certs
    - auto::has_value
    - std::make_unique<New_Session_Ticket_12>
    - confirm_transition_to
    - server_public_key
    - server_cert_status
    - resume_master_secret
    - server_hello
    - std::make_unique<Certificate_12>
    linkageType: ''
    returnType: void
    signature: "void Client_Impl_12::process_handshake_msg(const Handshake_State*
      active_state,\n                                           Handshake_State& state_base,\n
      \                                          Handshake_Type type,\n                                           const
      std::vector<uint8_t>& contents,\n                                           bool
      epoch0_restart)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12(const Channel_Impl_12& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12(Channel_Impl_12&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: '& operator=(const Channel_Impl_12& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_12
    signature: Channel_Impl_12 & operator=(const Channel_Impl_12& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& operator=(Channel_Impl_12&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_12
    signature: Channel_Impl_12 & operator=(Channel_Impl_12&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Channel_Impl_12::is_closed_for_reading
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_reading() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Channel_Impl_12::is_closed_for_writing
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_writing() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Channel_Impl_12::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> peer_raw_public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: '& rng()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RandomNumberGenerator
    signature: RandomNumberGenerator & rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: '& session_manager()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_Manager
    signature: Session_Manager & session_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: '& policy() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Policy
    signature: Policy & policy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: '& callbacks() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Callbacks
    signature: Callbacks & callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::TLS::Channel_Impl_12::active_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State * active_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan::TLS::Channel_Impl_12::pending_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State * pending_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12(const Channel_Impl_12& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12(Channel_Impl_12&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: '& operator=(const Channel_Impl_12& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_12
    signature: Channel_Impl_12 & operator=(const Channel_Impl_12& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& operator=(Channel_Impl_12&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_12
    signature: Channel_Impl_12 & operator=(Channel_Impl_12&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Channel_Impl_12::is_closed_for_reading
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_reading() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Channel_Impl_12::is_closed_for_writing
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_writing() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Channel_Impl_12::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> peer_raw_public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: '& rng()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RandomNumberGenerator
    signature: RandomNumberGenerator & rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: '& session_manager()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_Manager
    signature: Session_Manager & session_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: '& policy() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Policy
    signature: Policy & policy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: '& callbacks() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Callbacks
    signature: Callbacks & callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::TLS::Channel_Impl_12::active_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State * active_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan::TLS::Channel_Impl_12::pending_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State * pending_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12(const Channel_Impl_12& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12(Channel_Impl_12&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: '& operator=(const Channel_Impl_12& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_12
    signature: Channel_Impl_12 & operator=(const Channel_Impl_12& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& operator=(Channel_Impl_12&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_12
    signature: Channel_Impl_12 & operator=(Channel_Impl_12&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Channel_Impl_12::is_closed_for_reading
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_reading() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Channel_Impl_12::is_closed_for_writing
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_writing() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Channel_Impl_12::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> peer_raw_public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: '& rng()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RandomNumberGenerator
    signature: RandomNumberGenerator & rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: '& session_manager()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_Manager
    signature: Session_Manager & session_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: '& policy() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Policy
    signature: Policy & policy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: '& callbacks() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Callbacks
    signature: Callbacks & callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::TLS::Channel_Impl_12::active_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State * active_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan::TLS::Channel_Impl_12::pending_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State * pending_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12(const Channel_Impl_12& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12(Channel_Impl_12&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: '& operator=(const Channel_Impl_12& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_12
    signature: Channel_Impl_12 & operator=(const Channel_Impl_12& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& operator=(Channel_Impl_12&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_12
    signature: Channel_Impl_12 & operator=(Channel_Impl_12&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Channel_Impl_12::is_closed_for_reading
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_reading() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Channel_Impl_12::is_closed_for_writing
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_writing() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Channel_Impl_12::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> peer_raw_public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: '& rng()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RandomNumberGenerator
    signature: RandomNumberGenerator & rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: '& session_manager()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_Manager
    signature: Session_Manager & session_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: '& policy() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Policy
    signature: Policy & policy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: '& callbacks() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Callbacks
    signature: Callbacks & callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::TLS::Channel_Impl_12::active_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State * active_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan::TLS::Channel_Impl_12::pending_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State * pending_state() const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:31,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:32,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:33,1
    - Dst: make_server_hello_random
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:34,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:34,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:35,1
    - Dst: Botan::TLS::Server_Hello_12::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:38,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:39,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:39,1
    - Dst: supports_cert_status_message
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:43,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:43,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:44,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:44,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:47,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:47,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:48,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:48,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:51,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:51,1
    - Dst: auto::cbc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:53,1
    - Dst: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:53,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:53,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:54,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:54,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:57,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:57,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:58,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:58,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:58,1
    - Dst: Botan::TLS::Server_Hello_12::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:61,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:62,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:62,1
    - Dst: Botan::TLS::Server_Hello_12::supports_session_ticket
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:65,1
    - Dst: offer_session_ticket
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:65,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:66,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:66,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:69,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:70,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:71,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:73,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:73,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:85,1
    - Dst: SRTP_Protection_Profiles::SRTP_Protection_Profiles
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:85,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:91,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:91,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:91,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:93,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:93,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 36
    argCount: 9
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' client_hello'
    - ' server_settings'
    - next_protocol
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Policy
    - Callbacks
    - RandomNumberGenerator
    - std::vector<uint8_t>
    - Client_Hello_12
    - Server_Hello_12::Settings
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - std::make_unique<Server_Hello_Internal>
    - auto::ecc_ciphersuite
    - extension_types
    - SRTP_Protection_Profiles::SRTP_Protection_Profiles
    - std::string_view::empty
    - make_server_hello_random
    - protocol_version
    - type
    - offer_session_ticket
    - use_ecc_point_compression
    - tls_modify_extensions
    - Extended_Master_Secret::Extended_Master_Secret
    - Session_Ticket_Extension::Session_Ticket_Extension
    - Supported_Point_Formats::Supported_Point_Formats
    - Certificate_Status_Request::Certificate_Status_Request
    - std::vector::empty
    - supports_alpn
    - ciphersuite
    - extensions
    - negotiate_encrypt_then_mac
    - Botan::TLS::Ciphersuite::by_id
    - auto::cbc_ciphersuite
    - Botan::TLS::Server_Hello_12::secure_renegotiation
    - srtp_profiles
    - update
    - Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    - Botan::TLS::Server_Hello_12::supports_session_ticket
    - legacy_version
    - send
    - support_cert_status_message
    - Encrypt_then_MAC::Encrypt_then_MAC
    - Renegotiation_Extension::Renegotiation_Extension
    - Botan::TLS::Server_Hello_12::supports_extended_master_secret
    - session_id
    - supports_cert_status_message
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_12::Server_Hello_12(Handshake_IO& io,\n                                 Handshake_Hash&
      hash,\n                                 const Policy& policy,\n                                 Callbacks&
      cb,\n                                 RandomNumberGenerator& rng,\n                                 const
      std::vector<uint8_t>& reneg_info,\n                                 const Client_Hello_12&
      client_hello,\n                                 const Server_Hello_12::Settings&
      server_settings,\n                                 std::string_view next_protocol)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:107,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:107,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:108,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:109,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:110,1
    - Dst: Botan::TLS::Server_Hello_12::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:113,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:114,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:114,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:117,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:117,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:118,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:118,1
    - Dst: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:121,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:121,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:122,1
    - Dst: Ciphersuite::cbc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:123,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:124,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:124,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:128,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:129,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:130,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:130,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:130,1
    - Dst: Botan::TLS::Server_Hello_12::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:133,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:134,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:134,1
    - Dst: Botan::TLS::Server_Hello_12::supports_session_ticket
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:137,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:138,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:138,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:142,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:142,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:142,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:144,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:144,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 10
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' client_hello'
    - ' resumed_session'
    - offer_session_ticket
    - next_protocol
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Policy
    - Callbacks
    - RandomNumberGenerator
    - std::vector<uint8_t>
    - Client_Hello_12
    - Session
    - bool
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - std::make_unique<Server_Hello_Internal>
    - extension_types
    - std::string_view::empty
    - type
    - Ciphersuite::cbc_ciphersuite
    - use_ecc_point_compression
    - tls_modify_extensions
    - Session_Ticket_Extension::Session_Ticket_Extension
    - Supported_Point_Formats::Supported_Point_Formats
    - supports_alpn
    - ciphersuite
    - extensions
    - version
    - negotiate_encrypt_then_mac
    - ciphersuite_code
    - Botan::TLS::Server_Hello_12::secure_renegotiation
    - Botan::TLS::Server_Hello_12::supports_extended_master_secret
    - update
    - Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    - Botan::TLS::Server_Hello_12::supports_session_ticket
    - send
    - Encrypt_then_MAC::Encrypt_then_MAC
    - Renegotiation_Extension::Renegotiation_Extension
    - make_hello_random
    - session_id
    - Extended_Master_Secret::Extended_Master_Secret
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_12::Server_Hello_12(Handshake_IO& io,\n                                 Handshake_Hash&
      hash,\n                                 const Policy& policy,\n                                 Callbacks&
      cb,\n                                 RandomNumberGenerator& rng,\n                                 const
      std::vector<uint8_t>& reneg_info,\n                                 const Client_Hello_12&
      client_hello,\n                                 const Session& resumed_session,\n
      \                                bool offer_session_ticket,\n                                 std::string_view
      next_protocol)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Server_Hello_Internal>
    linkageType: ''
    returnType: void
    signature: void Server_Hello_12::Server_Hello_12(const std::vector<uint8_t>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_Hello_12::Server_Hello_12(std::unique_ptr<Server_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Botan::TLS::Server_Hello_12::secure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 2
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::secure_renegotiation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:157,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:158,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: Botan::TLS::Server_Hello_12::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - extensions
    - Renegotiation_Extension*::renegotiation_info
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Hello_12::renegotiation_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Server_Hello_12::supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 2
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::supports_extended_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 2
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::supports_encrypt_then_mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Server_Hello_12::supports_certificate_status_message
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::supports_certificate_status_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Server_Hello_12::supports_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 2
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::supports_session_ticket() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:180,1
    - Dst: auto*::profiles
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:181,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:182,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: Botan::TLS::Server_Hello_12::srtp_profile
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - extensions
    - auto::size
    - auto*::profiles
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t Server_Hello_12::srtp_profile() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:192,1
    - Dst: auto*::single_protocol
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: Botan::TLS::Server_Hello_12::next_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - auto*::single_protocol
    linkageType: ''
    returnType: std::string
    signature: std::string Server_Hello_12::next_protocol() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:199,1
    - Dst: auto*::prefers_compressed
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: Botan::TLS::Server_Hello_12::prefers_compressed_ec_points
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - auto*::prefers_compressed
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::prefers_compressed_ec_points() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:209,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' io'
    - ' hash'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan::TLS::Server_Hello_Done::Server_Hello_Done
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - update
    - send
    linkageType: ''
    returnType: void
    signature: void Server_Hello_Done::Server_Hello_Done(Handshake_IO& io, Handshake_Hash&
      hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:216,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: Botan::TLS::Server_Hello_Done::Server_Hello_Done
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Server_Hello_Done::Server_Hello_Done(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: Botan::TLS::Server_Hello_Done::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Hello_Done::serialize() const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:31,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:32,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:33,1
    - Dst: make_server_hello_random
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:34,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:34,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:35,1
    - Dst: Botan::TLS::Server_Hello_12::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:38,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:39,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:39,1
    - Dst: supports_cert_status_message
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:43,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:43,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:44,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:44,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:47,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:47,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:48,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:48,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:51,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:51,1
    - Dst: auto::cbc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:53,1
    - Dst: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:53,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:53,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:54,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:54,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:57,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:57,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:58,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:58,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:58,1
    - Dst: Botan::TLS::Server_Hello_12::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:61,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:62,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:62,1
    - Dst: Botan::TLS::Server_Hello_12::supports_session_ticket
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:65,1
    - Dst: offer_session_ticket
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:65,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:66,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:66,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:69,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:70,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:71,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:73,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:73,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:85,1
    - Dst: SRTP_Protection_Profiles::SRTP_Protection_Profiles
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:85,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:91,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:91,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:91,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:93,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:93,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 36
    argCount: 9
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' client_hello'
    - ' server_settings'
    - next_protocol
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Policy
    - Callbacks
    - RandomNumberGenerator
    - std::vector<uint8_t>
    - Client_Hello_12
    - Server_Hello_12::Settings
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - std::make_unique<Server_Hello_Internal>
    - auto::ecc_ciphersuite
    - extension_types
    - SRTP_Protection_Profiles::SRTP_Protection_Profiles
    - std::string_view::empty
    - make_server_hello_random
    - protocol_version
    - type
    - offer_session_ticket
    - use_ecc_point_compression
    - tls_modify_extensions
    - Extended_Master_Secret::Extended_Master_Secret
    - Session_Ticket_Extension::Session_Ticket_Extension
    - Supported_Point_Formats::Supported_Point_Formats
    - Certificate_Status_Request::Certificate_Status_Request
    - std::vector::empty
    - supports_alpn
    - ciphersuite
    - extensions
    - negotiate_encrypt_then_mac
    - Botan::TLS::Ciphersuite::by_id
    - auto::cbc_ciphersuite
    - Botan::TLS::Server_Hello_12::secure_renegotiation
    - srtp_profiles
    - update
    - Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    - Botan::TLS::Server_Hello_12::supports_session_ticket
    - legacy_version
    - send
    - support_cert_status_message
    - Encrypt_then_MAC::Encrypt_then_MAC
    - Renegotiation_Extension::Renegotiation_Extension
    - Botan::TLS::Server_Hello_12::supports_extended_master_secret
    - session_id
    - supports_cert_status_message
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_12::Server_Hello_12(Handshake_IO& io,\n                                 Handshake_Hash&
      hash,\n                                 const Policy& policy,\n                                 Callbacks&
      cb,\n                                 RandomNumberGenerator& rng,\n                                 const
      std::vector<uint8_t>& reneg_info,\n                                 const Client_Hello_12&
      client_hello,\n                                 const Server_Hello_12::Settings&
      server_settings,\n                                 std::string_view next_protocol)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:107,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:107,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:108,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:109,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:110,1
    - Dst: Botan::TLS::Server_Hello_12::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:113,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:114,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:114,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:117,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:117,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:118,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:118,1
    - Dst: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:121,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:121,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:122,1
    - Dst: Ciphersuite::cbc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:123,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:124,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:124,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:128,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:129,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:130,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:130,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:130,1
    - Dst: Botan::TLS::Server_Hello_12::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:133,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:134,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:134,1
    - Dst: Botan::TLS::Server_Hello_12::supports_session_ticket
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:137,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:138,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:138,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:142,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:142,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:142,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:144,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:144,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 10
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' client_hello'
    - ' resumed_session'
    - offer_session_ticket
    - next_protocol
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Policy
    - Callbacks
    - RandomNumberGenerator
    - std::vector<uint8_t>
    - Client_Hello_12
    - Session
    - bool
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - std::make_unique<Server_Hello_Internal>
    - extension_types
    - std::string_view::empty
    - type
    - Ciphersuite::cbc_ciphersuite
    - use_ecc_point_compression
    - tls_modify_extensions
    - Session_Ticket_Extension::Session_Ticket_Extension
    - Supported_Point_Formats::Supported_Point_Formats
    - supports_alpn
    - ciphersuite
    - extensions
    - version
    - negotiate_encrypt_then_mac
    - ciphersuite_code
    - Botan::TLS::Server_Hello_12::secure_renegotiation
    - Botan::TLS::Server_Hello_12::supports_extended_master_secret
    - update
    - Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    - Botan::TLS::Server_Hello_12::supports_session_ticket
    - send
    - Encrypt_then_MAC::Encrypt_then_MAC
    - Renegotiation_Extension::Renegotiation_Extension
    - make_hello_random
    - session_id
    - Extended_Master_Secret::Extended_Master_Secret
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_12::Server_Hello_12(Handshake_IO& io,\n                                 Handshake_Hash&
      hash,\n                                 const Policy& policy,\n                                 Callbacks&
      cb,\n                                 RandomNumberGenerator& rng,\n                                 const
      std::vector<uint8_t>& reneg_info,\n                                 const Client_Hello_12&
      client_hello,\n                                 const Session& resumed_session,\n
      \                                bool offer_session_ticket,\n                                 std::string_view
      next_protocol)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Server_Hello_Internal>
    linkageType: ''
    returnType: void
    signature: void Server_Hello_12::Server_Hello_12(const std::vector<uint8_t>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_Hello_12::Server_Hello_12(std::unique_ptr<Server_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Botan::TLS::Server_Hello_12::secure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 4
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::secure_renegotiation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:157,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:158,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: Botan::TLS::Server_Hello_12::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - extensions
    - Renegotiation_Extension*::renegotiation_info
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Hello_12::renegotiation_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Server_Hello_12::supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 4
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::supports_extended_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 4
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::supports_encrypt_then_mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Server_Hello_12::supports_certificate_status_message
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::supports_certificate_status_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Server_Hello_12::supports_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 4
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::supports_session_ticket() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:180,1
    - Dst: auto*::profiles
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:181,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:182,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: Botan::TLS::Server_Hello_12::srtp_profile
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - extensions
    - auto::size
    - auto*::profiles
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t Server_Hello_12::srtp_profile() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:192,1
    - Dst: auto*::single_protocol
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: Botan::TLS::Server_Hello_12::next_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - auto*::single_protocol
    linkageType: ''
    returnType: std::string
    signature: std::string Server_Hello_12::next_protocol() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:199,1
    - Dst: auto*::prefers_compressed
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: Botan::TLS::Server_Hello_12::prefers_compressed_ec_points
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - auto*::prefers_compressed
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::prefers_compressed_ec_points() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:209,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' io'
    - ' hash'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan::TLS::Server_Hello_Done::Server_Hello_Done
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - update
    - send
    linkageType: ''
    returnType: void
    signature: void Server_Hello_Done::Server_Hello_Done(Handshake_IO& io, Handshake_Hash&
      hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:216,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: Botan::TLS::Server_Hello_Done::Server_Hello_Done
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Server_Hello_Done::Server_Hello_Done(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: Botan::TLS::Server_Hello_Done::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_hello_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Hello_Done::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Certificate_Request_12::~Certificate_Request_12()
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12::~Certificate_Request_12()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Certificate_Request_12::type
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type Certificate_Request_12::type() const
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: Botan::TLS::cert_type_code_to_name
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string cert_type_code_to_name(uint8_t code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:51,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan::TLS::cert_type_name_to_code
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t cert_type_name_to_code(std::string_view name)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: Botan::TLS::cert_type_code_to_name
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string cert_type_code_to_name(uint8_t code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:51,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan::TLS::cert_type_name_to_code
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t cert_type_name_to_code(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:64,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:65,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' ca_certs'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Policy
    - std::vector<X509_DN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Certificate_Request_12::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached:
    - update
    - acceptable_signature_schemes
    - send
    linkageType: ''
    returnType: void
    signature: "void Certificate_Request_12::Certificate_Request_12(Handshake_IO&
      io,\n                                               Handshake_Hash& hash,\n
      \                                              const Policy& policy,\n                                               const
      std::vector<X509_DN>& ca_certs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:72,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:73,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:78,1
    - Dst: cert_type_code_to_name
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:81,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:83,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:87,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:92,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:96,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:97,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:97,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:100,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:102,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:103,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:106,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:107,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:109,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:109,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:111,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:112,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 114
    functionName: Botan::TLS::Certificate_Request_12::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::has_remaining
    - TLS_Data_Reader::remaining_bytes
    - std::string::empty
    - Decoding_Error
    - cert_type_code_to_name
    - emplace_back
    - make_uint16
    - std::vector::data
    - size
    - TLS_Data_Reader::get_range_vector
    - TLS_Data_Reader::get_uint16_t
    - BER_Decoder::decode
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12::Certificate_Request_12(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: '& Certificate_Request_12::acceptable_cert_types() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & Certificate_Request_12::acceptable_cert_types()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: '& Certificate_Request_12::acceptable_CAs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<X509_DN>
    signature: std::vector<X509_DN> & Certificate_Request_12::acceptable_CAs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: '& Certificate_Request_12::signature_schemes() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> & Certificate_Request_12::signature_schemes()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:136,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:136,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:138,1
    - Dst: cert_type_name_to_code
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:138,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:141,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:143,1
    - Dst: Signature_Algorithms
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:144,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:151,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:153,1
    - Dst: DER_Encoder::get_contents
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:153,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 159
    functionName: Botan::TLS::Certificate_Request_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder::encode
    - std::vector::push_back
    - DER_Encoder::get_contents
    - std::vector::reserve
    - Signature_Algorithms
    - cert_type_name_to_code
    - size
    - append_tls_length_value
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Request_12::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Certificate_Request_12::~Certificate_Request_12()
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12::~Certificate_Request_12()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Certificate_Request_12::type
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type Certificate_Request_12::type() const
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: Botan::TLS::cert_type_code_to_name
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string cert_type_code_to_name(uint8_t code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:51,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan::TLS::cert_type_name_to_code
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t cert_type_name_to_code(std::string_view name)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: Botan::TLS::cert_type_code_to_name
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string cert_type_code_to_name(uint8_t code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:51,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan::TLS::cert_type_name_to_code
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t cert_type_name_to_code(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:64,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:65,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' ca_certs'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Policy
    - std::vector<X509_DN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Certificate_Request_12::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached:
    - update
    - acceptable_signature_schemes
    - send
    linkageType: ''
    returnType: void
    signature: "void Certificate_Request_12::Certificate_Request_12(Handshake_IO&
      io,\n                                               Handshake_Hash& hash,\n
      \                                              const Policy& policy,\n                                               const
      std::vector<X509_DN>& ca_certs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:72,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:73,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:78,1
    - Dst: cert_type_code_to_name
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:81,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:83,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:87,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:92,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:96,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:97,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:97,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:100,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:102,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:103,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:106,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:107,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:109,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:109,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:111,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:112,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 114
    functionName: Botan::TLS::Certificate_Request_12::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::has_remaining
    - TLS_Data_Reader::remaining_bytes
    - std::string::empty
    - Decoding_Error
    - cert_type_code_to_name
    - emplace_back
    - make_uint16
    - std::vector::data
    - size
    - TLS_Data_Reader::get_range_vector
    - TLS_Data_Reader::get_uint16_t
    - BER_Decoder::decode
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_12::Certificate_Request_12(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: '& Certificate_Request_12::acceptable_cert_types() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & Certificate_Request_12::acceptable_cert_types()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: '& Certificate_Request_12::acceptable_CAs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<X509_DN>
    signature: std::vector<X509_DN> & Certificate_Request_12::acceptable_CAs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: '& Certificate_Request_12::signature_schemes() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> & Certificate_Request_12::signature_schemes()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:136,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:136,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:138,1
    - Dst: cert_type_name_to_code
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:138,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:141,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:143,1
    - Dst: Signature_Algorithms
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:144,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:151,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:153,1
    - Dst: DER_Encoder::get_contents
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:153,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 159
    functionName: Botan::TLS::Certificate_Request_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_req_12.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder::encode
    - std::vector::push_back
    - DER_Encoder::get_contents
    - std::vector::reserve
    - Signature_Algorithms
    - cert_type_name_to_code
    - size
    - append_tls_length_value
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Request_12::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:24,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:24,1
    - Dst: cookie
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' hello_verify'
    argTypes:
    - Hello_Verify_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: Botan::TLS::Client_Hello_12::update_hello_cookie
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - cookie
    - legacy_version
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::update_hello_cookie(const Hello_Verify_Request&
      hello_verify)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:30,1
    - Dst: Supported_Point_Formats*::prefers_compressed
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Client_Hello_12::prefers_compressed_ec_points
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - Supported_Point_Formats*::prefers_compressed
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::prefers_compressed_ec_points() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Client_Hello_12::secure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::secure_renegotiation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:41,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Client_Hello_12::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - Renegotiation_Extension*::renegotiation_info
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Client_Hello_12::renegotiation_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Client_Hello_12::supports_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::supports_session_ticket() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:52,1
    - Dst: auto*::contents
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Client_Hello_12::session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - auto*::contents
    linkageType: ''
    returnType: Session_Ticket
    signature: Session_Ticket Client_Hello_12::session_ticket() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client_Hello_12::session_ticket
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:63,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:63,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:64,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:65,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:65,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Client_Hello_12::session_handle
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan::TLS::Client_Hello_12::session_ticket
    - Session_Handle
    - session_id
    - empty
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: std::optional<Session_Handle> Client_Hello_12::session_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::TLS::Client_Hello_12::supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::supports_extended_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Client_Hello_12::supports_cert_status_message
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::supports_cert_status_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan::TLS::Client_Hello_12::supports_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::supports_encrypt_then_mac() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:92,1
    - Dst: is_post_quantum
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:93,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:94,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:98,1
    - Dst: auto::ec_groups
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:100,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:102,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:102,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:102,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - std::vector::push_back
    - std::move
    - std::make_unique<Supported_Groups>
    - auto::ec_groups
    - use_ecc_point_compression
    - is_post_quantum
    - key_exchange_groups
    - Supported_Point_Formats::Supported_Point_Formats
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::add_tls12_supported_groups_extensions(const Policy&
      policy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:119,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:120,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:121,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:121,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:123,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:123,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:124,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:124,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:137,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:137,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:139,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:140,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:140,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:143,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:143,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:145,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:145,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:147,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:147,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:147,1
    - Dst: Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:149,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:149,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:150,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:150,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:150,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:153,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:154,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:154,1
    - Dst: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:157,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:159,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:159,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:159,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:160,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:165,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:165,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:165,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:165,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:168,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:168,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:169,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:169,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:172,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:173,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:173,1
    - Dst: SRTP_Protection_Profiles::SRTP_Protection_Profiles
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:173,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:178,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:178,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:178,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:180,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:180,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 8
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' client_settings'
    - ' next_protocols'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Policy
    - Callbacks
    - RandomNumberGenerator
    - std::vector<uint8_t>
    - Client_Hello_12::Settings
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 181
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 4
    functionsReached:
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - Signature_Algorithms::Signature_Algorithms
    - acceptable_signature_schemes
    - SRTP_Protection_Profiles::SRTP_Protection_Profiles
    - protocol_version
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    - type
    - empty
    - acceptable_protocol_version
    - ciphersuite_list
    - std::move
    - tls_modify_extensions
    - Session_Ticket_Extension::Session_Ticket_Extension
    - Certificate_Status_Request::Certificate_Status_Request
    - extensions
    - negotiate_encrypt_then_mac
    - Internal_Error
    - Server_Name_Indicator::Server_Name_Indicator
    - srtp_profiles
    - hostname
    - update
    - Supported_Versions::Supported_Versions
    - legacy_version
    - send
    - support_cert_status_message
    - Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
    - Encrypt_then_MAC::Encrypt_then_MAC
    - make_hello_random
    - auto::value
    - Renegotiation_Extension::Renegotiation_Extension
    - acceptable_certificate_signature_schemes
    - Extended_Master_Secret::Extended_Master_Secret
    linkageType: ''
    returnType: void
    signature: "void Client_Hello_12::Client_Hello_12(Handshake_IO& io,\n                                 Handshake_Hash&
      hash,\n                                 const Policy& policy,\n                                 Callbacks&
      cb,\n                                 RandomNumberGenerator& rng,\n                                 const
      std::vector<uint8_t>& reneg_info,\n                                 const Client_Hello_12::Settings&
      client_settings,\n                                 const std::vector<std::string>&
      next_protocols)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: session::version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:194,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:195,1
    - Dst: handle::id
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:202,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:202,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:202,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:203,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:203,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:205,1
    - Dst: session::version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:205,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:206,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:206,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:210,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:210,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:210,1
    - Dst: m_suites::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:211,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:211,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:221,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:221,1
    - Dst: session::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:223,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:224,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:224,1
    - Dst: handle::is_ticket
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:227,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:228,1
    - Dst: handle::ticket
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:228,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:228,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:231,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:231,1
    - Dst: session::server_info
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:233,1
    - Dst: Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:235,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:236,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:236,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:239,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:240,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:240,1
    - Dst: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:243,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:245,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:245,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:245,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:246,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:251,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:251,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:251,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:251,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:254,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:254,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:255,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:255,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:259,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:259,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:259,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:261,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:261,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 8
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' session'
    - ' next_protocols'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Policy
    - Callbacks
    - RandomNumberGenerator
    - std::vector<uint8_t>
    - Session_with_Handle
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 4
    functionsReached:
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - m_suites::push_back
    - Signature_Algorithms::Signature_Algorithms
    - acceptable_signature_schemes
    - handle::is_ticket
    - handle::ticket
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    - type
    - empty
    - acceptable_protocol_version
    - ciphersuite_list
    - Session_ID
    - std::move
    - value_exists
    - tls_modify_extensions
    - Extended_Master_Secret::Extended_Master_Secret
    - Session_Ticket_Extension::Session_Ticket_Extension
    - handle::id
    - ciphersuites
    - Certificate_Status_Request::Certificate_Status_Request
    - session::version
    - extensions
    - Internal_Error
    - Server_Name_Indicator::Server_Name_Indicator
    - update
    - legacy_version
    - session::server_info
    - session::supports_encrypt_then_mac
    - send
    - support_cert_status_message
    - Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
    - Encrypt_then_MAC::Encrypt_then_MAC
    - make_hello_random
    - auto::value
    - Renegotiation_Extension::Renegotiation_Extension
    - acceptable_certificate_signature_schemes
    - session::ciphersuite_code
    linkageType: ''
    returnType: void
    signature: "void Client_Hello_12::Client_Hello_12(Handshake_IO& io,\n                                 Handshake_Hash&
      hash,\n                                 const Policy& policy,\n                                 Callbacks&
      cb,\n                                 RandomNumberGenerator& rng,\n                                 const
      std::vector<uint8_t>& reneg_info,\n                                 const Session_with_Handle&
      session,\n                                 const std::vector<std::string>& next_protocols)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<Client_Hello_Internal>
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::Client_Hello_12(const std::vector<uint8_t>& buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:267,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:270,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:270,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:271,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:272,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:273,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:277,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 280
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 4
    functionsReached:
    - extensions
    - std::move
    - static_cast<uint16_t>
    - TLS_Exception
    - offered_suite
    - Renegotiation_Extension*::renegotiation_info
    - Renegotiation_Extension::Renegotiation_Extension
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::Client_Hello_12(std::unique_ptr<Client_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' io'
    argTypes:
    - Handshake_IO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: Botan::TLS::Hello_Request::Hello_Request
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - send
    linkageType: ''
    returnType: void
    signature: void Hello_Request::Hello_Request(Handshake_IO& io)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:287,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: Botan::TLS::Hello_Request::Hello_Request
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Hello_Request::Hello_Request(const std::vector<uint8_t>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: Botan::TLS::Hello_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hello_Request::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:24,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:24,1
    - Dst: cookie
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' hello_verify'
    argTypes:
    - Hello_Verify_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: Botan::TLS::Client_Hello_12::update_hello_cookie
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - cookie
    - legacy_version
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::update_hello_cookie(const Hello_Verify_Request&
      hello_verify)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:30,1
    - Dst: Supported_Point_Formats*::prefers_compressed
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Client_Hello_12::prefers_compressed_ec_points
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - Supported_Point_Formats*::prefers_compressed
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::prefers_compressed_ec_points() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Client_Hello_12::secure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::secure_renegotiation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:41,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Client_Hello_12::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - Renegotiation_Extension*::renegotiation_info
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Client_Hello_12::renegotiation_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Client_Hello_12::supports_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::supports_session_ticket() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:52,1
    - Dst: auto*::contents
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Client_Hello_12::session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 1
    functionsReached:
    - extensions
    - auto*::contents
    linkageType: ''
    returnType: Session_Ticket
    signature: Session_Ticket Client_Hello_12::session_ticket() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client_Hello_12::session_ticket
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:63,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:63,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:64,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:65,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:65,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Client_Hello_12::session_handle
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan::TLS::Client_Hello_12::session_ticket
    - Session_Handle
    - session_id
    - empty
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: std::optional<Session_Handle> Client_Hello_12::session_handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::TLS::Client_Hello_12::supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::supports_extended_master_secret() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Client_Hello_12::supports_cert_status_message
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::supports_cert_status_message() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan::TLS::Client_Hello_12::supports_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::supports_encrypt_then_mac() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:92,1
    - Dst: is_post_quantum
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:93,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:94,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:98,1
    - Dst: auto::ec_groups
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:100,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:102,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:102,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:102,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 2
    functionsReached:
    - extensions
    - std::vector::push_back
    - std::move
    - std::make_unique<Supported_Groups>
    - auto::ec_groups
    - use_ecc_point_compression
    - is_post_quantum
    - key_exchange_groups
    - Supported_Point_Formats::Supported_Point_Formats
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::add_tls12_supported_groups_extensions(const Policy&
      policy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:119,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:120,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:121,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:121,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:123,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:123,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:124,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:124,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:137,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:137,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:139,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:140,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:140,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:143,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:143,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:145,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:145,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:147,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:147,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:147,1
    - Dst: Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:149,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:149,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:150,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:150,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:150,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:153,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:154,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:154,1
    - Dst: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:157,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:159,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:159,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:159,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:160,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:165,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:165,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:165,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:165,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:168,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:168,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:169,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:169,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:172,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:173,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:173,1
    - Dst: SRTP_Protection_Profiles::SRTP_Protection_Profiles
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:173,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:178,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:178,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:178,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:180,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:180,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 8
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' client_settings'
    - ' next_protocols'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Policy
    - Callbacks
    - RandomNumberGenerator
    - std::vector<uint8_t>
    - Client_Hello_12::Settings
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 181
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 4
    functionsReached:
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - Signature_Algorithms::Signature_Algorithms
    - acceptable_signature_schemes
    - SRTP_Protection_Profiles::SRTP_Protection_Profiles
    - protocol_version
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    - type
    - empty
    - acceptable_protocol_version
    - ciphersuite_list
    - std::move
    - tls_modify_extensions
    - Session_Ticket_Extension::Session_Ticket_Extension
    - Certificate_Status_Request::Certificate_Status_Request
    - extensions
    - negotiate_encrypt_then_mac
    - Internal_Error
    - Server_Name_Indicator::Server_Name_Indicator
    - srtp_profiles
    - hostname
    - update
    - Supported_Versions::Supported_Versions
    - legacy_version
    - send
    - support_cert_status_message
    - Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
    - Encrypt_then_MAC::Encrypt_then_MAC
    - make_hello_random
    - auto::value
    - Renegotiation_Extension::Renegotiation_Extension
    - acceptable_certificate_signature_schemes
    - Extended_Master_Secret::Extended_Master_Secret
    linkageType: ''
    returnType: void
    signature: "void Client_Hello_12::Client_Hello_12(Handshake_IO& io,\n                                 Handshake_Hash&
      hash,\n                                 const Policy& policy,\n                                 Callbacks&
      cb,\n                                 RandomNumberGenerator& rng,\n                                 const
      std::vector<uint8_t>& reneg_info,\n                                 const Client_Hello_12::Settings&
      client_settings,\n                                 const std::vector<std::string>&
      next_protocols)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: session::version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:194,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:195,1
    - Dst: handle::id
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:202,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:202,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:202,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:203,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:203,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:205,1
    - Dst: session::version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:205,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:206,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:206,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:210,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:210,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:210,1
    - Dst: m_suites::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:211,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:211,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:221,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:221,1
    - Dst: session::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:223,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:224,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:224,1
    - Dst: handle::is_ticket
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:227,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:228,1
    - Dst: handle::ticket
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:228,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:228,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:231,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:231,1
    - Dst: session::server_info
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:233,1
    - Dst: Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:235,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:236,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:236,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:239,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:240,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:240,1
    - Dst: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:243,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:245,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:245,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:245,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:246,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:251,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:251,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:251,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:251,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:254,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:254,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:255,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:255,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:259,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:259,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:259,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:261,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:261,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 8
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' session'
    - ' next_protocols'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Policy
    - Callbacks
    - RandomNumberGenerator
    - std::vector<uint8_t>
    - Session_with_Handle
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 4
    functionsReached:
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - m_suites::push_back
    - Signature_Algorithms::Signature_Algorithms
    - acceptable_signature_schemes
    - handle::is_ticket
    - handle::ticket
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    - type
    - empty
    - acceptable_protocol_version
    - ciphersuite_list
    - Session_ID
    - std::move
    - value_exists
    - tls_modify_extensions
    - Extended_Master_Secret::Extended_Master_Secret
    - Session_Ticket_Extension::Session_Ticket_Extension
    - handle::id
    - ciphersuites
    - Certificate_Status_Request::Certificate_Status_Request
    - session::version
    - extensions
    - Internal_Error
    - Server_Name_Indicator::Server_Name_Indicator
    - update
    - legacy_version
    - session::server_info
    - session::supports_encrypt_then_mac
    - send
    - support_cert_status_message
    - Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
    - Encrypt_then_MAC::Encrypt_then_MAC
    - make_hello_random
    - auto::value
    - Renegotiation_Extension::Renegotiation_Extension
    - acceptable_certificate_signature_schemes
    - session::ciphersuite_code
    linkageType: ''
    returnType: void
    signature: "void Client_Hello_12::Client_Hello_12(Handshake_IO& io,\n                                 Handshake_Hash&
      hash,\n                                 const Policy& policy,\n                                 Callbacks&
      cb,\n                                 RandomNumberGenerator& rng,\n                                 const
      std::vector<uint8_t>& reneg_info,\n                                 const Session_with_Handle&
      session,\n                                 const std::vector<std::string>& next_protocols)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<Client_Hello_Internal>
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::Client_Hello_12(const std::vector<uint8_t>& buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:267,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:270,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:270,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:271,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:272,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:273,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:277,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 280
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 4
    functionsReached:
    - extensions
    - std::move
    - static_cast<uint16_t>
    - TLS_Exception
    - offered_suite
    - Renegotiation_Extension*::renegotiation_info
    - Renegotiation_Extension::Renegotiation_Extension
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::Client_Hello_12(std::unique_ptr<Client_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' io'
    argTypes:
    - Handshake_IO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: Botan::TLS::Hello_Request::Hello_Request
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - send
    linkageType: ''
    returnType: void
    signature: void Hello_Request::Hello_Request(Handshake_IO& io)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:287,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: Botan::TLS::Hello_Request::Hello_Request
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Hello_Request::Hello_Request(const std::vector<uint8_t>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: Botan::TLS::Hello_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_hello_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hello_Request::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Server_Impl_12::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string application_protocol() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Server_Impl_12::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string application_protocol() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:28,1
    - Dst: choose_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:30,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:33,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:33,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:35,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ' io'
    - ' state'
    - ' policy'
    - ' rng'
    - priv_key
    argTypes:
    - Handshake_IO
    - Handshake_State
    - Policy
    - RandomNumberGenerator
    - Private_Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Certificate_Verify_12::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp
    functionUses: 0
    functionsReached:
    - choose_sig_format
    - hash
    - send
    - callbacks
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void Certificate_Verify_12::Certificate_Verify_12(Handshake_IO& io,\n
      \                                            Handshake_State& state,\n                                             const
      Policy& policy,\n                                             RandomNumberGenerator&
      rng,\n                                             const Private_Key* priv_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:41,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:43,1
    - Dst: parse_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:46,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:46,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:49,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:49,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' cert'
    - ' state'
    - ' policy'
    argTypes:
    - X509_Certificate
    - Handshake_State
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Certificate_Verify_12::verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp
    functionUses: 0
    functionsReached:
    - hash
    - BOTAN_UNUSED
    - parse_sig_format
    - client_hello
    - subject_public_key
    - callbacks
    - check_peer_key_acceptable
    linkageType: ''
    returnType: bool
    signature: "bool Certificate_Verify_12::verify(const X509_Certificate& cert,\n
      \                                  const Handshake_State& state,\n                                   const
      Policy& policy) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:28,1
    - Dst: choose_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:30,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:33,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:33,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:35,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ' io'
    - ' state'
    - ' policy'
    - ' rng'
    - priv_key
    argTypes:
    - Handshake_IO
    - Handshake_State
    - Policy
    - RandomNumberGenerator
    - Private_Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Certificate_Verify_12::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp
    functionUses: 0
    functionsReached:
    - choose_sig_format
    - hash
    - send
    - callbacks
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void Certificate_Verify_12::Certificate_Verify_12(Handshake_IO& io,\n
      \                                            Handshake_State& state,\n                                             const
      Policy& policy,\n                                             RandomNumberGenerator&
      rng,\n                                             const Private_Key* priv_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:41,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:43,1
    - Dst: parse_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:46,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:46,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:49,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:49,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' cert'
    - ' state'
    - ' policy'
    argTypes:
    - X509_Certificate
    - Handshake_State
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Certificate_Verify_12::verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_verify_12.cpp
    functionUses: 0
    functionsReached:
    - hash
    - BOTAN_UNUSED
    - parse_sig_format
    - client_hello
    - subject_public_key
    - callbacks
    - check_peer_key_acceptable
    linkageType: ''
    returnType: bool
    signature: "bool Certificate_Verify_12::verify(const X509_Certificate& cert,\n
      \                                  const Handshake_State& state,\n                                   const
      Policy& policy) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::load_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - make_uint32
    linkageType: ''
    returnType: size_t
    signature: size_t load_be24(const uint8_t q[3])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:26,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:26,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:27,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:27,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:28,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - val
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::TLS::store_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: void
    signature: void store_be24(uint8_t out[3], size_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:32,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::TLS::steady_clock_ms
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t steady_clock_ms()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::load_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - make_uint32
    linkageType: ''
    returnType: size_t
    signature: size_t load_be24(const uint8_t q[3])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:26,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:26,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:27,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:27,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:28,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - val
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::TLS::store_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: void
    signature: void store_be24(uint8_t out[3], size_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:32,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::TLS::steady_clock_ms
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t steady_clock_ms()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::TLS::Stream_Handshake_IO::initial_record_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Stream_Handshake_IO::initial_record_version() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:47,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:47,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:50,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:54,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:55,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:55,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:57,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:57,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:57,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - record
    - record_len
    - record_type
    argTypes:
    - uint8_t[]
    - size_t
    - Record_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: Botan::TLS::Stream_Handshake_IO::add_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - Decoding_Error
    - insert
    - static_cast<size_t>
    - static_cast<uint8_t>
    - end
    linkageType: ''
    returnType: void
    signature: "void Stream_Handshake_IO::add_record(const uint8_t record[],\n                                     size_t
      record_len,\n                                     Record_Type record_type,\n
      \                                    uint64_t /*sequence_number*/)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:63,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:64,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:66,1
    - Dst: static_cast<Handshake_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:67,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:70,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:73,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:73,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:75,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:75,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:75,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:77,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:81,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 82
    functionName: Botan::TLS::Stream_Handshake_IO::get_next_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - static_cast<Handshake_Type>
    - erase
    - std::vector<uint8_t>
    - begin
    - std::make_pair
    - size
    - make_uint32
    linkageType: ''
    returnType: std::pair<Handshake_Type, std::vector<uint8_t>>
    signature: std::pair<Handshake_Type, std::vector<uint8_t>> Stream_Handshake_IO::get_next_record(bool
      /*expecting_ccs*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:85,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:87,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:89,1
    - Dst: store_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:91,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:93,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:94,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:94,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' msg'
    - type
    argTypes:
    - std::vector<uint8_t>
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Stream_Handshake_IO::format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - data
    - store_be24
    - size
    - copy_mem
    - static_cast<uint8_t>
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Stream_Handshake_IO::format(const std::vector<uint8_t>&
      msg, Handshake_Type type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Stream_Handshake_IO::send_under_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Stream_Handshake_IO::send_under_epoch(const Handshake_Message&
      /*msg*/, uint16_t /*epoch*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:105,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:107,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:108,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:109,1
    - Dst: Botan::TLS::Stream_Handshake_IO::format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:112,1
    - Dst: wire_type
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:112,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: Botan::TLS::Stream_Handshake_IO::send
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - serialize
    - Botan::TLS::Stream_Handshake_IO::format
    - wire_type
    - type
    - m_send_hs
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Stream_Handshake_IO::send(const Handshake_Message&
      msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: Botan::TLS::Datagram_Handshake_IO::initial_record_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Datagram_Handshake_IO::initial_record_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:122,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:122,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::retransmit_flight
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Datagram_Handshake_IO::retransmit_last_flight
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Datagram_Handshake_IO::retransmit_flight
    - size
    linkageType: ''
    returnType: void
    signature: void Datagram_Handshake_IO::retransmit_last_flight()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:127,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:129,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:129,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:139,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::send_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - flight_idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Datagram_Handshake_IO::retransmit_flight
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT
    - at
    - Botan::TLS::Datagram_Handshake_IO::send_message
    - empty
    - m_send_hs
    linkageType: ''
    returnType: void
    signature: void Datagram_Handshake_IO::retransmit_flight(size_t flight_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Datagram_Handshake_IO::have_more_data
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Datagram_Handshake_IO::have_more_data() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:152,1
    - Dst: rbegin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:152,1
    - Dst: steady_clock_ms
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:160,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::retransmit_last_flight
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:166,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 170
    functionName: Botan::TLS::Datagram_Handshake_IO::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - min
    - steady_clock_ms
    - size
    - rbegin
    - Botan::TLS::Datagram_Handshake_IO::retransmit_last_flight
    linkageType: ''
    returnType: bool
    signature: bool Datagram_Handshake_IO::timeout_check()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:176,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:180,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:184,1
    - Dst: static_cast<Handshake_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:195,1
    - Dst: load_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:196,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:197,1
    - Dst: load_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:198,1
    - Dst: load_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:199,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:204,1
    - Dst: add_fragment
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:208,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - record
    - record_len
    - record_type
    - record_sequence
    argTypes:
    - uint8_t[]
    - size_t
    - Record_Type
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 217
    functionName: Botan::TLS::Datagram_Handshake_IO::add_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - static_cast<Handshake_Type>
    - load_be
    - add_fragment
    - static_cast<uint16_t>
    - insert
    - load_be24
    linkageType: ''
    returnType: void
    signature: "void Datagram_Handshake_IO::add_record(const uint8_t record[],\n                                       size_t
      record_len,\n                                       Record_Type record_type,\n
      \                                      uint64_t record_sequence)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rbegin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:221,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:222,1
    - Dst: std::vector<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:222,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:226,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:227,1
    - Dst: epoch
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:227,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:229,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:230,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:230,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:233,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:233,1
    - Dst: find
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:236,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:238,1
    - Dst: auto::second::complete
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:238,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:239,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:239,1
    - Dst: auto::second::message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - expecting_ccs
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 245
    functionName: Botan::TLS::Datagram_Handshake_IO::get_next_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - auto::second::message
    - contains
    - find
    - std::vector<uint8_t>
    - begin
    - std::make_pair
    - epoch
    - end
    - empty
    - std::vector<uint16_t>
    - auto::second::complete
    - rbegin
    - push_back
    linkageType: ''
    returnType: std::pair<Handshake_Type, std::vector<uint8_t>>
    signature: std::pair<Handshake_Type, std::vector<uint8_t>> Datagram_Handshake_IO::get_next_record(bool
      expecting_ccs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:253,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:264,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:268,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:272,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:276,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:277,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:291,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:292,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:296,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 6
    argNames:
    - fragment
    - fragment_length
    - fragment_offset
    - epoch
    - msg_type
    - msg_length
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    - uint16_t
    - Handshake_Type
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 299
    functionName: "Datagram_Handshake_IO::Handshake_Reassembly::add_fragment(const
      uint8_t fragment[],\n                                                               size_t
      fragment_length,\n                                                               size_t
      fragment_offset,\n                                                               uint16_t
      epoch,\n                                                               Handshake_Type
      msg_type,\n                                                               size_t
      msg_length)"
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - resize
    - Decoding_Error
    - complete
    - size
    - clear
    - assign
    linkageType: ''
    returnType: void
    signature: "void Datagram_Handshake_IO::Handshake_Reassembly::add_fragment(const
      uint8_t fragment[],\n                                                               size_t
      fragment_length,\n                                                               size_t
      fragment_offset,\n                                                               uint16_t
      epoch,\n                                                               Handshake_Type
      msg_type,\n                                                               size_t
      msg_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: Datagram_Handshake_IO::Handshake_Reassembly::complete() const
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool Datagram_Handshake_IO::Handshake_Reassembly::complete() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:306,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:307,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: Datagram_Handshake_IO::Handshake_Reassembly::message() const
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Internal_Error
    - complete
    - std::make_pair
    linkageType: ''
    returnType: std::pair<Handshake_Type, std::vector<uint8_t>>
    signature: std::pair<Handshake_Type, std::vector<uint8_t>> Datagram_Handshake_IO::Handshake_Reassembly::message()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:321,1
    - Dst: store_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:323,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:325,1
    - Dst: store_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:327,1
    - Dst: store_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:328,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - fragment
    - frag_len
    - frag_offset
    - msg_len
    - type
    - msg_sequence
    argTypes:
    - uint8_t[]
    - size_t
    - uint16_t
    - uint16_t
    - Handshake_Type
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 335
    functionName: Botan::TLS::Datagram_Handshake_IO::format_fragment
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - store_be24
    - copy_mem
    - static_cast<uint8_t>
    - store_be
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Datagram_Handshake_IO::format_fragment(const
      uint8_t fragment[],\n                                                            size_t
      frag_len,\n                                                            uint16_t
      frag_offset,\n                                                            uint16_t
      msg_len,\n                                                            Handshake_Type
      type,\n                                                            uint16_t
      msg_sequence) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Datagram_Handshake_IO::format_fragment
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:340,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:340,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:340,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:340,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' msg'
    - type
    - msg_sequence
    argTypes:
    - std::vector<uint8_t>
    - Handshake_Type
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: Botan::TLS::Datagram_Handshake_IO::format_w_seq
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - size
    - data
    - static_cast<uint16_t>
    - Botan::TLS::Datagram_Handshake_IO::format_fragment
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Datagram_Handshake_IO::format_w_seq(const std::vector<uint8_t>&
      msg,\n                                                         Handshake_Type
      type,\n                                                         uint16_t msg_sequence)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Datagram_Handshake_IO::format_w_seq
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' msg'
    - type
    argTypes:
    - std::vector<uint8_t>
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: Botan::TLS::Datagram_Handshake_IO::format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Datagram_Handshake_IO::format_w_seq
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Datagram_Handshake_IO::format(const std::vector<uint8_t>&
      msg, Handshake_Type type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Datagram_Handshake_IO::send_under_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:348,1
    - Dst: current_write_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: Botan::TLS::Datagram_Handshake_IO::send
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - current_write_epoch
    - Botan::TLS::Datagram_Handshake_IO::send_under_epoch
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Datagram_Handshake_IO::send(const Handshake_Message&
      msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:352,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:353,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:356,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:357,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::send_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:360,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:362,1
    - Dst: rbegin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:366,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::Message_Info
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:367,1
    - Dst: steady_clock_ms
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:370,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::send_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ' msg'
    - epoch
    argTypes:
    - Handshake_Message
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 374
    functionName: Botan::TLS::Datagram_Handshake_IO::send_under_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 1
    functionsReached:
    - std::vector<uint8_t>
    - serialize
    - steady_clock_ms
    - Botan::TLS::Datagram_Handshake_IO::Message_Info
    - Botan::TLS::Datagram_Handshake_IO::send_message
    - type
    - rbegin
    - m_send_hs
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Datagram_Handshake_IO::send_under_epoch(const
      Handshake_Message& msg, uint16_t epoch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Datagram_Handshake_IO::format_w_seq
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:382,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:384,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:385,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:400,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:405,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:406,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:406,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::format_fragment
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:408,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:410,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:411,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:411,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - msg_seq
    - epoch
    - msg_type
    - ' msg_bits'
    argTypes:
    - uint16_t
    - uint16_t
    - Handshake_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 422
    functionName: Botan::TLS::Datagram_Handshake_IO::send_message
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 2
    functionsReached:
    - Invalid_Argument
    - Botan::TLS::Datagram_Handshake_IO::format_w_seq
    - auto::size
    - static_cast<uint16_t>
    - size
    - Botan::TLS::Datagram_Handshake_IO::format_fragment
    - std::min<size_t>
    - m_send_hs
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Datagram_Handshake_IO::send_message(uint16_t
      msg_seq,\n                                                         uint16_t
      epoch,\n                                                         Handshake_Type
      msg_type,\n                                                         const std::vector<uint8_t>&
      msg_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::load_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - make_uint32
    linkageType: ''
    returnType: size_t
    signature: size_t load_be24(const uint8_t q[3])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:26,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:26,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:27,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:27,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:28,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - val
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::TLS::store_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: void
    signature: void store_be24(uint8_t out[3], size_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:32,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::TLS::steady_clock_ms
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t steady_clock_ms()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::load_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - make_uint32
    linkageType: ''
    returnType: size_t
    signature: size_t load_be24(const uint8_t q[3])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:26,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:26,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:27,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:27,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:28,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - val
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::TLS::store_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::TLS::get_byte
    linkageType: ''
    returnType: void
    signature: void store_be24(uint8_t out[3], size_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:32,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::TLS::steady_clock_ms
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t steady_clock_ms()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::TLS::Stream_Handshake_IO::initial_record_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Stream_Handshake_IO::initial_record_version() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:47,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:47,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:50,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:54,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:55,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:55,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:57,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:57,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:57,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - record
    - record_len
    - record_type
    argTypes:
    - uint8_t[]
    - size_t
    - Record_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: Botan::TLS::Stream_Handshake_IO::add_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - Decoding_Error
    - insert
    - static_cast<size_t>
    - static_cast<uint8_t>
    - end
    linkageType: ''
    returnType: void
    signature: "void Stream_Handshake_IO::add_record(const uint8_t record[],\n                                     size_t
      record_len,\n                                     Record_Type record_type,\n
      \                                    uint64_t /*sequence_number*/)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:63,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:64,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:66,1
    - Dst: static_cast<Handshake_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:67,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:70,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:73,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:73,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:75,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:75,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:75,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:77,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:81,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 82
    functionName: Botan::TLS::Stream_Handshake_IO::get_next_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - static_cast<Handshake_Type>
    - erase
    - std::vector<uint8_t>
    - begin
    - std::make_pair
    - size
    - make_uint32
    linkageType: ''
    returnType: std::pair<Handshake_Type, std::vector<uint8_t>>
    signature: std::pair<Handshake_Type, std::vector<uint8_t>> Stream_Handshake_IO::get_next_record(bool
      /*expecting_ccs*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:85,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:87,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:89,1
    - Dst: store_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:91,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:93,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:94,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:94,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' msg'
    - type
    argTypes:
    - std::vector<uint8_t>
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Stream_Handshake_IO::format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 1
    functionsReached:
    - data
    - store_be24
    - size
    - copy_mem
    - static_cast<uint8_t>
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Stream_Handshake_IO::format(const std::vector<uint8_t>&
      msg, Handshake_Type type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Stream_Handshake_IO::send_under_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Stream_Handshake_IO::send_under_epoch(const Handshake_Message&
      /*msg*/, uint16_t /*epoch*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:105,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:107,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:108,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:109,1
    - Dst: Botan::TLS::Stream_Handshake_IO::format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:112,1
    - Dst: wire_type
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:112,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: Botan::TLS::Stream_Handshake_IO::send
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - serialize
    - Botan::TLS::Stream_Handshake_IO::format
    - wire_type
    - type
    - m_send_hs
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Stream_Handshake_IO::send(const Handshake_Message&
      msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: Botan::TLS::Datagram_Handshake_IO::initial_record_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Datagram_Handshake_IO::initial_record_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:122,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:122,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::retransmit_flight
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Datagram_Handshake_IO::retransmit_last_flight
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Datagram_Handshake_IO::retransmit_flight
    - size
    linkageType: ''
    returnType: void
    signature: void Datagram_Handshake_IO::retransmit_last_flight()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:127,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:129,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:129,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:139,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::send_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - flight_idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Datagram_Handshake_IO::retransmit_flight
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT
    - at
    - Botan::TLS::Datagram_Handshake_IO::send_message
    - empty
    - m_send_hs
    linkageType: ''
    returnType: void
    signature: void Datagram_Handshake_IO::retransmit_flight(size_t flight_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Datagram_Handshake_IO::have_more_data
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Datagram_Handshake_IO::have_more_data() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:152,1
    - Dst: rbegin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:152,1
    - Dst: steady_clock_ms
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:160,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::retransmit_last_flight
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:166,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 170
    functionName: Botan::TLS::Datagram_Handshake_IO::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - min
    - steady_clock_ms
    - size
    - rbegin
    - Botan::TLS::Datagram_Handshake_IO::retransmit_last_flight
    linkageType: ''
    returnType: bool
    signature: bool Datagram_Handshake_IO::timeout_check()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:176,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:180,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:184,1
    - Dst: static_cast<Handshake_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:195,1
    - Dst: load_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:196,1
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:197,1
    - Dst: load_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:198,1
    - Dst: load_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:199,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:204,1
    - Dst: add_fragment
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:208,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - record
    - record_len
    - record_type
    - record_sequence
    argTypes:
    - uint8_t[]
    - size_t
    - Record_Type
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 217
    functionName: Botan::TLS::Datagram_Handshake_IO::add_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - static_cast<Handshake_Type>
    - load_be
    - add_fragment
    - static_cast<uint16_t>
    - insert
    - load_be24
    linkageType: ''
    returnType: void
    signature: "void Datagram_Handshake_IO::add_record(const uint8_t record[],\n                                       size_t
      record_len,\n                                       Record_Type record_type,\n
      \                                      uint64_t record_sequence)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rbegin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:221,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:222,1
    - Dst: std::vector<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:222,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:226,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:227,1
    - Dst: epoch
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:227,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:229,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:230,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:230,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:233,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:233,1
    - Dst: find
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:236,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:238,1
    - Dst: auto::second::complete
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:238,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:239,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:239,1
    - Dst: auto::second::message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - expecting_ccs
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 245
    functionName: Botan::TLS::Datagram_Handshake_IO::get_next_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - auto::second::message
    - contains
    - find
    - std::vector<uint8_t>
    - begin
    - std::make_pair
    - epoch
    - end
    - empty
    - std::vector<uint16_t>
    - auto::second::complete
    - rbegin
    - push_back
    linkageType: ''
    returnType: std::pair<Handshake_Type, std::vector<uint8_t>>
    signature: std::pair<Handshake_Type, std::vector<uint8_t>> Datagram_Handshake_IO::get_next_record(bool
      expecting_ccs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:253,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:264,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:268,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:272,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:276,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:277,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:291,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:292,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:296,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 6
    argNames:
    - fragment
    - fragment_length
    - fragment_offset
    - epoch
    - msg_type
    - msg_length
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    - uint16_t
    - Handshake_Type
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 299
    functionName: "Datagram_Handshake_IO::Handshake_Reassembly::add_fragment(const
      uint8_t fragment[],\n                                                               size_t
      fragment_length,\n                                                               size_t
      fragment_offset,\n                                                               uint16_t
      epoch,\n                                                               Handshake_Type
      msg_type,\n                                                               size_t
      msg_length)"
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - resize
    - Decoding_Error
    - complete
    - size
    - clear
    - assign
    linkageType: ''
    returnType: void
    signature: "void Datagram_Handshake_IO::Handshake_Reassembly::add_fragment(const
      uint8_t fragment[],\n                                                               size_t
      fragment_length,\n                                                               size_t
      fragment_offset,\n                                                               uint16_t
      epoch,\n                                                               Handshake_Type
      msg_type,\n                                                               size_t
      msg_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: Datagram_Handshake_IO::Handshake_Reassembly::complete() const
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool Datagram_Handshake_IO::Handshake_Reassembly::complete() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: complete
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:306,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:307,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: Datagram_Handshake_IO::Handshake_Reassembly::message() const
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Internal_Error
    - complete
    - std::make_pair
    linkageType: ''
    returnType: std::pair<Handshake_Type, std::vector<uint8_t>>
    signature: std::pair<Handshake_Type, std::vector<uint8_t>> Datagram_Handshake_IO::Handshake_Reassembly::message()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:321,1
    - Dst: store_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:323,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:325,1
    - Dst: store_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:327,1
    - Dst: store_be24
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:328,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - fragment
    - frag_len
    - frag_offset
    - msg_len
    - type
    - msg_sequence
    argTypes:
    - uint8_t[]
    - size_t
    - uint16_t
    - uint16_t
    - Handshake_Type
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 335
    functionName: Botan::TLS::Datagram_Handshake_IO::format_fragment
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 2
    functionsReached:
    - store_be24
    - copy_mem
    - static_cast<uint8_t>
    - store_be
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Datagram_Handshake_IO::format_fragment(const
      uint8_t fragment[],\n                                                            size_t
      frag_len,\n                                                            uint16_t
      frag_offset,\n                                                            uint16_t
      msg_len,\n                                                            Handshake_Type
      type,\n                                                            uint16_t
      msg_sequence) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Datagram_Handshake_IO::format_fragment
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:340,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:340,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:340,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:340,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' msg'
    - type
    - msg_sequence
    argTypes:
    - std::vector<uint8_t>
    - Handshake_Type
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: Botan::TLS::Datagram_Handshake_IO::format_w_seq
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 2
    functionsReached:
    - size
    - data
    - static_cast<uint16_t>
    - Botan::TLS::Datagram_Handshake_IO::format_fragment
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Datagram_Handshake_IO::format_w_seq(const std::vector<uint8_t>&
      msg,\n                                                         Handshake_Type
      type,\n                                                         uint16_t msg_sequence)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Datagram_Handshake_IO::format_w_seq
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' msg'
    - type
    argTypes:
    - std::vector<uint8_t>
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: Botan::TLS::Datagram_Handshake_IO::format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Datagram_Handshake_IO::format_w_seq
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Datagram_Handshake_IO::format(const std::vector<uint8_t>&
      msg, Handshake_Type type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Datagram_Handshake_IO::send_under_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:348,1
    - Dst: current_write_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: Botan::TLS::Datagram_Handshake_IO::send
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - current_write_epoch
    - Botan::TLS::Datagram_Handshake_IO::send_under_epoch
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Datagram_Handshake_IO::send(const Handshake_Message&
      msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:352,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:353,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:356,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:357,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::send_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:360,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:362,1
    - Dst: rbegin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:366,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::Message_Info
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:367,1
    - Dst: steady_clock_ms
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:370,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::send_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ' msg'
    - epoch
    argTypes:
    - Handshake_Message
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 351
    functionDepth: 4
    functionLinenumber: 351
    functionLinenumberEnd: 374
    functionName: Botan::TLS::Datagram_Handshake_IO::send_under_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 2
    functionsReached:
    - std::vector<uint8_t>
    - serialize
    - steady_clock_ms
    - Botan::TLS::Datagram_Handshake_IO::Message_Info
    - Botan::TLS::Datagram_Handshake_IO::send_message
    - type
    - rbegin
    - m_send_hs
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Datagram_Handshake_IO::send_under_epoch(const
      Handshake_Message& msg, uint16_t epoch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Datagram_Handshake_IO::format_w_seq
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:382,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:384,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:385,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:400,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:405,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:406,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:406,1
    - Dst: Botan::TLS::Datagram_Handshake_IO::format_fragment
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:408,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:410,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:411,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:411,1
    - Dst: m_send_hs
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - msg_seq
    - epoch
    - msg_type
    - ' msg_bits'
    argTypes:
    - uint16_t
    - uint16_t
    - Handshake_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 422
    functionName: Botan::TLS::Datagram_Handshake_IO::send_message
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 4
    functionsReached:
    - Invalid_Argument
    - Botan::TLS::Datagram_Handshake_IO::format_w_seq
    - auto::size
    - static_cast<uint16_t>
    - size
    - Botan::TLS::Datagram_Handshake_IO::format_fragment
    - std::min<size_t>
    - m_send_hs
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Datagram_Handshake_IO::send_message(uint16_t
      msg_seq,\n                                                         uint16_t
      epoch,\n                                                         Handshake_Type
      msg_type,\n                                                         const std::vector<uint8_t>&
      msg_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Handshake_State::Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State(const Handshake_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Handshake_State::Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State(Handshake_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: '& operator=(const Handshake_State& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State & operator=(const Handshake_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& operator=(Handshake_State&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State & operator=(Handshake_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& handshake_io()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_IO
    signature: Handshake_IO & handshake_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Handshake_State::version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::TLS::Handshake_State::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 4
    functionsReached:
    - get
    linkageType: ''
    returnType: Client_Hello_12
    signature: Client_Hello_12 * client_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::Handshake_State::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Hello_12
    signature: Server_Hello_12 * server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan::TLS::Handshake_State::server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_12
    signature: Certificate_12 * server_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Handshake_State::server_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Key_Exchange
    signature: Server_Key_Exchange * server_kex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Handshake_State::cert_req
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 4
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Request_12
    signature: Certificate_Request_12 * cert_req() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Handshake_State::server_hello_done
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Hello_Done
    signature: Server_Hello_Done * server_hello_done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: Botan::TLS::Handshake_State::client_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_12
    signature: Certificate_12 * client_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Handshake_State::client_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: Client_Key_Exchange
    signature: Client_Key_Exchange * client_kex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::TLS::Handshake_State::client_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Verify_12
    signature: Certificate_Verify_12 * client_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Handshake_State::server_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Verify_12
    signature: Certificate_Verify_12 * server_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan::TLS::Handshake_State::server_cert_status
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Status
    signature: Certificate_Status * server_cert_status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Handshake_State::new_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: New_Session_Ticket_12
    signature: New_Session_Ticket_12 * new_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Handshake_State::server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Finished_12
    signature: Finished_12 * server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: Botan::TLS::Handshake_State::client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Finished_12
    signature: Finished_12 * client_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: '& session_keys() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_Keys
    signature: Session_Keys & session_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: '& callbacks() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Callbacks
    signature: Callbacks & callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: '& hash()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Hash
    signature: Handshake_Hash & hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: '& hash() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Hash
    signature: Handshake_Hash & hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Handshake_State::Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State(const Handshake_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Handshake_State::Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State(Handshake_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: '& operator=(const Handshake_State& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State & operator=(const Handshake_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& operator=(Handshake_State&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State & operator=(Handshake_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& handshake_io()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_IO
    signature: Handshake_IO & handshake_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Handshake_State::version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::TLS::Handshake_State::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 4
    functionsReached:
    - get
    linkageType: ''
    returnType: Client_Hello_12
    signature: Client_Hello_12 * client_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::Handshake_State::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Hello_12
    signature: Server_Hello_12 * server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan::TLS::Handshake_State::server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_12
    signature: Certificate_12 * server_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Handshake_State::server_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Key_Exchange
    signature: Server_Key_Exchange * server_kex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Handshake_State::cert_req
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 4
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Request_12
    signature: Certificate_Request_12 * cert_req() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Handshake_State::server_hello_done
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Hello_Done
    signature: Server_Hello_Done * server_hello_done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: Botan::TLS::Handshake_State::client_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_12
    signature: Certificate_12 * client_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Handshake_State::client_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: Client_Key_Exchange
    signature: Client_Key_Exchange * client_kex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::TLS::Handshake_State::client_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Verify_12
    signature: Certificate_Verify_12 * client_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Handshake_State::server_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Verify_12
    signature: Certificate_Verify_12 * server_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan::TLS::Handshake_State::server_cert_status
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Status
    signature: Certificate_Status * server_cert_status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Handshake_State::new_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: New_Session_Ticket_12
    signature: New_Session_Ticket_12 * new_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Handshake_State::server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Finished_12
    signature: Finished_12 * server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: Botan::TLS::Handshake_State::client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Finished_12
    signature: Finished_12 * client_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: '& session_keys() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_Keys
    signature: Session_Keys & session_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: '& callbacks() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Callbacks
    signature: Callbacks & callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: '& hash()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Hash
    signature: Handshake_Hash & hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: '& hash() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Hash
    signature: Handshake_Hash & hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Handshake_State::Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State(const Handshake_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Handshake_State::Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State(Handshake_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: '& operator=(const Handshake_State& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State & operator=(const Handshake_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& operator=(Handshake_State&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State & operator=(Handshake_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& handshake_io()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_IO
    signature: Handshake_IO & handshake_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Handshake_State::version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::TLS::Handshake_State::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 4
    functionsReached:
    - get
    linkageType: ''
    returnType: Client_Hello_12
    signature: Client_Hello_12 * client_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::Handshake_State::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Hello_12
    signature: Server_Hello_12 * server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan::TLS::Handshake_State::server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_12
    signature: Certificate_12 * server_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Handshake_State::server_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Key_Exchange
    signature: Server_Key_Exchange * server_kex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Handshake_State::cert_req
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 4
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Request_12
    signature: Certificate_Request_12 * cert_req() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Handshake_State::server_hello_done
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Hello_Done
    signature: Server_Hello_Done * server_hello_done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: Botan::TLS::Handshake_State::client_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_12
    signature: Certificate_12 * client_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Handshake_State::client_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: Client_Key_Exchange
    signature: Client_Key_Exchange * client_kex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::TLS::Handshake_State::client_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Verify_12
    signature: Certificate_Verify_12 * client_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Handshake_State::server_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Verify_12
    signature: Certificate_Verify_12 * server_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan::TLS::Handshake_State::server_cert_status
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Status
    signature: Certificate_Status * server_cert_status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Handshake_State::new_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: New_Session_Ticket_12
    signature: New_Session_Ticket_12 * new_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Handshake_State::server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Finished_12
    signature: Finished_12 * server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: Botan::TLS::Handshake_State::client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Finished_12
    signature: Finished_12 * client_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: '& session_keys() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_Keys
    signature: Session_Keys & session_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: '& callbacks() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Callbacks
    signature: Callbacks & callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: '& hash()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Hash
    signature: Handshake_Hash & hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: '& hash() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Hash
    signature: Handshake_Hash & hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Handshake_State::Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State(const Handshake_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Handshake_State::Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Handshake_State(Handshake_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: '& operator=(const Handshake_State& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State & operator=(const Handshake_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& operator=(Handshake_State&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State & operator=(Handshake_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& handshake_io()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_IO
    signature: Handshake_IO & handshake_io()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Handshake_State::version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::TLS::Handshake_State::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 4
    functionsReached:
    - get
    linkageType: ''
    returnType: Client_Hello_12
    signature: Client_Hello_12 * client_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::Handshake_State::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Hello_12
    signature: Server_Hello_12 * server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan::TLS::Handshake_State::server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_12
    signature: Certificate_12 * server_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Handshake_State::server_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Key_Exchange
    signature: Server_Key_Exchange * server_kex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Handshake_State::cert_req
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 4
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Request_12
    signature: Certificate_Request_12 * cert_req() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Handshake_State::server_hello_done
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Server_Hello_Done
    signature: Server_Hello_Done * server_hello_done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: Botan::TLS::Handshake_State::client_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_12
    signature: Certificate_12 * client_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Handshake_State::client_kex
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: Client_Key_Exchange
    signature: Client_Key_Exchange * client_kex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::TLS::Handshake_State::client_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Verify_12
    signature: Certificate_Verify_12 * client_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Handshake_State::server_verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Verify_12
    signature: Certificate_Verify_12 * server_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan::TLS::Handshake_State::server_cert_status
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Certificate_Status
    signature: Certificate_Status * server_cert_status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan::TLS::Handshake_State::new_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: New_Session_Ticket_12
    signature: New_Session_Ticket_12 * new_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Handshake_State::server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Finished_12
    signature: Finished_12 * server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: Botan::TLS::Handshake_State::client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Finished_12
    signature: Finished_12 * client_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: '& session_keys() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_Keys
    signature: Session_Keys & session_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: '& callbacks() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Callbacks
    signature: Callbacks & callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: '& hash()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Hash
    signature: Handshake_Hash & hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: '& hash() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Hash
    signature: Handshake_Hash & hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Server_Handshake_State::Server_Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_Handshake_State(std::unique_ptr<Handshake_IO> io, Callbacks&
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Server_Handshake_State::server_rsa_kex_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Private_Key
    signature: Private_Key * server_rsa_kex_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::shared_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Server_Handshake_State::set_server_rsa_kex_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_server_rsa_kex_key(std::shared_ptr<Private_Key> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::TLS::Server_Handshake_State::allow_session_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_session_resumption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allow_session_resumption
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Server_Handshake_State::set_allow_session_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_allow_session_resumption(bool allow_session_resumption)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& resume_peer_certs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> & resume_peer_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' certs'
    argTypes:
    - std::vector<X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::TLS::Server_Handshake_State::set_resume_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_resume_certs(const std::vector<X509_Certificate>& certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Server_Handshake_State::mark_as_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mark_as_resumption()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Server_Handshake_State::is_a_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_a_resumption() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: retrieve
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:68,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:69,1
    - Dst: Client_Hello_12*::legacy_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:74,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:74,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: Client_Hello_12*::ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: auto::server_info
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: Client_Hello_12*::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:89,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:89,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:90,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:97,1
    - Dst: Client_Hello_12*::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:102,1
    - Dst: auto::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:102,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 5
    argNames:
    - ' handle_to_resume'
    - ' session_manager'
    - ' cb'
    - ' policy'
    - client_hello
    argTypes:
    - Session_Handle
    - Session_Manager
    - Callbacks
    - Policy
    - Client_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 111
    functionName: Botan::TLS::check_for_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - auto::version
    - auto::supports_encrypt_then_mac
    - auto::supports_extended_master_secret
    - Client_Hello_12*::legacy_version
    - Client_Hello_12*::ciphersuites
    - auto::ciphersuite_code
    - value_exists
    - auto::server_info
    - Client_Hello_12*::supports_encrypt_then_mac
    - TLS_Exception
    - Client_Hello_12*::sni_hostname
    - auto::has_value
    - retrieve
    - Client_Hello_12*::supports_extended_master_secret
    linkageType: ''
    returnType: std::optional<Session>
    signature: "std::optional<Session> check_for_resume(const Session_Handle& handle_to_resume,\n
      \                                       Session_Manager& session_manager,\n
      \                                       Callbacks& cb,\n                                        const
      Policy& policy,\n                                        const Client_Hello_12*
      client_hello)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:120,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:121,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:122,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:124,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:125,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:129,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:129,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:134,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:134,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:143,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:147,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:151,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:153,1
    - Dst: auto::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:153,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:157,1
    - Dst: auto::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:161,1
    - Dst: auto::signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:166,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:167,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:170,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:174,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:176,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:186,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:190,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:190,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:191,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:191,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:197,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:212,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:215,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 40
    argCount: 4
    argNames:
    - ' policy'
    - version
    - ' cert_chains'
    - ' client_hello'
    argTypes:
    - Policy
    - Protocol_Version
    - std::map<std::string, std::vector<X509_Certificate>>
    - Client_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 216
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - choose_key_exchange_group
    - auto::signature_used
    - contains
    - server_uses_own_ciphersuite_preferences
    - auto::valid
    - auto::ecc_ciphersuite
    - supported_dh_groups
    - hash_function_name
    - ciphersuite_list
    - supported_ecc_curves
    - value_exists
    - allowed_signature_schemes
    - is_available
    - auto::sig_algo
    - ciphersuites
    - std::vector::empty
    - std::swap
    - signature_schemes
    - TLS_Exception
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - allowed_signature_hash
    - auto::kex_method
    - algorithm_name
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t choose_ciphersuite(const Policy& policy,\n                            Protocol_Version
      version,\n                            const std::map<std::string, std::vector<X509_Certificate>>&
      cert_chains,\n                            const Client_Hello_12& client_hello)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_chain_single_type
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:225,1
    - Dst: Botan::TLS::to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:226,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:226,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - hostname
    - ' cert_sig_schemes'
    - ' creds'
    argTypes:
    - std::string_view
    - std::vector<Signature_Scheme>
    - Credentials_Manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: Botan::TLS::get_server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::to_algorithm_identifiers
    - cert_chain_single_type
    - std::string
    - std::vector::empty
    linkageType: ''
    returnType: std::map<std::string, std::vector<X509_Certificate>>
    signature: "std::map<std::string, std::vector<X509_Certificate>> get_server_certs(\n
      \  std::string_view hostname, const std::vector<Signature_Scheme>& cert_sig_schemes,
      Credentials_Manager& creds)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: retrieve
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:68,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:69,1
    - Dst: Client_Hello_12*::legacy_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:74,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:74,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: Client_Hello_12*::ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: auto::server_info
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: Client_Hello_12*::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:89,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:89,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:90,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:97,1
    - Dst: Client_Hello_12*::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:102,1
    - Dst: auto::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:102,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 5
    argNames:
    - ' handle_to_resume'
    - ' session_manager'
    - ' cb'
    - ' policy'
    - client_hello
    argTypes:
    - Session_Handle
    - Session_Manager
    - Callbacks
    - Policy
    - Client_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 111
    functionName: Botan::TLS::check_for_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - auto::version
    - auto::supports_encrypt_then_mac
    - auto::supports_extended_master_secret
    - Client_Hello_12*::legacy_version
    - Client_Hello_12*::ciphersuites
    - auto::ciphersuite_code
    - value_exists
    - auto::server_info
    - Client_Hello_12*::supports_encrypt_then_mac
    - TLS_Exception
    - Client_Hello_12*::sni_hostname
    - auto::has_value
    - retrieve
    - Client_Hello_12*::supports_extended_master_secret
    linkageType: ''
    returnType: std::optional<Session>
    signature: "std::optional<Session> check_for_resume(const Session_Handle& handle_to_resume,\n
      \                                       Session_Manager& session_manager,\n
      \                                       Callbacks& cb,\n                                        const
      Policy& policy,\n                                        const Client_Hello_12*
      client_hello)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:120,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:121,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:122,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:124,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:125,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:129,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:129,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:134,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:134,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:143,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:147,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:151,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:153,1
    - Dst: auto::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:153,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:157,1
    - Dst: auto::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:161,1
    - Dst: auto::signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:166,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:167,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:170,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:174,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:176,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:186,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:190,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:190,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:191,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:191,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:197,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:212,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:215,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 40
    argCount: 4
    argNames:
    - ' policy'
    - version
    - ' cert_chains'
    - ' client_hello'
    argTypes:
    - Policy
    - Protocol_Version
    - std::map<std::string, std::vector<X509_Certificate>>
    - Client_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 216
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - choose_key_exchange_group
    - auto::signature_used
    - contains
    - server_uses_own_ciphersuite_preferences
    - auto::valid
    - auto::ecc_ciphersuite
    - supported_dh_groups
    - hash_function_name
    - ciphersuite_list
    - supported_ecc_curves
    - value_exists
    - allowed_signature_schemes
    - is_available
    - auto::sig_algo
    - ciphersuites
    - std::vector::empty
    - std::swap
    - signature_schemes
    - TLS_Exception
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - allowed_signature_hash
    - auto::kex_method
    - algorithm_name
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t choose_ciphersuite(const Policy& policy,\n                            Protocol_Version
      version,\n                            const std::map<std::string, std::vector<X509_Certificate>>&
      cert_chains,\n                            const Client_Hello_12& client_hello)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_chain_single_type
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:225,1
    - Dst: Botan::TLS::to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:226,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:226,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - hostname
    - ' cert_sig_schemes'
    - ' creds'
    argTypes:
    - std::string_view
    - std::vector<Signature_Scheme>
    - Credentials_Manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: Botan::TLS::get_server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::to_algorithm_identifiers
    - cert_chain_single_type
    - std::string
    - std::vector::empty
    linkageType: ''
    returnType: std::map<std::string, std::vector<X509_Certificate>>
    signature: "std::map<std::string, std::vector<X509_Certificate>> get_server_certs(\n
      \  std::string_view hostname, const std::vector<Signature_Scheme>& cert_sig_schemes,
      Credentials_Manager& creds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' creds'
    - ' policy'
    - ' rng'
    - is_datagram
    - io_buf_sz
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: Botan::TLS::Server_Impl_12::Server_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::Server_Impl_12(const std::shared_ptr<Callbacks>&
      callbacks,\n                               const std::shared_ptr<Session_Manager>&
      session_manager,\n                               const std::shared_ptr<Credentials_Manager>&
      creds,\n                               const std::shared_ptr<const Policy>&
      policy,\n                               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                               bool is_datagram,\n                               size_t
      io_buf_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' downgrade_info'
    argTypes:
    - Channel_Impl::Downgrade_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 257
    functionName: Botan::TLS::Server_Impl_12::Server_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Impl_12::Server_Impl_12(const Channel_Impl::Downgrade_Information&
      downgrade_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Handshake_State>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:260,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:260,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:260,1
    - Dst: auto::set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io
    argTypes:
    - std::unique_ptr<Handshake_IO>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: Botan::TLS::Server_Impl_12::new_handshake_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::set_expected_next
    - std::make_unique<Server_Handshake_State>
    - callbacks
    linkageType: ''
    returnType: std::unique_ptr<Handshake_State>
    signature: std::unique_ptr<Handshake_State> Server_Impl_12::new_handshake_state(std::unique_ptr<Handshake_IO>
      io)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const Server_Handshake_State&>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:266,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:267,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:268,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:271,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:272,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' state_base'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: Botan::TLS::Server_Impl_12::get_peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const Server_Handshake_State&>
    - client_certs
    - resume_peer_certs
    - std::vector<X509_Certificate>
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Server_Impl_12::get_peer_cert_chain(const
      Handshake_State& state_base) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<Server_Handshake_State&>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:281,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - force_full_renegotiation
    argTypes:
    - Handshake_State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: Botan::TLS::Server_Impl_12::initiate_handshake
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - handshake_io
    - dynamic_cast<Server_Handshake_State&>
    linkageType: ''
    returnType: void
    signature: void Server_Impl_12::initiate_handshake(Handshake_State& state, bool
      force_full_renegotiation)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:292,1
    - Dst: Protocol_Version::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:293,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:295,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:300,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:305,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:318,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:320,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:320,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:327,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:331,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:336,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:337,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 4
    argNames:
    - ' policy'
    - client_offer
    - active_version
    - ' supported_versions'
    argTypes:
    - TLS::Policy
    - Protocol_Version
    - Protocol_Version
    - std::vector<Protocol_Version>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 338
    functionName: Botan::TLS::select_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - allow_tls12
    - Protocol_Version::to_string
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::empty
    - value_exists
    - Protocol_Version::valid
    - allow_dtls12
    - TLS_Exception
    - Botan::TLS::Protocol_Version
    linkageType: ''
    returnType: Protocol_Version
    signature: "Protocol_Version select_version(const TLS::Policy& policy,\n                                Protocol_Version
      client_offer,\n                                Protocol_Version active_version,\n
      \                               const std::vector<Protocol_Version>& supported_versions)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:292,1
    - Dst: Protocol_Version::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:293,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:295,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:300,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:305,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:318,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:320,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:320,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:327,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:331,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:336,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:337,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 4
    argNames:
    - ' policy'
    - client_offer
    - active_version
    - ' supported_versions'
    argTypes:
    - TLS::Policy
    - Protocol_Version
    - Protocol_Version
    - std::vector<Protocol_Version>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 338
    functionName: Botan::TLS::select_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - allow_tls12
    - Protocol_Version::to_string
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::empty
    - value_exists
    - Protocol_Version::valid
    - allow_dtls12
    - TLS_Exception
    - Botan::TLS::Protocol_Version
    linkageType: ''
    returnType: Protocol_Version
    signature: "Protocol_Version select_version(const TLS::Policy& policy,\n                                Protocol_Version
      client_offer,\n                                Protocol_Version active_version,\n
      \                               const std::vector<Protocol_Version>& supported_versions)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:348,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:352,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:353,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:354,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:356,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:361,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:361,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:362,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:366,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:367,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:370,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:370,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:371,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:372,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:375,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:376,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:379,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:380,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:382,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:382,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:383,1
    - Dst: select_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:398,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:398,1
    - Dst: Handshake_State*::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:400,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:400,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:401,1
    - Dst: set_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:403,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:405,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:406,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:407,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:414,1
    - Dst: SymmetricKey::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:417,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:418,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:420,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:422,1
    - Dst: Hello_Verify_Request::cookie
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:422,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:424,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:426,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:429,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:430,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:434,1
    - Dst: reset_active_association_state
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:440,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:443,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:443,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:445,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:446,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:448,1
    - Dst: allow_session_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:451,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:451,1
    - Dst: check_for_resume
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:452,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:453,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:453,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:453,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:453,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:453,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:457,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:458,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:458,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:461,1
    - Dst: Botan::TLS::Server_Impl_12::session_resume
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:462,1
    - Dst: std::optional::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:462,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:462,1
    - Dst: Botan::TLS::Server_Impl_12::session_create
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:465,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 72
    argCount: 4
    argNames:
    - active_state
    - ' pending_state'
    - ' contents'
    - epoch0_restart
    argTypes:
    - Handshake_State*
    - Server_Handshake_State
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 467
    functionName: Botan::TLS::Server_Impl_12::process_client_hello_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - policy
    - callbacks
    - Botan::TLS::Server_Impl_12::session_create
    - Botan::TLS::Server_Impl_12::session_resume
    - std::optional::has_value
    - Protocol_Version
    - Hello_Verify_Request::cookie
    - allow_session_resumption
    - handshake_io
    - Protocol_Version::minor_version
    - value_exists
    - psk
    - check_for_resume
    - secure_renegotiation_check
    - select_version
    - session_manager
    - Handshake_State*::version
    - std::make_unique<Client_Hello_12>
    - Protocol_Version::is_datagram_protocol
    - client_hello
    - send_warning_alert
    - TLS_Exception
    - auto::has_value
    - std::optional::value
    - SymmetricKey::empty
    - reset_active_association_state
    - secure_renegotiation_supported
    - BOTAN_ASSERT_IMPLICATION
    - set_expected_next
    - Protocol_Version::major_version
    - set_version
    - auto::value
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_client_hello_msg(const Handshake_State*
      active_state,\n                                              Server_Handshake_State&
      pending_state,\n                                              const std::vector<uint8_t>&
      contents,\n                                              bool epoch0_restart)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:471,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:471,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:471,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:474,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:474,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:475,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' pending_state'
    - ' contents'
    argTypes:
    - Server_Handshake_State
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 479
    functionName: Botan::TLS::Server_Impl_12::process_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - policy
    - client_certs
    - TLS_Exception
    - set_expected_next
    - std::make_unique<Certificate_12>
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_certificate_msg(Server_Handshake_State&
      pending_state,\n                                             const std::vector<uint8_t>&
      contents)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:483,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:483,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:484,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:486,1
    - Dst: client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:489,1
    - Dst: std::make_unique<Client_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:489,1
    - Dst: server_rsa_kex_key
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:490,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:490,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:490,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:492,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:493,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:498,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:499,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' pending_state'
    - ' contents'
    argTypes:
    - Server_Handshake_State
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 501
    functionName: Botan::TLS::Server_Impl_12::process_client_key_exchange_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - policy
    - session_keys
    - rng
    - callbacks
    - client_hello
    - client_kex
    - client_certs
    - std::make_unique<Client_Key_Exchange>
    - set_expected_next
    - received_handshake_msg
    - server_rsa_kex_key
    - compute_session_keys
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_client_key_exchange_msg(Server_Handshake_State&
      pending_state,\n                                                     const std::vector<uint8_t>&
      contents)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:504,1
    - Dst: change_cipher_spec_reader
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' pending_state'
    argTypes:
    - Server_Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: Botan::TLS::Server_Impl_12::process_change_cipher_spec_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - change_cipher_spec_reader
    - set_expected_next
    linkageType: ''
    returnType: void
    signature: void Server_Impl_12::process_change_cipher_spec_msg(Server_Handshake_State&
      pending_state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: client_verify
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:511,1
    - Dst: std::make_unique<Certificate_Verify_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:511,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:513,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:515,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:516,1
    - Dst: allowed_usage
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:519,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:520,1
    - Dst: client_verify
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:523,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:523,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:525,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:525,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:533,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:537,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:538,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:540,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:545,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:547,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:547,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:550,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - ' pending_state'
    - type
    - ' contents'
    argTypes:
    - Server_Handshake_State
    - Handshake_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 551
    functionName: Botan::TLS::Server_Impl_12::process_certificate_verify_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - client_verify
    - hash
    - policy
    - allowed_usage
    - handshake_io
    - client_hello
    - callbacks
    - client_certs
    - TLS_Exception
    - trusted_certificate_authorities
    - what
    - set_expected_next
    - std::make_unique<Certificate_Verify_12>
    - empty
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_certificate_verify_msg(Server_Handshake_State&
      pending_state,\n                                                    Handshake_Type
      type,\n                                                    const std::vector<uint8_t>&
      contents)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:556,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:558,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:559,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:562,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:562,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:564,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:565,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:568,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:571,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:571,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:573,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:574,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:575,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:577,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:578,1
    - Dst: Botan::TLS::Server_Impl_12::get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:579,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:580,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:580,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:581,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:582,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:586,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:587,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:587,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:588,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:588,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:592,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:593,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:594,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:595,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:597,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:597,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:597,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:598,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:598,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:599,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:600,1
    - Dst: auto::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:601,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:602,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:602,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:606,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:606,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:607,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:608,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:608,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:608,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:611,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:611,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:613,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:615,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:616,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:616,1
    - Dst: activate_session
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:619,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - ' pending_state'
    - type
    - ' contents'
    argTypes:
    - Server_Handshake_State
    - Handshake_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 620
    functionName: Botan::TLS::Server_Impl_12::process_finished_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - policy
    - static_cast<uint32_t>
    - change_cipher_spec_writer
    - session_keys
    - Session_Summary::set_session_id
    - callbacks
    - Server_Information
    - new_session_ticket
    - hash
    - Change_Cipher_Spec
    - handshake_io
    - auto::ticket
    - Botan::TLS::Server_Impl_12::get_peer_cert_chain
    - server_finished
    - activate_session
    - session_manager
    - client_finished
    - auto::is_ticket
    - client_hello
    - TLS_Exception
    - is_a_resumption
    - auto::has_value
    - std::make_unique<New_Session_Ticket_12>
    - external_psk_identity
    - std::make_unique<Finished_12>
    - set_expected_next
    - server_hello
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_finished_msg(Server_Handshake_State&
      pending_state,\n                                          Handshake_Type type,\n
      \                                         const std::vector<uint8_t>& contents)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<Server_Handshake_State&>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:630,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:631,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:642,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:642,1
    - Dst: Botan::TLS::Server_Impl_12::process_client_hello_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:647,1
    - Dst: Botan::TLS::Server_Impl_12::process_certificate_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:650,1
    - Dst: Botan::TLS::Server_Impl_12::process_client_key_exchange_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:653,1
    - Dst: Botan::TLS::Server_Impl_12::process_certificate_verify_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:656,1
    - Dst: Botan::TLS::Server_Impl_12::process_change_cipher_spec_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:659,1
    - Dst: Botan::TLS::Server_Impl_12::process_finished_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:662,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - active_state
    - ' state_base'
    - type
    - ' contents'
    - epoch0_restart
    argTypes:
    - Handshake_State*
    - Handshake_State
    - Handshake_Type
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 667
    functionName: Botan::TLS::Server_Impl_12::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Impl_12::process_certificate_verify_msg
    - hash
    - Botan::TLS::Server_Impl_12::process_client_key_exchange_msg
    - Unexpected_Message
    - Botan::TLS::Server_Impl_12::process_client_hello_msg
    - handshake_io
    - Botan::TLS::Server_Impl_12::process_finished_msg
    - dynamic_cast<Server_Handshake_State&>
    - Botan::TLS::Server_Impl_12::process_change_cipher_spec_msg
    - Botan::TLS::Server_Impl_12::process_certificate_msg
    - confirm_transition_to
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_handshake_msg(const Handshake_State*
      active_state,\n                                           Handshake_State& state_base,\n
      \                                          Handshake_Type type,\n                                           const
      std::vector<uint8_t>& contents,\n                                           bool
      epoch0_restart)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:673,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:674,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:675,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:677,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:677,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:677,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:678,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:679,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:680,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:681,1
    - Dst: secure_renegotiation_data_for_server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:682,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:683,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:688,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:688,1
    - Dst: mark_as_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:690,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:691,1
    - Dst: session::master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:691,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:692,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:697,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:698,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:698,1
    - Dst: set_resume_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:700,1
    - Dst: session::peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:700,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:704,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:705,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:705,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:706,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:706,1
    - Dst: handle::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:707,1
    - Dst: Session_Summary::set_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:708,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:708,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:708,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:714,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:715,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:718,1
    - Dst: handle::id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:718,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:722,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:723,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:723,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:724,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:724,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:725,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:725,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:726,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:726,1
    - Dst: auto::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:726,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:728,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:729,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:729,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:729,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:733,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:733,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:735,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:737,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:738,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:738,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - ' pending_state'
    - ' session'
    argTypes:
    - Server_Handshake_State
    - Session_with_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 740
    functionName: Botan::TLS::Server_Impl_12::session_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - policy
    - static_cast<uint32_t>
    - change_cipher_spec_writer
    - session_keys
    - Session_Summary::set_session_id
    - callbacks
    - Session_Summary::set_session_ticket
    - handle::ticket
    - new_session_ticket
    - hash
    - session::master_secret
    - Change_Cipher_Spec
    - std::move
    - handshake_io
    - session::peer_certs
    - secure_renegotiation_check
    - auto::ticket
    - server_finished
    - handle::id
    - compute_session_keys
    - session_manager
    - secure_renegotiation_data_for_server_hello
    - auto::is_ticket
    - set_resume_certs
    - client_hello
    - is_a_resumption
    - auto::has_value
    - std::make_unique<New_Session_Ticket_12>
    - std::make_unique<Server_Hello_12>
    - mark_as_resumption
    - external_psk_identity
    - std::make_unique<Finished_12>
    - set_expected_next
    - rng
    - server_hello
    - auto::value
    linkageType: ''
    returnType: void
    signature: void Server_Impl_12::session_resume(Server_Handshake_State& pending_state,
      const Session_with_Handle& session)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:745,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:753,1
    - Dst: get_server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:754,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:756,1
    - Dst: std::map::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:756,1
    - Dst: get_server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:757,1
    - Dst: std::map::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:766,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:767,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:772,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:772,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:772,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:772,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:775,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:777,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:779,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:779,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:779,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:780,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:781,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:782,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:783,1
    - Dst: secure_renegotiation_data_for_server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:784,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:785,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:789,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:789,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:791,1
    - Dst: signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:795,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:795,1
    - Dst: signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:796,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:796,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:798,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:798,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:800,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:801,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:801,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:801,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:803,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:803,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:804,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:806,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:807,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:808,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:809,1
    - Dst: std::make_unique<Certificate_Status_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:810,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:810,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:810,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:814,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:814,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:817,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:821,1
    - Dst: set_server_rsa_kex_key
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:822,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:824,1
    - Dst: std::make_unique<Server_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:824,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:825,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:825,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:825,1
    - Dst: std::shared_ptr::get
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:825,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:828,1
    - Dst: all_subjects
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:833,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:837,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:837,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:839,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:840,1
    - Dst: std::make_unique<Certificate_Request_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:840,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:841,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:841,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:841,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:848,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:850,1
    - Dst: server_hello_done
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:853,1
    - Dst: std::make_unique<Server_Hello_Done>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:854,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:854,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:854,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 1
    argNames:
    - ' pending_state'
    argTypes:
    - Server_Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 855
    functionName: Botan::TLS::Server_Impl_12::session_create
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - policy
    - BOTAN_ASSERT
    - callbacks
    - server_certs
    - set_expected_next
    - all_subjects
    - empty
    - hash
    - std::string::empty
    - Session_ID
    - std::vector::end
    - handshake_io
    - signature_used
    - trusted_certificate_authorities
    - std::map::empty
    - secure_renegotiation_check
    - std::make_unique<Certificate_Status_12>
    - get_server_certs
    - BOTAN_ASSERT_NOMSG
    - std::shared_ptr::get
    - std::make_unique<Server_Key_Exchange>
    - auto::end
    - session_manager
    - secure_renegotiation_data_for_server_hello
    - std::vector::empty
    - auto::begin
    - ciphersuite
    - server_kex
    - sig_algo
    - version
    - auto::empty
    - server_hello_done
    - client_hello
    - send_warning_alert
    - choose_ciphersuite
    - cert_req
    - is_a_resumption
    - Internal_Error
    - std::make_unique<Server_Hello_Done>
    - server_cert_status
    - std::make_unique<Server_Hello_12>
    - kex_method
    - std::make_unique<Certificate_Request_12>
    - private_key_for
    - std::vector::insert
    - make_hello_random
    - rng
    - server_hello
    - std::make_unique<Certificate_12>
    - set_server_rsa_kex_key
    linkageType: ''
    returnType: void
    signature: void Server_Impl_12::session_create(Server_Handshake_State& pending_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Server_Handshake_State::Server_Handshake_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_Handshake_State(std::unique_ptr<Handshake_IO> io, Callbacks&
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Server_Handshake_State::server_rsa_kex_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Private_Key
    signature: Private_Key * server_rsa_kex_key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::shared_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Server_Handshake_State::set_server_rsa_kex_key
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_server_rsa_kex_key(std::shared_ptr<Private_Key> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::TLS::Server_Handshake_State::allow_session_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allow_session_resumption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allow_session_resumption
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Server_Handshake_State::set_allow_session_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_allow_session_resumption(bool allow_session_resumption)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& resume_peer_certs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> & resume_peer_certs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' certs'
    argTypes:
    - std::vector<X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::TLS::Server_Handshake_State::set_resume_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_resume_certs(const std::vector<X509_Certificate>& certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Server_Handshake_State::mark_as_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mark_as_resumption()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Server_Handshake_State::is_a_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_a_resumption() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: retrieve
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:68,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:69,1
    - Dst: Client_Hello_12*::legacy_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:74,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:74,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: Client_Hello_12*::ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: auto::server_info
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: Client_Hello_12*::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:89,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:89,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:90,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:97,1
    - Dst: Client_Hello_12*::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:102,1
    - Dst: auto::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:102,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 5
    argNames:
    - ' handle_to_resume'
    - ' session_manager'
    - ' cb'
    - ' policy'
    - client_hello
    argTypes:
    - Session_Handle
    - Session_Manager
    - Callbacks
    - Policy
    - Client_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 111
    functionName: Botan::TLS::check_for_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - auto::version
    - auto::supports_encrypt_then_mac
    - auto::supports_extended_master_secret
    - Client_Hello_12*::legacy_version
    - Client_Hello_12*::ciphersuites
    - auto::ciphersuite_code
    - value_exists
    - auto::server_info
    - Client_Hello_12*::supports_encrypt_then_mac
    - TLS_Exception
    - Client_Hello_12*::sni_hostname
    - auto::has_value
    - retrieve
    - Client_Hello_12*::supports_extended_master_secret
    linkageType: ''
    returnType: std::optional<Session>
    signature: "std::optional<Session> check_for_resume(const Session_Handle& handle_to_resume,\n
      \                                       Session_Manager& session_manager,\n
      \                                       Callbacks& cb,\n                                        const
      Policy& policy,\n                                        const Client_Hello_12*
      client_hello)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:120,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:121,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:122,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:124,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:125,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:129,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:129,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:134,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:134,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:143,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:147,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:151,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:153,1
    - Dst: auto::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:153,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:157,1
    - Dst: auto::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:161,1
    - Dst: auto::signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:166,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:167,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:170,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:174,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:176,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:186,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:190,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:190,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:191,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:191,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:197,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:212,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:215,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 40
    argCount: 4
    argNames:
    - ' policy'
    - version
    - ' cert_chains'
    - ' client_hello'
    argTypes:
    - Policy
    - Protocol_Version
    - std::map<std::string, std::vector<X509_Certificate>>
    - Client_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 216
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - choose_key_exchange_group
    - auto::signature_used
    - contains
    - server_uses_own_ciphersuite_preferences
    - auto::valid
    - auto::ecc_ciphersuite
    - supported_dh_groups
    - hash_function_name
    - ciphersuite_list
    - supported_ecc_curves
    - value_exists
    - allowed_signature_schemes
    - is_available
    - auto::sig_algo
    - ciphersuites
    - std::vector::empty
    - std::swap
    - signature_schemes
    - TLS_Exception
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - allowed_signature_hash
    - auto::kex_method
    - algorithm_name
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t choose_ciphersuite(const Policy& policy,\n                            Protocol_Version
      version,\n                            const std::map<std::string, std::vector<X509_Certificate>>&
      cert_chains,\n                            const Client_Hello_12& client_hello)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_chain_single_type
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:225,1
    - Dst: Botan::TLS::to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:226,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:226,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - hostname
    - ' cert_sig_schemes'
    - ' creds'
    argTypes:
    - std::string_view
    - std::vector<Signature_Scheme>
    - Credentials_Manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: Botan::TLS::get_server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::to_algorithm_identifiers
    - cert_chain_single_type
    - std::string
    - std::vector::empty
    linkageType: ''
    returnType: std::map<std::string, std::vector<X509_Certificate>>
    signature: "std::map<std::string, std::vector<X509_Certificate>> get_server_certs(\n
      \  std::string_view hostname, const std::vector<Signature_Scheme>& cert_sig_schemes,
      Credentials_Manager& creds)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: retrieve
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:68,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:69,1
    - Dst: Client_Hello_12*::legacy_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:74,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:74,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: Client_Hello_12*::ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:79,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: auto::server_info
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:84,1
    - Dst: Client_Hello_12*::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:89,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:89,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:90,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:97,1
    - Dst: Client_Hello_12*::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:102,1
    - Dst: auto::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:102,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 5
    argNames:
    - ' handle_to_resume'
    - ' session_manager'
    - ' cb'
    - ' policy'
    - client_hello
    argTypes:
    - Session_Handle
    - Session_Manager
    - Callbacks
    - Policy
    - Client_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 111
    functionName: Botan::TLS::check_for_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - auto::version
    - auto::supports_encrypt_then_mac
    - auto::supports_extended_master_secret
    - Client_Hello_12*::legacy_version
    - Client_Hello_12*::ciphersuites
    - auto::ciphersuite_code
    - value_exists
    - auto::server_info
    - Client_Hello_12*::supports_encrypt_then_mac
    - TLS_Exception
    - Client_Hello_12*::sni_hostname
    - auto::has_value
    - retrieve
    - Client_Hello_12*::supports_extended_master_secret
    linkageType: ''
    returnType: std::optional<Session>
    signature: "std::optional<Session> check_for_resume(const Session_Handle& handle_to_resume,\n
      \                                       Session_Manager& session_manager,\n
      \                                       Callbacks& cb,\n                                        const
      Policy& policy,\n                                        const Client_Hello_12*
      client_hello)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:120,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:121,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:122,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:124,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:125,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:129,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:129,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:134,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:134,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:143,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:147,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:151,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:153,1
    - Dst: auto::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:153,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:157,1
    - Dst: auto::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:161,1
    - Dst: auto::signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:166,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:167,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:170,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:174,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:176,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:186,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:190,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:190,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:191,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:191,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:197,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:212,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:215,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 40
    argCount: 4
    argNames:
    - ' policy'
    - version
    - ' cert_chains'
    - ' client_hello'
    argTypes:
    - Policy
    - Protocol_Version
    - std::map<std::string, std::vector<X509_Certificate>>
    - Client_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 216
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - choose_key_exchange_group
    - auto::signature_used
    - contains
    - server_uses_own_ciphersuite_preferences
    - auto::valid
    - auto::ecc_ciphersuite
    - supported_dh_groups
    - hash_function_name
    - ciphersuite_list
    - supported_ecc_curves
    - value_exists
    - allowed_signature_schemes
    - is_available
    - auto::sig_algo
    - ciphersuites
    - std::vector::empty
    - std::swap
    - signature_schemes
    - TLS_Exception
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - allowed_signature_hash
    - auto::kex_method
    - algorithm_name
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t choose_ciphersuite(const Policy& policy,\n                            Protocol_Version
      version,\n                            const std::map<std::string, std::vector<X509_Certificate>>&
      cert_chains,\n                            const Client_Hello_12& client_hello)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_chain_single_type
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:225,1
    - Dst: Botan::TLS::to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:226,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:226,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - hostname
    - ' cert_sig_schemes'
    - ' creds'
    argTypes:
    - std::string_view
    - std::vector<Signature_Scheme>
    - Credentials_Manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: Botan::TLS::get_server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::to_algorithm_identifiers
    - cert_chain_single_type
    - std::string
    - std::vector::empty
    linkageType: ''
    returnType: std::map<std::string, std::vector<X509_Certificate>>
    signature: "std::map<std::string, std::vector<X509_Certificate>> get_server_certs(\n
      \  std::string_view hostname, const std::vector<Signature_Scheme>& cert_sig_schemes,
      Credentials_Manager& creds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' creds'
    - ' policy'
    - ' rng'
    - is_datagram
    - io_buf_sz
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: Botan::TLS::Server_Impl_12::Server_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::Server_Impl_12(const std::shared_ptr<Callbacks>&
      callbacks,\n                               const std::shared_ptr<Session_Manager>&
      session_manager,\n                               const std::shared_ptr<Credentials_Manager>&
      creds,\n                               const std::shared_ptr<const Policy>&
      policy,\n                               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                               bool is_datagram,\n                               size_t
      io_buf_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' downgrade_info'
    argTypes:
    - Channel_Impl::Downgrade_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 257
    functionName: Botan::TLS::Server_Impl_12::Server_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Server_Impl_12::Server_Impl_12(const Channel_Impl::Downgrade_Information&
      downgrade_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Handshake_State>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:260,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:260,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:260,1
    - Dst: auto::set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io
    argTypes:
    - std::unique_ptr<Handshake_IO>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: Botan::TLS::Server_Impl_12::new_handshake_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::set_expected_next
    - std::make_unique<Server_Handshake_State>
    - callbacks
    linkageType: ''
    returnType: std::unique_ptr<Handshake_State>
    signature: std::unique_ptr<Handshake_State> Server_Impl_12::new_handshake_state(std::unique_ptr<Handshake_IO>
      io)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const Server_Handshake_State&>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:266,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:267,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:268,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:271,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:272,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' state_base'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: Botan::TLS::Server_Impl_12::get_peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<const Server_Handshake_State&>
    - client_certs
    - resume_peer_certs
    - std::vector<X509_Certificate>
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Server_Impl_12::get_peer_cert_chain(const
      Handshake_State& state_base) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<Server_Handshake_State&>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:281,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - force_full_renegotiation
    argTypes:
    - Handshake_State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: Botan::TLS::Server_Impl_12::initiate_handshake
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - handshake_io
    - dynamic_cast<Server_Handshake_State&>
    linkageType: ''
    returnType: void
    signature: void Server_Impl_12::initiate_handshake(Handshake_State& state, bool
      force_full_renegotiation)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:292,1
    - Dst: Protocol_Version::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:293,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:295,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:300,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:305,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:318,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:320,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:320,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:327,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:331,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:336,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:337,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 4
    argNames:
    - ' policy'
    - client_offer
    - active_version
    - ' supported_versions'
    argTypes:
    - TLS::Policy
    - Protocol_Version
    - Protocol_Version
    - std::vector<Protocol_Version>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 338
    functionName: Botan::TLS::select_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - allow_tls12
    - Protocol_Version::to_string
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::empty
    - value_exists
    - Protocol_Version::valid
    - allow_dtls12
    - TLS_Exception
    - Botan::TLS::Protocol_Version
    linkageType: ''
    returnType: Protocol_Version
    signature: "Protocol_Version select_version(const TLS::Policy& policy,\n                                Protocol_Version
      client_offer,\n                                Protocol_Version active_version,\n
      \                               const std::vector<Protocol_Version>& supported_versions)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:292,1
    - Dst: Protocol_Version::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:293,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:295,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:300,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:302,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:305,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:318,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:320,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:320,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:327,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:331,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:336,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:337,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 4
    argNames:
    - ' policy'
    - client_offer
    - active_version
    - ' supported_versions'
    argTypes:
    - TLS::Policy
    - Protocol_Version
    - Protocol_Version
    - std::vector<Protocol_Version>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 338
    functionName: Botan::TLS::select_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - allow_tls12
    - Protocol_Version::to_string
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::empty
    - value_exists
    - Protocol_Version::valid
    - allow_dtls12
    - TLS_Exception
    - Botan::TLS::Protocol_Version
    linkageType: ''
    returnType: Protocol_Version
    signature: "Protocol_Version select_version(const TLS::Policy& policy,\n                                Protocol_Version
      client_offer,\n                                Protocol_Version active_version,\n
      \                               const std::vector<Protocol_Version>& supported_versions)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:348,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:352,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:353,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:354,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:356,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:361,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:361,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:362,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:366,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:367,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:370,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:370,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:371,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:372,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:375,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:376,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:379,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:380,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:382,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:382,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:383,1
    - Dst: select_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:398,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:398,1
    - Dst: Handshake_State*::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:400,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:400,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:401,1
    - Dst: set_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:403,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:405,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:406,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:407,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:414,1
    - Dst: SymmetricKey::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:417,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:418,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:420,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:422,1
    - Dst: Hello_Verify_Request::cookie
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:422,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:424,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:426,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:429,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:430,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:434,1
    - Dst: reset_active_association_state
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:440,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:443,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:443,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:445,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:446,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:448,1
    - Dst: allow_session_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:451,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:451,1
    - Dst: check_for_resume
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:452,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:453,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:453,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:453,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:453,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:453,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:457,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:458,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:458,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:461,1
    - Dst: Botan::TLS::Server_Impl_12::session_resume
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:462,1
    - Dst: std::optional::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:462,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:462,1
    - Dst: Botan::TLS::Server_Impl_12::session_create
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:465,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 72
    argCount: 4
    argNames:
    - active_state
    - ' pending_state'
    - ' contents'
    - epoch0_restart
    argTypes:
    - Handshake_State*
    - Server_Handshake_State
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 467
    functionName: Botan::TLS::Server_Impl_12::process_client_hello_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - policy
    - callbacks
    - Botan::TLS::Server_Impl_12::session_create
    - Botan::TLS::Server_Impl_12::session_resume
    - std::optional::has_value
    - Protocol_Version
    - Hello_Verify_Request::cookie
    - allow_session_resumption
    - handshake_io
    - Protocol_Version::minor_version
    - value_exists
    - psk
    - check_for_resume
    - secure_renegotiation_check
    - select_version
    - session_manager
    - Handshake_State*::version
    - std::make_unique<Client_Hello_12>
    - Protocol_Version::is_datagram_protocol
    - client_hello
    - send_warning_alert
    - TLS_Exception
    - auto::has_value
    - std::optional::value
    - SymmetricKey::empty
    - reset_active_association_state
    - secure_renegotiation_supported
    - BOTAN_ASSERT_IMPLICATION
    - set_expected_next
    - Protocol_Version::major_version
    - set_version
    - auto::value
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_client_hello_msg(const Handshake_State*
      active_state,\n                                              Server_Handshake_State&
      pending_state,\n                                              const std::vector<uint8_t>&
      contents,\n                                              bool epoch0_restart)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:471,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:471,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:471,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:474,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:474,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:475,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' pending_state'
    - ' contents'
    argTypes:
    - Server_Handshake_State
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 479
    functionName: Botan::TLS::Server_Impl_12::process_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - policy
    - client_certs
    - TLS_Exception
    - set_expected_next
    - std::make_unique<Certificate_12>
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_certificate_msg(Server_Handshake_State&
      pending_state,\n                                             const std::vector<uint8_t>&
      contents)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:483,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:483,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:484,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:486,1
    - Dst: client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:489,1
    - Dst: std::make_unique<Client_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:489,1
    - Dst: server_rsa_kex_key
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:490,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:490,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:490,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:492,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:493,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:498,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:499,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' pending_state'
    - ' contents'
    argTypes:
    - Server_Handshake_State
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 501
    functionName: Botan::TLS::Server_Impl_12::process_client_key_exchange_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - policy
    - session_keys
    - rng
    - callbacks
    - client_hello
    - client_kex
    - client_certs
    - std::make_unique<Client_Key_Exchange>
    - set_expected_next
    - received_handshake_msg
    - server_rsa_kex_key
    - compute_session_keys
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_client_key_exchange_msg(Server_Handshake_State&
      pending_state,\n                                                     const std::vector<uint8_t>&
      contents)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:504,1
    - Dst: change_cipher_spec_reader
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' pending_state'
    argTypes:
    - Server_Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: Botan::TLS::Server_Impl_12::process_change_cipher_spec_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - change_cipher_spec_reader
    - set_expected_next
    linkageType: ''
    returnType: void
    signature: void Server_Impl_12::process_change_cipher_spec_msg(Server_Handshake_State&
      pending_state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: client_verify
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:511,1
    - Dst: std::make_unique<Certificate_Verify_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:511,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:513,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:515,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:516,1
    - Dst: allowed_usage
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:519,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:520,1
    - Dst: client_verify
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:523,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:523,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:525,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:525,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:533,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:537,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:538,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:540,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:545,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:547,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:547,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:550,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - ' pending_state'
    - type
    - ' contents'
    argTypes:
    - Server_Handshake_State
    - Handshake_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 551
    functionName: Botan::TLS::Server_Impl_12::process_certificate_verify_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - client_verify
    - hash
    - policy
    - allowed_usage
    - handshake_io
    - client_hello
    - callbacks
    - client_certs
    - TLS_Exception
    - trusted_certificate_authorities
    - what
    - set_expected_next
    - std::make_unique<Certificate_Verify_12>
    - empty
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_certificate_verify_msg(Server_Handshake_State&
      pending_state,\n                                                    Handshake_Type
      type,\n                                                    const std::vector<uint8_t>&
      contents)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:556,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:558,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:559,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:562,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:562,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:564,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:565,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:568,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:571,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:571,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:573,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:574,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:575,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:577,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:578,1
    - Dst: Botan::TLS::Server_Impl_12::get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:579,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:580,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:580,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:581,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:582,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:586,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:587,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:587,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:588,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:588,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:592,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:593,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:594,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:595,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:597,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:597,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:597,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:598,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:598,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:599,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:600,1
    - Dst: auto::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:601,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:602,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:602,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:606,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:606,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:607,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:608,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:608,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:608,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:611,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:611,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:613,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:615,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:616,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:616,1
    - Dst: activate_session
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:619,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - ' pending_state'
    - type
    - ' contents'
    argTypes:
    - Server_Handshake_State
    - Handshake_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 620
    functionName: Botan::TLS::Server_Impl_12::process_finished_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - policy
    - static_cast<uint32_t>
    - change_cipher_spec_writer
    - session_keys
    - Session_Summary::set_session_id
    - callbacks
    - Server_Information
    - new_session_ticket
    - hash
    - Change_Cipher_Spec
    - handshake_io
    - auto::ticket
    - Botan::TLS::Server_Impl_12::get_peer_cert_chain
    - server_finished
    - activate_session
    - session_manager
    - client_finished
    - auto::is_ticket
    - client_hello
    - TLS_Exception
    - is_a_resumption
    - auto::has_value
    - std::make_unique<New_Session_Ticket_12>
    - external_psk_identity
    - std::make_unique<Finished_12>
    - set_expected_next
    - server_hello
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_finished_msg(Server_Handshake_State&
      pending_state,\n                                          Handshake_Type type,\n
      \                                         const std::vector<uint8_t>& contents)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<Server_Handshake_State&>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:630,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:631,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:642,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:642,1
    - Dst: Botan::TLS::Server_Impl_12::process_client_hello_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:647,1
    - Dst: Botan::TLS::Server_Impl_12::process_certificate_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:650,1
    - Dst: Botan::TLS::Server_Impl_12::process_client_key_exchange_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:653,1
    - Dst: Botan::TLS::Server_Impl_12::process_certificate_verify_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:656,1
    - Dst: Botan::TLS::Server_Impl_12::process_change_cipher_spec_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:659,1
    - Dst: Botan::TLS::Server_Impl_12::process_finished_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:662,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - active_state
    - ' state_base'
    - type
    - ' contents'
    - epoch0_restart
    argTypes:
    - Handshake_State*
    - Handshake_State
    - Handshake_Type
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 667
    functionName: Botan::TLS::Server_Impl_12::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Impl_12::process_certificate_verify_msg
    - hash
    - Botan::TLS::Server_Impl_12::process_client_key_exchange_msg
    - Unexpected_Message
    - Botan::TLS::Server_Impl_12::process_client_hello_msg
    - handshake_io
    - Botan::TLS::Server_Impl_12::process_finished_msg
    - dynamic_cast<Server_Handshake_State&>
    - Botan::TLS::Server_Impl_12::process_change_cipher_spec_msg
    - Botan::TLS::Server_Impl_12::process_certificate_msg
    - confirm_transition_to
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_12::process_handshake_msg(const Handshake_State*
      active_state,\n                                           Handshake_State& state_base,\n
      \                                          Handshake_Type type,\n                                           const
      std::vector<uint8_t>& contents,\n                                           bool
      epoch0_restart)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:673,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:674,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:675,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:677,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:677,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:677,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:678,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:679,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:680,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:681,1
    - Dst: secure_renegotiation_data_for_server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:682,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:683,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:688,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:688,1
    - Dst: mark_as_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:690,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:691,1
    - Dst: session::master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:691,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:692,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:697,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:698,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:698,1
    - Dst: set_resume_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:700,1
    - Dst: session::peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:700,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:704,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:705,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:705,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:706,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:706,1
    - Dst: handle::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:707,1
    - Dst: Session_Summary::set_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:708,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:708,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:708,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:714,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:715,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:718,1
    - Dst: handle::id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:718,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:722,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:723,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:723,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:724,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:724,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:725,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:725,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:726,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:726,1
    - Dst: auto::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:726,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:728,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:729,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:729,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:729,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:733,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:733,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:735,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:737,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:738,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:738,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - ' pending_state'
    - ' session'
    argTypes:
    - Server_Handshake_State
    - Session_with_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 740
    functionName: Botan::TLS::Server_Impl_12::session_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 2
    functionsReached:
    - policy
    - static_cast<uint32_t>
    - change_cipher_spec_writer
    - session_keys
    - Session_Summary::set_session_id
    - callbacks
    - Session_Summary::set_session_ticket
    - handle::ticket
    - new_session_ticket
    - hash
    - session::master_secret
    - Change_Cipher_Spec
    - std::move
    - handshake_io
    - session::peer_certs
    - secure_renegotiation_check
    - auto::ticket
    - server_finished
    - handle::id
    - compute_session_keys
    - session_manager
    - secure_renegotiation_data_for_server_hello
    - auto::is_ticket
    - set_resume_certs
    - client_hello
    - is_a_resumption
    - auto::has_value
    - std::make_unique<New_Session_Ticket_12>
    - std::make_unique<Server_Hello_12>
    - mark_as_resumption
    - external_psk_identity
    - std::make_unique<Finished_12>
    - set_expected_next
    - rng
    - server_hello
    - auto::value
    linkageType: ''
    returnType: void
    signature: void Server_Impl_12::session_resume(Server_Handshake_State& pending_state,
      const Session_with_Handle& session)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:745,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:753,1
    - Dst: get_server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:754,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:756,1
    - Dst: std::map::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:756,1
    - Dst: get_server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:757,1
    - Dst: std::map::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:766,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:767,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:772,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:772,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:772,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:772,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:775,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:777,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:779,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:779,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:779,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:780,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:781,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:782,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:783,1
    - Dst: secure_renegotiation_data_for_server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:784,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:785,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:789,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:789,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:791,1
    - Dst: signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:795,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:795,1
    - Dst: signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:796,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:796,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:798,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:798,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:800,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:801,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:801,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:801,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:803,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:803,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:804,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:806,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:807,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:808,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:809,1
    - Dst: std::make_unique<Certificate_Status_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:810,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:810,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:810,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:814,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:814,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:817,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:821,1
    - Dst: set_server_rsa_kex_key
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:822,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:824,1
    - Dst: std::make_unique<Server_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:824,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:825,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:825,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:825,1
    - Dst: std::shared_ptr::get
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:825,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:828,1
    - Dst: all_subjects
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:833,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:837,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:837,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:839,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:840,1
    - Dst: std::make_unique<Certificate_Request_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:840,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:841,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:841,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:841,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:848,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:850,1
    - Dst: server_hello_done
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:853,1
    - Dst: std::make_unique<Server_Hello_Done>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:854,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:854,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:854,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 1
    argNames:
    - ' pending_state'
    argTypes:
    - Server_Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 855
    functionName: Botan::TLS::Server_Impl_12::session_create
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 2
    functionsReached:
    - policy
    - BOTAN_ASSERT
    - callbacks
    - server_certs
    - set_expected_next
    - all_subjects
    - empty
    - hash
    - std::string::empty
    - Session_ID
    - std::vector::end
    - handshake_io
    - signature_used
    - trusted_certificate_authorities
    - std::map::empty
    - secure_renegotiation_check
    - std::make_unique<Certificate_Status_12>
    - get_server_certs
    - BOTAN_ASSERT_NOMSG
    - std::shared_ptr::get
    - std::make_unique<Server_Key_Exchange>
    - auto::end
    - session_manager
    - secure_renegotiation_data_for_server_hello
    - std::vector::empty
    - auto::begin
    - ciphersuite
    - server_kex
    - sig_algo
    - version
    - auto::empty
    - server_hello_done
    - client_hello
    - send_warning_alert
    - choose_ciphersuite
    - cert_req
    - is_a_resumption
    - Internal_Error
    - std::make_unique<Server_Hello_Done>
    - server_cert_status
    - std::make_unique<Server_Hello_12>
    - kex_method
    - std::make_unique<Certificate_Request_12>
    - private_key_for
    - std::vector::insert
    - make_hello_random
    - rng
    - server_hello
    - std::make_unique<Certificate_12>
    - set_server_rsa_kex_key
    linkageType: ''
    returnType: void
    signature: void Server_Impl_12::session_create(Server_Handshake_State& pending_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:24,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:25,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Renegotiation_Extension::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - size
    - get_range
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Renegotiation_Extension::Renegotiation_Extension(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Renegotiation_Extension::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Renegotiation_Extension::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: Botan::TLS::Supported_Point_Formats::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Supported_Point_Formats::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:46,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:49,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:54,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:56,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:58,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:60,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:62,1
    - Dst: std::any_of
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:64,1
    - Dst: std::begin
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:64,1
    - Dst: std::end
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:64,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:65,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 83
    functionName: Botan::TLS::Supported_Point_Formats::Supported_Point_Formats
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - std::any_of
    - static_cast<ECPointFormat>
    - get_byte
    - Decoding_Error
    - std::end
    - discard_next
    - TLS_Exception
    - std::begin
    linkageType: ''
    returnType: void
    signature: void Supported_Point_Formats::Supported_Point_Formats(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:86,1
    - Dst: get_elem
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 4
    functionsReached:
    - Session_Ticket
    - get_elem
    linkageType: ''
    returnType: void
    signature: void Session_Ticket_Extension::Session_Ticket_Extension(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Extended_Master_Secret::Extended_Master_Secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Extended_Master_Secret::Extended_Master_Secret(TLS_Data_Reader&
      /*unused*/, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Extended_Master_Secret::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Extended_Master_Secret::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Encrypt_then_MAC::Encrypt_then_MAC
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Encrypt_then_MAC::Encrypt_then_MAC(TLS_Data_Reader& /*unused*/,
      uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Encrypt_then_MAC::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Encrypt_then_MAC::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:24,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:25,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Renegotiation_Extension::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - size
    - get_range
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Renegotiation_Extension::Renegotiation_Extension(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Renegotiation_Extension::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Renegotiation_Extension::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: Botan::TLS::Supported_Point_Formats::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Supported_Point_Formats::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:46,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:49,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:54,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:56,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:58,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:60,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:62,1
    - Dst: std::any_of
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:64,1
    - Dst: std::begin
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:64,1
    - Dst: std::end
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:64,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:65,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 83
    functionName: Botan::TLS::Supported_Point_Formats::Supported_Point_Formats
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - std::any_of
    - static_cast<ECPointFormat>
    - get_byte
    - Decoding_Error
    - std::end
    - discard_next
    - TLS_Exception
    - std::begin
    linkageType: ''
    returnType: void
    signature: void Supported_Point_Formats::Supported_Point_Formats(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:86,1
    - Dst: get_elem
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 4
    functionsReached:
    - Session_Ticket
    - get_elem
    linkageType: ''
    returnType: void
    signature: void Session_Ticket_Extension::Session_Ticket_Extension(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Extended_Master_Secret::Extended_Master_Secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Extended_Master_Secret::Extended_Master_Secret(TLS_Data_Reader&
      /*unused*/, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Extended_Master_Secret::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Extended_Master_Secret::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Encrypt_then_MAC::Encrypt_then_MAC
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Encrypt_then_MAC::Encrypt_then_MAC(TLS_Data_Reader& /*unused*/,
      uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Encrypt_then_MAC::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Encrypt_then_MAC::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_hash.cpp:23,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_hash.cpp:24,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_hash.cpp:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mac_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Handshake_Hash::final
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::HashFunction::create_or_throw
    - auto::final
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Handshake_Hash::final(std::string_view mac_algo)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_hash.cpp:23,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_hash.cpp:24,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_hash.cpp:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mac_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Handshake_Hash::final
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::HashFunction::create_or_throw
    - auto::final
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Handshake_Hash::final(std::string_view mac_algo)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::TLS::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Renegotiation_Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 14
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::TLS::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Renegotiation_Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Renegotiation_Extension(const std::vector<uint8_t>& bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::TLS::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & renegotiation_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::TLS::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Renegotiation_Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 14
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::TLS::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Renegotiation_Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' bits'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Renegotiation_Extension(const std::vector<uint8_t>& bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::TLS::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & renegotiation_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Session_Ticket_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Session_Ticket_Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 167
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: contents
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: Session_Ticket
    signature: Session_Ticket & contents() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Session_Ticket_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Ticket_Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - session_ticket
    argTypes:
    - Session_Ticket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Session_Ticket_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 12
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Session_Ticket_Extension(Session_Ticket session_ticket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 101
    functionsReached:
    - get
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize(Connection_Side /*whoami*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 832
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 115
    functionName: Supported_Point_Formats
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 6
    functionsReached:
    - static_type
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Supported_Point_Formats
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: static_type
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code static_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 169
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - prefer_compressed
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Supported_Point_Formats
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Supported_Point_Formats(bool prefer_compressed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 832
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: prefers_compressed
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool prefers_compressed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: Extended_Master_Secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Extended_Master_Secret
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 170
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 832
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Extended_Master_Secret
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Extended_Master_Secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: Encrypt_then_MAC
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Encrypt_then_MAC
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls12/tls_extensions_12.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 171
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 832
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Encrypt_then_MAC
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_extensions_12.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt_then_MAC()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:39,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:40,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:41,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:42,1
    - Dst: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:48,1
    - Dst: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' rng'
    - ' policy'
    - is_server
    - is_datagram
    - reserved_io_buffer_size
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<RandomNumberGenerator>
    - std::shared_ptr<const Policy>
    - bool
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 50
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - reserve
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_12::Channel_Impl_12(const std::shared_ptr<Callbacks>&
      callbacks,\n                                 const std::shared_ptr<Session_Manager>&
      session_manager,\n                                 const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                 const std::shared_ptr<const Policy>&
      policy,\n                                 bool is_server,\n                                 bool
      is_datagram,\n                                 size_t reserved_io_buffer_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:53,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:54,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:55,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:56,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: Botan::TLS::Channel_Impl_12::reset_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - reset
    - clear
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::reset_state()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:62,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:63,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:64,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:65,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: Botan::TLS::Channel_Impl_12::reset_active_association_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - reset
    - clear
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::reset_active_association_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Channel_Impl_12::~Channel_Impl_12()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::~Channel_Impl_12()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: '& Channel_Impl_12::sequence_numbers() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: Connection_Sequence_Numbers
    signature: Connection_Sequence_Numbers & Channel_Impl_12::sequence_numbers() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:83,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:84,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:85,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Channel_Impl_12::read_cipher_state_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Internal_Error
    - std::to_string
    - end
    - find
    linkageType: ''
    returnType: std::shared_ptr<Connection_Cipher_State>
    signature: std::shared_ptr<Connection_Cipher_State> Channel_Impl_12::read_cipher_state_epoch(uint16_t
      epoch) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:91,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:92,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:93,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Channel_Impl_12::write_cipher_state_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Internal_Error
    - std::to_string
    - end
    - find
    linkageType: ''
    returnType: std::shared_ptr<Connection_Cipher_State>
    signature: std::shared_ptr<Connection_Cipher_State> Channel_Impl_12::write_cipher_state_epoch(uint16_t
      epoch) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:99,1
    - Dst: get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:100,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::TLS::Channel_Impl_12::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<X509_Certificate>
    - Botan::TLS::Channel_Impl_12::active_state
    - get_peer_cert_chain
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Channel_Impl_12::peer_cert_chain() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:106,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:106,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:106,1
    - Dst: auto*::psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Channel_Impl_12::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::pending_state
    - auto*::psk_identity
    - Botan::TLS::Channel_Impl_12::active_state
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Channel_Impl_12::external_psk_identity()
      const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:115,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:116,1
    - Dst: active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:119,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:120,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:122,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:122,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:123,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:124,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:125,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:130,1
    - Dst: std::make_unique<Datagram_Sequence_Numbers>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:131,1
    - Dst: std::make_unique<Stream_Sequence_Numbers>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:133,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:140,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:141,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:141,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:142,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:143,1
    - Dst: send_record_under_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:146,1
    - Dst: std::make_unique<Datagram_Handshake_IO>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:148,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:149,1
    - Dst: send_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:152,1
    - Dst: std::make_unique<Stream_Handshake_IO>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:154,1
    - Dst: new_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:157,1
    - Dst: active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:159,1
    - Dst: set_version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:160,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 164
    functionName: '& Channel_Impl_12::create_handshake_state(Protocol_Version version)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - policy
    - Protocol_Version::to_string
    - sequence_numbers
    - auto*::version
    - std::make_unique<Stream_Handshake_IO>
    - new_handshake_state
    - std::make_unique<Datagram_Sequence_Numbers>
    - std::move
    - active_state
    - Protocol_Version::is_datagram_protocol
    - send_record_under_epoch
    - std::make_unique<Datagram_Handshake_IO>
    - send_record
    - TLS_Exception
    - Internal_Error
    - pending_state
    - std::make_unique<Stream_Sequence_Numbers>
    - static_cast<uint16_t>
    - set_version
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State & Channel_Impl_12::create_handshake_state(Protocol_Version
      version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Channel_Impl_12::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - handshake_io
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_12::timeout_check()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:176,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:180,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:182,1
    - Dst: initiate_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:185,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:185,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:185,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 189
    functionName: Botan::TLS::Channel_Impl_12::renegotiate
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::pending_state
    - policy
    - Botan::TLS::Channel_Impl_12::active_state
    - initiate_handshake
    - auto*::version
    - create_handshake_state
    - Invalid_State
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::renegotiate(bool force_full_renegotiation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Botan::TLS::Channel_Impl_12::update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::update_traffic_keys(bool /*update_requested*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:196,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:198,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:198,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:200,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:201,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:204,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:206,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:208,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:208,1
    - Dst: std::make_shared<Connection_Cipher_State>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:211,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:212,1
    - Dst: auto*::ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:215,1
    - Dst: auto*::session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:216,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 220
    functionName: Botan::TLS::Channel_Impl_12::change_cipher_spec_reader
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::pending_state
    - auto*::ciphersuite
    - sequence_numbers
    - std::make_shared<Connection_Cipher_State>
    - auto*::session_keys
    - contains
    - BOTAN_ASSERT
    - auto*::version
    - Internal_Error
    - auto*::server_hello
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::change_cipher_spec_reader(Connection_Side side)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:223,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:225,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:225,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:227,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:228,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:231,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:233,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:235,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:235,1
    - Dst: std::make_shared<Connection_Cipher_State>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:237,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:237,1
    - Dst: auto*::ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:240,1
    - Dst: auto*::session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:241,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 245
    functionName: Botan::TLS::Channel_Impl_12::change_cipher_spec_writer
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::pending_state
    - auto*::ciphersuite
    - sequence_numbers
    - std::make_shared<Connection_Cipher_State>
    - auto*::session_keys
    - contains
    - BOTAN_ASSERT
    - auto*::version
    - Internal_Error
    - auto*::server_hello
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::change_cipher_spec_writer(Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: Botan::TLS::Channel_Impl_12::is_handshake_complete
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::active_state
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_12::is_handshake_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:252,1
    - Dst: Botan::TLS::Channel_Impl_12::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: Botan::TLS::Channel_Impl_12::is_active
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    - Botan::TLS::Channel_Impl_12::is_handshake_complete
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_12::is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: Botan::TLS::Channel_Impl_12::is_closed
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_12::is_closed() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:260,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:261,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:263,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:265,1
    - Dst: map_remove_if
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:269,1
    - Dst: map_remove_if
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:270,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 274
    functionName: Botan::TLS::Channel_Impl_12::activate_session
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - reset
    - sequence_numbers
    - std::swap
    - version
    - callbacks
    - map_remove_if
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::activate_session()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:277,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:279,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:280,1
    - Dst: Botan::TLS::Channel_Impl_12::read_cipher_state_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:286,1
    - Dst: read_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:288,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:294,1
    - Dst: Record_Header::needed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:298,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:300,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:302,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:307,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:314,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:318,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:319,1
    - Dst: Record_Header::epoch
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:322,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:322,1
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:323,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:325,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:325,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:327,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:327,1
    - Dst: static_cast<Handshake_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:328,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:332,1
    - Dst: Record_Header::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:335,1
    - Dst: Record_Header::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:335,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:336,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:338,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:339,1
    - Dst: Record_Header::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:340,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:340,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:341,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:343,1
    - Dst: Record_Header::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:344,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:344,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:345,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:350,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:350,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:352,1
    - Dst: Botan::TLS::Channel_Impl_12::process_handshake_ccs
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:354,1
    - Dst: Record_Header::sequence
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:354,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:354,1
    - Dst: Record_Header::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:354,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:355,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:357,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:359,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:360,1
    - Dst: Botan::TLS::Channel_Impl_12::process_application_data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:362,1
    - Dst: Record_Header::sequence
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:362,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:363,1
    - Dst: Botan::TLS::Channel_Impl_12::process_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:364,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:365,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:366,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:366,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:366,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:366,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:373,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:373,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:376,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:379,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:382,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 76
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 385
    functionName: Botan::TLS::Channel_Impl_12::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::read_cipher_state_epoch
    - policy
    - send_fatal_alert
    - BOTAN_ASSERT
    - auto*::version
    - type
    - empty
    - Record_Header::needed
    - std::to_string
    - Unexpected_Message
    - get
    - Record_Header::epoch
    - std::span<const uint8_t>::data
    - Record_Header::type
    - Botan::TLS::Channel_Impl_12::active_state
    - static_cast<Handshake_Type>
    - TLS_Exception
    - Botan::TLS::Channel_Impl_12::process_application_data
    - Botan::TLS::Channel_Impl_12::process_handshake_ccs
    - Botan::TLS::Channel_Impl_12::process_alert
    - auto*::server_hello
    - Botan::TLS::Channel_Impl_12::pending_state
    - Record_Header::version
    - BOTAN_ASSERT_IMPLICATION
    - Record_Header::sequence
    - static_cast<size_t>
    - read_record
    - size
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t Channel_Impl_12::from_peer(std::span<const uint8_t> data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:394,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:400,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:404,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:405,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:406,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:407,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:408,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:408,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:408,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:411,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:414,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:420,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:420,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:420,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:422,1
    - Dst: auto*::get_next_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:423,1
    - Dst: process_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:429,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:429,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - ' record'
    - record_sequence
    - record_type
    - record_version
    - epoch0_restart
    argTypes:
    - secure_vector<uint8_t>
    - uint64_t
    - Record_Type
    - Protocol_Version
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 436
    functionName: Botan::TLS::Channel_Impl_12::process_handshake_ccs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - sequence_numbers
    - data
    - process_handshake_msg
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::Channel_Impl_12::active_state
    - BOTAN_ASSERT
    - handshake_io
    - get
    - size
    - create_handshake_state
    - auto*::get_next_handshake_msg
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_12::process_handshake_ccs(const secure_vector<uint8_t>&
      record,\n                                            uint64_t record_sequence,\n
      \                                           Record_Type record_type,\n                                            Protocol_Version
      record_version,\n                                            bool epoch0_restart)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:439,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:440,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - seq_no
    - ' record'
    argTypes:
    - uint64_t
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: Botan::TLS::Channel_Impl_12::process_application_data
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Channel_Impl_12::active_state
    - callbacks
    - Unexpected_Message
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::process_application_data(uint64_t seq_no, const
      secure_vector<uint8_t>& record)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Alert::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:449,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:450,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:453,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:455,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:456,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:457,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:457,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:458,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:459,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:460,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:460,1
    - Dst: Alert::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:465,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:468,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:469,1
    - Dst: Alert::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:472,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:472,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ' record'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 475
    functionName: Botan::TLS::Channel_Impl_12::process_alert
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - reset
    - Botan::TLS::Channel_Impl_12::active_state
    - callbacks
    - send_warning_alert
    - BOTAN_ASSERT_NONNULL
    - Alert::is_fatal
    - auto*::server_hello
    - Session_Handle
    - Alert::type
    - empty
    - session_manager
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::process_alert(const secure_vector<uint8_t>& record)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:482,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:485,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:485,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:487,1
    - Dst: Botan::TLS::write_unencrypted_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:490,1
    - Dst: Botan::TLS::write_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:492,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:492,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - cipher_state
    - epoch
    - record_type
    - input
    - length
    argTypes:
    - Connection_Cipher_State*
    - uint16_t
    - Record_Type
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 496
    functionName: Botan::TLS::Channel_Impl_12::write_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - sequence_numbers
    - BOTAN_ASSERT
    - version
    - callbacks
    - Botan::TLS::write_unencrypted_record
    - Botan::TLS::write_record
    - rng
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_12::write_record(Connection_Cipher_State* cipher_state,\n
      \                                  uint16_t epoch,\n                                   Record_Type
      record_type,\n                                   const uint8_t input[],\n                                   size_t
      length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::write_cipher_state_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:503,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:506,1
    - Dst: Botan::TLS::Channel_Impl_12::write_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:507,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - epoch
    - type
    - input
    - length
    argTypes:
    - uint16_t
    - Record_Type
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 512
    functionName: Botan::TLS::Channel_Impl_12::send_record_array
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - auto::get
    - Botan::TLS::Channel_Impl_12::write_record
    - Botan::TLS::Channel_Impl_12::write_cipher_state_epoch
    - std::min<size_t>
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::send_record_array(uint16_t epoch, Record_Type
      type, const uint8_t input[], size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::send_record_array
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:515,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:515,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:515,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - record_type
    - ' record'
    argTypes:
    - Record_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 514
    functionDepth: 5
    functionLinenumber: 514
    functionLinenumberEnd: 516
    functionName: Botan::TLS::Channel_Impl_12::send_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - sequence_numbers
    - data
    - Botan::TLS::Channel_Impl_12::send_record_array
    - size
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::send_record(Record_Type record_type, const std::vector<uint8_t>&
      record)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::send_record_array
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:521,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:521,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - epoch
    - record_type
    - ' record'
    argTypes:
    - uint16_t
    - Record_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 5
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: Botan::TLS::Channel_Impl_12::send_record_under_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - size
    - data
    - Botan::TLS::Channel_Impl_12::send_record_array
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_12::send_record_under_epoch(uint16_t epoch,\n                                              Record_Type
      record_type,\n                                              const std::vector<uint8_t>&
      record)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_active
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:525,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:526,1
    - Dst: Botan::TLS::Channel_Impl_12::send_record_array
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:529,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:529,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:529,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 524
    functionDepth: 5
    functionLinenumber: 524
    functionLinenumberEnd: 530
    functionName: Botan::TLS::Channel_Impl_12::to_peer
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - sequence_numbers
    - Botan::TLS::Channel_Impl_12::is_active
    - Botan::TLS::Channel_Impl_12::send_record_array
    - Invalid_State
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::to_peer(std::span<const uint8_t> data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:533,1
    - Dst: is_valid
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:534,1
    - Dst: Botan::TLS::Channel_Impl_12::send_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:536,1
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:536,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:541,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:542,1
    - Dst: is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:545,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:546,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:547,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:547,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:548,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:549,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:550,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:550,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:550,1
    - Dst: Botan::TLS::Channel_Impl_12::reset_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:553,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:556,1
    - Dst: is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:556,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 532
    functionDepth: 6
    functionLinenumber: 532
    functionLinenumberEnd: 559
    functionName: Botan::TLS::Channel_Impl_12::send_alert
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - is_valid
    - Botan::TLS::Channel_Impl_12::send_record
    - reset
    - Botan::TLS::Channel_Impl_12::active_state
    - Session_ID
    - is_fatal
    - serialize
    - Botan::TLS::Channel_Impl_12::reset_state
    - Botan::TLS::Channel_Impl_12::is_closed
    - BOTAN_ASSERT_NONNULL
    - Session_Handle
    - type
    - auto*::server_hello
    - empty
    - session_manager
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::send_alert(const Alert& alert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:562,1
    - Dst: Client_Hello_12*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:563,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:565,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:566,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:566,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:567,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:570,1
    - Dst: Client_Hello_12*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:575,1
    - Dst: Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:577,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:578,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 581
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::active_state
    - Client_Hello_12*::secure_renegotiation
    - TLS_Exception
    - Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_client_hello
    - BOTAN_ASSERT_NONNULL
    - Client_Hello_12*::renegotiation_info
    - auto*::client_hello
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::secure_renegotiation_check(const Client_Hello_12*
      client_hello)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:584,1
    - Dst: Server_Hello_12*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:585,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:587,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:588,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:588,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:589,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:592,1
    - Dst: Server_Hello_12*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:597,1
    - Dst: Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:599,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:600,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 603
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::active_state
    - Server_Hello_12*::renegotiation_info
    - Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_server_hello
    - TLS_Exception
    - BOTAN_ASSERT_NONNULL
    - Server_Hello_12*::secure_renegotiation
    - auto*::server_hello
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::secure_renegotiation_check(const Server_Hello_12*
      server_hello)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:606,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:607,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:607,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:608,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - auto*::client_finished
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Channel_Impl_12::active_state
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Channel_Impl_12::secure_renegotiation_data_for_client_hello()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:614,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:615,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:615,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:616,1
    - Dst: auto*::server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:616,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:617,1
    - Dst: auto*::server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:618,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 623
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - auto*::server_finished
    - Botan::TLS::Channel_Impl_12::active_state
    - auto*::client_finished
    - std::vector<uint8_t>
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Channel_Impl_12::secure_renegotiation_data_for_server_hello()
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:626,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:627,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:630,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:631,1
    - Dst: auto*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 637
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_supported
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - auto*::server_hello
    - auto*::secure_renegotiation
    - Botan::TLS::Channel_Impl_12::pending_state
    - Botan::TLS::Channel_Impl_12::active_state
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_12::secure_renegotiation_supported() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:642,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:643,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:644,1
    - Dst: auto*::protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:647,1
    - Dst: auto*::session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:649,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:651,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:651,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:652,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:652,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:654,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:655,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:657,1
    - Dst: std::string_view::length
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:658,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:660,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:662,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:662,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:662,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:663,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:663,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:663,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:664,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:667,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:667,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:667,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:669,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 671
    functionName: Botan::TLS::Channel_Impl_12::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::pending_state
    - Invalid_Argument
    - auto*::session_keys
    - Botan::TLS::Channel_Impl_12::active_state
    - std::vector::push_back
    - get_byte<1>
    - SymmetricKey
    - std::string_view::length
    - as_span_of_bytes
    - auto*::server_hello
    - get_byte<0>
    - static_cast<uint16_t>
    - std::string_view::empty
    - auto::derive_key
    - BOTAN_ASSERT_NONNULL
    - auto*::client_hello
    - Invalid_State
    - auto*::protocol_specific_prf
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey Channel_Impl_12::key_material_export(std::string_view
      label,\n                                                  std::string_view context,\n
      \                                                 size_t length) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:39,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:40,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:41,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:42,1
    - Dst: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:48,1
    - Dst: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' rng'
    - ' policy'
    - is_server
    - is_datagram
    - reserved_io_buffer_size
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<RandomNumberGenerator>
    - std::shared_ptr<const Policy>
    - bool
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 50
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - reserve
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_12::Channel_Impl_12(const std::shared_ptr<Callbacks>&
      callbacks,\n                                 const std::shared_ptr<Session_Manager>&
      session_manager,\n                                 const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                 const std::shared_ptr<const Policy>&
      policy,\n                                 bool is_server,\n                                 bool
      is_datagram,\n                                 size_t reserved_io_buffer_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:53,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:54,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:55,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:56,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: Botan::TLS::Channel_Impl_12::reset_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - reset
    - clear
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::reset_state()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:62,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:63,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:64,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:65,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: Botan::TLS::Channel_Impl_12::reset_active_association_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - reset
    - clear
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::reset_active_association_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Channel_Impl_12::~Channel_Impl_12()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::~Channel_Impl_12()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: '& Channel_Impl_12::sequence_numbers() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: Connection_Sequence_Numbers
    signature: Connection_Sequence_Numbers & Channel_Impl_12::sequence_numbers() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:83,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:84,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:85,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Channel_Impl_12::read_cipher_state_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - Internal_Error
    - std::to_string
    - end
    - find
    linkageType: ''
    returnType: std::shared_ptr<Connection_Cipher_State>
    signature: std::shared_ptr<Connection_Cipher_State> Channel_Impl_12::read_cipher_state_epoch(uint16_t
      epoch) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:91,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:92,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:93,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Channel_Impl_12::write_cipher_state_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - Internal_Error
    - std::to_string
    - end
    - find
    linkageType: ''
    returnType: std::shared_ptr<Connection_Cipher_State>
    signature: std::shared_ptr<Connection_Cipher_State> Channel_Impl_12::write_cipher_state_epoch(uint16_t
      epoch) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:99,1
    - Dst: get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:100,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::TLS::Channel_Impl_12::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector<X509_Certificate>
    - Botan::TLS::Channel_Impl_12::active_state
    - get_peer_cert_chain
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Channel_Impl_12::peer_cert_chain() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:106,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:106,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:106,1
    - Dst: auto*::psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Channel_Impl_12::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::pending_state
    - auto*::psk_identity
    - Botan::TLS::Channel_Impl_12::active_state
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Channel_Impl_12::external_psk_identity()
      const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:115,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:116,1
    - Dst: active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:119,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:120,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:122,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:122,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:123,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:124,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:125,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:130,1
    - Dst: std::make_unique<Datagram_Sequence_Numbers>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:131,1
    - Dst: std::make_unique<Stream_Sequence_Numbers>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:133,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:140,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:141,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:141,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:142,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:143,1
    - Dst: send_record_under_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:146,1
    - Dst: std::make_unique<Datagram_Handshake_IO>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:148,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:149,1
    - Dst: send_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:152,1
    - Dst: std::make_unique<Stream_Handshake_IO>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:154,1
    - Dst: new_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:157,1
    - Dst: active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:159,1
    - Dst: set_version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:160,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 164
    functionName: '& Channel_Impl_12::create_handshake_state(Protocol_Version version)'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - policy
    - Protocol_Version::to_string
    - sequence_numbers
    - auto*::version
    - std::make_unique<Stream_Handshake_IO>
    - new_handshake_state
    - std::make_unique<Datagram_Sequence_Numbers>
    - std::move
    - active_state
    - Protocol_Version::is_datagram_protocol
    - send_record_under_epoch
    - std::make_unique<Datagram_Handshake_IO>
    - send_record
    - TLS_Exception
    - Internal_Error
    - pending_state
    - std::make_unique<Stream_Sequence_Numbers>
    - static_cast<uint16_t>
    - set_version
    linkageType: ''
    returnType: Handshake_State
    signature: Handshake_State & Channel_Impl_12::create_handshake_state(Protocol_Version
      version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Channel_Impl_12::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - handshake_io
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_12::timeout_check()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:176,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:180,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:182,1
    - Dst: initiate_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:185,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:185,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:185,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 189
    functionName: Botan::TLS::Channel_Impl_12::renegotiate
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::pending_state
    - policy
    - Botan::TLS::Channel_Impl_12::active_state
    - initiate_handshake
    - auto*::version
    - create_handshake_state
    - Invalid_State
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::renegotiate(bool force_full_renegotiation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Botan::TLS::Channel_Impl_12::update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::update_traffic_keys(bool /*update_requested*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:196,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:198,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:198,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:200,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:201,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:204,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:206,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:208,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:208,1
    - Dst: std::make_shared<Connection_Cipher_State>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:211,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:212,1
    - Dst: auto*::ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:215,1
    - Dst: auto*::session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:216,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 220
    functionName: Botan::TLS::Channel_Impl_12::change_cipher_spec_reader
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::pending_state
    - auto*::ciphersuite
    - sequence_numbers
    - std::make_shared<Connection_Cipher_State>
    - auto*::session_keys
    - contains
    - BOTAN_ASSERT
    - auto*::version
    - Internal_Error
    - auto*::server_hello
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::change_cipher_spec_reader(Connection_Side side)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:223,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:225,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:225,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:227,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:228,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:231,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:233,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:235,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:235,1
    - Dst: std::make_shared<Connection_Cipher_State>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:237,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:237,1
    - Dst: auto*::ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:240,1
    - Dst: auto*::session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:241,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 245
    functionName: Botan::TLS::Channel_Impl_12::change_cipher_spec_writer
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::pending_state
    - auto*::ciphersuite
    - sequence_numbers
    - std::make_shared<Connection_Cipher_State>
    - auto*::session_keys
    - contains
    - BOTAN_ASSERT
    - auto*::version
    - Internal_Error
    - auto*::server_hello
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::change_cipher_spec_writer(Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: Botan::TLS::Channel_Impl_12::is_handshake_complete
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Channel_Impl_12::active_state
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_12::is_handshake_complete() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:252,1
    - Dst: Botan::TLS::Channel_Impl_12::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: Botan::TLS::Channel_Impl_12::is_active
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    - Botan::TLS::Channel_Impl_12::is_handshake_complete
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_12::is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: Botan::TLS::Channel_Impl_12::is_closed
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_12::is_closed() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:260,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:261,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:263,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:265,1
    - Dst: map_remove_if
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:269,1
    - Dst: map_remove_if
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:270,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 274
    functionName: Botan::TLS::Channel_Impl_12::activate_session
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - reset
    - sequence_numbers
    - std::swap
    - version
    - callbacks
    - map_remove_if
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::activate_session()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:277,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:279,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:280,1
    - Dst: Botan::TLS::Channel_Impl_12::read_cipher_state_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:286,1
    - Dst: read_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:288,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:294,1
    - Dst: Record_Header::needed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:298,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:300,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:302,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:307,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:314,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:318,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:319,1
    - Dst: Record_Header::epoch
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:322,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:322,1
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:323,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:325,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:325,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:327,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:327,1
    - Dst: static_cast<Handshake_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:328,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:332,1
    - Dst: Record_Header::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:335,1
    - Dst: Record_Header::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:335,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:336,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:338,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:339,1
    - Dst: Record_Header::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:340,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:340,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:341,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:343,1
    - Dst: Record_Header::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:344,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:344,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:345,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:350,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:350,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:352,1
    - Dst: Botan::TLS::Channel_Impl_12::process_handshake_ccs
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:354,1
    - Dst: Record_Header::sequence
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:354,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:354,1
    - Dst: Record_Header::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:354,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:355,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:357,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:359,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:360,1
    - Dst: Botan::TLS::Channel_Impl_12::process_application_data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:362,1
    - Dst: Record_Header::sequence
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:362,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:363,1
    - Dst: Botan::TLS::Channel_Impl_12::process_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:364,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:365,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:366,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:366,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:366,1
    - Dst: Record_Header::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:366,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:373,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:373,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:376,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:379,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:382,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 76
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 385
    functionName: Botan::TLS::Channel_Impl_12::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::read_cipher_state_epoch
    - policy
    - send_fatal_alert
    - BOTAN_ASSERT
    - auto*::version
    - type
    - empty
    - Record_Header::needed
    - std::to_string
    - Unexpected_Message
    - get
    - Record_Header::epoch
    - std::span<const uint8_t>::data
    - Record_Header::type
    - Botan::TLS::Channel_Impl_12::active_state
    - static_cast<Handshake_Type>
    - TLS_Exception
    - Botan::TLS::Channel_Impl_12::process_application_data
    - Botan::TLS::Channel_Impl_12::process_handshake_ccs
    - Botan::TLS::Channel_Impl_12::process_alert
    - auto*::server_hello
    - Botan::TLS::Channel_Impl_12::pending_state
    - Record_Header::version
    - BOTAN_ASSERT_IMPLICATION
    - Record_Header::sequence
    - static_cast<size_t>
    - read_record
    - size
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: size_t
    signature: size_t Channel_Impl_12::from_peer(std::span<const uint8_t> data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:394,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:400,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:404,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:405,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:406,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:407,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:408,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:408,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:408,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:411,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:414,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:420,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:420,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:420,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:422,1
    - Dst: auto*::get_next_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:423,1
    - Dst: process_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:429,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:429,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - ' record'
    - record_sequence
    - record_type
    - record_version
    - epoch0_restart
    argTypes:
    - secure_vector<uint8_t>
    - uint64_t
    - Record_Type
    - Protocol_Version
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 436
    functionName: Botan::TLS::Channel_Impl_12::process_handshake_ccs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 2
    functionsReached:
    - sequence_numbers
    - data
    - process_handshake_msg
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::Channel_Impl_12::active_state
    - BOTAN_ASSERT
    - handshake_io
    - get
    - size
    - create_handshake_state
    - auto*::get_next_handshake_msg
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_12::process_handshake_ccs(const secure_vector<uint8_t>&
      record,\n                                            uint64_t record_sequence,\n
      \                                           Record_Type record_type,\n                                            Protocol_Version
      record_version,\n                                            bool epoch0_restart)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:439,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:440,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - seq_no
    - ' record'
    argTypes:
    - uint64_t
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: Botan::TLS::Channel_Impl_12::process_application_data
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Channel_Impl_12::active_state
    - callbacks
    - Unexpected_Message
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::process_application_data(uint64_t seq_no, const
      secure_vector<uint8_t>& record)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Alert::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:449,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:450,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:453,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:455,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:456,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:457,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:457,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:458,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:459,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:460,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:460,1
    - Dst: Alert::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:465,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:468,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:469,1
    - Dst: Alert::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:472,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:472,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ' record'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 475
    functionName: Botan::TLS::Channel_Impl_12::process_alert
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 2
    functionsReached:
    - reset
    - Botan::TLS::Channel_Impl_12::active_state
    - callbacks
    - send_warning_alert
    - BOTAN_ASSERT_NONNULL
    - Alert::is_fatal
    - auto*::server_hello
    - Session_Handle
    - Alert::type
    - empty
    - session_manager
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::process_alert(const secure_vector<uint8_t>& record)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:482,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:485,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:485,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:487,1
    - Dst: Botan::TLS::write_unencrypted_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:490,1
    - Dst: Botan::TLS::write_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:492,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:492,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - cipher_state
    - epoch
    - record_type
    - input
    - length
    argTypes:
    - Connection_Cipher_State*
    - uint16_t
    - Record_Type
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 496
    functionName: Botan::TLS::Channel_Impl_12::write_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - sequence_numbers
    - BOTAN_ASSERT
    - version
    - callbacks
    - Botan::TLS::write_unencrypted_record
    - Botan::TLS::write_record
    - rng
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_12::write_record(Connection_Cipher_State* cipher_state,\n
      \                                  uint16_t epoch,\n                                   Record_Type
      record_type,\n                                   const uint8_t input[],\n                                   size_t
      length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::write_cipher_state_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:503,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:506,1
    - Dst: Botan::TLS::Channel_Impl_12::write_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:507,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - epoch
    - type
    - input
    - length
    argTypes:
    - uint16_t
    - Record_Type
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 512
    functionName: Botan::TLS::Channel_Impl_12::send_record_array
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 3
    functionsReached:
    - auto::get
    - Botan::TLS::Channel_Impl_12::write_record
    - Botan::TLS::Channel_Impl_12::write_cipher_state_epoch
    - std::min<size_t>
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::send_record_array(uint16_t epoch, Record_Type
      type, const uint8_t input[], size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::send_record_array
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:515,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:515,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:515,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - record_type
    - ' record'
    argTypes:
    - Record_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 514
    functionDepth: 5
    functionLinenumber: 514
    functionLinenumberEnd: 516
    functionName: Botan::TLS::Channel_Impl_12::send_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - sequence_numbers
    - data
    - Botan::TLS::Channel_Impl_12::send_record_array
    - size
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::send_record(Record_Type record_type, const std::vector<uint8_t>&
      record)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::send_record_array
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:521,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:521,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - epoch
    - record_type
    - ' record'
    argTypes:
    - uint16_t
    - Record_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 5
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: Botan::TLS::Channel_Impl_12::send_record_under_epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - size
    - data
    - Botan::TLS::Channel_Impl_12::send_record_array
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_12::send_record_under_epoch(uint16_t epoch,\n                                              Record_Type
      record_type,\n                                              const std::vector<uint8_t>&
      record)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_active
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:525,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:526,1
    - Dst: Botan::TLS::Channel_Impl_12::send_record_array
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:529,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:529,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:529,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 524
    functionDepth: 5
    functionLinenumber: 524
    functionLinenumberEnd: 530
    functionName: Botan::TLS::Channel_Impl_12::to_peer
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - sequence_numbers
    - Botan::TLS::Channel_Impl_12::is_active
    - Botan::TLS::Channel_Impl_12::send_record_array
    - Invalid_State
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::to_peer(std::span<const uint8_t> data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::is_closed
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:533,1
    - Dst: is_valid
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:534,1
    - Dst: Botan::TLS::Channel_Impl_12::send_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:536,1
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:536,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:541,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:542,1
    - Dst: is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:545,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:546,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:547,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:547,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:548,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:549,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:550,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:550,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:550,1
    - Dst: Botan::TLS::Channel_Impl_12::reset_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:553,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:556,1
    - Dst: is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:556,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 532
    functionDepth: 6
    functionLinenumber: 532
    functionLinenumberEnd: 559
    functionName: Botan::TLS::Channel_Impl_12::send_alert
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - is_valid
    - Botan::TLS::Channel_Impl_12::send_record
    - reset
    - Botan::TLS::Channel_Impl_12::active_state
    - Session_ID
    - is_fatal
    - serialize
    - Botan::TLS::Channel_Impl_12::reset_state
    - Botan::TLS::Channel_Impl_12::is_closed
    - BOTAN_ASSERT_NONNULL
    - Session_Handle
    - type
    - auto*::server_hello
    - empty
    - session_manager
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::send_alert(const Alert& alert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:562,1
    - Dst: Client_Hello_12*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:563,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:565,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:566,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:566,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:567,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:570,1
    - Dst: Client_Hello_12*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:575,1
    - Dst: Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:577,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:578,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 581
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::active_state
    - Client_Hello_12*::secure_renegotiation
    - TLS_Exception
    - Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_client_hello
    - BOTAN_ASSERT_NONNULL
    - Client_Hello_12*::renegotiation_info
    - auto*::client_hello
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::secure_renegotiation_check(const Client_Hello_12*
      client_hello)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:584,1
    - Dst: Server_Hello_12*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:585,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:587,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:588,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:588,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:589,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:592,1
    - Dst: Server_Hello_12*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:597,1
    - Dst: Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:599,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:600,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 603
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::active_state
    - Server_Hello_12*::renegotiation_info
    - Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_server_hello
    - TLS_Exception
    - BOTAN_ASSERT_NONNULL
    - Server_Hello_12*::secure_renegotiation
    - auto*::server_hello
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::secure_renegotiation_check(const Server_Hello_12*
      server_hello)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:606,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:607,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:607,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:608,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 2
    functionsReached:
    - auto*::client_finished
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Channel_Impl_12::active_state
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Channel_Impl_12::secure_renegotiation_data_for_client_hello()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:614,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:615,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:615,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:616,1
    - Dst: auto*::server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:616,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:617,1
    - Dst: auto*::server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:618,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 623
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 2
    functionsReached:
    - auto*::server_finished
    - Botan::TLS::Channel_Impl_12::active_state
    - auto*::client_finished
    - std::vector<uint8_t>
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Channel_Impl_12::secure_renegotiation_data_for_server_hello()
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:626,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:627,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:630,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:631,1
    - Dst: auto*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 637
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_supported
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - auto*::server_hello
    - auto*::secure_renegotiation
    - Botan::TLS::Channel_Impl_12::pending_state
    - Botan::TLS::Channel_Impl_12::active_state
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_12::secure_renegotiation_supported() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:642,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:643,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:644,1
    - Dst: auto*::protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:647,1
    - Dst: auto*::session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:649,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:651,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:651,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:652,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:652,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:654,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:655,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:657,1
    - Dst: std::string_view::length
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:658,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:660,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:662,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:662,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:662,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:663,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:663,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:663,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:664,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:667,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:667,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:667,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:669,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 671
    functionName: Botan::TLS::Channel_Impl_12::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::pending_state
    - Invalid_Argument
    - auto*::session_keys
    - Botan::TLS::Channel_Impl_12::active_state
    - std::vector::push_back
    - get_byte<1>
    - SymmetricKey
    - std::string_view::length
    - as_span_of_bytes
    - auto*::server_hello
    - get_byte<0>
    - static_cast<uint16_t>
    - std::string_view::empty
    - auto::derive_key
    - BOTAN_ASSERT_NONNULL
    - auto*::client_hello
    - Invalid_State
    - auto*::protocol_specific_prf
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey Channel_Impl_12::key_material_export(std::string_view
      label,\n                                                  std::string_view context,\n
      \                                                 size_t length) const"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:36,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:41,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:42,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:43,1
    - Dst: psk_identity
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:46,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:46,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:48,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:48,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:48,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:50,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:50,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:50,1
    - Dst: SymmetricKey::length
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:52,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:54,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:55,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:55,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:56,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:57,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:62,1
    - Dst: psk_identity
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:64,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:64,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:66,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:66,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:66,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:68,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:68,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:68,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:72,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:72,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:73,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:73,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:74,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:76,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:77,1
    - Dst: DL_Group::verify_group
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:82,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:83,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:86,1
    - Dst: Botan::CT::strip_leading_zeros
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:87,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:88,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:89,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:89,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:91,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:93,1
    - Dst: static_cast<Group_Params>
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:96,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:96,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:97,1
    - Dst: Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:99,1
    - Dst: Group_Params::is_x25519
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:99,1
    - Dst: Group_Params::is_x448
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:99,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:100,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:104,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:105,1
    - Dst: Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:109,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:110,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:113,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:115,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:120,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:124,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:127,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:129,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:130,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:130,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:136,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:136,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:138,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:141,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:146,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:150,1
    - Dst: dynamic_cast<const RSA_PublicKey*>
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:153,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:154,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:156,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:157,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:158,1
    - Dst: PK_Encryptor_EME::encrypt
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:162,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:164,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:166,1
    - Dst: Public_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:167,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:171,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:171,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 7
    argNames:
    - ' io'
    - ' state'
    - ' policy'
    - ' creds'
    - server_public_key
    - hostname
    - ' rng'
    argTypes:
    - Handshake_IO
    - Handshake_State
    - Policy
    - Credentials_Manager
    - Public_Key*
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 172
    functionName: Botan::TLS::Client_Key_Exchange::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp
    functionUses: 0
    functionsReached:
    - choose_key_exchange_group
    - psk_identity
    - std::string
    - random_vec
    - TLS_Data_Reader::get_byte
    - as_span_of_bytes
    - callbacks
    - Group_Params::is_x25519
    - SymmetricKey::length
    - SymmetricKey::bits_of
    - static_cast<Group_Params>
    - dynamic_cast<const RSA_PublicKey*>
    - Botan::BigInt::from_bytes
    - hash
    - DL_Group::verify_group
    - Unexpected_Message
    - std::move
    - Protocol_Version::minor_version
    - TLS_Data_Reader::get_string
    - psk
    - Group_Params::is_x448
    - TLS_Data_Reader::get_range
    - TLS_Data_Reader::assert_done
    - Public_Key*::algo_name
    - auto::raw_public_key_bits
    - TLS_Data_Reader::remaining_bytes
    - server_hello
    - ciphersuite
    - server_kex
    - client_hello
    - TLS_Exception
    - Internal_Error
    - Botan::CT::strip_leading_zeros
    - value
    - Group_Params::is_ecdh_named_curve
    - Decoding_Error
    - send
    - PK_Encryptor_EME::encrypt
    - auto::public_value
    - Protocol_Version::major_version
    - TLS_Data_Reader::get_uint16_t
    - append_tls_length_value
    linkageType: ''
    returnType: void
    signature: "void Client_Key_Exchange::Client_Key_Exchange(Handshake_IO& io,\n
      \                                        Handshake_State& state,\n                                         const
      Policy& policy,\n                                         Credentials_Manager&
      creds,\n                                         const Public_Key* server_public_key,\n
      \                                        std::string_view hostname,\n                                         RandomNumberGenerator&
      rng)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:183,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:186,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:186,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:186,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:190,1
    - Dst: Private_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:193,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:194,1
    - Dst: Private_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:194,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:198,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:199,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:203,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:204,1
    - Dst: PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:217,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:217,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:218,1
    - Dst: key_exchange_is_psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:229,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:230,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:232,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:232,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:232,1
    - Dst: SymmetricKey::empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:234,1
    - Dst: hide_unknown_users
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:235,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:236,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:238,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:238,1
    - Dst: SymmetricKey::length
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:244,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:245,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:246,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:246,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:248,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:250,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:251,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:252,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:254,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:255,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:255,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:259,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:259,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:261,1
    - Dst: Botan::CT::strip_leading_zeros
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:262,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:266,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:267,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:267,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:272,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:272,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:282,1
    - Dst: public_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:282,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:285,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:287,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 6
    argNames:
    - ' contents'
    - ' state'
    - server_rsa_kex_key
    - ' creds'
    - ' policy'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - Handshake_State
    - Private_Key*
    - Credentials_Manager
    - Policy
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 290
    functionName: Botan::TLS::Client_Key_Exchange::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - BOTAN_ASSERT
    - callbacks
    - server_certs
    - key_exchange_is_psk
    - SymmetricKey::length
    - hide_unknown_users
    - SymmetricKey::bits_of
    - algo_name
    - TLS_Data_Reader::get_string
    - psk
    - TLS_Data_Reader::get_range
    - TLS_Data_Reader::assert_done
    - std::vector::size
    - BOTAN_STATE_CHECK
    - public_value
    - ciphersuite
    - server_kex
    - client_hello
    - TLS_Exception
    - Internal_Error
    - Private_Key*::algo_name
    - value
    - Botan::CT::strip_leading_zeros
    - what
    - SymmetricKey::empty
    - SymmetricKey
    - std::vector::data
    - PK_Decryptor_EME::decrypt_or_random
    - auto::value
    - append_tls_length_value
    linkageType: ''
    returnType: void
    signature: "void Client_Key_Exchange::Client_Key_Exchange(const std::vector<uint8_t>&
      contents,\n                                         const Handshake_State& state,\n
      \                                        const Private_Key* server_rsa_kex_key,\n
      \                                        Credentials_Manager& creds,\n                                         const
      Policy& policy,\n                                         RandomNumberGenerator&
      rng)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:36,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:41,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:42,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:43,1
    - Dst: psk_identity
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:46,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:46,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:48,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:48,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:48,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:50,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:50,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:50,1
    - Dst: SymmetricKey::length
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:52,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:54,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:55,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:55,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:56,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:57,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:62,1
    - Dst: psk_identity
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:64,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:64,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:66,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:66,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:66,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:68,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:68,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:68,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:72,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:72,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:73,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:73,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:74,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:76,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:77,1
    - Dst: DL_Group::verify_group
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:82,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:83,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:86,1
    - Dst: Botan::CT::strip_leading_zeros
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:87,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:88,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:89,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:89,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:91,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:93,1
    - Dst: static_cast<Group_Params>
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:96,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:96,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:97,1
    - Dst: Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:99,1
    - Dst: Group_Params::is_x25519
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:99,1
    - Dst: Group_Params::is_x448
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:99,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:100,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:104,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:105,1
    - Dst: Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:109,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:110,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:113,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:115,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:120,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:124,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:127,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:129,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:130,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:130,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:136,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:136,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:138,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:141,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:146,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:150,1
    - Dst: dynamic_cast<const RSA_PublicKey*>
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:153,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:154,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:156,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:157,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:158,1
    - Dst: PK_Encryptor_EME::encrypt
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:162,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:164,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:166,1
    - Dst: Public_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:167,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:171,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:171,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 7
    argNames:
    - ' io'
    - ' state'
    - ' policy'
    - ' creds'
    - server_public_key
    - hostname
    - ' rng'
    argTypes:
    - Handshake_IO
    - Handshake_State
    - Policy
    - Credentials_Manager
    - Public_Key*
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 172
    functionName: Botan::TLS::Client_Key_Exchange::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp
    functionUses: 0
    functionsReached:
    - choose_key_exchange_group
    - psk_identity
    - std::string
    - random_vec
    - TLS_Data_Reader::get_byte
    - as_span_of_bytes
    - callbacks
    - Group_Params::is_x25519
    - SymmetricKey::length
    - SymmetricKey::bits_of
    - static_cast<Group_Params>
    - dynamic_cast<const RSA_PublicKey*>
    - Botan::BigInt::from_bytes
    - hash
    - DL_Group::verify_group
    - Unexpected_Message
    - std::move
    - Protocol_Version::minor_version
    - TLS_Data_Reader::get_string
    - psk
    - Group_Params::is_x448
    - TLS_Data_Reader::get_range
    - TLS_Data_Reader::assert_done
    - Public_Key*::algo_name
    - auto::raw_public_key_bits
    - TLS_Data_Reader::remaining_bytes
    - server_hello
    - ciphersuite
    - server_kex
    - client_hello
    - TLS_Exception
    - Internal_Error
    - Botan::CT::strip_leading_zeros
    - value
    - Group_Params::is_ecdh_named_curve
    - Decoding_Error
    - send
    - PK_Encryptor_EME::encrypt
    - auto::public_value
    - Protocol_Version::major_version
    - TLS_Data_Reader::get_uint16_t
    - append_tls_length_value
    linkageType: ''
    returnType: void
    signature: "void Client_Key_Exchange::Client_Key_Exchange(Handshake_IO& io,\n
      \                                        Handshake_State& state,\n                                         const
      Policy& policy,\n                                         Credentials_Manager&
      creds,\n                                         const Public_Key* server_public_key,\n
      \                                        std::string_view hostname,\n                                         RandomNumberGenerator&
      rng)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:183,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:186,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:186,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:186,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:190,1
    - Dst: Private_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:193,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:194,1
    - Dst: Private_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:194,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:198,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:199,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:203,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:204,1
    - Dst: PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:217,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:217,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:218,1
    - Dst: key_exchange_is_psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:229,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:230,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:232,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:232,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:232,1
    - Dst: SymmetricKey::empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:234,1
    - Dst: hide_unknown_users
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:235,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:236,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:238,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:238,1
    - Dst: SymmetricKey::length
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:244,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:245,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:246,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:246,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:248,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:250,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:251,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:252,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:254,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:255,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:255,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:259,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:259,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:261,1
    - Dst: Botan::CT::strip_leading_zeros
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:262,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:266,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:267,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:267,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:272,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:272,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:282,1
    - Dst: public_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:282,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:285,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:287,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 6
    argNames:
    - ' contents'
    - ' state'
    - server_rsa_kex_key
    - ' creds'
    - ' policy'
    - ' rng'
    argTypes:
    - std::vector<uint8_t>
    - Handshake_State
    - Private_Key*
    - Credentials_Manager
    - Policy
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 290
    functionName: Botan::TLS::Client_Key_Exchange::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - BOTAN_ASSERT
    - callbacks
    - server_certs
    - key_exchange_is_psk
    - SymmetricKey::length
    - hide_unknown_users
    - SymmetricKey::bits_of
    - algo_name
    - TLS_Data_Reader::get_string
    - psk
    - TLS_Data_Reader::get_range
    - TLS_Data_Reader::assert_done
    - std::vector::size
    - BOTAN_STATE_CHECK
    - public_value
    - ciphersuite
    - server_kex
    - client_hello
    - TLS_Exception
    - Internal_Error
    - Private_Key*::algo_name
    - value
    - Botan::CT::strip_leading_zeros
    - what
    - SymmetricKey::empty
    - SymmetricKey
    - std::vector::data
    - PK_Decryptor_EME::decrypt_or_random
    - auto::value
    - append_tls_length_value
    linkageType: ''
    returnType: void
    signature: "void Client_Key_Exchange::Client_Key_Exchange(const std::vector<uint8_t>&
      contents,\n                                         const Handshake_State& state,\n
      \                                        const Private_Key* server_rsa_kex_key,\n
      \                                        Credentials_Manager& creds,\n                                         const
      Policy& policy,\n                                         RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 62
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_NULL_HMAC_AEAD_Mode
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::TLS::tag_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:69,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:70,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 1
    functionsReached:
    - std::move
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_NULL_HMAC_AEAD_Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::minimum_final_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:87,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:88,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:88,1
    - Dst: Botan::TLS::tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 1
    functionsReached:
    - std::move
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    - Botan::TLS::tag_size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_NULL_HMAC_AEAD_Decryption
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::TLS::minimum_final_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 62
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_NULL_HMAC_AEAD_Mode
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::TLS::tag_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:69,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:70,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 2
    functionsReached:
    - std::move
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_NULL_HMAC_AEAD_Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::minimum_final_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:87,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:88,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:88,1
    - Dst: Botan::TLS::tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 2
    functionsReached:
    - std::move
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    - Botan::TLS::tag_size
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_NULL_HMAC_AEAD_Decryption
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::TLS::minimum_final_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<MessageAuthenticationCode>::name
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:23,1
    - Dst: std::unique_ptr<MessageAuthenticationCode>::output_length
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:23,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mac
    - mac_keylen
    argTypes:
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::TLS_NULL_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<MessageAuthenticationCode>::name
    - std::move
    - std::unique_ptr<MessageAuthenticationCode>::output_length
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::TLS_NULL_HMAC_AEAD_Mode(std::unique_ptr<MessageAuthenticationCode>
      mac, size_t mac_keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:26,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::clear
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 1
    functionsReached:
    - mac
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::clear
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:31,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:31,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - mac
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string TLS_NULL_HMAC_AEAD_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nl
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TLS_NULL_HMAC_AEAD_Mode::valid_nonce_length(size_t nl) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Length_Specification
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - Key_Length_Specification
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification TLS_NULL_HMAC_AEAD_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - mac
    linkageType: ''
    returnType: bool
    signature: bool TLS_NULL_HMAC_AEAD_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::mac_keylen
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Mode::mac_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: '& TLS_NULL_HMAC_AEAD_Mode::mac() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: MessageAuthenticationCode
    signature: MessageAuthenticationCode & TLS_NULL_HMAC_AEAD_Mode::mac() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:69,1
    - Dst: Invalid_Key_Length
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:70,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:70,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:70,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:72,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:72,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:72,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::reset
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Key_Length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
    - std::span<const uint8_t>::begin
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::reset
    - std::span<const uint8_t>::size
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::key_schedule(std::span<const uint8_t>
      key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:77,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::valid_nonce_length
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:79,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:80,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
    - BOTAN_UNUSED
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::valid_nonce_length
    - Invalid_IV_Length
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::start_msg(const uint8_t nonce[], size_t
      nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - mac
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Mode::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:90,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:91,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:91,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - mac
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::set_associated_data_n(size_t idx, std::span<const
      uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::set_associated_data_n
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::set_associated_data_n
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Encryption::set_associated_data_n(size_t idx,
      std::span<const uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Encryption::output_length(size_t input_length)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:105,1
    - Dst: subspan
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:105,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:106,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:106,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:106,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:107,1
    - Dst: last
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:107,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - mac
    - resize
    - subspan
    - tag_size
    - last
    - size
    - process
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Encryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Decryption::output_length(size_t input_length)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:115,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:115,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:115,1
    - Dst: subspan
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:118,1
    - Dst: auto::first
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:119,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:119,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:119,1
    - Dst: auto::subspan
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:120,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:120,1
    - Dst: process
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:122,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:123,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:124,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:127,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:127,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 128
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - mac
    - resize
    - subspan
    - auto::size
    - tag_size
    - BOTAN_ARG_CHECK
    - TLS_Exception
    - size
    - auto::subspan
    - auto::first
    - process
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Decryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<MessageAuthenticationCode>::name
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:23,1
    - Dst: std::unique_ptr<MessageAuthenticationCode>::output_length
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:23,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mac
    - mac_keylen
    argTypes:
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::TLS_NULL_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<MessageAuthenticationCode>::name
    - std::move
    - std::unique_ptr<MessageAuthenticationCode>::output_length
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::TLS_NULL_HMAC_AEAD_Mode(std::unique_ptr<MessageAuthenticationCode>
      mac, size_t mac_keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:26,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::clear
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 2
    functionsReached:
    - mac
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::clear
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:31,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:31,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 1
    functionsReached:
    - mac
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 2
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string TLS_NULL_HMAC_AEAD_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Mode::ideal_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nl
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TLS_NULL_HMAC_AEAD_Mode::valid_nonce_length(size_t nl) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Length_Specification
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - Key_Length_Specification
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification TLS_NULL_HMAC_AEAD_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - mac
    linkageType: ''
    returnType: bool
    signature: bool TLS_NULL_HMAC_AEAD_Mode::has_keying_material() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::mac_keylen
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Mode::mac_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: '& TLS_NULL_HMAC_AEAD_Mode::mac() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: MessageAuthenticationCode
    signature: MessageAuthenticationCode & TLS_NULL_HMAC_AEAD_Mode::mac() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:69,1
    - Dst: Invalid_Key_Length
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:70,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:70,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:70,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:72,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:72,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:72,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::reset
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Key_Length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
    - std::span<const uint8_t>::begin
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::reset
    - std::span<const uint8_t>::size
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::key_schedule(std::span<const uint8_t>
      key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:77,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::valid_nonce_length
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:79,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:80,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
    - BOTAN_UNUSED
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::valid_nonce_length
    - Invalid_IV_Length
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::start_msg(const uint8_t nonce[], size_t
      nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - mac
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Mode::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:90,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:91,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:91,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 1
    functionsReached:
    - mac
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Mode::set_associated_data_n(size_t idx, std::span<const
      uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::set_associated_data_n
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::set_associated_data_n
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Encryption::set_associated_data_n(size_t idx,
      std::span<const uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Encryption::output_length(size_t input_length)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:105,1
    - Dst: subspan
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:105,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:106,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:106,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:106,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:107,1
    - Dst: last
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:107,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - mac
    - resize
    - subspan
    - tag_size
    - last
    - size
    - process
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Encryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_NULL_HMAC_AEAD_Decryption::output_length(size_t input_length)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:115,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:115,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:115,1
    - Dst: subspan
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:118,1
    - Dst: auto::first
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:119,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:119,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:119,1
    - Dst: auto::subspan
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:120,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:120,1
    - Dst: process
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:122,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:123,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:124,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:127,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:127,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 128
    functionName: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_null/tls_null.cpp
    functionUses: 0
    functionsReached:
    - mac
    - resize
    - subspan
    - auto::size
    - tag_size
    - BOTAN_ARG_CHECK
    - TLS_Exception
    - size
    - auto::subspan
    - auto::first
    - process
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Decryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: TLS_CBC_HMAC_AEAD_Mode::~TLS_CBC_HMAC_AEAD_Mode()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::~TLS_CBC_HMAC_AEAD_Mode()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:37,1
    - Dst: std::unique_ptr<BlockCipher>::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:38,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:39,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:41,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:44,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:47,1
    - Dst: valid_keylength
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:47,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:48,1
    - Dst: std::unique_ptr<BlockCipher>::valid_keylength
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:48,1
    - Dst: std::make_unique<Null_Padding>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:50,1
    - Dst: std::make_unique<CBC_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:52,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:52,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:52,1
    - Dst: std::make_unique<CBC_Decryption>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - dir
    - cipher
    - mac
    - cipher_keylen
    - mac_keylen
    - ' version'
    - use_encrypt_then_mac
    argTypes:
    - Cipher_Dir
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    - size_t
    - Protocol_Version
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 56
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::TLS_CBC_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CBC_Decryption>
    - std::make_unique<CBC_Encryption>
    - std::unique_ptr<BlockCipher>::valid_keylength
    - std::move
    - std::unique_ptr<BlockCipher>::name
    - std::make_unique<Null_Padding>
    - is_datagram_protocol
    - valid_keylength
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - BOTAN_ASSERT_NOMSG
    - output_length
    - std::unique_ptr<BlockCipher>::block_size
    linkageType: ''
    returnType: void
    signature: "void TLS_CBC_HMAC_AEAD_Mode::TLS_CBC_HMAC_AEAD_Mode(Cipher_Dir dir,\n
      \                                              std::unique_ptr<BlockCipher>
      cipher,\n                                               std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                               size_t cipher_keylen,\n
      \                                              size_t mac_keylen,\n                                               const
      Protocol_Version& version,\n                                               bool
      use_encrypt_then_mac)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:59,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:60,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - mac
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
    - cbc
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:65,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:66,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 1
    functionsReached:
    - cbc_state
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string TLS_CBC_HMAC_AEAD_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_CBC_HMAC_AEAD_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_CBC_HMAC_AEAD_Mode::ideal_granularity() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:83,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:84,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nl
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - iv_size
    - block_size
    - empty
    linkageType: ''
    returnType: bool
    signature: bool TLS_CBC_HMAC_AEAD_Mode::valid_nonce_length(size_t nl) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Length_Specification
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - Key_Length_Specification
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification TLS_CBC_HMAC_AEAD_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:94,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - mac
    - cbc
    linkageType: ''
    returnType: bool
    signature: bool TLS_CBC_HMAC_AEAD_Mode::has_keying_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:100,1
    - Dst: Invalid_Key_Length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:101,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:101,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:101,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:104,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:104,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:105,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - mac
    - std::span<const uint8_t>::subspan
    - Invalid_Key_Length
    - cbc
    - std::span<const uint8_t>::first
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::key_schedule(std::span<const uint8_t>
      key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::valid_nonce_length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:109,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:110,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:110,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:113,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::valid_nonce_length
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    - Invalid_IV_Length
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - assign
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::start_msg(const uint8_t nonce[], size_t
      nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:121,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_CBC_HMAC_AEAD_Mode::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:127,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:127,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:128,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::assoc_data_with_len
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - get_byte<1>
    - get_byte<0>
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> TLS_CBC_HMAC_AEAD_Mode::assoc_data_with_len(uint16_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:134,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:135,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:136,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:138,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:138,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::size
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::set_associated_data_n(size_t idx, std::span<const
      uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - cipher
    - mac
    - cipher_keylen
    - mac_keylen
    - ' version'
    - use_encrypt_then_mac
    argTypes:
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    - size_t
    - Protocol_Version
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::TLS_CBC_HMAC_AEAD_Encryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void TLS_CBC_HMAC_AEAD_Encryption::TLS_CBC_HMAC_AEAD_Encryption(std::unique_ptr<BlockCipher>
      cipher,\n                                                           std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                                           const size_t
      cipher_keylen,\n                                                           const
      size_t mac_keylen,\n                                                           const
      Protocol_Version& version,\n                                                           bool
      use_encrypt_then_mac)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::set_associated_data_n
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:156,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:158,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:161,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:161,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:161,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: round_up
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:163,1
    - Dst: get_byte<0, uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:163,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:164,1
    - Dst: get_byte<1, uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - round_up
    - use_encrypt_then_mac
    - assoc_data
    - get_byte<1, uint16_t>
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::set_associated_data_n
    - static_cast<uint16_t>
    - make_uint16
    - get_byte<0, uint16_t>
    - iv_size
    - block_size
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Encryption::set_associated_data_n(size_t idx,
      std::span<const uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:172,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:174,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:174,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:176,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:179,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:180,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:180,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:180,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:182,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:182,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:183,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:184,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:185,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:185,1
    - Dst: auto::select
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:186,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:189,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:190,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:191,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:191,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:191,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:193,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:193,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:194,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:194,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - ' buffer'
    - offset
    - padding_length
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 197
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::is_gte
    - resize
    - data
    - cbc_state
    - Botan::CT::poison
    - size
    - block_size
    - auto::select
    - cbc
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - CT::Mask<uint8_t>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: "void TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record(secure_vector<uint8_t>&
      buffer,\n                                                      size_t offset,\n
      \                                                     size_t padding_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: round_up
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:200,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:200,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:200,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:200,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:201,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - tag_size
    - round_up
    - block_size
    - use_encrypt_then_mac
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_CBC_HMAC_AEAD_Encryption::output_length(size_t input_length)
      const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:205,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:207,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:209,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:209,1
    - Dst: round_up
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:210,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:210,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:211,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:211,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:213,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:214,1
    - Dst: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:216,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:216,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:217,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:219,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:219,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:222,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:222,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:224,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:225,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:226,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:226,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:229,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:230,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:231,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:231,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:231,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:232,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:232,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:232,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:235,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:237,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:237,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:237,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:238,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:238,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:238,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 241
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - mac
    - round_up
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
    - use_encrypt_then_mac
    - BOTAN_DEBUG_ASSERT
    - resize
    - assoc_data
    - tag_size
    - copy_mem
    - cbc_state
    - reserve
    - iv_size
    - block_size
    - static_cast<size_t>
    - size
    - msg
    - update
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Encryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:259,1
    - Dst: std::min<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:266,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:266,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:270,1
    - Dst: is_lte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:274,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:275,1
    - Dst: auto::if_not_set_return
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - record
    - record_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 280
    functionName: Botan::TLS::check_tls_cbc_padding
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 5
    functionsReached:
    - Botan::ct_is_equal
    - std::min<uint16_t>
    - static_cast<uint16_t>
    - auto::if_not_set_return
    - Botan::bigint_ct_is_lt
    - is_lte
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t check_tls_cbc_padding(const uint8_t record[], size_t record_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:289,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - cipher
    - mac
    - cipher_keylen
    - mac_keylen
    - ' version'
    - use_encrypt_then_mac
    argTypes:
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    - size_t
    - Protocol_Version
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 294
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::TLS_CBC_HMAC_AEAD_Decryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void TLS_CBC_HMAC_AEAD_Decryption::TLS_CBC_HMAC_AEAD_Decryption(std::unique_ptr<BlockCipher>
      cipher,\n                                                           std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                                           const size_t
      cipher_keylen,\n                                                           const
      size_t mac_keylen,\n                                                           const
      Protocol_Version& version,\n                                                           bool
      use_encrypt_then_mac)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:297,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:298,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:301,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:301,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:302,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:302,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - record_contents
    - record_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 305
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - block_size
    - cbc
    - cbc_state
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record(uint8_t record_contents[],
      size_t record_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_CBC_HMAC_AEAD_Decryption::output_length(size_t /*input_length*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:357,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:362,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:362,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:366,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:366,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:374,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plen
    - padlen
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 382
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - mac
    - tag_size
    - static_cast<uint16_t>
    - Botan::ct_is_equal
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions(size_t
      plen, size_t padlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:385,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:386,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:388,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:389,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:392,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:392,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:392,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:392,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:393,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:396,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:397,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:398,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:400,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:402,1
    - Dst: assoc_data_with_len
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:402,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:402,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:403,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:404,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:404,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:406,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:409,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:409,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:413,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:413,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:413,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:415,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:416,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:419,1
    - Dst: check_tls_cbc_padding
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:422,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:426,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:432,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:432,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:434,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:436,1
    - Dst: check_tls_cbc_padding
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:439,1
    - Dst: is_lte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:451,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:451,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:451,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:451,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:453,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:455,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:461,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:464,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:464,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:466,1
    - Dst: assoc_data_with_len
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:466,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:467,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:470,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:472,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:474,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:474,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:474,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:476,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:476,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:478,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:480,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:481,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:481,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:483,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:490,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:491,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:493,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 496
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - cbc_state
    - block_size
    - use_encrypt_then_mac
    - check_tls_cbc_padding
    - Botan::sha512_msg_expand
    - msg
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - auto::if_set_return
    - TLS_Exception
    - iv_size
    - Botan::CT::poison
    - is_datagram_protocol
    - update
    - mac
    - resize
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions
    - tag_size
    - auto::as_bool
    - static_cast<uint16_t>
    - std::vector::data
    - assoc_data_with_len
    - insert
    - is_lte
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
    - end
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Decryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: TLS_CBC_HMAC_AEAD_Mode::~TLS_CBC_HMAC_AEAD_Mode()
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::~TLS_CBC_HMAC_AEAD_Mode()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:37,1
    - Dst: std::unique_ptr<BlockCipher>::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:38,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:39,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:41,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:44,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:47,1
    - Dst: valid_keylength
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:47,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:48,1
    - Dst: std::unique_ptr<BlockCipher>::valid_keylength
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:48,1
    - Dst: std::make_unique<Null_Padding>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:50,1
    - Dst: std::make_unique<CBC_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:52,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:52,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:52,1
    - Dst: std::make_unique<CBC_Decryption>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - dir
    - cipher
    - mac
    - cipher_keylen
    - mac_keylen
    - ' version'
    - use_encrypt_then_mac
    argTypes:
    - Cipher_Dir
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    - size_t
    - Protocol_Version
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 56
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::TLS_CBC_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CBC_Decryption>
    - std::make_unique<CBC_Encryption>
    - std::unique_ptr<BlockCipher>::valid_keylength
    - std::move
    - std::unique_ptr<BlockCipher>::name
    - std::make_unique<Null_Padding>
    - is_datagram_protocol
    - valid_keylength
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - BOTAN_ASSERT_NOMSG
    - output_length
    - std::unique_ptr<BlockCipher>::block_size
    linkageType: ''
    returnType: void
    signature: "void TLS_CBC_HMAC_AEAD_Mode::TLS_CBC_HMAC_AEAD_Mode(Cipher_Dir dir,\n
      \                                              std::unique_ptr<BlockCipher>
      cipher,\n                                               std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                               size_t cipher_keylen,\n
      \                                              size_t mac_keylen,\n                                               const
      Protocol_Version& version,\n                                               bool
      use_encrypt_then_mac)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:59,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:60,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 2
    functionsReached:
    - mac
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
    - cbc
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:65,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:66,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 2
    functionsReached:
    - cbc_state
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string TLS_CBC_HMAC_AEAD_Mode::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::update_granularity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_CBC_HMAC_AEAD_Mode::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::ideal_granularity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_CBC_HMAC_AEAD_Mode::ideal_granularity() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:83,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:84,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nl
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::valid_nonce_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 1
    functionsReached:
    - iv_size
    - block_size
    - empty
    linkageType: ''
    returnType: bool
    signature: bool TLS_CBC_HMAC_AEAD_Mode::valid_nonce_length(size_t nl) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Length_Specification
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::key_spec
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - Key_Length_Specification
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification TLS_CBC_HMAC_AEAD_Mode::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:94,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::has_keying_material
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - mac
    - cbc
    linkageType: ''
    returnType: bool
    signature: bool TLS_CBC_HMAC_AEAD_Mode::has_keying_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:100,1
    - Dst: Invalid_Key_Length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:101,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:101,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:101,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:104,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:104,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:105,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - mac
    - std::span<const uint8_t>::subspan
    - Invalid_Key_Length
    - cbc
    - std::span<const uint8_t>::first
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::key_schedule(std::span<const uint8_t>
      key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::valid_nonce_length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:109,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:110,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:110,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:113,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::valid_nonce_length
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    - Invalid_IV_Length
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - assign
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::start_msg(const uint8_t nonce[], size_t
      nonce_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:121,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - insert
    - end
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_CBC_HMAC_AEAD_Mode::process_msg(uint8_t buf[], size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:127,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:127,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:128,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::assoc_data_with_len
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - get_byte<1>
    - get_byte<0>
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> TLS_CBC_HMAC_AEAD_Mode::assoc_data_with_len(uint16_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:134,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:135,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:136,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:138,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:138,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 1
    functionsReached:
    - Invalid_Argument
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::size
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode::set_associated_data_n(size_t idx, std::span<const
      uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - cipher
    - mac
    - cipher_keylen
    - mac_keylen
    - ' version'
    - use_encrypt_then_mac
    argTypes:
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    - size_t
    - Protocol_Version
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::TLS_CBC_HMAC_AEAD_Encryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void TLS_CBC_HMAC_AEAD_Encryption::TLS_CBC_HMAC_AEAD_Encryption(std::unique_ptr<BlockCipher>
      cipher,\n                                                           std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                                           const size_t
      cipher_keylen,\n                                                           const
      size_t mac_keylen,\n                                                           const
      Protocol_Version& version,\n                                                           bool
      use_encrypt_then_mac)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::set_associated_data_n
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:156,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:158,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:161,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:161,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:161,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: round_up
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:163,1
    - Dst: get_byte<0, uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:163,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:164,1
    - Dst: get_byte<1, uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - idx
    - ad
    argTypes:
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - round_up
    - use_encrypt_then_mac
    - assoc_data
    - get_byte<1, uint16_t>
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::set_associated_data_n
    - static_cast<uint16_t>
    - make_uint16
    - get_byte<0, uint16_t>
    - iv_size
    - block_size
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Encryption::set_associated_data_n(size_t idx,
      std::span<const uint8_t> ad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:172,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:174,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:174,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:176,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:179,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:180,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:180,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:180,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:182,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:182,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:183,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:184,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:185,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:185,1
    - Dst: auto::select
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:186,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:189,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:190,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:191,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:191,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:191,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:193,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:193,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:194,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:194,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - ' buffer'
    - offset
    - padding_length
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 197
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 1
    functionsReached:
    - Botan::CT::Mask::is_gte
    - resize
    - data
    - cbc_state
    - Botan::CT::poison
    - size
    - block_size
    - auto::select
    - cbc
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - CT::Mask<uint8_t>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: "void TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record(secure_vector<uint8_t>&
      buffer,\n                                                      size_t offset,\n
      \                                                     size_t padding_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: round_up
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:200,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:200,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:200,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:200,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:201,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::output_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - tag_size
    - round_up
    - block_size
    - use_encrypt_then_mac
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_CBC_HMAC_AEAD_Encryption::output_length(size_t input_length)
      const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:205,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:207,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:209,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:209,1
    - Dst: round_up
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:210,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:210,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:211,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:211,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:213,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:214,1
    - Dst: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:216,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:216,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:217,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:219,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:219,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:222,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:222,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:224,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:225,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:226,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:226,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:229,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:230,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:231,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:231,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:231,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:232,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:232,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:232,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:235,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:237,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:237,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:237,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:238,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:238,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:238,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 241
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - mac
    - round_up
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
    - use_encrypt_then_mac
    - BOTAN_DEBUG_ASSERT
    - resize
    - assoc_data
    - tag_size
    - copy_mem
    - cbc_state
    - reserve
    - iv_size
    - block_size
    - static_cast<size_t>
    - size
    - msg
    - update
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Encryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:259,1
    - Dst: std::min<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:266,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:266,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:270,1
    - Dst: is_lte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:274,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:275,1
    - Dst: auto::if_not_set_return
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - record
    - record_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 280
    functionName: Botan::TLS::check_tls_cbc_padding
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 5
    functionsReached:
    - Botan::ct_is_equal
    - std::min<uint16_t>
    - static_cast<uint16_t>
    - auto::if_not_set_return
    - Botan::bigint_ct_is_lt
    - is_lte
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t check_tls_cbc_padding(const uint8_t record[], size_t record_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:289,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - cipher
    - mac
    - cipher_keylen
    - mac_keylen
    - ' version'
    - use_encrypt_then_mac
    argTypes:
    - std::unique_ptr<BlockCipher>
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    - size_t
    - Protocol_Version
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 294
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::TLS_CBC_HMAC_AEAD_Decryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void TLS_CBC_HMAC_AEAD_Decryption::TLS_CBC_HMAC_AEAD_Decryption(std::unique_ptr<BlockCipher>
      cipher,\n                                                           std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                                           const size_t
      cipher_keylen,\n                                                           const
      size_t mac_keylen,\n                                                           const
      Protocol_Version& version,\n                                                           bool
      use_encrypt_then_mac)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:297,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:298,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:301,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:301,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:302,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:302,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - record_contents
    - record_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 305
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 1
    functionsReached:
    - block_size
    - cbc
    - cbc_state
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record(uint8_t record_contents[],
      size_t record_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::output_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TLS_CBC_HMAC_AEAD_Decryption::output_length(size_t /*input_length*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:357,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:362,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:362,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:366,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:366,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:374,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plen
    - padlen
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 382
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 1
    functionsReached:
    - mac
    - tag_size
    - static_cast<uint16_t>
    - Botan::ct_is_equal
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions(size_t
      plen, size_t padlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:385,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:386,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:388,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:389,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:392,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:392,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:392,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:392,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:393,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:396,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:397,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:398,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:400,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:402,1
    - Dst: assoc_data_with_len
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:402,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:402,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:403,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:404,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:404,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:406,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:409,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:409,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:413,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:413,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:413,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:415,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:416,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:419,1
    - Dst: check_tls_cbc_padding
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:422,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:426,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:432,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:432,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:434,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:436,1
    - Dst: check_tls_cbc_padding
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:439,1
    - Dst: is_lte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:451,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:451,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:451,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:451,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:453,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:455,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:461,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:464,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:464,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:466,1
    - Dst: assoc_data_with_len
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:466,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:467,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:470,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:472,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:474,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:474,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:474,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:476,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:476,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:478,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:480,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:481,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:481,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:483,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:490,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:491,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:493,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 496
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - cbc_state
    - block_size
    - use_encrypt_then_mac
    - check_tls_cbc_padding
    - Botan::sha512_msg_expand
    - msg
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - auto::if_set_return
    - TLS_Exception
    - iv_size
    - Botan::CT::poison
    - is_datagram_protocol
    - update
    - mac
    - resize
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions
    - tag_size
    - auto::as_bool
    - static_cast<uint16_t>
    - std::vector::data
    - assoc_data_with_len
    - insert
    - is_lte
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
    - end
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Decryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 116
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_CBC_HMAC_AEAD_Mode
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::TLS::tag_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::default_nonce_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t default_nonce_length() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_CBC_HMAC_AEAD_Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode(const TLS_CBC_HMAC_AEAD_Mode& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_CBC_HMAC_AEAD_Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode(TLS_CBC_HMAC_AEAD_Mode&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::TLS::cipher_keylen
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cipher_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::TLS::mac_keylen
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mac_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan::TLS::iv_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t iv_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::block_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::TLS::use_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool use_encrypt_then_mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::TLS::is_datagram_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_datagram_protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan::TLS::cbc
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Cipher_Mode
    signature: Cipher_Mode & cbc() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan::TLS::mac
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MessageAuthenticationCode
    signature: MessageAuthenticationCode & mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::cbc_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & cbc_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: Botan::TLS::assoc_data
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & assoc_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::TLS::msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & msg()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 141
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_CBC_HMAC_AEAD_Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: Botan::TLS::minimum_final_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:150,1
    - Dst: Botan::TLS::tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 167
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::tag_size
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_CBC_HMAC_AEAD_Decryption
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan::TLS::minimum_final_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 116
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_CBC_HMAC_AEAD_Mode
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::TLS::tag_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tag_size() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::default_nonce_length
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t default_nonce_length() const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_CBC_HMAC_AEAD_Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode(const TLS_CBC_HMAC_AEAD_Mode& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TLS_CBC_HMAC_AEAD_Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Mode(TLS_CBC_HMAC_AEAD_Mode&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::TLS::cipher_keylen
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cipher_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::TLS::mac_keylen
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mac_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan::TLS::iv_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t iv_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::block_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::TLS::use_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool use_encrypt_then_mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::TLS::is_datagram_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_datagram_protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan::TLS::cbc
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Cipher_Mode
    signature: Cipher_Mode & cbc() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan::TLS::mac
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MessageAuthenticationCode
    signature: MessageAuthenticationCode & mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::cbc_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & cbc_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: Botan::TLS::assoc_data
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & assoc_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::TLS::msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & msg()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 141
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_CBC_HMAC_AEAD_Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: Botan::TLS::minimum_final_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:150,1
    - Dst: Botan::TLS::tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 167
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::tag_size
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API TLS_CBC_HMAC_AEAD_Decryption
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan::TLS::minimum_final_size
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::tag_size
    linkageType: ''
    returnType: size_t
    signature: size_t minimum_final_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Manager_SQLite
      Src: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.h
    functionUses: 0
    functionsReached:
    - Session_Manager_SQLite
    linkageType: ''
    returnType: Session_Manager_SQLite
    signature: Session_Manager_SQLite Session_Manager_SQL
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Manager_SQLite
      Src: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.h
    functionUses: 0
    functionsReached:
    - Session_Manager_SQLite
    linkageType: ''
    returnType: Session_Manager_SQLite
    signature: Session_Manager_SQLite Session_Manager_SQL
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Manager_SQLite
      Src: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.h
    functionUses: 0
    functionsReached:
    - Session_Manager_SQLite
    linkageType: ''
    returnType: Session_Manager_SQLite
    signature: Session_Manager_SQLite Session_Manager_SQL
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Manager_SQLite
      Src: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.h
    functionUses: 0
    functionsReached:
    - Session_Manager_SQLite
    linkageType: ''
    returnType: Session_Manager_SQLite
    signature: Session_Manager_SQLite Session_Manager_SQL
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Sqlite3_Database>
      Src: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - passphrase
    - ' rng'
    - db_filename
    - max_sessions
    argTypes:
    - std::string_view
    - std::shared_ptr<RandomNumberGenerator>
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: Botan::TLS::Session_Manager_SQLite::Session_Manager_SQLite
    functionSourceFile: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Sqlite3_Database>
    linkageType: ''
    returnType: void
    signature: "void Session_Manager_SQLite::Session_Manager_SQLite(std::string_view
      passphrase,\n                                               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                               std::string_view db_filename,\n
      \                                              size_t max_sessions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Sqlite3_Database>
      Src: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - passphrase
    - ' rng'
    - db_filename
    - max_sessions
    argTypes:
    - std::string_view
    - std::shared_ptr<RandomNumberGenerator>
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: Botan::TLS::Session_Manager_SQLite::Session_Manager_SQLite
    functionSourceFile: /src/botan/src/lib/tls/sessions_sqlite3/tls_session_manager_sqlite.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Sqlite3_Database>
    linkageType: ''
    returnType: void
    signature: "void Session_Manager_SQLite::Session_Manager_SQLite(std::string_view
      passphrase,\n                                               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                               std::string_view db_filename,\n
      \                                              size_t max_sessions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:23,1
    - Dst: Botan::TLS::Session_Manager_SQL::create_or_migrate_and_open
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - db
    - passphrase
    - ' rng'
    - max_sessions
    argTypes:
    - std::shared_ptr<SQL_Database>
    - std::string_view
    - std::shared_ptr<RandomNumberGenerator>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: Botan::TLS::Session_Manager_SQL::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Session_Manager_SQL::create_or_migrate_and_open
    linkageType: ''
    returnType: void
    signature: "void Session_Manager_SQL::Session_Manager_SQL(std::shared_ptr<SQL_Database>
      db,\n                                         std::string_view passphrase,\n
      \                                        const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                         size_t max_sessions)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_SQL::detect_schema_revision
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:28,1
    - Dst: exec
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:34,1
    - Dst: exec
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:35,1
    - Dst: Botan::TLS::Session_Manager_SQL::create_with_latest_schema
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:36,1
    - Dst: Botan::TLS::Session_Manager_SQL::initialize_existing_database
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:39,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - passphrase
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Session_Manager_SQL::create_or_migrate_and_open
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 1
    functionsReached:
    - exec
    - Botan::TLS::Session_Manager_SQL::detect_schema_revision
    - Internal_Error
    - Botan::TLS::Session_Manager_SQL::create_with_latest_schema
    - Botan::TLS::Session_Manager_SQL::initialize_existing_database
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL::create_or_migrate_and_open(std::string_view
      passphrase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: row_count
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:48,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:57,1
    - Dst: auto::step
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:58,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:59,1
    - Dst: Schema_Revision
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:61,1
    - Dst: auto::get_size_t
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Session_Manager_SQL::detect_schema_revision
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 1
    functionsReached:
    - auto::get_size_t
    - row_count
    - new_statement
    - auto::step
    - Internal_Error
    - Schema_Revision
    linkageType: ''
    returnType: Session_Manager_SQL::Schema_Revision
    signature: Session_Manager_SQL::Schema_Revision Session_Manager_SQL::detect_schema_revision()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_table
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:68,1
    - Dst: create_table
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:79,1
    - Dst: create_table
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:90,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:92,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:97,1
    - Dst: auto::tune_params
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:100,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:100,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:102,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: auto::data
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: auto::iterations
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:105,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:106,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:107,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:107,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:109,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:111,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:112,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:113,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:114,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:115,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - passphrase
    - rev
    argTypes:
    - std::string_view
    - Schema_Revision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 118
    functionName: Botan::TLS::Session_Manager_SQL::create_with_latest_schema
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 1
    functionsReached:
    - std::string_view::data
    - create_table
    - auto::tune_params
    - random_vec
    - auto::data
    - auto::size
    - new_statement
    - SymmetricKey
    - auto::bind
    - secure_vector::size
    - std::span
    - auto::iterations
    - make_uint16
    - auto::spin
    - auto::derive_key
    - Botan::PasswordHashFamily::create_or_throw
    - secure_vector::data
    - std::string_view::size
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL::create_with_latest_schema(std::string_view
      passphrase, Schema_Revision rev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:121,1
    - Dst: auto::step
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:122,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:123,1
    - Dst: auto::get_blob
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:126,1
    - Dst: auto::get_size_t
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:127,1
    - Dst: auto::get_size_t
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:128,1
    - Dst: auto::get_str
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:129,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:133,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:134,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:136,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:137,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:137,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:137,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:137,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:139,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:142,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:145,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - passphrase
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 146
    functionName: Botan::TLS::Session_Manager_SQL::initialize_existing_database
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 1
    functionsReached:
    - auto::from_params
    - auto::get_size_t
    - std::string_view::data
    - Invalid_Argument
    - new_statement
    - auto::get_str
    - SymmetricKey
    - auto::step
    - secure_vector::size
    - std::span
    - make_uint16
    - auto::derive_key
    - Internal_Error
    - Botan::PasswordHashFamily::create_or_throw
    - secure_vector::data
    - auto::get_blob
    - std::string_view::size
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL::initialize_existing_database(std::string_view
      passphrase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: database_is_threadsafe
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:150,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:151,1
    - Dst: mutex
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:151,1
    - Dst: server_info
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:154,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:158,1
    - Dst: id
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:164,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:164,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:165,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:165,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:167,1
    - Dst: hex_encode
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:167,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:167,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:168,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:168,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:169,1
    - Dst: start_time
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:169,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:170,1
    - Dst: server_info
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:170,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:171,1
    - Dst: server_info
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:171,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:172,1
    - Dst: encrypt
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:172,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:174,1
    - Dst: Botan::TLS::Session_Manager_SQL::prune_session_cache
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Session_Manager_SQL::store
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - server_info
    - ticket
    - hex_encode
    - random_vec
    - new_statement
    - auto::get
    - auto::bind
    - database_is_threadsafe
    - start_time
    - encrypt
    - auto::spin
    - Session_Ticket
    - Botan::TLS::Session_Manager_SQL::prune_session_cache
    - std::optional::emplace
    - mutex
    - id
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL::store(const Session& session, const Session_Handle&
      handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: database_is_threadsafe
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:181,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:182,1
    - Dst: mutex
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:182,1
    - Dst: id
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:185,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:186,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:188,1
    - Dst: hex_encode
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:188,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:188,1
    - Dst: auto::step
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:190,1
    - Dst: auto::get_blob
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:191,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 200
    functionName: Botan::TLS::Session_Manager_SQL::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session::decrypt
    - hex_encode
    - new_statement
    - auto::get
    - auto::bind
    - auto::step
    - database_is_threadsafe
    - auto::get_blob
    - std::optional::emplace
    - mutex
    - id
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> Session_Manager_SQL::retrieve_one(const Session_Handle&
      handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: database_is_threadsafe
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:205,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:206,1
    - Dst: mutex
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:206,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:209,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:215,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:215,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:216,1
    - Dst: port
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:216,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:217,1
    - Dst: auto::step
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:220,1
    - Dst: auto::get_blob
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:222,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:224,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:224,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:224,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:226,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:226,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:226,1
    - Dst: auto::get_str
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:226,1
    - Dst: auto::get_blob
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:230,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:233,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:234,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - ' info'
    - max_sessions_hint
    argTypes:
    - Server_Information
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 239
    functionName: Botan::TLS::Session_Manager_SQL::find_some
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - new_statement
    - Session_ID
    - auto::get_str
    - auto::step
    - port
    - std::vector::emplace_back
    - database_is_threadsafe
    - std::optional::emplace
    - std::span
    - std::move
    - Session_Ticket
    - Session_Handle
    - auto::get_blob
    - hostname
    - auto::bind
    - mutex
    - Botan::TLS::Session::decrypt
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_SQL::find_some(const
      Server_Information& info,\n                                                                const
      size_t max_sessions_hint)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:246,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:247,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:248,1
    - Dst: hex_encode
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:248,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:248,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:249,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:250,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:251,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:252,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:252,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:253,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:256,1
    - Dst: rows_changed_by_last_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Session_Manager_SQL::remove
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - rows_changed_by_last_statement
    - ticket
    - hex_encode
    - Invalid_Argument
    - new_statement
    - auto::get
    - auto::spin
    - auto::bind
    - id
    linkageType: ''
    returnType: size_t
    signature: size_t Session_Manager_SQL::remove(const Session_Handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exec
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:267,1
    - Dst: rows_changed_by_last_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: Botan::TLS::Session_Manager_SQL::remove_all
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - exec
    - rows_changed_by_last_statement
    linkageType: ''
    returnType: size_t
    signature: size_t Session_Manager_SQL::remove_all()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:278,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:281,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 283
    functionName: Botan::TLS::Session_Manager_SQL::prune_session_cache
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 1
    functionsReached:
    - auto::spin
    - auto::bind
    - new_statement
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL::prune_session_cache()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:23,1
    - Dst: Botan::TLS::Session_Manager_SQL::create_or_migrate_and_open
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - db
    - passphrase
    - ' rng'
    - max_sessions
    argTypes:
    - std::shared_ptr<SQL_Database>
    - std::string_view
    - std::shared_ptr<RandomNumberGenerator>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: Botan::TLS::Session_Manager_SQL::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Session_Manager_SQL::create_or_migrate_and_open
    linkageType: ''
    returnType: void
    signature: "void Session_Manager_SQL::Session_Manager_SQL(std::shared_ptr<SQL_Database>
      db,\n                                         std::string_view passphrase,\n
      \                                        const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                         size_t max_sessions)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_SQL::detect_schema_revision
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:28,1
    - Dst: exec
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:34,1
    - Dst: exec
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:35,1
    - Dst: Botan::TLS::Session_Manager_SQL::create_with_latest_schema
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:36,1
    - Dst: Botan::TLS::Session_Manager_SQL::initialize_existing_database
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:39,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - passphrase
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Session_Manager_SQL::create_or_migrate_and_open
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 2
    functionsReached:
    - exec
    - Botan::TLS::Session_Manager_SQL::detect_schema_revision
    - Internal_Error
    - Botan::TLS::Session_Manager_SQL::create_with_latest_schema
    - Botan::TLS::Session_Manager_SQL::initialize_existing_database
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL::create_or_migrate_and_open(std::string_view
      passphrase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: row_count
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:48,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:57,1
    - Dst: auto::step
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:58,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:59,1
    - Dst: Schema_Revision
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:61,1
    - Dst: auto::get_size_t
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Session_Manager_SQL::detect_schema_revision
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 2
    functionsReached:
    - auto::get_size_t
    - row_count
    - new_statement
    - auto::step
    - Internal_Error
    - Schema_Revision
    linkageType: ''
    returnType: Session_Manager_SQL::Schema_Revision
    signature: Session_Manager_SQL::Schema_Revision Session_Manager_SQL::detect_schema_revision()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_table
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:68,1
    - Dst: create_table
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:79,1
    - Dst: create_table
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:90,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:92,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:97,1
    - Dst: auto::tune_params
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:100,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:100,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:102,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: auto::data
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:103,1
    - Dst: auto::iterations
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:105,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:106,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:107,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:107,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:109,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:111,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:112,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:113,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:114,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:115,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - passphrase
    - rev
    argTypes:
    - std::string_view
    - Schema_Revision
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 118
    functionName: Botan::TLS::Session_Manager_SQL::create_with_latest_schema
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 2
    functionsReached:
    - std::string_view::data
    - create_table
    - auto::tune_params
    - random_vec
    - auto::data
    - auto::size
    - new_statement
    - SymmetricKey
    - auto::bind
    - secure_vector::size
    - std::span
    - auto::iterations
    - make_uint16
    - auto::spin
    - auto::derive_key
    - Botan::PasswordHashFamily::create_or_throw
    - secure_vector::data
    - std::string_view::size
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL::create_with_latest_schema(std::string_view
      passphrase, Schema_Revision rev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:121,1
    - Dst: auto::step
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:122,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:123,1
    - Dst: auto::get_blob
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:126,1
    - Dst: auto::get_size_t
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:127,1
    - Dst: auto::get_size_t
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:128,1
    - Dst: auto::get_str
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:129,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:133,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:134,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:136,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:137,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:137,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:137,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:137,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:139,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:142,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:145,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - passphrase
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 146
    functionName: Botan::TLS::Session_Manager_SQL::initialize_existing_database
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 2
    functionsReached:
    - auto::from_params
    - auto::get_size_t
    - std::string_view::data
    - Invalid_Argument
    - new_statement
    - auto::get_str
    - SymmetricKey
    - auto::step
    - secure_vector::size
    - std::span
    - make_uint16
    - auto::derive_key
    - Internal_Error
    - Botan::PasswordHashFamily::create_or_throw
    - secure_vector::data
    - auto::get_blob
    - std::string_view::size
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL::initialize_existing_database(std::string_view
      passphrase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: database_is_threadsafe
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:150,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:151,1
    - Dst: mutex
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:151,1
    - Dst: server_info
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:154,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:158,1
    - Dst: id
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:164,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:164,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:165,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:165,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:167,1
    - Dst: hex_encode
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:167,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:167,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:168,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:168,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:169,1
    - Dst: start_time
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:169,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:170,1
    - Dst: server_info
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:170,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:171,1
    - Dst: server_info
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:171,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:172,1
    - Dst: encrypt
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:172,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:174,1
    - Dst: Botan::TLS::Session_Manager_SQL::prune_session_cache
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Session_Manager_SQL::store
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - server_info
    - ticket
    - hex_encode
    - random_vec
    - new_statement
    - auto::get
    - auto::bind
    - database_is_threadsafe
    - start_time
    - encrypt
    - auto::spin
    - Session_Ticket
    - Botan::TLS::Session_Manager_SQL::prune_session_cache
    - std::optional::emplace
    - mutex
    - id
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL::store(const Session& session, const Session_Handle&
      handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: database_is_threadsafe
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:181,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:182,1
    - Dst: mutex
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:182,1
    - Dst: id
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:185,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:186,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:188,1
    - Dst: hex_encode
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:188,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:188,1
    - Dst: auto::step
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:190,1
    - Dst: auto::get_blob
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:191,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 200
    functionName: Botan::TLS::Session_Manager_SQL::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session::decrypt
    - hex_encode
    - new_statement
    - auto::get
    - auto::bind
    - auto::step
    - database_is_threadsafe
    - auto::get_blob
    - std::optional::emplace
    - mutex
    - id
    linkageType: ''
    returnType: std::optional<Session>
    signature: std::optional<Session> Session_Manager_SQL::retrieve_one(const Session_Handle&
      handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: database_is_threadsafe
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:205,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:206,1
    - Dst: mutex
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:206,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:209,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:215,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:215,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:216,1
    - Dst: port
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:216,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:217,1
    - Dst: auto::step
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:220,1
    - Dst: auto::get_blob
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:222,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:224,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:224,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:224,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:226,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:226,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:226,1
    - Dst: auto::get_str
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:226,1
    - Dst: auto::get_blob
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:230,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:233,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:234,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - ' info'
    - max_sessions_hint
    argTypes:
    - Server_Information
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 239
    functionName: Botan::TLS::Session_Manager_SQL::find_some
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - new_statement
    - Session_ID
    - auto::get_str
    - auto::step
    - port
    - std::vector::emplace_back
    - database_is_threadsafe
    - std::optional::emplace
    - std::span
    - std::move
    - Session_Ticket
    - Session_Handle
    - auto::get_blob
    - hostname
    - auto::bind
    - mutex
    - Botan::TLS::Session::decrypt
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> Session_Manager_SQL::find_some(const
      Server_Information& info,\n                                                                const
      size_t max_sessions_hint)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: id
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:246,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:247,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:248,1
    - Dst: hex_encode
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:248,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:248,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:249,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:250,1
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:251,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:252,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:252,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:253,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:256,1
    - Dst: rows_changed_by_last_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Session_Manager_SQL::remove
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - rows_changed_by_last_statement
    - ticket
    - hex_encode
    - Invalid_Argument
    - new_statement
    - auto::get
    - auto::spin
    - auto::bind
    - id
    linkageType: ''
    returnType: size_t
    signature: size_t Session_Manager_SQL::remove(const Session_Handle& handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exec
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:267,1
    - Dst: rows_changed_by_last_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: Botan::TLS::Session_Manager_SQL::remove_all
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 0
    functionsReached:
    - exec
    - rows_changed_by_last_statement
    linkageType: ''
    returnType: size_t
    signature: size_t Session_Manager_SQL::remove_all()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:278,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:281,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 283
    functionName: Botan::TLS::Session_Manager_SQL::prune_session_cache
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp
    functionUses: 2
    functionsReached:
    - auto::spin
    - auto::bind
    - new_statement
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL::prune_session_cache()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL(const Session_Manager_SQL&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL(Session_Manager_SQL&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~Session_Manager_SQL() override
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Session_Manager_SQL() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool emits_session_tickets() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_threadsafe
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::TLS::database_is_threadsafe
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached:
    - is_threadsafe
    linkageType: ''
    returnType: bool
    signature: bool database_is_threadsafe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL(const Session_Manager_SQL&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL(Session_Manager_SQL&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~Session_Manager_SQL() override
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Session_Manager_SQL() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool emits_session_tickets() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_threadsafe
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::TLS::database_is_threadsafe
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached:
    - is_threadsafe
    linkageType: ''
    returnType: bool
    signature: bool database_is_threadsafe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL(const Session_Manager_SQL&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL(Session_Manager_SQL&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~Session_Manager_SQL() override
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Session_Manager_SQL() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool emits_session_tickets() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_threadsafe
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::TLS::database_is_threadsafe
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached:
    - is_threadsafe
    linkageType: ''
    returnType: bool
    signature: bool database_is_threadsafe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL(const Session_Manager_SQL&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Session_Manager_SQL
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Manager_SQL(Session_Manager_SQL&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~Session_Manager_SQL() override
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Session_Manager_SQL() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::emits_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool emits_session_tickets() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_threadsafe
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::TLS::database_is_threadsafe
    functionSourceFile: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.h
    functionUses: 0
    functionsReached:
    - is_threadsafe
    linkageType: ''
    returnType: bool
    signature: bool database_is_threadsafe() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_allocator
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::TLS::detail::AsyncBase::get_allocator
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - boost::asio::get_associated_allocator
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_executor
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:73,1
    - Dst: Botan::TLS::detail::AsyncBase::get_executor
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::TLS::detail::AsyncBase::get_executor
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 1
    functionsReached:
    - boost::asio::get_associated_executor
    - Botan::TLS::detail::AsyncBase::get_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<HandlerT>
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' handler'
    - ' executor'
    argTypes:
    - HandlerT
    - Executor1
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: Botan::TLS::detail::AsyncBase::AsyncBase
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - std::forward<HandlerT>
    linkageType: ''
    returnType: void
    signature: void AsyncBase(HandlerT&& handler, const Executor1& executor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:90,1
    - Dst: m_handler
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:91,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: Botan::TLS::detail::AsyncBase::complete_now
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 78
    functionsReached:
    - reset
    - std::forward<Args>
    - m_handler
    linkageType: ''
    returnType: void
    signature: void complete_now(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<HandlerT>
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:114,1
    - Dst: get_executor
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:115,1
    - Dst: std::size_t
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' handler'
    - ' stream'
    - ' buffers'
    argTypes:
    - HandlerT
    - Stream
    - MutableBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: Botan::TLS::detail::AsyncReadOperation::AsyncReadOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - std::size_t
    - std::forward<HandlerT>
    - get_executor
    linkageType: ''
    returnType: void
    signature: "void AsyncReadOperation(HandlerT&& handler,\n                         Stream&
      stream,\n                         const MutableBufferSequence& buffers,\n                         const
      boost::system::error_code& ec = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncReadOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::TLS::detail::AsyncReadOperation::AsyncReadOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncReadOperation(const AsyncReadOperation& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncReadOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: Botan::TLS::detail::AsyncReadOperation::AsyncReadOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncReadOperation(AsyncReadOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncReadOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: '& operator=(const AsyncReadOperation& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncReadOperation
    signature: AsyncReadOperation & operator=(const AsyncReadOperation& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncReadOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: '& operator=(AsyncReadOperation&& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncReadOperation
    signature: AsyncReadOperation & operator=(AsyncReadOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: ~AsyncReadOperation()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AsyncReadOperation()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:146,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:155,1
    - Dst: process_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:156,1
    - Dst: has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:161,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:164,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:166,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:176,1
    - Dst: copy_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:177,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:184,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:184,1
    - Dst: operator()(boost::system::error_code ec, std::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:188,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - ec
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 190
    functionName: operator()(boost::system::error_code ec, std::size_t bytes_transferred,
      bool isContinuation = true)
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - input_buffer
    - next_layer
    - boost::asio::mutable_buffer
    - std::move
    - handle_tls_protocol_errors
    - has_received_data
    - copy_received_data
    - process_encrypted_data
    - operator()(boost::system::error_code ec, std::complete_now
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void operator()(boost::system::error_code ec, std::size_t bytes_transferred,
      bool isContinuation = true)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:146,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:155,1
    - Dst: process_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:156,1
    - Dst: has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:161,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:164,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:166,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:176,1
    - Dst: copy_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:177,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:184,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:184,1
    - Dst: Botan::TLS::detail::AsyncReadOperation::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:188,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 189
    functionName: Botan::TLS::detail::AsyncReadOperation::reenter
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - input_buffer
    - next_layer
    - boost::asio::mutable_buffer
    - std::move
    - handle_tls_protocol_errors
    - has_received_data
    - copy_received_data
    - Botan::TLS::detail::AsyncReadOperation::complete_now
    - process_encrypted_data
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void reenter(this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<HandlerT>
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:218,1
    - Dst: get_executor
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:219,1
    - Dst: std::size_t
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' handler'
    - ' stream'
    - plainBytesTransferred
    argTypes:
    - HandlerT
    - Stream
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 223
    functionName: Botan::TLS::detail::AsyncWriteOperation::AsyncWriteOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - std::size_t
    - std::forward<HandlerT>
    - get_executor
    linkageType: ''
    returnType: void
    signature: "void AsyncWriteOperation(HandlerT&& handler,\n                          Stream&
      stream,\n                          std::size_t plainBytesTransferred,\n                          const
      boost::system::error_code& ec = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncWriteOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: Botan::TLS::detail::AsyncWriteOperation::AsyncWriteOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncWriteOperation(const AsyncWriteOperation& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncWriteOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan::TLS::detail::AsyncWriteOperation::AsyncWriteOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncWriteOperation(AsyncWriteOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncWriteOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: '& operator=(const AsyncWriteOperation& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncWriteOperation
    signature: AsyncWriteOperation & operator=(const AsyncWriteOperation& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncWriteOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: '& operator=(AsyncWriteOperation&& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncWriteOperation
    signature: AsyncWriteOperation & operator=(AsyncWriteOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: ~AsyncWriteOperation()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AsyncWriteOperation()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:245,1
    - Dst: consume_send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:252,1
    - Dst: has_data_to_send
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:256,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: boost::asio::const_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:265,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:265,1
    - Dst: operator()(boost::system::error_code ec, std::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:271,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - ec
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 273
    functionName: operator()(boost::system::error_code ec, std::size_t bytes_transferred,
      bool isContinuation = true)
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - next_layer
    - std::move
    - send_buffer
    - boost::asio::const_buffer
    - has_data_to_send
    - operator()(boost::system::error_code ec, std::complete_now
    - consume_send_buffer
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void operator()(boost::system::error_code ec, std::size_t bytes_transferred,
      bool isContinuation = true)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:245,1
    - Dst: consume_send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:252,1
    - Dst: has_data_to_send
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:256,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: boost::asio::const_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:265,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:265,1
    - Dst: Botan::TLS::detail::AsyncWriteOperation::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:271,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 272
    functionName: Botan::TLS::detail::AsyncWriteOperation::reenter
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncWriteOperation::complete_now
    - next_layer
    - std::move
    - send_buffer
    - boost::asio::const_buffer
    - has_data_to_send
    - consume_send_buffer
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void reenter(this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<HandlerT>
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:293,1
    - Dst: get_executor
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:294,1
    - Dst: std::size_t
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' handler'
    - ' stream'
    argTypes:
    - HandlerT
    - Stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: Botan::TLS::detail::AsyncHandshakeOperation::AsyncHandshakeOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - std::size_t
    - std::forward<HandlerT>
    - get_executor
    linkageType: ''
    returnType: void
    signature: void AsyncHandshakeOperation(HandlerT&& handler, Stream& stream, const
      boost::system::error_code& ec = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncHandshakeOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: Botan::TLS::detail::AsyncHandshakeOperation::AsyncHandshakeOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncHandshakeOperation(const AsyncHandshakeOperation& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncHandshakeOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan::TLS::detail::AsyncHandshakeOperation::AsyncHandshakeOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncHandshakeOperation(AsyncHandshakeOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncHandshakeOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 301
    functionName: '& operator=(const AsyncHandshakeOperation& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncHandshakeOperation
    signature: AsyncHandshakeOperation & operator=(const AsyncHandshakeOperation&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncHandshakeOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: '& operator=(AsyncHandshakeOperation&& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncHandshakeOperation
    signature: AsyncHandshakeOperation & operator=(AsyncHandshakeOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: ~AsyncHandshakeOperation()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AsyncHandshakeOperation()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:322,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:331,1
    - Dst: process_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:332,1
    - Dst: has_data_to_send
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:338,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:346,1
    - Dst: native_handle
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:352,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:355,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:369,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:369,1
    - Dst: operator()(boost::system::error_code ec, std::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:373,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - ec
    - bytesTransferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 375
    functionName: operator()(boost::system::error_code ec, std::size_t bytesTransferred,
      bool isContinuation = true)
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - input_buffer
    - next_layer
    - boost::asio::mutable_buffer
    - std::move
    - handle_tls_protocol_errors
    - native_handle
    - process_encrypted_data
    - has_data_to_send
    - operator()(boost::system::error_code ec, std::complete_now
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void operator()(boost::system::error_code ec, std::size_t bytesTransferred,
      bool isContinuation = true)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:322,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:331,1
    - Dst: process_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:332,1
    - Dst: has_data_to_send
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:338,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:346,1
    - Dst: native_handle
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:352,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:355,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:369,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:369,1
    - Dst: Botan::TLS::detail::AsyncHandshakeOperation::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:373,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 374
    functionName: Botan::TLS::detail::AsyncHandshakeOperation::reenter
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncHandshakeOperation::complete_now
    - input_buffer
    - next_layer
    - boost::asio::mutable_buffer
    - std::move
    - handle_tls_protocol_errors
    - native_handle
    - process_encrypted_data
    - has_data_to_send
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void reenter(this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_allocator
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::TLS::detail::AsyncBase::get_allocator
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - boost::asio::get_associated_allocator
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_executor
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:73,1
    - Dst: Botan::TLS::detail::AsyncBase::get_executor
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::TLS::detail::AsyncBase::get_executor
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 2
    functionsReached:
    - boost::asio::get_associated_executor
    - Botan::TLS::detail::AsyncBase::get_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<HandlerT>
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' handler'
    - ' executor'
    argTypes:
    - HandlerT
    - Executor1
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: Botan::TLS::detail::AsyncBase::AsyncBase
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - std::forward<HandlerT>
    linkageType: ''
    returnType: void
    signature: void AsyncBase(HandlerT&& handler, const Executor1& executor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:90,1
    - Dst: m_handler
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:91,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: Botan::TLS::detail::AsyncBase::complete_now
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 78
    functionsReached:
    - reset
    - std::forward<Args>
    - m_handler
    linkageType: ''
    returnType: void
    signature: void complete_now(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<HandlerT>
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:114,1
    - Dst: get_executor
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:115,1
    - Dst: std::size_t
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' handler'
    - ' stream'
    - ' buffers'
    argTypes:
    - HandlerT
    - Stream
    - MutableBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: Botan::TLS::detail::AsyncReadOperation::AsyncReadOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - std::size_t
    - std::forward<HandlerT>
    - get_executor
    linkageType: ''
    returnType: void
    signature: "void AsyncReadOperation(HandlerT&& handler,\n                         Stream&
      stream,\n                         const MutableBufferSequence& buffers,\n                         const
      boost::system::error_code& ec = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncReadOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::TLS::detail::AsyncReadOperation::AsyncReadOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncReadOperation(const AsyncReadOperation& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncReadOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: Botan::TLS::detail::AsyncReadOperation::AsyncReadOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncReadOperation(AsyncReadOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncReadOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: '& operator=(const AsyncReadOperation& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncReadOperation
    signature: AsyncReadOperation & operator=(const AsyncReadOperation& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncReadOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: '& operator=(AsyncReadOperation&& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncReadOperation
    signature: AsyncReadOperation & operator=(AsyncReadOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: ~AsyncReadOperation()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AsyncReadOperation()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:146,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:155,1
    - Dst: process_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:156,1
    - Dst: has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:161,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:164,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:166,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:176,1
    - Dst: copy_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:177,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:184,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:184,1
    - Dst: operator()(boost::system::error_code ec, std::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:188,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - ec
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 190
    functionName: operator()(boost::system::error_code ec, std::size_t bytes_transferred,
      bool isContinuation = true)
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - input_buffer
    - next_layer
    - boost::asio::mutable_buffer
    - std::move
    - handle_tls_protocol_errors
    - has_received_data
    - copy_received_data
    - process_encrypted_data
    - operator()(boost::system::error_code ec, std::complete_now
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void operator()(boost::system::error_code ec, std::size_t bytes_transferred,
      bool isContinuation = true)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:146,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:155,1
    - Dst: process_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:156,1
    - Dst: has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:161,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:164,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:166,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:168,1
    - Dst: has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:176,1
    - Dst: copy_received_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:177,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:184,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:184,1
    - Dst: Botan::TLS::detail::AsyncReadOperation::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:188,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 189
    functionName: Botan::TLS::detail::AsyncReadOperation::reenter
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - input_buffer
    - next_layer
    - boost::asio::mutable_buffer
    - std::move
    - handle_tls_protocol_errors
    - has_received_data
    - copy_received_data
    - Botan::TLS::detail::AsyncReadOperation::complete_now
    - process_encrypted_data
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void reenter(this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<HandlerT>
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:218,1
    - Dst: get_executor
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:219,1
    - Dst: std::size_t
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ' handler'
    - ' stream'
    - plainBytesTransferred
    argTypes:
    - HandlerT
    - Stream
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 223
    functionName: Botan::TLS::detail::AsyncWriteOperation::AsyncWriteOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - std::size_t
    - std::forward<HandlerT>
    - get_executor
    linkageType: ''
    returnType: void
    signature: "void AsyncWriteOperation(HandlerT&& handler,\n                          Stream&
      stream,\n                          std::size_t plainBytesTransferred,\n                          const
      boost::system::error_code& ec = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncWriteOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: Botan::TLS::detail::AsyncWriteOperation::AsyncWriteOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncWriteOperation(const AsyncWriteOperation& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncWriteOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan::TLS::detail::AsyncWriteOperation::AsyncWriteOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncWriteOperation(AsyncWriteOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncWriteOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: '& operator=(const AsyncWriteOperation& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncWriteOperation
    signature: AsyncWriteOperation & operator=(const AsyncWriteOperation& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncWriteOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: '& operator=(AsyncWriteOperation&& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncWriteOperation
    signature: AsyncWriteOperation & operator=(AsyncWriteOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: ~AsyncWriteOperation()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AsyncWriteOperation()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:245,1
    - Dst: consume_send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:252,1
    - Dst: has_data_to_send
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:256,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: boost::asio::const_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:265,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:265,1
    - Dst: operator()(boost::system::error_code ec, std::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:271,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - ec
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 273
    functionName: operator()(boost::system::error_code ec, std::size_t bytes_transferred,
      bool isContinuation = true)
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - next_layer
    - std::move
    - send_buffer
    - boost::asio::const_buffer
    - has_data_to_send
    - operator()(boost::system::error_code ec, std::complete_now
    - consume_send_buffer
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void operator()(boost::system::error_code ec, std::size_t bytes_transferred,
      bool isContinuation = true)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:245,1
    - Dst: consume_send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:252,1
    - Dst: has_data_to_send
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:256,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:257,1
    - Dst: boost::asio::const_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:265,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:265,1
    - Dst: Botan::TLS::detail::AsyncWriteOperation::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:271,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 272
    functionName: Botan::TLS::detail::AsyncWriteOperation::reenter
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncWriteOperation::complete_now
    - next_layer
    - std::move
    - send_buffer
    - boost::asio::const_buffer
    - has_data_to_send
    - consume_send_buffer
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void reenter(this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<HandlerT>
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:293,1
    - Dst: get_executor
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:294,1
    - Dst: std::size_t
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' handler'
    - ' stream'
    argTypes:
    - HandlerT
    - Stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: Botan::TLS::detail::AsyncHandshakeOperation::AsyncHandshakeOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - std::size_t
    - std::forward<HandlerT>
    - get_executor
    linkageType: ''
    returnType: void
    signature: void AsyncHandshakeOperation(HandlerT&& handler, Stream& stream, const
      boost::system::error_code& ec = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncHandshakeOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: Botan::TLS::detail::AsyncHandshakeOperation::AsyncHandshakeOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncHandshakeOperation(const AsyncHandshakeOperation& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncHandshakeOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: Botan::TLS::detail::AsyncHandshakeOperation::AsyncHandshakeOperation
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AsyncHandshakeOperation(AsyncHandshakeOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncHandshakeOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 301
    functionName: '& operator=(const AsyncHandshakeOperation& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncHandshakeOperation
    signature: AsyncHandshakeOperation & operator=(const AsyncHandshakeOperation&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AsyncHandshakeOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: '& operator=(AsyncHandshakeOperation&& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AsyncHandshakeOperation
    signature: AsyncHandshakeOperation & operator=(AsyncHandshakeOperation&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: ~AsyncHandshakeOperation()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AsyncHandshakeOperation()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:322,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:331,1
    - Dst: process_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:332,1
    - Dst: has_data_to_send
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:338,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:346,1
    - Dst: native_handle
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:352,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:355,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:369,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:369,1
    - Dst: operator()(boost::system::error_code ec, std::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:373,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - ec
    - bytesTransferred
    argTypes:
    - boost::system::error_code
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 375
    functionName: operator()(boost::system::error_code ec, std::size_t bytesTransferred,
      bool isContinuation = true)
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - input_buffer
    - next_layer
    - boost::asio::mutable_buffer
    - std::move
    - handle_tls_protocol_errors
    - native_handle
    - process_encrypted_data
    - has_data_to_send
    - operator()(boost::system::error_code ec, std::complete_now
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void operator()(boost::system::error_code ec, std::size_t bytesTransferred,
      bool isContinuation = true)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:322,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:331,1
    - Dst: process_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:332,1
    - Dst: has_data_to_send
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:338,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:346,1
    - Dst: native_handle
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:352,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:355,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:360,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:369,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:369,1
    - Dst: Botan::TLS::detail::AsyncHandshakeOperation::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:373,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 374
    functionName: Botan::TLS::detail::AsyncHandshakeOperation::reenter
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncHandshakeOperation::complete_now
    - input_buffer
    - next_layer
    - boost::asio::mutable_buffer
    - std::move
    - handle_tls_protocol_errors
    - native_handle
    - process_encrypted_data
    - has_data_to_send
    - shutdown_received
    linkageType: ''
    returnType: void
    signature: void reenter(this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/lib/tls/asio/asio_context.h:67,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:68,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:69,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:70,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:71,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - credentials_manager
    - rng
    - session_manager
    - policy
    argTypes:
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<RandomNumberGenerator>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<const Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: Botan::TLS::Context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Context(std::shared_ptr<Credentials_Manager> credentials_manager,\n
      \             std::shared_ptr<RandomNumberGenerator> rng,\n              std::shared_ptr<Session_Manager>
      session_manager,\n              std::shared_ptr<const Policy> policy,\n              Server_Information
      server_info = Server_Information())"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: ~Context()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Context()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context(Context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::TLS::Context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context(const Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callback
    argTypes:
    - Verify_Callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::TLS::set_verify_callback
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_verify_callback(Verify_Callback callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/tls/asio/asio_context.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::TLS::has_verify_callback
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    linkageType: ''
    returnType: bool
    signature: bool has_verify_callback() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::get_verify_callback
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Verify_Callback
    signature: Verify_Callback & get_verify_callback() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - server_info
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::set_server_info
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_server_info(Server_Information server_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/lib/tls/asio/asio_context.h:67,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:68,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:69,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:70,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:71,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - credentials_manager
    - rng
    - session_manager
    - policy
    argTypes:
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<RandomNumberGenerator>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<const Policy>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: Botan::TLS::Context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Context(std::shared_ptr<Credentials_Manager> credentials_manager,\n
      \             std::shared_ptr<RandomNumberGenerator> rng,\n              std::shared_ptr<Session_Manager>
      session_manager,\n              std::shared_ptr<const Policy> policy,\n              Server_Information
      server_info = Server_Information())"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: ~Context()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Context()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context(Context&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::TLS::Context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context(const Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callback
    argTypes:
    - Verify_Callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::TLS::set_verify_callback
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_verify_callback(Verify_Callback callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/tls/asio/asio_context.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::TLS::has_verify_callback
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    linkageType: ''
    returnType: bool
    signature: bool has_verify_callback() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::get_verify_callback
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Verify_Callback
    signature: Verify_Callback & get_verify_callback() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - server_info
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::TLS::set_server_info
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_server_info(Server_Information server_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: ~BoostErrorCategory()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BoostErrorCategory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::BoostErrorCategory::BoostErrorCategory
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoostErrorCategory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BoostErrorCategory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::BoostErrorCategory::BoostErrorCategory
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoostErrorCategory(const BoostErrorCategory& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BoostErrorCategory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::BoostErrorCategory::BoostErrorCategory
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoostErrorCategory(BoostErrorCategory&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BoostErrorCategory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& operator=(const BoostErrorCategory& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BoostErrorCategory
    signature: BoostErrorCategory & operator=(const BoostErrorCategory& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BoostErrorCategory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& operator=(BoostErrorCategory&& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BoostErrorCategory
    signature: BoostErrorCategory & operator=(BoostErrorCategory&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::StreamCategory::name
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const noexcept override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan::TLS::StreamCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string message(int value) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::TLS::botan_stream_category
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StreamCategory
    signature: StreamCategory & botan_stream_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    - Dst: Botan::TLS::botan_stream_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::TLS::StreamError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::TLS::error_code
    - Botan::TLS::botan_stream_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(Botan::TLS::StreamError e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::BotanAlertCategory::name
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/lib/tls/asio/asio_error.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::TLS::BotanAlertCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan::TLS::botan_alert_category
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BotanAlertCategory
    signature: BotanAlertCategory & botan_alert_category() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    - Dst: Botan::TLS::botan_alert_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - Botan::TLS::Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::TLS::error_code
    - Botan::TLS::botan_alert_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(Botan::TLS::Alert::Type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::StreamCategory::name
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const noexcept override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan::TLS::StreamCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string message(int value) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::TLS::botan_stream_category
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: StreamCategory
    signature: StreamCategory & botan_stream_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    - Dst: Botan::TLS::botan_stream_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::TLS::StreamError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::TLS::error_code
    - Botan::TLS::botan_stream_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(Botan::TLS::StreamError e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::BotanAlertCategory::name
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/lib/tls/asio/asio_error.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::TLS::BotanAlertCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan::TLS::botan_alert_category
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BotanAlertCategory
    signature: BotanAlertCategory & botan_alert_category() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    - Dst: Botan::TLS::botan_alert_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - Botan::TLS::Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::TLS::error_code
    - Botan::TLS::botan_alert_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(Botan::TLS::Alert::Type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::BotanErrorCategory::name
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/tls/asio/asio_error.h:100,1
    - Dst: static_cast<Botan::ErrorType>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan::BotanErrorCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<Botan::ErrorType>
    - Botan::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Botan::botan_category
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BotanErrorCategory
    signature: BotanErrorCategory & botan_category() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/lib/tls/asio/asio_error.h:109,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:109,1
    - Dst: Botan::botan_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::ErrorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: Botan::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::TLS::error_code
    - Botan::botan_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(Botan::ErrorType e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: ~BoostErrorCategory()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~BoostErrorCategory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::BoostErrorCategory::BoostErrorCategory
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoostErrorCategory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BoostErrorCategory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::BoostErrorCategory::BoostErrorCategory
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoostErrorCategory(const BoostErrorCategory& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BoostErrorCategory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::BoostErrorCategory::BoostErrorCategory
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoostErrorCategory(BoostErrorCategory&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BoostErrorCategory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& operator=(const BoostErrorCategory& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BoostErrorCategory
    signature: BoostErrorCategory & operator=(const BoostErrorCategory& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - BoostErrorCategory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& operator=(BoostErrorCategory&& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BoostErrorCategory
    signature: BoostErrorCategory & operator=(BoostErrorCategory&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::StreamCategory::name
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const noexcept override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan::TLS::StreamCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string message(int value) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::TLS::botan_stream_category
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: StreamCategory
    signature: StreamCategory & botan_stream_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    - Dst: Botan::TLS::botan_stream_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::TLS::StreamError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::TLS::error_code
    - Botan::TLS::botan_stream_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(Botan::TLS::StreamError e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::BotanAlertCategory::name
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/lib/tls/asio/asio_error.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::TLS::BotanAlertCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan::TLS::botan_alert_category
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BotanAlertCategory
    signature: BotanAlertCategory & botan_alert_category() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    - Dst: Botan::TLS::botan_alert_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - Botan::TLS::Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::TLS::error_code
    - Botan::TLS::botan_alert_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(Botan::TLS::Alert::Type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::StreamCategory::name
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const noexcept override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan::TLS::StreamCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string message(int value) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::TLS::botan_stream_category
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: StreamCategory
    signature: StreamCategory & botan_stream_category()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    - Dst: Botan::TLS::botan_stream_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::TLS::StreamError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::TLS::error_code
    - Botan::TLS::botan_stream_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(Botan::TLS::StreamError e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::TLS::BotanAlertCategory::name
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/lib/tls/asio/asio_error.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::TLS::BotanAlertCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type_string
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan::TLS::botan_alert_category
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: BotanAlertCategory
    signature: BotanAlertCategory & botan_alert_category() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    - Dst: Botan::TLS::botan_alert_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - Botan::TLS::Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::TLS::error_code
    - Botan::TLS::botan_alert_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(Botan::TLS::Alert::Type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::BotanErrorCategory::name
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * name() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/tls/asio/asio_error.h:100,1
    - Dst: static_cast<Botan::ErrorType>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan::BotanErrorCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<Botan::ErrorType>
    - Botan::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string message(int ev) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Botan::botan_category
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BotanErrorCategory
    signature: BotanErrorCategory & botan_category() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/lib/tls/asio/asio_error.h:109,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:109,1
    - Dst: Botan::botan_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::ErrorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: Botan::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::TLS::error_code
    - Botan::botan_category
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code make_error_code(Botan::ErrorType e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::StreamCallbacks::StreamCallbacks
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StreamCallbacks()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:62,1
    - Dst: boost::asio::buffer_copy
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:62,1
    - Dst: prepare
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:62,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:62,1
    - Dst: Peer::buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:63,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:63,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: Botan::TLS::StreamCallbacks::tls_emit_data
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - boost::asio::buffer_copy
    - commit
    - prepare
    - Peer::buffer
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> data) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:67,1
    - Dst: boost::asio::buffer_copy
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:67,1
    - Dst: prepare
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:67,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:67,1
    - Dst: boost::asio::const_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:68,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:68,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::TLS::StreamCallbacks::tls_record_received
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - boost::asio::buffer_copy
    - commit
    - prepare
    - boost::asio::const_buffer
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*record_number*/, std::span<const
      uint8_t> data) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan::TLS::StreamCallbacks::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection() final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TLS::Alert::is_fatal
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:86,1
    - Dst: TLS::Alert::type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - alert
    argTypes:
    - TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: Botan::TLS::StreamCallbacks::tls_alert
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - TLS::Alert::type
    - TLS::Alert::is_fatal
    linkageType: ''
    returnType: void
    signature: void tls_alert(TLS::Alert alert) final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:101,1
    - Dst: auto::has_verify_callback
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:103,1
    - Dst: auto::get_verify_callback
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:104,1
    - Dst: Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - ' cert_chain'
    - ' ocsp_responses'
    - ' trusted_roots'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - std::vector<X509_Certificate>
    - std::vector<std::optional<OCSP::Response>>
    - std::vector<Certificate_Store*>
    - Usage_Type
    - std::string_view
    - TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: Botan::TLS::StreamCallbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
    - auto::has_verify_callback
    - auto::get_verify_callback
    - lock
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<X509_Certificate>& cert_chain,\n
      \                                const std::vector<std::optional<OCSP::Response>>&
      ocsp_responses,\n                                 const std::vector<Certificate_Store*>&
      trusted_roots,\n                                 Usage_Type usage,\n                                 std::string_view
      hostname,\n                                 const TLS::Policy& policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - std::weak_ptr<Botan::TLS::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan::TLS::StreamCallbacks::set_context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_context(std::weak_ptr<Botan::TLS::Context> context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: consume
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:117,1
    - Dst: size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::TLS::StreamCallbacks::consume_send_buffer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - size
    - consume
    linkageType: ''
    returnType: void
    signature: void consume_send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& send_buffer()'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::beast::flat_buffer
    signature: boost::beast::flat_buffer & send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& send_buffer() const'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::beast::flat_buffer
    signature: boost::beast::flat_buffer & send_buffer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: '& receive_buffer()'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::beast::flat_buffer
    signature: boost::beast::flat_buffer & receive_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: '& receive_buffer() const'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::beast::flat_buffer
    signature: boost::beast::flat_buffer & receive_buffer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan::TLS::StreamCallbacks::shutdown_received
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool shutdown_received() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::TLS::StreamCallbacks::alert_from_peer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Alert>
    signature: std::optional<Alert> alert_from_peer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:181,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:182,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:183,1
    - Dst: data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:185,1
    - Dst: size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:185,1
    - Dst: set_context
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - context
    - callbacks
    argTypes:
    - std::shared_ptr<Context>
    - std::shared_ptr<StreamCallbacks>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - data
    - set_context
    - std::move
    - size
    linkageType: ''
    returnType: void
    signature: void Stream(std::shared_ptr<Context> context, std::shared_ptr<StreamCallbacks>
      callbacks, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:197,1
    - Dst: std::make_shared<StreamCallbacks>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:197,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - context
    argTypes:
    - std::shared_ptr<Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<StreamCallbacks>
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void Stream(std::shared_ptr<Context> context, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<StreamCallbacks>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:213,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:214,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:214,1
    - Dst: std::forward<Arg>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' arg'
    - context
    argTypes:
    - Arg
    - std::shared_ptr<Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<StreamCallbacks>
    - std::forward<Arg>
    linkageType: ''
    returnType: void
    signature: "void Stream(Arg&& arg,\n                      std::shared_ptr<Context>
      context,\n                      std::shared_ptr<StreamCallbacks> callbacks =
      std::make_shared<StreamCallbacks>())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Context>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:229,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:229,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - server_info
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<Context>
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void Stream(Server_Information server_info, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: ~Stream()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Stream(Stream&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: '& operator=(Stream&& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Stream
    signature: Stream & operator=(Stream&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Stream(const Stream& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: '& operator=(const Stream& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Stream
    signature: Stream & operator=(const Stream& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    functionName: '& next_layer() const'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: next_layer_type
    signature: next_layer_type & next_layer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 248
    functionName: '& next_layer()'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: next_layer_type
    signature: next_layer_type & next_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::beast::get_lowest_layer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: '& lowest_layer()'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - boost::beast::get_lowest_layer
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::beast::get_lowest_layer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: '& lowest_layer() const'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - boost::beast::get_lowest_layer
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::get_executor
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 258
    functionName: Botan::TLS::Stream::get_executor
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Stream::get_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:264,1
    - Dst: get
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: Botan::TLS::Stream::native_handle
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    - get
    linkageType: ''
    returnType: native_handle_type
    signature: native_handle_type native_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::set_verify_callback
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:283,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callback
    argTypes:
    - Context::Verify_Callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: Botan::TLS::Stream::set_verify_callback
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - std::move
    - Botan::TLS::Stream::set_verify_callback
    linkageType: ''
    returnType: void
    signature: void set_verify_callback(Context::Verify_Callback callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::set_verify_callback
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:293,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - callback
    - ' ec'
    argTypes:
    - Context::Verify_Callback
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: Botan::TLS::Stream::set_verify_callback
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - std::move
    - Botan::TLS::Stream::set_verify_callback
    linkageType: ''
    returnType: void
    signature: void set_verify_callback(Context::Verify_Callback callback, [[maybe_unused]]
      boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: Botan::TLS::Stream::set_verify_depth
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: void set_verify_depth([[maybe_unused]] int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - depth
    - ' ec'
    argTypes:
    - int
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: Botan::TLS::Stream::set_verify_depth
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_verify_depth([[maybe_unused]] int depth, boost::system::error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - verify_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: Botan::TLS::Stream::set_verify_mode
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: void set_verify_mode([[maybe_unused]] verify_mode v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - ' ec'
    argTypes:
    - verify_mode
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: Botan::TLS::Stream::set_verify_mode
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_verify_mode([[maybe_unused]] verify_mode v, boost::system::error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::handshake
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:348,1
    - Dst: do_throw_error
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: Botan::TLS::Stream::handshake
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Stream::handshake
    - do_throw_error
    linkageType: ''
    returnType: void
    signature: void handshake(Connection_Side side)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::setup_native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:361,1
    - Dst: Botan::TLS::Stream::has_data_to_send
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:370,1
    - Dst: Botan::TLS::Stream::send_pending_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:371,1
    - Dst: Botan::TLS::Stream::native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:376,1
    - Dst: Botan::TLS::Stream::handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:384,1
    - Dst: Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - side
    - ' ec'
    argTypes:
    - Connection_Side
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 392
    functionName: Botan::TLS::Stream::handshake
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Stream::send_pending_encrypted_data
    - Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
    - Botan::TLS::Stream::setup_native_handle
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::has_data_to_send
    - Botan::TLS::Stream::handle_tls_protocol_errors
    linkageType: ''
    returnType: void
    signature: void handshake(Connection_Side side, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:407,1
    - Dst: Botan::TLS::Stream::setup_native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:412,1
    - Dst: std::forward<completion_handler_t>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - side
    argTypes:
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 419
    functionName: Botan::TLS::Stream::async_handshake
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::forward<completion_handler_t>
    - Botan::TLS::Stream::setup_native_handle
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
    linkageType: ''
    returnType: auto
    signature: "auto async_handshake(Botan::TLS::Connection_Side side,\n                           //
      NOLINTNEXTLINE(*-missing-std-forward)\n                           CompletionToken&&
      completion_token = default_completion_token{})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - side
    - ' buffers'
    - ' handler'
    argTypes:
    - Connection_Side
    - ConstBufferSequence
    - BufferedHandshakeHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: Botan::TLS::Stream::async_handshake
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: auto
    signature: "auto async_handshake([[maybe_unused]] Connection_Side side,\n                           [[maybe_unused]]
      const ConstBufferSequence& buffers,\n                           [[maybe_unused]]
      BufferedHandshakeHandler&& handler /* NOLINT(*missing-std-forward) */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::try_with_error_code
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:447,1
    - Dst: Botan::TLS::Stream::native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:447,1
    - Dst: Botan::TLS::Stream::send_pending_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: Botan::TLS::Stream::shutdown
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Stream::try_with_error_code
    - Botan::TLS::Stream::send_pending_encrypted_data
    - Botan::TLS::Stream::native_handle
    linkageType: ''
    returnType: void
    signature: void shutdown(boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::shutdown
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:464,1
    - Dst: do_throw_error
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: Botan::TLS::Stream::shutdown
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Stream::shutdown
    - do_throw_error
    linkageType: ''
    returnType: void
    signature: void shutdown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handler
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ec
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 478
    functionName: operator()(boost::system::error_code ec, std::size_t /*unused*/)
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - handler
    linkageType: ''
    returnType: void
    signature: void operator()(boost::system::error_code ec, std::size_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_executor
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: Botan::TLS::Stream::get_executor
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - boost::asio::get_associated_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_allocator
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 488
    functionName: Botan::TLS::Stream::get_allocator
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - boost::asio::get_associated_allocator
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:508,1
    - Dst: Botan::TLS::Stream::try_with_error_code
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:513,1
    - Dst: Botan::TLS::Stream::native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:513,1
    - Dst: std::forward<completion_handler_t>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:518,1
    - Dst: Botan::TLS::Stream::get_executor
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:518,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:520,1
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 524
    functionName: Botan::TLS::Stream::async_shutdown
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Stream::get_executor
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::send_buffer
    - Botan::TLS::Stream::try_with_error_code
    - std::forward<completion_handler_t>
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    linkageType: ''
    returnType: auto
    signature: auto async_shutdown(CompletionToken&& completion_token = default_completion_token{})
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:548,1
    - Dst: Botan::TLS::Stream::copy_received_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:549,1
    - Dst: Botan::TLS::Stream::handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:558,1
    - Dst: Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - MutableBufferSequence
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 569
    functionName: Botan::TLS::Stream::read_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Stream::copy_received_data
    - Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
    - Botan::TLS::Stream::handle_tls_protocol_errors
    - Botan::TLS::Stream::has_received_data
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(const MutableBufferSequence& buffers, boost::system::error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::read_some
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:584,1
    - Dst: do_throw_error
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - MutableBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: Botan::TLS::Stream::read_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - do_throw_error
    - Botan::TLS::Stream::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(const MutableBufferSequence& buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::tls_encrypt
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:601,1
    - Dst: Botan::TLS::Stream::send_pending_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:602,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: Botan::TLS::Stream::write_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Stream::send_pending_encrypted_data
    - Botan::TLS::Stream::tls_encrypt
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t write_some(const ConstBufferSequence& buffers, boost::system::error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::write_some
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:619,1
    - Dst: do_throw_error
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - ConstBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 622
    functionName: Botan::TLS::Stream::write_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Stream::write_some
    - do_throw_error
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t write_some(const ConstBufferSequence& buffers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::async_initiate<CompletionToken, void(boost::system::error_code,
        std::size_t)>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:637,1
    - Dst: Botan::TLS::Stream::tls_encrypt
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:642,1
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:647,1
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:647,1
    - Dst: std::forward<completion_handler_t>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:651,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - ConstBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 658
    functionName: Botan::TLS::Stream::async_write_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Stream::send_buffer
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code,
      std::size_t)>
    - Botan::TLS::Stream::tls_encrypt
    - std::forward<completion_handler_t>
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    linkageType: ''
    returnType: auto
    signature: "auto async_write_some(const ConstBufferSequence& buffers,\n                            //
      NOLINTNEXTLINE(*-missing-std-forward)\n                            CompletionToken&&
      completion_token = default_completion_token{})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::async_initiate<CompletionToken, void(boost::system::error_code,
        std::size_t)>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:674,1
    - Dst: std::forward<completion_handler_t>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - MutableBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 683
    functionName: Botan::TLS::Stream::async_read_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::forward<completion_handler_t>
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code,
      std::size_t)>
    linkageType: ''
    returnType: auto
    signature: "auto async_read_some(const MutableBufferSequence& buffers,\n                           //
      NOLINTNEXTLINE(*-missing-std-forward)\n                           CompletionToken&&
      completion_token = default_completion_token{})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 691
    functionName: Botan::TLS::Stream::shutdown_received
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Stream::shutdown_received
    linkageType: ''
    returnType: bool
    signature: bool shutdown_received() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 701
    functionName: '& input_buffer()'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::asio::mutable_buffer
    signature: boost::asio::mutable_buffer & input_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 703
    functionName: Botan::TLS::Stream::send_buffer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 3
    functionsReached:
    - Botan::TLS::Stream::send_buffer
    linkageType: ''
    returnType: boost::asio::const_buffer
    signature: boost::asio::const_buffer send_buffer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 706
    functionName: Botan::TLS::Stream::has_received_data
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - receive_buffer
    linkageType: ''
    returnType: bool
    signature: bool has_received_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::buffer_copy
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:715,1
    - Dst: receive_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:715,1
    - Dst: receive_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffers
    argTypes:
    - MutableBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 718
    functionName: Botan::TLS::Stream::copy_received_data
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - receive_buffer
    - boost::asio::buffer_copy
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t copy_received_data(MutableBufferSequence buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: Botan::TLS::Stream::has_data_to_send
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Stream::send_buffer
    linkageType: ''
    returnType: bool
    signature: bool has_data_to_send() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytesConsumed
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 724
    functionName: Botan::TLS::Stream::consume_send_buffer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Stream::send_buffer
    linkageType: ''
    returnType: void
    signature: void consume_send_buffer(std::size_t bytesConsumed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:740,1
    - Dst: Botan::TLS::Stream::try_with_error_code
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:743,1
    - Dst: std::unique_ptr<Client>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:746,1
    - Dst: m_policy::latest_supported_version
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:753,1
    - Dst: Client::Client
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:747,1
    - Dst: std::unique_ptr<Server>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:755,1
    - Dst: Server::Server
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:755,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - side
    - ' ec'
    argTypes:
    - Connection_Side
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 735
    functionDepth: 3
    functionLinenumber: 735
    functionLinenumberEnd: 765
    functionName: Botan::TLS::Stream::setup_native_handle
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - m_policy::latest_supported_version
    - std::unique_ptr<Server>
    - Botan::TLS::Stream::try_with_error_code
    - Server::Server
    - Client::Client
    - Invalid_State
    - std::unique_ptr<Client>
    linkageType: ''
    returnType: void
    signature: void setup_native_handle(Connection_Side side, boost::system::error_code&
      ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::error_from_us
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:792,1
    - Dst: Botan::TLS::Stream::alert_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:804,1
    - Dst: auto::type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:805,1
    - Dst: auto::type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 811
    functionName: Botan::TLS::Stream::handle_tls_protocol_errors
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Stream::error_from_us
    - Botan::TLS::Stream::alert_from_peer
    - auto::type
    linkageType: ''
    returnType: void
    signature: void handle_tls_protocol_errors(boost::system::error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:830,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:831,1
    - Dst: Botan::TLS::Stream::error_from_us
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:834,1
    - Dst: Botan::TLS::Stream::alert_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:834,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:835,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:842,1
    - Dst: Botan::TLS::Stream::read_some
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:842,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:842,1
    - Dst: Botan::TLS::Stream::process_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:844,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 848
    functionName: Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - input_buffer
    - Botan::TLS::Stream::has_received_data
    - Botan::TLS::Stream::read_some
    - Botan::TLS::Stream::alert_from_peer
    - Botan::TLS::Stream::process_encrypted_data
    - Invalid_State
    - Botan::TLS::Stream::error_from_us
    linkageType: ''
    returnType: void
    signature: void read_and_process_encrypted_data_from_peer(boost::system::error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Server::handle_write
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:863,1
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:863,1
    - Dst: Botan::TLS::Stream::consume_send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:864,1
    - Dst: Botan::TLS::Stream::shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 872
    functionName: Botan::TLS::Stream::send_pending_encrypted_data
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 3
    functionsReached:
    - Botan::TLS::Stream::shutdown_received
    - Botan::TLS::Stream::send_buffer
    - Botan::TLS::Stream::consume_send_buffer
    - Server::handle_write
    linkageType: ''
    returnType: size_t
    signature: size_t send_pending_encrypted_data(boost::system::error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:887,1
    - Dst: boost::asio::buffer_sequence_begin
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:887,1
    - Dst: boost::asio::buffer_sequence_end
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:887,1
    - Dst: boost::asio::buffer_sequence_begin
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:892,1
    - Dst: static_cast<const uint8_t*>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:893,1
    - Dst: boost::asio::const_buffer::data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:893,1
    - Dst: boost::asio::const_buffer::size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:893,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:895,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:895,1
    - Dst: boost::asio::buffer_copy
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:896,1
    - Dst: Peer::buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:896,1
    - Dst: Botan::TLS::Stream::try_with_error_code
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:904,1
    - Dst: Botan::TLS::Stream::native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:904,1
    - Dst: unpack
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 905
    functionName: Botan::TLS::Stream::tls_encrypt
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - static_cast<const uint8_t*>
    - unpack
    - boost::asio::buffer_copy
    - std::vector::resize
    - boost::asio::const_buffer::size
    - boost::asio::const_buffer::data
    - std::distance
    - boost::asio::buffer_sequence_begin
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::try_with_error_code
    - boost::asio::buffer_sequence_end
    - Peer::buffer
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    linkageType: ''
    returnType: void
    signature: void tls_encrypt(const ConstBufferSequence& buffers, boost::system::error_code&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::alert_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:919,1
    - Dst: Botan::TLS::Stream::error_from_us
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:919,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:920,1
    - Dst: Botan::TLS::Stream::try_with_error_code
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:927,1
    - Dst: Botan::TLS::Stream::native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:929,1
    - Dst: static_cast<const uint8_t*>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:929,1
    - Dst: data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:929,1
    - Dst: size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:929,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' read_buffer'
    argTypes:
    - boost::asio::const_buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 918
    functionDepth: 2
    functionLinenumber: 918
    functionLinenumberEnd: 932
    functionName: Botan::TLS::Stream::process_encrypted_data
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - static_cast<const uint8_t*>
    - data
    - Botan::TLS::Stream::alert_from_peer
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::try_with_error_code
    - size
    - Botan::TLS::Stream::error_from_us
    - Invalid_State
    linkageType: ''
    returnType: void
    signature: void process_encrypted_data(const boost::asio::const_buffer& read_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:938,1
    - Dst: type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:940,1
    - Dst: error_type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - f
    - ' ec'
    argTypes:
    - Fun
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 946
    functionName: Botan::TLS::Stream::try_with_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 5
    functionsReached:
    - error_type
    - type
    - f
    linkageType: ''
    returnType: void
    signature: void try_with_error_code(Fun f, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::alert_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 954
    functionName: Botan::TLS::Stream::alert_from_peer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::Stream::alert_from_peer
    linkageType: ''
    returnType: std::optional<Alert>
    signature: std::optional<Alert> alert_from_peer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 962
    functionName: Botan::TLS::Stream::error_from_us
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code error_from_us() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::StreamCallbacks::StreamCallbacks
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StreamCallbacks()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:62,1
    - Dst: boost::asio::buffer_copy
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:62,1
    - Dst: prepare
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:62,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:62,1
    - Dst: Peer::buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:63,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:63,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: Botan::TLS::StreamCallbacks::tls_emit_data
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - boost::asio::buffer_copy
    - commit
    - prepare
    - Peer::buffer
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void tls_emit_data(std::span<const uint8_t> data) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:67,1
    - Dst: boost::asio::buffer_copy
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:67,1
    - Dst: prepare
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:67,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:67,1
    - Dst: boost::asio::const_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:68,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:68,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::TLS::StreamCallbacks::tls_record_received
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - boost::asio::buffer_copy
    - commit
    - prepare
    - boost::asio::const_buffer
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void tls_record_received(uint64_t /*record_number*/, std::span<const
      uint8_t> data) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan::TLS::StreamCallbacks::tls_peer_closed_connection
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tls_peer_closed_connection() final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TLS::Alert::is_fatal
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:86,1
    - Dst: TLS::Alert::type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - alert
    argTypes:
    - TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: Botan::TLS::StreamCallbacks::tls_alert
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - TLS::Alert::type
    - TLS::Alert::is_fatal
    linkageType: ''
    returnType: void
    signature: void tls_alert(TLS::Alert alert) final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:101,1
    - Dst: auto::has_verify_callback
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:103,1
    - Dst: auto::get_verify_callback
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:104,1
    - Dst: Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - ' cert_chain'
    - ' ocsp_responses'
    - ' trusted_roots'
    - usage
    - hostname
    - ' policy'
    argTypes:
    - std::vector<X509_Certificate>
    - std::vector<std::optional<OCSP::Response>>
    - std::vector<Certificate_Store*>
    - Usage_Type
    - std::string_view
    - TLS::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: Botan::TLS::StreamCallbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
    - auto::has_verify_callback
    - auto::get_verify_callback
    - lock
    linkageType: ''
    returnType: void
    signature: "void tls_verify_cert_chain(const std::vector<X509_Certificate>& cert_chain,\n
      \                                const std::vector<std::optional<OCSP::Response>>&
      ocsp_responses,\n                                 const std::vector<Certificate_Store*>&
      trusted_roots,\n                                 Usage_Type usage,\n                                 std::string_view
      hostname,\n                                 const TLS::Policy& policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - std::weak_ptr<Botan::TLS::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan::TLS::StreamCallbacks::set_context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_context(std::weak_ptr<Botan::TLS::Context> context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: consume
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:117,1
    - Dst: size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::TLS::StreamCallbacks::consume_send_buffer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - size
    - consume
    linkageType: ''
    returnType: void
    signature: void consume_send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& send_buffer()'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::beast::flat_buffer
    signature: boost::beast::flat_buffer & send_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& send_buffer() const'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::beast::flat_buffer
    signature: boost::beast::flat_buffer & send_buffer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: '& receive_buffer()'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::beast::flat_buffer
    signature: boost::beast::flat_buffer & receive_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: '& receive_buffer() const'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::beast::flat_buffer
    signature: boost::beast::flat_buffer & receive_buffer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan::TLS::StreamCallbacks::shutdown_received
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool shutdown_received() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::TLS::StreamCallbacks::alert_from_peer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Alert>
    signature: std::optional<Alert> alert_from_peer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:181,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:182,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:183,1
    - Dst: data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:185,1
    - Dst: size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:185,1
    - Dst: set_context
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - context
    - callbacks
    argTypes:
    - std::shared_ptr<Context>
    - std::shared_ptr<StreamCallbacks>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - data
    - set_context
    - std::move
    - size
    linkageType: ''
    returnType: void
    signature: void Stream(std::shared_ptr<Context> context, std::shared_ptr<StreamCallbacks>
      callbacks, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:197,1
    - Dst: std::make_shared<StreamCallbacks>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:197,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - context
    argTypes:
    - std::shared_ptr<Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<StreamCallbacks>
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void Stream(std::shared_ptr<Context> context, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<StreamCallbacks>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:213,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:214,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:214,1
    - Dst: std::forward<Arg>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ' arg'
    - context
    argTypes:
    - Arg
    - std::shared_ptr<Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<StreamCallbacks>
    - std::forward<Arg>
    linkageType: ''
    returnType: void
    signature: "void Stream(Arg&& arg,\n                      std::shared_ptr<Context>
      context,\n                      std::shared_ptr<StreamCallbacks> callbacks =
      std::make_shared<StreamCallbacks>())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Context>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:229,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:229,1
    - Dst: std::forward<Args>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - server_info
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<Context>
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void Stream(Server_Information server_info, Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: ~Stream()
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Stream()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Stream(Stream&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: '& operator=(Stream&& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Stream
    signature: Stream & operator=(Stream&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: Botan::TLS::Stream::Stream
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Stream(const Stream& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Stream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: '& operator=(const Stream& other)'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Stream
    signature: Stream & operator=(const Stream& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    functionName: '& next_layer() const'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: next_layer_type
    signature: next_layer_type & next_layer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 248
    functionName: '& next_layer()'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: next_layer_type
    signature: next_layer_type & next_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::beast::get_lowest_layer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: '& lowest_layer()'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - boost::beast::get_lowest_layer
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::beast::get_lowest_layer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: '& lowest_layer() const'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - boost::beast::get_lowest_layer
    linkageType: ''
    returnType: lowest_layer_type
    signature: lowest_layer_type & lowest_layer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::get_executor
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 258
    functionName: Botan::TLS::Stream::get_executor
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 3
    functionsReached:
    - Botan::TLS::Stream::get_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:264,1
    - Dst: get
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: Botan::TLS::Stream::native_handle
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 5
    functionsReached:
    - Invalid_State
    - get
    linkageType: ''
    returnType: native_handle_type
    signature: native_handle_type native_handle()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::set_verify_callback
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:283,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callback
    argTypes:
    - Context::Verify_Callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: Botan::TLS::Stream::set_verify_callback
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 3
    functionsReached:
    - std::move
    - Botan::TLS::Stream::set_verify_callback
    linkageType: ''
    returnType: void
    signature: void set_verify_callback(Context::Verify_Callback callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::set_verify_callback
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:293,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - callback
    - ' ec'
    argTypes:
    - Context::Verify_Callback
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: Botan::TLS::Stream::set_verify_callback
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 4
    functionsReached:
    - std::move
    - Botan::TLS::Stream::set_verify_callback
    linkageType: ''
    returnType: void
    signature: void set_verify_callback(Context::Verify_Callback callback, [[maybe_unused]]
      boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: Botan::TLS::Stream::set_verify_depth
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: void set_verify_depth([[maybe_unused]] int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - depth
    - ' ec'
    argTypes:
    - int
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: Botan::TLS::Stream::set_verify_depth
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_verify_depth([[maybe_unused]] int depth, boost::system::error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - verify_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: Botan::TLS::Stream::set_verify_mode
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: void set_verify_mode([[maybe_unused]] verify_mode v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - ' ec'
    argTypes:
    - verify_mode
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: Botan::TLS::Stream::set_verify_mode
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_verify_mode([[maybe_unused]] verify_mode v, boost::system::error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::handshake
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:348,1
    - Dst: do_throw_error
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: Botan::TLS::Stream::handshake
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Stream::handshake
    - do_throw_error
    linkageType: ''
    returnType: void
    signature: void handshake(Connection_Side side)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::setup_native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:361,1
    - Dst: Botan::TLS::Stream::has_data_to_send
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:370,1
    - Dst: Botan::TLS::Stream::send_pending_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:371,1
    - Dst: Botan::TLS::Stream::native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:376,1
    - Dst: Botan::TLS::Stream::handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:384,1
    - Dst: Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - side
    - ' ec'
    argTypes:
    - Connection_Side
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 392
    functionName: Botan::TLS::Stream::handshake
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Stream::send_pending_encrypted_data
    - Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
    - Botan::TLS::Stream::setup_native_handle
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::has_data_to_send
    - Botan::TLS::Stream::handle_tls_protocol_errors
    linkageType: ''
    returnType: void
    signature: void handshake(Connection_Side side, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:407,1
    - Dst: Botan::TLS::Stream::setup_native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:412,1
    - Dst: std::forward<completion_handler_t>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - side
    argTypes:
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 404
    functionDepth: 4
    functionLinenumber: 404
    functionLinenumberEnd: 419
    functionName: Botan::TLS::Stream::async_handshake
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::forward<completion_handler_t>
    - Botan::TLS::Stream::setup_native_handle
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
    linkageType: ''
    returnType: auto
    signature: "auto async_handshake(Botan::TLS::Connection_Side side,\n                           //
      NOLINTNEXTLINE(*-missing-std-forward)\n                           CompletionToken&&
      completion_token = default_completion_token{})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - side
    - ' buffers'
    - ' handler'
    argTypes:
    - Connection_Side
    - ConstBufferSequence
    - BufferedHandshakeHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: Botan::TLS::Stream::async_handshake
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: auto
    signature: "auto async_handshake([[maybe_unused]] Connection_Side side,\n                           [[maybe_unused]]
      const ConstBufferSequence& buffers,\n                           [[maybe_unused]]
      BufferedHandshakeHandler&& handler /* NOLINT(*missing-std-forward) */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::try_with_error_code
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:447,1
    - Dst: Botan::TLS::Stream::native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:447,1
    - Dst: Botan::TLS::Stream::send_pending_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: Botan::TLS::Stream::shutdown
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Stream::try_with_error_code
    - Botan::TLS::Stream::send_pending_encrypted_data
    - Botan::TLS::Stream::native_handle
    linkageType: ''
    returnType: void
    signature: void shutdown(boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::shutdown
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:464,1
    - Dst: do_throw_error
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: Botan::TLS::Stream::shutdown
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Stream::shutdown
    - do_throw_error
    linkageType: ''
    returnType: void
    signature: void shutdown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handler
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ec
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 478
    functionName: operator()(boost::system::error_code ec, std::size_t /*unused*/)
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - handler
    linkageType: ''
    returnType: void
    signature: void operator()(boost::system::error_code ec, std::size_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_executor
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: Botan::TLS::Stream::get_executor
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 3
    functionsReached:
    - boost::asio::get_associated_executor
    linkageType: ''
    returnType: executor_type
    signature: executor_type get_executor() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::get_associated_allocator
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 488
    functionName: Botan::TLS::Stream::get_allocator
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - boost::asio::get_associated_allocator
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:508,1
    - Dst: Botan::TLS::Stream::try_with_error_code
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:513,1
    - Dst: Botan::TLS::Stream::native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:513,1
    - Dst: std::forward<completion_handler_t>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:518,1
    - Dst: Botan::TLS::Stream::get_executor
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:518,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:520,1
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 524
    functionName: Botan::TLS::Stream::async_shutdown
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Stream::get_executor
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::send_buffer
    - Botan::TLS::Stream::try_with_error_code
    - std::forward<completion_handler_t>
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    linkageType: ''
    returnType: auto
    signature: auto async_shutdown(CompletionToken&& completion_token = default_completion_token{})
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:548,1
    - Dst: Botan::TLS::Stream::copy_received_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:549,1
    - Dst: Botan::TLS::Stream::handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:558,1
    - Dst: Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - MutableBufferSequence
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 569
    functionName: Botan::TLS::Stream::read_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Stream::copy_received_data
    - Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
    - Botan::TLS::Stream::handle_tls_protocol_errors
    - Botan::TLS::Stream::has_received_data
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(const MutableBufferSequence& buffers, boost::system::error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::read_some
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:584,1
    - Dst: do_throw_error
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - MutableBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: Botan::TLS::Stream::read_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 3
    functionsReached:
    - do_throw_error
    - Botan::TLS::Stream::read_some
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t read_some(const MutableBufferSequence& buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::tls_encrypt
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:601,1
    - Dst: Botan::TLS::Stream::send_pending_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:602,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 4
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: Botan::TLS::Stream::write_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Stream::send_pending_encrypted_data
    - Botan::TLS::Stream::tls_encrypt
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t write_some(const ConstBufferSequence& buffers, boost::system::error_code&
      ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::write_some
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:619,1
    - Dst: do_throw_error
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - ConstBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 622
    functionName: Botan::TLS::Stream::write_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Stream::write_some
    - do_throw_error
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t write_some(const ConstBufferSequence& buffers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::async_initiate<CompletionToken, void(boost::system::error_code,
        std::size_t)>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:637,1
    - Dst: Botan::TLS::Stream::tls_encrypt
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:642,1
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:647,1
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:647,1
    - Dst: std::forward<completion_handler_t>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:651,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - ConstBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 634
    functionDepth: 3
    functionLinenumber: 634
    functionLinenumberEnd: 658
    functionName: Botan::TLS::Stream::async_write_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Stream::send_buffer
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code,
      std::size_t)>
    - Botan::TLS::Stream::tls_encrypt
    - std::forward<completion_handler_t>
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    linkageType: ''
    returnType: auto
    signature: "auto async_write_some(const ConstBufferSequence& buffers,\n                            //
      NOLINTNEXTLINE(*-missing-std-forward)\n                            CompletionToken&&
      completion_token = default_completion_token{})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::async_initiate<CompletionToken, void(boost::system::error_code,
        std::size_t)>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:674,1
    - Dst: std::forward<completion_handler_t>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ' buffers'
    argTypes:
    - MutableBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 683
    functionName: Botan::TLS::Stream::async_read_some
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached:
    - std::forward<completion_handler_t>
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code,
      std::size_t)>
    linkageType: ''
    returnType: auto
    signature: "auto async_read_some(const MutableBufferSequence& buffers,\n                           //
      NOLINTNEXTLINE(*-missing-std-forward)\n                           CompletionToken&&
      completion_token = default_completion_token{})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 691
    functionName: Botan::TLS::Stream::shutdown_received
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 3
    functionsReached:
    - Botan::TLS::Stream::shutdown_received
    linkageType: ''
    returnType: bool
    signature: bool shutdown_received() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 701
    functionName: '& input_buffer()'
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: boost::asio::mutable_buffer
    signature: boost::asio::mutable_buffer & input_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 703
    functionName: Botan::TLS::Stream::send_buffer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 9
    functionsReached:
    - Botan::TLS::Stream::send_buffer
    linkageType: ''
    returnType: boost::asio::const_buffer
    signature: boost::asio::const_buffer send_buffer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: receive_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 706
    functionName: Botan::TLS::Stream::has_received_data
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 3
    functionsReached:
    - receive_buffer
    linkageType: ''
    returnType: bool
    signature: bool has_received_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boost::asio::buffer_copy
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:715,1
    - Dst: receive_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:715,1
    - Dst: receive_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffers
    argTypes:
    - MutableBufferSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 718
    functionName: Botan::TLS::Stream::copy_received_data
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - receive_buffer
    - boost::asio::buffer_copy
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t copy_received_data(MutableBufferSequence buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: Botan::TLS::Stream::has_data_to_send
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Stream::send_buffer
    linkageType: ''
    returnType: bool
    signature: bool has_data_to_send() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytesConsumed
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 724
    functionName: Botan::TLS::Stream::consume_send_buffer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Stream::send_buffer
    linkageType: ''
    returnType: void
    signature: void consume_send_buffer(std::size_t bytesConsumed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:740,1
    - Dst: Botan::TLS::Stream::try_with_error_code
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:743,1
    - Dst: std::unique_ptr<Client>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:746,1
    - Dst: m_policy::latest_supported_version
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:753,1
    - Dst: Client::Client
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:747,1
    - Dst: std::unique_ptr<Server>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:755,1
    - Dst: Server::Server
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:755,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - side
    - ' ec'
    argTypes:
    - Connection_Side
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 735
    functionDepth: 3
    functionLinenumber: 735
    functionLinenumberEnd: 765
    functionName: Botan::TLS::Stream::setup_native_handle
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 4
    functionsReached:
    - m_policy::latest_supported_version
    - std::unique_ptr<Server>
    - Botan::TLS::Stream::try_with_error_code
    - Server::Server
    - Client::Client
    - Invalid_State
    - std::unique_ptr<Client>
    linkageType: ''
    returnType: void
    signature: void setup_native_handle(Connection_Side side, boost::system::error_code&
      ec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::error_from_us
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:792,1
    - Dst: Botan::TLS::Stream::alert_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:804,1
    - Dst: auto::type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:805,1
    - Dst: auto::type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 811
    functionName: Botan::TLS::Stream::handle_tls_protocol_errors
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::Stream::error_from_us
    - Botan::TLS::Stream::alert_from_peer
    - auto::type
    linkageType: ''
    returnType: void
    signature: void handle_tls_protocol_errors(boost::system::error_code& ec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::has_received_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:830,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:831,1
    - Dst: Botan::TLS::Stream::error_from_us
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:834,1
    - Dst: Botan::TLS::Stream::alert_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:834,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:835,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:842,1
    - Dst: Botan::TLS::Stream::read_some
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:842,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:842,1
    - Dst: Botan::TLS::Stream::process_encrypted_data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:844,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 822
    functionDepth: 3
    functionLinenumber: 822
    functionLinenumberEnd: 848
    functionName: Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 4
    functionsReached:
    - input_buffer
    - Botan::TLS::Stream::has_received_data
    - Botan::TLS::Stream::read_some
    - Botan::TLS::Stream::alert_from_peer
    - Botan::TLS::Stream::process_encrypted_data
    - Invalid_State
    - Botan::TLS::Stream::error_from_us
    linkageType: ''
    returnType: void
    signature: void read_and_process_encrypted_data_from_peer(boost::system::error_code&
      ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Server::handle_write
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:863,1
    - Dst: Botan::TLS::Stream::send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:863,1
    - Dst: Botan::TLS::Stream::consume_send_buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:864,1
    - Dst: Botan::TLS::Stream::shutdown_received
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 872
    functionName: Botan::TLS::Stream::send_pending_encrypted_data
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 6
    functionsReached:
    - Botan::TLS::Stream::shutdown_received
    - Botan::TLS::Stream::send_buffer
    - Botan::TLS::Stream::consume_send_buffer
    - Server::handle_write
    linkageType: ''
    returnType: size_t
    signature: size_t send_pending_encrypted_data(boost::system::error_code& ec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:887,1
    - Dst: boost::asio::buffer_sequence_begin
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:887,1
    - Dst: boost::asio::buffer_sequence_end
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:887,1
    - Dst: boost::asio::buffer_sequence_begin
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:892,1
    - Dst: static_cast<const uint8_t*>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:893,1
    - Dst: boost::asio::const_buffer::data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:893,1
    - Dst: boost::asio::const_buffer::size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:893,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:895,1
    - Dst: Botan::TLS::Channel_Impl::set_io_buffer_size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:895,1
    - Dst: boost::asio::buffer_copy
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:896,1
    - Dst: Peer::buffer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:896,1
    - Dst: Botan::TLS::Stream::try_with_error_code
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:904,1
    - Dst: Botan::TLS::Stream::native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:904,1
    - Dst: unpack
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - ' buffers'
    - ' ec'
    argTypes:
    - ConstBufferSequence
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 905
    functionName: Botan::TLS::Stream::tls_encrypt
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 4
    functionsReached:
    - static_cast<const uint8_t*>
    - unpack
    - boost::asio::buffer_copy
    - std::vector::resize
    - boost::asio::const_buffer::size
    - boost::asio::const_buffer::data
    - std::distance
    - boost::asio::buffer_sequence_begin
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::try_with_error_code
    - boost::asio::buffer_sequence_end
    - Peer::buffer
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    linkageType: ''
    returnType: void
    signature: void tls_encrypt(const ConstBufferSequence& buffers, boost::system::error_code&
      ec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::alert_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:919,1
    - Dst: Botan::TLS::Stream::error_from_us
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:919,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:920,1
    - Dst: Botan::TLS::Stream::try_with_error_code
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:927,1
    - Dst: Botan::TLS::Stream::native_handle
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:929,1
    - Dst: static_cast<const uint8_t*>
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:929,1
    - Dst: data
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:929,1
    - Dst: size
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:929,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' read_buffer'
    argTypes:
    - boost::asio::const_buffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 918
    functionDepth: 2
    functionLinenumber: 918
    functionLinenumberEnd: 932
    functionName: Botan::TLS::Stream::process_encrypted_data
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 2
    functionsReached:
    - static_cast<const uint8_t*>
    - data
    - Botan::TLS::Stream::alert_from_peer
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::try_with_error_code
    - size
    - Botan::TLS::Stream::error_from_us
    - Invalid_State
    linkageType: ''
    returnType: void
    signature: void process_encrypted_data(const boost::asio::const_buffer& read_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:938,1
    - Dst: type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:940,1
    - Dst: error_type
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - f
    - ' ec'
    argTypes:
    - Fun
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 946
    functionName: Botan::TLS::Stream::try_with_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 10
    functionsReached:
    - error_type
    - type
    - f
    linkageType: ''
    returnType: void
    signature: void try_with_error_code(Fun f, boost::system::error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Stream::alert_from_peer
      Src: /src/botan/src/lib/tls/asio/asio_stream.h:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 954
    functionName: Botan::TLS::Stream::alert_from_peer
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 8
    functionsReached:
    - Botan::TLS::Stream::alert_from_peer
    linkageType: ''
    returnType: std::optional<Alert>
    signature: std::optional<Alert> alert_from_peer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 962
    functionName: Botan::TLS::Stream::error_from_us
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_stream.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: boost::system::error_code
    signature: boost::system::error_code error_from_us() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<System_Certificate_Store>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Default_Credentials_Manager::Default_Credentials_Manager
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<System_Certificate_Store>
    linkageType: ''
    returnType: void
    signature: void Default_Credentials_Manager()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Default_Credentials_Manager::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: std::vector<Certificate_Store*>
    signature: "std::vector<Certificate_Store*> trusted_certificate_authorities(const
      std::string& /*type*/,\n                                                                      const
      std::string& /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<System_Certificate_Store>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Default_Credentials_Manager::Default_Credentials_Manager
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<System_Certificate_Store>
    linkageType: ''
    returnType: void
    signature: void Default_Credentials_Manager()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Default_Credentials_Manager::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: std::vector<Certificate_Store*>
    signature: "std::vector<Certificate_Store*> trusted_certificate_authorities(const
      std::string& /*type*/,\n                                                                      const
      std::string& /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Default_Credentials_Manager>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:54,1
    - Dst: std::make_shared<AutoSeeded_RNG>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:55,1
    - Dst: std::make_shared<Session_Manager_In_Memory>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:56,1
    - Dst: std::make_shared<Default_Policy>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:57,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - server_info
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: Botan::TLS::Context::Context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<AutoSeeded_RNG>
    - std::make_shared<Default_Credentials_Manager>
    - std::make_shared<Default_Policy>
    - std::make_shared<Session_Manager_In_Memory>
    linkageType: ''
    returnType: void
    signature: void Context::Context(Server_Information server_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<System_Certificate_Store>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Default_Credentials_Manager::Default_Credentials_Manager
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<System_Certificate_Store>
    linkageType: ''
    returnType: void
    signature: void Default_Credentials_Manager()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Default_Credentials_Manager::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: std::vector<Certificate_Store*>
    signature: "std::vector<Certificate_Store*> trusted_certificate_authorities(const
      std::string& /*type*/,\n                                                                      const
      std::string& /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<System_Certificate_Store>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Default_Credentials_Manager::Default_Credentials_Manager
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<System_Certificate_Store>
    linkageType: ''
    returnType: void
    signature: void Default_Credentials_Manager()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Default_Credentials_Manager::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: std::vector<Certificate_Store*>
    signature: "std::vector<Certificate_Store*> trusted_certificate_authorities(const
      std::string& /*type*/,\n                                                                      const
      std::string& /*context*/) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Default_Credentials_Manager>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:54,1
    - Dst: std::make_shared<AutoSeeded_RNG>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:55,1
    - Dst: std::make_shared<Session_Manager_In_Memory>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:56,1
    - Dst: std::make_shared<Default_Policy>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:57,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - server_info
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: Botan::TLS::Context::Context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<AutoSeeded_RNG>
    - std::make_shared<Default_Credentials_Manager>
    - std::make_shared<Default_Policy>
    - std::make_shared<Session_Manager_In_Memory>
    linkageType: ''
    returnType: void
    signature: void Context::Context(Server_Information server_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:21,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:21,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:21,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data_from_peer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::TLS::Handshake_Layer::copy_data
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 2
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void Handshake_Layer::copy_data(std::span<const uint8_t> data_from_peer)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Handshake_Type>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:30,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:44,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - byte_value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 56
    functionName: Botan::TLS::handshake_type_from_byte
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Handshake_Type>
    - TLS_Exception
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type handshake_type_from_byte(uint8_t byte_value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:64,1
    - Dst: Botan::TLS::handshake_type_from_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:68,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:68,1
    - Dst: Botan::TLS::get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:71,1
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:72,1
    - Dst: Botan::TLS::get_fixed
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:77,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:84,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:84,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:88,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:88,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:92,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:94,1
    - Dst: Botan::TLS::Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:96,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:98,1
    - Dst: Botan::TLS::Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:100,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:102,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:105,1
    - Dst: Botan::TLS::New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:109,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:111,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 4
    argNames:
    - ' reader'
    - ' policy'
    - peer_side
    - cert_type
    argTypes:
    - TLS::TLS_Data_Reader
    - Policy
    - Connection_Side
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 116
    functionName: Botan::TLS::parse_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::get_byte
    - Botan::TLS::get_uint24_t
    - Certificate_13
    - Botan::TLS::New_Session_Ticket_13
    - Botan::TLS::Finished_13
    - BOTAN_ASSERT
    - BOTAN_UNUSED
    - generalize_to<Handshake_Message_13>
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::remaining_bytes
    - Botan::TLS::Certificate_Request_13
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Certificate_Verify_13
    - Botan::TLS::get_fixed
    - Botan::TLS::handshake_type_from_byte
    - Encrypted_Extensions
    - Key_Update
    linkageType: ''
    returnType: std::optional<Msg_Type>
    signature: "std::optional<Msg_Type> parse_message(TLS::TLS_Data_Reader& reader,\n
      \                                     const Policy& policy,\n                                      const
      Connection_Side peer_side,\n                                      const Certificate_Type
      cert_type)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Handshake_Type>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:30,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:44,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - byte_value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 56
    functionName: Botan::TLS::handshake_type_from_byte
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 1
    functionsReached:
    - static_cast<Handshake_Type>
    - TLS_Exception
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type handshake_type_from_byte(uint8_t byte_value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:64,1
    - Dst: Botan::TLS::handshake_type_from_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:68,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:68,1
    - Dst: Botan::TLS::get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:71,1
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:72,1
    - Dst: Botan::TLS::get_fixed
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:77,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:84,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:84,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:88,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:88,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:92,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:94,1
    - Dst: Botan::TLS::Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:96,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:98,1
    - Dst: Botan::TLS::Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:100,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:102,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:105,1
    - Dst: Botan::TLS::New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:109,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:111,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 4
    argNames:
    - ' reader'
    - ' policy'
    - peer_side
    - cert_type
    argTypes:
    - TLS::TLS_Data_Reader
    - Policy
    - Connection_Side
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 116
    functionName: Botan::TLS::parse_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::get_byte
    - Botan::TLS::get_uint24_t
    - Certificate_13
    - Botan::TLS::New_Session_Ticket_13
    - Botan::TLS::Finished_13
    - BOTAN_ASSERT
    - BOTAN_UNUSED
    - generalize_to<Handshake_Message_13>
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::remaining_bytes
    - Botan::TLS::Certificate_Request_13
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Certificate_Verify_13
    - Botan::TLS::get_fixed
    - Botan::TLS::handshake_type_from_byte
    - Encrypted_Extensions
    - Key_Update
    linkageType: ''
    returnType: std::optional<Msg_Type>
    signature: "std::optional<Msg_Type> parse_message(TLS::TLS_Data_Reader& reader,\n
      \                                     const Policy& policy,\n                                      const
      Connection_Side peer_side,\n                                      const Certificate_Type
      cert_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_message<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:124,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:125,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:126,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:126,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:126,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:127,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:127,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:127,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:128,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:128,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:128,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' policy'
    - ' transcript_hash'
    argTypes:
    - Policy
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Handshake_Layer::next_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::read_so_far
    - data
    - cbegin
    - erase
    - size
    - auto::has_value
    - BOTAN_ASSERT_NOMSG
    - parse_message<Handshake_Message_13>
    - update
    linkageType: ''
    returnType: std::optional<Handshake_Message_13>
    signature: "std::optional<Handshake_Message_13> Handshake_Layer::next_message(const
      Policy& policy,\n                                                                  Transcript_Hash_State&
      transcript_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_message<Post_Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:137,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:138,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:139,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:139,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:139,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: Botan::TLS::Handshake_Layer::next_post_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::read_so_far
    - cbegin
    - erase
    - auto::has_value
    - parse_message<Post_Handshake_Message_13>
    linkageType: ''
    returnType: std::optional<Post_Handshake_Message_13>
    signature: std::optional<Post_Handshake_Message_13> Handshake_Layer::next_post_handshake_message(const
      Policy& policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::reference_wrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 15
    functionsReached:
    - Botan::TLS::get
    linkageType: ''
    returnType: T
    signature: T & get(const std::reference_wrapper<T>& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: std::pair
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:163,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:164,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:164,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: Botan::TLS::marshall_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - concat
    - static_cast<uint32_t>
    - std::pair
    - Botan::TLS::get
    - BOTAN_ASSERT_NOMSG
    - size
    - Botan::TLS::get_byte
    - std::visit
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> marshall_message(const T& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::reference_wrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 17
    functionsReached:
    - Botan::TLS::get
    linkageType: ''
    returnType: T
    signature: T & get(const std::reference_wrapper<T>& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: std::pair
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:163,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:164,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:164,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: Botan::TLS::marshall_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - concat
    - static_cast<uint32_t>
    - std::pair
    - Botan::TLS::get
    - BOTAN_ASSERT_NOMSG
    - size
    - Botan::TLS::get_byte
    - std::visit
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> marshall_message(const T& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: marshall_message
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:176,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - message
    - ' transcript_hash'
    argTypes:
    - Handshake_Message_13_Ref
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: Botan::TLS::Handshake_Layer::prepare_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - update
    - marshall_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Handshake_Layer::prepare_message(const Handshake_Message_13_Ref
      message,\n                                                      Transcript_Hash_State&
      transcript_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: marshall_message
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Botan::TLS::Handshake_Layer::prepare_post_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - marshall_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Handshake_Layer::prepare_post_handshake_message(const
      Post_Handshake_Message_13& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:21,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:21,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:21,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data_from_peer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::TLS::Handshake_Layer::copy_data
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 2
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void Handshake_Layer::copy_data(std::span<const uint8_t> data_from_peer)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Handshake_Type>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:30,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:44,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - byte_value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 56
    functionName: Botan::TLS::handshake_type_from_byte
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 2
    functionsReached:
    - static_cast<Handshake_Type>
    - TLS_Exception
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type handshake_type_from_byte(uint8_t byte_value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:64,1
    - Dst: Botan::TLS::handshake_type_from_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:68,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:68,1
    - Dst: Botan::TLS::get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:71,1
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:72,1
    - Dst: Botan::TLS::get_fixed
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:77,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:84,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:84,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:88,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:88,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:92,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:94,1
    - Dst: Botan::TLS::Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:96,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:98,1
    - Dst: Botan::TLS::Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:100,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:102,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:105,1
    - Dst: Botan::TLS::New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:109,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:111,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 4
    argNames:
    - ' reader'
    - ' policy'
    - peer_side
    - cert_type
    argTypes:
    - TLS::TLS_Data_Reader
    - Policy
    - Connection_Side
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 116
    functionName: Botan::TLS::parse_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::get_byte
    - Botan::TLS::get_uint24_t
    - Certificate_13
    - Botan::TLS::New_Session_Ticket_13
    - Botan::TLS::Finished_13
    - BOTAN_ASSERT
    - BOTAN_UNUSED
    - generalize_to<Handshake_Message_13>
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::remaining_bytes
    - Botan::TLS::Certificate_Request_13
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Certificate_Verify_13
    - Botan::TLS::get_fixed
    - Botan::TLS::handshake_type_from_byte
    - Encrypted_Extensions
    - Key_Update
    linkageType: ''
    returnType: std::optional<Msg_Type>
    signature: "std::optional<Msg_Type> parse_message(TLS::TLS_Data_Reader& reader,\n
      \                                     const Policy& policy,\n                                      const
      Connection_Side peer_side,\n                                      const Certificate_Type
      cert_type)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Handshake_Type>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:30,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:44,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - byte_value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 56
    functionName: Botan::TLS::handshake_type_from_byte
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 3
    functionsReached:
    - static_cast<Handshake_Type>
    - TLS_Exception
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type handshake_type_from_byte(uint8_t byte_value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:64,1
    - Dst: Botan::TLS::handshake_type_from_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:68,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:68,1
    - Dst: Botan::TLS::get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:71,1
    - Dst: Botan::TLS::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:72,1
    - Dst: Botan::TLS::get_fixed
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:77,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:84,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:84,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:88,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:88,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:92,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:94,1
    - Dst: Botan::TLS::Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:96,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:98,1
    - Dst: Botan::TLS::Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:100,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:102,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:105,1
    - Dst: Botan::TLS::New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:109,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:111,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 4
    argNames:
    - ' reader'
    - ' policy'
    - peer_side
    - cert_type
    argTypes:
    - TLS::TLS_Data_Reader
    - Policy
    - Connection_Side
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 116
    functionName: Botan::TLS::parse_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::get_byte
    - Botan::TLS::get_uint24_t
    - Certificate_13
    - Botan::TLS::New_Session_Ticket_13
    - Botan::TLS::Finished_13
    - BOTAN_ASSERT
    - BOTAN_UNUSED
    - generalize_to<Handshake_Message_13>
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::remaining_bytes
    - Botan::TLS::Certificate_Request_13
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Certificate_Verify_13
    - Botan::TLS::get_fixed
    - Botan::TLS::handshake_type_from_byte
    - Encrypted_Extensions
    - Key_Update
    linkageType: ''
    returnType: std::optional<Msg_Type>
    signature: "std::optional<Msg_Type> parse_message(TLS::TLS_Data_Reader& reader,\n
      \                                     const Policy& policy,\n                                      const
      Connection_Side peer_side,\n                                      const Certificate_Type
      cert_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_message<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:124,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:125,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:126,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:126,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:126,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:127,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:127,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:127,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:128,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:128,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:128,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' policy'
    - ' transcript_hash'
    argTypes:
    - Policy
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Handshake_Layer::next_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::read_so_far
    - data
    - cbegin
    - erase
    - size
    - auto::has_value
    - BOTAN_ASSERT_NOMSG
    - parse_message<Handshake_Message_13>
    - update
    linkageType: ''
    returnType: std::optional<Handshake_Message_13>
    signature: "std::optional<Handshake_Message_13> Handshake_Layer::next_message(const
      Policy& policy,\n                                                                  Transcript_Hash_State&
      transcript_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_message<Post_Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:137,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:138,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:139,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:139,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:139,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: Botan::TLS::Handshake_Layer::next_post_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS::TLS_Data_Reader::read_so_far
    - cbegin
    - erase
    - auto::has_value
    - parse_message<Post_Handshake_Message_13>
    linkageType: ''
    returnType: std::optional<Post_Handshake_Message_13>
    signature: std::optional<Post_Handshake_Message_13> Handshake_Layer::next_post_handshake_message(const
      Policy& policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::reference_wrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 19
    functionsReached:
    - Botan::TLS::get
    linkageType: ''
    returnType: T
    signature: T & get(const std::reference_wrapper<T>& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: std::pair
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:163,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:164,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:164,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: Botan::TLS::marshall_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - concat
    - static_cast<uint32_t>
    - std::pair
    - Botan::TLS::get
    - BOTAN_ASSERT_NOMSG
    - size
    - Botan::TLS::get_byte
    - std::visit
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> marshall_message(const T& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::reference_wrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 21
    functionsReached:
    - Botan::TLS::get
    linkageType: ''
    returnType: T
    signature: T & get(const std::reference_wrapper<T>& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & get(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: std::pair
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:161,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:163,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:164,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:164,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: Botan::TLS::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:167,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: Botan::TLS::marshall_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - concat
    - static_cast<uint32_t>
    - std::pair
    - Botan::TLS::get
    - BOTAN_ASSERT_NOMSG
    - size
    - Botan::TLS::get_byte
    - std::visit
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> marshall_message(const T& message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: marshall_message
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:176,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - message
    - ' transcript_hash'
    argTypes:
    - Handshake_Message_13_Ref
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: Botan::TLS::Handshake_Layer::prepare_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - update
    - marshall_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Handshake_Layer::prepare_message(const Handshake_Message_13_Ref
      message,\n                                                      Transcript_Hash_State&
      transcript_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: marshall_message
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Botan::TLS::Handshake_Layer::prepare_post_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - marshall_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Handshake_Layer::prepare_post_handshake_message(const
      Post_Handshake_Message_13& message)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:34,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:37,1
    - Dst: expect_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:38,1
    - Dst: Botan::TLS::Client_Impl_13::find_session_for_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:42,1
    - Dst: auto::session::version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:43,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:44,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:45,1
    - Dst: request_downgrade_for_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:48,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:48,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:53,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:53,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:54,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:57,1
    - Dst: find_preshared_keys
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:60,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:60,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:62,1
    - Dst: preserve_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:63,1
    - Dst: tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:72,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 7
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' creds'
    - ' policy'
    - ' rng'
    - info
    - ' next_protocols'
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    - Server_Information
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 77
    functionName: Botan::TLS::Client_Impl_13::Client_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - tls_13_middlebox_compatibility_mode
    - allow_tls12
    - request_downgrade_for_resumption
    - Client_Hello_13
    - expects_downgrade
    - preserve_client_hello
    - std::move
    - find_preshared_keys
    - auto::value
    - sending
    - hostname
    - expect_downgrade
    - set_expected_next
    - auto::session::version
    - send_handshake_message
    - Botan::TLS::Client_Impl_13::find_session_for_resumption
    linkageType: ''
    returnType: void
    signature: "void Client_Impl_13::Client_Impl_13(const std::shared_ptr<Callbacks>&
      callbacks,\n                               const std::shared_ptr<Session_Manager>&
      session_manager,\n                               const std::shared_ptr<Credentials_Manager>&
      creds,\n                               const std::shared_ptr<const Policy>&
      policy,\n                               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                               Server_Information info,\n                               const
      std::vector<std::string>& next_protocols)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:80,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:83,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:83,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:86,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:86,1
    - Dst: Botan::TLS::Client_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:89,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:89,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:91,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Client_Impl_13::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - received
    - std::move
    - get
    - callbacks
    - Botan::TLS::Client_Impl_13::handle
    - std::visit
    - confirm_transition_to
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::process_handshake_msg(Handshake_Message_13 message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:95,1
    - Dst: Botan::TLS::Client_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:95,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:97,1
    - Dst: Botan::TLS::Client_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:97,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:97,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Client_Impl_13::process_post_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    - received
    - std::move
    - Botan::TLS::Client_Impl_13::handle
    - std::visit
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::process_post_handshake_msg(Post_Handshake_Message_13
      message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:105,1
    - Dst: has_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:105,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: Botan::TLS::Client_Impl_13::process_dummy_change_cipher_spec
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - has_client_hello
    - TLS_Exception
    - has_server_finished
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::process_dummy_change_cipher_spec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handshake_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Client_Impl_13::is_handshake_complete
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 1
    functionsReached:
    - handshake_finished
    linkageType: ''
    returnType: bool
    signature: bool Client_Impl_13::is_handshake_complete() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:138,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:138,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:138,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:139,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:146,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Client_Impl_13::find_session_for_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 1
    functionsReached:
    - auto::front
    - policy
    - std::move
    - auto::empty
    - callbacks
    - session_manager
    linkageType: ''
    returnType: std::optional<Session_with_Handle>
    signature: std::optional<Session_with_Handle> Client_Impl_13::find_session_for_resumption()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:152,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:153,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:160,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:161,1
    - Dst: random_signals_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:174,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:175,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:184,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:185,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:192,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:193,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:193,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:194,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:194,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:195,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:198,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:199,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:199,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:204,1
    - Dst: request_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:207,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:211,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 1
    argNames:
    - ' server_hello_msg'
    argTypes:
    - Server_Hello_12_Shim
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 212
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - policy
    - extensions
    - expects_downgrade
    - random_signals_downgrade
    - get
    - has_hello_retry_request
    - client_hello
    - set_expected_next
    - TLS_Exception
    - selected_version
    - BOTAN_ASSERT_NOMSG
    - request_downgrade
    - session_id
    - has
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Server_Hello_12_Shim& server_hello_msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:221,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:228,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' ch'
    - ' sh'
    argTypes:
    - Client_Hello_13
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 241
    functionName: Botan::TLS::validate_server_hello_ish
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite
    - Botan::TLS::extensions
    - TLS_Exception
    - offered_suite
    - selected_version
    - BOTAN_ASSERT_NOMSG
    - session_id
    linkageType: ''
    returnType: void
    signature: void validate_server_hello_ish(const Client_Hello_13& ch, const Server_Hello_13&
      sh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:221,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:228,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' ch'
    - ' sh'
    argTypes:
    - Client_Hello_13
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 241
    functionName: Botan::TLS::validate_server_hello_ish
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite
    - Botan::TLS::extensions
    - TLS_Exception
    - offered_suite
    - selected_version
    - BOTAN_ASSERT_NOMSG
    - session_id
    linkageType: ''
    returnType: void
    signature: void validate_server_hello_ish(const Client_Hello_13& ch, const Server_Hello_13&
      sh)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:248,1
    - Dst: validate_server_hello_ish
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:250,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:257,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:257,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:258,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:261,1
    - Dst: hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:262,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:268,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:268,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:269,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:276,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:276,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:277,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:281,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:281,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:282,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:282,1
    - Dst: auto::usable_in_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:288,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:289,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:303,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:304,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: auto*::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:308,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:308,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:308,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:308,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:308,1
    - Dst: set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:310,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:310,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:312,1
    - Dst: std::tie
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:313,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:314,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:314,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:314,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:319,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:319,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:320,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:326,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:326,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:327,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:328,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:328,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:328,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:330,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:331,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:332,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:332,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:332,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:335,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:335,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:337,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - ' sh'
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 338
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - policy
    - has_hello_retry_request
    - callbacks
    - hello_retry_request
    - set_expected_next
    - advance_with_server_hello
    - std::tie
    - std::move
    - auto*::decapsulate
    - set_algorithm
    - previous
    - validate_server_hello_ish
    - BOTAN_ASSERT_NOMSG
    - advance_with_client_hello
    - Botan::TLS::Cipher_State::init_with_server_hello
    - ciphersuite
    - extensions
    - client_hello
    - TLS_Exception
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - current
    - has_value
    - reset
    - auto::usable_in_version
    - selected_version
    - rng
    - auto::value
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Server_Hello_13& sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:345,1
    - Dst: validate_server_hello_ish
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:347,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:353,1
    - Dst: auto::insert
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:354,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:355,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:356,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:359,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:359,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:360,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:360,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:363,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:363,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:365,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:365,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:365,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:367,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:367,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:369,1
    - Dst: std::reference_wrapper
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:369,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' hrr'
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 375
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - retry
    - ciphersuite
    - extensions
    - auto::insert
    - rng
    - std::reference_wrapper
    - client_hello
    - callbacks
    - TLS_Exception
    - validate_server_hello_ish
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - BOTAN_ASSERT_NOMSG
    - set_expected_next
    - auto::value
    - send_handshake_message
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Hello_Retry_Request& hrr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:378,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:385,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:386,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:387,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:394,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:394,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:402,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:403,1
    - Dst: set_record_size_limits
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:404,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:404,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:404,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:407,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:408,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:409,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:410,1
    - Dst: auto*::validate_selection
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:411,1
    - Dst: set_selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:420,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:420,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:423,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:425,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:429,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:431,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' encrypted_extensions_msg'
    argTypes:
    - Encrypted_Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 433
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - extensions
    - contains_other_than
    - get
    - client_hello
    - callbacks
    - auto*::validate_selection
    - TLS_Exception
    - set_selected_certificate_type
    - auto*::selected_certificate_type
    - set_expected_next
    - auto*::limit
    - server_hello
    - set_record_size_limits
    - has
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Encrypted_Extensions& encrypted_extensions_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:439,1
    - Dst: context
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:439,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:440,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:443,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:444,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' certificate_request_msg'
    argTypes:
    - Certificate_Request_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 446
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    - extensions
    - callbacks
    - context
    - TLS_Exception
    - set_expected_next
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Certificate_Request_13& certificate_request_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_context
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:452,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:453,1
    - Dst: validate_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:459,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:459,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:459,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:460,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:460,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:461,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:462,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:463,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:464,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' certificate_msg'
    argTypes:
    - Certificate_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 467
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - request_context
    - policy
    - credentials_manager
    - verify
    - callbacks
    - client_hello
    - TLS_Exception
    - validate_extensions
    - set_expected_next
    - hostname
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Certificate_13& certificate_msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:478,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:479,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:479,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:480,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:481,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:485,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:486,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:486,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:486,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:489,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' certificate_verify_msg'
    argTypes:
    - Certificate_Verify_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 493
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - value_exists
    - verify
    - client_hello
    - server_certificate
    - callbacks
    - TLS_Exception
    - previous
    - set_expected_next
    - signature_scheme
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Certificate_Verify_13& certificate_verify_msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:496,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:496,1
    - Dst: certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:497,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:500,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:501,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:502,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:502,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:503,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:504,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:513,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:528,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:528,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:528,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:528,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:536,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:537,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:537,1
    - Dst: Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:537,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:537,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:538,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:539,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:540,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:542,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:543,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:544,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' flight'
    argTypes:
    - Channel_Impl_13::AggregatedHandshakeMessages
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 547
    functionName: Botan::TLS::Client_Impl_13::send_client_authentication
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - policy
    - has_certificate_request
    - certificate_request
    - client_certificate
    - callbacks
    - has
    - get
    - Certificate_Verify_13
    - BOTAN_ASSERT_NOMSG
    - Certificate_13
    - credentials_manager
    - signature_schemes
    - client_hello
    - add
    - current
    - hostname
    - encrypted_extensions
    - sending
    - rng
    - auto*::selected_certificate_type
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::send_client_authentication(Channel_Impl_13::AggregatedHandshakeMessages&
      flight)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:554,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:554,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:554,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:555,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:560,1
    - Dst: Session_Summary
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:560,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:560,1
    - Dst: Botan::TLS::Client_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:562,1
    - Dst: Botan::TLS::Client_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:563,1
    - Dst: Botan::TLS::Client_Impl_13::external_psk_identity
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:564,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:565,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:567,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:571,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:571,1
    - Dst: aggregate_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:573,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:578,1
    - Dst: Botan::TLS::Client_Impl_13::send_client_authentication
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:579,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:583,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:583,1
    - Dst: Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:583,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:583,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:583,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:585,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:588,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:588,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:595,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:597,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' finished_msg'
    argTypes:
    - Finished_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 598
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - advance_with_server_finished
    - has_certificate_request
    - Botan::TLS::Client_Impl_13::peer_raw_public_key
    - Finished_13
    - callbacks
    - auto::send
    - aggregate_handshake_messages
    - advance_with_client_finished
    - get
    - previous
    - auto::add
    - Botan::TLS::Client_Impl_13::send_client_authentication
    - verify
    - Botan::TLS::Client_Impl_13::external_psk_identity
    - TLS_Exception
    - Session_Summary
    - current
    - has_value
    - Botan::TLS::Client_Impl_13::peer_cert_chain
    - sending
    - set_expected_next
    - server_hello
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Finished_13& finished_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:601,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:602,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:604,1
    - Dst: nonce
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:604,1
    - Dst: early_data_byte_limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:605,1
    - Dst: ticket_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:606,1
    - Dst: lifetime_hint
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:607,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:608,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:609,1
    - Dst: peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:611,1
    - Dst: peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:612,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:614,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:616,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:617,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:617,1
    - Dst: handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' new_session_ticket'
    argTypes:
    - New_Session_Ticket_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 619
    functionName: TLS::Client_Impl_13::handle(const New_Session_Ticket_13& new_session_ticket)
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - early_data_byte_limit
    - server_hello
    - ticket_age_add
    - extensions
    - psk
    - callbacks
    - handle
    - peer_raw_public_key
    - peer_cert_chain
    - Session_Handle
    - nonce
    - lifetime_hint
    - session_manager
    linkageType: ''
    returnType: void
    signature: void TLS::Client_Impl_13::handle(const New_Session_Ticket_13& new_session_ticket)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_server_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:622,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:623,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:624,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:627,1
    - Dst: session::peer_certs
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 632
    functionName: Botan::TLS::Client_Impl_13::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 1
    functionsReached:
    - has_server_certificate_msg
    - session::peer_certs
    - has_value
    - server_certificate
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Client_Impl_13::peer_cert_chain() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_server_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:635,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:635,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:636,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:639,1
    - Dst: session::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 644
    functionName: Botan::TLS::Client_Impl_13::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 1
    functionsReached:
    - has_server_certificate_msg
    - session::peer_raw_public_key
    - has_value
    - server_certificate
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Client_Impl_13::peer_raw_public_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 648
    functionName: Botan::TLS::Client_Impl_13::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Client_Impl_13::external_psk_identity()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 652
    functionName: Botan::TLS::Client_Impl_13::prepend_ccs
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: bool
    signature: bool Client_Impl_13::prepend_ccs()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:655,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:656,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - label
    - secret
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 658
    functionName: Botan::TLS::Client_Impl_13::maybe_log_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - client_hello
    - policy
    - callbacks
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::maybe_log_secret(std::string_view label, std::span<const
      uint8_t> secret) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:661,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:662,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:663,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 669
    functionName: Botan::TLS::Client_Impl_13::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - get
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    - has
    - encrypted_extensions
    linkageType: ''
    returnType: std::string
    signature: std::string Client_Impl_13::application_protocol() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:34,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:37,1
    - Dst: expect_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:38,1
    - Dst: Botan::TLS::Client_Impl_13::find_session_for_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:42,1
    - Dst: auto::session::version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:43,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:44,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:45,1
    - Dst: request_downgrade_for_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:48,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:48,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:53,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:53,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:54,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:57,1
    - Dst: find_preshared_keys
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:60,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:60,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:62,1
    - Dst: preserve_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:63,1
    - Dst: tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:72,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 7
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' creds'
    - ' policy'
    - ' rng'
    - info
    - ' next_protocols'
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    - Server_Information
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 77
    functionName: Botan::TLS::Client_Impl_13::Client_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - tls_13_middlebox_compatibility_mode
    - allow_tls12
    - request_downgrade_for_resumption
    - Client_Hello_13
    - expects_downgrade
    - preserve_client_hello
    - std::move
    - find_preshared_keys
    - auto::value
    - sending
    - hostname
    - expect_downgrade
    - set_expected_next
    - auto::session::version
    - send_handshake_message
    - Botan::TLS::Client_Impl_13::find_session_for_resumption
    linkageType: ''
    returnType: void
    signature: "void Client_Impl_13::Client_Impl_13(const std::shared_ptr<Callbacks>&
      callbacks,\n                               const std::shared_ptr<Session_Manager>&
      session_manager,\n                               const std::shared_ptr<Credentials_Manager>&
      creds,\n                               const std::shared_ptr<const Policy>&
      policy,\n                               const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                               Server_Information info,\n                               const
      std::vector<std::string>& next_protocols)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:80,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:83,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:83,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:86,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:86,1
    - Dst: Botan::TLS::Client_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:89,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:89,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:91,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Client_Impl_13::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - received
    - std::move
    - get
    - callbacks
    - Botan::TLS::Client_Impl_13::handle
    - std::visit
    - confirm_transition_to
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::process_handshake_msg(Handshake_Message_13 message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:95,1
    - Dst: Botan::TLS::Client_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:95,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:97,1
    - Dst: Botan::TLS::Client_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:97,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:97,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Client_Impl_13::process_post_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    - received
    - std::move
    - Botan::TLS::Client_Impl_13::handle
    - std::visit
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::process_post_handshake_msg(Post_Handshake_Message_13
      message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:105,1
    - Dst: has_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:105,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: Botan::TLS::Client_Impl_13::process_dummy_change_cipher_spec
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - has_client_hello
    - TLS_Exception
    - has_server_finished
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::process_dummy_change_cipher_spec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handshake_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Client_Impl_13::is_handshake_complete
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - handshake_finished
    linkageType: ''
    returnType: bool
    signature: bool Client_Impl_13::is_handshake_complete() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:138,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:138,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:138,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:139,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:146,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Client_Impl_13::find_session_for_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - auto::front
    - policy
    - std::move
    - auto::empty
    - callbacks
    - session_manager
    linkageType: ''
    returnType: std::optional<Session_with_Handle>
    signature: std::optional<Session_with_Handle> Client_Impl_13::find_session_for_resumption()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:152,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:153,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:160,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:161,1
    - Dst: random_signals_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:174,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:175,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:184,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:185,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:192,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:193,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:193,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:194,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:194,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:195,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:198,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:199,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:199,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:204,1
    - Dst: request_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:207,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:211,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 1
    argNames:
    - ' server_hello_msg'
    argTypes:
    - Server_Hello_12_Shim
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 212
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - policy
    - extensions
    - expects_downgrade
    - random_signals_downgrade
    - get
    - has_hello_retry_request
    - client_hello
    - set_expected_next
    - TLS_Exception
    - selected_version
    - BOTAN_ASSERT_NOMSG
    - request_downgrade
    - session_id
    - has
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Server_Hello_12_Shim& server_hello_msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:221,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:228,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' ch'
    - ' sh'
    argTypes:
    - Client_Hello_13
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 241
    functionName: Botan::TLS::validate_server_hello_ish
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite
    - Botan::TLS::extensions
    - TLS_Exception
    - offered_suite
    - selected_version
    - BOTAN_ASSERT_NOMSG
    - session_id
    linkageType: ''
    returnType: void
    signature: void validate_server_hello_ish(const Client_Hello_13& ch, const Server_Hello_13&
      sh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:221,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:228,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' ch'
    - ' sh'
    argTypes:
    - Client_Hello_13
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 241
    functionName: Botan::TLS::validate_server_hello_ish
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite
    - Botan::TLS::extensions
    - TLS_Exception
    - offered_suite
    - selected_version
    - BOTAN_ASSERT_NOMSG
    - session_id
    linkageType: ''
    returnType: void
    signature: void validate_server_hello_ish(const Client_Hello_13& ch, const Server_Hello_13&
      sh)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:248,1
    - Dst: validate_server_hello_ish
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:250,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:257,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:257,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:258,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:261,1
    - Dst: hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:262,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:268,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:268,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:269,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:276,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:276,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:277,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:281,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:281,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:282,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:282,1
    - Dst: auto::usable_in_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:288,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:289,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:303,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:304,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: auto*::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:308,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:308,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:308,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:308,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:308,1
    - Dst: set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:310,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:310,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:312,1
    - Dst: std::tie
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:313,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:314,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:314,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:314,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:319,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:319,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:320,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:326,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:326,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:327,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:328,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:328,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:328,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:330,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:331,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:332,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:332,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:332,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:335,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:335,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:337,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - ' sh'
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 338
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - policy
    - has_hello_retry_request
    - callbacks
    - hello_retry_request
    - set_expected_next
    - advance_with_server_hello
    - std::tie
    - std::move
    - auto*::decapsulate
    - set_algorithm
    - previous
    - validate_server_hello_ish
    - BOTAN_ASSERT_NOMSG
    - advance_with_client_hello
    - Botan::TLS::Cipher_State::init_with_server_hello
    - ciphersuite
    - extensions
    - client_hello
    - TLS_Exception
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - current
    - has_value
    - reset
    - auto::usable_in_version
    - selected_version
    - rng
    - auto::value
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Server_Hello_13& sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:345,1
    - Dst: validate_server_hello_ish
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:347,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:353,1
    - Dst: auto::insert
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:354,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:355,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:356,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:359,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:359,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:360,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:360,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:363,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:363,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:365,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:365,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:365,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:367,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:367,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:369,1
    - Dst: std::reference_wrapper
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:369,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' hrr'
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 375
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - retry
    - ciphersuite
    - extensions
    - auto::insert
    - rng
    - std::reference_wrapper
    - client_hello
    - callbacks
    - TLS_Exception
    - validate_server_hello_ish
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - BOTAN_ASSERT_NOMSG
    - set_expected_next
    - auto::value
    - send_handshake_message
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Hello_Retry_Request& hrr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:378,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:385,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:386,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:387,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:394,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:394,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:402,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:403,1
    - Dst: set_record_size_limits
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:404,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:404,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:404,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:407,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:408,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:409,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:410,1
    - Dst: auto*::validate_selection
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:411,1
    - Dst: set_selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:420,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:420,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:423,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:425,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:429,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:431,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' encrypted_extensions_msg'
    argTypes:
    - Encrypted_Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 433
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - extensions
    - contains_other_than
    - get
    - client_hello
    - callbacks
    - auto*::validate_selection
    - TLS_Exception
    - set_selected_certificate_type
    - auto*::selected_certificate_type
    - set_expected_next
    - auto*::limit
    - server_hello
    - set_record_size_limits
    - has
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Encrypted_Extensions& encrypted_extensions_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:439,1
    - Dst: context
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:439,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:440,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:443,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:444,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' certificate_request_msg'
    argTypes:
    - Certificate_Request_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 446
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    - extensions
    - callbacks
    - context
    - TLS_Exception
    - set_expected_next
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Certificate_Request_13& certificate_request_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_context
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:452,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:453,1
    - Dst: validate_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:459,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:459,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:459,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:460,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:460,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:461,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:462,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:463,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:464,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' certificate_msg'
    argTypes:
    - Certificate_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 467
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - request_context
    - policy
    - credentials_manager
    - verify
    - callbacks
    - client_hello
    - TLS_Exception
    - validate_extensions
    - set_expected_next
    - hostname
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Certificate_13& certificate_msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:478,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:479,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:479,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:480,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:481,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:485,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:486,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:486,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:486,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:489,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' certificate_verify_msg'
    argTypes:
    - Certificate_Verify_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 493
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - value_exists
    - verify
    - client_hello
    - server_certificate
    - callbacks
    - TLS_Exception
    - previous
    - set_expected_next
    - signature_scheme
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Certificate_Verify_13& certificate_verify_msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:496,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:496,1
    - Dst: certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:497,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:500,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:501,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:502,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:502,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:503,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:504,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:513,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:528,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:528,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:528,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:528,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:536,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:537,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:537,1
    - Dst: Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:537,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:537,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:538,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:539,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:540,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:542,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:543,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:544,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' flight'
    argTypes:
    - Channel_Impl_13::AggregatedHandshakeMessages
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 547
    functionName: Botan::TLS::Client_Impl_13::send_client_authentication
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 1
    functionsReached:
    - policy
    - has_certificate_request
    - certificate_request
    - client_certificate
    - callbacks
    - has
    - get
    - Certificate_Verify_13
    - BOTAN_ASSERT_NOMSG
    - Certificate_13
    - credentials_manager
    - signature_schemes
    - client_hello
    - add
    - current
    - hostname
    - encrypted_extensions
    - sending
    - rng
    - auto*::selected_certificate_type
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::send_client_authentication(Channel_Impl_13::AggregatedHandshakeMessages&
      flight)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:554,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:554,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:554,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:555,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:560,1
    - Dst: Session_Summary
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:560,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:560,1
    - Dst: Botan::TLS::Client_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:562,1
    - Dst: Botan::TLS::Client_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:563,1
    - Dst: Botan::TLS::Client_Impl_13::external_psk_identity
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:564,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:565,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:567,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:571,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:571,1
    - Dst: aggregate_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:573,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:578,1
    - Dst: Botan::TLS::Client_Impl_13::send_client_authentication
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:579,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:583,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:583,1
    - Dst: Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:583,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:583,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:583,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:585,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:588,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:588,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:595,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:597,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' finished_msg'
    argTypes:
    - Finished_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 598
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - advance_with_server_finished
    - has_certificate_request
    - Botan::TLS::Client_Impl_13::peer_raw_public_key
    - Finished_13
    - callbacks
    - auto::send
    - aggregate_handshake_messages
    - advance_with_client_finished
    - get
    - previous
    - auto::add
    - Botan::TLS::Client_Impl_13::send_client_authentication
    - verify
    - Botan::TLS::Client_Impl_13::external_psk_identity
    - TLS_Exception
    - Session_Summary
    - current
    - has_value
    - Botan::TLS::Client_Impl_13::peer_cert_chain
    - sending
    - set_expected_next
    - server_hello
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Finished_13& finished_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:601,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:602,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:604,1
    - Dst: nonce
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:604,1
    - Dst: early_data_byte_limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:605,1
    - Dst: ticket_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:606,1
    - Dst: lifetime_hint
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:607,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:608,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:609,1
    - Dst: peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:611,1
    - Dst: peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:612,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:614,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:616,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:617,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:617,1
    - Dst: handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' new_session_ticket'
    argTypes:
    - New_Session_Ticket_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 619
    functionName: TLS::Client_Impl_13::handle(const New_Session_Ticket_13& new_session_ticket)
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - early_data_byte_limit
    - server_hello
    - ticket_age_add
    - extensions
    - psk
    - callbacks
    - handle
    - peer_raw_public_key
    - peer_cert_chain
    - Session_Handle
    - nonce
    - lifetime_hint
    - session_manager
    linkageType: ''
    returnType: void
    signature: void TLS::Client_Impl_13::handle(const New_Session_Ticket_13& new_session_ticket)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_server_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:622,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:623,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:624,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:627,1
    - Dst: session::peer_certs
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 632
    functionName: Botan::TLS::Client_Impl_13::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - has_server_certificate_msg
    - session::peer_certs
    - has_value
    - server_certificate
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Client_Impl_13::peer_cert_chain() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_server_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:635,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:635,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:636,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:639,1
    - Dst: session::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 644
    functionName: Botan::TLS::Client_Impl_13::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - has_server_certificate_msg
    - session::peer_raw_public_key
    - has_value
    - server_certificate
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Client_Impl_13::peer_raw_public_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 648
    functionName: Botan::TLS::Client_Impl_13::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Client_Impl_13::external_psk_identity()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 652
    functionName: Botan::TLS::Client_Impl_13::prepend_ccs
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: bool
    signature: bool Client_Impl_13::prepend_ccs()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:655,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:656,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - label
    - secret
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 658
    functionName: Botan::TLS::Client_Impl_13::maybe_log_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - client_hello
    - policy
    - callbacks
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::maybe_log_secret(std::string_view label, std::span<const
      uint8_t> secret) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:661,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:662,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:663,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 669
    functionName: Botan::TLS::Client_Impl_13::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - get
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    - has
    - encrypted_extensions
    linkageType: ''
    returnType: std::string
    signature: std::string Client_Impl_13::application_protocol() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::TLS::Transcript_Hash_State::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Transcript_Hash_State::set_algorithm
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::Transcript_Hash_State(std::string_view
      algo_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::TLS::Transcript_Hash_State::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::Transcript_Hash_State()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Transcript_Hash_State::~Transcript_Hash_State()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::~Transcript_Hash_State()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Transcript_Hash_State::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::Transcript_Hash_State(Transcript_Hash_State&&
      other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_hash::copy_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Transcript_Hash_State::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - m_hash::copy_state
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::Transcript_Hash_State(const Transcript_Hash_State&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:42,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:43,1
    - Dst: m_unprocessed_transcript::size
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:43,1
    - Dst: m_unprocessed_transcript::front
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:47,1
    - Dst: m_unprocessed_transcript::back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:48,1
    - Dst: Transcript_Hash_State::m_hash::output_length
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:50,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:51,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:58,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:60,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:61,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:62,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:62,1
    - Dst: Transcript_Hash_State::m_hash::process
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:63,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:65,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - algo_spec
    - ' prev_transcript_hash_state'
    argTypes:
    - std::string_view
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 10
    functionsReached:
    - Transcript_Hash_State::update
    - m_unprocessed_transcript::size
    - std::vector::push_back
    - Transcript_Hash_State::m_hash::process
    - std::vector::reserve
    - m_unprocessed_transcript::back
    - Transcript_Hash_State::m_hash::output_length
    - m_unprocessed_transcript::front
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint8_t>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Transcript_Hash_State
    signature: "Transcript_Hash_State Transcript_Hash_State::recreate_after_hello_retry_request(\n
      \  std::string_view algo_spec, const Transcript_Hash_State& prev_transcript_hash_state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:91,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:94,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:97,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:100,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:101,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:107,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:108,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:111,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:112,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:115,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:116,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:117,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:117,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:118,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:118,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:119,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:123,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:128,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:129,1
    - Dst: TLS_Data_Reader::peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:132,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:133,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:134,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 144
    functionName: Botan::TLS::find_client_hello_truncation_mark
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::has_remaining
    - TLS_Data_Reader::remaining_bytes
    - TLS_Data_Reader::get_byte
    - TLS_Exception
    - static_cast<Extension_Code>
    - TLS_Data_Reader::read_so_far
    - BOTAN_ASSERT_NOMSG
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::discard_next
    - static_cast<uint8_t>
    - TLS_Data_Reader::peek_uint16_t
    linkageType: ''
    returnType: size_t
    signature: size_t find_client_hello_truncation_mark(std::span<const uint8_t> client_hello)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::unique_ptr<HashFunction>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: Botan::TLS::read_hash_state
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - copy_state
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> read_hash_state(std::unique_ptr<HashFunction>&
      hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:91,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:94,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:97,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:100,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:101,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:107,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:108,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:111,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:112,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:115,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:116,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:117,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:117,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:118,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:118,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:119,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:123,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:128,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:129,1
    - Dst: TLS_Data_Reader::peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:132,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:133,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:134,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 144
    functionName: Botan::TLS::find_client_hello_truncation_mark
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::has_remaining
    - TLS_Data_Reader::remaining_bytes
    - TLS_Data_Reader::get_byte
    - TLS_Exception
    - static_cast<Extension_Code>
    - TLS_Data_Reader::read_so_far
    - BOTAN_ASSERT_NOMSG
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::discard_next
    - static_cast<uint8_t>
    - TLS_Data_Reader::peek_uint16_t
    linkageType: ''
    returnType: size_t
    signature: size_t find_client_hello_truncation_mark(std::span<const uint8_t> client_hello)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::unique_ptr<HashFunction>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: Botan::TLS::read_hash_state
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - copy_state
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> read_hash_state(std::unique_ptr<HashFunction>&
      hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:156,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:157,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:163,1
    - Dst: find_client_hello_truncation_mark
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:164,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:168,1
    - Dst: read_hash_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:169,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:170,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:172,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:173,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:176,1
    - Dst: read_hash_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:176,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:178,1
    - Dst: std::vector
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - serialized_message_s
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 181
    functionName: Botan::TLS::Transcript_Hash_State::update
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 1
    functionsReached:
    - find_client_hello_truncation_mark
    - std::exchange
    - std::vector
    - Botan::TLS::Transcript_Hash_State::update
    - std::span<const uint8_t>::data
    - clear
    - read_hash_state
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - push_back
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::update(std::span<const uint8_t> serialized_message_s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:184,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: '& Transcript_Hash_State::current() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Transcript_Hash
    signature: Transcript_Hash & Transcript_Hash_State::current() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:189,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: '& Transcript_Hash_State::previous() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Transcript_Hash
    signature: Transcript_Hash & Transcript_Hash_State::previous() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:194,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: '& Transcript_Hash_State::truncated() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Transcript_Hash
    signature: Transcript_Hash & Transcript_Hash_State::truncated() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:199,1
    - Dst: name
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:199,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:204,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:206,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 209
    functionName: Botan::TLS::Transcript_Hash_State::set_algorithm
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Transcript_Hash_State::update
    - Botan::HashFunction::create_or_throw
    - clear
    - name
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::set_algorithm(std::string_view algo_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: Botan::TLS::Transcript_Hash_State::clone
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Transcript_Hash_State
    signature: Transcript_Hash_State Transcript_Hash_State::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::TLS::Transcript_Hash_State::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Transcript_Hash_State::set_algorithm
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::Transcript_Hash_State(std::string_view
      algo_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::TLS::Transcript_Hash_State::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::Transcript_Hash_State()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Transcript_Hash_State::~Transcript_Hash_State()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::~Transcript_Hash_State()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Transcript_Hash_State::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::Transcript_Hash_State(Transcript_Hash_State&&
      other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_hash::copy_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Transcript_Hash_State::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - m_hash::copy_state
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::Transcript_Hash_State(const Transcript_Hash_State&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:42,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:43,1
    - Dst: m_unprocessed_transcript::size
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:43,1
    - Dst: m_unprocessed_transcript::front
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:47,1
    - Dst: m_unprocessed_transcript::back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:48,1
    - Dst: Transcript_Hash_State::m_hash::output_length
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:50,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:51,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:58,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:60,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:61,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:62,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:62,1
    - Dst: Transcript_Hash_State::m_hash::process
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:63,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:65,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - algo_spec
    - ' prev_transcript_hash_state'
    argTypes:
    - std::string_view
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 10
    functionsReached:
    - Transcript_Hash_State::update
    - m_unprocessed_transcript::size
    - std::vector::push_back
    - Transcript_Hash_State::m_hash::process
    - std::vector::reserve
    - m_unprocessed_transcript::back
    - Transcript_Hash_State::m_hash::output_length
    - m_unprocessed_transcript::front
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint8_t>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Transcript_Hash_State
    signature: "Transcript_Hash_State Transcript_Hash_State::recreate_after_hello_retry_request(\n
      \  std::string_view algo_spec, const Transcript_Hash_State& prev_transcript_hash_state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:91,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:94,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:97,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:100,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:101,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:107,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:108,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:111,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:112,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:115,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:116,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:117,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:117,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:118,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:118,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:119,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:123,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:128,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:129,1
    - Dst: TLS_Data_Reader::peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:132,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:133,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:134,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 144
    functionName: Botan::TLS::find_client_hello_truncation_mark
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::has_remaining
    - TLS_Data_Reader::remaining_bytes
    - TLS_Data_Reader::get_byte
    - TLS_Exception
    - static_cast<Extension_Code>
    - TLS_Data_Reader::read_so_far
    - BOTAN_ASSERT_NOMSG
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::discard_next
    - static_cast<uint8_t>
    - TLS_Data_Reader::peek_uint16_t
    linkageType: ''
    returnType: size_t
    signature: size_t find_client_hello_truncation_mark(std::span<const uint8_t> client_hello)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::unique_ptr<HashFunction>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: Botan::TLS::read_hash_state
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - copy_state
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> read_hash_state(std::unique_ptr<HashFunction>&
      hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:88,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:91,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:94,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:97,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:100,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:101,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:107,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:108,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:111,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:112,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:115,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:116,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:117,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:117,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:118,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:118,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:119,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:123,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:128,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:129,1
    - Dst: TLS_Data_Reader::peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:132,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:133,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:134,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 144
    functionName: Botan::TLS::find_client_hello_truncation_mark
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::has_remaining
    - TLS_Data_Reader::remaining_bytes
    - TLS_Data_Reader::get_byte
    - TLS_Exception
    - static_cast<Extension_Code>
    - TLS_Data_Reader::read_so_far
    - BOTAN_ASSERT_NOMSG
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::discard_next
    - static_cast<uint8_t>
    - TLS_Data_Reader::peek_uint16_t
    linkageType: ''
    returnType: size_t
    signature: size_t find_client_hello_truncation_mark(std::span<const uint8_t> client_hello)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::unique_ptr<HashFunction>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: Botan::TLS::read_hash_state
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - copy_state
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> read_hash_state(std::unique_ptr<HashFunction>&
      hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:156,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:157,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:163,1
    - Dst: find_client_hello_truncation_mark
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:164,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:168,1
    - Dst: read_hash_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:169,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:170,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:172,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:173,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:176,1
    - Dst: read_hash_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:176,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:178,1
    - Dst: std::vector
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - serialized_message_s
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 181
    functionName: Botan::TLS::Transcript_Hash_State::update
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 3
    functionsReached:
    - find_client_hello_truncation_mark
    - std::exchange
    - std::vector
    - Botan::TLS::Transcript_Hash_State::update
    - std::span<const uint8_t>::data
    - clear
    - read_hash_state
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - push_back
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::update(std::span<const uint8_t> serialized_message_s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:184,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: '& Transcript_Hash_State::current() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Transcript_Hash
    signature: Transcript_Hash & Transcript_Hash_State::current() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:189,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: '& Transcript_Hash_State::previous() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Transcript_Hash
    signature: Transcript_Hash & Transcript_Hash_State::previous() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:194,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: '& Transcript_Hash_State::truncated() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Transcript_Hash
    signature: Transcript_Hash & Transcript_Hash_State::truncated() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:199,1
    - Dst: name
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:199,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:204,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:206,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 209
    functionName: Botan::TLS::Transcript_Hash_State::set_algorithm
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Transcript_Hash_State::update
    - Botan::HashFunction::create_or_throw
    - clear
    - name
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State::set_algorithm(std::string_view algo_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: Botan::TLS::Transcript_Hash_State::clone
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Transcript_Hash_State
    signature: Transcript_Hash_State Transcript_Hash_State::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::Certificate_Request_13::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type Certificate_Request_13::type() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:32,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:35,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:36,1
    - Dst: Botan::TLS::Certificate_Request_13::type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:36,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:43,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:44,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:66,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' buf'
    - side
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Certificate_Request_13::Certificate_Request_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Certificate_Request_13::type
    - TLS_Data_Reader::get_tls_length_value
    - TLS_Exception
    - contains_implemented_extensions_other_than
    - deserialize
    - has
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_13::Certificate_Request_13(const std::vector<uint8_t>&
      buf, const Connection_Side side)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:91,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:91,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:91,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:92,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:96,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:96,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:96,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:96,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:99,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:100,1
    - Dst: std::make_unique<Certificate_Authorities>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:100,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:105,1
    - Dst: Botan::TLS::Certificate_Request_13::type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' acceptable_CAs'
    - ' policy'
    - ' callbacks'
    argTypes:
    - std::vector<X509_DN>
    - Policy
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Certificate_Request_13::Certificate_Request_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Certificate_Authorities>
    - std::move
    - acceptable_signature_schemes
    - tls_modify_extensions
    - Botan::TLS::Certificate_Request_13::type
    - add
    - empty
    - std::make_unique<Signature_Algorithms_Cert>
    - auto::value
    - std::make_unique<Signature_Algorithms>
    - acceptable_certificate_signature_schemes
    linkageType: ''
    returnType: void
    signature: "void Certificate_Request_13::Certificate_Request_13(const std::vector<X509_DN>&
      acceptable_CAs,\n                                               const Policy&
      policy,\n                                               Callbacks& callbacks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:112,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:112,1
    - Dst: all_subjects
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:116,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:117,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:117,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:117,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:117,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:120,1
    - Dst: request_client_certificate_authentication
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:120,1
    - Dst: Botan::TLS::Certificate_Request_13::Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - ' client_hello'
    - ' cred_mgr'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - Credentials_Manager
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: Botan::TLS::Certificate_Request_13::maybe_create
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - request_client_certificate_authentication
    - auto::begin
    - std::vector::end
    - sni_hostname
    - trusted_certificate_authorities
    - Botan::TLS::Certificate_Request_13::Certificate_Request_13
    - std::vector::insert
    - all_subjects
    - auto::end
    - std::vector::empty
    linkageType: ''
    returnType: std::optional<Certificate_Request_13>
    signature: "std::optional<Certificate_Request_13> Certificate_Request_13::maybe_create(const
      Client_Hello_13& client_hello,\n                                                                           Credentials_Manager&
      cred_mgr,\n                                                                           Callbacks&
      callbacks,\n                                                                           const
      Policy& policy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:128,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Certificate_Request_13::acceptable_CAs
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - get
    - has
    linkageType: ''
    returnType: std::vector<X509_DN>
    signature: std::vector<X509_DN> Certificate_Request_13::acceptable_CAs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:137,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:137,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: '& Certificate_Request_13::signature_schemes() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - get
    - has
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> & Certificate_Request_13::signature_schemes()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:147,1
    - Dst: auto*::supported_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:148,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: '& Certificate_Request_13::certificate_signature_schemes() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - auto*::supported_schemes
    - get
    - signature_schemes
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> & Certificate_Request_13::certificate_signature_schemes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:156,1
    - Dst: Botan::TLS::Certificate_Request_13::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: Botan::TLS::Certificate_Request_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Certificate_Request_13::serialize
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Request_13::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::Certificate_Request_13::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type Certificate_Request_13::type() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:32,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:35,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:36,1
    - Dst: Botan::TLS::Certificate_Request_13::type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:36,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:43,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:44,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:66,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' buf'
    - side
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Certificate_Request_13::Certificate_Request_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Certificate_Request_13::type
    - TLS_Data_Reader::get_tls_length_value
    - TLS_Exception
    - contains_implemented_extensions_other_than
    - deserialize
    - has
    linkageType: ''
    returnType: void
    signature: void Certificate_Request_13::Certificate_Request_13(const std::vector<uint8_t>&
      buf, const Connection_Side side)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:91,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:91,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:91,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:92,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:96,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:96,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:96,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:96,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:99,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:100,1
    - Dst: std::make_unique<Certificate_Authorities>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:100,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:105,1
    - Dst: Botan::TLS::Certificate_Request_13::type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' acceptable_CAs'
    - ' policy'
    - ' callbacks'
    argTypes:
    - std::vector<X509_DN>
    - Policy
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 106
    functionName: Botan::TLS::Certificate_Request_13::Certificate_Request_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Certificate_Authorities>
    - std::move
    - acceptable_signature_schemes
    - tls_modify_extensions
    - Botan::TLS::Certificate_Request_13::type
    - add
    - empty
    - std::make_unique<Signature_Algorithms_Cert>
    - auto::value
    - std::make_unique<Signature_Algorithms>
    - acceptable_certificate_signature_schemes
    linkageType: ''
    returnType: void
    signature: "void Certificate_Request_13::Certificate_Request_13(const std::vector<X509_DN>&
      acceptable_CAs,\n                                               const Policy&
      policy,\n                                               Callbacks& callbacks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:112,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:112,1
    - Dst: all_subjects
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:116,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:117,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:117,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:117,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:117,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:120,1
    - Dst: request_client_certificate_authentication
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:120,1
    - Dst: Botan::TLS::Certificate_Request_13::Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - ' client_hello'
    - ' cred_mgr'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - Credentials_Manager
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: Botan::TLS::Certificate_Request_13::maybe_create
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - request_client_certificate_authentication
    - auto::begin
    - std::vector::end
    - sni_hostname
    - trusted_certificate_authorities
    - Botan::TLS::Certificate_Request_13::Certificate_Request_13
    - std::vector::insert
    - all_subjects
    - auto::end
    - std::vector::empty
    linkageType: ''
    returnType: std::optional<Certificate_Request_13>
    signature: "std::optional<Certificate_Request_13> Certificate_Request_13::maybe_create(const
      Client_Hello_13& client_hello,\n                                                                           Credentials_Manager&
      cred_mgr,\n                                                                           Callbacks&
      callbacks,\n                                                                           const
      Policy& policy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:128,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: Botan::TLS::Certificate_Request_13::acceptable_CAs
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - get
    - has
    linkageType: ''
    returnType: std::vector<X509_DN>
    signature: std::vector<X509_DN> Certificate_Request_13::acceptable_CAs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:137,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:137,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: '& Certificate_Request_13::signature_schemes() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - get
    - has
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> & Certificate_Request_13::signature_schemes()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:147,1
    - Dst: auto*::supported_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:148,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: '& Certificate_Request_13::certificate_signature_schemes() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - auto*::supported_schemes
    - get
    - signature_schemes
    linkageType: ''
    returnType: std::vector<Signature_Scheme>
    signature: std::vector<Signature_Scheme> & Certificate_Request_13::certificate_signature_schemes()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:156,1
    - Dst: Botan::TLS::Certificate_Request_13::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: Botan::TLS::Certificate_Request_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Certificate_Request_13::serialize
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Request_13::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 118
    functionName: Botan::TLS::Handshake_Layer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Handshake_Layer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::TLS::has_pending_data
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool has_pending_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert_type
    argTypes:
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::TLS::set_selected_certificate_type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_selected_certificate_type(Certificate_Type cert_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 118
    functionName: Botan::TLS::Handshake_Layer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Handshake_Layer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::TLS::has_pending_data
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool has_pending_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert_type
    argTypes:
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::TLS::set_selected_certificate_type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_selected_certificate_type(Certificate_Type cert_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 15
    functionName: Botan::TLS::Key_Update::Key_Update
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_key_update.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Update::Key_Update(const bool request_peer_update)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_key_update.cpp:18,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_key_update.cpp:19,1
    - Dst: at
      Src: /src/botan/src/lib/tls/tls13/msg_key_update.cpp:25,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_key_update.cpp:27,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: Botan::TLS::Key_Update::Key_Update
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_key_update.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - size
    - at
    linkageType: ''
    returnType: void
    signature: void Key_Update::Key_Update(const std::vector<uint8_t>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/msg_key_update.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::TLS::Key_Update::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_key_update.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Key_Update::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 15
    functionName: Botan::TLS::Key_Update::Key_Update
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_key_update.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Update::Key_Update(const bool request_peer_update)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_key_update.cpp:18,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_key_update.cpp:19,1
    - Dst: at
      Src: /src/botan/src/lib/tls/tls13/msg_key_update.cpp:25,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_key_update.cpp:27,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: Botan::TLS::Key_Update::Key_Update
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_key_update.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - size
    - at
    linkageType: ''
    returnType: void
    signature: void Key_Update::Key_Update(const std::vector<uint8_t>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/msg_key_update.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::TLS::Key_Update::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_key_update.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Key_Update::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: ~Secret_Logger()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Secret_Logger()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Channel_Impl_13::AggregatedMessages::AggregatedMessages
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AggregatedMessages(const AggregatedMessages&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& operator=(const AggregatedMessages&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AggregatedMessages
    signature: AggregatedMessages & operator=(const AggregatedMessages&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Channel_Impl_13::AggregatedMessages::AggregatedMessages
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AggregatedMessages(AggregatedMessages&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& operator=(AggregatedMessages&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AggregatedMessages
    signature: AggregatedMessages & operator=(AggregatedMessages&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: ~AggregatedMessages()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AggregatedMessages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan::TLS::Channel_Impl_13::AggregatedMessages::contains_messages
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool contains_messages() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Channel_Impl_13::Channel_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13(const Channel_Impl_13& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Channel_Impl_13::Channel_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13(Channel_Impl_13&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: '& operator=(const Channel_Impl_13& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_13
    signature: Channel_Impl_13 & operator=(const Channel_Impl_13& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: '& operator=(Channel_Impl_13&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_13
    signature: Channel_Impl_13 & operator=(Channel_Impl_13&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::is_closed_for_reading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:169,1
    - Dst: Botan::TLS::Channel_Impl_13::is_closed_for_writing
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: Botan::TLS::Channel_Impl_13::is_closed
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_13::is_closed_for_reading
    - Botan::TLS::Channel_Impl_13::is_closed_for_writing
    linkageType: ''
    returnType: bool
    signature: bool is_closed() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: Botan::TLS::Channel_Impl_13::is_closed_for_reading
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_reading() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Channel_Impl_13::is_closed_for_writing
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_writing() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Botan::TLS::Channel_Impl_13::renegotiate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void renegotiate(bool /* unused */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: Botan::TLS::Channel_Impl_13::secure_renegotiation_supported
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool secure_renegotiation_supported() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: Botan::TLS::Channel_Impl_13::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool timeout_check() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: Botan::TLS::Channel_Impl_13::prepend_ccs
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool prepend_ccs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: Botan::TLS::Channel_Impl_13::opportunistically_update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void opportunistically_update_traffic_keys()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::aggregate_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:244,1
    - Dst: generalize_to<Handshake_Message_13_Ref>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::variant<MsgTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Botan::TLS::Channel_Impl_13::send_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_13::aggregate_handshake_messages
    - generalize_to<Handshake_Message_13_Ref>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> send_handshake_message(const std::variant<MsgTs...>&
      message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:249,1
    - Dst: generalize_to<Handshake_Message_13_Ref>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - std::reference_wrapper<MsgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: Botan::TLS::Channel_Impl_13::send_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 1
    functionsReached:
    - generalize_to<Handshake_Message_13_Ref>
    - Botan::TLS::Channel_Impl_13::send_handshake_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> send_handshake_message(std::reference_wrapper<MsgT>
      message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::aggregate_post_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:253,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: Botan::TLS::Channel_Impl_13::send_post_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Channel_Impl_13::aggregate_post_handshake_messages
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> send_post_handshake_message(Post_Handshake_Message_13
      message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AggregatedHandshakeMessages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Channel_Impl_13::aggregate_handshake_messages
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 1
    functionsReached:
    - AggregatedHandshakeMessages
    linkageType: ''
    returnType: AggregatedHandshakeMessages
    signature: AggregatedHandshakeMessages aggregate_handshake_messages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AggregatedPostHandshakeMessages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Botan::TLS::Channel_Impl_13::aggregate_post_handshake_messages
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 1
    functionsReached:
    - AggregatedPostHandshakeMessages
    linkageType: ''
    returnType: AggregatedPostHandshakeMessages
    signature: AggregatedPostHandshakeMessages aggregate_post_handshake_messages()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 266
    functionName: '& callbacks() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Callbacks
    signature: Callbacks & callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: '& session_manager()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_Manager
    signature: Session_Manager & session_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: '& credentials_manager()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Credentials_Manager
    signature: Credentials_Manager & credentials_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: '& rng()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RandomNumberGenerator
    signature: RandomNumberGenerator & rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: '& policy() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Policy
    signature: Policy & policy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: ~Secret_Logger()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Secret_Logger()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Channel_Impl_13::AggregatedMessages::AggregatedMessages
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AggregatedMessages(const AggregatedMessages&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& operator=(const AggregatedMessages&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AggregatedMessages
    signature: AggregatedMessages & operator=(const AggregatedMessages&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Channel_Impl_13::AggregatedMessages::AggregatedMessages
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AggregatedMessages(AggregatedMessages&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& operator=(AggregatedMessages&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AggregatedMessages
    signature: AggregatedMessages & operator=(AggregatedMessages&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: ~AggregatedMessages()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AggregatedMessages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan::TLS::Channel_Impl_13::AggregatedMessages::contains_messages
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool contains_messages() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Channel_Impl_13::Channel_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13(const Channel_Impl_13& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Channel_Impl_13::Channel_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13(Channel_Impl_13&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: '& operator=(const Channel_Impl_13& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_13
    signature: Channel_Impl_13 & operator=(const Channel_Impl_13& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Channel_Impl_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: '& operator=(Channel_Impl_13&& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Channel_Impl_13
    signature: Channel_Impl_13 & operator=(Channel_Impl_13&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::is_closed_for_reading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:169,1
    - Dst: Botan::TLS::Channel_Impl_13::is_closed_for_writing
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: Botan::TLS::Channel_Impl_13::is_closed
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_13::is_closed_for_reading
    - Botan::TLS::Channel_Impl_13::is_closed_for_writing
    linkageType: ''
    returnType: bool
    signature: bool is_closed() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: Botan::TLS::Channel_Impl_13::is_closed_for_reading
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_reading() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Channel_Impl_13::is_closed_for_writing
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_closed_for_writing() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Botan::TLS::Channel_Impl_13::renegotiate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void renegotiate(bool /* unused */) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: Botan::TLS::Channel_Impl_13::secure_renegotiation_supported
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool secure_renegotiation_supported() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: Botan::TLS::Channel_Impl_13::timeout_check
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool timeout_check() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: Botan::TLS::Channel_Impl_13::prepend_ccs
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool prepend_ccs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: Botan::TLS::Channel_Impl_13::opportunistically_update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void opportunistically_update_traffic_keys()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::aggregate_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:244,1
    - Dst: generalize_to<Handshake_Message_13_Ref>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::variant<MsgTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Botan::TLS::Channel_Impl_13::send_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Channel_Impl_13::aggregate_handshake_messages
    - generalize_to<Handshake_Message_13_Ref>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> send_handshake_message(const std::variant<MsgTs...>&
      message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:249,1
    - Dst: generalize_to<Handshake_Message_13_Ref>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - std::reference_wrapper<MsgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: Botan::TLS::Channel_Impl_13::send_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 2
    functionsReached:
    - generalize_to<Handshake_Message_13_Ref>
    - Botan::TLS::Channel_Impl_13::send_handshake_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> send_handshake_message(std::reference_wrapper<MsgT>
      message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::aggregate_post_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:253,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: Botan::TLS::Channel_Impl_13::send_post_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Channel_Impl_13::aggregate_post_handshake_messages
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> send_post_handshake_message(Post_Handshake_Message_13
      message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AggregatedHandshakeMessages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Channel_Impl_13::aggregate_handshake_messages
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 2
    functionsReached:
    - AggregatedHandshakeMessages
    linkageType: ''
    returnType: AggregatedHandshakeMessages
    signature: AggregatedHandshakeMessages aggregate_handshake_messages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AggregatedPostHandshakeMessages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Botan::TLS::Channel_Impl_13::aggregate_post_handshake_messages
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 2
    functionsReached:
    - AggregatedPostHandshakeMessages
    linkageType: ''
    returnType: AggregatedPostHandshakeMessages
    signature: AggregatedPostHandshakeMessages aggregate_post_handshake_messages()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 266
    functionName: '& callbacks() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Callbacks
    signature: Callbacks & callbacks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: '& session_manager()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Session_Manager
    signature: Session_Manager & session_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: '& credentials_manager()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Credentials_Manager
    signature: Credentials_Manager & credentials_manager()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: '& rng()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RandomNumberGenerator
    signature: RandomNumberGenerator & rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: '& policy() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Policy
    signature: Policy & policy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cookie'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::TLS::Cookie::Cookie
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cookie::Cookie(const std::vector<uint8_t>& cookie)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:31,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:35,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:38,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:39,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:43,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Cookie::Cookie
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - get_byte
    - Decoding_Error
    - remaining_bytes
    - get_uint16_t
    - push_back
    linkageType: ''
    returnType: void
    signature: void Cookie::Cookie(TLS_Data_Reader& reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:50,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:52,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:53,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: Botan::TLS::Cookie::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 4
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Cookie::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:65,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:65,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:66,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:66,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:66,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:68,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: Botan::TLS::PSK_Key_Exchange_Modes::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - size
    - static_cast<uint8_t>
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> PSK_Key_Exchange_Modes::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:76,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:79,1
    - Dst: static_cast<PSK_Key_Exchange_Mode>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:81,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:81,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: Botan::TLS::PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - get_byte
    - static_cast<PSK_Key_Exchange_Mode>
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:94,1
    - Dst: encode_into
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:95,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:96,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Certificate_Authorities::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - encode_into
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Authorities::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:106,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:109,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:111,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:112,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:115,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:116,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:118,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:119,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:120,1
    - Dst: back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: Botan::TLS::Certificate_Authorities::Certificate_Authorities
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - get_tls_length_value
    - remaining_bytes
    - get_uint16_t
    - Decoding_Error
    - emplace_back
    - std::vector::data
    - back
    - has_remaining
    - BER_Decoder::decode
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void Certificate_Authorities::Certificate_Authorities(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - acceptable_DNs
    argTypes:
    - std::vector<X509_DN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: Botan::TLS::Certificate_Authorities::Certificate_Authorities
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Certificate_Authorities::Certificate_Authorities(std::vector<X509_DN>
      acceptable_DNs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:129,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:130,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:131,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:131,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:132,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:132,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:133,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:133,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:134,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: Botan::TLS::EarlyDataIndication::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - get_byte<3>
    - std::vector::push_back
    - get_byte<1>
    - get_byte<0>
    - value
    - get_byte<2>
    - has_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EarlyDataIndication::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:144,1
    - Dst: get_uint32_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:149,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - message_type
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: Botan::TLS::EarlyDataIndication::EarlyDataIndication
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 4
    functionsReached:
    - TLS_Exception
    - get_uint32_t
    linkageType: ''
    returnType: void
    signature: "void EarlyDataIndication::EarlyDataIndication(TLS_Data_Reader& reader,\n
      \                                        uint16_t extension_size,\n                                         Handshake_Type
      message_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: Botan::TLS::EarlyDataIndication::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EarlyDataIndication::empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cookie'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::TLS::Cookie::Cookie
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cookie::Cookie(const std::vector<uint8_t>& cookie)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:31,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:35,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:38,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:39,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:43,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Cookie::Cookie
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - get_byte
    - Decoding_Error
    - remaining_bytes
    - get_uint16_t
    - push_back
    linkageType: ''
    returnType: void
    signature: void Cookie::Cookie(TLS_Data_Reader& reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:50,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:52,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:53,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: Botan::TLS::Cookie::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 4
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Cookie::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:65,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:65,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:66,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:66,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:66,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:68,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: Botan::TLS::PSK_Key_Exchange_Modes::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - size
    - static_cast<uint8_t>
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> PSK_Key_Exchange_Modes::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:76,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:79,1
    - Dst: static_cast<PSK_Key_Exchange_Mode>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:81,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:81,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: Botan::TLS::PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - get_byte
    - static_cast<PSK_Key_Exchange_Mode>
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:94,1
    - Dst: encode_into
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:95,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:96,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Certificate_Authorities::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - encode_into
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Authorities::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:106,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:109,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:111,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:112,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:115,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:116,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:118,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:119,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:120,1
    - Dst: back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: Botan::TLS::Certificate_Authorities::Certificate_Authorities
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - get_tls_length_value
    - remaining_bytes
    - get_uint16_t
    - Decoding_Error
    - emplace_back
    - std::vector::data
    - back
    - has_remaining
    - BER_Decoder::decode
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void Certificate_Authorities::Certificate_Authorities(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - acceptable_DNs
    argTypes:
    - std::vector<X509_DN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: Botan::TLS::Certificate_Authorities::Certificate_Authorities
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Certificate_Authorities::Certificate_Authorities(std::vector<X509_DN>
      acceptable_DNs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:129,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:130,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:131,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:131,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:132,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:132,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:133,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:133,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:134,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: Botan::TLS::EarlyDataIndication::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached:
    - get_byte<3>
    - std::vector::push_back
    - get_byte<1>
    - get_byte<0>
    - value
    - get_byte<2>
    - has_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EarlyDataIndication::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:144,1
    - Dst: get_uint32_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:149,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - message_type
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: Botan::TLS::EarlyDataIndication::EarlyDataIndication
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 4
    functionsReached:
    - TLS_Exception
    - get_uint32_t
    linkageType: ''
    returnType: void
    signature: "void EarlyDataIndication::EarlyDataIndication(TLS_Data_Reader& reader,\n
      \                                        uint16_t extension_size,\n                                         Handshake_Type
      message_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: Botan::TLS::EarlyDataIndication::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EarlyDataIndication::empty() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:35,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:43,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:43,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:43,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:44,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:45,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:46,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:53,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:59,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:60,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:71,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:77,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:78,1
    - Dst: Botan::TLS::Server_Hello_13::Server_Hello_13
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 7
    argNames:
    - ' ch'
    - hello_retry_request_allowed
    - ' session_mgr'
    - ' credentials_mgr'
    - ' rng'
    - ' policy'
    - ' cb'
    argTypes:
    - Client_Hello_13
    - bool
    - Session_Manager
    - Credentials_Manager
    - RandomNumberGenerator
    - Policy
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 82
    functionName: Botan::TLS::Server_Hello_13::create
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - choose_key_exchange_group
    - extensions
    - get
    - value_exists
    - TLS_Exception
    - Hello_Retry_Request
    - Botan::TLS::Server_Hello_13::Server_Hello_13
    - BOTAN_ASSERT_NOMSG
    - has
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::variant<Hello_Retry_Request, Server_Hello_13>
    signature: "std::variant<Hello_Retry_Request, Server_Hello_13> Server_Hello_13::create(const
      Client_Hello_13& ch,\n                                                                           bool
      hello_retry_request_allowed,\n                                                                           Session_Manager&
      session_mgr,\n                                                                           Credentials_Manager&
      credentials_mgr,\n                                                                           RandomNumberGenerator&
      rng,\n                                                                           const
      Policy& policy,\n                                                                           Callbacks&
      cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:86,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:87,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:90,1
    - Dst: Server_Hello_12_Shim
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:91,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:91,1
    - Dst: auto::is_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:96,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:97,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:97,1
    - Dst: Botan::TLS::Server_Hello_13::Server_Hello_13
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:100,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:100,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:103,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Server_Hello_13::parse
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 16
    functionsReached:
    - auto::version
    - auto::is_pre_tls_13
    - std::make_unique<Server_Hello_Internal>
    - auto::is_hello_retry_request
    - std::move
    - TLS_Exception
    - Hello_Retry_Request
    - Botan::TLS::Server_Hello_13::Server_Hello_13
    - auto::to_string
    - Server_Hello_12_Shim
    linkageType: ''
    returnType: std::variant<Hello_Retry_Request, Server_Hello_13, Server_Hello_12_Shim>
    signature: "std::variant<Hello_Retry_Request, Server_Hello_13, Server_Hello_12_Shim>
      Server_Hello_13::parse(\n   const std::vector<uint8_t>& buf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:110,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:110,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:128,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:129,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:130,1
    - Dst: compression_method
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:135,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:136,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:141,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:142,1
    - Dst: Botan::TLS::Server_Hello_13::selected_version
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:149,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 152
    functionName: Botan::TLS::Server_Hello_13::basic_validation
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - version
    - TLS_Exception
    - compression_method
    - Botan::TLS::Server_Hello_13::selected_version
    - BOTAN_ASSERT_NOMSG
    - legacy_version
    linkageType: ''
    returnType: void
    signature: void Server_Hello_13::basic_validation() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:156,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:157,1
    - Dst: is_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:157,1
    - Dst: Botan::TLS::Server_Hello_13::basic_validation
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:158,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:160,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:179,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:180,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:187,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:187,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 190
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 2
    functionsReached:
    - extensions
    - Botan::TLS::Server_Hello_13::basic_validation
    - std::move
    - contains_other_than
    - is_hello_retry_request
    - TLS_Exception
    - BOTAN_ASSERT_NOMSG
    - has
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_13::Server_Hello_13(std::unique_ptr<Server_Hello_Internal>
      data,\n                                 Server_Hello_13::Server_Hello_Tag /*tag*/)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:194,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:195,1
    - Dst: is_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:195,1
    - Dst: Botan::TLS::Server_Hello_13::basic_validation
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:196,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:198,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:213,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:214,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:221,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:221,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 224
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 2
    functionsReached:
    - extensions
    - Botan::TLS::Server_Hello_13::basic_validation
    - std::move
    - contains_other_than
    - is_hello_retry_request
    - TLS_Exception
    - BOTAN_ASSERT_NOMSG
    - has
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_13::Server_Hello_13(std::unique_ptr<Server_Hello_Internal>
      data,\n                                 Server_Hello_13::Hello_Retry_Request_Tag
      /*tag*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 2
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_13::Server_Hello_13(std::unique_ptr<Server_Hello_Internal>
      data,\n                                 Hello_Retry_Request_Creation_Tag /*tag*/)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:233,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:235,1
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:237,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:238,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:263,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' ch'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 273
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite_list
    - std::swap
    - server_uses_own_ciphersuite_preferences
    - value_exists
    - TLS_Exception
    - ciphersuites
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t choose_ciphersuite(const Client_Hello_13& ch, const Policy&
      policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:233,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:235,1
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:237,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:238,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:263,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' ch'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 273
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite_list
    - std::swap
    - server_uses_own_ciphersuite_preferences
    - value_exists
    - TLS_Exception
    - ciphersuites
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t choose_ciphersuite(const Client_Hello_13& ch, const Policy&
      policy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:283,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:285,1
    - Dst: make_server_hello_random
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:286,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:287,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:298,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:298,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:300,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:301,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:301,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:302,1
    - Dst: Botan::TLS::Key_Share::create_as_encapsulation
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:302,1
    - Dst: std::optional<Named_Group>::value
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:303,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:303,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:306,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:308,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:309,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:309,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:310,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:317,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:318,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:322,1
    - Dst: auto*::modes
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:322,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:323,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:324,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:324,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:328,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:328,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:333,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:333,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 7
    argNames:
    - ' ch'
    - key_exchange_group
    - ' session_mgr'
    - ' credentials_mgr'
    - ' rng'
    - ' cb'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - std::optional<Named_Group>
    - Session_Manager
    - Credentials_Manager
    - RandomNumberGenerator
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 334
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 2
    functionsReached:
    - auto*::modes
    - std::make_unique<Server_Hello_Internal>
    - make_server_hello_random
    - type
    - has
    - std::move
    - get
    - value_exists
    - sni_hostname
    - tls_modify_extensions
    - BOTAN_ASSERT_NOMSG
    - std::optional<Named_Group>::has_value
    - ciphersuite
    - extensions
    - choose_ciphersuite
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Ciphersuite::by_id
    - std::optional<Named_Group>::value
    - Supported_Versions::Supported_Versions
    - Botan::TLS::Key_Share::create_as_encapsulation
    - auto::value
    - session_id
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_13::Server_Hello_13(const Client_Hello_13& ch,\n
      \                                std::optional<Named_Group> key_exchange_group,\n
      \                                Session_Manager& session_mgr,\n                                 Credentials_Manager&
      credentials_mgr,\n                                 RandomNumberGenerator& rng,\n
      \                                Callbacks& cb,\n                                 const
      Policy& policy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:337,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: Botan::TLS::Server_Hello_13::random_signals_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - random
    - load_be
    linkageType: ''
    returnType: std::optional<Protocol_Version>
    signature: std::optional<Protocol_Version> Server_Hello_13::random_signals_downgrade()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:349,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:350,1
    - Dst: auto*::versions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:351,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:352,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:352,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: Botan::TLS::Server_Hello_13::selected_version
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 1
    functionsReached:
    - extensions
    - front
    - auto*::versions
    - size
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Server_Hello_13::selected_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: Botan::TLS::Hello_Retry_Request::Hello_Retry_Request
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Hello_Retry_Request::Hello_Retry_Request(std::unique_ptr<Server_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:363,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:365,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:366,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:366,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:366,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:367,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:377,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:377,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:378,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:378,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:380,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:380,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:380,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:394,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:394,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:396,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:396,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:399,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:399,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ' ch'
    - selected_group
    - ' policy'
    - ' cb'
    argTypes:
    - Client_Hello_13
    - Named_Group
    - Policy
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 400
    functionName: Botan::TLS::Hello_Retry_Request::Hello_Retry_Request
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Server_Hello_Internal>
    - extensions
    - std::vector<uint8_t>
    - value_exists
    - begin
    - choose_ciphersuite
    - tls_modify_extensions
    - type
    - Supported_Versions::Supported_Versions
    - Key_Share::Key_Share
    - session_id
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: "void Hello_Retry_Request::Hello_Retry_Request(const Client_Hello_13&
      ch,\n                                         Named_Group selected_group,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:35,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:43,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:43,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:43,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:44,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:45,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:46,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:53,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:59,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:60,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:71,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:77,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:78,1
    - Dst: Botan::TLS::Server_Hello_13::Server_Hello_13
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 7
    argNames:
    - ' ch'
    - hello_retry_request_allowed
    - ' session_mgr'
    - ' credentials_mgr'
    - ' rng'
    - ' policy'
    - ' cb'
    argTypes:
    - Client_Hello_13
    - bool
    - Session_Manager
    - Credentials_Manager
    - RandomNumberGenerator
    - Policy
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 82
    functionName: Botan::TLS::Server_Hello_13::create
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - choose_key_exchange_group
    - extensions
    - get
    - value_exists
    - TLS_Exception
    - Hello_Retry_Request
    - Botan::TLS::Server_Hello_13::Server_Hello_13
    - BOTAN_ASSERT_NOMSG
    - has
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::variant<Hello_Retry_Request, Server_Hello_13>
    signature: "std::variant<Hello_Retry_Request, Server_Hello_13> Server_Hello_13::create(const
      Client_Hello_13& ch,\n                                                                           bool
      hello_retry_request_allowed,\n                                                                           Session_Manager&
      session_mgr,\n                                                                           Credentials_Manager&
      credentials_mgr,\n                                                                           RandomNumberGenerator&
      rng,\n                                                                           const
      Policy& policy,\n                                                                           Callbacks&
      cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:86,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:87,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:90,1
    - Dst: Server_Hello_12_Shim
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:91,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:91,1
    - Dst: auto::is_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:96,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:97,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:97,1
    - Dst: Botan::TLS::Server_Hello_13::Server_Hello_13
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:100,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:100,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:103,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 104
    functionName: Botan::TLS::Server_Hello_13::parse
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 16
    functionsReached:
    - auto::version
    - auto::is_pre_tls_13
    - std::make_unique<Server_Hello_Internal>
    - auto::is_hello_retry_request
    - std::move
    - TLS_Exception
    - Hello_Retry_Request
    - Botan::TLS::Server_Hello_13::Server_Hello_13
    - auto::to_string
    - Server_Hello_12_Shim
    linkageType: ''
    returnType: std::variant<Hello_Retry_Request, Server_Hello_13, Server_Hello_12_Shim>
    signature: "std::variant<Hello_Retry_Request, Server_Hello_13, Server_Hello_12_Shim>
      Server_Hello_13::parse(\n   const std::vector<uint8_t>& buf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:110,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:110,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:128,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:129,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:130,1
    - Dst: compression_method
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:135,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:136,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:141,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:142,1
    - Dst: Botan::TLS::Server_Hello_13::selected_version
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:149,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 152
    functionName: Botan::TLS::Server_Hello_13::basic_validation
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 2
    functionsReached:
    - extensions
    - version
    - TLS_Exception
    - compression_method
    - Botan::TLS::Server_Hello_13::selected_version
    - BOTAN_ASSERT_NOMSG
    - legacy_version
    linkageType: ''
    returnType: void
    signature: void Server_Hello_13::basic_validation() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:156,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:157,1
    - Dst: is_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:157,1
    - Dst: Botan::TLS::Server_Hello_13::basic_validation
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:158,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:160,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:179,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:180,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:187,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:187,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 190
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 4
    functionsReached:
    - extensions
    - Botan::TLS::Server_Hello_13::basic_validation
    - std::move
    - contains_other_than
    - is_hello_retry_request
    - TLS_Exception
    - BOTAN_ASSERT_NOMSG
    - has
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_13::Server_Hello_13(std::unique_ptr<Server_Hello_Internal>
      data,\n                                 Server_Hello_13::Server_Hello_Tag /*tag*/)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:194,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:195,1
    - Dst: is_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:195,1
    - Dst: Botan::TLS::Server_Hello_13::basic_validation
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:196,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:198,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:213,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:214,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:221,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:221,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 224
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 4
    functionsReached:
    - extensions
    - Botan::TLS::Server_Hello_13::basic_validation
    - std::move
    - contains_other_than
    - is_hello_retry_request
    - TLS_Exception
    - BOTAN_ASSERT_NOMSG
    - has
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_13::Server_Hello_13(std::unique_ptr<Server_Hello_Internal>
      data,\n                                 Server_Hello_13::Hello_Retry_Request_Tag
      /*tag*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 4
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_13::Server_Hello_13(std::unique_ptr<Server_Hello_Internal>
      data,\n                                 Hello_Retry_Request_Creation_Tag /*tag*/)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:233,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:235,1
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:237,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:238,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:263,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' ch'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 273
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite_list
    - std::swap
    - server_uses_own_ciphersuite_preferences
    - value_exists
    - TLS_Exception
    - ciphersuites
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t choose_ciphersuite(const Client_Hello_13& ch, const Policy&
      policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:233,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:235,1
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:237,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:238,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:263,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' ch'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 273
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite_list
    - std::swap
    - server_uses_own_ciphersuite_preferences
    - value_exists
    - TLS_Exception
    - ciphersuites
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t choose_ciphersuite(const Client_Hello_13& ch, const Policy&
      policy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:283,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:285,1
    - Dst: make_server_hello_random
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:286,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:287,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:298,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:298,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:300,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:301,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:301,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:302,1
    - Dst: Botan::TLS::Key_Share::create_as_encapsulation
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:302,1
    - Dst: std::optional<Named_Group>::value
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:303,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:303,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:306,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:308,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:309,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:309,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:310,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:317,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:318,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:322,1
    - Dst: auto*::modes
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:322,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:323,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:324,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:324,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:328,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:328,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:333,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:333,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 7
    argNames:
    - ' ch'
    - key_exchange_group
    - ' session_mgr'
    - ' credentials_mgr'
    - ' rng'
    - ' cb'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - std::optional<Named_Group>
    - Session_Manager
    - Credentials_Manager
    - RandomNumberGenerator
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 334
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 4
    functionsReached:
    - auto*::modes
    - std::make_unique<Server_Hello_Internal>
    - make_server_hello_random
    - type
    - has
    - std::move
    - get
    - value_exists
    - sni_hostname
    - tls_modify_extensions
    - BOTAN_ASSERT_NOMSG
    - std::optional<Named_Group>::has_value
    - ciphersuite
    - extensions
    - choose_ciphersuite
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Ciphersuite::by_id
    - std::optional<Named_Group>::value
    - Supported_Versions::Supported_Versions
    - Botan::TLS::Key_Share::create_as_encapsulation
    - auto::value
    - session_id
    linkageType: ''
    returnType: void
    signature: "void Server_Hello_13::Server_Hello_13(const Client_Hello_13& ch,\n
      \                                std::optional<Named_Group> key_exchange_group,\n
      \                                Session_Manager& session_mgr,\n                                 Credentials_Manager&
      credentials_mgr,\n                                 RandomNumberGenerator& rng,\n
      \                                Callbacks& cb,\n                                 const
      Policy& policy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_be
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:337,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: Botan::TLS::Server_Hello_13::random_signals_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - random
    - load_be
    linkageType: ''
    returnType: std::optional<Protocol_Version>
    signature: std::optional<Protocol_Version> Server_Hello_13::random_signals_downgrade()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:349,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:350,1
    - Dst: auto*::versions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:351,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:352,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:352,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: Botan::TLS::Server_Hello_13::selected_version
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 2
    functionsReached:
    - extensions
    - front
    - auto*::versions
    - size
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version Server_Hello_13::selected_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: Botan::TLS::Hello_Retry_Request::Hello_Retry_Request
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Hello_Retry_Request::Hello_Retry_Request(std::unique_ptr<Server_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:363,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:365,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:366,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:366,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:366,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:367,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:377,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:377,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:378,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:378,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:380,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:380,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:380,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:394,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:394,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:396,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:396,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:399,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:399,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ' ch'
    - selected_group
    - ' policy'
    - ' cb'
    argTypes:
    - Client_Hello_13
    - Named_Group
    - Policy
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 400
    functionName: Botan::TLS::Hello_Retry_Request::Hello_Retry_Request
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_server_hello_13.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Server_Hello_Internal>
    - extensions
    - std::vector<uint8_t>
    - value_exists
    - begin
    - choose_ciphersuite
    - tls_modify_extensions
    - type
    - Supported_Versions::Supported_Versions
    - Key_Share::Key_Share
    - session_id
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: "void Hello_Retry_Request::Hello_Retry_Request(const Client_Hello_13&
      ch,\n                                         Named_Group selected_group,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:18,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:18,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:19,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:22,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 24
    functionName: '& Handshake_State_13_Base::store(Client_Hello_13 client_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - validate_updates
    - std::move
    - has_hello_retry_request
    - value
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Client_Hello_13
    signature: Client_Hello_13 & Handshake_State_13_Base::store(Client_Hello_13 client_hello,
      const bool /*from_peer*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:27,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_12_Shim
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: '& Handshake_State_13_Base::store(Client_Hello_12_Shim client_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Client_Hello_12_Shim
    signature: Client_Hello_12_Shim & Handshake_State_13_Base::store(Client_Hello_12_Shim
      client_hello, const bool /*from_peer*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:32,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: '& Handshake_State_13_Base::store(Server_Hello_13 server_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Server_Hello_13
    signature: Server_Hello_13 & Handshake_State_13_Base::store(Server_Hello_13 server_hello,
      const bool /*from_peer*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:37,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_12_Shim
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: '& Handshake_State_13_Base::store(Server_Hello_12_Shim server_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Server_Hello_12_Shim
    signature: Server_Hello_12_Shim & Handshake_State_13_Base::store(Server_Hello_12_Shim
      server_hello, const bool /*from_peer*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:42,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hello_retry_request
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: '& Handshake_State_13_Base::store(Hello_Retry_Request hello_retry_request,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Hello_Retry_Request
    signature: Hello_Retry_Request & Handshake_State_13_Base::store(Hello_Retry_Request
      hello_retry_request, const bool /*from_peer*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:48,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encrypted_extensions
    argTypes:
    - Encrypted_Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: "& Handshake_State_13_Base::store(Encrypted_Extensions encrypted_extensions,\n
      \                                                    const bool /*from_peer*/)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Encrypted_Extensions
    signature: "Encrypted_Extensions & Handshake_State_13_Base::store(Encrypted_Extensions
      encrypted_extensions,\n                                                     const
      bool /*from_peer*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:54,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - certificate_request
    argTypes:
    - Certificate_Request_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: "& Handshake_State_13_Base::store(Certificate_Request_13 certificate_request,\n
      \                                                      const bool /*from_peer*/)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Certificate_Request_13
    signature: "Certificate_Request_13 & Handshake_State_13_Base::store(Certificate_Request_13
      certificate_request,\n                                                       const
      bool /*from_peer*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:60,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - certificate
    - from_peer
    argTypes:
    - Certificate_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: '& Handshake_State_13_Base::store(Certificate_13 certificate, const
      bool from_peer)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Certificate_13
    signature: Certificate_13 & Handshake_State_13_Base::store(Certificate_13 certificate,
      const bool from_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:67,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - certificate_verify
    - from_peer
    argTypes:
    - Certificate_Verify_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: '& Handshake_State_13_Base::store(Certificate_Verify_13 certificate_verify,
      const bool from_peer)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Certificate_Verify_13
    signature: Certificate_Verify_13 & Handshake_State_13_Base::store(Certificate_Verify_13
      certificate_verify, const bool from_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:73,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - finished
    - from_peer
    argTypes:
    - Finished_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: '& Handshake_State_13_Base::store(Finished_13 finished, const bool
      from_peer)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Finished_13
    signature: Finished_13 & Handshake_State_13_Base::store(Finished_13 finished,
      const bool from_peer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:18,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:18,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:19,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:22,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 24
    functionName: '& Handshake_State_13_Base::store(Client_Hello_13 client_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - validate_updates
    - std::move
    - has_hello_retry_request
    - value
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Client_Hello_13
    signature: Client_Hello_13 & Handshake_State_13_Base::store(Client_Hello_13 client_hello,
      const bool /*from_peer*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:27,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_12_Shim
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: '& Handshake_State_13_Base::store(Client_Hello_12_Shim client_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Client_Hello_12_Shim
    signature: Client_Hello_12_Shim & Handshake_State_13_Base::store(Client_Hello_12_Shim
      client_hello, const bool /*from_peer*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:32,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: '& Handshake_State_13_Base::store(Server_Hello_13 server_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Server_Hello_13
    signature: Server_Hello_13 & Handshake_State_13_Base::store(Server_Hello_13 server_hello,
      const bool /*from_peer*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:37,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_12_Shim
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: '& Handshake_State_13_Base::store(Server_Hello_12_Shim server_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Server_Hello_12_Shim
    signature: Server_Hello_12_Shim & Handshake_State_13_Base::store(Server_Hello_12_Shim
      server_hello, const bool /*from_peer*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:42,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hello_retry_request
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: '& Handshake_State_13_Base::store(Hello_Retry_Request hello_retry_request,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Hello_Retry_Request
    signature: Hello_Retry_Request & Handshake_State_13_Base::store(Hello_Retry_Request
      hello_retry_request, const bool /*from_peer*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:48,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encrypted_extensions
    argTypes:
    - Encrypted_Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: "& Handshake_State_13_Base::store(Encrypted_Extensions encrypted_extensions,\n
      \                                                    const bool /*from_peer*/)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Encrypted_Extensions
    signature: "Encrypted_Extensions & Handshake_State_13_Base::store(Encrypted_Extensions
      encrypted_extensions,\n                                                     const
      bool /*from_peer*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:54,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - certificate_request
    argTypes:
    - Certificate_Request_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: "& Handshake_State_13_Base::store(Certificate_Request_13 certificate_request,\n
      \                                                      const bool /*from_peer*/)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Certificate_Request_13
    signature: "Certificate_Request_13 & Handshake_State_13_Base::store(Certificate_Request_13
      certificate_request,\n                                                       const
      bool /*from_peer*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:60,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - certificate
    - from_peer
    argTypes:
    - Certificate_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: '& Handshake_State_13_Base::store(Certificate_13 certificate, const
      bool from_peer)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Certificate_13
    signature: Certificate_13 & Handshake_State_13_Base::store(Certificate_13 certificate,
      const bool from_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:67,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - certificate_verify
    - from_peer
    argTypes:
    - Certificate_Verify_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: '& Handshake_State_13_Base::store(Certificate_Verify_13 certificate_verify,
      const bool from_peer)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Certificate_Verify_13
    signature: Certificate_Verify_13 & Handshake_State_13_Base::store(Certificate_Verify_13
      certificate_verify, const bool from_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:73,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - finished
    - from_peer
    argTypes:
    - Finished_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: '& Handshake_State_13_Base::store(Finished_13 finished, const bool
      from_peer)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value
    linkageType: ''
    returnType: Finished_13
    signature: Finished_13 & Handshake_State_13_Base::store(Finished_13 finished,
      const bool from_peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - record_type
    - frgmnt
    argTypes:
    - Record_Type
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: Botan::TLS::Record
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Record(Record_Type record_type, secure_vector<uint8_t> frgmnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 117
    functionName: Botan::TLS::Record_Layer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h
    functionUses: 8
    functionsReached:
    - zap
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Record_Layer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan::TLS::clear_read_buffer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h
    functionUses: 0
    functionsReached:
    - zap
    linkageType: ''
    returnType: void
    signature: void clear_read_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::TLS::disable_sending_compat_mode
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_sending_compat_mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::TLS::disable_receiving_compat_mode
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_receiving_compat_mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - record_type
    - frgmnt
    argTypes:
    - Record_Type
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: Botan::TLS::Record
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Record(Record_Type record_type, secure_vector<uint8_t> frgmnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 117
    functionName: Botan::TLS::Record_Layer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h
    functionUses: 8
    functionsReached:
    - zap
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Record_Layer
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan::TLS::clear_read_buffer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h
    functionUses: 0
    functionsReached:
    - zap
    linkageType: ''
    returnType: void
    signature: void clear_read_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::TLS::disable_sending_compat_mode
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_sending_compat_mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::TLS::disable_receiving_compat_mode
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_receiving_compat_mode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:25,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:25,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::string::cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::string::cend
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:31,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - side
    - ' hash'
    argTypes:
    - Connection_Side
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: Botan::TLS::message
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - cbegin
    - std::vector::push_back
    - std::vector::end
    - std::string::cend
    - std::vector::reserve
    - size
    - std::string::cbegin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> message(Connection_Side side, const Transcript_Hash&
      hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: is_suitable_for
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - ' key'
    - ' allowed_schemes'
    - ' peer_allowed_schemes'
    argTypes:
    - Private_Key
    - std::vector<Signature_Scheme>
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: Botan::TLS::choose_signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - is_available
    - is_suitable_for
    - value_exists
    linkageType: ''
    returnType: Signature_Scheme
    signature: "Signature_Scheme choose_signature_scheme(const Private_Key& key,\n
      \                                        const std::vector<Signature_Scheme>&
      allowed_schemes,\n                                         const std::vector<Signature_Scheme>&
      peer_allowed_schemes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:25,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:25,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::string::cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::string::cend
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:31,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - side
    - ' hash'
    argTypes:
    - Connection_Side
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: Botan::TLS::message
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - cbegin
    - std::vector::push_back
    - std::vector::end
    - std::string::cend
    - std::vector::reserve
    - size
    - std::string::cbegin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> message(Connection_Side side, const Transcript_Hash&
      hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: is_suitable_for
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - ' key'
    - ' allowed_schemes'
    - ' peer_allowed_schemes'
    argTypes:
    - Private_Key
    - std::vector<Signature_Scheme>
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: Botan::TLS::choose_signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - is_available
    - is_suitable_for
    - value_exists
    linkageType: ''
    returnType: Signature_Scheme
    signature: "Signature_Scheme choose_signature_scheme(const Private_Key& key,\n
      \                                        const std::vector<Signature_Scheme>&
      allowed_schemes,\n                                         const std::vector<Signature_Scheme>&
      peer_allowed_schemes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:64,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:64,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:67,1
    - Dst: has_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:69,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:70,1
    - Dst: leaf
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:70,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:71,1
    - Dst: public_key
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:71,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:73,1
    - Dst: choose_signature_scheme
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:76,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:76,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:77,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:77,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:78,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:78,1
    - Dst: tls_sign_message
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:80,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:81,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:81,1
    - Dst: message
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 9
    argNames:
    - ' certificate_msg'
    - ' peer_allowed_schemes'
    - hostname
    - ' hash'
    - whoami
    - ' creds_mgr'
    - ' policy'
    - ' callbacks'
    - ' rng'
    argTypes:
    - Certificate_13
    - std::vector<Signature_Scheme>
    - std::string_view
    - Transcript_Hash
    - Connection_Side
    - Credentials_Manager
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 82
    functionName: Botan::TLS::Certificate_Verify_13::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - is_compatible_with
    - has_certificate_chain
    - leaf
    - padding_string
    - tls_sign_message
    - TLS_Exception
    - message
    - allowed_signature_schemes
    - is_available
    - private_key_for
    - public_key
    - format
    - BOTAN_ASSERT_NOMSG
    - empty
    - choose_signature_scheme
    linkageType: ''
    returnType: void
    signature: "void Certificate_Verify_13::Certificate_Verify_13(const Certificate_13&
      certificate_msg,\n                                             const std::vector<Signature_Scheme>&
      peer_allowed_schemes,\n                                             std::string_view
      hostname,\n                                             const Transcript_Hash&
      hash,\n                                             Connection_Side whoami,\n
      \                                            Credentials_Manager& creds_mgr,\n
      \                                            const Policy& policy,\n                                             Callbacks&
      callbacks,\n                                             RandomNumberGenerator&
      rng)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:86,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:87,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:90,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' buf'
    - side
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: Botan::TLS::Certificate_Verify_13::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - is_available
    - is_compatible_with
    linkageType: ''
    returnType: void
    signature: void Certificate_Verify_13::Certificate_Verify_13(const std::vector<uint8_t>&
      buf, const Connection_Side side)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:101,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:101,1
    - Dst: key_algorithm_identifier
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:106,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:106,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:107,1
    - Dst: tls_verify_message
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:110,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:111,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:111,1
    - Dst: message
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:111,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' public_key'
    - ' callbacks'
    - ' transcript_hash'
    argTypes:
    - Public_Key
    - Callbacks
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 119
    functionName: Botan::TLS::Certificate_Verify_13::verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - algorithm_identifier
    - BOTAN_UNUSED
    - tls_verify_message
    - padding_string
    - TLS_Exception
    - message
    - format
    - is_available
    - BOTAN_ASSERT_NOMSG
    - key_algorithm_identifier
    linkageType: ''
    returnType: bool
    signature: "bool Certificate_Verify_13::verify(const Public_Key& public_key,\n
      \                                  Callbacks& callbacks,\n                                   const
      Transcript_Hash& transcript_hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:25,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:25,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::string::cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::string::cend
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:31,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - side
    - ' hash'
    argTypes:
    - Connection_Side
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: Botan::TLS::message
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - cbegin
    - std::vector::push_back
    - std::vector::end
    - std::string::cend
    - std::vector::reserve
    - size
    - std::string::cbegin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> message(Connection_Side side, const Transcript_Hash&
      hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: is_suitable_for
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - ' key'
    - ' allowed_schemes'
    - ' peer_allowed_schemes'
    argTypes:
    - Private_Key
    - std::vector<Signature_Scheme>
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: Botan::TLS::choose_signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - is_available
    - is_suitable_for
    - value_exists
    linkageType: ''
    returnType: Signature_Scheme
    signature: "Signature_Scheme choose_signature_scheme(const Private_Key& key,\n
      \                                        const std::vector<Signature_Scheme>&
      allowed_schemes,\n                                         const std::vector<Signature_Scheme>&
      peer_allowed_schemes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:25,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:25,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::string::cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::string::cend
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:30,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:31,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - side
    - ' hash'
    argTypes:
    - Connection_Side
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: Botan::TLS::message
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - cbegin
    - std::vector::push_back
    - std::vector::end
    - std::string::cend
    - std::vector::reserve
    - size
    - std::string::cbegin
    - std::vector::insert
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> message(Connection_Side side, const Transcript_Hash&
      hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: is_suitable_for
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:41,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - ' key'
    - ' allowed_schemes'
    - ' peer_allowed_schemes'
    argTypes:
    - Private_Key
    - std::vector<Signature_Scheme>
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: Botan::TLS::choose_signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - is_available
    - is_suitable_for
    - value_exists
    linkageType: ''
    returnType: Signature_Scheme
    signature: "Signature_Scheme choose_signature_scheme(const Private_Key& key,\n
      \                                        const std::vector<Signature_Scheme>&
      allowed_schemes,\n                                         const std::vector<Signature_Scheme>&
      peer_allowed_schemes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:64,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:64,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:67,1
    - Dst: has_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:69,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:70,1
    - Dst: leaf
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:70,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:71,1
    - Dst: public_key
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:71,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:73,1
    - Dst: choose_signature_scheme
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:76,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:76,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:77,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:77,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:78,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:78,1
    - Dst: tls_sign_message
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:80,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:81,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:81,1
    - Dst: message
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 9
    argNames:
    - ' certificate_msg'
    - ' peer_allowed_schemes'
    - hostname
    - ' hash'
    - whoami
    - ' creds_mgr'
    - ' policy'
    - ' callbacks'
    - ' rng'
    argTypes:
    - Certificate_13
    - std::vector<Signature_Scheme>
    - std::string_view
    - Transcript_Hash
    - Connection_Side
    - Credentials_Manager
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 82
    functionName: Botan::TLS::Certificate_Verify_13::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - is_compatible_with
    - has_certificate_chain
    - leaf
    - padding_string
    - tls_sign_message
    - TLS_Exception
    - message
    - allowed_signature_schemes
    - is_available
    - private_key_for
    - public_key
    - format
    - BOTAN_ASSERT_NOMSG
    - empty
    - choose_signature_scheme
    linkageType: ''
    returnType: void
    signature: "void Certificate_Verify_13::Certificate_Verify_13(const Certificate_13&
      certificate_msg,\n                                             const std::vector<Signature_Scheme>&
      peer_allowed_schemes,\n                                             std::string_view
      hostname,\n                                             const Transcript_Hash&
      hash,\n                                             Connection_Side whoami,\n
      \                                            Credentials_Manager& creds_mgr,\n
      \                                            const Policy& policy,\n                                             Callbacks&
      callbacks,\n                                             RandomNumberGenerator&
      rng)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:86,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:87,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:90,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' buf'
    - side
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: Botan::TLS::Certificate_Verify_13::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - is_available
    - is_compatible_with
    linkageType: ''
    returnType: void
    signature: void Certificate_Verify_13::Certificate_Verify_13(const std::vector<uint8_t>&
      buf, const Connection_Side side)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:101,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:101,1
    - Dst: key_algorithm_identifier
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:106,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:106,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:107,1
    - Dst: tls_verify_message
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:110,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:111,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:111,1
    - Dst: message
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:111,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' public_key'
    - ' callbacks'
    - ' transcript_hash'
    argTypes:
    - Public_Key
    - Callbacks
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 119
    functionName: Botan::TLS::Certificate_Verify_13::verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_cert_verify_13.cpp
    functionUses: 0
    functionsReached:
    - algorithm_identifier
    - BOTAN_UNUSED
    - tls_verify_message
    - padding_string
    - TLS_Exception
    - message
    - format
    - is_available
    - BOTAN_ASSERT_NOMSG
    - key_algorithm_identifier
    linkageType: ''
    returnType: bool
    signature: "bool Certificate_Verify_13::verify(const Public_Key& public_key,\n
      \                                  Callbacks& callbacks,\n                                   const
      Transcript_Hash& transcript_hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - ticket_age_add
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: Botan::TLS::obfuscate_ticket_age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t obfuscate_ticket_age(const uint64_t in, const uint64_t ticket_age_add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    - Dst: std::string_view::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    - Dst: std::string_view::cend
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::TLS::to_byte_vector
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::string_view::cend
    - std::string_view::cbegin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> to_byte_vector(std::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - ticket_age_add
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: Botan::TLS::obfuscate_ticket_age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t obfuscate_ticket_age(const uint64_t in, const uint64_t ticket_age_add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    - Dst: std::string_view::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    - Dst: std::string_view::cend
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::TLS::to_byte_vector
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::string_view::cend
    - std::string_view::cbegin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> to_byte_vector(std::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:35,1
    - Dst: Opaque_Session_Handle::get
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:35,1
    - Dst: obfuscate_ticket_age
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:35,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - identity
    - age
    - ticket_age_add
    argTypes:
    - Opaque_Session_Handle
    - std::chrono::milliseconds
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: Botan::TLS::PskIdentity::PskIdentity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - Opaque_Session_Handle::get
    - std::chrono::milliseconds::count
    - obfuscate_ticket_age
    linkageType: ''
    returnType: void
    signature: "void PskIdentity::PskIdentity(Opaque_Session_Handle identity,\n                         const
      std::chrono::milliseconds age,\n                         const uint32_t ticket_age_add)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_byte_vector
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:38,1
    - Dst: PresharedKeyID::get
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - identity
    argTypes:
    - PresharedKeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Botan::TLS::PskIdentity::PskIdentity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 4
    functionsReached:
    - PresharedKeyID::get
    - to_byte_vector
    linkageType: ''
    returnType: void
    signature: void PskIdentity::PskIdentity(PresharedKeyID identity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:46,1
    - Dst: obfuscate_ticket_age
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticket_age_add
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::TLS::PskIdentity::age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - obfuscate_ticket_age
    - Botan_CLI::Timer::milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds PskIdentity::age(const uint32_t ticket_age_add)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes_to_string
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::TLS::PskIdentity::identity_as_string
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - bytes_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string PskIdentity::identity_as_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - ticket_age_add
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: Botan::TLS::obfuscate_ticket_age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t obfuscate_ticket_age(const uint64_t in, const uint64_t ticket_age_add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    - Dst: std::string_view::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    - Dst: std::string_view::cend
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::TLS::to_byte_vector
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::string_view::cend
    - std::string_view::cbegin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> to_byte_vector(std::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - ticket_age_add
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: Botan::TLS::obfuscate_ticket_age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t obfuscate_ticket_age(const uint64_t in, const uint64_t ticket_age_add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    - Dst: std::string_view::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    - Dst: std::string_view::cend
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::TLS::to_byte_vector
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - std::string_view::cend
    - std::string_view::cbegin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> to_byte_vector(std::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:35,1
    - Dst: Opaque_Session_Handle::get
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:35,1
    - Dst: obfuscate_ticket_age
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:35,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - identity
    - age
    - ticket_age_add
    argTypes:
    - Opaque_Session_Handle
    - std::chrono::milliseconds
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: Botan::TLS::PskIdentity::PskIdentity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - Opaque_Session_Handle::get
    - std::chrono::milliseconds::count
    - obfuscate_ticket_age
    linkageType: ''
    returnType: void
    signature: "void PskIdentity::PskIdentity(Opaque_Session_Handle identity,\n                         const
      std::chrono::milliseconds age,\n                         const uint32_t ticket_age_add)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_byte_vector
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:38,1
    - Dst: PresharedKeyID::get
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - identity
    argTypes:
    - PresharedKeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Botan::TLS::PskIdentity::PskIdentity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 4
    functionsReached:
    - PresharedKeyID::get
    - to_byte_vector
    linkageType: ''
    returnType: void
    signature: void PskIdentity::PskIdentity(PresharedKeyID identity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:46,1
    - Dst: obfuscate_ticket_age
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticket_age_add
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::TLS::PskIdentity::age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - obfuscate_ticket_age
    - Botan_CLI::Timer::milliseconds
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds PskIdentity::age(const uint32_t ticket_age_add)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes_to_string
      Src: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::TLS::PskIdentity::identity_as_string
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp
    functionUses: 0
    functionsReached:
    - bytes_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string PskIdentity::identity_as_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_State*::finished_mac
      Src: /src/botan/src/lib/tls/tls13/msg_finished_13.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cipher_state
    - ' transcript_hash'
    argTypes:
    - Cipher_State*
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::TLS::Finished_13::Finished_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_finished_13.cpp
    functionUses: 0
    functionsReached:
    - Cipher_State*::finished_mac
    linkageType: ''
    returnType: void
    signature: void Finished_13::Finished_13(Cipher_State* cipher_state, const Transcript_Hash&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_State*::verify_peer_finished_mac
      Src: /src/botan/src/lib/tls/tls13/msg_finished_13.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cipher_state
    - ' transcript_hash'
    argTypes:
    - Cipher_State*
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::TLS::Finished_13::verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_finished_13.cpp
    functionUses: 0
    functionsReached:
    - Cipher_State*::verify_peer_finished_mac
    linkageType: ''
    returnType: bool
    signature: bool Finished_13::verify(Cipher_State* cipher_state, const Transcript_Hash&
      transcript_hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_State*::finished_mac
      Src: /src/botan/src/lib/tls/tls13/msg_finished_13.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cipher_state
    - ' transcript_hash'
    argTypes:
    - Cipher_State*
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::TLS::Finished_13::Finished_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_finished_13.cpp
    functionUses: 0
    functionsReached:
    - Cipher_State*::finished_mac
    linkageType: ''
    returnType: void
    signature: void Finished_13::Finished_13(Cipher_State* cipher_state, const Transcript_Hash&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_State*::verify_peer_finished_mac
      Src: /src/botan/src/lib/tls/tls13/msg_finished_13.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cipher_state
    - ' transcript_hash'
    argTypes:
    - Cipher_State*
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::TLS::Finished_13::verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_finished_13.cpp
    functionUses: 0
    functionsReached:
    - Cipher_State*::verify_peer_finished_mac
    linkageType: ''
    returnType: bool
    signature: bool Finished_13::verify(Cipher_State* cipher_state, const Transcript_Hash&
      transcript_hash) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: constraints
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:30,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:31,1
    - Dst: auto::includes_any
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: Botan::TLS::certificate_allows_signing
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - constraints
    - auto::includes_any
    linkageType: ''
    returnType: bool
    signature: bool certificate_allows_signing(const X509_Certificate& cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:41,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:42,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:42,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' peer_scheme_preference'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: Botan::TLS::filter_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - TLS_Exception
    - is_available
    - algorithm_name
    - is_compatible_with
    - std::vector::empty
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> filter_signature_schemes(const std::vector<Signature_Scheme>&
      peer_scheme_preference)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: constraints
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:30,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:31,1
    - Dst: auto::includes_any
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: Botan::TLS::certificate_allows_signing
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - constraints
    - auto::includes_any
    linkageType: ''
    returnType: bool
    signature: bool certificate_allows_signing(const X509_Certificate& cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:41,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:42,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:42,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' peer_scheme_preference'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: Botan::TLS::filter_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - TLS_Exception
    - is_available
    - algorithm_name
    - is_compatible_with
    - std::vector::empty
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> filter_signature_schemes(const std::vector<Signature_Scheme>&
      peer_scheme_preference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:56,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Certificate_13::has_certificate_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - front
    - empty
    linkageType: ''
    returnType: bool
    signature: bool Certificate_13::has_certificate_chain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:60,1
    - Dst: Botan::TLS::Certificate_13::has_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Certificate_13::is_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Certificate_13::has_certificate_chain
    - empty
    linkageType: ''
    returnType: bool
    signature: bool Certificate_13::is_raw_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:64,1
    - Dst: Botan::TLS::Certificate_13::has_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:64,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:66,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:66,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:66,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:66,1
    - Dst: certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Certificate_13::cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - cbegin
    - transform
    - Botan::TLS::Certificate_13::has_certificate_chain
    - certificate
    - std::back_inserter
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Certificate_13::cert_chain() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:79,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:80,1
    - Dst: tls_examine_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:83,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:83,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' requested_extensions'
    - ' cb'
    argTypes:
    - std::set<Extension_Code>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: Botan::TLS::Certificate_13::validate_extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - tls_examine_extensions
    - type
    - extensions
    linkageType: ''
    returnType: void
    signature: void Certificate_13::validate_extensions(const std::set<Extension_Code>&
      requested_extensions, Callbacks& cb) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:88,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:88,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: Botan::TLS::Certificate_13::public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - front
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Certificate_13::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:93,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:93,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: '& Certificate_13::leaf() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - front
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: X509_Certificate
    signature: X509_Certificate & Certificate_13::leaf() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Certificate_13::is_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:104,1
    - Dst: tls_verify_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:105,1
    - Dst: Botan::TLS::Certificate_13::public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:105,1
    - Dst: Botan::TLS::Certificate_13::verify_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' callbacks'
    - ' policy'
    - ' creds'
    - hostname
    - use_ocsp
    argTypes:
    - Callbacks
    - Policy
    - Credentials_Manager
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Certificate_13::verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - tls_verify_raw_public_key
    - Botan::TLS::Certificate_13::public_key
    - Botan::TLS::Certificate_13::verify_certificate_chain
    - Botan::TLS::Certificate_13::is_raw_public_key
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::verify(Callbacks& callbacks,\n                            const
      Policy& policy,\n                            Credentials_Manager& creds,\n                            std::string_view
      hostname,\n                            bool use_ocsp) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:120,1
    - Dst: certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:120,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:122,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:123,1
    - Dst: tls_parse_ocsp_response
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:123,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:124,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:126,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:131,1
    - Dst: certificate_allows_signing
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:132,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:133,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:137,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:138,1
    - Dst: tls_verify_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - ' callbacks'
    - ' policy'
    - ' creds'
    - hostname
    - use_ocsp
    - usage_type
    argTypes:
    - Callbacks
    - Policy
    - Credentials_Manager
    - std::string_view
    - bool
    - Usage_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Certificate_13::verify_certificate_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 1
    functionsReached:
    - std::string
    - extensions
    - std::vector::push_back
    - tls_parse_ocsp_response
    - std::vector::emplace_back
    - front
    - tls_verify_cert_chain
    - certificate
    - TLS_Exception
    - trusted_certificate_authorities
    - certificate_allows_signing
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::verify_certificate_chain(Callbacks& callbacks,\n
      \                                             const Policy& policy,\n                                              Credentials_Manager&
      creds,\n                                              std::string_view hostname,\n
      \                                             bool use_ocsp,\n                                              Usage_Type
      usage_type) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls_provide_cert_chain_status
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:150,1
    - Dst: std::vector<std::vector<uint8_t>>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:151,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:151,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:153,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:153,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:154,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:157,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:158,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:159,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:160,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:160,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:171,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:171,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - cert_chain
    - csr
    - ' callbacks'
    argTypes:
    - std::vector<X509_Certificate>
    - Certificate_Status_Request*
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Certificate_13::setup_entries
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::vector<X509_Certificate>::size
    - extensions
    - auto::size
    - Certificate_Status_Request::Certificate_Status_Request
    - std::vector<std::vector<uint8_t>>
    - emplace_back
    - tls_modify_extensions
    - tls_provide_cert_chain_status
    - TLS_Exception
    - type
    - empty
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::setup_entries(std::vector<X509_Certificate> cert_chain,\n
      \                                  const Certificate_Status_Request* csr,\n
      \                                  Callbacks& callbacks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:176,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:177,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:177,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:178,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:178,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - raw_public_key
    - ' callbacks'
    argTypes:
    - std::shared_ptr<Public_Key>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: Botan::TLS::Certificate_13::setup_entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - std::move
    - emplace_back
    - tls_modify_extensions
    - BOTAN_ASSERT_NONNULL
    - type
    linkageType: ''
    returnType: void
    signature: void Certificate_13::setup_entry(std::shared_ptr<Public_Key> raw_public_key,
      Callbacks& callbacks)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:189,1
    - Dst: filter_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:190,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:190,1
    - Dst: Botan::TLS::Certificate_13::setup_entries
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:194,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:195,1
    - Dst: to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:196,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:196,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:197,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:199,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:200,1
    - Dst: find_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:203,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:203,1
    - Dst: Botan::TLS::Certificate_13::setup_entry
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:213,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - ' cert_request'
    - hostname
    - ' credentials_manager'
    - ' callbacks'
    - cert_type
    argTypes:
    - Certificate_Request_13
    - std::string_view
    - Credentials_Manager
    - Callbacks
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 216
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - certificate_signature_schemes
    - Botan::TLS::Certificate_13::setup_entries
    - extensions
    - signature_schemes
    - find_raw_public_key
    - Botan::TLS::Certificate_13::setup_entry
    - std::move
    - context
    - find_cert_chain
    - acceptable_CAs
    - to_algorithm_identifiers
    - filter_signature_schemes
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::Certificate_13(const Certificate_Request_13&
      cert_request,\n                               std::string_view hostname,\n                               Credentials_Manager&
      credentials_manager,\n                               Callbacks& callbacks,\n
      \                              Certificate_Type cert_type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:229,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:229,1
    - Dst: filter_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:231,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:231,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:233,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:236,1
    - Dst: to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:237,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:237,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:241,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:242,1
    - Dst: Botan::TLS::Certificate_13::setup_entries
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:245,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:245,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:245,1
    - Dst: find_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:247,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:255,1
    - Dst: Botan::TLS::Certificate_13::setup_entry
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - ' client_hello'
    - ' credentials_manager'
    - ' callbacks'
    - cert_type
    argTypes:
    - Client_Hello_13
    - Credentials_Manager
    - Callbacks
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - certificate_signature_schemes
    - extensions
    - Botan::TLS::Certificate_13::setup_entries
    - signature_schemes
    - std::move
    - find_raw_public_key
    - Botan::TLS::Certificate_13::setup_entry
    - auto::empty
    - sni_hostname
    - find_cert_chain
    - TLS_Exception
    - to_algorithm_identifiers
    - BOTAN_ASSERT_NOMSG
    - filter_signature_schemes
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::Certificate_13(const Client_Hello_13& client_hello,\n
      \                              Credentials_Manager& credentials_manager,\n                               Callbacks&
      callbacks,\n                               Certificate_Type cert_type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:270,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:270,1
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:271,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:278,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:278,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:281,1
    - Dst: peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:287,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:288,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:290,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:303,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:307,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:309,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - ' reader'
    - side
    - cert_type
    argTypes:
    - TLS_Data_Reader
    - Connection_Side
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 314
    functionName: "Certificate_13::Certificate_Entry::Certificate_Entry(TLS_Data_Reader&
      reader,\n                                                     Connection_Side
      side,\n                                                     Certificate_Type
      cert_type)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - get_tls_length_value
    - peek_uint16_t
    - subject_public_key
    - TLS_Exception
    - contains_implemented_extensions_other_than
    - std::make_unique<X509_Certificate>
    - deserialize
    - Botan::X509::load_key
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::Certificate_Entry::Certificate_Entry(TLS_Data_Reader&
      reader,\n                                                     Connection_Side
      side,\n                                                     Certificate_Type
      cert_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 316
    functionName: Certificate_13::Certificate_Entry::~Certificate_Entry()
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_13::Certificate_Entry::~Certificate_Entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Certificate_13::Certificate_Entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: Certificate_13::Certificate_Entry::Certificate_Entry(Certificate_13::Certificate_Entry&&
      other) noexcept
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_13::Certificate_Entry::Certificate_Entry(Certificate_13::Certificate_Entry&&
      other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:323,1
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: Certificate_13::Certificate_Entry::Certificate_Entry(const X509_Certificate&
      cert)
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - subject_public_key
    - std::make_unique<X509_Certificate>
    linkageType: ''
    returnType: void
    signature: void Certificate_13::Certificate_Entry::Certificate_Entry(const X509_Certificate&
      cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:326,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_public_key
    argTypes:
    - std::shared_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: Certificate_13::Certificate_Entry::Certificate_Entry(std::shared_ptr<Public_Key>
      raw_public_key)
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void Certificate_13::Certificate_Entry::Certificate_Entry(std::shared_ptr<Public_Key>
      raw_public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:331,1
    - Dst: has_certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: '& Certificate_13::Certificate_Entry::certificate() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - has_certificate
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: X509_Certificate
    signature: X509_Certificate & Certificate_13::Certificate_Entry::certificate()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: Certificate_13::Certificate_Entry::public_key() const
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Certificate_13::Certificate_Entry::public_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:341,1
    - Dst: BER_encode
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:341,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: Certificate_13::Certificate_Entry::serialize() const
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::BER_encode
    - BER_encode
    - has_certificate
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_13::Certificate_Entry::serialize()
      const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:354,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:358,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:359,1
    - Dst: TLS_Data_Reader::get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:362,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:364,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:365,1
    - Dst: maximum_certificate_chain_size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:368,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:370,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:373,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:374,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:382,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:387,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:393,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:393,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:404,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:405,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:411,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:412,1
    - Dst: Botan::TLS::Certificate_13::public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:416,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:417,1
    - Dst: allowed_signature_method
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:419,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:419,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:420,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:420,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 31
    argCount: 4
    argNames:
    - ' buf'
    - ' policy'
    - side
    - cert_type
    argTypes:
    - std::vector<uint8_t>
    - Policy
    - Connection_Side
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 422
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::has_remaining
    - TLS_Data_Reader::remaining_bytes
    - Decoding_Error
    - front
    - emplace_back
    - allowed_signature_method
    - TLS_Data_Reader::get_range
    - TLS_Exception
    - BOTAN_ASSERT_NOMSG
    - TLS_Data_Reader::get_uint24_t
    - size
    - Botan::TLS::Certificate_13::public_key
    - check_peer_key_acceptable
    - auto::algo_name
    - maximum_certificate_chain_size
    - empty
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::Certificate_13(const std::vector<uint8_t>& buf,\n
      \                              const Policy& policy,\n                               Connection_Side
      side,\n                               Certificate_Type cert_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:430,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:434,1
    - Dst: Botan::TLS::Certificate_13::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:434,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:443,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:444,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 450
    functionName: Botan::TLS::Certificate_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Certificate_13::serialize
    - auto::empty
    - append_tls_length_value
    - extensions
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_13::serialize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: constraints
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:30,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:31,1
    - Dst: auto::includes_any
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: Botan::TLS::certificate_allows_signing
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - constraints
    - auto::includes_any
    linkageType: ''
    returnType: bool
    signature: bool certificate_allows_signing(const X509_Certificate& cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:41,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:42,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:42,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' peer_scheme_preference'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: Botan::TLS::filter_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - TLS_Exception
    - is_available
    - algorithm_name
    - is_compatible_with
    - std::vector::empty
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> filter_signature_schemes(const std::vector<Signature_Scheme>&
      peer_scheme_preference)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: constraints
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:30,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:31,1
    - Dst: auto::includes_any
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: Botan::TLS::certificate_allows_signing
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - constraints
    - auto::includes_any
    linkageType: ''
    returnType: bool
    signature: bool certificate_allows_signing(const X509_Certificate& cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:41,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:42,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:42,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' peer_scheme_preference'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: Botan::TLS::filter_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - TLS_Exception
    - is_available
    - algorithm_name
    - is_compatible_with
    - std::vector::empty
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> filter_signature_schemes(const std::vector<Signature_Scheme>&
      peer_scheme_preference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:56,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Certificate_13::has_certificate_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - front
    - empty
    linkageType: ''
    returnType: bool
    signature: bool Certificate_13::has_certificate_chain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:60,1
    - Dst: Botan::TLS::Certificate_13::has_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Certificate_13::is_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Certificate_13::has_certificate_chain
    - empty
    linkageType: ''
    returnType: bool
    signature: bool Certificate_13::is_raw_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:64,1
    - Dst: Botan::TLS::Certificate_13::has_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:64,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:66,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:66,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:66,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:66,1
    - Dst: certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Certificate_13::cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - cbegin
    - transform
    - Botan::TLS::Certificate_13::has_certificate_chain
    - certificate
    - std::back_inserter
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Certificate_13::cert_chain() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:79,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:80,1
    - Dst: tls_examine_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:83,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:83,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' requested_extensions'
    - ' cb'
    argTypes:
    - std::set<Extension_Code>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: Botan::TLS::Certificate_13::validate_extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - tls_examine_extensions
    - type
    - extensions
    linkageType: ''
    returnType: void
    signature: void Certificate_13::validate_extensions(const std::set<Extension_Code>&
      requested_extensions, Callbacks& cb) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:88,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:88,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: Botan::TLS::Certificate_13::public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - front
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Certificate_13::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:93,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:93,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: '& Certificate_13::leaf() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - front
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: X509_Certificate
    signature: X509_Certificate & Certificate_13::leaf() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Certificate_13::is_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:104,1
    - Dst: tls_verify_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:105,1
    - Dst: Botan::TLS::Certificate_13::public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:105,1
    - Dst: Botan::TLS::Certificate_13::verify_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' callbacks'
    - ' policy'
    - ' creds'
    - hostname
    - use_ocsp
    argTypes:
    - Callbacks
    - Policy
    - Credentials_Manager
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Certificate_13::verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - tls_verify_raw_public_key
    - Botan::TLS::Certificate_13::public_key
    - Botan::TLS::Certificate_13::verify_certificate_chain
    - Botan::TLS::Certificate_13::is_raw_public_key
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::verify(Callbacks& callbacks,\n                            const
      Policy& policy,\n                            Credentials_Manager& creds,\n                            std::string_view
      hostname,\n                            bool use_ocsp) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:120,1
    - Dst: certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:120,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:122,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:123,1
    - Dst: tls_parse_ocsp_response
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:123,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:124,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:126,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:131,1
    - Dst: certificate_allows_signing
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:132,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:133,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:137,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:138,1
    - Dst: tls_verify_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - ' callbacks'
    - ' policy'
    - ' creds'
    - hostname
    - use_ocsp
    - usage_type
    argTypes:
    - Callbacks
    - Policy
    - Credentials_Manager
    - std::string_view
    - bool
    - Usage_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 141
    functionName: Botan::TLS::Certificate_13::verify_certificate_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - std::string
    - extensions
    - std::vector::push_back
    - tls_parse_ocsp_response
    - std::vector::emplace_back
    - front
    - tls_verify_cert_chain
    - certificate
    - TLS_Exception
    - trusted_certificate_authorities
    - certificate_allows_signing
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::verify_certificate_chain(Callbacks& callbacks,\n
      \                                             const Policy& policy,\n                                              Credentials_Manager&
      creds,\n                                              std::string_view hostname,\n
      \                                             bool use_ocsp,\n                                              Usage_Type
      usage_type) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls_provide_cert_chain_status
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:150,1
    - Dst: std::vector<std::vector<uint8_t>>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:151,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:151,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:153,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:153,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:154,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:157,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:158,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:159,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:160,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:160,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:171,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:171,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - cert_chain
    - csr
    - ' callbacks'
    argTypes:
    - std::vector<X509_Certificate>
    - Certificate_Status_Request*
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Certificate_13::setup_entries
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - std::vector<X509_Certificate>::size
    - extensions
    - auto::size
    - Certificate_Status_Request::Certificate_Status_Request
    - std::vector<std::vector<uint8_t>>
    - emplace_back
    - tls_modify_extensions
    - tls_provide_cert_chain_status
    - TLS_Exception
    - type
    - empty
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::setup_entries(std::vector<X509_Certificate> cert_chain,\n
      \                                  const Certificate_Status_Request* csr,\n
      \                                  Callbacks& callbacks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:176,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:177,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:177,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:178,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:178,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - raw_public_key
    - ' callbacks'
    argTypes:
    - std::shared_ptr<Public_Key>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: Botan::TLS::Certificate_13::setup_entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - extensions
    - std::move
    - emplace_back
    - tls_modify_extensions
    - BOTAN_ASSERT_NONNULL
    - type
    linkageType: ''
    returnType: void
    signature: void Certificate_13::setup_entry(std::shared_ptr<Public_Key> raw_public_key,
      Callbacks& callbacks)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:189,1
    - Dst: filter_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:190,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:190,1
    - Dst: Botan::TLS::Certificate_13::setup_entries
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:194,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:195,1
    - Dst: to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:196,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:196,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:197,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:199,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:200,1
    - Dst: find_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:203,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:203,1
    - Dst: Botan::TLS::Certificate_13::setup_entry
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:213,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - ' cert_request'
    - hostname
    - ' credentials_manager'
    - ' callbacks'
    - cert_type
    argTypes:
    - Certificate_Request_13
    - std::string_view
    - Credentials_Manager
    - Callbacks
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 216
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - certificate_signature_schemes
    - Botan::TLS::Certificate_13::setup_entries
    - extensions
    - signature_schemes
    - find_raw_public_key
    - Botan::TLS::Certificate_13::setup_entry
    - std::move
    - context
    - find_cert_chain
    - acceptable_CAs
    - to_algorithm_identifiers
    - filter_signature_schemes
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::Certificate_13(const Certificate_Request_13&
      cert_request,\n                               std::string_view hostname,\n                               Credentials_Manager&
      credentials_manager,\n                               Callbacks& callbacks,\n
      \                              Certificate_Type cert_type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:229,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:229,1
    - Dst: filter_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:231,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:231,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:233,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:236,1
    - Dst: to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:237,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:237,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:241,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:242,1
    - Dst: Botan::TLS::Certificate_13::setup_entries
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:245,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:245,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:245,1
    - Dst: find_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:247,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:255,1
    - Dst: Botan::TLS::Certificate_13::setup_entry
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - ' client_hello'
    - ' credentials_manager'
    - ' callbacks'
    - cert_type
    argTypes:
    - Client_Hello_13
    - Credentials_Manager
    - Callbacks
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - certificate_signature_schemes
    - extensions
    - Botan::TLS::Certificate_13::setup_entries
    - signature_schemes
    - std::move
    - find_raw_public_key
    - Botan::TLS::Certificate_13::setup_entry
    - auto::empty
    - sni_hostname
    - find_cert_chain
    - TLS_Exception
    - to_algorithm_identifiers
    - BOTAN_ASSERT_NOMSG
    - filter_signature_schemes
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::Certificate_13(const Client_Hello_13& client_hello,\n
      \                              Credentials_Manager& credentials_manager,\n                               Callbacks&
      callbacks,\n                               Certificate_Type cert_type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:270,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:270,1
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:271,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:278,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:278,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:281,1
    - Dst: peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:287,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:288,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:290,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:303,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:307,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:309,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - ' reader'
    - side
    - cert_type
    argTypes:
    - TLS_Data_Reader
    - Connection_Side
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 314
    functionName: "Certificate_13::Certificate_Entry::Certificate_Entry(TLS_Data_Reader&
      reader,\n                                                     Connection_Side
      side,\n                                                     Certificate_Type
      cert_type)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - get_fixed
    - get_tls_length_value
    - peek_uint16_t
    - subject_public_key
    - TLS_Exception
    - contains_implemented_extensions_other_than
    - std::make_unique<X509_Certificate>
    - deserialize
    - Botan::X509::load_key
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::Certificate_Entry::Certificate_Entry(TLS_Data_Reader&
      reader,\n                                                     Connection_Side
      side,\n                                                     Certificate_Type
      cert_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 316
    functionName: Certificate_13::Certificate_Entry::~Certificate_Entry()
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_13::Certificate_Entry::~Certificate_Entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Certificate_13::Certificate_Entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: Certificate_13::Certificate_Entry::Certificate_Entry(Certificate_13::Certificate_Entry&&
      other) noexcept
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_13::Certificate_Entry::Certificate_Entry(Certificate_13::Certificate_Entry&&
      other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:323,1
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: Certificate_13::Certificate_Entry::Certificate_Entry(const X509_Certificate&
      cert)
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - subject_public_key
    - std::make_unique<X509_Certificate>
    linkageType: ''
    returnType: void
    signature: void Certificate_13::Certificate_Entry::Certificate_Entry(const X509_Certificate&
      cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:326,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_public_key
    argTypes:
    - std::shared_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: Certificate_13::Certificate_Entry::Certificate_Entry(std::shared_ptr<Public_Key>
      raw_public_key)
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void Certificate_13::Certificate_Entry::Certificate_Entry(std::shared_ptr<Public_Key>
      raw_public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:331,1
    - Dst: has_certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: '& Certificate_13::Certificate_Entry::certificate() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - has_certificate
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: X509_Certificate
    signature: X509_Certificate & Certificate_13::Certificate_Entry::certificate()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: Certificate_13::Certificate_Entry::public_key() const
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Certificate_13::Certificate_Entry::public_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:341,1
    - Dst: BER_encode
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:341,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: Certificate_13::Certificate_Entry::serialize() const
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509::BER_encode
    - BER_encode
    - has_certificate
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_13::Certificate_Entry::serialize()
      const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:354,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:358,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:359,1
    - Dst: TLS_Data_Reader::get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:362,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:364,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:365,1
    - Dst: maximum_certificate_chain_size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:368,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:370,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:373,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:374,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:382,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:387,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:393,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:393,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:404,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:405,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:411,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:412,1
    - Dst: Botan::TLS::Certificate_13::public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:416,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:417,1
    - Dst: allowed_signature_method
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:419,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:419,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:420,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:420,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 31
    argCount: 4
    argNames:
    - ' buf'
    - ' policy'
    - side
    - cert_type
    argTypes:
    - std::vector<uint8_t>
    - Policy
    - Connection_Side
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 422
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::has_remaining
    - TLS_Data_Reader::remaining_bytes
    - Decoding_Error
    - front
    - emplace_back
    - allowed_signature_method
    - TLS_Data_Reader::get_range
    - TLS_Exception
    - BOTAN_ASSERT_NOMSG
    - TLS_Data_Reader::get_uint24_t
    - size
    - Botan::TLS::Certificate_13::public_key
    - check_peer_key_acceptable
    - auto::algo_name
    - maximum_certificate_chain_size
    - empty
    linkageType: ''
    returnType: void
    signature: "void Certificate_13::Certificate_13(const std::vector<uint8_t>& buf,\n
      \                              const Policy& policy,\n                               Connection_Side
      side,\n                               Certificate_Type cert_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:430,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:434,1
    - Dst: Botan::TLS::Certificate_13::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:434,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:443,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:444,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 450
    functionName: Botan::TLS::Certificate_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Certificate_13::serialize
    - auto::empty
    - append_tls_length_value
    - extensions
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_13::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client_Hello_13
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Client_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Client_Hello_13
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Client_Hello_13
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:137,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:138,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:141,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:143,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:207,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 288
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    - Hello_Retry_Request
    - size
    - Botan::TLS::type
    - Botan::TLS::wire_type
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_13
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:137,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:138,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:141,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - data
    - tag
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    - Hello_Retry_Request_Creation_Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 159
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::type
    - Hello_Retry_Request
    - Botan::TLS::wire_type
    linkageType: ''
    returnType: void
    signature: void Server_Hello_13(std::unique_ptr<Server_Hello_Internal> data, Hello_Retry_Request_Creation_Tag
      tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 200
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Handshake_Message
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: Botan::TLS::Certificate_Entry::has_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Certificate_Entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan::TLS::Certificate_Entry::Certificate_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Entry(const Certificate_Entry& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Certificate_Entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& operator=(const Certificate_Entry& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Certificate_Entry
    signature: Certificate_Entry & operator=(const Certificate_Entry& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: Botan::TLS::count
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 4
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 16
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: Botan::TLS::request_context
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & request_context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 319
    functionName: Botan::TLS::Certificate_Request_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 5
    functionsReached:
    - Botan::TLS::Certificate_Request_13
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Request_13
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: Botan::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 311
    functionName: Botan::TLS::context
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 347
    functionName: Botan::TLS::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 5
    functionsReached:
    - Botan::TLS::Certificate_Verify_13
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Verify_13
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: Botan::TLS::Finished_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Finished_13
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: Botan::TLS::New_Session_Ticket_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API New_Session_Ticket_13
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: Botan::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: Botan::TLS::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Opaque_Session_Handle
    signature: Opaque_Session_Handle & handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 374
    functionName: Botan::TLS::nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ticket_Nonce
    signature: Ticket_Nonce & nonce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 376
    functionName: Botan::TLS::ticket_age_add
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ticket_age_add() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: Botan::TLS::lifetime_hint
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds lifetime_hint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Client_Hello_13
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Client_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client_Hello_13
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Client_Hello_13
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:137,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:138,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:141,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:143,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:207,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 288
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    - Hello_Retry_Request
    - size
    - Botan::TLS::type
    - Botan::TLS::wire_type
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_13
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:137,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:138,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:141,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - data
    - tag
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    - Hello_Retry_Request_Creation_Tag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 159
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::type
    - Hello_Retry_Request
    - Botan::TLS::wire_type
    linkageType: ''
    returnType: void
    signature: void Server_Hello_13(std::unique_ptr<Server_Hello_Internal> data, Hello_Retry_Request_Creation_Tag
      tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: Botan::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 200
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Handshake_Message
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: Botan::TLS::Certificate_Entry::has_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Certificate_Entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: Botan::TLS::Certificate_Entry::Certificate_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Entry(const Certificate_Entry& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Certificate_Entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& operator=(const Certificate_Entry& other)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Certificate_Entry
    signature: Certificate_Entry & operator=(const Certificate_Entry& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: Botan::TLS::count
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 4
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 18
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: Botan::TLS::request_context
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & request_context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 319
    functionName: Botan::TLS::Certificate_Request_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 6
    functionsReached:
    - Botan::TLS::Certificate_Request_13
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Request_13
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 307
    functionName: Botan::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 311
    functionName: Botan::TLS::context
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_messages_13.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 347
    functionName: Botan::TLS::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 6
    functionsReached:
    - Botan::TLS::Certificate_Verify_13
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Verify_13
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: Botan::TLS::Finished_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Finished_13
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: Botan::TLS::New_Session_Ticket_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API New_Session_Ticket_13
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: Botan::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: Botan::TLS::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Opaque_Session_Handle
    signature: Opaque_Session_Handle & handle() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 374
    functionName: Botan::TLS::nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ticket_Nonce
    signature: Ticket_Nonce & nonce() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 376
    functionName: Botan::TLS::ticket_age_add
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ticket_age_add() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: Botan::TLS::lifetime_hint
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds lifetime_hint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Handshake_Message
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 410
    functionName: expects_reciprocation
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_messages_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void expects_reciprocation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_tls_length_value
    - static_cast<Named_Group>
    - get_uint16_t
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(TLS_Data_Reader& reader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - group
    argTypes:
    - TLS::Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(const TLS::Group_Params group)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tls_kem_generate_key
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:40,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:42,1
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:45,1
    - Dst: public_key_bits
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:46,1
    - Dst: TLS::Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:48,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:48,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:50,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:61,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:63,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:63,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:65,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:68,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - group
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - TLS::Group_Params::is_kem
    - get
    - dynamic_cast<PK_Key_Agreement_Key*>
    - TLS::Group_Params::is_ecdh_named_curve
    - tls_kem_generate_key
    - TLS_Exception
    - dynamic_cast<ECDH_PublicKey*>
    - auto*::public_value
    - public_key_bits
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(const TLS::Group_Params group, Callbacks& cb,
      RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_Entry::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::TLS::Key_Share_Entry::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Key_Share_Entry::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:76,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:76,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:78,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: Botan::TLS::Key_Share_Entry::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - get_byte<0>
    - std::vector::reserve
    - wire_code
    - size
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::Key_Share_Entry::group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:93,1
    - Dst: tls_kem_encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:93,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' client_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_Entry
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Key_Share_Entry::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - KEM_Encapsulation::destructure
    - tls_kem_encapsulate
    - std::move
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> encapsulate(const Key_Share_Entry& client_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scoped_cleanup
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:109,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:110,1
    - Dst: tls_kem_decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' received'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_Entry
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Key_Share_Entry::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - reset
    - scoped_cleanup
    - tls_kem_decapsulate
    - BOTAN_ASSERT_NOMSG
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> decapsulate(const Key_Share_Entry& received,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(TLS_Data_Reader& reader, uint16_t /*len*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: ~Key_Share_ServerHello()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_ServerHello()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(const Key_Share_ServerHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: '& operator=(const Key_Share_ServerHello&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ServerHello
    signature: Key_Share_ServerHello & operator=(const Key_Share_ServerHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(Key_Share_ServerHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: '& operator=(Key_Share_ServerHello&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ServerHello
    signature: Key_Share_ServerHello & operator=(Key_Share_ServerHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Key_Share_ServerHello::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::serialize
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Key_Share_ServerHello::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& get_singleton_entry()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_Entry
    signature: Key_Share_Entry & get_singleton_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: '& get_singleton_entry() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_Entry
    signature: Key_Share_Entry & get_singleton_entry() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Key_Share_ServerHello::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::selected_group
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Key_Share_ServerHello::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - group
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Key_Share_ServerHello::take_shared_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::empty
    - std::exchange
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> take_shared_secret()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:174,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:175,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:177,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:178,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:183,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:184,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:195,1
    - Dst: Key_Share_Entry::group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:195,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:196,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:197,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:200,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:200,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:203,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:204,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 206
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_uint16_t
    - remaining
    - std::move
    - Decoding_Error
    - emplace_back
    - begin
    - read_so_far
    - TLS_Exception
    - has_remaining
    - group
    - std::find_if
    - Key_Share_Entry::group
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(TLS_Data_Reader& reader, uint16_t /* extension_size
      */)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:209,1
    - Dst: key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:210,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - key_exchange_groups_to_offer
    - std::find
    - emplace_back
    - key_exchange_groups
    - auto::end
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(const Policy& policy, Callbacks& cb, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: ~Key_Share_ClientHello()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_ClientHello()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(const Key_Share_ClientHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: '& operator=(const Key_Share_ClientHello&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ClientHello
    signature: Key_Share_ClientHello & operator=(const Key_Share_ClientHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(Key_Share_ClientHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: '& operator=(Key_Share_ClientHello&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ClientHello
    signature: Key_Share_ClientHello & operator=(Key_Share_ClientHello&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:244,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:245,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:246,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:249,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - to_offer
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: Botan::TLS::Key_Share_ClientHello::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - cend
    - cbegin
    - emplace_back
    - TLS_Exception
    - clear
    - group
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void retry_offer(const TLS::Group_Params to_offer, Callbacks& cb, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:255,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:255,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:257,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Key_Share_ClientHello::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - group
    - size
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Key_Share_ClientHello::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ClientHello::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: Botan::TLS::Key_Share_ClientHello::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Key_Share_ClientHello::serialize
    - std::vector::end
    - auto::cend
    - std::vector::insert
    - auto::cbegin
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: Botan::TLS::Key_Share_ClientHello::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_singleton_entry
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:288,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:292,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:292,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:298,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:298,1
    - Dst: Botan::TLS::Key_Share_ClientHello::encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' server_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_ServerHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 301
    functionName: Botan::TLS::Key_Share_ClientHello::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - get_singleton_entry
    - Botan::TLS::Key_Share_ClientHello::encapsulate
    - begin
    - group
    - std::find_if
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> encapsulate(Key_Share_ServerHello& server_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_singleton_entry
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:307,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:311,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:311,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:318,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:319,1
    - Dst: auto::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ' server_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_ServerHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 323
    functionName: Botan::TLS::Key_Share_ClientHello::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_singleton_entry
    - begin
    - TLS_Exception
    - auto::decapsulate
    - group
    - std::find_if
    - end
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> decapsulate(const Key_Share_ServerHello& server_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - ' client_keyshare'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Named_Group
    - Key_Share_ClientHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - encapsulate
    linkageType: ''
    returnType: void
    signature: "void Key_Share_ServerHello::Key_Share_ServerHello(Named_Group group,\n
      \                                            const Key_Share_ClientHello& client_keyshare,\n
      \                                            const Policy& policy,\n                                             Callbacks&
      cb,\n                                             RandomNumberGenerator& rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:344,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:345,1
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:348,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_uint16_t
    - static_cast<Named_Group>
    - std::to_string
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - selected_group
    argTypes:
    - Named_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 351
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(Named_Group selected_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: ~Key_Share_HelloRetryRequest()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_HelloRetryRequest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(const Key_Share_HelloRetryRequest&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: '& operator=(const Key_Share_HelloRetryRequest&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_HelloRetryRequest
    signature: Key_Share_HelloRetryRequest & operator=(const Key_Share_HelloRetryRequest&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 358
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(Key_Share_HelloRetryRequest&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: '& operator=(Key_Share_HelloRetryRequest&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_HelloRetryRequest
    signature: Key_Share_HelloRetryRequest & operator=(Key_Share_HelloRetryRequest&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:363,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - wire_code
    - get_byte<0>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_tls_length_value
    - static_cast<Named_Group>
    - get_uint16_t
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(TLS_Data_Reader& reader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - group
    argTypes:
    - TLS::Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(const TLS::Group_Params group)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tls_kem_generate_key
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:40,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:42,1
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:45,1
    - Dst: public_key_bits
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:46,1
    - Dst: TLS::Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:48,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:48,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:50,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:61,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:63,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:63,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:65,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:68,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - group
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - TLS::Group_Params::is_kem
    - get
    - dynamic_cast<PK_Key_Agreement_Key*>
    - TLS::Group_Params::is_ecdh_named_curve
    - tls_kem_generate_key
    - TLS_Exception
    - dynamic_cast<ECDH_PublicKey*>
    - auto*::public_value
    - public_key_bits
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(const TLS::Group_Params group, Callbacks& cb,
      RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_Entry::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::TLS::Key_Share_Entry::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Key_Share_Entry::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:76,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:76,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:78,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: Botan::TLS::Key_Share_Entry::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - get_byte<0>
    - std::vector::reserve
    - wire_code
    - size
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::Key_Share_Entry::group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:93,1
    - Dst: tls_kem_encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:93,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' client_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_Entry
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Key_Share_Entry::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - KEM_Encapsulation::destructure
    - tls_kem_encapsulate
    - std::move
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> encapsulate(const Key_Share_Entry& client_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scoped_cleanup
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:109,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:110,1
    - Dst: tls_kem_decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' received'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_Entry
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Key_Share_Entry::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - reset
    - scoped_cleanup
    - tls_kem_decapsulate
    - BOTAN_ASSERT_NOMSG
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> decapsulate(const Key_Share_Entry& received,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(TLS_Data_Reader& reader, uint16_t /*len*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: ~Key_Share_ServerHello()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_ServerHello()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(const Key_Share_ServerHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: '& operator=(const Key_Share_ServerHello&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ServerHello
    signature: Key_Share_ServerHello & operator=(const Key_Share_ServerHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(Key_Share_ServerHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: '& operator=(Key_Share_ServerHello&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ServerHello
    signature: Key_Share_ServerHello & operator=(Key_Share_ServerHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Key_Share_ServerHello::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::serialize
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Key_Share_ServerHello::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& get_singleton_entry()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_Entry
    signature: Key_Share_Entry & get_singleton_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: '& get_singleton_entry() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_Entry
    signature: Key_Share_Entry & get_singleton_entry() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Key_Share_ServerHello::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::selected_group
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Key_Share_ServerHello::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - group
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Key_Share_ServerHello::take_shared_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::empty
    - std::exchange
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> take_shared_secret()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:174,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:175,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:177,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:178,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:183,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:184,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:195,1
    - Dst: Key_Share_Entry::group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:195,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:196,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:197,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:200,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:200,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:203,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:204,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 206
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_uint16_t
    - remaining
    - std::move
    - Decoding_Error
    - emplace_back
    - begin
    - read_so_far
    - TLS_Exception
    - has_remaining
    - group
    - std::find_if
    - Key_Share_Entry::group
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(TLS_Data_Reader& reader, uint16_t /* extension_size
      */)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:209,1
    - Dst: key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:210,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - key_exchange_groups_to_offer
    - std::find
    - emplace_back
    - key_exchange_groups
    - auto::end
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(const Policy& policy, Callbacks& cb, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: ~Key_Share_ClientHello()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_ClientHello()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(const Key_Share_ClientHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: '& operator=(const Key_Share_ClientHello&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ClientHello
    signature: Key_Share_ClientHello & operator=(const Key_Share_ClientHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(Key_Share_ClientHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: '& operator=(Key_Share_ClientHello&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ClientHello
    signature: Key_Share_ClientHello & operator=(Key_Share_ClientHello&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:244,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:245,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:246,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:249,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - to_offer
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: Botan::TLS::Key_Share_ClientHello::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - cend
    - cbegin
    - emplace_back
    - TLS_Exception
    - clear
    - group
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void retry_offer(const TLS::Group_Params to_offer, Callbacks& cb, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:255,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:255,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:257,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Key_Share_ClientHello::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - group
    - size
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Key_Share_ClientHello::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ClientHello::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: Botan::TLS::Key_Share_ClientHello::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Key_Share_ClientHello::serialize
    - std::vector::end
    - auto::cend
    - std::vector::insert
    - auto::cbegin
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: Botan::TLS::Key_Share_ClientHello::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_singleton_entry
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:288,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:292,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:292,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:298,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:298,1
    - Dst: Botan::TLS::Key_Share_ClientHello::encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' server_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_ServerHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 301
    functionName: Botan::TLS::Key_Share_ClientHello::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - get_singleton_entry
    - Botan::TLS::Key_Share_ClientHello::encapsulate
    - begin
    - group
    - std::find_if
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> encapsulate(Key_Share_ServerHello& server_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_singleton_entry
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:307,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:311,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:311,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:318,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:319,1
    - Dst: auto::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ' server_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_ServerHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 323
    functionName: Botan::TLS::Key_Share_ClientHello::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_singleton_entry
    - begin
    - TLS_Exception
    - auto::decapsulate
    - group
    - std::find_if
    - end
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> decapsulate(const Key_Share_ServerHello& server_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - ' client_keyshare'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Named_Group
    - Key_Share_ClientHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - encapsulate
    linkageType: ''
    returnType: void
    signature: "void Key_Share_ServerHello::Key_Share_ServerHello(Named_Group group,\n
      \                                            const Key_Share_ClientHello& client_keyshare,\n
      \                                            const Policy& policy,\n                                             Callbacks&
      cb,\n                                             RandomNumberGenerator& rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:344,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:345,1
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:348,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_uint16_t
    - static_cast<Named_Group>
    - std::to_string
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - selected_group
    argTypes:
    - Named_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 351
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(Named_Group selected_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: ~Key_Share_HelloRetryRequest()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_HelloRetryRequest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(const Key_Share_HelloRetryRequest&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: '& operator=(const Key_Share_HelloRetryRequest&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_HelloRetryRequest
    signature: Key_Share_HelloRetryRequest & operator=(const Key_Share_HelloRetryRequest&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 358
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(Key_Share_HelloRetryRequest&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: '& operator=(Key_Share_HelloRetryRequest&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_HelloRetryRequest
    signature: Key_Share_HelloRetryRequest & operator=(Key_Share_HelloRetryRequest&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:363,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - wire_code
    - get_byte<0>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ks
    argTypes:
    - Key_Share_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 384
    functionName: Botan::TLS::Key_Share::Key_Share_Impl::Key_Share_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Key_Share_Impl(Key_Share_Type ks)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:391,1
    - Dst: Key_Share_ClientHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:391,1
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:394,1
    - Dst: Key_Share_HelloRetryRequest
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:394,1
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:397,1
    - Dst: Key_Share_ServerHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:397,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:399,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:399,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - message_type
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 402
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::string
    - Key_Share_HelloRetryRequest
    - handshake_type_to_string
    - std::make_unique<Key_Share_Impl>
    - Key_Share_ServerHello
    - Key_Share_ClientHello
    linkageType: ''
    returnType: void
    signature: void Key_Share::Key_Share(TLS_Data_Reader& reader, uint16_t extension_size,
      Handshake_Type message_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:406,1
    - Dst: Key_Share_ClientHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 406
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Key_Share_Impl>
    - Key_Share_ClientHello
    linkageType: ''
    returnType: void
    signature: void Key_Share::Key_Share(const Policy& policy, Callbacks& cb, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:410,1
    - Dst: Key_Share_HelloRetryRequest
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - selected_group
    argTypes:
    - Named_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Key_Share_HelloRetryRequest
    - std::make_unique<Key_Share_Impl>
    linkageType: ''
    returnType: void
    signature: void Key_Share::Key_Share(Named_Group selected_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:418,1
    - Dst: Key_Share_ServerHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:418,1
    - Dst: std::get<Key_Share_ClientHello>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - selected_group
    - ' client_keyshare'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Group_Params
    - Key_Share
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Key_Share_Impl>
    - std::get<Key_Share_ClientHello>
    - Key_Share_ServerHello
    linkageType: ''
    returnType: void
    signature: "void Key_Share::Key_Share(Group_Params selected_group,\n                     const
      Key_Share& client_keyshare,\n                     const Policy& policy,\n                     Callbacks&
      cb,\n                     RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 421
    functionName: Key_Share::~Key_Share()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share::~Key_Share()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:424,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 425
    functionName: Botan::TLS::Key_Share::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 9
    functionsReached:
    - std::visit
    - Botan::TLS::Key_Share::serialize
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Key_Share::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:428,1
    - Dst: Botan::TLS::Key_Share::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: Botan::TLS::Key_Share::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - std::visit
    - Botan::TLS::Key_Share::empty
    linkageType: ''
    returnType: bool
    signature: bool Key_Share::empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Key_Share>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:436,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - selected_group
    - ' client_keyshare'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Group_Params
    - Key_Share
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: Botan::TLS::Key_Share::create_as_encapsulation
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - Key_Share::Key_Share
    - std::unique_ptr<Key_Share>
    linkageType: ''
    returnType: std::unique_ptr<Key_Share>
    signature: "std::unique_ptr<Key_Share> Key_Share::create_as_encapsulation(Group_Params
      selected_group,\n                                                              const
      Key_Share& client_keyshare,\n                                                              const
      Policy& policy,\n                                                              Callbacks&
      cb,\n                                                              RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:443,1
    - Dst: Botan::TLS::Key_Share::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:444,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' server_keyshare'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 452
    functionName: Botan::TLS::Key_Share::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - std::visit
    - Invalid_Argument
    - Botan::TLS::Key_Share::decapsulate
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> Key_Share::decapsulate(const Key_Share& server_keyshare,\n
      \                                             const Policy& policy,\n                                              Callbacks&
      cb,\n                                              RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:455,1
    - Dst: Botan::TLS::Key_Share::offered_groups
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: Botan::TLS::Key_Share::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - std::visit
    - Botan::TLS::Key_Share::offered_groups
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> Key_Share::offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:459,1
    - Dst: Botan::TLS::Key_Share::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: Botan::TLS::Key_Share::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - std::visit
    - Botan::TLS::Key_Share::selected_group
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group Key_Share::selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:463,1
    - Dst: Botan::TLS::Key_Share::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:464,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 469
    functionName: Botan::TLS::Key_Share::take_shared_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Key_Share::take_shared_secret
    - std::visit
    - Invalid_Argument
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Key_Share::take_shared_secret()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:475,1
    - Dst: Botan::TLS::Key_Share::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:476,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:480,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:481,1
    - Dst: Botan::TLS::Key_Share::retry_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:484,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - ' retry_request_keyshare'
    - ' supported_groups'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share
    - std::vector<Named_Group>
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 491
    functionName: Botan::TLS::Key_Share::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - Invalid_Argument
    - Botan::TLS::Key_Share::selected_group
    - value_exists
    - TLS_Exception
    - std::visit
    - Botan::TLS::Key_Share::retry_offer
    linkageType: ''
    returnType: void
    signature: "void Key_Share::retry_offer(const Key_Share& retry_request_keyshare,\n
      \                           const std::vector<Named_Group>& supported_groups,\n
      \                           Callbacks& cb,\n                            RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_tls_length_value
    - static_cast<Named_Group>
    - get_uint16_t
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(TLS_Data_Reader& reader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - group
    argTypes:
    - TLS::Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(const TLS::Group_Params group)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tls_kem_generate_key
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:40,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:42,1
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:45,1
    - Dst: public_key_bits
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:46,1
    - Dst: TLS::Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:48,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:48,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:50,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:61,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:63,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:63,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:65,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:68,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - group
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - TLS::Group_Params::is_kem
    - get
    - dynamic_cast<PK_Key_Agreement_Key*>
    - TLS::Group_Params::is_ecdh_named_curve
    - tls_kem_generate_key
    - TLS_Exception
    - dynamic_cast<ECDH_PublicKey*>
    - auto*::public_value
    - public_key_bits
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(const TLS::Group_Params group, Callbacks& cb,
      RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_Entry::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::TLS::Key_Share_Entry::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Key_Share_Entry::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:76,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:76,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:78,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: Botan::TLS::Key_Share_Entry::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - get_byte<0>
    - std::vector::reserve
    - wire_code
    - size
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::Key_Share_Entry::group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:93,1
    - Dst: tls_kem_encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:93,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' client_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_Entry
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Key_Share_Entry::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - KEM_Encapsulation::destructure
    - tls_kem_encapsulate
    - std::move
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> encapsulate(const Key_Share_Entry& client_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scoped_cleanup
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:109,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:110,1
    - Dst: tls_kem_decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' received'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_Entry
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Key_Share_Entry::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - reset
    - scoped_cleanup
    - tls_kem_decapsulate
    - BOTAN_ASSERT_NOMSG
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> decapsulate(const Key_Share_Entry& received,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(TLS_Data_Reader& reader, uint16_t /*len*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: ~Key_Share_ServerHello()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_ServerHello()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(const Key_Share_ServerHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: '& operator=(const Key_Share_ServerHello&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ServerHello
    signature: Key_Share_ServerHello & operator=(const Key_Share_ServerHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(Key_Share_ServerHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: '& operator=(Key_Share_ServerHello&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ServerHello
    signature: Key_Share_ServerHello & operator=(Key_Share_ServerHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Key_Share_ServerHello::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::serialize
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Key_Share_ServerHello::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 5
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& get_singleton_entry()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_Entry
    signature: Key_Share_Entry & get_singleton_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: '& get_singleton_entry() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_Entry
    signature: Key_Share_Entry & get_singleton_entry() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Key_Share_ServerHello::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::selected_group
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Key_Share_ServerHello::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 3
    functionsReached:
    - group
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Key_Share_ServerHello::take_shared_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::empty
    - std::exchange
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> take_shared_secret()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:174,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:175,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:177,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:178,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:183,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:184,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:195,1
    - Dst: Key_Share_Entry::group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:195,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:196,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:197,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:200,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:200,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:203,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:204,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 206
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_uint16_t
    - remaining
    - std::move
    - Decoding_Error
    - emplace_back
    - begin
    - read_so_far
    - TLS_Exception
    - has_remaining
    - group
    - std::find_if
    - Key_Share_Entry::group
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(TLS_Data_Reader& reader, uint16_t /* extension_size
      */)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:209,1
    - Dst: key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:210,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - key_exchange_groups_to_offer
    - std::find
    - emplace_back
    - key_exchange_groups
    - auto::end
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(const Policy& policy, Callbacks& cb, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: ~Key_Share_ClientHello()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_ClientHello()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(const Key_Share_ClientHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: '& operator=(const Key_Share_ClientHello&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ClientHello
    signature: Key_Share_ClientHello & operator=(const Key_Share_ClientHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(Key_Share_ClientHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: '& operator=(Key_Share_ClientHello&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ClientHello
    signature: Key_Share_ClientHello & operator=(Key_Share_ClientHello&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:244,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:245,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:246,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:249,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - to_offer
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: Botan::TLS::Key_Share_ClientHello::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - cend
    - cbegin
    - emplace_back
    - TLS_Exception
    - clear
    - group
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void retry_offer(const TLS::Group_Params to_offer, Callbacks& cb, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:255,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:255,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:257,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Key_Share_ClientHello::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - group
    - size
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Key_Share_ClientHello::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ClientHello::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: Botan::TLS::Key_Share_ClientHello::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Key_Share_ClientHello::serialize
    - std::vector::end
    - auto::cend
    - std::vector::insert
    - auto::cbegin
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: Botan::TLS::Key_Share_ClientHello::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_singleton_entry
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:288,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:292,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:292,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:298,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:298,1
    - Dst: Botan::TLS::Key_Share_ClientHello::encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' server_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_ServerHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 301
    functionName: Botan::TLS::Key_Share_ClientHello::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 3
    functionsReached:
    - get_singleton_entry
    - Botan::TLS::Key_Share_ClientHello::encapsulate
    - begin
    - group
    - std::find_if
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> encapsulate(Key_Share_ServerHello& server_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_singleton_entry
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:307,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:311,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:311,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:318,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:319,1
    - Dst: auto::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ' server_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_ServerHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 323
    functionName: Botan::TLS::Key_Share_ClientHello::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_singleton_entry
    - begin
    - TLS_Exception
    - auto::decapsulate
    - group
    - std::find_if
    - end
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> decapsulate(const Key_Share_ServerHello& server_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - ' client_keyshare'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Named_Group
    - Key_Share_ClientHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - encapsulate
    linkageType: ''
    returnType: void
    signature: "void Key_Share_ServerHello::Key_Share_ServerHello(Named_Group group,\n
      \                                            const Key_Share_ClientHello& client_keyshare,\n
      \                                            const Policy& policy,\n                                             Callbacks&
      cb,\n                                             RandomNumberGenerator& rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:344,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:345,1
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:348,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_uint16_t
    - static_cast<Named_Group>
    - std::to_string
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - selected_group
    argTypes:
    - Named_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 351
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(Named_Group selected_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: ~Key_Share_HelloRetryRequest()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_HelloRetryRequest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(const Key_Share_HelloRetryRequest&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: '& operator=(const Key_Share_HelloRetryRequest&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_HelloRetryRequest
    signature: Key_Share_HelloRetryRequest & operator=(const Key_Share_HelloRetryRequest&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 358
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(Key_Share_HelloRetryRequest&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: '& operator=(Key_Share_HelloRetryRequest&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_HelloRetryRequest
    signature: Key_Share_HelloRetryRequest & operator=(Key_Share_HelloRetryRequest&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:363,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - wire_code
    - get_byte<0>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_tls_length_value
    - static_cast<Named_Group>
    - get_uint16_t
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(TLS_Data_Reader& reader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - group
    argTypes:
    - TLS::Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(const TLS::Group_Params group)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tls_kem_generate_key
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:40,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:42,1
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:45,1
    - Dst: public_key_bits
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:46,1
    - Dst: TLS::Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:48,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:48,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:50,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:61,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:63,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:63,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:65,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:68,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - group
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - TLS::Group_Params::is_kem
    - get
    - dynamic_cast<PK_Key_Agreement_Key*>
    - TLS::Group_Params::is_ecdh_named_curve
    - tls_kem_generate_key
    - TLS_Exception
    - dynamic_cast<ECDH_PublicKey*>
    - auto*::public_value
    - public_key_bits
    linkageType: ''
    returnType: void
    signature: void Key_Share_Entry(const TLS::Group_Params group, Callbacks& cb,
      RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_Entry::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::TLS::Key_Share_Entry::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Key_Share_Entry::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:76,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:76,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:78,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: Botan::TLS::Key_Share_Entry::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<1>
    - get_byte<0>
    - std::vector::reserve
    - wire_code
    - size
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::Key_Share_Entry::group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:93,1
    - Dst: tls_kem_encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:93,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' client_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_Entry
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Key_Share_Entry::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - KEM_Encapsulation::destructure
    - tls_kem_encapsulate
    - std::move
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> encapsulate(const Key_Share_Entry& client_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scoped_cleanup
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:109,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:110,1
    - Dst: tls_kem_decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' received'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_Entry
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Key_Share_Entry::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - reset
    - scoped_cleanup
    - tls_kem_decapsulate
    - BOTAN_ASSERT_NOMSG
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> decapsulate(const Key_Share_Entry& received,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(TLS_Data_Reader& reader, uint16_t /*len*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: ~Key_Share_ServerHello()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_ServerHello()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(const Key_Share_ServerHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: '& operator=(const Key_Share_ServerHello&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ServerHello
    signature: Key_Share_ServerHello & operator=(const Key_Share_ServerHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ServerHello(Key_Share_ServerHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: '& operator=(Key_Share_ServerHello&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ServerHello
    signature: Key_Share_ServerHello & operator=(Key_Share_ServerHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Key_Share_ServerHello::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::serialize
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Key_Share_ServerHello::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 7
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& get_singleton_entry()'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_Entry
    signature: Key_Share_Entry & get_singleton_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: '& get_singleton_entry() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_Entry
    signature: Key_Share_Entry & get_singleton_entry() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ServerHello::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Key_Share_ServerHello::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::selected_group
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Key_Share_ServerHello::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 4
    functionsReached:
    - group
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Key_Share_ServerHello::take_shared_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Key_Share_ServerHello::empty
    - std::exchange
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> take_shared_secret()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:174,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:175,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:177,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:178,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:183,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:184,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:195,1
    - Dst: Key_Share_Entry::group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:195,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:196,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:197,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:200,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:200,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:203,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:204,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 206
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_uint16_t
    - remaining
    - std::move
    - Decoding_Error
    - emplace_back
    - begin
    - read_so_far
    - TLS_Exception
    - has_remaining
    - group
    - std::find_if
    - Key_Share_Entry::group
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(TLS_Data_Reader& reader, uint16_t /* extension_size
      */)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:209,1
    - Dst: key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:210,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:224,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - auto::begin
    - key_exchange_groups_to_offer
    - std::find
    - emplace_back
    - key_exchange_groups
    - auto::end
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(const Policy& policy, Callbacks& cb, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: ~Key_Share_ClientHello()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_ClientHello()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(const Key_Share_ClientHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: '& operator=(const Key_Share_ClientHello&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ClientHello
    signature: Key_Share_ClientHello & operator=(const Key_Share_ClientHello&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_ClientHello(Key_Share_ClientHello&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: '& operator=(Key_Share_ClientHello&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_ClientHello
    signature: Key_Share_ClientHello & operator=(Key_Share_ClientHello&&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:243,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:244,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:245,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:246,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:249,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - to_offer
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: Botan::TLS::Key_Share_ClientHello::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - cend
    - cbegin
    - emplace_back
    - TLS_Exception
    - clear
    - group
    - std::find_if
    linkageType: ''
    returnType: void
    signature: void retry_offer(const TLS::Group_Params to_offer, Callbacks& cb, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:255,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:255,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:257,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: Botan::TLS::Key_Share_ClientHello::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - group
    - size
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Key_Share_ClientHello::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Key_Share_ClientHello::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:268,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: Botan::TLS::Key_Share_ClientHello::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Key_Share_ClientHello::serialize
    - std::vector::end
    - auto::cend
    - std::vector::insert
    - auto::cbegin
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: Botan::TLS::Key_Share_ClientHello::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_singleton_entry
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:288,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:291,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:292,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:292,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:298,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:298,1
    - Dst: Botan::TLS::Key_Share_ClientHello::encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' server_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_ServerHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 301
    functionName: Botan::TLS::Key_Share_ClientHello::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 4
    functionsReached:
    - get_singleton_entry
    - Botan::TLS::Key_Share_ClientHello::encapsulate
    - begin
    - group
    - std::find_if
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> encapsulate(Key_Share_ServerHello& server_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_singleton_entry
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:307,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:310,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:311,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:311,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:318,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:319,1
    - Dst: auto::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ' server_share'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share_ServerHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 323
    functionName: Botan::TLS::Key_Share_ClientHello::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_singleton_entry
    - begin
    - TLS_Exception
    - auto::decapsulate
    - group
    - std::find_if
    - end
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> decapsulate(const Key_Share_ServerHello& server_share,\n
      \                                        const Policy& policy,\n                                         Callbacks&
      cb,\n                                         RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - ' client_keyshare'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Named_Group
    - Key_Share_ClientHello
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: Botan::TLS::Key_Share_ServerHello::Key_Share_ServerHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - encapsulate
    linkageType: ''
    returnType: void
    signature: "void Key_Share_ServerHello::Key_Share_ServerHello(Named_Group group,\n
      \                                            const Key_Share_ClientHello& client_keyshare,\n
      \                                            const Policy& policy,\n                                             Callbacks&
      cb,\n                                             RandomNumberGenerator& rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:344,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:345,1
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:348,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_uint16_t
    - static_cast<Named_Group>
    - std::to_string
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - selected_group
    argTypes:
    - Named_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 351
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(Named_Group selected_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: ~Key_Share_HelloRetryRequest()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Share_HelloRetryRequest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(const Key_Share_HelloRetryRequest&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: '& operator=(const Key_Share_HelloRetryRequest&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_HelloRetryRequest
    signature: Key_Share_HelloRetryRequest & operator=(const Key_Share_HelloRetryRequest&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 358
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share_HelloRetryRequest(Key_Share_HelloRetryRequest&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: '& operator=(Key_Share_HelloRetryRequest&&)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key_Share_HelloRetryRequest
    signature: Key_Share_HelloRetryRequest & operator=(Key_Share_HelloRetryRequest&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:363,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - wire_code
    - get_byte<0>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ks
    argTypes:
    - Key_Share_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 384
    functionName: Botan::TLS::Key_Share::Key_Share_Impl::Key_Share_Impl
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Key_Share_Impl(Key_Share_Type ks)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:391,1
    - Dst: Key_Share_ClientHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:391,1
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:394,1
    - Dst: Key_Share_HelloRetryRequest
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:394,1
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:397,1
    - Dst: Key_Share_ServerHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:397,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:399,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:399,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - message_type
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 402
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::string
    - Key_Share_HelloRetryRequest
    - handshake_type_to_string
    - std::make_unique<Key_Share_Impl>
    - Key_Share_ServerHello
    - Key_Share_ClientHello
    linkageType: ''
    returnType: void
    signature: void Key_Share::Key_Share(TLS_Data_Reader& reader, uint16_t extension_size,
      Handshake_Type message_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:406,1
    - Dst: Key_Share_ClientHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 406
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Key_Share_Impl>
    - Key_Share_ClientHello
    linkageType: ''
    returnType: void
    signature: void Key_Share::Key_Share(const Policy& policy, Callbacks& cb, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:410,1
    - Dst: Key_Share_HelloRetryRequest
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - selected_group
    argTypes:
    - Named_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Key_Share_HelloRetryRequest
    - std::make_unique<Key_Share_Impl>
    linkageType: ''
    returnType: void
    signature: void Key_Share::Key_Share(Named_Group selected_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:418,1
    - Dst: Key_Share_ServerHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:418,1
    - Dst: std::get<Key_Share_ClientHello>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - selected_group
    - ' client_keyshare'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Group_Params
    - Key_Share
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Key_Share_Impl>
    - std::get<Key_Share_ClientHello>
    - Key_Share_ServerHello
    linkageType: ''
    returnType: void
    signature: "void Key_Share::Key_Share(Group_Params selected_group,\n                     const
      Key_Share& client_keyshare,\n                     const Policy& policy,\n                     Callbacks&
      cb,\n                     RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 421
    functionName: Key_Share::~Key_Share()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key_Share::~Key_Share()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:424,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 425
    functionName: Botan::TLS::Key_Share::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 10
    functionsReached:
    - std::visit
    - Botan::TLS::Key_Share::serialize
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Key_Share::serialize(Connection_Side /*whoami*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:428,1
    - Dst: Botan::TLS::Key_Share::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: Botan::TLS::Key_Share::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - std::visit
    - Botan::TLS::Key_Share::empty
    linkageType: ''
    returnType: bool
    signature: bool Key_Share::empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Key_Share>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:436,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - selected_group
    - ' client_keyshare'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Group_Params
    - Key_Share
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: Botan::TLS::Key_Share::create_as_encapsulation
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - Key_Share::Key_Share
    - std::unique_ptr<Key_Share>
    linkageType: ''
    returnType: std::unique_ptr<Key_Share>
    signature: "std::unique_ptr<Key_Share> Key_Share::create_as_encapsulation(Group_Params
      selected_group,\n                                                              const
      Key_Share& client_keyshare,\n                                                              const
      Policy& policy,\n                                                              Callbacks&
      cb,\n                                                              RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:443,1
    - Dst: Botan::TLS::Key_Share::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:444,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ' server_keyshare'
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 452
    functionName: Botan::TLS::Key_Share::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - std::visit
    - Invalid_Argument
    - Botan::TLS::Key_Share::decapsulate
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> Key_Share::decapsulate(const Key_Share& server_keyshare,\n
      \                                             const Policy& policy,\n                                              Callbacks&
      cb,\n                                              RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:455,1
    - Dst: Botan::TLS::Key_Share::offered_groups
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: Botan::TLS::Key_Share::offered_groups
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - std::visit
    - Botan::TLS::Key_Share::offered_groups
    linkageType: ''
    returnType: std::vector<Named_Group>
    signature: std::vector<Named_Group> Key_Share::offered_groups() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:459,1
    - Dst: Botan::TLS::Key_Share::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: Botan::TLS::Key_Share::selected_group
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 3
    functionsReached:
    - std::visit
    - Botan::TLS::Key_Share::selected_group
    linkageType: ''
    returnType: Named_Group
    signature: Named_Group Key_Share::selected_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:463,1
    - Dst: Botan::TLS::Key_Share::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:464,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 469
    functionName: Botan::TLS::Key_Share::take_shared_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Key_Share::take_shared_secret
    - std::visit
    - Invalid_Argument
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Key_Share::take_shared_secret()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:475,1
    - Dst: Botan::TLS::Key_Share::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:476,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:480,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:481,1
    - Dst: Botan::TLS::Key_Share::retry_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:484,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - ' retry_request_keyshare'
    - ' supported_groups'
    - ' cb'
    - ' rng'
    argTypes:
    - Key_Share
    - std::vector<Named_Group>
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 491
    functionName: Botan::TLS::Key_Share::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - Invalid_Argument
    - Botan::TLS::Key_Share::selected_group
    - value_exists
    - TLS_Exception
    - std::visit
    - Botan::TLS::Key_Share::retry_offer
    linkageType: ''
    returnType: void
    signature: "void Key_Share::retry_offer(const Key_Share& retry_request_keyshare,\n
      \                           const std::vector<Named_Group>& supported_groups,\n
      \                           Callbacks& cb,\n                            RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Cipher_State>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:126,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:126,1
    - Dst: Cipher_State::Cipher_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:126,1
    - Dst: auto::advance_without_psk
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:127,1
    - Dst: auto::advance_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:128,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - side
    - ' shared_secret'
    - ' cipher'
    - ' transcript_hash'
    - ' logger'
    argTypes:
    - Connection_Side
    - secure_vector<uint8_t>
    - Ciphersuite
    - Transcript_Hash
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: Botan::TLS::Cipher_State::init_with_server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 10
    functionsReached:
    - auto::advance_without_psk
    - std::move
    - auto::advance_with_server_hello
    - Cipher_State::Cipher_State
    - prf_algo
    - std::unique_ptr<Cipher_State>
    linkageType: ''
    returnType: std::unique_ptr<Cipher_State>
    signature: "std::unique_ptr<Cipher_State> Cipher_State::init_with_server_hello(const
      Connection_Side side,\n                                                                   secure_vector<uint8_t>&&
      shared_secret,\n                                                                   const
      Ciphersuite& cipher,\n                                                                   const
      Transcript_Hash& transcript_hash,\n                                                                   const
      Secret_Logger& logger)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Cipher_State>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:136,1
    - Dst: Cipher_State::Cipher_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:136,1
    - Dst: auto::advance_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:137,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - side
    - type
    - ' psk'
    - prf_algo
    argTypes:
    - Connection_Side
    - Cipher_State::PSK_Type
    - secure_vector<uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Cipher_State::init_with_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - std::unique_ptr<Cipher_State>
    - auto::advance_with_psk
    - Cipher_State::Cipher_State
    linkageType: ''
    returnType: std::unique_ptr<Cipher_State>
    signature: "std::unique_ptr<Cipher_State> Cipher_State::init_with_psk(const Connection_Side
      side,\n                                                          const Cipher_State::PSK_Type
      type,\n                                                          secure_vector<uint8_t>&&
      psk,\n                                                          std::string_view
      prf_algo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:142,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:144,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:152,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:158,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:160,1
    - Dst: Botan::TLS::Cipher_State::empty_hash
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:160,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' transcript_hash'
    - ' logger'
    argTypes:
    - Transcript_Hash
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: Botan::TLS::Cipher_State::advance_with_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - zap
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::empty_hash
    - BOTAN_ASSERT_NOMSG
    - maybe_log_secret
    linkageType: ''
    returnType: void
    signature: void Cipher_State::advance_with_client_hello(const Transcript_Hash&
      transcript_hash, const Secret_Logger& logger)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:167,1
    - Dst: Botan::TLS::Cipher_State::hkdf_extract
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:169,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:169,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:169,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:171,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:172,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:178,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:179,1
    - Dst: Botan::TLS::Cipher_State::derive_write_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:185,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:187,1
    - Dst: Botan::TLS::Cipher_State::derive_read_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:189,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:191,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:194,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - ' transcript_hash'
    - ' logger'
    argTypes:
    - Transcript_Hash
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 203
    functionName: Botan::TLS::Cipher_State::advance_with_server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - std::move
    - secure_vector<uint8_t>
    - Botan::TLS::Cipher_State::hkdf_extract
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - output_length
    - maybe_log_secret
    linkageType: ''
    returnType: void
    signature: void Cipher_State::advance_with_server_finished(const Transcript_Hash&
      transcript_hash, const Secret_Logger& logger)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:206,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:208,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:209,1
    - Dst: Botan::TLS::Cipher_State::derive_read_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:214,1
    - Dst: Botan::TLS::Cipher_State::derive_write_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:216,1
    - Dst: Botan::TLS::Cipher_State::hkdf_extract
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:219,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:219,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:219,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:221,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' transcript_hash'
    argTypes:
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 227
    functionName: Botan::TLS::Cipher_State::advance_with_client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - zap
    - Botan::TLS::Cipher_State::derive_secret
    - secure_vector<uint8_t>
    - Botan::TLS::Cipher_State::hkdf_extract
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - output_length
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    linkageType: ''
    returnType: void
    signature: void Cipher_State::advance_with_client_finished(const Transcript_Hash&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:241,1
    - Dst: last
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:241,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seq_no
    - iv
    argTypes:
    - uint64_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: Botan::TLS::current_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - last
    - xor_buf
    - store_be
    linkageType: ''
    returnType: auto
    signature: auto current_nonce(const uint64_t seq_no, std::span<const uint8_t>
      iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:241,1
    - Dst: last
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:241,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seq_no
    - iv
    argTypes:
    - uint64_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: Botan::TLS::current_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - last
    - xor_buf
    - store_be
    linkageType: ''
    returnType: auto
    signature: auto current_nonce(const uint64_t seq_no, std::span<const uint8_t>
      iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:249,1
    - Dst: set_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:251,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:252,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:253,1
    - Dst: current_nonce
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:253,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' header'
    - ' fragment'
    argTypes:
    - std::vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: Botan::TLS::Cipher_State::encrypt_record_fragment
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - finish
    - set_associated_data
    - start
    - BOTAN_ASSERT_NONNULL
    - current_nonce
    - set_key
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Cipher_State::encrypt_record_fragment(const std::vector<uint8_t>&
      header, secure_vector<uint8_t>& fragment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:261,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:262,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:262,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:262,1
    - Dst: set_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:264,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:265,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:266,1
    - Dst: current_nonce
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:266,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' header'
    - ' encrypted_fragment'
    argTypes:
    - std::vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 271
    functionName: Botan::TLS::Cipher_State::decrypt_record_fragment
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - finish
    - set_associated_data
    - start
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_NONNULL
    - minimum_final_size
    - size
    - current_nonce
    - set_key
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t Cipher_State::decrypt_record_fragment(const std::vector<uint8_t>&
      header,\n                                               secure_vector<uint8_t>&
      encrypted_fragment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:274,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: Botan::TLS::Cipher_State::encrypt_output_length
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - output_length
    linkageType: ''
    returnType: size_t
    signature: size_t Cipher_State::encrypt_output_length(const size_t input_length)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:279,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: Botan::TLS::Cipher_State::decrypt_output_length
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - output_length
    linkageType: ''
    returnType: size_t
    signature: size_t Cipher_State::decrypt_output_length(const size_t input_length)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:284,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: Botan::TLS::Cipher_State::minimum_decryption_input_length
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - minimum_final_size
    linkageType: ''
    returnType: size_t
    signature: size_t Cipher_State::minimum_decryption_input_length() const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 311
    functionName: Botan::TLS::Cipher_State::must_expect_unprotected_alert_traffic
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Cipher_State::must_expect_unprotected_alert_traffic() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:326,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 327
    functionName: Botan::TLS::Cipher_State::can_encrypt_application_traffic
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool Cipher_State::can_encrypt_application_traffic() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:342,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 343
    functionName: Botan::TLS::Cipher_State::can_decrypt_application_traffic
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool Cipher_State::can_decrypt_application_traffic() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:346,1
    - Dst: name
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: Botan::TLS::Cipher_State::hash_algorithm
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string Cipher_State::hash_algorithm() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usable_in_version
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:351,1
    - Dst: Botan::TLS::Cipher_State::hash_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:355,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:355,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:359,1
    - Dst: name
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:364,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:364,1
    - Dst: name
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:364,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ' cipher'
    argTypes:
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 369
    functionName: Botan::TLS::Cipher_State::is_compatible_with
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - usable_in_version
    - cipher_algo
    - Botan::TLS::Cipher_State::hash_algorithm
    - name
    - prf_algo
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: bool
    signature: bool Cipher_State::is_compatible_with(const Ciphersuite& cipher) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:373,1
    - Dst: HMAC
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:375,1
    - Dst: new_object
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:375,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:376,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:377,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' transcript_hash_with_truncated_client_hello'
    argTypes:
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 379
    functionName: Botan::TLS::Cipher_State::psk_binder_mac
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - auto::set_key
    - HMAC
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - auto::final_stdvec
    - new_object
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Cipher_State::psk_binder_mac(\n   const Transcript_Hash&
      transcript_hash_with_truncated_client_hello) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:382,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:383,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:384,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:384,1
    - Dst: HMAC
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:386,1
    - Dst: new_object
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:386,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:387,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:388,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' transcript_hash'
    argTypes:
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 390
    functionName: Botan::TLS::Cipher_State::finished_mac
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - auto::set_key
    - HMAC
    - auto::update
    - empty
    - BOTAN_ASSERT_NOMSG
    - auto::final_stdvec
    - new_object
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Cipher_State::finished_mac(const Transcript_Hash&
      transcript_hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:394,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:395,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:396,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:396,1
    - Dst: HMAC
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:398,1
    - Dst: new_object
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:398,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:399,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:400,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' transcript_hash'
    - ' peer_mac'
    argTypes:
    - Transcript_Hash
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: Botan::TLS::Cipher_State::verify_peer_finished_mac
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - auto::set_key
    - HMAC
    - auto::verify_mac
    - auto::update
    - empty
    - BOTAN_ASSERT_NOMSG
    - new_object
    linkageType: ''
    returnType: bool
    signature: "bool Cipher_State::verify_peer_finished_mac(const Transcript_Hash&
      transcript_hash,\n                                            const std::vector<uint8_t>&
      peer_mac) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:405,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:407,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - Ticket_Nonce
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: Botan::TLS::Cipher_State::psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - get
    - Botan::TLS::Cipher_State::derive_secret
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Cipher_State::psk(const Ticket_Nonce& nonce)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:411,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:412,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:413,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:417,1
    - Dst: Ticket_Nonce::data
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: Botan::TLS::Cipher_State::next_ticket_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - store_be
    - Invalid_State
    - Botan_Tests::random_bit_generator::max
    - Ticket_Nonce::data
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Ticket_Nonce
    signature: Ticket_Nonce Cipher_State::next_ticket_nonce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:423,1
    - Dst: can_export_keys
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:423,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:425,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:426,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:427,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:428,1
    - Dst: Botan::TLS::Cipher_State::empty_hash
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 429
    functionName: Botan::TLS::Cipher_State::export_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::empty_hash
    - final_stdvec
    - update
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - can_export_keys
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Cipher_State::export_key(std::string_view label,
      std::string_view context, size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HMAC>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:434,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: Botan::TLS::create_hmac
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HMAC>
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> create_hmac(std::string_view
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HMAC>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:434,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: Botan::TLS::create_hmac
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HMAC>
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> create_hmac(std::string_view
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HKDF_Extract>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:442,1
    - Dst: create_hmac
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:442,1
    - Dst: std::make_unique<HKDF_Expand>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:443,1
    - Dst: create_hmac
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:443,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:444,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - whoami
    - hash_function
    argTypes:
    - Connection_Side
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 450
    functionName: Botan::TLS::Cipher_State::Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - create_hmac
    - std::make_unique<HKDF_Expand>
    - output_length
    - std::make_unique<HKDF_Extract>
    linkageType: ''
    returnType: void
    signature: void Cipher_State::Cipher_State(Connection_Side whoami, std::string_view
      hash_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 452
    functionName: Cipher_State::~Cipher_State()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_State::~Cipher_State()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:455,1
    - Dst: Botan::TLS::Cipher_State::hkdf_extract
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:459,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:459,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:459,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:460,1
    - Dst: Botan::TLS::Cipher_State::empty_hash
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 464
    functionName: Botan::TLS::Cipher_State::advance_without_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::derive_secret
    - secure_vector<uint8_t>
    - Botan::TLS::Cipher_State::empty_hash
    - Botan::TLS::Cipher_State::hkdf_extract
    - BOTAN_ASSERT_NOMSG
    - output_length
    linkageType: ''
    returnType: void
    signature: void Cipher_State::advance_without_psk()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:467,1
    - Dst: Botan::TLS::Cipher_State::hkdf_extract
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:469,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:469,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:479,1
    - Dst: Botan::TLS::Cipher_State::empty_hash
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:479,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:480,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - ' psk'
    argTypes:
    - PSK_Type
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 483
    functionName: Botan::TLS::Cipher_State::advance_with_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - output_length
    - Botan::TLS::Cipher_State::derive_secret
    - std::move
    - Botan::TLS::Cipher_State::empty_hash
    - Botan::TLS::Cipher_State::hkdf_extract
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_expand_label
    linkageType: ''
    returnType: void
    signature: void Cipher_State::advance_with_psk(PSK_Type type, secure_vector<uint8_t>&&
      psk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:489,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:490,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:491,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:492,1
    - Dst: Botan::TLS::Cipher_State::is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:492,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:494,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:494,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:495,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:495,1
    - Dst: Botan::TLS::Cipher_State::hkdf_extract
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:497,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:497,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:499,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:500,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:506,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:507,1
    - Dst: Botan::TLS::Cipher_State::derive_read_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:510,1
    - Dst: Botan::TLS::Cipher_State::derive_write_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:511,1
    - Dst: Botan::TLS::Cipher_State::derive_read_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:513,1
    - Dst: Botan::TLS::Cipher_State::derive_write_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:514,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:517,1
    - Dst: Botan::TLS::Cipher_State::empty_hash
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - ' cipher'
    - ' shared_secret'
    - ' transcript_hash'
    - ' logger'
    argTypes:
    - Ciphersuite
    - secure_vector<uint8_t>
    - Transcript_Hash
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 520
    functionName: Botan::TLS::Cipher_State::advance_with_server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::derive_secret
    - std::move
    - cipher_algo
    - Botan::AEAD_Mode::create_or_throw
    - Botan::TLS::Cipher_State::is_compatible_with
    - Botan::TLS::Cipher_State::empty_hash
    - Botan::TLS::Cipher_State::hkdf_extract
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - maybe_log_secret
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: "void Cipher_State::advance_with_server_hello(const Ciphersuite& cipher,\n
      \                                            secure_vector<uint8_t>&& shared_secret,\n
      \                                            const Transcript_Hash& transcript_hash,\n
      \                                            const Secret_Logger& logger)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:524,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:526,1
    - Dst: minimum_keylength
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:526,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:527,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:533,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' traffic_secret'
    - handshake_traffic_secret
    argTypes:
    - secure_vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 535
    functionName: Botan::TLS::Cipher_State::derive_write_traffic_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 3
    functionsReached:
    - minimum_keylength
    - output_length
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Cipher_State::hkdf_expand_label
    linkageType: ''
    returnType: void
    signature: "void Cipher_State::derive_write_traffic_key(const secure_vector<uint8_t>&
      traffic_secret,\n                                            const bool handshake_traffic_secret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:539,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:541,1
    - Dst: minimum_keylength
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:541,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:542,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:548,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' traffic_secret'
    - handshake_traffic_secret
    argTypes:
    - secure_vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 550
    functionName: Botan::TLS::Cipher_State::derive_read_traffic_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 3
    functionsReached:
    - minimum_keylength
    - output_length
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Cipher_State::hkdf_expand_label
    linkageType: ''
    returnType: void
    signature: "void Cipher_State::derive_read_traffic_key(const secure_vector<uint8_t>&
      traffic_secret,\n                                           const bool handshake_traffic_secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: derive_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:553,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:553,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ikm
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 554
    functionName: Botan::TLS::Cipher_State::hkdf_extract
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 5
    functionsReached:
    - derive_key
    - std::vector<uint8_t>
    - output_length
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Cipher_State::hkdf_extract(std::span<const uint8_t>
      ikm) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:562,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:562,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:563,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:566,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:566,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:567,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:568,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:568,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:569,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:569,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:573,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:573,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:573,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:574,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:574,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:574,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:574,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:575,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:575,1
    - Dst: std::string::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:575,1
    - Dst: std::string::cend
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:575,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:576,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:576,1
    - Dst: std::string_view::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:576,1
    - Dst: std::string_view::cend
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:576,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:579,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:579,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:580,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:580,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:580,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:581,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:581,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:581,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:581,1
    - Dst: derive_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:584,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - ' secret'
    - label
    - ' context'
    - length
    argTypes:
    - secure_vector<uint8_t>
    - std::string_view
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 586
    functionName: Botan::TLS::Cipher_State::hkdf_expand_label
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - secure_vector::end
    - get_byte<1>
    - get_byte<0>
    - std::string_view::cend
    - BOTAN_ARG_CHECK
    - static_cast<uint8_t>
    - std::string_view::cbegin
    - cend
    - secure_vector::reserve
    - secure_vector::push_back
    - std::string::size
    - cbegin
    - std::string::cend
    - std::vector<uint8_t>
    - static_cast<uint16_t>
    - size
    - std::string::cbegin
    - derive_key
    - secure_vector::insert
    - std::string_view::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> Cipher_State::hkdf_expand_label(const secure_vector<uint8_t>&
      secret,\n                                                       std::string_view
      label,\n                                                       const std::vector<uint8_t>&
      context,\n                                                       const size_t
      length) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:591,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' secret'
    - label
    - ' messages_hash'
    argTypes:
    - secure_vector<uint8_t>
    - std::string_view
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: Botan::TLS::Cipher_State::derive_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 8
    functionsReached:
    - output_length
    - Botan::TLS::Cipher_State::hkdf_expand_label
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> Cipher_State::derive_secret(const secure_vector<uint8_t>&
      secret,\n                                                   std::string_view
      label,\n                                                   const Transcript_Hash&
      messages_hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:595,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 597
    functionName: Botan::TLS::Cipher_State::empty_hash
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 5
    functionsReached:
    - final_stdvec
    - update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Cipher_State::empty_hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:600,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:603,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:603,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:605,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:608,1
    - Dst: Botan::TLS::Cipher_State::derive_read_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' logger'
    argTypes:
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 611
    functionName: Botan::TLS::Cipher_State::update_read_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - output_length
    - maybe_log_secret
    - fmt
    linkageType: ''
    returnType: void
    signature: void Cipher_State::update_read_keys(const Secret_Logger& logger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:614,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:616,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:616,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:618,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:621,1
    - Dst: Botan::TLS::Cipher_State::derive_write_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' logger'
    argTypes:
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 624
    functionName: Botan::TLS::Cipher_State::update_write_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - output_length
    - maybe_log_secret
    - fmt
    linkageType: ''
    returnType: void
    signature: void Cipher_State::update_write_keys(const Secret_Logger& logger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:627,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:628,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 630
    functionName: Botan::TLS::Cipher_State::clear_read_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - zap
    linkageType: ''
    returnType: void
    signature: void Cipher_State::clear_read_keys()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:633,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:634,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: Botan::TLS::Cipher_State::clear_write_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - zap
    linkageType: ''
    returnType: void
    signature: void Cipher_State::clear_write_keys()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Cipher_State>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:126,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:126,1
    - Dst: Cipher_State::Cipher_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:126,1
    - Dst: auto::advance_without_psk
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:127,1
    - Dst: auto::advance_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:128,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - side
    - ' shared_secret'
    - ' cipher'
    - ' transcript_hash'
    - ' logger'
    argTypes:
    - Connection_Side
    - secure_vector<uint8_t>
    - Ciphersuite
    - Transcript_Hash
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: Botan::TLS::Cipher_State::init_with_server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 10
    functionsReached:
    - auto::advance_without_psk
    - std::move
    - auto::advance_with_server_hello
    - Cipher_State::Cipher_State
    - prf_algo
    - std::unique_ptr<Cipher_State>
    linkageType: ''
    returnType: std::unique_ptr<Cipher_State>
    signature: "std::unique_ptr<Cipher_State> Cipher_State::init_with_server_hello(const
      Connection_Side side,\n                                                                   secure_vector<uint8_t>&&
      shared_secret,\n                                                                   const
      Ciphersuite& cipher,\n                                                                   const
      Transcript_Hash& transcript_hash,\n                                                                   const
      Secret_Logger& logger)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Cipher_State>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:136,1
    - Dst: Cipher_State::Cipher_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:136,1
    - Dst: auto::advance_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:137,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - side
    - type
    - ' psk'
    - prf_algo
    argTypes:
    - Connection_Side
    - Cipher_State::PSK_Type
    - secure_vector<uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Cipher_State::init_with_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - std::unique_ptr<Cipher_State>
    - auto::advance_with_psk
    - Cipher_State::Cipher_State
    linkageType: ''
    returnType: std::unique_ptr<Cipher_State>
    signature: "std::unique_ptr<Cipher_State> Cipher_State::init_with_psk(const Connection_Side
      side,\n                                                          const Cipher_State::PSK_Type
      type,\n                                                          secure_vector<uint8_t>&&
      psk,\n                                                          std::string_view
      prf_algo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:142,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:144,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:152,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:158,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:160,1
    - Dst: Botan::TLS::Cipher_State::empty_hash
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:160,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' transcript_hash'
    - ' logger'
    argTypes:
    - Transcript_Hash
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: Botan::TLS::Cipher_State::advance_with_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - zap
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::empty_hash
    - BOTAN_ASSERT_NOMSG
    - maybe_log_secret
    linkageType: ''
    returnType: void
    signature: void Cipher_State::advance_with_client_hello(const Transcript_Hash&
      transcript_hash, const Secret_Logger& logger)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:167,1
    - Dst: Botan::TLS::Cipher_State::hkdf_extract
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:169,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:169,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:169,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:171,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:172,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:178,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:179,1
    - Dst: Botan::TLS::Cipher_State::derive_write_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:185,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:187,1
    - Dst: Botan::TLS::Cipher_State::derive_read_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:189,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:191,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:194,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - ' transcript_hash'
    - ' logger'
    argTypes:
    - Transcript_Hash
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 203
    functionName: Botan::TLS::Cipher_State::advance_with_server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - std::move
    - secure_vector<uint8_t>
    - Botan::TLS::Cipher_State::hkdf_extract
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - output_length
    - maybe_log_secret
    linkageType: ''
    returnType: void
    signature: void Cipher_State::advance_with_server_finished(const Transcript_Hash&
      transcript_hash, const Secret_Logger& logger)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:206,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:208,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:209,1
    - Dst: Botan::TLS::Cipher_State::derive_read_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:214,1
    - Dst: Botan::TLS::Cipher_State::derive_write_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:216,1
    - Dst: Botan::TLS::Cipher_State::hkdf_extract
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:219,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:219,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:219,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:221,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' transcript_hash'
    argTypes:
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 227
    functionName: Botan::TLS::Cipher_State::advance_with_client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - zap
    - Botan::TLS::Cipher_State::derive_secret
    - secure_vector<uint8_t>
    - Botan::TLS::Cipher_State::hkdf_extract
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - output_length
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    linkageType: ''
    returnType: void
    signature: void Cipher_State::advance_with_client_finished(const Transcript_Hash&
      transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:241,1
    - Dst: last
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:241,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seq_no
    - iv
    argTypes:
    - uint64_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: Botan::TLS::current_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - last
    - xor_buf
    - store_be
    linkageType: ''
    returnType: auto
    signature: auto current_nonce(const uint64_t seq_no, std::span<const uint8_t>
      iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:241,1
    - Dst: last
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:241,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seq_no
    - iv
    argTypes:
    - uint64_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: Botan::TLS::current_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - last
    - xor_buf
    - store_be
    linkageType: ''
    returnType: auto
    signature: auto current_nonce(const uint64_t seq_no, std::span<const uint8_t>
      iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:249,1
    - Dst: set_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:251,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:252,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:253,1
    - Dst: current_nonce
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:253,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' header'
    - ' fragment'
    argTypes:
    - std::vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: Botan::TLS::Cipher_State::encrypt_record_fragment
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - finish
    - set_associated_data
    - start
    - BOTAN_ASSERT_NONNULL
    - current_nonce
    - set_key
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Cipher_State::encrypt_record_fragment(const std::vector<uint8_t>&
      header, secure_vector<uint8_t>& fragment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:261,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:262,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:262,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:262,1
    - Dst: set_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:264,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:265,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:266,1
    - Dst: current_nonce
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:266,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' header'
    - ' encrypted_fragment'
    argTypes:
    - std::vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 271
    functionName: Botan::TLS::Cipher_State::decrypt_record_fragment
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - finish
    - set_associated_data
    - start
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_NONNULL
    - minimum_final_size
    - size
    - current_nonce
    - set_key
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t Cipher_State::decrypt_record_fragment(const std::vector<uint8_t>&
      header,\n                                               secure_vector<uint8_t>&
      encrypted_fragment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:274,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: Botan::TLS::Cipher_State::encrypt_output_length
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - output_length
    linkageType: ''
    returnType: size_t
    signature: size_t Cipher_State::encrypt_output_length(const size_t input_length)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:279,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: Botan::TLS::Cipher_State::decrypt_output_length
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - output_length
    linkageType: ''
    returnType: size_t
    signature: size_t Cipher_State::decrypt_output_length(const size_t input_length)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:284,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: Botan::TLS::Cipher_State::minimum_decryption_input_length
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - minimum_final_size
    linkageType: ''
    returnType: size_t
    signature: size_t Cipher_State::minimum_decryption_input_length() const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 311
    functionName: Botan::TLS::Cipher_State::must_expect_unprotected_alert_traffic
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Cipher_State::must_expect_unprotected_alert_traffic() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:326,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 327
    functionName: Botan::TLS::Cipher_State::can_encrypt_application_traffic
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool Cipher_State::can_encrypt_application_traffic() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:342,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 343
    functionName: Botan::TLS::Cipher_State::can_decrypt_application_traffic
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool Cipher_State::can_decrypt_application_traffic() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:346,1
    - Dst: name
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: Botan::TLS::Cipher_State::hash_algorithm
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string Cipher_State::hash_algorithm() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usable_in_version
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:351,1
    - Dst: Botan::TLS::Cipher_State::hash_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:355,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:355,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:359,1
    - Dst: name
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:364,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:364,1
    - Dst: name
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:364,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ' cipher'
    argTypes:
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 369
    functionName: Botan::TLS::Cipher_State::is_compatible_with
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 1
    functionsReached:
    - usable_in_version
    - cipher_algo
    - Botan::TLS::Cipher_State::hash_algorithm
    - name
    - prf_algo
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: bool
    signature: bool Cipher_State::is_compatible_with(const Ciphersuite& cipher) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:373,1
    - Dst: HMAC
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:375,1
    - Dst: new_object
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:375,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:376,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:377,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' transcript_hash_with_truncated_client_hello'
    argTypes:
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 379
    functionName: Botan::TLS::Cipher_State::psk_binder_mac
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - auto::set_key
    - HMAC
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - auto::final_stdvec
    - new_object
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Cipher_State::psk_binder_mac(\n   const Transcript_Hash&
      transcript_hash_with_truncated_client_hello) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:382,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:383,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:384,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:384,1
    - Dst: HMAC
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:386,1
    - Dst: new_object
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:386,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:387,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:388,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' transcript_hash'
    argTypes:
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 390
    functionName: Botan::TLS::Cipher_State::finished_mac
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - auto::set_key
    - HMAC
    - auto::update
    - empty
    - BOTAN_ASSERT_NOMSG
    - auto::final_stdvec
    - new_object
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Cipher_State::finished_mac(const Transcript_Hash&
      transcript_hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:394,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:395,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:396,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:396,1
    - Dst: HMAC
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:398,1
    - Dst: new_object
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:398,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:399,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:400,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' transcript_hash'
    - ' peer_mac'
    argTypes:
    - Transcript_Hash
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: Botan::TLS::Cipher_State::verify_peer_finished_mac
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - auto::set_key
    - HMAC
    - auto::verify_mac
    - auto::update
    - empty
    - BOTAN_ASSERT_NOMSG
    - new_object
    linkageType: ''
    returnType: bool
    signature: "bool Cipher_State::verify_peer_finished_mac(const Transcript_Hash&
      transcript_hash,\n                                            const std::vector<uint8_t>&
      peer_mac) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:405,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:407,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - Ticket_Nonce
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: Botan::TLS::Cipher_State::psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - get
    - Botan::TLS::Cipher_State::derive_secret
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Cipher_State::psk(const Ticket_Nonce& nonce)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:411,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:412,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:413,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:417,1
    - Dst: Ticket_Nonce::data
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: Botan::TLS::Cipher_State::next_ticket_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - store_be
    - Invalid_State
    - Botan_Tests::random_bit_generator::max
    - Ticket_Nonce::data
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Ticket_Nonce
    signature: Ticket_Nonce Cipher_State::next_ticket_nonce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:423,1
    - Dst: can_export_keys
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:423,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:425,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:426,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:427,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:428,1
    - Dst: Botan::TLS::Cipher_State::empty_hash
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 429
    functionName: Botan::TLS::Cipher_State::export_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::empty_hash
    - final_stdvec
    - update
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - can_export_keys
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Cipher_State::export_key(std::string_view label,
      std::string_view context, size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HMAC>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:434,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: Botan::TLS::create_hmac
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HMAC>
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> create_hmac(std::string_view
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HMAC>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:434,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: Botan::TLS::create_hmac
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HMAC>
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> create_hmac(std::string_view
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HKDF_Extract>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:442,1
    - Dst: create_hmac
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:442,1
    - Dst: std::make_unique<HKDF_Expand>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:443,1
    - Dst: create_hmac
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:443,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:444,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - whoami
    - hash_function
    argTypes:
    - Connection_Side
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 450
    functionName: Botan::TLS::Cipher_State::Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - create_hmac
    - std::make_unique<HKDF_Expand>
    - output_length
    - std::make_unique<HKDF_Extract>
    linkageType: ''
    returnType: void
    signature: void Cipher_State::Cipher_State(Connection_Side whoami, std::string_view
      hash_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 452
    functionName: Cipher_State::~Cipher_State()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_State::~Cipher_State()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:455,1
    - Dst: Botan::TLS::Cipher_State::hkdf_extract
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:459,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:459,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:459,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:460,1
    - Dst: Botan::TLS::Cipher_State::empty_hash
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 464
    functionName: Botan::TLS::Cipher_State::advance_without_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::derive_secret
    - secure_vector<uint8_t>
    - Botan::TLS::Cipher_State::empty_hash
    - Botan::TLS::Cipher_State::hkdf_extract
    - BOTAN_ASSERT_NOMSG
    - output_length
    linkageType: ''
    returnType: void
    signature: void Cipher_State::advance_without_psk()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:467,1
    - Dst: Botan::TLS::Cipher_State::hkdf_extract
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:469,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:469,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:479,1
    - Dst: Botan::TLS::Cipher_State::empty_hash
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:479,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:480,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - ' psk'
    argTypes:
    - PSK_Type
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 483
    functionName: Botan::TLS::Cipher_State::advance_with_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - output_length
    - Botan::TLS::Cipher_State::derive_secret
    - std::move
    - Botan::TLS::Cipher_State::empty_hash
    - Botan::TLS::Cipher_State::hkdf_extract
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_expand_label
    linkageType: ''
    returnType: void
    signature: void Cipher_State::advance_with_psk(PSK_Type type, secure_vector<uint8_t>&&
      psk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:489,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:490,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:491,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:492,1
    - Dst: Botan::TLS::Cipher_State::is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:492,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:494,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:494,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:495,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:495,1
    - Dst: Botan::TLS::Cipher_State::hkdf_extract
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:497,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:497,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:499,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:500,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:506,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:507,1
    - Dst: Botan::TLS::Cipher_State::derive_read_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:510,1
    - Dst: Botan::TLS::Cipher_State::derive_write_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:511,1
    - Dst: Botan::TLS::Cipher_State::derive_read_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:513,1
    - Dst: Botan::TLS::Cipher_State::derive_write_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:514,1
    - Dst: Botan::TLS::Cipher_State::derive_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:517,1
    - Dst: Botan::TLS::Cipher_State::empty_hash
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - ' cipher'
    - ' shared_secret'
    - ' transcript_hash'
    - ' logger'
    argTypes:
    - Ciphersuite
    - secure_vector<uint8_t>
    - Transcript_Hash
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 520
    functionName: Botan::TLS::Cipher_State::advance_with_server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::derive_secret
    - std::move
    - cipher_algo
    - Botan::AEAD_Mode::create_or_throw
    - Botan::TLS::Cipher_State::is_compatible_with
    - Botan::TLS::Cipher_State::empty_hash
    - Botan::TLS::Cipher_State::hkdf_extract
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - maybe_log_secret
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: "void Cipher_State::advance_with_server_hello(const Ciphersuite& cipher,\n
      \                                            secure_vector<uint8_t>&& shared_secret,\n
      \                                            const Transcript_Hash& transcript_hash,\n
      \                                            const Secret_Logger& logger)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:524,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:526,1
    - Dst: minimum_keylength
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:526,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:527,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:533,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' traffic_secret'
    - handshake_traffic_secret
    argTypes:
    - secure_vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 535
    functionName: Botan::TLS::Cipher_State::derive_write_traffic_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 7
    functionsReached:
    - minimum_keylength
    - output_length
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Cipher_State::hkdf_expand_label
    linkageType: ''
    returnType: void
    signature: "void Cipher_State::derive_write_traffic_key(const secure_vector<uint8_t>&
      traffic_secret,\n                                            const bool handshake_traffic_secret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:539,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:541,1
    - Dst: minimum_keylength
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:541,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:542,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:548,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' traffic_secret'
    - handshake_traffic_secret
    argTypes:
    - secure_vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 550
    functionName: Botan::TLS::Cipher_State::derive_read_traffic_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 7
    functionsReached:
    - minimum_keylength
    - output_length
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Cipher_State::hkdf_expand_label
    linkageType: ''
    returnType: void
    signature: "void Cipher_State::derive_read_traffic_key(const secure_vector<uint8_t>&
      traffic_secret,\n                                           const bool handshake_traffic_secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: derive_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:553,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:553,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ikm
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 554
    functionName: Botan::TLS::Cipher_State::hkdf_extract
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 10
    functionsReached:
    - derive_key
    - std::vector<uint8_t>
    - output_length
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Cipher_State::hkdf_extract(std::span<const uint8_t>
      ikm) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:562,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:562,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:563,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:566,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:566,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:567,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:568,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:568,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:569,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:569,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:573,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:573,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:573,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:574,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:574,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:574,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:574,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:575,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:575,1
    - Dst: std::string::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:575,1
    - Dst: std::string::cend
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:575,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:576,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:576,1
    - Dst: std::string_view::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:576,1
    - Dst: std::string_view::cend
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:576,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:579,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:579,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:580,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:580,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:580,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:581,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:581,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:581,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:581,1
    - Dst: derive_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:584,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - ' secret'
    - label
    - ' context'
    - length
    argTypes:
    - secure_vector<uint8_t>
    - std::string_view
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 586
    functionName: Botan::TLS::Cipher_State::hkdf_expand_label
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 11
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - secure_vector::end
    - get_byte<1>
    - get_byte<0>
    - std::string_view::cend
    - BOTAN_ARG_CHECK
    - static_cast<uint8_t>
    - std::string_view::cbegin
    - cend
    - secure_vector::reserve
    - secure_vector::push_back
    - std::string::size
    - cbegin
    - std::string::cend
    - std::vector<uint8_t>
    - static_cast<uint16_t>
    - size
    - std::string::cbegin
    - derive_key
    - secure_vector::insert
    - std::string_view::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> Cipher_State::hkdf_expand_label(const secure_vector<uint8_t>&
      secret,\n                                                       std::string_view
      label,\n                                                       const std::vector<uint8_t>&
      context,\n                                                       const size_t
      length) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:591,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' secret'
    - label
    - ' messages_hash'
    argTypes:
    - secure_vector<uint8_t>
    - std::string_view
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: Botan::TLS::Cipher_State::derive_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 16
    functionsReached:
    - output_length
    - Botan::TLS::Cipher_State::hkdf_expand_label
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> Cipher_State::derive_secret(const secure_vector<uint8_t>&
      secret,\n                                                   std::string_view
      label,\n                                                   const Transcript_Hash&
      messages_hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:595,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 597
    functionName: Botan::TLS::Cipher_State::empty_hash
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 10
    functionsReached:
    - final_stdvec
    - update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Cipher_State::empty_hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:600,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:603,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:603,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:605,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:608,1
    - Dst: Botan::TLS::Cipher_State::derive_read_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' logger'
    argTypes:
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 611
    functionName: Botan::TLS::Cipher_State::update_read_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - output_length
    - maybe_log_secret
    - fmt
    linkageType: ''
    returnType: void
    signature: void Cipher_State::update_read_keys(const Secret_Logger& logger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:614,1
    - Dst: Botan::TLS::Cipher_State::hkdf_expand_label
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:616,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:616,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:618,1
    - Dst: maybe_log_secret
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:621,1
    - Dst: Botan::TLS::Cipher_State::derive_write_traffic_key
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' logger'
    argTypes:
    - Secret_Logger
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 624
    functionName: Botan::TLS::Cipher_State::update_write_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - output_length
    - maybe_log_secret
    - fmt
    linkageType: ''
    returnType: void
    signature: void Cipher_State::update_write_keys(const Secret_Logger& logger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:627,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:628,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 630
    functionName: Botan::TLS::Cipher_State::clear_read_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - zap
    linkageType: ''
    returnType: void
    signature: void Cipher_State::clear_read_keys()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:633,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:634,1
    - Dst: zap
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: Botan::TLS::Cipher_State::clear_write_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - zap
    linkageType: ''
    returnType: void
    signature: void Cipher_State::clear_write_keys()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: static_cast<lifetime_t>
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sink
    - lifetime
    argTypes:
    - std::span<uint8_t>
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::TLS::store_lifetime
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::data
    - static_cast<lifetime_t>
    - BOTAN_ARG_CHECK
    - store_be
    - std::chrono::seconds::count
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: void
    signature: void store_lifetime(std::span<uint8_t> sink, std::chrono::seconds lifetime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: static_cast<lifetime_t>
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sink
    - lifetime
    argTypes:
    - std::span<uint8_t>
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::TLS::store_lifetime
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::data
    - static_cast<lifetime_t>
    - BOTAN_ARG_CHECK
    - store_be
    - std::chrono::seconds::count
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: void
    signature: void store_lifetime(std::span<uint8_t> sink, std::chrono::seconds lifetime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lifetime_hint
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:38,1
    - Dst: session_age_add
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:39,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:40,1
    - Dst: opaque_handle
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:41,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:42,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - nonce
    - ' session'
    - ' handle'
    - ' callbacks'
    argTypes:
    - Ticket_Nonce
    - Session
    - Session_Handle
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: Botan::TLS::New_Session_Ticket_13::New_Session_Ticket_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - tls_modify_extensions
    - session_age_add
    - opaque_handle
    - lifetime_hint
    - type
    linkageType: ''
    returnType: void
    signature: "void New_Session_Ticket_13::New_Session_Ticket_13(Ticket_Nonce nonce,\n
      \                                            const Session& session,\n                                             const
      Session_Handle& handle,\n                                             Callbacks&
      callbacks)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:48,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:48,1
    - Dst: std::chrono::days
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:53,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:54,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:57,1
    - Dst: Ticket_Nonce
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:58,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:58,1
    - Dst: Opaque_Session_Handle
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:59,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:59,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:61,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:61,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:67,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:68,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' buf'
    - from
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 72
    functionName: Botan::TLS::New_Session_Ticket_13::New_Session_Ticket_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 0
    functionsReached:
    - Opaque_Session_Handle
    - TLS_Data_Reader::get_tls_length_value
    - Ticket_Nonce
    - TLS_Exception
    - Botan_CLI::Timer::seconds
    - std::chrono::days
    - TLS_Data_Reader::assert_done
    - contains_implemented_extensions_other_than
    - TLS_Data_Reader::get_uint32_t
    - deserialize
    - type
    linkageType: ''
    returnType: void
    signature: void New_Session_Ticket_13::New_Session_Ticket_13(const std::vector<uint8_t>&
      buf, Connection_Side from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:75,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:79,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:80,1
    - Dst: EarlyDataIndication*::max_early_data_size
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:80,1
    - Dst: EarlyDataIndication*::max_early_data_size
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: Botan::TLS::New_Session_Ticket_13::early_data_byte_limit
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 0
    functionsReached:
    - EarlyDataIndication*::max_early_data_size
    - BOTAN_ASSERT_NOMSG
    - get
    - has
    linkageType: ''
    returnType: std::optional<uint32_t>
    signature: std::optional<uint32_t> New_Session_Ticket_13::early_data_byte_limit()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store_lifetime
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:87,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:87,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:87,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:88,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:89,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:89,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:90,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:90,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:93,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:94,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:95,1
    - Dst: Botan::TLS::New_Session_Ticket_13::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 101
    functionName: Botan::TLS::New_Session_Ticket_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 1
    functionsReached:
    - store_lifetime
    - std::vector::push_back
    - get
    - std::vector::data
    - std::span
    - store_be
    - Botan::TLS::New_Session_Ticket_13::serialize
    - append_tls_length_value
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> New_Session_Ticket_13::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: static_cast<lifetime_t>
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sink
    - lifetime
    argTypes:
    - std::span<uint8_t>
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::TLS::store_lifetime
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::data
    - static_cast<lifetime_t>
    - BOTAN_ARG_CHECK
    - store_be
    - std::chrono::seconds::count
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: void
    signature: void store_lifetime(std::span<uint8_t> sink, std::chrono::seconds lifetime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:27,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: static_cast<lifetime_t>
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sink
    - lifetime
    argTypes:
    - std::span<uint8_t>
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::TLS::store_lifetime
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::data
    - static_cast<lifetime_t>
    - BOTAN_ARG_CHECK
    - store_be
    - std::chrono::seconds::count
    - Botan_Tests::random_bit_generator::max
    linkageType: ''
    returnType: void
    signature: void store_lifetime(std::span<uint8_t> sink, std::chrono::seconds lifetime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lifetime_hint
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:38,1
    - Dst: session_age_add
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:39,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:40,1
    - Dst: opaque_handle
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:41,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:42,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - nonce
    - ' session'
    - ' handle'
    - ' callbacks'
    argTypes:
    - Ticket_Nonce
    - Session
    - Session_Handle
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: Botan::TLS::New_Session_Ticket_13::New_Session_Ticket_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - tls_modify_extensions
    - session_age_add
    - opaque_handle
    - lifetime_hint
    - type
    linkageType: ''
    returnType: void
    signature: "void New_Session_Ticket_13::New_Session_Ticket_13(Ticket_Nonce nonce,\n
      \                                            const Session& session,\n                                             const
      Session_Handle& handle,\n                                             Callbacks&
      callbacks)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:48,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:48,1
    - Dst: std::chrono::days
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:53,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:54,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:57,1
    - Dst: Ticket_Nonce
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:58,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:58,1
    - Dst: Opaque_Session_Handle
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:59,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:59,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:61,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:61,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:67,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:68,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' buf'
    - from
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 72
    functionName: Botan::TLS::New_Session_Ticket_13::New_Session_Ticket_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 0
    functionsReached:
    - Opaque_Session_Handle
    - TLS_Data_Reader::get_tls_length_value
    - Ticket_Nonce
    - TLS_Exception
    - Botan_CLI::Timer::seconds
    - std::chrono::days
    - TLS_Data_Reader::assert_done
    - contains_implemented_extensions_other_than
    - TLS_Data_Reader::get_uint32_t
    - deserialize
    - type
    linkageType: ''
    returnType: void
    signature: void New_Session_Ticket_13::New_Session_Ticket_13(const std::vector<uint8_t>&
      buf, Connection_Side from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:75,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:79,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:80,1
    - Dst: EarlyDataIndication*::max_early_data_size
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:80,1
    - Dst: EarlyDataIndication*::max_early_data_size
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: Botan::TLS::New_Session_Ticket_13::early_data_byte_limit
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 0
    functionsReached:
    - EarlyDataIndication*::max_early_data_size
    - BOTAN_ASSERT_NOMSG
    - get
    - has
    linkageType: ''
    returnType: std::optional<uint32_t>
    signature: std::optional<uint32_t> New_Session_Ticket_13::early_data_byte_limit()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store_lifetime
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:87,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:87,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:87,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:88,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:89,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:89,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:90,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:90,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:93,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:94,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:95,1
    - Dst: Botan::TLS::New_Session_Ticket_13::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 101
    functionName: Botan::TLS::New_Session_Ticket_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_session_ticket_13.cpp
    functionUses: 2
    functionsReached:
    - store_lifetime
    - std::vector::push_back
    - get
    - std::vector::data
    - std::span
    - store_be
    - Botan::TLS::New_Session_Ticket_13::serialize
    - append_tls_length_value
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> New_Session_Ticket_13::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Transcript_Hash_State
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h:34,1
    - Dst: Botan::TLS::Transcript_Hash_State
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 99
    functionName: Botan::TLS::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::Transcript_Hash_State
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Transcript_Hash_State
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Transcript_Hash_State
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h:34,1
    - Dst: Botan::TLS::Transcript_Hash_State
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 99
    functionName: Botan::TLS::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Transcript_Hash_State
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Transcript_Hash_State
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::identity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::obfuscated_age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t obfuscated_age() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::identity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::obfuscated_age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_psk_identity_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t obfuscated_age() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - IteratorT
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: Botan::TLS::verify_change_cipher_spec
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool verify_change_cipher_spec(const IteratorT data, const size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:39,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:40,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:41,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:42,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:43,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - type_byte
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: Botan::TLS::read_record_type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - static_cast<Record_Type>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Record_Type
    signature: Record_Type read_record_type(const uint8_t type_byte)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: read_record_type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:56,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:57,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:57,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:59,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:64,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:65,1
    - Dst: version_code
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:71,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:72,1
    - Dst: Botan::TLS::TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:81,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:82,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:96,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:109,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - hdr
    - check_tls13_version
    argTypes:
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 112
    functionName: Botan::TLS::TLSPlaintext_Header::TLSPlaintext_Header
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - major_version
    - Protocol_Version
    - std::move
    - version_code
    - make_uint16
    - TLS_Exception
    - read_record_type
    - Botan::TLS::TLSPlaintext_Header::type
    linkageType: ''
    returnType: void
    signature: void TLSPlaintext_Header(std::vector<uint8_t> hdr, const bool check_tls13_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:122,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:123,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:124,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:125,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - record_type
    - frgmnt_length
    - use_compatibility_version
    argTypes:
    - Record_Type
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: Botan::TLS::TLSPlaintext_Header::TLSPlaintext_Header
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - major_version
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - minor_version
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: "void TLSPlaintext_Header(const Record_Type record_type,\n                          const
      size_t frgmnt_length,\n                          const bool use_compatibility_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan::TLS::TLSPlaintext_Header::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Record_Type
    signature: Record_Type type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::TLS::TLSPlaintext_Header::fragment_length
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t fragment_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::TLSPlaintext_Header::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: '& serialized() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & serialized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - IteratorT
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: Botan::TLS::verify_change_cipher_spec
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool verify_change_cipher_spec(const IteratorT data, const size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:39,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:40,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:41,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:42,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:43,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - type_byte
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: Botan::TLS::read_record_type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - static_cast<Record_Type>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Record_Type
    signature: Record_Type read_record_type(const uint8_t type_byte)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: read_record_type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:56,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:57,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:57,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:59,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:64,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:65,1
    - Dst: version_code
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:71,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:72,1
    - Dst: Botan::TLS::TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:81,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:82,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:96,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:109,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - hdr
    - check_tls13_version
    argTypes:
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 112
    functionName: Botan::TLS::TLSPlaintext_Header::TLSPlaintext_Header
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - major_version
    - Protocol_Version
    - std::move
    - version_code
    - make_uint16
    - TLS_Exception
    - read_record_type
    - Botan::TLS::TLSPlaintext_Header::type
    linkageType: ''
    returnType: void
    signature: void TLSPlaintext_Header(std::vector<uint8_t> hdr, const bool check_tls13_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:122,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:123,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:124,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:125,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - record_type
    - frgmnt_length
    - use_compatibility_version
    argTypes:
    - Record_Type
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: Botan::TLS::TLSPlaintext_Header::TLSPlaintext_Header
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - major_version
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - minor_version
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: "void TLSPlaintext_Header(const Record_Type record_type,\n                          const
      size_t frgmnt_length,\n                          const bool use_compatibility_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan::TLS::TLSPlaintext_Header::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Record_Type
    signature: Record_Type type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::TLS::TLSPlaintext_Header::fragment_length
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t fragment_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::TLSPlaintext_Header::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: '& serialized() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & serialized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 171
    functionName: Botan::TLS::Record_Layer::Record_Layer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record_Layer::Record_Layer(Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:174,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:174,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:174,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: Botan::TLS::Record_Layer::copy_data
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void Record_Layer::copy_data(std::span<const uint8_t> data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:193,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:200,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:200,1
    - Dst: verify_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:203,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:203,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:203,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:204,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:219,1
    - Dst: max
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:221,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:221,1
    - Dst: Cipher_State*::encrypt_output_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:226,1
    - Dst: Cipher_State*::encrypt_output_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:228,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:228,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:231,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:233,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:236,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:241,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:244,1
    - Dst: Cipher_State*::encrypt_output_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:246,1
    - Dst: TLSPlaintext_Header
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:253,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:255,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:255,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:255,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:255,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:257,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:260,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:263,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:263,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:263,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:263,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:264,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:264,1
    - Dst: Cipher_State*::encrypt_record_fragment
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:267,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:268,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:268,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:270,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:270,1
    - Dst: secure_vector::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:270,1
    - Dst: secure_vector::cend
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:270,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:272,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:272,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:272,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:272,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:279,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:279,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - type
    - data
    - cipher_state
    argTypes:
    - Record_Type
    - std::span<const uint8_t>
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 281
    functionName: Botan::TLS::Record_Layer::prepare_records
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::cbegin
    - BOTAN_ASSERT
    - std::span<const uint8_t>::begin
    - TLSPlaintext_Header
    - secure_vector::end
    - std::vector::end
    - verify_change_cipher_spec
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - static_cast<uint8_t>
    - std::vector::size
    - Invalid_Argument
    - auto::begin
    - secure_vector::reserve
    - secure_vector::push_back
    - auto::cend
    - secure_vector::cend
    - auto::cbegin
    - std::min<size_t>
    - Cipher_State*::encrypt_output_length
    - std::span<const uint8_t>::subspan
    - max
    - static_cast<uint16_t>
    - secure_vector::size
    - std::vector::reserve
    - Cipher_State*::encrypt_record_fragment
    - std::vector::insert
    - std::span<const uint8_t>::size
    - secure_vector::insert
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Record_Layer::prepare_records(const Record_Type
      type,\n                                                   std::span<const uint8_t>
      data,\n                                                   Cipher_State* cipher_state)
      const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:284,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:285,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:288,1
    - Dst: TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:305,1
    - Dst: TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:306,1
    - Dst: Cipher_State*::must_expect_unprotected_alert_traffic
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:307,1
    - Dst: TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:307,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:308,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:311,1
    - Dst: TLSPlaintext_Header::fragment_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:311,1
    - Dst: TLSPlaintext_Header::fragment_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:312,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:312,1
    - Dst: TLSPlaintext_Header::fragment_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:316,1
    - Dst: TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:318,1
    - Dst: verify_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:319,1
    - Dst: TLSPlaintext_Header::fragment_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:319,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:320,1
    - Dst: TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:323,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:323,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:324,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:330,1
    - Dst: Record::fragment::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:333,1
    - Dst: Cipher_State*::minimum_decryption_input_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:333,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:334,1
    - Dst: Cipher_State*::decrypt_output_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:337,1
    - Dst: Record::fragment::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:337,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:338,1
    - Dst: Cipher_State*::decrypt_record_fragment
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:341,1
    - Dst: TLSPlaintext_Header::serialized
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:341,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:345,1
    - Dst: Record::fragment::crbegin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:345,1
    - Dst: Record::fragment::crend
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:345,1
    - Dst: Record::fragment::crend
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:347,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:352,1
    - Dst: read_record_type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:356,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:362,1
    - Dst: Record::fragment::erase
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:366,1
    - Dst: base
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:366,1
    - Dst: Record::fragment::cend
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:366,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 37
    argCount: 1
    argNames:
    - cipher_state
    argTypes:
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 370
    functionName: Botan::TLS::Record_Layer::next_record
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Record::fragment::crend
    - Cipher_State*::decrypt_output_length
    - Record::fragment::cend
    - Record::fragment::size
    - Cipher_State*::decrypt_record_fragment
    - secure_vector<uint8_t>
    - verify_change_cipher_spec
    - base
    - Record::fragment::erase
    - TLSPlaintext_Header::fragment_length
    - erase
    - TLS_Exception
    - Cipher_State*::minimum_decryption_input_length
    - TLSPlaintext_Header::serialized
    - Cipher_State*::must_expect_unprotected_alert_traffic
    - std::find_if
    - cbegin
    - size
    - read_record_type
    - Record::fragment::crbegin
    - TLSPlaintext_Header::type
    linkageType: ''
    returnType: Record_Layer::ReadResult<Record>
    signature: Record_Layer::ReadResult<Record> Record_Layer::next_record(Cipher_State*
      cipher_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:373,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:374,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:381,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - outgoing_limit
    - incoming_limit
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 383
    functionName: Botan::TLS::Record_Layer::set_record_size_limits
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - min
    - static_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void Record_Layer::set_record_size_limits(const uint16_t outgoing_limit,
      const uint16_t incoming_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - IteratorT
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: Botan::TLS::verify_change_cipher_spec
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool verify_change_cipher_spec(const IteratorT data, const size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:39,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:40,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:41,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:42,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:43,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - type_byte
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: Botan::TLS::read_record_type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - static_cast<Record_Type>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Record_Type
    signature: Record_Type read_record_type(const uint8_t type_byte)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: read_record_type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:56,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:57,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:57,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:59,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:64,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:65,1
    - Dst: version_code
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:71,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:72,1
    - Dst: Botan::TLS::TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:81,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:82,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:96,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:109,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - hdr
    - check_tls13_version
    argTypes:
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 112
    functionName: Botan::TLS::TLSPlaintext_Header::TLSPlaintext_Header
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - major_version
    - Protocol_Version
    - std::move
    - version_code
    - make_uint16
    - TLS_Exception
    - read_record_type
    - Botan::TLS::TLSPlaintext_Header::type
    linkageType: ''
    returnType: void
    signature: void TLSPlaintext_Header(std::vector<uint8_t> hdr, const bool check_tls13_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:122,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:123,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:124,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:125,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - record_type
    - frgmnt_length
    - use_compatibility_version
    argTypes:
    - Record_Type
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: Botan::TLS::TLSPlaintext_Header::TLSPlaintext_Header
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - major_version
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - minor_version
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: "void TLSPlaintext_Header(const Record_Type record_type,\n                          const
      size_t frgmnt_length,\n                          const bool use_compatibility_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan::TLS::TLSPlaintext_Header::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Record_Type
    signature: Record_Type type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::TLS::TLSPlaintext_Header::fragment_length
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t fragment_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::TLSPlaintext_Header::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: '& serialized() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & serialized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - IteratorT
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: Botan::TLS::verify_change_cipher_spec
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool verify_change_cipher_spec(const IteratorT data, const size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:39,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:40,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:41,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:42,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:43,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - type_byte
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: Botan::TLS::read_record_type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - static_cast<Record_Type>
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Record_Type
    signature: Record_Type read_record_type(const uint8_t type_byte)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: read_record_type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:56,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:57,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:57,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:59,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:64,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:65,1
    - Dst: version_code
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:71,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:72,1
    - Dst: Botan::TLS::TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:81,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:82,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:96,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:109,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - hdr
    - check_tls13_version
    argTypes:
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 112
    functionName: Botan::TLS::TLSPlaintext_Header::TLSPlaintext_Header
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - major_version
    - Protocol_Version
    - std::move
    - version_code
    - make_uint16
    - TLS_Exception
    - read_record_type
    - Botan::TLS::TLSPlaintext_Header::type
    linkageType: ''
    returnType: void
    signature: void TLSPlaintext_Header(std::vector<uint8_t> hdr, const bool check_tls13_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:122,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:123,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:124,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:125,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - record_type
    - frgmnt_length
    - use_compatibility_version
    argTypes:
    - Record_Type
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: Botan::TLS::TLSPlaintext_Header::TLSPlaintext_Header
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - major_version
    - get_byte<1>
    - static_cast<uint16_t>
    - get_byte<0>
    - minor_version
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: "void TLSPlaintext_Header(const Record_Type record_type,\n                          const
      size_t frgmnt_length,\n                          const bool use_compatibility_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan::TLS::TLSPlaintext_Header::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Record_Type
    signature: Record_Type type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::TLS::TLSPlaintext_Header::fragment_length
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t fragment_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::TLSPlaintext_Header::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version legacy_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: '& serialized() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & serialized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 171
    functionName: Botan::TLS::Record_Layer::Record_Layer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record_Layer::Record_Layer(Connection_Side side)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:174,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:174,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:174,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: Botan::TLS::Record_Layer::copy_data
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void Record_Layer::copy_data(std::span<const uint8_t> data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:193,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:200,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:200,1
    - Dst: verify_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:203,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:203,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:203,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:204,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:219,1
    - Dst: max
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:221,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:221,1
    - Dst: Cipher_State*::encrypt_output_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:226,1
    - Dst: Cipher_State*::encrypt_output_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:228,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:228,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:231,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:233,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:236,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:241,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:244,1
    - Dst: Cipher_State*::encrypt_output_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:246,1
    - Dst: TLSPlaintext_Header
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:253,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:255,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:255,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:255,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:255,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:257,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:260,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:263,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:263,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:263,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:263,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:264,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:264,1
    - Dst: Cipher_State*::encrypt_record_fragment
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:267,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:268,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:268,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:270,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:270,1
    - Dst: secure_vector::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:270,1
    - Dst: secure_vector::cend
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:270,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:272,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:272,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:272,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:272,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:279,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:279,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - type
    - data
    - cipher_state
    argTypes:
    - Record_Type
    - std::span<const uint8_t>
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 281
    functionName: Botan::TLS::Record_Layer::prepare_records
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::cbegin
    - BOTAN_ASSERT
    - std::span<const uint8_t>::begin
    - TLSPlaintext_Header
    - secure_vector::end
    - std::vector::end
    - verify_change_cipher_spec
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - static_cast<uint8_t>
    - std::vector::size
    - Invalid_Argument
    - auto::begin
    - secure_vector::reserve
    - secure_vector::push_back
    - auto::cend
    - secure_vector::cend
    - auto::cbegin
    - std::min<size_t>
    - Cipher_State*::encrypt_output_length
    - std::span<const uint8_t>::subspan
    - max
    - static_cast<uint16_t>
    - secure_vector::size
    - std::vector::reserve
    - Cipher_State*::encrypt_record_fragment
    - std::vector::insert
    - std::span<const uint8_t>::size
    - secure_vector::insert
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Record_Layer::prepare_records(const Record_Type
      type,\n                                                   std::span<const uint8_t>
      data,\n                                                   Cipher_State* cipher_state)
      const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:284,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:285,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:288,1
    - Dst: TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:305,1
    - Dst: TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:306,1
    - Dst: Cipher_State*::must_expect_unprotected_alert_traffic
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:307,1
    - Dst: TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:307,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:308,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:311,1
    - Dst: TLSPlaintext_Header::fragment_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:311,1
    - Dst: TLSPlaintext_Header::fragment_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:312,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:312,1
    - Dst: TLSPlaintext_Header::fragment_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:316,1
    - Dst: TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:318,1
    - Dst: verify_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:319,1
    - Dst: TLSPlaintext_Header::fragment_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:319,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:320,1
    - Dst: TLSPlaintext_Header::type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:323,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:323,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:324,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:330,1
    - Dst: Record::fragment::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:333,1
    - Dst: Cipher_State*::minimum_decryption_input_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:333,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:334,1
    - Dst: Cipher_State*::decrypt_output_length
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:337,1
    - Dst: Record::fragment::size
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:337,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:338,1
    - Dst: Cipher_State*::decrypt_record_fragment
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:341,1
    - Dst: TLSPlaintext_Header::serialized
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:341,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:345,1
    - Dst: Record::fragment::crbegin
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:345,1
    - Dst: Record::fragment::crend
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:345,1
    - Dst: Record::fragment::crend
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:347,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:352,1
    - Dst: read_record_type
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:356,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:362,1
    - Dst: Record::fragment::erase
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:366,1
    - Dst: base
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:366,1
    - Dst: Record::fragment::cend
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:366,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 37
    argCount: 1
    argNames:
    - cipher_state
    argTypes:
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 370
    functionName: Botan::TLS::Record_Layer::next_record
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Record::fragment::crend
    - Cipher_State*::decrypt_output_length
    - Record::fragment::cend
    - Record::fragment::size
    - Cipher_State*::decrypt_record_fragment
    - secure_vector<uint8_t>
    - verify_change_cipher_spec
    - base
    - Record::fragment::erase
    - TLSPlaintext_Header::fragment_length
    - erase
    - TLS_Exception
    - Cipher_State*::minimum_decryption_input_length
    - TLSPlaintext_Header::serialized
    - Cipher_State*::must_expect_unprotected_alert_traffic
    - std::find_if
    - cbegin
    - size
    - read_record_type
    - Record::fragment::crbegin
    - TLSPlaintext_Header::type
    linkageType: ''
    returnType: Record_Layer::ReadResult<Record>
    signature: Record_Layer::ReadResult<Record> Record_Layer::next_record(Cipher_State*
      cipher_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:373,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:374,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:381,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - outgoing_limit
    - incoming_limit
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 383
    functionName: Botan::TLS::Record_Layer::set_record_size_limits
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - min
    - static_cast<uint16_t>
    linkageType: ''
    returnType: void
    signature: void Record_Layer::set_record_size_limits(const uint16_t outgoing_limit,
      const uint16_t incoming_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - then
    - now
    argTypes:
    - std::chrono::system_clock::time_point
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: Botan::TLS::calculate_age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) calculate_age(std::chrono::system_clock::time_point
      then, std::chrono::system_clock::time_point now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PskIdentity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:40,1
    - Dst: handle::opaque_handle
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:40,1
    - Dst: calculate_age
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: session::session_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:43,1
    - Dst: session::extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' session_to_resume'
    - timestamp
    argTypes:
    - Session_with_Handle
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - session::start_time
    - session::ciphersuite
    - handle::opaque_handle
    - PskIdentity
    - calculate_age
    - session::session_age_add
    - session::extract_master_secret
    linkageType: ''
    returnType: void
    signature: void Client_PSK(Session_with_Handle& session_to_resume, std::chrono::system_clock::time_point
      timestamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PskIdentity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: PresharedKeyID
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' psk'
    argTypes:
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - extract_master_secret
    - PresharedKeyID
    - PskIdentity
    - prf_algo
    - identity
    linkageType: ''
    returnType: void
    signature: void Client_PSK(ExternalPSK&& psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - bndr
    argTypes:
    - PskIdentity
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Client_PSK(PskIdentity id, std::vector<uint8_t> bndr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:61,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:76,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - id
    - prf_algo
    - ' master_secret'
    - psk_type
    argTypes:
    - PskIdentity
    - std::string_view
    - secure_vector<uint8_t>
    - Cipher_State::PSK_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Cipher_State::init_with_psk
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: void
    signature: "void Client_PSK(PskIdentity id,\n                 std::string_view
      prf_algo,\n                 secure_vector<uint8_t>&& master_secret,\n                 Cipher_State::PSK_Type
      psk_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: '& identity() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PskIdentity
    signature: PskIdentity & identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: '& binder() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & binder() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::TLS::Client_PSK::is_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_resumption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binder
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Client_PSK::set_binder
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_binder(std::vector<uint8_t> binder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: '& cipher_state() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: Cipher_State
    signature: Cipher_State & cipher_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Client_PSK::take_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::unique_ptr<Cipher_State>
    signature: std::unique_ptr<Cipher_State> take_cipher_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::monostate
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - session
    argTypes:
    - uint16_t
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id, Session session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - psk
    argTypes:
    - uint16_t
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id, ExternalPSK psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan::TLS::Server_PSK::selected_identity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t selected_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:118,1
    - Dst: std::holds_alternative<std::monostate>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:118,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Server_PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::monostate
    - std::exchange
    - std::holds_alternative<std::monostate>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::variant<std::monostate, Session, ExternalPSK>
    signature: std::variant<std::monostate, Session, ExternalPSK> take_session_to_resume_or_psk()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - then
    - now
    argTypes:
    - std::chrono::system_clock::time_point
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: Botan::TLS::calculate_age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) calculate_age(std::chrono::system_clock::time_point
      then, std::chrono::system_clock::time_point now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PskIdentity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:40,1
    - Dst: handle::opaque_handle
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:40,1
    - Dst: calculate_age
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: session::session_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:43,1
    - Dst: session::extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' session_to_resume'
    - timestamp
    argTypes:
    - Session_with_Handle
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - session::start_time
    - session::ciphersuite
    - handle::opaque_handle
    - PskIdentity
    - calculate_age
    - session::session_age_add
    - session::extract_master_secret
    linkageType: ''
    returnType: void
    signature: void Client_PSK(Session_with_Handle& session_to_resume, std::chrono::system_clock::time_point
      timestamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PskIdentity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: PresharedKeyID
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' psk'
    argTypes:
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - extract_master_secret
    - PresharedKeyID
    - PskIdentity
    - prf_algo
    - identity
    linkageType: ''
    returnType: void
    signature: void Client_PSK(ExternalPSK&& psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - bndr
    argTypes:
    - PskIdentity
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Client_PSK(PskIdentity id, std::vector<uint8_t> bndr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:61,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:76,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - id
    - prf_algo
    - ' master_secret'
    - psk_type
    argTypes:
    - PskIdentity
    - std::string_view
    - secure_vector<uint8_t>
    - Cipher_State::PSK_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Cipher_State::init_with_psk
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: void
    signature: "void Client_PSK(PskIdentity id,\n                 std::string_view
      prf_algo,\n                 secure_vector<uint8_t>&& master_secret,\n                 Cipher_State::PSK_Type
      psk_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: '& identity() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PskIdentity
    signature: PskIdentity & identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: '& binder() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & binder() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::TLS::Client_PSK::is_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_resumption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binder
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Client_PSK::set_binder
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_binder(std::vector<uint8_t> binder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: '& cipher_state() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: Cipher_State
    signature: Cipher_State & cipher_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Client_PSK::take_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::unique_ptr<Cipher_State>
    signature: std::unique_ptr<Cipher_State> take_cipher_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::monostate
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - session
    argTypes:
    - uint16_t
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id, Session session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - psk
    argTypes:
    - uint16_t
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id, ExternalPSK psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan::TLS::Server_PSK::selected_identity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t selected_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:118,1
    - Dst: std::holds_alternative<std::monostate>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:118,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Server_PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::monostate
    - std::exchange
    - std::holds_alternative<std::monostate>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::variant<std::monostate, Session, ExternalPSK>
    signature: std::variant<std::monostate, Session, ExternalPSK> take_session_to_resume_or_psk()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - srv_psk
    argTypes:
    - Server_PSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::PSK::PSK_Internal::PSK_Internal
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PSK_Internal(Server_PSK srv_psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - clt_psks
    argTypes:
    - std::vector<Client_PSK>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan::TLS::PSK::PSK_Internal::PSK_Internal
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PSK_Internal(std::vector<Client_PSK> clt_psks)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:144,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:147,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:148,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:148,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:150,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:151,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:154,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:154,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:155,1
    - Dst: get_uint32_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:156,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:157,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:160,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:161,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:164,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:165,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:168,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:169,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:172,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:177,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:177,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:178,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:181,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:181,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:181,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:184,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:185,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:188,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:188,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:190,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 32
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - message_type
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 192
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - get_tls_length_value
    - Server_PSK
    - get_uint16_t
    - std::move
    - get_uint32_t
    - std::vector::emplace_back
    - TLS_Exception
    - read_so_far
    - has_remaining
    - std::make_unique<PSK_Internal>
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void PSK::PSK(TLS_Data_Reader& reader, uint16_t extension_size, Handshake_Type
      message_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:197,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:198,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:198,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:198,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:202,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:202,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:205,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' session_to_resume'
    - psks
    - ' callbacks'
    argTypes:
    - std::optional<Session_with_Handle>
    - std::vector<ExternalPSK>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - tls_current_timestamp
    - std::move
    - std::vector::emplace_back
    - std::make_unique<PSK_Internal>
    - value
    - has_value
    linkageType: ''
    returnType: void
    signature: void PSK::PSK(std::optional<Session_with_Handle>& session_to_resume,
      std::vector<ExternalPSK> psks, Callbacks& callbacks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:209,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:209,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - session_to_resume
    - psk_index
    argTypes:
    - Session
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Server_PSK
    - std::make_unique<PSK_Internal>
    linkageType: ''
    returnType: void
    signature: void PSK::PSK(Session session_to_resume, uint16_t psk_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:212,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:212,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - psk
    - psk_index
    argTypes:
    - ExternalPSK
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Server_PSK
    - std::make_unique<PSK_Internal>
    linkageType: ''
    returnType: void
    signature: void PSK::PSK(ExternalPSK psk, uint16_t psk_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: PSK::~PSK()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PSK::~PSK()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:217,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:221,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:221,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: Botan::TLS::PSK::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::get<std::vector<Client_PSK>>
    - std::holds_alternative<std::vector<Client_PSK>>
    - std::holds_alternative<Server_PSK>
    linkageType: ''
    returnType: bool
    signature: bool PSK::empty() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:227,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:227,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:228,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:228,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:230,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:231,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:238,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:239,1
    - Dst: at
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:242,1
    - Dst: take_cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:243,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:245,1
    - Dst: is_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:248,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:251,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:255,1
    - Dst: auto::is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:262,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:263,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:266,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' server_psk'
    - ' cipher'
    argTypes:
    - PSK
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 267
    functionName: Botan::TLS::PSK::take_selected_psk_info
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - auto::is_compatible_with
    - std::move
    - std::get<Server_PSK>
    - is_resumption
    - take_cipher_state
    - std::holds_alternative<std::vector<Client_PSK>>
    - TLS_Exception
    - size
    - at
    - BOTAN_ASSERT_NONNULL
    - std::holds_alternative<Server_PSK>
    - clear
    - identity
    - std::get<std::vector<Client_PSK>>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::pair<std::optional<std::string>, std::unique_ptr<Cipher_State>>
    signature: "std::pair<std::optional<std::string>, std::unique_ptr<Cipher_State>>
      PSK::take_selected_psk_info(\n   const PSK& server_psk, const Ciphersuite& cipher)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:275,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:275,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:277,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:283,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:284,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:284,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:284,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:284,1
    - Dst: choose_from_offered_tickets
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:286,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:286,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:287,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:293,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:293,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:294,1
    - Dst: std::unique_ptr<PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:298,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:298,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:305,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:305,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:305,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:305,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:306,1
    - Dst: choose_preshared_key
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:309,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:309,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:310,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:316,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:316,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:317,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:322,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:322,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:322,1
    - Dst: identity_as_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:323,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:323,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:325,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:326,1
    - Dst: std::unique_ptr<PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:341,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    - Dst: std::distance
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 6
    argNames:
    - host
    - ' cipher'
    - ' session_mgr'
    - ' credentials_mgr'
    - ' callbacks'
    - ' policy'
    argTypes:
    - std::string_view
    - Ciphersuite
    - Session_Manager
    - Credentials_Manager
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 346
    functionName: Botan::TLS::PSK::select_offered_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<PSK>
    - choose_preshared_key
    - std::vector::begin
    - std::move
    - std::vector::end
    - identity
    - std::get<std::vector<Client_PSK>>
    - std::back_inserter
    - BOTAN_STATE_CHECK
    - ciphersuite
    - transform
    - begin
    - std::holds_alternative<std::vector<Client_PSK>>
    - TLS_Exception
    - prf_algo
    - std::find_if
    - PSK::PSK
    - static_cast<uint16_t>
    - std::distance
    - identity_as_string
    - auto::value
    - choose_from_offered_tickets
    - end
    linkageType: ''
    returnType: std::unique_ptr<PSK>
    signature: "std::unique_ptr<PSK> PSK::select_offered_psk(std::string_view host,\n
      \                                            const Ciphersuite& cipher,\n                                             Session_Manager&
      session_mgr,\n                                             Credentials_Manager&
      credentials_mgr,\n                                             Callbacks& callbacks,\n
      \                                            const Policy& policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:349,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:349,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:350,1
    - Dst: std::remove_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:352,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:352,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:352,1
    - Dst: cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:353,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:354,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:356,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' cipher'
    argTypes:
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 357
    functionName: Botan::TLS::PSK::filter
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - is_compatible_with
    - std::remove_if
    - cipher_state
    - erase
    - begin
    - std::holds_alternative<std::vector<Client_PSK>>
    - std::get<std::vector<Client_PSK>>
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void PSK::filter(const Ciphersuite& cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:360,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:360,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:362,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:365,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 371
    functionName: Botan::TLS::PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::get<Server_PSK>
    - TLS_Exception
    - std::holds_alternative<Server_PSK>
    - std::visit
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::variant<Session, ExternalPSK>
    signature: std::variant<Session, ExternalPSK> PSK::take_session_to_resume_or_psk()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:376,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:378,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:379,1
    - Dst: selected_identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:380,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:381,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:381,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:382,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:382,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:385,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:390,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:391,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:391,1
    - Dst: obfuscated_age
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:393,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:394,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:394,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:395,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:395,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:396,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:396,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:397,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:397,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:399,1
    - Dst: binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:399,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:402,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 409
    functionName: Botan::TLS::PSK::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - get_byte<3>
    - std::vector::push_back
    - get_byte<1>
    - obfuscated_age
    - get_byte<0>
    - std::vector::reserve
    - binder
    - selected_identity
    - identity
    - std::visit
    - append_tls_length_value
    - get_byte<2>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> PSK::serialize(Connection_Side side) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:413,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:413,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:414,1
    - Dst: clone
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:415,1
    - Dst: cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:416,1
    - Dst: auto::set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:417,1
    - Dst: hash_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:417,1
    - Dst: set_binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:418,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:418,1
    - Dst: auto::truncated
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' truncated_transcript_hash'
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 420
    functionName: Botan::TLS::PSK::calculate_binders
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - clone
    - set_binder
    - cipher_state
    - hash_algorithm
    - std::holds_alternative<std::vector<Client_PSK>>
    - auto::set_algorithm
    - BOTAN_ASSERT_NOMSG
    - std::get<std::vector<Client_PSK>>
    - auto::truncated
    - psk_binder_mac
    linkageType: ''
    returnType: void
    signature: void PSK::calculate_binders(const Transcript_Hash_State& truncated_transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:423,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:423,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:424,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:424,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:426,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:427,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:429,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:429,1
    - Dst: binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' server_psk'
    - ' binder'
    argTypes:
    - PSK
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: Botan::TLS::PSK::validate_binder
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::get<Server_PSK>
    - std::holds_alternative<std::vector<Client_PSK>>
    - size
    - std::holds_alternative<Server_PSK>
    - binder
    - std::get<std::vector<Client_PSK>>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: bool
    signature: bool PSK::validate_binder(const PSK& server_psk, const std::vector<uint8_t>&
      binder) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - then
    - now
    argTypes:
    - std::chrono::system_clock::time_point
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: Botan::TLS::calculate_age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) calculate_age(std::chrono::system_clock::time_point
      then, std::chrono::system_clock::time_point now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PskIdentity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:40,1
    - Dst: handle::opaque_handle
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:40,1
    - Dst: calculate_age
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: session::session_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:43,1
    - Dst: session::extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' session_to_resume'
    - timestamp
    argTypes:
    - Session_with_Handle
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - session::start_time
    - session::ciphersuite
    - handle::opaque_handle
    - PskIdentity
    - calculate_age
    - session::session_age_add
    - session::extract_master_secret
    linkageType: ''
    returnType: void
    signature: void Client_PSK(Session_with_Handle& session_to_resume, std::chrono::system_clock::time_point
      timestamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PskIdentity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: PresharedKeyID
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' psk'
    argTypes:
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - extract_master_secret
    - PresharedKeyID
    - PskIdentity
    - prf_algo
    - identity
    linkageType: ''
    returnType: void
    signature: void Client_PSK(ExternalPSK&& psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - bndr
    argTypes:
    - PskIdentity
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Client_PSK(PskIdentity id, std::vector<uint8_t> bndr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:61,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:76,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - id
    - prf_algo
    - ' master_secret'
    - psk_type
    argTypes:
    - PskIdentity
    - std::string_view
    - secure_vector<uint8_t>
    - Cipher_State::PSK_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Cipher_State::init_with_psk
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: void
    signature: "void Client_PSK(PskIdentity id,\n                 std::string_view
      prf_algo,\n                 secure_vector<uint8_t>&& master_secret,\n                 Cipher_State::PSK_Type
      psk_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: '& identity() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PskIdentity
    signature: PskIdentity & identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: '& binder() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & binder() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::TLS::Client_PSK::is_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_resumption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binder
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Client_PSK::set_binder
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_binder(std::vector<uint8_t> binder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: '& cipher_state() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: Cipher_State
    signature: Cipher_State & cipher_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Client_PSK::take_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::unique_ptr<Cipher_State>
    signature: std::unique_ptr<Cipher_State> take_cipher_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::monostate
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - session
    argTypes:
    - uint16_t
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id, Session session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - psk
    argTypes:
    - uint16_t
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id, ExternalPSK psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan::TLS::Server_PSK::selected_identity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t selected_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:118,1
    - Dst: std::holds_alternative<std::monostate>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:118,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Server_PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::monostate
    - std::exchange
    - std::holds_alternative<std::monostate>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::variant<std::monostate, Session, ExternalPSK>
    signature: std::variant<std::monostate, Session, ExternalPSK> take_session_to_resume_or_psk()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::duration_cast<std::chrono::milliseconds>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - then
    - now
    argTypes:
    - std::chrono::system_clock::time_point
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: Botan::TLS::calculate_age
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::milliseconds>
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) calculate_age(std::chrono::system_clock::time_point
      then, std::chrono::system_clock::time_point now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PskIdentity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:40,1
    - Dst: handle::opaque_handle
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:40,1
    - Dst: calculate_age
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: session::session_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:43,1
    - Dst: session::extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' session_to_resume'
    - timestamp
    argTypes:
    - Session_with_Handle
    - std::chrono::system_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - session::start_time
    - session::ciphersuite
    - handle::opaque_handle
    - PskIdentity
    - calculate_age
    - session::session_age_add
    - session::extract_master_secret
    linkageType: ''
    returnType: void
    signature: void Client_PSK(Session_with_Handle& session_to_resume, std::chrono::system_clock::time_point
      timestamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PskIdentity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: PresharedKeyID
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:49,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' psk'
    argTypes:
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - extract_master_secret
    - PresharedKeyID
    - PskIdentity
    - prf_algo
    - identity
    linkageType: ''
    returnType: void
    signature: void Client_PSK(ExternalPSK&& psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - bndr
    argTypes:
    - PskIdentity
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Client_PSK(PskIdentity id, std::vector<uint8_t> bndr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:61,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:76,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - id
    - prf_algo
    - ' master_secret'
    - psk_type
    argTypes:
    - PskIdentity
    - std::string_view
    - secure_vector<uint8_t>
    - Cipher_State::PSK_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Cipher_State::init_with_psk
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: void
    signature: "void Client_PSK(PskIdentity id,\n                 std::string_view
      prf_algo,\n                 secure_vector<uint8_t>&& master_secret,\n                 Cipher_State::PSK_Type
      psk_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: '& identity() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PskIdentity
    signature: PskIdentity & identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: '& binder() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & binder() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::TLS::Client_PSK::is_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_resumption() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binder
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Client_PSK::set_binder
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_binder(std::vector<uint8_t> binder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: '& cipher_state() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: Cipher_State
    signature: Cipher_State & cipher_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Client_PSK::take_cipher_state
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::unique_ptr<Cipher_State>
    signature: std::unique_ptr<Cipher_State> take_cipher_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::monostate
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - session
    argTypes:
    - uint16_t
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id, Session session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - psk
    argTypes:
    - uint16_t
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::TLS::Server_PSK::Server_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Server_PSK(uint16_t id, ExternalPSK psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan::TLS::Server_PSK::selected_identity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t selected_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:118,1
    - Dst: std::holds_alternative<std::monostate>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:118,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Server_PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::monostate
    - std::exchange
    - std::holds_alternative<std::monostate>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::variant<std::monostate, Session, ExternalPSK>
    signature: std::variant<std::monostate, Session, ExternalPSK> take_session_to_resume_or_psk()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - srv_psk
    argTypes:
    - Server_PSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::TLS::PSK::PSK_Internal::PSK_Internal
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PSK_Internal(Server_PSK srv_psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - clt_psks
    argTypes:
    - std::vector<Client_PSK>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan::TLS::PSK::PSK_Internal::PSK_Internal
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PSK_Internal(std::vector<Client_PSK> clt_psks)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:144,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:147,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:148,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:148,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:150,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:151,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:154,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:154,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:155,1
    - Dst: get_uint32_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:156,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:157,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:160,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:161,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:164,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:165,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:168,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:169,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:172,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:177,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:177,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:178,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:181,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:181,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:181,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:184,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:185,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:188,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:188,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:190,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 32
    argCount: 3
    argNames:
    - ' reader'
    - extension_size
    - message_type
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 192
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - get_tls_length_value
    - Server_PSK
    - get_uint16_t
    - std::move
    - get_uint32_t
    - std::vector::emplace_back
    - TLS_Exception
    - read_so_far
    - has_remaining
    - std::make_unique<PSK_Internal>
    - std::vector::empty
    linkageType: ''
    returnType: void
    signature: void PSK::PSK(TLS_Data_Reader& reader, uint16_t extension_size, Handshake_Type
      message_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:197,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:198,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:198,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:198,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:202,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:202,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:205,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' session_to_resume'
    - psks
    - ' callbacks'
    argTypes:
    - std::optional<Session_with_Handle>
    - std::vector<ExternalPSK>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - tls_current_timestamp
    - std::move
    - std::vector::emplace_back
    - std::make_unique<PSK_Internal>
    - value
    - has_value
    linkageType: ''
    returnType: void
    signature: void PSK::PSK(std::optional<Session_with_Handle>& session_to_resume,
      std::vector<ExternalPSK> psks, Callbacks& callbacks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:209,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:209,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - session_to_resume
    - psk_index
    argTypes:
    - Session
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Server_PSK
    - std::make_unique<PSK_Internal>
    linkageType: ''
    returnType: void
    signature: void PSK::PSK(Session session_to_resume, uint16_t psk_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:212,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:212,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - psk
    - psk_index
    argTypes:
    - ExternalPSK
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Server_PSK
    - std::make_unique<PSK_Internal>
    linkageType: ''
    returnType: void
    signature: void PSK::PSK(ExternalPSK psk, uint16_t psk_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: PSK::~PSK()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PSK::~PSK()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:217,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:221,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:221,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: Botan::TLS::PSK::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::get<std::vector<Client_PSK>>
    - std::holds_alternative<std::vector<Client_PSK>>
    - std::holds_alternative<Server_PSK>
    linkageType: ''
    returnType: bool
    signature: bool PSK::empty() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:227,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:227,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:228,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:228,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:230,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:231,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:238,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:239,1
    - Dst: at
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:242,1
    - Dst: take_cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:243,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:245,1
    - Dst: is_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:248,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:251,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:255,1
    - Dst: auto::is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:262,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:263,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:266,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' server_psk'
    - ' cipher'
    argTypes:
    - PSK
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 267
    functionName: Botan::TLS::PSK::take_selected_psk_info
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - auto::is_compatible_with
    - std::move
    - std::get<Server_PSK>
    - is_resumption
    - take_cipher_state
    - std::holds_alternative<std::vector<Client_PSK>>
    - TLS_Exception
    - size
    - at
    - BOTAN_ASSERT_NONNULL
    - std::holds_alternative<Server_PSK>
    - clear
    - identity
    - std::get<std::vector<Client_PSK>>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::pair<std::optional<std::string>, std::unique_ptr<Cipher_State>>
    signature: "std::pair<std::optional<std::string>, std::unique_ptr<Cipher_State>>
      PSK::take_selected_psk_info(\n   const PSK& server_psk, const Ciphersuite& cipher)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:275,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:275,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:277,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:283,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:284,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:284,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:284,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:284,1
    - Dst: choose_from_offered_tickets
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:286,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:286,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:287,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:293,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:293,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:294,1
    - Dst: std::unique_ptr<PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:298,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:298,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:305,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:305,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:305,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:305,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:306,1
    - Dst: choose_preshared_key
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:309,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:309,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:310,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:316,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:316,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:317,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:322,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:322,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:322,1
    - Dst: identity_as_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:323,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:323,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:325,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:326,1
    - Dst: std::unique_ptr<PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:341,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    - Dst: std::distance
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 6
    argNames:
    - host
    - ' cipher'
    - ' session_mgr'
    - ' credentials_mgr'
    - ' callbacks'
    - ' policy'
    argTypes:
    - std::string_view
    - Ciphersuite
    - Session_Manager
    - Credentials_Manager
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 346
    functionName: Botan::TLS::PSK::select_offered_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<PSK>
    - choose_preshared_key
    - std::vector::begin
    - std::move
    - std::vector::end
    - identity
    - std::get<std::vector<Client_PSK>>
    - std::back_inserter
    - BOTAN_STATE_CHECK
    - ciphersuite
    - transform
    - begin
    - std::holds_alternative<std::vector<Client_PSK>>
    - TLS_Exception
    - prf_algo
    - std::find_if
    - PSK::PSK
    - static_cast<uint16_t>
    - std::distance
    - identity_as_string
    - auto::value
    - choose_from_offered_tickets
    - end
    linkageType: ''
    returnType: std::unique_ptr<PSK>
    signature: "std::unique_ptr<PSK> PSK::select_offered_psk(std::string_view host,\n
      \                                            const Ciphersuite& cipher,\n                                             Session_Manager&
      session_mgr,\n                                             Credentials_Manager&
      credentials_mgr,\n                                             Callbacks& callbacks,\n
      \                                            const Policy& policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:349,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:349,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:350,1
    - Dst: std::remove_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:352,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:352,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:352,1
    - Dst: cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:353,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:354,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:356,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' cipher'
    argTypes:
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 357
    functionName: Botan::TLS::PSK::filter
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - is_compatible_with
    - std::remove_if
    - cipher_state
    - erase
    - begin
    - std::holds_alternative<std::vector<Client_PSK>>
    - std::get<std::vector<Client_PSK>>
    - end
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void PSK::filter(const Ciphersuite& cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:360,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:360,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:362,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:365,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 371
    functionName: Botan::TLS::PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::get<Server_PSK>
    - TLS_Exception
    - std::holds_alternative<Server_PSK>
    - std::visit
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::variant<Session, ExternalPSK>
    signature: std::variant<Session, ExternalPSK> PSK::take_session_to_resume_or_psk()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:376,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:378,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:379,1
    - Dst: selected_identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:380,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:381,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:381,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:382,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:382,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:385,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:390,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:391,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:391,1
    - Dst: obfuscated_age
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:393,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:394,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:394,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:395,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:395,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:396,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:396,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:397,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:397,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:399,1
    - Dst: binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:399,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:402,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 409
    functionName: Botan::TLS::PSK::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - get_byte<3>
    - std::vector::push_back
    - get_byte<1>
    - obfuscated_age
    - get_byte<0>
    - std::vector::reserve
    - binder
    - selected_identity
    - identity
    - std::visit
    - append_tls_length_value
    - get_byte<2>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> PSK::serialize(Connection_Side side) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:413,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:413,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:414,1
    - Dst: clone
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:415,1
    - Dst: cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:416,1
    - Dst: auto::set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:417,1
    - Dst: hash_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:417,1
    - Dst: set_binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:418,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:418,1
    - Dst: auto::truncated
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' truncated_transcript_hash'
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 420
    functionName: Botan::TLS::PSK::calculate_binders
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - clone
    - set_binder
    - cipher_state
    - hash_algorithm
    - std::holds_alternative<std::vector<Client_PSK>>
    - auto::set_algorithm
    - BOTAN_ASSERT_NOMSG
    - std::get<std::vector<Client_PSK>>
    - auto::truncated
    - psk_binder_mac
    linkageType: ''
    returnType: void
    signature: void PSK::calculate_binders(const Transcript_Hash_State& truncated_transcript_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:423,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:423,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:424,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:424,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:426,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:427,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:429,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:429,1
    - Dst: binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' server_psk'
    - ' binder'
    argTypes:
    - PSK
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: Botan::TLS::PSK::validate_binder
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::get<Server_PSK>
    - std::holds_alternative<std::vector<Client_PSK>>
    - size
    - std::holds_alternative<Server_PSK>
    - binder
    - std::get<std::vector<Client_PSK>>
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: bool
    signature: bool PSK::validate_binder(const PSK& server_psk, const std::vector<uint8_t>&
      binder) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::TLS::Internal::Handshake_State_13_Base
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Handshake_State_13_Base
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Internal::has_server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Internal::has_server_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_certificate_msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Internal::has_client_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_client_certificate_msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::TLS::Internal::has_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_hello_retry_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Internal::has_certificate_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_certificate_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Internal::has_server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Internal::has_client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_client_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::has_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:40,1
    - Dst: Botan::TLS::Internal::has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::TLS::Internal::handshake_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::has_server_finished
    - Botan::TLS::Internal::has_client_finished
    linkageType: ''
    returnType: bool
    signature: bool handshake_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::TLS::Internal::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Client_Hello_13
    signature: Client_Hello_13 & client_hello()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Internal::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Client_Hello_13
    signature: Client_Hello_13 & client_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Internal::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Server_Hello_13
    signature: Server_Hello_13 & server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Internal::hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Hello_Retry_Request
    signature: Hello_Retry_Request & hello_retry_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Internal::encrypted_extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Encrypted_Extensions
    signature: Encrypted_Extensions & encrypted_extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Internal::certificate_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Request_13
    signature: Certificate_Request_13 & certificate_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Internal::server_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_13
    signature: Certificate_13 & server_certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Internal::client_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_13
    signature: Certificate_13 & client_certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Internal::server_certificate_verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Verify_13
    signature: Certificate_Verify_13 & server_certificate_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Internal::client_certificate_verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Verify_13
    signature: Certificate_Verify_13 & client_certificate_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Internal::server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Finished_13
    signature: Finished_13 & server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Internal::client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Finished_13
    signature: Finished_13 & client_finished() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:84,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:85,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 12
    functionsReached:
    - Invalid_State
    - has_value
    - value
    linkageType: ''
    returnType: "private:\n      template <typename MessageT>"
    signature: "private:\n      template <typename MessageT> & get(const std::optional<MessageT>&
      opt) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:92,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:93,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 12
    functionsReached:
    - Invalid_State
    - has_value
    - value
    linkageType: ''
    returnType: MessageT
    signature: MessageT & get(std::optional<MessageT>& opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::TLS::Internal::Handshake_State_13_Base
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Handshake_State_13_Base
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Internal::has_server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Internal::has_server_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_certificate_msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Internal::has_client_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_client_certificate_msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::TLS::Internal::has_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_hello_retry_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Internal::has_certificate_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_certificate_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Internal::has_server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 1
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Internal::has_client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 1
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_client_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::has_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:40,1
    - Dst: Botan::TLS::Internal::has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::TLS::Internal::handshake_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::has_server_finished
    - Botan::TLS::Internal::has_client_finished
    linkageType: ''
    returnType: bool
    signature: bool handshake_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::TLS::Internal::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Client_Hello_13
    signature: Client_Hello_13 & client_hello()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Internal::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Client_Hello_13
    signature: Client_Hello_13 & client_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Internal::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Server_Hello_13
    signature: Server_Hello_13 & server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Internal::hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Hello_Retry_Request
    signature: Hello_Retry_Request & hello_retry_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Internal::encrypted_extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Encrypted_Extensions
    signature: Encrypted_Extensions & encrypted_extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Internal::certificate_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Request_13
    signature: Certificate_Request_13 & certificate_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Internal::server_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_13
    signature: Certificate_13 & server_certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Internal::client_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_13
    signature: Certificate_13 & client_certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Internal::server_certificate_verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Verify_13
    signature: Certificate_Verify_13 & server_certificate_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Internal::client_certificate_verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Verify_13
    signature: Certificate_Verify_13 & client_certificate_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Internal::server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Finished_13
    signature: Finished_13 & server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Internal::client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Finished_13
    signature: Finished_13 & client_finished() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:84,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:85,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 24
    functionsReached:
    - Invalid_State
    - has_value
    - value
    linkageType: ''
    returnType: "private:\n      template <typename MessageT>"
    signature: "private:\n      template <typename MessageT> & get(const std::optional<MessageT>&
      opt) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:92,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:93,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 24
    functionsReached:
    - Invalid_State
    - has_value
    - value
    linkageType: ''
    returnType: MessageT
    signature: MessageT & get(std::optional<MessageT>& opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::TLS::Internal::Handshake_State_13_Base
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Handshake_State_13_Base
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Internal::has_server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Internal::has_server_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_certificate_msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Internal::has_client_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_client_certificate_msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::TLS::Internal::has_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_hello_retry_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Internal::has_certificate_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_certificate_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Internal::has_server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 2
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Internal::has_client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 2
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_client_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::has_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:40,1
    - Dst: Botan::TLS::Internal::has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::TLS::Internal::handshake_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::has_server_finished
    - Botan::TLS::Internal::has_client_finished
    linkageType: ''
    returnType: bool
    signature: bool handshake_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::TLS::Internal::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Client_Hello_13
    signature: Client_Hello_13 & client_hello()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Internal::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Client_Hello_13
    signature: Client_Hello_13 & client_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Internal::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Server_Hello_13
    signature: Server_Hello_13 & server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Internal::hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Hello_Retry_Request
    signature: Hello_Retry_Request & hello_retry_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Internal::encrypted_extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Encrypted_Extensions
    signature: Encrypted_Extensions & encrypted_extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Internal::certificate_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Request_13
    signature: Certificate_Request_13 & certificate_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Internal::server_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_13
    signature: Certificate_13 & server_certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Internal::client_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_13
    signature: Certificate_13 & client_certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Internal::server_certificate_verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Verify_13
    signature: Certificate_Verify_13 & server_certificate_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Internal::client_certificate_verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Verify_13
    signature: Certificate_Verify_13 & client_certificate_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Internal::server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Finished_13
    signature: Finished_13 & server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Internal::client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Finished_13
    signature: Finished_13 & client_finished() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:84,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:85,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 36
    functionsReached:
    - Invalid_State
    - has_value
    - value
    linkageType: ''
    returnType: "private:\n      template <typename MessageT>"
    signature: "private:\n      template <typename MessageT> & get(const std::optional<MessageT>&
      opt) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:92,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:93,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 36
    functionsReached:
    - Invalid_State
    - has_value
    - value
    linkageType: ''
    returnType: MessageT
    signature: MessageT & get(std::optional<MessageT>& opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::TLS::Internal::Handshake_State_13_Base
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Handshake_State_13_Base
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::TLS::Internal::has_server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::TLS::Internal::has_server_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_certificate_msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::TLS::Internal::has_client_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_client_certificate_msg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::TLS::Internal::has_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_hello_retry_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Internal::has_certificate_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_certificate_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Internal::has_server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 3
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::TLS::Internal::has_client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 3
    functionsReached:
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool has_client_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::has_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:40,1
    - Dst: Botan::TLS::Internal::has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::TLS::Internal::handshake_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::has_server_finished
    - Botan::TLS::Internal::has_client_finished
    linkageType: ''
    returnType: bool
    signature: bool handshake_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::TLS::Internal::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Client_Hello_13
    signature: Client_Hello_13 & client_hello()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::TLS::Internal::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Client_Hello_13
    signature: Client_Hello_13 & client_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::TLS::Internal::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Server_Hello_13
    signature: Server_Hello_13 & server_hello() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Internal::hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Hello_Retry_Request
    signature: Hello_Retry_Request & hello_retry_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::TLS::Internal::encrypted_extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Encrypted_Extensions
    signature: Encrypted_Extensions & encrypted_extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Internal::certificate_request
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Request_13
    signature: Certificate_Request_13 & certificate_request() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Internal::server_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_13
    signature: Certificate_13 & server_certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Internal::client_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_13
    signature: Certificate_13 & client_certificate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Internal::server_certificate_verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Verify_13
    signature: Certificate_Verify_13 & server_certificate_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Internal::client_certificate_verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Certificate_Verify_13
    signature: Certificate_Verify_13 & client_certificate_verify() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Internal::server_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Finished_13
    signature: Finished_13 & server_finished() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Internal::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Internal::client_finished
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Internal::get
    linkageType: ''
    returnType: Finished_13
    signature: Finished_13 & client_finished() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:84,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:85,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 48
    functionsReached:
    - Invalid_State
    - has_value
    - value
    linkageType: ''
    returnType: "private:\n      template <typename MessageT>"
    signature: "private:\n      template <typename MessageT> & get(const std::optional<MessageT>&
      opt) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:92,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:93,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 48
    functionsReached:
    - Invalid_State
    - has_value
    - value
    linkageType: ''
    returnType: MessageT
    signature: MessageT & get(std::optional<MessageT>& opt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Handshake_State_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:133,1
    - Dst: std::reference_wrapper<decltype(msg)>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:139,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:139,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:139,1
    - Dst: is_generalizable_to<Outbound_Message_T>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:144,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:146,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:150,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:154,1
    - Dst: std::reference_wrapper<decltype(msg)>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:157,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:157,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:159,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:162,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:166,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:171,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 176
    functionName: Internal::Handshake_State_13_Base
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - Handshake_State_13
    - std::move
    - sending
    - TLS_Exception
    - std::reference_wrapper<decltype(msg)>
    - is_generalizable_to<Outbound_Message_T>
    - std::visit
    - store
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Internal::Handshake_State_13_Base
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::reference_wrapper<decltype(msg)>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:139,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:139,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - MsgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: sending
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 15
    functionsReached:
    - std::move
    - std::reference_wrapper<decltype(msg)>
    - store
    linkageType: ''
    returnType: std::reference_wrapper<MsgT>
    signature: "std::reference_wrapper<MsgT> sending(MsgT msg)\n         requires(std::is_constructible_v<Outbound_Message_T,
      MsgT>)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_generalizable_to<Outbound_Message_T>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:144,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:146,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - std::variant<MsgTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: sending
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 16
    functionsReached:
    - std::move
    - std::visit
    - sending
    - is_generalizable_to<Outbound_Message_T>
    linkageType: ''
    returnType: decltype(auto)
    signature: "decltype(auto) sending(std::variant<MsgTs...> message)\n         requires(is_generalizable_to<Outbound_Message_T>(message))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:154,1
    - Dst: std::reference_wrapper<decltype(msg)>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:157,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:157,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:159,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: received
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 30
    functionsReached:
    - std::move
    - TLS_Exception
    - std::reference_wrapper<decltype(msg)>
    - std::visit
    - store
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) received(Handshake_Message_13 message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:166,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:171,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: received
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 30
    functionsReached:
    - std::move
    - std::visit
    - TLS_Exception
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) received(Post_Handshake_Message_13 message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Extension
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 18
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 19
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::get_cookie
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & get_cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Extension
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 18
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 20
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::get_cookie
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & get_cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::PSK_Key_Exchange_Modes
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API PSK_Key_Exchange_Modes
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 3
    functionsReached:
    - Botan::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan::modes
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PSK_Key_Exchange_Mode>
    signature: std::vector<PSK_Key_Exchange_Mode> & modes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - modes
    argTypes:
    - std::vector<PSK_Key_Exchange_Mode>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::PSK_Key_Exchange_Modes
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PSK_Key_Exchange_Modes(std::vector<PSK_Key_Exchange_Mode> modes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Extension
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 18
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 21
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::get_cookie
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & get_cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::TLS::Extension
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 18
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 22
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::TLS::get_cookie
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & get_cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::PSK_Key_Exchange_Modes
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API PSK_Key_Exchange_Modes
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 4
    functionsReached:
    - Botan::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan::modes
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PSK_Key_Exchange_Mode>
    signature: std::vector<PSK_Key_Exchange_Mode> & modes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - modes
    argTypes:
    - std::vector<PSK_Key_Exchange_Mode>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::PSK_Key_Exchange_Modes
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PSK_Key_Exchange_Modes(std::vector<PSK_Key_Exchange_Mode> modes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Certificate_Authorities
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Authorities
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 224
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 929
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: distinguished_names
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<X509_DN>
    signature: std::vector<X509_DN> & distinguished_names() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Extension
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Extension
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 225
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Key_Share
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 226
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 306
    functionName: ~Key_Share() override
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 0
    functionsReached:
    - static_type
    linkageType: ''
    returnType: void
    signature: void ~Key_Share() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_13.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 228
    functionsReached:
    - static_type
    linkageType: ''
    returnType: Extension_Code
    signature: Extension_Code type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: max_early_data_size
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::optional<uint32_t>
    signature: std::optional<uint32_t> max_early_data_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: EarlyDataIndication
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_13.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EarlyDataIndication(std::optional<uint32_t> max_early_data_size
      = std::nullopt)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:30,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:31,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:40,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:40,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:45,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:46,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:54,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:54,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:55,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:63,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:64,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:65,1
    - Dst: all
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:73,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:74,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:92,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:93,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:93,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:94,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:99,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:99,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:100,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:104,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:105,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:106,1
    - Dst: auto*::groups
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:107,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:108,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:120,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:120,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:120,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:121,1
    - Dst: std::distance
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:125,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:125,1
    - Dst: static_cast<decltype(support_offset)>
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:131,1
    - Dst: found_in_supported_groups
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:139,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:140,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Client_Hello_13::Client_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 0
    functionsReached:
    - all
    - auto::begin
    - extensions
    - std::find
    - std::move
    - get
    - std::distance
    - TLS_Exception
    - comp_methods
    - BOTAN_ASSERT_NONNULL
    - static_cast<decltype(support_offset)>
    - found_in_supported_groups
    - BOTAN_ASSERT_NOMSG
    - auto*::groups
    - auto::end
    - has
    - legacy_version
    linkageType: ''
    returnType: void
    signature: void Client_Hello_13::Client_Hello_13(std::unique_ptr<Client_Hello_Internal>
      data)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:168,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:169,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:171,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:173,1
    - Dst: m_suites::insert
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:174,1
    - Dst: m_suites::end
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:174,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:174,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:174,1
    - Dst: tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:177,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:185,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:185,1
    - Dst: Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:189,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:190,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:190,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:193,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:193,1
    - Dst: Supported_Groups::Supported_Groups
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:193,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:195,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:195,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:197,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:197,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:199,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:199,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:199,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:200,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:204,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:204,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:204,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:204,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:210,1
    - Dst: PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:210,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:212,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:213,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:213,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:219,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:219,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:220,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:220,1
    - Dst: Record_Size_Limit::Record_Size_Limit
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:220,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:223,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:224,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:224,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:231,1
    - Dst: accepted_client_certificate_types
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:231,1
    - Dst: Client_Certificate_Type::Client_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:231,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:232,1
    - Dst: accepted_server_certificate_types
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:232,1
    - Dst: Server_Certificate_Type::Server_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:232,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:235,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:236,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:236,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:237,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:237,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:240,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:240,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:242,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:243,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:243,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:246,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:247,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:248,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:248,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:248,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:253,1
    - Dst: std::vector<ExternalPSK>::empty
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:253,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:254,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:254,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:254,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:258,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:258,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:258,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:260,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:264,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:265,1
    - Dst: Botan::TLS::Client_Hello_13::calculate_psk_binders
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:268,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 7
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    - hostname
    - ' next_protocols'
    - ' session'
    - psks
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    - std::string_view
    - std::vector<std::string>
    - std::optional<Session_with_Handle>
    - std::vector<ExternalPSK>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 270
    functionName: Botan::TLS::Client_Hello_13::Client_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 0
    functionsReached:
    - tls_13_middlebox_compatibility_mode
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - Supported_Groups::Supported_Groups
    - accepted_client_certificate_types
    - Signature_Algorithms::Signature_Algorithms
    - acceptable_signature_schemes
    - Key_Share::Key_Share
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
    - type
    - empty
    - m_suites::end
    - ciphersuite_list
    - Session_ID
    - std::move
    - use_ecc_point_compression
    - tls_modify_extensions
    - Session_Ticket_Extension::Session_Ticket_Extension
    - Supported_Point_Formats::Supported_Point_Formats
    - Certificate_Status_Request::Certificate_Status_Request
    - allow_tls12
    - m_suites::insert
    - extensions
    - Server_Certificate_Type::Server_Certificate_Type
    - std::vector<ExternalPSK>::empty
    - Client_Certificate_Type::Client_Certificate_Type
    - negotiate_encrypt_then_mac
    - accepted_server_certificate_types
    - auto::cend
    - TLS_Exception
    - Server_Name_Indicator::Server_Name_Indicator
    - Botan::TLS::Client_Hello_13::calculate_psk_binders
    - key_exchange_groups
    - auto::cbegin
    - Record_Size_Limit::Record_Size_Limit
    - Supported_Versions::Supported_Versions
    - has_value
    - PSK::PSK
    - support_cert_status_message
    - Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
    - Encrypt_then_MAC::Encrypt_then_MAC
    - record_size_limit
    - make_hello_random
    - auto::value
    - Renegotiation_Extension::Renegotiation_Extension
    - acceptable_certificate_signature_schemes
    - Extended_Master_Secret::Extended_Master_Secret
    linkageType: ''
    returnType: void
    signature: "void Client_Hello_13::Client_Hello_13(const Policy& policy,\n                                 Callbacks&
      cb,\n                                 RandomNumberGenerator& rng,\n                                 std::string_view
      hostname,\n                                 const std::vector<std::string>&
      next_protocols,\n                                 std::optional<Session_with_Handle>&
      session,\n                                 std::vector<ExternalPSK> psks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:273,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:274,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:276,1
    - Dst: Client_Hello_12_Shim
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:277,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:277,1
    - Dst: Botan::TLS::Client_Hello_13::Client_Hello_13
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:279,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: Botan::TLS::Client_Hello_13::parse
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 28
    functionsReached:
    - auto::version
    - auto::is_pre_tls_13
    - std::make_unique<Client_Hello_Internal>
    - std::move
    - Client_Hello_12_Shim
    - Botan::TLS::Client_Hello_13::Client_Hello_13
    linkageType: ''
    returnType: std::variant<Client_Hello_13, Client_Hello_12_Shim>
    signature: std::variant<Client_Hello_13, Client_Hello_12_Shim> Client_Hello_13::parse(const
      std::vector<uint8_t>& buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:287,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:287,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:288,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:288,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:290,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:291,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:293,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:294,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:305,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:306,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:306,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:307,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:307,1
    - Dst: Cookie::Cookie
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:307,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:314,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:314,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:314,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:316,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:319,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:319,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:320,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:320,1
    - Dst: auto*::filter
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:326,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:326,1
    - Dst: Botan::TLS::Client_Hello_13::calculate_psk_binders
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:331,1
    - Dst: clone
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ' hrr'
    - ' transcript_hash_state'
    - ' cb'
    - ' rng'
    argTypes:
    - Hello_Retry_Request
    - Transcript_Hash_State
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 333
    functionName: Botan::TLS::Client_Hello_13::retry
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 0
    functionsReached:
    - clone
    - ciphersuite
    - extensions
    - auto*::filter
    - Cookie::Cookie
    - tls_modify_extensions
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - Botan::TLS::Client_Hello_13::calculate_psk_binders
    - BOTAN_ASSERT_NOMSG
    - auto::value
    - type
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: "void Client_Hello_13::retry(const Hello_Retry_Request& hrr,\n                            const
      Transcript_Hash_State& transcript_hash_state,\n                            Callbacks&
      cb,\n                            RandomNumberGenerator& rng)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:341,1
    - Dst: m_data::session_id
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:341,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:341,1
    - Dst: m_data::random
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:341,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:342,1
    - Dst: m_data::ciphersuites
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:342,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:343,1
    - Dst: m_data::comp_methods
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:343,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:344,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:347,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:348,1
    - Dst: auto::contains
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:352,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:353,1
    - Dst: auto*::is_implemented
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:356,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:363,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:375,1
    - Dst: auto::contains
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:381,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:382,1
    - Dst: auto*::is_implemented
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:385,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:392,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:404,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:411,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:412,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 27
    argCount: 1
    argNames:
    - ' new_ch'
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 429
    functionName: Botan::TLS::Client_Hello_13::validate_updates
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 0
    functionsReached:
    - auto*::is_implemented
    - extensions
    - extension_types
    - m_data::random
    - m_data::ciphersuites
    - auto::contains
    - comp_methods
    - TLS_Exception
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    - m_data::session_id
    - random
    - session_id
    - ciphersuites
    - m_data::comp_methods
    linkageType: ''
    returnType: void
    signature: void Client_Hello_13::validate_updates(const Client_Hello_13& new_ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:432,1
    - Dst: auto*::empty
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:433,1
    - Dst: Botan::TLS::Handshake_Layer::prepare_message
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:446,1
    - Dst: auto*::calculate_binders
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - transcript_hash
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 448
    functionName: Botan::TLS::Client_Hello_13::calculate_psk_binders
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 2
    functionsReached:
    - auto*::calculate_binders
    - auto*::empty
    - Botan::TLS::Handshake_Layer::prepare_message
    - extensions
    linkageType: ''
    returnType: void
    signature: void Client_Hello_13::calculate_psk_binders(Transcript_Hash_State transcript_hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:456,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:457,1
    - Dst: auto*::versions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:461,1
    - Dst: known_version
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:466,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:466,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:470,1
    - Dst: std::optional
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:470,1
    - Dst: max
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:470,1
    - Dst: std::optional::value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:470,1
    - Dst: std::optional
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 474
    functionName: Botan::TLS::Client_Hello_13::highest_supported_version
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 0
    functionsReached:
    - acceptable_protocol_version
    - std::optional
    - extensions
    - max
    - std::optional::value
    - auto*::versions
    - BOTAN_ASSERT_NONNULL
    - known_version
    - std::optional::has_value
    linkageType: ''
    returnType: std::optional<Protocol_Version>
    signature: std::optional<Protocol_Version> Client_Hello_13::highest_supported_version(const
      Policy& policy) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:30,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:31,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:40,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:40,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:45,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:46,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:54,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:54,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:55,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:63,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:64,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:65,1
    - Dst: all
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:73,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:74,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:92,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:93,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:93,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:94,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:99,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:99,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:100,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:104,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:105,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:106,1
    - Dst: auto*::groups
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:107,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:108,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:120,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:120,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:120,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:121,1
    - Dst: std::distance
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:125,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:125,1
    - Dst: static_cast<decltype(support_offset)>
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:131,1
    - Dst: found_in_supported_groups
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:139,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:140,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Client_Hello_13::Client_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 1
    functionsReached:
    - all
    - auto::begin
    - extensions
    - std::find
    - std::move
    - get
    - std::distance
    - TLS_Exception
    - comp_methods
    - BOTAN_ASSERT_NONNULL
    - static_cast<decltype(support_offset)>
    - found_in_supported_groups
    - BOTAN_ASSERT_NOMSG
    - auto*::groups
    - auto::end
    - has
    - legacy_version
    linkageType: ''
    returnType: void
    signature: void Client_Hello_13::Client_Hello_13(std::unique_ptr<Client_Hello_Internal>
      data)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:168,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:169,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:171,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:173,1
    - Dst: m_suites::insert
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:174,1
    - Dst: m_suites::end
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:174,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:174,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:174,1
    - Dst: tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:177,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:185,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:185,1
    - Dst: Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:189,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:190,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:190,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:193,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:193,1
    - Dst: Supported_Groups::Supported_Groups
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:193,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:195,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:195,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:197,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:197,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:199,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:199,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:199,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:200,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:204,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:204,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:204,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:204,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:210,1
    - Dst: PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:210,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:212,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:213,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:213,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:219,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:219,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:220,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:220,1
    - Dst: Record_Size_Limit::Record_Size_Limit
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:220,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:223,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:224,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:224,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:231,1
    - Dst: accepted_client_certificate_types
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:231,1
    - Dst: Client_Certificate_Type::Client_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:231,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:232,1
    - Dst: accepted_server_certificate_types
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:232,1
    - Dst: Server_Certificate_Type::Server_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:232,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:235,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:236,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:236,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:237,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:237,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:240,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:240,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:242,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:243,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:243,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:246,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:247,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:248,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:248,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:248,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:253,1
    - Dst: std::vector<ExternalPSK>::empty
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:253,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:254,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:254,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:254,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:258,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:258,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:258,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:260,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:264,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:265,1
    - Dst: Botan::TLS::Client_Hello_13::calculate_psk_binders
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:268,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 7
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    - hostname
    - ' next_protocols'
    - ' session'
    - psks
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    - std::string_view
    - std::vector<std::string>
    - std::optional<Session_with_Handle>
    - std::vector<ExternalPSK>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 270
    functionName: Botan::TLS::Client_Hello_13::Client_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 1
    functionsReached:
    - tls_13_middlebox_compatibility_mode
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - Supported_Groups::Supported_Groups
    - accepted_client_certificate_types
    - Signature_Algorithms::Signature_Algorithms
    - acceptable_signature_schemes
    - Key_Share::Key_Share
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
    - type
    - empty
    - m_suites::end
    - ciphersuite_list
    - Session_ID
    - std::move
    - use_ecc_point_compression
    - tls_modify_extensions
    - Session_Ticket_Extension::Session_Ticket_Extension
    - Supported_Point_Formats::Supported_Point_Formats
    - Certificate_Status_Request::Certificate_Status_Request
    - allow_tls12
    - m_suites::insert
    - extensions
    - Server_Certificate_Type::Server_Certificate_Type
    - std::vector<ExternalPSK>::empty
    - Client_Certificate_Type::Client_Certificate_Type
    - negotiate_encrypt_then_mac
    - accepted_server_certificate_types
    - auto::cend
    - TLS_Exception
    - Server_Name_Indicator::Server_Name_Indicator
    - Botan::TLS::Client_Hello_13::calculate_psk_binders
    - key_exchange_groups
    - auto::cbegin
    - Record_Size_Limit::Record_Size_Limit
    - Supported_Versions::Supported_Versions
    - has_value
    - PSK::PSK
    - support_cert_status_message
    - Botan::TLS::Server_Name_Indicator::hostname_acceptable_for_sni
    - Encrypt_then_MAC::Encrypt_then_MAC
    - record_size_limit
    - make_hello_random
    - auto::value
    - Renegotiation_Extension::Renegotiation_Extension
    - acceptable_certificate_signature_schemes
    - Extended_Master_Secret::Extended_Master_Secret
    linkageType: ''
    returnType: void
    signature: "void Client_Hello_13::Client_Hello_13(const Policy& policy,\n                                 Callbacks&
      cb,\n                                 RandomNumberGenerator& rng,\n                                 std::string_view
      hostname,\n                                 const std::vector<std::string>&
      next_protocols,\n                                 std::optional<Session_with_Handle>&
      session,\n                                 std::vector<ExternalPSK> psks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Hello_Internal>
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:273,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:274,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:276,1
    - Dst: Client_Hello_12_Shim
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:277,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:277,1
    - Dst: Botan::TLS::Client_Hello_13::Client_Hello_13
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:279,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: Botan::TLS::Client_Hello_13::parse
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 28
    functionsReached:
    - auto::version
    - auto::is_pre_tls_13
    - std::make_unique<Client_Hello_Internal>
    - std::move
    - Client_Hello_12_Shim
    - Botan::TLS::Client_Hello_13::Client_Hello_13
    linkageType: ''
    returnType: std::variant<Client_Hello_13, Client_Hello_12_Shim>
    signature: std::variant<Client_Hello_13, Client_Hello_12_Shim> Client_Hello_13::parse(const
      std::vector<uint8_t>& buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:287,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:287,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:288,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:288,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:290,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:291,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:293,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:294,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:305,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:306,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:306,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:307,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:307,1
    - Dst: Cookie::Cookie
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:307,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:314,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:314,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:314,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:316,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:319,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:319,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:320,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:320,1
    - Dst: auto*::filter
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:326,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:326,1
    - Dst: Botan::TLS::Client_Hello_13::calculate_psk_binders
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:331,1
    - Dst: clone
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ' hrr'
    - ' transcript_hash_state'
    - ' cb'
    - ' rng'
    argTypes:
    - Hello_Retry_Request
    - Transcript_Hash_State
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 333
    functionName: Botan::TLS::Client_Hello_13::retry
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 0
    functionsReached:
    - clone
    - ciphersuite
    - extensions
    - auto*::filter
    - Cookie::Cookie
    - tls_modify_extensions
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - Botan::TLS::Client_Hello_13::calculate_psk_binders
    - BOTAN_ASSERT_NOMSG
    - auto::value
    - type
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: "void Client_Hello_13::retry(const Hello_Retry_Request& hrr,\n                            const
      Transcript_Hash_State& transcript_hash_state,\n                            Callbacks&
      cb,\n                            RandomNumberGenerator& rng)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:341,1
    - Dst: m_data::session_id
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:341,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:341,1
    - Dst: m_data::random
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:341,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:342,1
    - Dst: m_data::ciphersuites
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:342,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:343,1
    - Dst: m_data::comp_methods
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:343,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:344,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:347,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:348,1
    - Dst: auto::contains
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:352,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:353,1
    - Dst: auto*::is_implemented
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:356,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:363,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:375,1
    - Dst: auto::contains
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:381,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:382,1
    - Dst: auto*::is_implemented
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:385,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:392,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:404,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:411,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:412,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 27
    argCount: 1
    argNames:
    - ' new_ch'
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 429
    functionName: Botan::TLS::Client_Hello_13::validate_updates
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 0
    functionsReached:
    - auto*::is_implemented
    - extensions
    - extension_types
    - m_data::random
    - m_data::ciphersuites
    - auto::contains
    - comp_methods
    - TLS_Exception
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    - m_data::session_id
    - random
    - session_id
    - ciphersuites
    - m_data::comp_methods
    linkageType: ''
    returnType: void
    signature: void Client_Hello_13::validate_updates(const Client_Hello_13& new_ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:432,1
    - Dst: auto*::empty
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:433,1
    - Dst: Botan::TLS::Handshake_Layer::prepare_message
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:446,1
    - Dst: auto*::calculate_binders
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - transcript_hash
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 448
    functionName: Botan::TLS::Client_Hello_13::calculate_psk_binders
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 4
    functionsReached:
    - auto*::calculate_binders
    - auto*::empty
    - Botan::TLS::Handshake_Layer::prepare_message
    - extensions
    linkageType: ''
    returnType: void
    signature: void Client_Hello_13::calculate_psk_binders(Transcript_Hash_State transcript_hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:456,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:457,1
    - Dst: auto*::versions
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:461,1
    - Dst: known_version
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:466,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:466,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:470,1
    - Dst: std::optional
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:470,1
    - Dst: max
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:470,1
    - Dst: std::optional::value
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:470,1
    - Dst: std::optional
      Src: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 474
    functionName: Botan::TLS::Client_Hello_13::highest_supported_version
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_client_hello_13.cpp
    functionUses: 0
    functionsReached:
    - acceptable_protocol_version
    - std::optional
    - extensions
    - max
    - std::optional::value
    - auto*::versions
    - BOTAN_ASSERT_NONNULL
    - known_version
    - std::optional::has_value
    linkageType: ''
    returnType: std::optional<Protocol_Version>
    signature: std::optional<Protocol_Version> Client_Hello_13::highest_supported_version(const
      Policy& policy) const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:19,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:28,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:29,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:29,1
    - Dst: Supported_Groups::Supported_Groups
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:29,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:32,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:34,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:40,1
    - Dst: auto::value_or
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:40,1
    - Dst: Record_Size_Limit::Record_Size_Limit
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:40,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:41,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:41,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:46,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:58,1
    - Dst: request_client_certificate_authentication
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:59,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:60,1
    - Dst: Client_Certificate_Type::Client_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:60,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:69,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:70,1
    - Dst: Server_Certificate_Type::Server_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:70,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:78,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:79,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:79,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:82,1
    - Dst: tls_server_choose_app_protocol
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:83,1
    - Dst: auto*::protocols
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:83,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:84,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:85,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:85,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:94,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:94,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - ' client_hello'
    - ' policy'
    - ' cb'
    argTypes:
    - Client_Hello_13
    - Policy
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Encrypted_Extensions::Encrypted_Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp
    functionUses: 0
    functionsReached:
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - Supported_Groups::Supported_Groups
    - tls_server_choose_app_protocol
    - auto*::protocols
    - type
    - has
    - get
    - tls_modify_extensions
    - auto::value_or
    - request_client_certificate_authentication
    - extensions
    - Server_Certificate_Type::Server_Certificate_Type
    - Client_Certificate_Type::Client_Certificate_Type
    - auto::empty
    - add
    - TLS_Exception
    - Server_Name_Indicator::Server_Name_Indicator
    - auto::has_value
    - key_exchange_groups
    - Record_Size_Limit::Record_Size_Limit
    - record_size_limit
    - auto::value
    linkageType: ''
    returnType: void
    signature: void Encrypted_Extensions::Encrypted_Extensions(const Client_Hello_13&
      client_hello, const Policy& policy, Callbacks& cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:103,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:104,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:107,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:107,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:132,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 135
    functionName: Botan::TLS::Encrypted_Extensions::Encrypted_Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - size
    - contains_implemented_extensions_other_than
    - deserialize
    - type
    linkageType: ''
    returnType: void
    signature: void Encrypted_Extensions::Encrypted_Extensions(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Encrypted_Extensions::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Encrypted_Extensions::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Encrypted_Extensions::serialize
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Encrypted_Extensions::serialize() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:19,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:28,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:29,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:29,1
    - Dst: Supported_Groups::Supported_Groups
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:29,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:32,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:34,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:40,1
    - Dst: auto::value_or
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:40,1
    - Dst: Record_Size_Limit::Record_Size_Limit
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:40,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:41,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:41,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:46,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:58,1
    - Dst: request_client_certificate_authentication
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:59,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:60,1
    - Dst: Client_Certificate_Type::Client_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:60,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:69,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:70,1
    - Dst: Server_Certificate_Type::Server_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:70,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:78,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:79,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:79,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:82,1
    - Dst: tls_server_choose_app_protocol
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:83,1
    - Dst: auto*::protocols
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:83,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:84,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:85,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:85,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:94,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:94,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - ' client_hello'
    - ' policy'
    - ' cb'
    argTypes:
    - Client_Hello_13
    - Policy
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Encrypted_Extensions::Encrypted_Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp
    functionUses: 0
    functionsReached:
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - Supported_Groups::Supported_Groups
    - tls_server_choose_app_protocol
    - auto*::protocols
    - type
    - has
    - get
    - tls_modify_extensions
    - auto::value_or
    - request_client_certificate_authentication
    - extensions
    - Server_Certificate_Type::Server_Certificate_Type
    - Client_Certificate_Type::Client_Certificate_Type
    - auto::empty
    - add
    - TLS_Exception
    - Server_Name_Indicator::Server_Name_Indicator
    - auto::has_value
    - key_exchange_groups
    - Record_Size_Limit::Record_Size_Limit
    - record_size_limit
    - auto::value
    linkageType: ''
    returnType: void
    signature: void Encrypted_Extensions::Encrypted_Extensions(const Client_Hello_13&
      client_hello, const Policy& policy, Callbacks& cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:103,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:104,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:107,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:107,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:132,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 135
    functionName: Botan::TLS::Encrypted_Extensions::Encrypted_Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - size
    - contains_implemented_extensions_other_than
    - deserialize
    - type
    linkageType: ''
    returnType: void
    signature: void Encrypted_Extensions::Encrypted_Extensions(const std::vector<uint8_t>&
      buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Encrypted_Extensions::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: Botan::TLS::Encrypted_Extensions::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Encrypted_Extensions::serialize
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Encrypted_Extensions::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: is_user_canceled_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool is_user_canceled_alert(const Botan::TLS::Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: is_close_notify_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool is_close_notify_alert(const Botan::TLS::Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:32,1
    - Dst: is_user_canceled_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: is_error_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - is_close_notify_alert
    - is_user_canceled_alert
    linkageType: ''
    returnType: bool
    signature: bool is_error_alert(const Botan::TLS::Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: is_user_canceled_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 1
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool is_user_canceled_alert(const Botan::TLS::Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: is_close_notify_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 1
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool is_close_notify_alert(const Botan::TLS::Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:32,1
    - Dst: is_user_canceled_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: is_error_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - is_close_notify_alert
    - is_user_canceled_alert
    linkageType: ''
    returnType: bool
    signature: bool is_error_alert(const Botan::TLS::Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:57,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:58,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:59,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:60,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' credentials_manager'
    - ' rng'
    - ' policy'
    - is_server
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<RandomNumberGenerator>
    - std::shared_ptr<const Policy>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Channel_Impl_13::Channel_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_13::Channel_Impl_13(const std::shared_ptr<Callbacks>&
      callbacks,\n                                 const std::shared_ptr<Session_Manager>&
      session_manager,\n                                 const std::shared_ptr<Credentials_Manager>&
      credentials_manager,\n                                 const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                 const std::shared_ptr<const Policy>&
      policy,\n                                 bool is_server)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Channel_Impl_13::~Channel_Impl_13()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::~Channel_Impl_13()
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:67,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:67,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:76,1
    - Dst: preserve_peer_transcript
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:77,1
    - Dst: copy_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:80,1
    - Dst: next_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:91,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:91,1
    - Dst: std::holds_alternative<BytesNeeded>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:93,1
    - Dst: std::get<BytesNeeded>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:94,1
    - Dst: std::get<Record>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:97,1
    - Dst: has_pending_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:101,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:102,1
    - Dst: copy_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:106,1
    - Dst: is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:108,1
    - Dst: next_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:109,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:109,1
    - Dst: "holds_any_of<Client_Hello_12_Shim,\n                                  Client_Hello_13
        /*, EndOfEarlyData,*/,\n                                  Server_Hello_13,\n
        \                                 Hello_Retry_Request,\n                                  Finished_13>"
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:125,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:129,1
    - Dst: has_pending_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:130,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:131,1
    - Dst: process_handshake_msg
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:134,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:134,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:136,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:143,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:147,1
    - Dst: disable_receiving_compat_mode
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:154,1
    - Dst: next_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:159,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:159,1
    - Dst: process_post_handshake_msg
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:160,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:160,1
    - Dst: process_dummy_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:164,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:166,1
    - Dst: seq_no::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:166,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:167,1
    - Dst: seq_no::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:167,1
    - Dst: Botan::TLS::Channel_Impl_13::process_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:169,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:171,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:171,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:171,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:176,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:176,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:182,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:185,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:188,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 191
    functionName: Botan::TLS::Channel_Impl_13::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - std::get<Record>
    - std::get<BytesNeeded>
    - policy
    - send_fatal_alert
    - expects_downgrade
    - process_dummy_change_cipher_spec
    - BOTAN_ASSERT
    - next_post_handshake_message
    - callbacks
    - has_pending_data
    - preserve_peer_transcript
    - type
    - process_handshake_msg
    - std::to_string
    - Unexpected_Message
    - next_message
    - std::move
    - Botan::TLS::Channel_Impl_13::shutdown
    - get
    - seq_no::has_value
    - "holds_any_of<Client_Hello_12_Shim,\n                                  Client_Hello_13
      /*, EndOfEarlyData,*/,\n                                  Server_Hello_13,\n
      \                                 Hello_Retry_Request,\n                                  Finished_13>"
    - BOTAN_STATE_CHECK
    - next_record
    - Botan::TLS::Channel_Impl_13::process_alert
    - seq_no::value
    - std::holds_alternative<BytesNeeded>
    - disable_receiving_compat_mode
    - process_post_handshake_msg
    - reset
    - is_downgrading
    - copy_data
    - static_cast<size_t>
    - is_handshake_complete
    - auto::value
    linkageType: ''
    returnType: size_t
    signature: size_t Channel_Impl_13::from_peer(std::span<const uint8_t> data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_pending_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:195,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:196,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:199,1
    - Dst: update_read_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:200,1
    - Dst: expects_reciprocation
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:210,1
    - Dst: Botan::TLS::Channel_Impl_13::opportunistically_update_traffic_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' key_update'
    argTypes:
    - Key_Update
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 217
    functionName: Botan::TLS::Channel_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_13::opportunistically_update_traffic_keys
    - update_read_keys
    - Unexpected_Message
    - expects_reciprocation
    - BOTAN_ASSERT_NONNULL
    - has_pending_data
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::handle(const Key_Update& key_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' channel'
    - ' handshake_layer'
    argTypes:
    - Channel_Impl_13
    - Handshake_Layer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: Channel_Impl_13::AggregatedMessages::AggregatedMessages(Channel_Impl_13&
      channel, Handshake_Layer& handshake_layer)
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::AggregatedMessages::AggregatedMessages(Channel_Impl_13&
      channel, Handshake_Layer& handshake_layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' channel'
    - ' handshake_layer'
    - ' transcript_hash'
    argTypes:
    - Channel_Impl_13
    - Handshake_Layer
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: "Channel_Impl_13::AggregatedHandshakeMessages::AggregatedHandshakeMessages(Channel_Impl_13&
      channel,\n                                                                          Handshake_Layer&
      handshake_layer,\n                                                                          Transcript_Hash_State&
      transcript_hash)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_13::AggregatedHandshakeMessages::AggregatedHandshakeMessages(Channel_Impl_13&
      channel,\n                                                                          Handshake_Layer&
      handshake_layer,\n                                                                          Transcript_Hash_State&
      transcript_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:229,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:229,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:229,1
    - Dst: prepare_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13_Ref
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: "& Channel_Impl_13::AggregatedHandshakeMessages::add(\n   const
      Handshake_Message_13_Ref message)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - prepare_message
    - std::visit
    - get
    - callbacks
    linkageType: ''
    returnType: Channel_Impl_13::AggregatedHandshakeMessages
    signature: "Channel_Impl_13::AggregatedHandshakeMessages & Channel_Impl_13::AggregatedHandshakeMessages::add(\n
      \  const Handshake_Message_13_Ref message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:236,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:236,1
    - Dst: prepare_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: "& Channel_Impl_13::AggregatedPostHandshakeMessages::add(\n   Post_Handshake_Message_13
      message)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - prepare_post_handshake_message
    - std::visit
    - callbacks
    linkageType: ''
    returnType: Channel_Impl_13::AggregatedPostHandshakeMessages
    signature: "Channel_Impl_13::AggregatedPostHandshakeMessages & Channel_Impl_13::AggregatedPostHandshakeMessages::add(\n
      \  Post_Handshake_Message_13 message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:242,1
    - Dst: contains_messages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:242,1
    - Dst: send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:243,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: Channel_Impl_13::AggregatedMessages::send()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - contains_messages
    - std::exchange
    - send_record
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Channel_Impl_13::AggregatedMessages::send()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: Botan::TLS::Channel_Impl_13::send_dummy_change_cipher_spec
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_13::send_record
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::send_dummy_change_cipher_spec()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::is_active
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:258,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:259,1
    - Dst: Botan::TLS::Channel_Impl_13::update_traffic_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:271,1
    - Dst: Botan::TLS::Channel_Impl_13::send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:275,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:275,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 276
    functionName: Botan::TLS::Channel_Impl_13::to_peer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_13::is_active
    - Botan::TLS::Channel_Impl_13::update_traffic_keys
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - Invalid_State
    - Botan::TLS::Channel_Impl_13::send_record
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::to_peer(std::span<const uint8_t> data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:279,1
    - Dst: Botan::TLS::Channel_Impl_13::send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:281,1
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:281,1
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:291,1
    - Dst: clear_write_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:294,1
    - Dst: is_error_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:298,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 301
    functionName: Botan::TLS::Channel_Impl_13::send_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - is_valid
    - clear_write_keys
    - Botan::TLS::Channel_Impl_13::shutdown
    - is_close_notify_alert
    - serialize
    - is_error_alert
    - Botan::TLS::Channel_Impl_13::send_record
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::send_alert(const Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: Botan::TLS::Channel_Impl_13::is_active
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 1
    functionsReached:
    - can_encrypt_application_traffic
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_13::is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:311,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:311,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:312,1
    - Dst: can_export_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:312,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:313,1
    - Dst: export_key
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: Botan::TLS::Channel_Impl_13::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - SymmetricKey
    - is_downgrading
    - export_key
    - can_export_keys
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey Channel_Impl_13::key_material_export(std::string_view
      label,\n                                                  std::string_view context,\n
      \                                                 size_t length) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:317,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:317,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:318,1
    - Dst: is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:318,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:319,1
    - Dst: Botan::TLS::Channel_Impl_13::send_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:320,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:320,1
    - Dst: update_write_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: Botan::TLS::Channel_Impl_13::update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 1
    functionsReached:
    - Key_Update
    - update_write_keys
    - is_downgrading
    - BOTAN_ASSERT_NONNULL
    - is_handshake_complete
    - Botan::TLS::Channel_Impl_13::send_post_handshake_message
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::update_traffic_keys(bool request_peer_update)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:325,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:325,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:326,1
    - Dst: prepare_records
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:328,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:328,1
    - Dst: disable_sending_compat_mode
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:335,1
    - Dst: Botan::TLS::Channel_Impl_13::prepend_ccs
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:341,1
    - Dst: prepare_records
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:343,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:343,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:344,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - type
    - ' record'
    argTypes:
    - Record_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 348
    functionName: Botan::TLS::Channel_Impl_13::send_record
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 3
    functionsReached:
    - concat
    - is_downgrading
    - prepare_records
    - get
    - callbacks
    - Botan::TLS::Channel_Impl_13::prepend_ccs
    - disable_sending_compat_mode
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::send_record(Record_Type type, const std::vector<uint8_t>&
      record)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:353,1
    - Dst: clear_read_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:356,1
    - Dst: clear_read_buffer
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:358,1
    - Dst: is_error_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:368,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:368,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:373,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:376,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:380,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:381,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:384,1
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:387,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:387,1
    - Dst: close
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:388,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - ' record'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 390
    functionName: Botan::TLS::Channel_Impl_13::process_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 1
    functionsReached:
    - close
    - expects_downgrade
    - Botan::TLS::Channel_Impl_13::shutdown
    - is_close_notify_alert
    - callbacks
    - clear_read_buffer
    - TLS_Exception
    - clear_read_keys
    - Alert::is_fatal
    - is_error_alert
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::process_alert(const secure_vector<uint8_t>& record)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: Botan::TLS::Channel_Impl_13::shutdown
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 3
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::shutdown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Downgrade_Information>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:418,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' server_info'
    - ' next_protocols'
    argTypes:
    - Server_Information
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 419
    functionName: Botan::TLS::Channel_Impl_13::expect_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Downgrade_Information>
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_13::expect_downgrade(const Server_Information& server_info,\n
      \                                      const std::vector<std::string>& next_protocols)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::set_record_size_limits
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outgoing_limit
    - incoming_limit
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: Botan::TLS::Channel_Impl_13::set_record_size_limits
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Channel_Impl_13::set_record_size_limits
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::set_record_size_limits(const uint16_t outgoing_limit,
      const uint16_t incoming_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::set_selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert_type
    argTypes:
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: Botan::TLS::Channel_Impl_13::set_selected_certificate_type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Channel_Impl_13::set_selected_certificate_type
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::set_selected_certificate_type(const Certificate_Type
      cert_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:57,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:58,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:59,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:60,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' credentials_manager'
    - ' rng'
    - ' policy'
    - is_server
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<RandomNumberGenerator>
    - std::shared_ptr<const Policy>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Channel_Impl_13::Channel_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_13::Channel_Impl_13(const std::shared_ptr<Callbacks>&
      callbacks,\n                                 const std::shared_ptr<Session_Manager>&
      session_manager,\n                                 const std::shared_ptr<Credentials_Manager>&
      credentials_manager,\n                                 const std::shared_ptr<RandomNumberGenerator>&
      rng,\n                                 const std::shared_ptr<const Policy>&
      policy,\n                                 bool is_server)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Channel_Impl_13::~Channel_Impl_13()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::~Channel_Impl_13()
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:67,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:67,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:76,1
    - Dst: preserve_peer_transcript
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:77,1
    - Dst: copy_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:80,1
    - Dst: next_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:91,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:91,1
    - Dst: std::holds_alternative<BytesNeeded>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:93,1
    - Dst: std::get<BytesNeeded>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:94,1
    - Dst: std::get<Record>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:97,1
    - Dst: has_pending_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:101,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:102,1
    - Dst: copy_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:106,1
    - Dst: is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:108,1
    - Dst: next_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:109,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:109,1
    - Dst: "holds_any_of<Client_Hello_12_Shim,\n                                  Client_Hello_13
        /*, EndOfEarlyData,*/,\n                                  Server_Hello_13,\n
        \                                 Hello_Retry_Request,\n                                  Finished_13>"
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:125,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:129,1
    - Dst: has_pending_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:130,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:131,1
    - Dst: process_handshake_msg
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:134,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:134,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:136,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:143,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:147,1
    - Dst: disable_receiving_compat_mode
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:154,1
    - Dst: next_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:159,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:159,1
    - Dst: process_post_handshake_msg
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:160,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:160,1
    - Dst: process_dummy_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:164,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:166,1
    - Dst: seq_no::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:166,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:167,1
    - Dst: seq_no::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:167,1
    - Dst: Botan::TLS::Channel_Impl_13::process_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:169,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:171,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:171,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:171,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:176,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:176,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:182,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:185,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:188,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 191
    functionName: Botan::TLS::Channel_Impl_13::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - std::get<Record>
    - std::get<BytesNeeded>
    - policy
    - send_fatal_alert
    - expects_downgrade
    - process_dummy_change_cipher_spec
    - BOTAN_ASSERT
    - next_post_handshake_message
    - callbacks
    - has_pending_data
    - preserve_peer_transcript
    - type
    - process_handshake_msg
    - std::to_string
    - Unexpected_Message
    - next_message
    - std::move
    - Botan::TLS::Channel_Impl_13::shutdown
    - get
    - seq_no::has_value
    - "holds_any_of<Client_Hello_12_Shim,\n                                  Client_Hello_13
      /*, EndOfEarlyData,*/,\n                                  Server_Hello_13,\n
      \                                 Hello_Retry_Request,\n                                  Finished_13>"
    - BOTAN_STATE_CHECK
    - next_record
    - Botan::TLS::Channel_Impl_13::process_alert
    - seq_no::value
    - std::holds_alternative<BytesNeeded>
    - disable_receiving_compat_mode
    - process_post_handshake_msg
    - reset
    - is_downgrading
    - copy_data
    - static_cast<size_t>
    - is_handshake_complete
    - auto::value
    linkageType: ''
    returnType: size_t
    signature: size_t Channel_Impl_13::from_peer(std::span<const uint8_t> data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_pending_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:195,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:196,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:199,1
    - Dst: update_read_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:200,1
    - Dst: expects_reciprocation
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:210,1
    - Dst: Botan::TLS::Channel_Impl_13::opportunistically_update_traffic_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' key_update'
    argTypes:
    - Key_Update
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 217
    functionName: Botan::TLS::Channel_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_13::opportunistically_update_traffic_keys
    - update_read_keys
    - Unexpected_Message
    - expects_reciprocation
    - BOTAN_ASSERT_NONNULL
    - has_pending_data
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::handle(const Key_Update& key_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' channel'
    - ' handshake_layer'
    argTypes:
    - Channel_Impl_13
    - Handshake_Layer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: Channel_Impl_13::AggregatedMessages::AggregatedMessages(Channel_Impl_13&
      channel, Handshake_Layer& handshake_layer)
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::AggregatedMessages::AggregatedMessages(Channel_Impl_13&
      channel, Handshake_Layer& handshake_layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' channel'
    - ' handshake_layer'
    - ' transcript_hash'
    argTypes:
    - Channel_Impl_13
    - Handshake_Layer
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: "Channel_Impl_13::AggregatedHandshakeMessages::AggregatedHandshakeMessages(Channel_Impl_13&
      channel,\n                                                                          Handshake_Layer&
      handshake_layer,\n                                                                          Transcript_Hash_State&
      transcript_hash)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_13::AggregatedHandshakeMessages::AggregatedHandshakeMessages(Channel_Impl_13&
      channel,\n                                                                          Handshake_Layer&
      handshake_layer,\n                                                                          Transcript_Hash_State&
      transcript_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:229,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:229,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:229,1
    - Dst: prepare_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13_Ref
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: "& Channel_Impl_13::AggregatedHandshakeMessages::add(\n   const
      Handshake_Message_13_Ref message)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - prepare_message
    - std::visit
    - get
    - callbacks
    linkageType: ''
    returnType: Channel_Impl_13::AggregatedHandshakeMessages
    signature: "Channel_Impl_13::AggregatedHandshakeMessages & Channel_Impl_13::AggregatedHandshakeMessages::add(\n
      \  const Handshake_Message_13_Ref message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:236,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:236,1
    - Dst: prepare_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: "& Channel_Impl_13::AggregatedPostHandshakeMessages::add(\n   Post_Handshake_Message_13
      message)"
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - prepare_post_handshake_message
    - std::visit
    - callbacks
    linkageType: ''
    returnType: Channel_Impl_13::AggregatedPostHandshakeMessages
    signature: "Channel_Impl_13::AggregatedPostHandshakeMessages & Channel_Impl_13::AggregatedPostHandshakeMessages::add(\n
      \  Post_Handshake_Message_13 message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:242,1
    - Dst: contains_messages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:242,1
    - Dst: send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:243,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: Channel_Impl_13::AggregatedMessages::send()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - contains_messages
    - std::exchange
    - send_record
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Channel_Impl_13::AggregatedMessages::send()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: Botan::TLS::Channel_Impl_13::send_dummy_change_cipher_spec
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_13::send_record
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::send_dummy_change_cipher_spec()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::is_active
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:258,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:259,1
    - Dst: Botan::TLS::Channel_Impl_13::update_traffic_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:271,1
    - Dst: Botan::TLS::Channel_Impl_13::send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:275,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:275,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 276
    functionName: Botan::TLS::Channel_Impl_13::to_peer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_13::is_active
    - Botan::TLS::Channel_Impl_13::update_traffic_keys
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - Invalid_State
    - Botan::TLS::Channel_Impl_13::send_record
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::to_peer(std::span<const uint8_t> data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_valid
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:279,1
    - Dst: Botan::TLS::Channel_Impl_13::send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:281,1
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:281,1
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:291,1
    - Dst: clear_write_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:294,1
    - Dst: is_error_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:298,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 301
    functionName: Botan::TLS::Channel_Impl_13::send_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - is_valid
    - clear_write_keys
    - Botan::TLS::Channel_Impl_13::shutdown
    - is_close_notify_alert
    - serialize
    - is_error_alert
    - Botan::TLS::Channel_Impl_13::send_record
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::send_alert(const Alert& alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: Botan::TLS::Channel_Impl_13::is_active
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 2
    functionsReached:
    - can_encrypt_application_traffic
    linkageType: ''
    returnType: bool
    signature: bool Channel_Impl_13::is_active() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:311,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:311,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:312,1
    - Dst: can_export_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:312,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:313,1
    - Dst: export_key
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: Botan::TLS::Channel_Impl_13::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - SymmetricKey
    - is_downgrading
    - export_key
    - can_export_keys
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey Channel_Impl_13::key_material_export(std::string_view
      label,\n                                                  std::string_view context,\n
      \                                                 size_t length) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:317,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:317,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:318,1
    - Dst: is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:318,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:319,1
    - Dst: Botan::TLS::Channel_Impl_13::send_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:320,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:320,1
    - Dst: update_write_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: Botan::TLS::Channel_Impl_13::update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 2
    functionsReached:
    - Key_Update
    - update_write_keys
    - is_downgrading
    - BOTAN_ASSERT_NONNULL
    - is_handshake_complete
    - Botan::TLS::Channel_Impl_13::send_post_handshake_message
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::update_traffic_keys(bool request_peer_update)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:325,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:325,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:326,1
    - Dst: prepare_records
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:328,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:328,1
    - Dst: disable_sending_compat_mode
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:335,1
    - Dst: Botan::TLS::Channel_Impl_13::prepend_ccs
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:341,1
    - Dst: prepare_records
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:343,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:343,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:344,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - type
    - ' record'
    argTypes:
    - Record_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 348
    functionName: Botan::TLS::Channel_Impl_13::send_record
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 6
    functionsReached:
    - concat
    - is_downgrading
    - prepare_records
    - get
    - callbacks
    - Botan::TLS::Channel_Impl_13::prepend_ccs
    - disable_sending_compat_mode
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::send_record(Record_Type type, const std::vector<uint8_t>&
      record)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:353,1
    - Dst: clear_read_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:356,1
    - Dst: clear_read_buffer
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:358,1
    - Dst: is_error_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:368,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:368,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:373,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:376,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:380,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:381,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:384,1
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:387,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:387,1
    - Dst: close
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:388,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - ' record'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 390
    functionName: Botan::TLS::Channel_Impl_13::process_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 2
    functionsReached:
    - close
    - expects_downgrade
    - Botan::TLS::Channel_Impl_13::shutdown
    - is_close_notify_alert
    - callbacks
    - clear_read_buffer
    - TLS_Exception
    - clear_read_keys
    - Alert::is_fatal
    - is_error_alert
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::process_alert(const secure_vector<uint8_t>& record)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: Botan::TLS::Channel_Impl_13::shutdown
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 6
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::shutdown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Downgrade_Information>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:418,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' server_info'
    - ' next_protocols'
    argTypes:
    - Server_Information
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 419
    functionName: Botan::TLS::Channel_Impl_13::expect_downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Downgrade_Information>
    linkageType: ''
    returnType: void
    signature: "void Channel_Impl_13::expect_downgrade(const Server_Information& server_info,\n
      \                                      const std::vector<std::string>& next_protocols)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::set_record_size_limits
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outgoing_limit
    - incoming_limit
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: Botan::TLS::Channel_Impl_13::set_record_size_limits
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Channel_Impl_13::set_record_size_limits
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::set_record_size_limits(const uint16_t outgoing_limit,
      const uint16_t incoming_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Channel_Impl_13::set_selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert_type
    argTypes:
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: Botan::TLS::Channel_Impl_13::set_selected_certificate_type
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Channel_Impl_13::set_selected_certificate_type
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_13::set_selected_certificate_type(const Certificate_Type
      cert_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Cipher_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:69,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:205,1
    - Dst: Botan::TLS::Cipher_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:270,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 347
    functionName: Botan::TLS::Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::empty
    - Botan::TLS::Cipher_State
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Cipher_State
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_State(const Cipher_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::TLS::Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_State(Cipher_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: Botan::TLS::can_export_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool can_export_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Cipher_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:69,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:205,1
    - Dst: Botan::TLS::Cipher_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:270,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 347
    functionName: Botan::TLS::Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::empty
    - Botan::TLS::Cipher_State
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Cipher_State
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_State(const Cipher_State& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Cipher_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::TLS::Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_State(Cipher_State&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: Botan::TLS::can_export_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::empty
    linkageType: ''
    returnType: bool
    signature: bool can_export_keys() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:29,1
    - Dst: expect_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:30,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' credentials_manager'
    - ' policy'
    - ' rng'
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: Botan::TLS::Server_Impl_13::Server_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - allow_tls12
    - expect_downgrade
    - set_expected_next
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_13::Server_Impl_13(const std::shared_ptr<Callbacks>&
      callbacks,\n                               const std::shared_ptr<Session_Manager>&
      session_manager,\n                               const std::shared_ptr<Credentials_Manager>&
      credentials_manager,\n                               const std::shared_ptr<const
      Policy>& policy,\n                               const std::shared_ptr<RandomNumberGenerator>&
      rng)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:38,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:39,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:40,1
    - Dst: auto*::single_protocol
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Server_Impl_13::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - encrypted_extensions
    - auto*::single_protocol
    - get
    linkageType: ''
    returnType: std::string
    signature: std::string Server_Impl_13::application_protocol() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_client_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:49,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:50,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:51,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:54,1
    - Dst: peer_certs
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Server_Impl_13::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - peer_certs
    - client_certificate
    - has_value
    - has_client_certificate_msg
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Server_Impl_13::peer_cert_chain() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_client_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:62,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:62,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:63,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:66,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Server_Impl_13::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 1
    functionsReached:
    - client_certificate
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - has_value
    - has_client_certificate_msg
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Server_Impl_13::peer_raw_public_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan::TLS::Server_Impl_13::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Server_Impl_13::external_psk_identity()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:88,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:88,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:89,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Server_Impl_13::new_session_ticket_supported
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - value_exists
    - client_hello
    linkageType: ''
    returnType: bool
    signature: bool Server_Impl_13::new_session_ticket_supported() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:94,1
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:94,1
    - Dst: aggregate_post_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:100,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:104,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:105,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:107,1
    - Dst: Botan::TLS::Server_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:108,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:109,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:110,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:111,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:112,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:113,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:115,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:116,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:117,1
    - Dst: New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:117,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:117,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:117,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:117,1
    - Dst: auto::contains_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:123,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - tickets
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Server_Impl_13::send_new_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - policy
    - auto::contains_messages
    - callbacks
    - auto::send
    - std::move
    - psk
    - next_ticket_nonce
    - auto::add
    - session_manager
    - BOTAN_STATE_CHECK
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - client_hello
    - New_Session_Ticket_13
    - aggregate_post_handshake_messages
    - Botan::TLS::Server_Impl_13::peer_cert_chain
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - rng
    - server_hello
    - auto::value
    linkageType: ''
    returnType: size_t
    signature: size_t Server_Impl_13::send_new_session_tickets(const size_t tickets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:131,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:134,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:134,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:137,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:137,1
    - Dst: Botan::TLS::Server_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:140,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:140,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:142,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: Botan::TLS::Server_Impl_13::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - received
    - std::move
    - get
    - callbacks
    - Botan::TLS::Server_Impl_13::handle
    - std::visit
    - confirm_transition_to
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::process_handshake_msg(Handshake_Message_13 message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:146,1
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:146,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:148,1
    - Dst: Botan::TLS::Server_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:148,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Server_Impl_13::process_post_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - received
    - std::move
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - Botan::TLS::Server_Impl_13::handle
    - std::visit
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::process_post_handshake_msg(Post_Handshake_Message_13
      message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:156,1
    - Dst: has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:156,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 167
    functionName: Botan::TLS::Server_Impl_13::process_dummy_change_cipher_spec
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - has_client_hello
    - TLS_Exception
    - has_client_finished
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::process_dummy_change_cipher_spec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handshake_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::TLS::Server_Impl_13::is_handshake_complete
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 4
    functionsReached:
    - handshake_finished
    linkageType: ''
    returnType: bool
    signature: bool Server_Impl_13::is_handshake_complete() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:174,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:175,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - label
    - secret
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Server_Impl_13::maybe_log_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - client_hello
    - policy
    - callbacks
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::maybe_log_secret(std::string_view label, std::span<const
      uint8_t> secret) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:180,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:180,1
    - Dst: request_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:182,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: Botan::TLS::Server_Impl_13::downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - request_downgrade
    - expects_downgrade
    - set_expected_next
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::downgrade()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:190,1
    - Dst: has_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:190,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:191,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:191,1
    - Dst: has_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:191,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:214,1
    - Dst: has_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:214,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:215,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:218,1
    - Dst: send_dummy_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 221
    functionName: Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - policy
    - has_client_hello
    - client_hello
    - has_hello_retry_request
    - send_dummy_change_cipher_spec
    - BOTAN_ASSERT_NOMSG
    - has_server_hello
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::maybe_handle_compatibility_mode()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:224,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:225,1
    - Dst: Server_Hello_13::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:227,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:229,1
    - Dst: Server_Hello_13::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:229,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:230,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:230,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:231,1
    - Dst: set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:232,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:232,1
    - Dst: Server_Hello_13::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:236,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:239,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:240,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:241,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:243,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:244,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:247,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:248,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:250,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:251,1
    - Dst: auto*::take_session_to_resume_or_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:253,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:266,1
    - Dst: std::unique_ptr::psk_binder_mac
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:267,1
    - Dst: truncated
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:267,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:268,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:288,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:288,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:288,1
    - Dst: Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:289,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:294,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:295,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:298,1
    - Dst: std::unique_ptr::advance_with_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:299,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:299,1
    - Dst: std::unique_ptr::advance_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:300,1
    - Dst: auto*::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:301,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:301,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:303,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:305,1
    - Dst: auto*::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:306,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:306,1
    - Dst: aggregate_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:310,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:311,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:311,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:311,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:311,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:311,1
    - Dst: Botan::TLS::Certificate_Request_13::maybe_create
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:319,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:319,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:319,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:319,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:320,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:320,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:320,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:320,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:323,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:332,1
    - Dst: set_selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:333,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:333,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:342,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:343,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:350,1
    - Dst: Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:350,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:350,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:351,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:352,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:353,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:355,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:356,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:357,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:361,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:361,1
    - Dst: Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:361,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:361,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:361,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:363,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:364,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:380,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:381,1
    - Dst: set_record_size_limits
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:382,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:382,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:382,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:385,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:387,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:387,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:389,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:396,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:398,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 400
    functionName: Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - extract_master_secret
    - policy
    - advance_with_server_finished
    - has_certificate_request
    - std::unique_ptr::advance_with_server_hello
    - Finished_13
    - callbacks
    - std::visit
    - send_handshake_message
    - auto::send
    - aggregate_handshake_messages
    - std::move
    - set_algorithm
    - get
    - previous
    - Certificate_Verify_13
    - sni_hostname
    - auto*::take_session_to_resume_or_psk
    - truncated
    - auto*::take_shared_secret
    - set_selected_certificate_type
    - auto::add
    - identity
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::init_with_psk
    - Botan::TLS::Cipher_State::init_with_server_hello
    - set_record_size_limits
    - Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
    - Certificate_13
    - extensions
    - Botan::TLS::Certificate_Request_13::maybe_create
    - credentials_manager
    - signature_schemes
    - client_hello
    - server_certificate
    - TLS_Exception
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - prf_algo
    - current
    - encrypted_extensions
    - auto*::limit
    - std::unique_ptr::advance_with_client_hello
    - std::unique_ptr::psk_binder_mac
    - sending
    - Server_Hello_13::ciphersuite
    - set_expected_next
    - rng
    - server_hello
    - auto::value
    - Encrypted_Extensions
    - auto*::selected_certificate_type
    - Server_Hello_13::extensions
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle_reply_to_client_hello(Server_Hello_13 server_hello)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:403,1
    - Dst: Hello_Retry_Request::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:403,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:404,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:404,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:406,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:406,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:406,1
    - Dst: Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:407,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:409,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:409,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - hello_retry_request
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 412
    functionName: Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
    - std::move
    - auto::prf_algo
    - sending
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - BOTAN_ASSERT_NOMSG
    - set_expected_next
    - send_handshake_message
    - Hello_Retry_Request::ciphersuite
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle_reply_to_client_hello(Hello_Retry_Request
      hello_retry_request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:417,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:420,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:421,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:430,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:431,1
    - Dst: Botan::TLS::Server_Impl_13::downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' ch'
    argTypes:
    - Client_Hello_12_Shim
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 435
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server_Impl_13::downgrade
    - expects_downgrade
    - BOTAN_UNUSED
    - has_hello_retry_request
    - TLS_Exception
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Client_Hello_12_Shim& ch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:438,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:440,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:443,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:443,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:445,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:451,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:452,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:458,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:459,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:467,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:467,1
    - Dst: hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:470,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:471,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:472,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:473,1
    - Dst: auto::at
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:473,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:474,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:478,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:478,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:479,1
    - Dst: Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:479,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:479,1
    - Dst: Botan::TLS::Server_Hello_13::create
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:480,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:482,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:483,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:484,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:485,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:486,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - ' client_hello'
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 487
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - policy
    - Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
    - has_hello_retry_request
    - callbacks
    - hello_retry_request
    - Botan::TLS::Server_Hello_13::create
    - std::visit
    - type
    - has
    - auto::size
    - std::move
    - get
    - BOTAN_ASSERT_NOMSG
    - Not_Implemented
    - session_manager
    - extensions
    - credentials_manager
    - TLS_Exception
    - auto::at
    - highest_supported_version
    - rng
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Client_Hello_13& client_hello)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:493,1
    - Dst: request_context
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:493,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:494,1
    - Dst: validate_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:500,1
    - Dst: certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:500,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:501,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:508,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:509,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:510,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:516,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:527,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:527,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:528,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:529,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:530,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:531,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:538,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' certificate_msg'
    argTypes:
    - Certificate_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 540
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - request_context
    - policy
    - certificate_request
    - credentials_manager
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - verify
    - callbacks
    - client_hello
    - TLS_Exception
    - validate_extensions
    - set_expected_next
    - empty
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Certificate_13& certificate_msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:548,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:549,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:549,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:550,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:551,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:555,1
    - Dst: has_client_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:555,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:556,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:557,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:558,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:558,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:558,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:564,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' certificate_verify_msg'
    argTypes:
    - Certificate_Verify_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 568
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - certificate_request
    - client_certificate
    - value_exists
    - verify
    - callbacks
    - previous
    - TLS_Exception
    - set_expected_next
    - BOTAN_ASSERT_NOMSG
    - has_client_certificate_msg
    - signature_scheme
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Certificate_Verify_13& certificate_verify_msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:575,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:575,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:575,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:576,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:581,1
    - Dst: Session_Summary
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:582,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:582,1
    - Dst: Botan::TLS::Server_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:584,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:585,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:587,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:588,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:588,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:589,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:591,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:591,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:594,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:596,1
    - Dst: Botan::TLS::Server_Impl_13::new_session_ticket_supported
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:598,1
    - Dst: Botan::TLS::Server_Impl_13::send_new_session_tickets
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:599,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' finished_msg'
    argTypes:
    - Finished_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 601
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Server_Impl_13::send_new_session_tickets
    - policy
    - advance_with_client_finished
    - get
    - verify
    - previous
    - callbacks
    - Botan::TLS::Server_Impl_13::peer_cert_chain
    - TLS_Exception
    - Session_Summary
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - client_hello
    - set_expected_next
    - current
    - Server_Information
    - Botan::TLS::Server_Impl_13::new_session_ticket_supported
    - server_hello
    - has_value
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Finished_13& finished_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:29,1
    - Dst: expect_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:30,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' callbacks'
    - ' session_manager'
    - ' credentials_manager'
    - ' policy'
    - ' rng'
    argTypes:
    - std::shared_ptr<Callbacks>
    - std::shared_ptr<Session_Manager>
    - std::shared_ptr<Credentials_Manager>
    - std::shared_ptr<const Policy>
    - std::shared_ptr<RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: Botan::TLS::Server_Impl_13::Server_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - allow_tls12
    - expect_downgrade
    - set_expected_next
    linkageType: ''
    returnType: void
    signature: "void Server_Impl_13::Server_Impl_13(const std::shared_ptr<Callbacks>&
      callbacks,\n                               const std::shared_ptr<Session_Manager>&
      session_manager,\n                               const std::shared_ptr<Credentials_Manager>&
      credentials_manager,\n                               const std::shared_ptr<const
      Policy>& policy,\n                               const std::shared_ptr<RandomNumberGenerator>&
      rng)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:38,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:39,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:40,1
    - Dst: auto*::single_protocol
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Server_Impl_13::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - encrypted_extensions
    - auto*::single_protocol
    - get
    linkageType: ''
    returnType: std::string
    signature: std::string Server_Impl_13::application_protocol() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_client_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:49,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:50,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:51,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:54,1
    - Dst: peer_certs
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Server_Impl_13::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - peer_certs
    - client_certificate
    - has_value
    - has_client_certificate_msg
    linkageType: ''
    returnType: std::vector<X509_Certificate>
    signature: std::vector<X509_Certificate> Server_Impl_13::peer_cert_chain() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_client_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:62,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:62,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:63,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:66,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Server_Impl_13::peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 4
    functionsReached:
    - client_certificate
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - has_value
    - has_client_certificate_msg
    linkageType: ''
    returnType: std::shared_ptr<const Public_Key>
    signature: std::shared_ptr<const Public_Key> Server_Impl_13::peer_raw_public_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan::TLS::Server_Impl_13::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> Server_Impl_13::external_psk_identity()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:88,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:88,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:89,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Server_Impl_13::new_session_ticket_supported
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - value_exists
    - client_hello
    linkageType: ''
    returnType: bool
    signature: bool Server_Impl_13::new_session_ticket_supported() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:94,1
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:94,1
    - Dst: aggregate_post_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:100,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:104,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:105,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:107,1
    - Dst: Botan::TLS::Server_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:108,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:109,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:110,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:111,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:112,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:113,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:115,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:116,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:117,1
    - Dst: New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:117,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:117,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:117,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:117,1
    - Dst: auto::contains_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:123,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - tickets
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Server_Impl_13::send_new_session_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 1
    functionsReached:
    - policy
    - auto::contains_messages
    - callbacks
    - auto::send
    - std::move
    - psk
    - next_ticket_nonce
    - auto::add
    - session_manager
    - BOTAN_STATE_CHECK
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - client_hello
    - New_Session_Ticket_13
    - aggregate_post_handshake_messages
    - Botan::TLS::Server_Impl_13::peer_cert_chain
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - rng
    - server_hello
    - auto::value
    linkageType: ''
    returnType: size_t
    signature: size_t Server_Impl_13::send_new_session_tickets(const size_t tickets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:131,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:134,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:134,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:137,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:137,1
    - Dst: Botan::TLS::Server_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:140,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:140,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:142,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: Botan::TLS::Server_Impl_13::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - received
    - std::move
    - get
    - callbacks
    - Botan::TLS::Server_Impl_13::handle
    - std::visit
    - confirm_transition_to
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::process_handshake_msg(Handshake_Message_13 message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:146,1
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:146,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:148,1
    - Dst: Botan::TLS::Server_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:148,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: Botan::TLS::Server_Impl_13::process_post_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - received
    - std::move
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - Botan::TLS::Server_Impl_13::handle
    - std::visit
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::process_post_handshake_msg(Post_Handshake_Message_13
      message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:156,1
    - Dst: has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:156,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 167
    functionName: Botan::TLS::Server_Impl_13::process_dummy_change_cipher_spec
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - has_client_hello
    - TLS_Exception
    - has_client_finished
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::process_dummy_change_cipher_spec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handshake_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::TLS::Server_Impl_13::is_handshake_complete
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 9
    functionsReached:
    - handshake_finished
    linkageType: ''
    returnType: bool
    signature: bool Server_Impl_13::is_handshake_complete() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:174,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:175,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - label
    - secret
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Server_Impl_13::maybe_log_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - client_hello
    - policy
    - callbacks
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::maybe_log_secret(std::string_view label, std::span<const
      uint8_t> secret) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:180,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:180,1
    - Dst: request_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:182,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: Botan::TLS::Server_Impl_13::downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - request_downgrade
    - expects_downgrade
    - set_expected_next
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::downgrade()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:190,1
    - Dst: has_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:190,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:191,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:191,1
    - Dst: has_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:191,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:214,1
    - Dst: has_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:214,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:215,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:218,1
    - Dst: send_dummy_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 221
    functionName: Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - policy
    - has_client_hello
    - client_hello
    - has_hello_retry_request
    - send_dummy_change_cipher_spec
    - BOTAN_ASSERT_NOMSG
    - has_server_hello
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::maybe_handle_compatibility_mode()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:224,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:225,1
    - Dst: Server_Hello_13::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:227,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:229,1
    - Dst: Server_Hello_13::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:229,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:230,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:230,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:231,1
    - Dst: set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:232,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:232,1
    - Dst: Server_Hello_13::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:236,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:239,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:240,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:241,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:243,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:244,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:247,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:248,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:250,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:251,1
    - Dst: auto*::take_session_to_resume_or_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:253,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:266,1
    - Dst: std::unique_ptr::psk_binder_mac
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:267,1
    - Dst: truncated
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:267,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:268,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:288,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:288,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:288,1
    - Dst: Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:289,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:294,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:295,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:298,1
    - Dst: std::unique_ptr::advance_with_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:299,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:299,1
    - Dst: std::unique_ptr::advance_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:300,1
    - Dst: auto*::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:301,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:301,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:303,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:305,1
    - Dst: auto*::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:306,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:306,1
    - Dst: aggregate_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:310,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:311,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:311,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:311,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:311,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:311,1
    - Dst: Botan::TLS::Certificate_Request_13::maybe_create
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:319,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:319,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:319,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:319,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:320,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:320,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:320,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:320,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:323,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:332,1
    - Dst: set_selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:333,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:333,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:342,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:343,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:350,1
    - Dst: Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:350,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:350,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:351,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:352,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:353,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:355,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:356,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:357,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:361,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:361,1
    - Dst: Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:361,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:361,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:361,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:363,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:364,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:380,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:381,1
    - Dst: set_record_size_limits
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:382,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:382,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:382,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:385,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:387,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:387,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:389,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:396,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:398,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 400
    functionName: Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 1
    functionsReached:
    - extract_master_secret
    - policy
    - advance_with_server_finished
    - has_certificate_request
    - std::unique_ptr::advance_with_server_hello
    - Finished_13
    - callbacks
    - std::visit
    - send_handshake_message
    - auto::send
    - aggregate_handshake_messages
    - std::move
    - set_algorithm
    - get
    - previous
    - Certificate_Verify_13
    - sni_hostname
    - auto*::take_session_to_resume_or_psk
    - truncated
    - auto*::take_shared_secret
    - set_selected_certificate_type
    - auto::add
    - identity
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::init_with_psk
    - Botan::TLS::Cipher_State::init_with_server_hello
    - set_record_size_limits
    - Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
    - Certificate_13
    - extensions
    - Botan::TLS::Certificate_Request_13::maybe_create
    - credentials_manager
    - signature_schemes
    - client_hello
    - server_certificate
    - TLS_Exception
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - prf_algo
    - current
    - encrypted_extensions
    - auto*::limit
    - std::unique_ptr::advance_with_client_hello
    - std::unique_ptr::psk_binder_mac
    - sending
    - Server_Hello_13::ciphersuite
    - set_expected_next
    - rng
    - server_hello
    - auto::value
    - Encrypted_Extensions
    - auto*::selected_certificate_type
    - Server_Hello_13::extensions
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle_reply_to_client_hello(Server_Hello_13 server_hello)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:403,1
    - Dst: Hello_Retry_Request::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:403,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:404,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:404,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:406,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:406,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:406,1
    - Dst: Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:407,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:409,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:409,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - hello_retry_request
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 412
    functionName: Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
    - std::move
    - auto::prf_algo
    - sending
    - Botan::TLS::Ciphersuite::by_id
    - auto::has_value
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - BOTAN_ASSERT_NOMSG
    - set_expected_next
    - send_handshake_message
    - Hello_Retry_Request::ciphersuite
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle_reply_to_client_hello(Hello_Retry_Request
      hello_retry_request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:417,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:420,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:421,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:430,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:431,1
    - Dst: Botan::TLS::Server_Impl_13::downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' ch'
    argTypes:
    - Client_Hello_12_Shim
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 435
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Server_Impl_13::downgrade
    - expects_downgrade
    - BOTAN_UNUSED
    - has_hello_retry_request
    - TLS_Exception
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Client_Hello_12_Shim& ch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:438,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:440,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:443,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:443,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:445,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:451,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:452,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:458,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:459,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:467,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:467,1
    - Dst: hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:470,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:471,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:472,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:473,1
    - Dst: auto::at
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:473,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:474,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:478,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:478,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:479,1
    - Dst: Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:479,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:479,1
    - Dst: Botan::TLS::Server_Hello_13::create
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:480,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:482,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:483,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:484,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:485,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:486,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - ' client_hello'
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 487
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 4
    functionsReached:
    - policy
    - Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
    - has_hello_retry_request
    - callbacks
    - hello_retry_request
    - Botan::TLS::Server_Hello_13::create
    - std::visit
    - type
    - has
    - auto::size
    - std::move
    - get
    - BOTAN_ASSERT_NOMSG
    - Not_Implemented
    - session_manager
    - extensions
    - credentials_manager
    - TLS_Exception
    - auto::at
    - highest_supported_version
    - rng
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Client_Hello_13& client_hello)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:493,1
    - Dst: request_context
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:493,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:494,1
    - Dst: validate_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:500,1
    - Dst: certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:500,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:501,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:508,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:509,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:510,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:516,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:527,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:527,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:528,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:529,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:530,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:531,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:538,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' certificate_msg'
    argTypes:
    - Certificate_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 540
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 4
    functionsReached:
    - request_context
    - policy
    - certificate_request
    - credentials_manager
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - verify
    - callbacks
    - client_hello
    - TLS_Exception
    - validate_extensions
    - set_expected_next
    - empty
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Certificate_13& certificate_msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:548,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:549,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:549,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:550,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:551,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:555,1
    - Dst: has_client_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:555,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:556,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:557,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:558,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:558,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:558,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:564,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' certificate_verify_msg'
    argTypes:
    - Certificate_Verify_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 568
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 4
    functionsReached:
    - certificate_request
    - client_certificate
    - value_exists
    - verify
    - callbacks
    - previous
    - TLS_Exception
    - set_expected_next
    - BOTAN_ASSERT_NOMSG
    - has_client_certificate_msg
    - signature_scheme
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Certificate_Verify_13& certificate_verify_msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:575,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:575,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:575,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:576,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:581,1
    - Dst: Session_Summary
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:582,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:582,1
    - Dst: Botan::TLS::Server_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:584,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:585,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:587,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:588,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:588,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:589,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:591,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:591,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:594,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:596,1
    - Dst: Botan::TLS::Server_Impl_13::new_session_ticket_supported
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:598,1
    - Dst: Botan::TLS::Server_Impl_13::send_new_session_tickets
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:599,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' finished_msg'
    argTypes:
    - Finished_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 601
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Server_Impl_13::send_new_session_tickets
    - policy
    - advance_with_client_finished
    - get
    - verify
    - previous
    - callbacks
    - Botan::TLS::Server_Impl_13::peer_cert_chain
    - TLS_Exception
    - Session_Summary
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - client_hello
    - set_expected_next
    - current
    - Server_Information
    - Botan::TLS::Server_Impl_13::new_session_ticket_supported
    - server_hello
    - has_value
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Finished_13& finished_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::provider
    functionSourceFile: /src/botan/src/lib/hash/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::new_object
      Src: /src/botan/src/lib/hash/hash.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::clone
    functionSourceFile: /src/botan/src/lib/hash/hash.h
    functionUses: 0
    functionsReached:
    - Botan::new_object
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction * clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::provider
    functionSourceFile: /src/botan/src/lib/hash/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::new_object
      Src: /src/botan/src/lib/hash/hash.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::clone
    functionSourceFile: /src/botan/src/lib/hash/hash.h
    functionUses: 0
    functionsReached:
    - Botan::new_object
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction * clone() const
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/hash/hash.cpp:113,1
    - Dst: make_commoncrypto_hash
      Src: /src/botan/src/lib/hash/hash.cpp:114,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/hash/hash.cpp:117,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/hash/hash.cpp:122,1
    - Dst: std::make_unique<SHA_1>
      Src: /src/botan/src/lib/hash/hash.cpp:128,1
    - Dst: std::make_unique<SHA_224>
      Src: /src/botan/src/lib/hash/hash.cpp:134,1
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/hash/hash.cpp:138,1
    - Dst: std::make_unique<SHA_384>
      Src: /src/botan/src/lib/hash/hash.cpp:144,1
    - Dst: std::make_unique<SHA_512>
      Src: /src/botan/src/lib/hash/hash.cpp:148,1
    - Dst: std::make_unique<SHA_512_256>
      Src: /src/botan/src/lib/hash/hash.cpp:152,1
    - Dst: std::make_unique<RIPEMD_160>
      Src: /src/botan/src/lib/hash/hash.cpp:158,1
    - Dst: std::make_unique<Whirlpool>
      Src: /src/botan/src/lib/hash/hash.cpp:164,1
    - Dst: std::make_unique<MD5>
      Src: /src/botan/src/lib/hash/hash.cpp:170,1
    - Dst: std::make_unique<MD4>
      Src: /src/botan/src/lib/hash/hash.cpp:176,1
    - Dst: std::make_unique<GOST_34_11>
      Src: /src/botan/src/lib/hash/hash.cpp:182,1
    - Dst: std::make_unique<Adler32>
      Src: /src/botan/src/lib/hash/hash.cpp:188,1
    - Dst: std::make_unique<Ascon_Hash256>
      Src: /src/botan/src/lib/hash/hash.cpp:194,1
    - Dst: std::make_unique<CRC24>
      Src: /src/botan/src/lib/hash/hash.cpp:200,1
    - Dst: std::make_unique<CRC32>
      Src: /src/botan/src/lib/hash/hash.cpp:206,1
    - Dst: std::make_unique<Streebog>
      Src: /src/botan/src/lib/hash/hash.cpp:212,1
    - Dst: std::make_unique<Streebog>
      Src: /src/botan/src/lib/hash/hash.cpp:215,1
    - Dst: std::make_unique<SM3>
      Src: /src/botan/src/lib/hash/hash.cpp:221,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:228,1
    - Dst: std::make_unique<Skein_512>
      Src: /src/botan/src/lib/hash/hash.cpp:229,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:229,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/hash/hash.cpp:229,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:234,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:234,1
    - Dst: std::make_unique<BLAKE2b>
      Src: /src/botan/src/lib/hash/hash.cpp:235,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:235,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:240,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:240,1
    - Dst: std::make_unique<BLAKE2s>
      Src: /src/botan/src/lib/hash/hash.cpp:241,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:241,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:246,1
    - Dst: std::make_unique<Keccak_1600>
      Src: /src/botan/src/lib/hash/hash.cpp:247,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:247,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:252,1
    - Dst: std::make_unique<SHA_3>
      Src: /src/botan/src/lib/hash/hash.cpp:253,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:253,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:258,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/hash/hash.cpp:258,1
    - Dst: std::make_unique<SHAKE_128>
      Src: /src/botan/src/lib/hash/hash.cpp:259,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:259,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:261,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/hash/hash.cpp:261,1
    - Dst: std::make_unique<SHAKE_256>
      Src: /src/botan/src/lib/hash/hash.cpp:262,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:262,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:267,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/hash/hash.cpp:270,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/hash/hash.cpp:271,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/hash/hash.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/hash/hash.cpp:275,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/hash.cpp:275,1
    - Dst: std::make_unique<Parallel>
      Src: /src/botan/src/lib/hash/hash.cpp:278,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:283,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/hash/hash.cpp:283,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/hash/hash.cpp:284,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/hash/hash.cpp:284,1
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/hash/hash.cpp:289,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/hash.cpp:289,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:289,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:294,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/hash/hash.cpp:294,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/hash/hash.cpp:295,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/hash/hash.cpp:295,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/hash/hash.cpp:296,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/hash/hash.cpp:296,1
    - Dst: std::make_unique<Comb4P>
      Src: /src/botan/src/lib/hash/hash.cpp:299,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/hash.cpp:299,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/hash.cpp:299,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 106
    argCount: 2
    argNames:
    - algo_spec
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 305
    functionName: Botan::HashFunction::create
    functionSourceFile: /src/botan/src/lib/hash/hash.cpp
    functionUses: 98
    functionsReached:
    - std::make_unique<SHA_1>
    - std::make_unique<SHA_256>
    - std::string_view::empty
    - std::make_unique<MD4>
    - std::make_unique<Truncated_Hash>
    - SCAN_Name::arg_count
    - std::make_unique<SHAKE_128>
    - std::make_unique<Parallel>
    - std::make_unique<RIPEMD_160>
    - std::move
    - std::make_unique<Keccak_1600>
    - make_commoncrypto_hash
    - std::make_unique<Adler32>
    - std::make_unique<CRC32>
    - SCAN_Name::arg_as_integer
    - SCAN_Name::algo_name
    - std::make_unique<SHA_384>
    - SCAN_Name::arg
    - std::make_unique<GOST_34_11>
    - Botan::HashFunction::create
    - std::make_unique<BLAKE2s>
    - std::make_unique<Ascon_Hash256>
    - std::make_unique<Whirlpool>
    - std::make_unique<SHA_224>
    - std::make_unique<SHA_512_256>
    - std::make_unique<BLAKE2b>
    - std::vector::push_back
    - std::make_unique<SHA_3>
    - std::make_unique<CRC24>
    - std::make_unique<Skein_512>
    - std::make_unique<SM3>
    - std::make_unique<Comb4P>
    - std::make_unique<Streebog>
    - std::make_unique<SHA_512>
    - std::make_unique<MD5>
    - std::make_unique<SHAKE_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> HashFunction::create(std::string_view
      algo_spec, std::string_view provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/hash/hash.cpp:309,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/hash/hash.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - algo
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: Botan::HashFunction::create_or_throw
    functionSourceFile: /src/botan/src/lib/hash/hash.cpp
    functionUses: 68
    functionsReached:
    - Botan::HashFunction::create
    - Lookup_Error
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> HashFunction::create_or_throw(std::string_view
      algo, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: probe_providers_of<HashFunction>
      Src: /src/botan/src/lib/hash/hash.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 317
    functionName: Botan::HashFunction::providers
    functionSourceFile: /src/botan/src/lib/hash/hash.cpp
    functionUses: 24
    functionsReached:
    - probe_providers_of<HashFunction>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HashFunction::providers(std::string_view algo_spec)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/hash/hash.cpp:113,1
    - Dst: make_commoncrypto_hash
      Src: /src/botan/src/lib/hash/hash.cpp:114,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/hash/hash.cpp:117,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/hash/hash.cpp:122,1
    - Dst: std::make_unique<SHA_1>
      Src: /src/botan/src/lib/hash/hash.cpp:128,1
    - Dst: std::make_unique<SHA_224>
      Src: /src/botan/src/lib/hash/hash.cpp:134,1
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/hash/hash.cpp:138,1
    - Dst: std::make_unique<SHA_384>
      Src: /src/botan/src/lib/hash/hash.cpp:144,1
    - Dst: std::make_unique<SHA_512>
      Src: /src/botan/src/lib/hash/hash.cpp:148,1
    - Dst: std::make_unique<SHA_512_256>
      Src: /src/botan/src/lib/hash/hash.cpp:152,1
    - Dst: std::make_unique<RIPEMD_160>
      Src: /src/botan/src/lib/hash/hash.cpp:158,1
    - Dst: std::make_unique<Whirlpool>
      Src: /src/botan/src/lib/hash/hash.cpp:164,1
    - Dst: std::make_unique<MD5>
      Src: /src/botan/src/lib/hash/hash.cpp:170,1
    - Dst: std::make_unique<MD4>
      Src: /src/botan/src/lib/hash/hash.cpp:176,1
    - Dst: std::make_unique<GOST_34_11>
      Src: /src/botan/src/lib/hash/hash.cpp:182,1
    - Dst: std::make_unique<Adler32>
      Src: /src/botan/src/lib/hash/hash.cpp:188,1
    - Dst: std::make_unique<Ascon_Hash256>
      Src: /src/botan/src/lib/hash/hash.cpp:194,1
    - Dst: std::make_unique<CRC24>
      Src: /src/botan/src/lib/hash/hash.cpp:200,1
    - Dst: std::make_unique<CRC32>
      Src: /src/botan/src/lib/hash/hash.cpp:206,1
    - Dst: std::make_unique<Streebog>
      Src: /src/botan/src/lib/hash/hash.cpp:212,1
    - Dst: std::make_unique<Streebog>
      Src: /src/botan/src/lib/hash/hash.cpp:215,1
    - Dst: std::make_unique<SM3>
      Src: /src/botan/src/lib/hash/hash.cpp:221,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:228,1
    - Dst: std::make_unique<Skein_512>
      Src: /src/botan/src/lib/hash/hash.cpp:229,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:229,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/hash/hash.cpp:229,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:234,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:234,1
    - Dst: std::make_unique<BLAKE2b>
      Src: /src/botan/src/lib/hash/hash.cpp:235,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:235,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:240,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:240,1
    - Dst: std::make_unique<BLAKE2s>
      Src: /src/botan/src/lib/hash/hash.cpp:241,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:241,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:246,1
    - Dst: std::make_unique<Keccak_1600>
      Src: /src/botan/src/lib/hash/hash.cpp:247,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:247,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:252,1
    - Dst: std::make_unique<SHA_3>
      Src: /src/botan/src/lib/hash/hash.cpp:253,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:253,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:258,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/hash/hash.cpp:258,1
    - Dst: std::make_unique<SHAKE_128>
      Src: /src/botan/src/lib/hash/hash.cpp:259,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:259,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:261,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/hash/hash.cpp:261,1
    - Dst: std::make_unique<SHAKE_256>
      Src: /src/botan/src/lib/hash/hash.cpp:262,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:262,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:267,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/hash/hash.cpp:270,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/hash/hash.cpp:271,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/hash/hash.cpp:271,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/hash/hash.cpp:275,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/hash.cpp:275,1
    - Dst: std::make_unique<Parallel>
      Src: /src/botan/src/lib/hash/hash.cpp:278,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:283,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/hash/hash.cpp:283,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/hash/hash.cpp:284,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/hash/hash.cpp:284,1
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/hash/hash.cpp:289,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/hash.cpp:289,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/hash/hash.cpp:289,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/hash/hash.cpp:294,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/hash/hash.cpp:294,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/hash/hash.cpp:295,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/hash/hash.cpp:295,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/hash/hash.cpp:296,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/hash/hash.cpp:296,1
    - Dst: std::make_unique<Comb4P>
      Src: /src/botan/src/lib/hash/hash.cpp:299,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/hash.cpp:299,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/hash.cpp:299,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 106
    argCount: 2
    argNames:
    - algo_spec
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 305
    functionName: Botan::HashFunction::create
    functionSourceFile: /src/botan/src/lib/hash/hash.cpp
    functionUses: 100
    functionsReached:
    - std::make_unique<SHA_1>
    - std::make_unique<SHA_256>
    - std::string_view::empty
    - std::make_unique<MD4>
    - std::make_unique<Truncated_Hash>
    - SCAN_Name::arg_count
    - std::make_unique<SHAKE_128>
    - std::make_unique<Parallel>
    - std::make_unique<RIPEMD_160>
    - std::move
    - std::make_unique<Keccak_1600>
    - make_commoncrypto_hash
    - std::make_unique<Adler32>
    - std::make_unique<CRC32>
    - SCAN_Name::arg_as_integer
    - SCAN_Name::algo_name
    - std::make_unique<SHA_384>
    - SCAN_Name::arg
    - std::make_unique<GOST_34_11>
    - Botan::HashFunction::create
    - std::make_unique<BLAKE2s>
    - std::make_unique<Ascon_Hash256>
    - std::make_unique<Whirlpool>
    - std::make_unique<SHA_224>
    - std::make_unique<SHA_512_256>
    - std::make_unique<BLAKE2b>
    - std::vector::push_back
    - std::make_unique<SHA_3>
    - std::make_unique<CRC24>
    - std::make_unique<Skein_512>
    - std::make_unique<SM3>
    - std::make_unique<Comb4P>
    - std::make_unique<Streebog>
    - std::make_unique<SHA_512>
    - std::make_unique<MD5>
    - std::make_unique<SHAKE_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> HashFunction::create(std::string_view
      algo_spec, std::string_view provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/hash/hash.cpp:309,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/hash/hash.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - algo
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: Botan::HashFunction::create_or_throw
    functionSourceFile: /src/botan/src/lib/hash/hash.cpp
    functionUses: 68
    functionsReached:
    - Botan::HashFunction::create
    - Lookup_Error
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> HashFunction::create_or_throw(std::string_view
      algo, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: probe_providers_of<HashFunction>
      Src: /src/botan/src/lib/hash/hash.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 317
    functionName: Botan::HashFunction::providers
    functionSourceFile: /src/botan/src/lib/hash/hash.cpp
    functionUses: 24
    functionsReached:
    - probe_providers_of<HashFunction>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HashFunction::providers(std::string_view algo_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::BLAKE2s::BLAKE2s
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BLAKE2s(const BLAKE2s&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(const BLAKE2s&)'
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLAKE2s
    signature: BLAKE2s & operator=(const BLAKE2s&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::BLAKE2s::BLAKE2s
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BLAKE2s(BLAKE2s&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: '& operator=(BLAKE2s&&)'
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLAKE2s
    signature: BLAKE2s & operator=(BLAKE2s&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::BLAKE2s::output_length
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::BLAKE2s::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<BLAKE2s>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::BLAKE2s::new_object
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached:
    - std::make_unique<BLAKE2s>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::BLAKE2s::BLAKE2s
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BLAKE2s(const BLAKE2s&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(const BLAKE2s&)'
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLAKE2s
    signature: BLAKE2s & operator=(const BLAKE2s&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::BLAKE2s::BLAKE2s
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BLAKE2s(BLAKE2s&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: '& operator=(BLAKE2s&&)'
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLAKE2s
    signature: BLAKE2s & operator=(BLAKE2s&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::BLAKE2s::output_length
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::BLAKE2s::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<BLAKE2s>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::BLAKE2s::new_object
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.h
    functionUses: 0
    functionsReached:
    - std::make_unique<BLAKE2s>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:37,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - v
    argTypes:
    - uint32_t
    - uint32_t
    - std::span<uint32_t, 16>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: Botan::B2S_G
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    linkageType: ''
    returnType: void
    signature: void B2S_G(uint32_t x, uint32_t y, std::span<uint32_t, 16> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:37,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - v
    argTypes:
    - uint32_t
    - uint32_t
    - std::span<uint32_t, 16>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: Botan::B2S_G
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    linkageType: ''
    returnType: void
    signature: void B2S_G(uint32_t x, uint32_t y, std::span<uint32_t, 16> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::BLAKE2s::name
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string BLAKE2s::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BLAKE2s::clear
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - outlen
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: Botan::BLAKE2s::state_init
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::BLAKE2s::clear
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::state_init(size_t outlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:64,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:64,1
    - Dst: concat
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:77,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:79,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:80,1
    - Dst: load_le
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:85,1
    - Dst: B2S_G<0, 4, 8, 12>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:88,1
    - Dst: B2S_G<1, 5, 9, 13>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:89,1
    - Dst: B2S_G<2, 6, 10, 14>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:90,1
    - Dst: B2S_G<3, 7, 11, 15>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:91,1
    - Dst: B2S_G<0, 5, 10, 15>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:92,1
    - Dst: B2S_G<1, 6, 11, 12>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:93,1
    - Dst: B2S_G<2, 7, 8, 13>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:94,1
    - Dst: B2S_G<3, 4, 9, 14>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - last
    - buf
    argTypes:
    - bool
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 101
    functionName: Botan::BLAKE2s::compress
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - B2S_G<0, 4, 8, 12>
    - B2S_G<1, 5, 9, 13>
    - concat
    - static_cast<uint32_t>
    - B2S_G<3, 7, 11, 15>
    - B2S_G<3, 4, 9, 14>
    - load_le
    - B2S_G<0, 5, 10, 15>
    - B2S_G<2, 7, 8, 13>
    - BOTAN_ASSERT_NOMSG
    - B2S_G<2, 6, 10, 14>
    - std::span<const uint8_t>::size
    - B2S_G<1, 6, 11, 12>
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::compress(bool last, std::span<const uint8_t> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BLAKE2s::state_init
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Botan::BLAKE2s::clear
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 1
    functionsReached:
    - Botan::BLAKE2s::state_init
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:113,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:114,1
    - Dst: Botan::BLAKE2s::compress
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:116,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:119,1
    - Dst: next_aligned_block_to_process
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:120,1
    - Dst: Botan::BLAKE2s::compress
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: Botan::BLAKE2s::add_data
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - next_aligned_block_to_process
    - Botan::BLAKE2s::compress
    - handle_unaligned_data
    - BufferSlicer::empty
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elements_in_buffer
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:129,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:131,1
    - Dst: Botan::BLAKE2s::compress
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:132,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:132,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:135,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:135,1
    - Dst: Botan::BLAKE2s::output_length
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:135,1
    - Dst: Botan::BLAKE2s::clear
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: Botan::BLAKE2s::final_result
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::BLAKE2s::clear
    - copy_out_le
    - consume
    - fill_up_with_zeros
    - std::span<uint8_t>::first
    - Botan::BLAKE2s::output_length
    - Botan::BLAKE2s::compress
    - elements_in_buffer
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::final_result(std::span<uint8_t> out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<BLAKE2s>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: Botan::BLAKE2s::copy_state
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<BLAKE2s>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> BLAKE2s::copy_state() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:149,1
    - Dst: Botan::BLAKE2s::state_init
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: Botan::BLAKE2s::BLAKE2s
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - Botan::BLAKE2s::state_init
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::BLAKE2s(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: BLAKE2s::~BLAKE2s()
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - secure_scrub_memory
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::~BLAKE2s()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:37,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - v
    argTypes:
    - uint32_t
    - uint32_t
    - std::span<uint32_t, 16>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: Botan::B2S_G
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    linkageType: ''
    returnType: void
    signature: void B2S_G(uint32_t x, uint32_t y, std::span<uint32_t, 16> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:37,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - v
    argTypes:
    - uint32_t
    - uint32_t
    - std::span<uint32_t, 16>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: Botan::B2S_G
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    linkageType: ''
    returnType: void
    signature: void B2S_G(uint32_t x, uint32_t y, std::span<uint32_t, 16> v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::BLAKE2s::name
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string BLAKE2s::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BLAKE2s::clear
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - outlen
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: Botan::BLAKE2s::state_init
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 2
    functionsReached:
    - Botan::BLAKE2s::clear
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::state_init(size_t outlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:64,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:64,1
    - Dst: concat
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:77,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:79,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:80,1
    - Dst: load_le
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:85,1
    - Dst: B2S_G<0, 4, 8, 12>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:88,1
    - Dst: B2S_G<1, 5, 9, 13>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:89,1
    - Dst: B2S_G<2, 6, 10, 14>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:90,1
    - Dst: B2S_G<3, 7, 11, 15>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:91,1
    - Dst: B2S_G<0, 5, 10, 15>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:92,1
    - Dst: B2S_G<1, 6, 11, 12>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:93,1
    - Dst: B2S_G<2, 7, 8, 13>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:94,1
    - Dst: B2S_G<3, 4, 9, 14>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - last
    - buf
    argTypes:
    - bool
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 101
    functionName: Botan::BLAKE2s::compress
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 2
    functionsReached:
    - B2S_G<0, 4, 8, 12>
    - B2S_G<1, 5, 9, 13>
    - concat
    - static_cast<uint32_t>
    - B2S_G<3, 7, 11, 15>
    - B2S_G<3, 4, 9, 14>
    - load_le
    - B2S_G<0, 5, 10, 15>
    - B2S_G<2, 7, 8, 13>
    - BOTAN_ASSERT_NOMSG
    - B2S_G<2, 6, 10, 14>
    - std::span<const uint8_t>::size
    - B2S_G<1, 6, 11, 12>
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::compress(bool last, std::span<const uint8_t> buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BLAKE2s::state_init
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Botan::BLAKE2s::clear
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 3
    functionsReached:
    - Botan::BLAKE2s::state_init
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:113,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:114,1
    - Dst: Botan::BLAKE2s::compress
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:116,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:119,1
    - Dst: next_aligned_block_to_process
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:120,1
    - Dst: Botan::BLAKE2s::compress
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: Botan::BLAKE2s::add_data
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - next_aligned_block_to_process
    - Botan::BLAKE2s::compress
    - handle_unaligned_data
    - BufferSlicer::empty
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elements_in_buffer
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:129,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:131,1
    - Dst: Botan::BLAKE2s::compress
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:132,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:132,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:135,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:135,1
    - Dst: Botan::BLAKE2s::output_length
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:135,1
    - Dst: Botan::BLAKE2s::clear
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: Botan::BLAKE2s::final_result
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::BLAKE2s::clear
    - copy_out_le
    - consume
    - fill_up_with_zeros
    - std::span<uint8_t>::first
    - Botan::BLAKE2s::output_length
    - Botan::BLAKE2s::compress
    - elements_in_buffer
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::final_result(std::span<uint8_t> out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<BLAKE2s>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: Botan::BLAKE2s::copy_state
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<BLAKE2s>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> BLAKE2s::copy_state() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:149,1
    - Dst: Botan::BLAKE2s::state_init
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: Botan::BLAKE2s::BLAKE2s
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - Botan::BLAKE2s::state_init
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::BLAKE2s(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: BLAKE2s::~BLAKE2s()
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - secure_scrub_memory
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::~BLAKE2s()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:24,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:25,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:30,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: min
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:33,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: min
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ' out'
    - ' in'
    - round_no
    - ' h1'
    - ' h2'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - uint8_t
    - HashFunction
    - HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: Botan::comb4p_round
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan::update
    - Botan::data
    - secure_vector::size
    - Botan::size
    - secure_vector::data
    - Botan::final
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: "void comb4p_round(secure_vector<uint8_t>& out,\n                  const
      secure_vector<uint8_t>& in,\n                  uint8_t round_no,\n                  HashFunction&
      h1,\n                  HashFunction& h2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:24,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:25,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:30,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: min
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:33,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: min
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ' out'
    - ' in'
    - round_no
    - ' h1'
    - ' h2'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - uint8_t
    - HashFunction
    - HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: Botan::comb4p_round
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan::update
    - Botan::data
    - secure_vector::size
    - Botan::size
    - secure_vector::data
    - Botan::final
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: "void comb4p_round(secure_vector<uint8_t>& out,\n                  const
      secure_vector<uint8_t>& in,\n                  uint8_t round_no,\n                  HashFunction&
      h1,\n                  HashFunction& h2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:40,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:40,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:41,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:41,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:42,1
    - Dst: Botan::Comb4P::output_length
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:45,1
    - Dst: Botan::Comb4P::output_length
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:45,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:46,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:46,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:46,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:46,1
    - Dst: Botan::Comb4P::clear
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - std::unique_ptr<HashFunction>
    - std::unique_ptr<HashFunction>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: Botan::Comb4P::Comb4P
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - Botan::Comb4P::clear
    - std::move
    - Botan::Comb4P::output_length
    - Botan::Comb4P::name
    - fmt
    linkageType: ''
    returnType: void
    signature: void Comb4P::Comb4P(std::unique_ptr<HashFunction> h1, std::unique_ptr<HashFunction>
      h2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:53,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:53,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::Comb4P::name
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 2
    functionsReached:
    - Botan::Comb4P::name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Comb4P::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Comb4P>
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:57,1
    - Dst: Botan::Comb4P::new_object
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:57,1
    - Dst: Botan::Comb4P::new_object
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::Comb4P::new_object
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 1
    functionsReached:
    - Botan::Comb4P::new_object
    - std::make_unique<Comb4P>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Comb4P::new_object() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Comb4P::hash_block_size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:61,1
    - Dst: Botan::Comb4P::hash_block_size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:61,1
    - Dst: Botan::Comb4P::hash_block_size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: Botan::Comb4P::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 1
    functionsReached:
    - Botan::Comb4P::hash_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t Comb4P::hash_block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Comb4P::clear
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:73,1
    - Dst: Botan::Comb4P::clear
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:74,1
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:77,1
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: Botan::Comb4P::clear
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 2
    functionsReached:
    - update
    - Botan::Comb4P::clear
    linkageType: ''
    returnType: void
    signature: void Comb4P::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Comb4P::Comb4P
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:83,1
    - Dst: Botan::Comb4P::copy_state
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:84,1
    - Dst: Botan::Comb4P::copy_state
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: Botan::Comb4P::copy_state
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 1
    functionsReached:
    - Comb4P::Comb4P
    - Botan::Comb4P::copy_state
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Comb4P::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:90,1
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: Botan::Comb4P::add_data
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void Comb4P::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:95,1
    - Dst: final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:96,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: min
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: comb4p_round
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:102,1
    - Dst: comb4p_round
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:105,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:108,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:108,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:108,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:108,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:108,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:109,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:109,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:109,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:109,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:109,1
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:112,1
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 114
    functionName: Botan::Comb4P::final_result
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 0
    functionsReached:
    - min
    - comb4p_round
    - xor_buf
    - secure_vector::size
    - BufferStuffer::next
    - final
    - copy_mem
    - secure_vector::data
    - update
    linkageType: ''
    returnType: void
    signature: void Comb4P::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:24,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:25,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:30,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: min
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:33,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: min
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ' out'
    - ' in'
    - round_no
    - ' h1'
    - ' h2'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - uint8_t
    - HashFunction
    - HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: Botan::comb4p_round
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan::update
    - Botan::data
    - secure_vector::size
    - Botan::size
    - secure_vector::data
    - Botan::final
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: "void comb4p_round(secure_vector<uint8_t>& out,\n                  const
      secure_vector<uint8_t>& in,\n                  uint8_t round_no,\n                  HashFunction&
      h1,\n                  HashFunction& h2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:24,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:25,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:27,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:28,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:30,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: min
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:31,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:33,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: min
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ' out'
    - ' in'
    - round_no
    - ' h1'
    - ' h2'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - uint8_t
    - HashFunction
    - HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: Botan::comb4p_round
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 0
    functionsReached:
    - min
    - Botan::update
    - Botan::data
    - secure_vector::size
    - Botan::size
    - secure_vector::data
    - Botan::final
    - Botan::xor_buf
    linkageType: ''
    returnType: void
    signature: "void comb4p_round(secure_vector<uint8_t>& out,\n                  const
      secure_vector<uint8_t>& in,\n                  uint8_t round_no,\n                  HashFunction&
      h1,\n                  HashFunction& h2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:40,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:40,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:41,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:41,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:42,1
    - Dst: Botan::Comb4P::output_length
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:45,1
    - Dst: Botan::Comb4P::output_length
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:45,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:46,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:46,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:46,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:46,1
    - Dst: Botan::Comb4P::clear
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - std::unique_ptr<HashFunction>
    - std::unique_ptr<HashFunction>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: Botan::Comb4P::Comb4P
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - Botan::Comb4P::clear
    - std::move
    - Botan::Comb4P::output_length
    - Botan::Comb4P::name
    - fmt
    linkageType: ''
    returnType: void
    signature: void Comb4P::Comb4P(std::unique_ptr<HashFunction> h1, std::unique_ptr<HashFunction>
      h2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:53,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:53,1
    - Dst: Botan::Comb4P::name
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::Comb4P::name
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 4
    functionsReached:
    - Botan::Comb4P::name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Comb4P::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Comb4P>
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:57,1
    - Dst: Botan::Comb4P::new_object
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:57,1
    - Dst: Botan::Comb4P::new_object
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::Comb4P::new_object
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 2
    functionsReached:
    - Botan::Comb4P::new_object
    - std::make_unique<Comb4P>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Comb4P::new_object() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Comb4P::hash_block_size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:61,1
    - Dst: Botan::Comb4P::hash_block_size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:61,1
    - Dst: Botan::Comb4P::hash_block_size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: Botan::Comb4P::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 2
    functionsReached:
    - Botan::Comb4P::hash_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t Comb4P::hash_block_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Comb4P::clear
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:73,1
    - Dst: Botan::Comb4P::clear
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:74,1
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:77,1
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: Botan::Comb4P::clear
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 4
    functionsReached:
    - update
    - Botan::Comb4P::clear
    linkageType: ''
    returnType: void
    signature: void Comb4P::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Comb4P::Comb4P
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:83,1
    - Dst: Botan::Comb4P::copy_state
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:84,1
    - Dst: Botan::Comb4P::copy_state
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: Botan::Comb4P::copy_state
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 2
    functionsReached:
    - Comb4P::Comb4P
    - Botan::Comb4P::copy_state
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Comb4P::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:90,1
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: Botan::Comb4P::add_data
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void Comb4P::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:95,1
    - Dst: final
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:96,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: min
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:99,1
    - Dst: comb4p_round
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:102,1
    - Dst: comb4p_round
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:105,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:108,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:108,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:108,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:108,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:108,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:109,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:109,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:109,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:109,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:109,1
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:112,1
    - Dst: update
      Src: /src/botan/src/lib/hash/comb4p/comb4p.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 114
    functionName: Botan::Comb4P::final_result
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.cpp
    functionUses: 0
    functionsReached:
    - min
    - comb4p_round
    - xor_buf
    - secure_vector::size
    - BufferStuffer::next
    - final
    - copy_mem
    - secure_vector::data
    - update
    linkageType: ''
    returnType: void
    signature: void Comb4P::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Comb4P::output_length
      Src: /src/botan/src/lib/hash/comb4p/comb4p.h:29,1
    - Dst: Botan::Comb4P::output_length
      Src: /src/botan/src/lib/hash/comb4p/comb4p.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::Comb4P::output_length
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.h
    functionUses: 3
    functionsReached:
    - Botan::Comb4P::output_length
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::Comb4P::Comb4P
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Comb4P()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Comb4P::output_length
      Src: /src/botan/src/lib/hash/comb4p/comb4p.h:29,1
    - Dst: Botan::Comb4P::output_length
      Src: /src/botan/src/lib/hash/comb4p/comb4p.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::Comb4P::output_length
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.h
    functionUses: 4
    functionsReached:
    - Botan::Comb4P::output_length
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::Comb4P::Comb4P
    functionSourceFile: /src/botan/src/lib/hash/comb4p/comb4p.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Comb4P()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::full_client_handshake
      Src: /src/botan/src/lib/hash/shake/shake.cpp:16,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/shake/shake.cpp:18,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/shake/shake.cpp:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: Botan::SHAKE_128::SHAKE_128
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::full_client_handshake
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: void
    signature: void SHAKE_128::SHAKE_128(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/shake/shake.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::SHAKE_128::name
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string SHAKE_128::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHAKE_128>
      Src: /src/botan/src/lib/hash/shake/shake.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::SHAKE_128::new_object
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHAKE_128>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHAKE_128::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHAKE_128>
      Src: /src/botan/src/lib/hash/shake/shake.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan::SHAKE_128::copy_state
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHAKE_128>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHAKE_128::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb
      Src: /src/botan/src/lib/hash/shake/shake.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan::SHAKE_128::add_data
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - absorb
    linkageType: ''
    returnType: void
    signature: void SHAKE_128::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/botan/src/lib/hash/shake/shake.cpp:39,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/shake/shake.cpp:40,1
    - Dst: Botan::SHAKE_128::clear
      Src: /src/botan/src/lib/hash/shake/shake.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: Botan::SHAKE_128::final_result
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - squeeze
    - finish
    - Botan::SHAKE_128::clear
    linkageType: ''
    returnType: void
    signature: void SHAKE_128::final_result(std::span<uint8_t> output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::full_client_handshake
      Src: /src/botan/src/lib/hash/shake/shake.cpp:45,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/shake/shake.cpp:47,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/shake/shake.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: Botan::SHAKE_256::SHAKE_256
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::full_client_handshake
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: void
    signature: void SHAKE_256::SHAKE_256(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/shake/shake.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::SHAKE_256::name
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string SHAKE_256::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHAKE_256>
      Src: /src/botan/src/lib/hash/shake/shake.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::SHAKE_256::new_object
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHAKE_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHAKE_256::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHAKE_256>
      Src: /src/botan/src/lib/hash/shake/shake.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::SHAKE_256::copy_state
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHAKE_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHAKE_256::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb
      Src: /src/botan/src/lib/hash/shake/shake.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::SHAKE_256::add_data
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - absorb
    linkageType: ''
    returnType: void
    signature: void SHAKE_256::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/botan/src/lib/hash/shake/shake.cpp:68,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/shake/shake.cpp:69,1
    - Dst: Botan::SHAKE_256::clear
      Src: /src/botan/src/lib/hash/shake/shake.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: Botan::SHAKE_256::final_result
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - Botan::SHAKE_256::clear
    - squeeze
    - finish
    linkageType: ''
    returnType: void
    signature: void SHAKE_256::final_result(std::span<uint8_t> output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::full_client_handshake
      Src: /src/botan/src/lib/hash/shake/shake.cpp:16,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/shake/shake.cpp:18,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/shake/shake.cpp:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: Botan::SHAKE_128::SHAKE_128
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::full_client_handshake
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: void
    signature: void SHAKE_128::SHAKE_128(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/shake/shake.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::SHAKE_128::name
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string SHAKE_128::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHAKE_128>
      Src: /src/botan/src/lib/hash/shake/shake.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::SHAKE_128::new_object
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHAKE_128>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHAKE_128::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHAKE_128>
      Src: /src/botan/src/lib/hash/shake/shake.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan::SHAKE_128::copy_state
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHAKE_128>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHAKE_128::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb
      Src: /src/botan/src/lib/hash/shake/shake.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan::SHAKE_128::add_data
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - absorb
    linkageType: ''
    returnType: void
    signature: void SHAKE_128::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/botan/src/lib/hash/shake/shake.cpp:39,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/shake/shake.cpp:40,1
    - Dst: Botan::SHAKE_128::clear
      Src: /src/botan/src/lib/hash/shake/shake.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: Botan::SHAKE_128::final_result
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - squeeze
    - finish
    - Botan::SHAKE_128::clear
    linkageType: ''
    returnType: void
    signature: void SHAKE_128::final_result(std::span<uint8_t> output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::full_client_handshake
      Src: /src/botan/src/lib/hash/shake/shake.cpp:45,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/shake/shake.cpp:47,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/shake/shake.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: Botan::SHAKE_256::SHAKE_256
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::full_client_handshake
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: void
    signature: void SHAKE_256::SHAKE_256(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/shake/shake.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::SHAKE_256::name
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string SHAKE_256::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHAKE_256>
      Src: /src/botan/src/lib/hash/shake/shake.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::SHAKE_256::new_object
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHAKE_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHAKE_256::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHAKE_256>
      Src: /src/botan/src/lib/hash/shake/shake.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::SHAKE_256::copy_state
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHAKE_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHAKE_256::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb
      Src: /src/botan/src/lib/hash/shake/shake.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::SHAKE_256::add_data
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - absorb
    linkageType: ''
    returnType: void
    signature: void SHAKE_256::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/botan/src/lib/hash/shake/shake.cpp:68,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/shake/shake.cpp:69,1
    - Dst: Botan::SHAKE_256::clear
      Src: /src/botan/src/lib/hash/shake/shake.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: Botan::SHAKE_256::final_result
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.cpp
    functionUses: 0
    functionsReached:
    - Botan::SHAKE_256::clear
    - squeeze
    - finish
    linkageType: ''
    returnType: void
    signature: void SHAKE_256::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte_rate
      Src: /src/botan/src/lib/hash/shake/shake.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::SHAKE_128::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 0
    functionsReached:
    - byte_rate
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::SHAKE_128::output_length
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHAKE_128::clear
      Src: /src/botan/src/lib/hash/shake/shake.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::SHAKE_128::clear
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 3
    functionsReached:
    - Botan::SHAKE_128::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHAKE_128::provider
      Src: /src/botan/src/lib/hash/shake/shake.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::SHAKE_128::provider
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 1
    functionsReached:
    - Botan::SHAKE_128::provider
    linkageType: ''
    returnType: std::string
    signature: std::string provider() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte_rate
      Src: /src/botan/src/lib/hash/shake/shake.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan::SHAKE_256::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 0
    functionsReached:
    - byte_rate
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::SHAKE_256::output_length
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHAKE_256::clear
      Src: /src/botan/src/lib/hash/shake/shake.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::SHAKE_256::clear
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 3
    functionsReached:
    - Botan::SHAKE_256::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHAKE_256::provider
      Src: /src/botan/src/lib/hash/shake/shake.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::SHAKE_256::provider
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 1
    functionsReached:
    - Botan::SHAKE_256::provider
    linkageType: ''
    returnType: std::string
    signature: std::string provider() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte_rate
      Src: /src/botan/src/lib/hash/shake/shake.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::SHAKE_128::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 0
    functionsReached:
    - byte_rate
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::SHAKE_128::output_length
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHAKE_128::clear
      Src: /src/botan/src/lib/hash/shake/shake.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::SHAKE_128::clear
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 4
    functionsReached:
    - Botan::SHAKE_128::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHAKE_128::provider
      Src: /src/botan/src/lib/hash/shake/shake.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::SHAKE_128::provider
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 2
    functionsReached:
    - Botan::SHAKE_128::provider
    linkageType: ''
    returnType: std::string
    signature: std::string provider() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte_rate
      Src: /src/botan/src/lib/hash/shake/shake.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan::SHAKE_256::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 0
    functionsReached:
    - byte_rate
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::SHAKE_256::output_length
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHAKE_256::clear
      Src: /src/botan/src/lib/hash/shake/shake.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::SHAKE_256::clear
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 4
    functionsReached:
    - Botan::SHAKE_256::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHAKE_256::provider
      Src: /src/botan/src/lib/hash/shake/shake.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::SHAKE_256::provider
    functionSourceFile: /src/botan/src/lib/hash/shake/shake.h
    functionUses: 2
    functionsReached:
    - Botan::SHAKE_256::provider
    linkageType: ''
    returnType: std::string
    signature: std::string provider() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: choose
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:22,1
    - Dst: rotl<5>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:22,1
    - Dst: rotl<30>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - A
    - ' B'
    - C
    - D
    - ' E'
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: Botan::SHA1_F::F1
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_f.h
    functionUses: 0
    functionsReached:
    - rotl<30>
    - rotl<5>
    - choose
    linkageType: ''
    returnType: void
    signature: void F1(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t&
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl<5>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:27,1
    - Dst: rotl<30>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - A
    - ' B'
    - C
    - D
    - ' E'
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan::SHA1_F::F2
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_f.h
    functionUses: 0
    functionsReached:
    - rotl<30>
    - rotl<5>
    linkageType: ''
    returnType: void
    signature: void F2(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t&
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: majority
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:32,1
    - Dst: rotl<5>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:32,1
    - Dst: rotl<30>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - A
    - ' B'
    - C
    - D
    - ' E'
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::SHA1_F::F3
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_f.h
    functionUses: 0
    functionsReached:
    - majority
    - rotl<30>
    - rotl<5>
    linkageType: ''
    returnType: void
    signature: void F3(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t&
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl<5>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:38,1
    - Dst: rotl<30>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - A
    - ' B'
    - C
    - D
    - ' E'
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: Botan::SHA1_F::F4
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_f.h
    functionUses: 0
    functionsReached:
    - rotl<30>
    - rotl<5>
    linkageType: ''
    returnType: void
    signature: void F4(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t&
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: choose
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:22,1
    - Dst: rotl<5>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:22,1
    - Dst: rotl<30>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - A
    - ' B'
    - C
    - D
    - ' E'
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: Botan::SHA1_F::F1
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_f.h
    functionUses: 0
    functionsReached:
    - rotl<30>
    - rotl<5>
    - choose
    linkageType: ''
    returnType: void
    signature: void F1(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t&
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl<5>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:27,1
    - Dst: rotl<30>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - A
    - ' B'
    - C
    - D
    - ' E'
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan::SHA1_F::F2
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_f.h
    functionUses: 0
    functionsReached:
    - rotl<30>
    - rotl<5>
    linkageType: ''
    returnType: void
    signature: void F2(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t&
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: majority
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:32,1
    - Dst: rotl<5>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:32,1
    - Dst: rotl<30>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - A
    - ' B'
    - C
    - D
    - ' E'
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::SHA1_F::F3
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_f.h
    functionUses: 0
    functionsReached:
    - majority
    - rotl<30>
    - rotl<5>
    linkageType: ''
    returnType: void
    signature: void F3(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t&
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl<5>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:38,1
    - Dst: rotl<30>
      Src: /src/botan/src/lib/hash/sha1/sha1_f.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - A
    - ' B'
    - C
    - D
    - ' E'
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: Botan::SHA1_F::F4
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_f.h
    functionUses: 0
    functionsReached:
    - rotl<30>
    - rotl<5>
    linkageType: ''
    returnType: void
    signature: void F4(uint32_t A, uint32_t& B, uint32_t C, uint32_t D, uint32_t&
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::SHA_1::name
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::SHA_1::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::SHA_1::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_1::clear
      Src: /src/botan/src/lib/hash/sha1/sha1.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::SHA_1::clear
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.h
    functionUses: 1
    functionsReached:
    - Botan::SHA_1::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::SHA_1::name
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::SHA_1::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::SHA_1::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_1::clear
      Src: /src/botan/src/lib/hash/sha1/sha1.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::SHA_1::clear
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.h
    functionUses: 2
    functionsReached:
    - Botan::SHA_1::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:28,1
    - Dst: sha1_compress_x86
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:29,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:34,1
    - Dst: sha1_armv8_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:35,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:40,1
    - Dst: avx2_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:41,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:46,1
    - Dst: simd_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:47,1
    - Dst: first
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:57,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:62,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:62,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:67,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:68,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:69,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:70,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:71,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:72,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:73,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:74,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:79,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:80,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:81,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:82,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:83,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:84,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:85,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:86,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:87,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:88,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:89,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:90,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:91,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:92,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:93,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:94,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:95,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:96,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:97,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:98,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:100,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:101,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:102,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:103,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:104,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:105,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:106,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:107,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:108,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:109,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:110,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:111,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:112,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:113,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:114,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:115,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:116,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:117,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:118,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:119,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:121,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:122,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:123,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:124,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:125,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:126,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:127,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:128,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:129,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:130,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:131,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:132,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:133,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:134,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:135,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:136,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:137,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:138,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:139,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:140,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:142,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:143,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:144,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:145,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:146,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:147,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:148,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:149,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:150,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:151,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:152,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:153,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:154,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:155,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:156,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:157,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:158,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:159,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:160,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 111
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 169
    functionName: Botan::SHA_1::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - simd_compress_n
    - first
    - sha1_compress_x86
    - load_be
    - sha1_armv8_compress_n
    - rotl<1>
    - F3
    - BufferSlicer::take
    - F2
    - F1
    - F4
    - has
    - avx2_compress_n
    linkageType: ''
    returnType: void
    signature: void SHA_1::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: Botan::SHA_1::init
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_1::init(digest_type& digest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:180,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:186,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:192,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 204
    functionName: Botan::SHA_1::provider
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_1::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: Botan::SHA_1::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_1>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_1::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: Botan::SHA_1::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_1>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_1::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: Botan::SHA_1::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_1::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: Botan::SHA_1::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_1::final_result(std::span<uint8_t> output)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:28,1
    - Dst: sha1_compress_x86
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:29,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:34,1
    - Dst: sha1_armv8_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:35,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:40,1
    - Dst: avx2_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:41,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:46,1
    - Dst: simd_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:47,1
    - Dst: first
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:57,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:62,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:62,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:67,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:68,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:69,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:70,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:71,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:72,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:73,1
    - Dst: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:74,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:79,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:80,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:81,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:82,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:83,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:84,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:85,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:86,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:87,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:88,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:89,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:90,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:91,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:92,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:93,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:94,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:95,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:96,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:97,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:98,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:100,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:101,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:102,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:103,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:104,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:105,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:106,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:107,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:108,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:109,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:110,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:111,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:112,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:113,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:114,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:115,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:116,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:117,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:118,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:119,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:121,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:122,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:123,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:124,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:125,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:126,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:127,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:128,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:129,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:130,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:131,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:132,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:133,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:134,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:135,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:136,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:137,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:138,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:139,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:140,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:142,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:143,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:144,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:145,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:146,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:147,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:148,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:149,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:150,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:151,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:152,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:153,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:154,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:155,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:156,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:157,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:158,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:159,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:160,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 111
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 169
    functionName: Botan::SHA_1::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - simd_compress_n
    - first
    - sha1_compress_x86
    - load_be
    - sha1_armv8_compress_n
    - rotl<1>
    - F3
    - BufferSlicer::take
    - F2
    - F1
    - F4
    - has
    - avx2_compress_n
    linkageType: ''
    returnType: void
    signature: void SHA_1::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: Botan::SHA_1::init
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_1::init(digest_type& digest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:180,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:186,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:192,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 204
    functionName: Botan::SHA_1::provider
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_1::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: Botan::SHA_1::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_1>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_1::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: Botan::SHA_1::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_1>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_1::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: Botan::SHA_1::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_1::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: Botan::SHA_1::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_1::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: _mm256_srli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: _mm256_slli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: SIMD_8x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' XW0'
    - XW1
    - XW2
    - XW3
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: Botan::sha1_avx2_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32
    - _mm256_alignr_epi8
    - raw
    - _mm256_srli_si256
    - SIMD_8x32::rotl
    - auto::rotl
    - _mm256_slli_si256
    - SIMD_8x32::raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: "BOTAN_FN_ISA_AVX2_BMI2 sha1_avx2_next_w(SIMD_8x32& XW0,\n                                                                     SIMD_8x32
      XW1,\n                                                                     SIMD_8x32
      XW2,\n                                                                     SIMD_8x32
      XW3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:59,1
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:60,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: _mm256_and_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: _mm256_permutevar8x32_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Botan::permute_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32
    - _mm256_and_si256
    - _mm256_permutevar8x32_epi32
    - _mm256_setr_epi32
    - SIMD_8x32::raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 permute_words(SIMD_8x32 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:120,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:123,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:126,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:127,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' W0'
    - W2
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: Botan::sha1_avx2_next_w2
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::rotl
    - Botan::permute_words
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 sha1_avx2_next_w2(SIMD_8x32& W0, SIMD_8x32 W2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: _mm256_srli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: _mm256_slli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: SIMD_8x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' XW0'
    - XW1
    - XW2
    - XW3
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: Botan::sha1_avx2_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32
    - _mm256_alignr_epi8
    - raw
    - _mm256_srli_si256
    - SIMD_8x32::rotl
    - auto::rotl
    - _mm256_slli_si256
    - SIMD_8x32::raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: "BOTAN_FN_ISA_AVX2_BMI2 sha1_avx2_next_w(SIMD_8x32& XW0,\n                                                                     SIMD_8x32
      XW1,\n                                                                     SIMD_8x32
      XW2,\n                                                                     SIMD_8x32
      XW3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:59,1
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:60,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: _mm256_and_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: _mm256_permutevar8x32_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Botan::permute_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 1
    functionsReached:
    - SIMD_8x32
    - _mm256_and_si256
    - _mm256_permutevar8x32_epi32
    - _mm256_setr_epi32
    - SIMD_8x32::raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 permute_words(SIMD_8x32 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:120,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:123,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:126,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:127,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' W0'
    - W2
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: Botan::sha1_avx2_next_w2
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::rotl
    - Botan::permute_words
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 sha1_avx2_next_w2(SIMD_8x32& W0, SIMD_8x32 W2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:147,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:148,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:149,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:150,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:164,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:172,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:173,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:174,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:175,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:177,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:178,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:179,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:180,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:184,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:185,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:185,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:186,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:187,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:188,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:189,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:191,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:192,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:192,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:193,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:194,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:195,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:196,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:198,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:199,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:199,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:200,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:201,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:202,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:203,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:205,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:206,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:206,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:207,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:208,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:209,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:210,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:212,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:213,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:213,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:214,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:215,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:216,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:217,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:219,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:220,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:220,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:221,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:222,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:223,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:224,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:226,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:227,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:227,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:228,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:229,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:230,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:231,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:233,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:234,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:234,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:235,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:236,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:237,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:238,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:240,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:241,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:241,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:242,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:243,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:244,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:245,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:247,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:248,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:248,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:249,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:250,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:251,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:252,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:254,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:255,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:255,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:256,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:257,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:258,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:259,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:261,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:262,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:262,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:263,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:264,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:265,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:266,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:268,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:269,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:269,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:270,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:271,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:272,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:273,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:275,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:276,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:276,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:277,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:278,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:279,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:280,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:282,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:283,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:283,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:284,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:285,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:286,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:287,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:289,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:290,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:290,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:291,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:292,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:293,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:294,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:296,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:297,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:298,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:299,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:300,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:302,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:303,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:304,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:305,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:306,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:308,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:309,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:310,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:311,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:312,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:314,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:315,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:316,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:317,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:318,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:329,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:330,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:331,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:332,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:333,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:334,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:335,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:336,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:337,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:338,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:339,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:340,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:341,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:342,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:343,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:344,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:345,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:346,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:347,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:348,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:349,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:350,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:351,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:352,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:353,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:354,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:355,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:356,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:357,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:358,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:359,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:360,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:361,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:362,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:363,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:364,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:365,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:366,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:367,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:368,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:369,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:370,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:371,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:372,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:373,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:374,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:375,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:376,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:377,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:378,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:379,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:380,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:381,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:382,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:383,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:384,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:385,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:386,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:387,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:388,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:389,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:390,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:391,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:392,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:393,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:394,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:395,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:396,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:397,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:398,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:399,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:400,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:401,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:402,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:403,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:404,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:405,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:406,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:407,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:408,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:420,1
    - Dst: Botan::SIMD_8x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:422,1
    - Dst: Botan::SIMD_8x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:423,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:428,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:429,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:431,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:432,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:433,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:434,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:435,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:436,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:437,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:438,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:440,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:441,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:443,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:444,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:445,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:446,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:447,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:448,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:449,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:450,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:452,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:453,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:455,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:456,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:457,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:458,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:459,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:460,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:461,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:462,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:464,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:465,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:467,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:468,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:469,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:470,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:471,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:472,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:473,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:474,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:476,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:477,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:479,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:480,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:481,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:482,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:483,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:484,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:485,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:486,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:488,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:489,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:491,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:492,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:493,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:494,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:495,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:496,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:497,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:498,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:500,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:501,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:503,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:504,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:505,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:506,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:507,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:508,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:509,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:510,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:512,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:513,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:515,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:516,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:517,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:518,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:519,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:520,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:521,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:522,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:524,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:526,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:527,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:528,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:529,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:530,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:531,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:532,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:533,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:535,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:537,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:538,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:539,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:540,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:541,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:542,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:543,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 315
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 552
    functionName: Botan::BOTAN_FN_ISA_AVX2_BMI2::avx2_compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_8x32::load_be
    - SIMD_8x32::store_le
    - Botan::SIMD_8x32::load_be128
    - sha1_avx2_next_w2
    - Botan::SIMD_8x32::splat
    - sha1_avx2_next_w
    - F3
    - F2
    - F1
    - F4
    - SIMD_8x32::store_le128
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX2_BMI2 SHA_1::avx2_compress_n(digest_type& digest,
      std::span<const uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: _mm256_srli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: _mm256_slli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: SIMD_8x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' XW0'
    - XW1
    - XW2
    - XW3
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: Botan::sha1_avx2_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32
    - _mm256_alignr_epi8
    - raw
    - _mm256_srli_si256
    - SIMD_8x32::rotl
    - auto::rotl
    - _mm256_slli_si256
    - SIMD_8x32::raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: "BOTAN_FN_ISA_AVX2_BMI2 sha1_avx2_next_w(SIMD_8x32& XW0,\n                                                                     SIMD_8x32
      XW1,\n                                                                     SIMD_8x32
      XW2,\n                                                                     SIMD_8x32
      XW3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:59,1
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:60,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: _mm256_and_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: _mm256_permutevar8x32_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Botan::permute_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 2
    functionsReached:
    - SIMD_8x32
    - _mm256_and_si256
    - _mm256_permutevar8x32_epi32
    - _mm256_setr_epi32
    - SIMD_8x32::raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 permute_words(SIMD_8x32 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:120,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:123,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:126,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:127,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' W0'
    - W2
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: Botan::sha1_avx2_next_w2
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::rotl
    - Botan::permute_words
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 sha1_avx2_next_w2(SIMD_8x32& W0, SIMD_8x32 W2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:29,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: _mm256_srli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:31,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: _mm256_slli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:36,1
    - Dst: SIMD_8x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' XW0'
    - XW1
    - XW2
    - XW3
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: Botan::sha1_avx2_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32
    - _mm256_alignr_epi8
    - raw
    - _mm256_srli_si256
    - SIMD_8x32::rotl
    - auto::rotl
    - _mm256_slli_si256
    - SIMD_8x32::raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: "BOTAN_FN_ISA_AVX2_BMI2 sha1_avx2_next_w(SIMD_8x32& XW0,\n                                                                     SIMD_8x32
      XW1,\n                                                                     SIMD_8x32
      XW2,\n                                                                     SIMD_8x32
      XW3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:59,1
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:60,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: _mm256_and_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: _mm256_permutevar8x32_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Botan::permute_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 3
    functionsReached:
    - SIMD_8x32
    - _mm256_and_si256
    - _mm256_permutevar8x32_epi32
    - _mm256_setr_epi32
    - SIMD_8x32::raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 permute_words(SIMD_8x32 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:120,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:123,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:126,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:127,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' W0'
    - W2
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: Botan::sha1_avx2_next_w2
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::rotl
    - Botan::permute_words
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 sha1_avx2_next_w2(SIMD_8x32& W0, SIMD_8x32 W2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:147,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:148,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:149,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:150,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:164,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:172,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:173,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:174,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:175,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:177,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:178,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:179,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:180,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:184,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:185,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:185,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:186,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:187,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:188,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:189,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:191,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:192,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:192,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:193,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:194,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:195,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:196,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:198,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:199,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:199,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:200,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:201,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:202,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:203,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:205,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:206,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:206,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:207,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:208,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:209,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:210,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:212,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:213,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:213,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:214,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:215,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:216,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:217,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:219,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:220,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:220,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:221,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:222,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:223,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:224,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:226,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:227,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:227,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:228,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:229,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:230,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:231,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:233,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:234,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:234,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:235,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:236,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:237,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:238,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:240,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:241,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:241,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:242,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:243,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:244,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:245,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:247,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:248,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:248,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:249,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:250,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:251,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:252,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:254,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:255,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:255,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:256,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:257,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:258,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:259,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:261,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:262,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:262,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:263,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:264,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:265,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:266,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:268,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:269,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:269,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:270,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:271,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:272,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:273,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:275,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:276,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:276,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:277,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:278,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:279,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:280,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:282,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:283,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:283,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:284,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:285,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:286,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:287,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:289,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:290,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:290,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:291,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:292,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:293,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:294,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:296,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:297,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:298,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:299,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:300,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:302,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:303,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:304,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:305,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:306,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:308,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:309,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:310,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:311,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:312,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:314,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:315,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:316,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:317,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:318,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:329,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:330,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:331,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:332,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:333,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:334,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:335,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:336,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:337,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:338,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:339,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:340,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:341,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:342,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:343,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:344,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:345,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:346,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:347,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:348,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:349,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:350,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:351,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:352,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:353,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:354,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:355,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:356,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:357,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:358,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:359,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:360,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:361,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:362,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:363,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:364,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:365,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:366,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:367,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:368,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:369,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:370,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:371,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:372,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:373,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:374,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:375,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:376,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:377,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:378,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:379,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:380,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:381,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:382,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:383,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:384,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:385,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:386,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:387,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:388,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:389,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:390,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:391,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:392,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:393,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:394,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:395,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:396,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:397,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:398,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:399,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:400,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:401,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:402,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:403,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:404,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:405,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:406,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:407,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:408,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:420,1
    - Dst: Botan::SIMD_8x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:422,1
    - Dst: Botan::SIMD_8x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:423,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:428,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:429,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:431,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:432,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:433,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:434,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:435,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:436,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:437,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:438,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:440,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:441,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:443,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:444,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:445,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:446,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:447,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:448,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:449,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:450,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:452,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:453,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:455,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:456,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:457,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:458,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:459,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:460,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:461,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:462,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:464,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:465,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:467,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:468,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:469,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:470,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:471,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:472,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:473,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:474,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:476,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:477,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:479,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:480,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:481,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:482,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:483,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:484,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:485,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:486,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:488,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:489,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:491,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:492,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:493,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:494,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:495,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:496,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:497,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:498,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:500,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:501,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:503,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:504,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:505,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:506,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:507,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:508,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:509,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:510,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:512,1
    - Dst: sha1_avx2_next_w2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:513,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:515,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:516,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:517,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:518,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:519,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:520,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:521,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:522,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:524,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:526,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:527,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:528,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:529,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:530,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:531,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:532,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:533,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:535,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:537,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:538,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:539,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:540,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:541,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:542,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:543,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 315
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 552
    functionName: Botan::BOTAN_FN_ISA_AVX2_BMI2::avx2_compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_8x32::load_be
    - SIMD_8x32::store_le
    - Botan::SIMD_8x32::load_be128
    - sha1_avx2_next_w2
    - Botan::SIMD_8x32::splat
    - sha1_avx2_next_w
    - F3
    - F2
    - F1
    - F4
    - SIMD_8x32::store_le128
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_AVX2_BMI2 SHA_1::avx2_compress_n(digest_type& digest,
      std::span<const uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: _mm_sha1nexte_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan::sha1_x86_nexte
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1nexte_epu32
    - SIMD_4x32
    - raw
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_x86_nexte(const SIMD_4x32& x, const SIMD_4x32&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::sha1_x86_msg1
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1msg1_epu32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_x86_msg1(const SIMD_4x32& W0, const SIMD_4x32&
      W1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: _mm_sha1msg2_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: Botan::sha1_x86_next_msg
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1msg2_epu32
    - raw
    - _mm_sha1msg1_epu32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_next_msg(const SIMD_4x32& W0,\n                                                             SIMD_4x32&
      W1,\n                                                             SIMD_4x32&
      W2,\n                                                             SIMD_4x32&
      W3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' ABCD'
    - ' E'
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan::sha1_x86_first8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1rnds4_epu32
    - raw
    - SIMD_4x32
    - Botan::sha1_x86_nexte
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_first8(SIMD_4x32& ABCD,\n                                                           SIMD_4x32&
      E,\n                                                           const SIMD_4x32&
      W0,\n                                                           const SIMD_4x32&
      W1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' ABCD'
    - ' E'
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: Botan::sha1_x86_rnds8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1rnds4_epu32
    - raw
    - SIMD_4x32
    - Botan::sha1_x86_nexte
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_rnds8(SIMD_4x32& ABCD,\n                                                          SIMD_4x32&
      E,\n                                                          const SIMD_4x32&
      W0,\n                                                          const SIMD_4x32&
      W1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::rev_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE rev_words(const SIMD_4x32& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: _mm_sha1nexte_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan::sha1_x86_nexte
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 2
    functionsReached:
    - _mm_sha1nexte_epu32
    - SIMD_4x32
    - raw
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_x86_nexte(const SIMD_4x32& x, const SIMD_4x32&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::sha1_x86_msg1
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1msg1_epu32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_x86_msg1(const SIMD_4x32& W0, const SIMD_4x32&
      W1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: _mm_sha1msg2_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: Botan::sha1_x86_next_msg
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1msg2_epu32
    - raw
    - _mm_sha1msg1_epu32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_next_msg(const SIMD_4x32& W0,\n                                                             SIMD_4x32&
      W1,\n                                                             SIMD_4x32&
      W2,\n                                                             SIMD_4x32&
      W3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' ABCD'
    - ' E'
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan::sha1_x86_first8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1rnds4_epu32
    - raw
    - SIMD_4x32
    - Botan::sha1_x86_nexte
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_first8(SIMD_4x32& ABCD,\n                                                           SIMD_4x32&
      E,\n                                                           const SIMD_4x32&
      W0,\n                                                           const SIMD_4x32&
      W1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' ABCD'
    - ' E'
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: Botan::sha1_x86_rnds8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1rnds4_epu32
    - raw
    - SIMD_4x32
    - Botan::sha1_x86_nexte
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_rnds8(SIMD_4x32& ABCD,\n                                                          SIMD_4x32&
      E,\n                                                          const SIMD_4x32&
      W0,\n                                                          const SIMD_4x32&
      W1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::rev_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE rev_words(const SIMD_4x32& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:79,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:79,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:87,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:87,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:88,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:88,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:89,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:89,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:90,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:90,1
    - Dst: sha1_x86_first8<0>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:92,1
    - Dst: sha1_x86_rnds8<0>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:93,1
    - Dst: sha1_x86_msg1
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:95,1
    - Dst: sha1_x86_msg1
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:96,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:99,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:100,1
    - Dst: sha1_x86_rnds8<0, 1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:101,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:103,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:104,1
    - Dst: sha1_x86_rnds8<1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:105,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:107,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:108,1
    - Dst: sha1_x86_rnds8<1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:109,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:111,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:112,1
    - Dst: sha1_x86_rnds8<2>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:113,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:115,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:116,1
    - Dst: sha1_x86_rnds8<2>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:117,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:119,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:120,1
    - Dst: sha1_x86_rnds8<2, 3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:121,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:123,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:124,1
    - Dst: sha1_x86_rnds8<3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:125,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:127,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:128,1
    - Dst: sha1_x86_rnds8<3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:129,1
    - Dst: sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:132,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:138,1
    - Dst: _mm_extract_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:139,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 3
    argNames:
    - ' digest'
    - input_span
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 140
    functionName: Botan::BOTAN_FN_ISA_SHANI::sha1_compress_x86
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - sha1_x86_first8<0>
    - sha1_x86_next_msg
    - sha1_x86_rnds8<0>
    - Botan::SIMD_4x32::load_le
    - SIMD_4x32::raw
    - sha1_x86_rnds8<3>
    - rev_words
    - sha1_x86_rnds8<2, 3>
    - SIMD_4x32
    - sha1_x86_rnds8<2>
    - sha1_x86_nexte
    - sha1_x86_rnds8<1>
    - _mm_extract_epi32
    - sha1_x86_rnds8<0, 1>
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    - sha1_x86_msg1
    linkageType: ''
    returnType: void
    signature: "void BOTAN_FN_ISA_SHANI SHA_1::sha1_compress_x86(digest_type& digest,\n
      \                                                std::span<const uint8_t> input_span,\n
      \                                                size_t blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: _mm_sha1nexte_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan::sha1_x86_nexte
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 4
    functionsReached:
    - _mm_sha1nexte_epu32
    - SIMD_4x32
    - raw
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_x86_nexte(const SIMD_4x32& x, const SIMD_4x32&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::sha1_x86_msg1
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1msg1_epu32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_x86_msg1(const SIMD_4x32& W0, const SIMD_4x32&
      W1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: _mm_sha1msg2_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: Botan::sha1_x86_next_msg
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1msg2_epu32
    - raw
    - _mm_sha1msg1_epu32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_next_msg(const SIMD_4x32& W0,\n                                                             SIMD_4x32&
      W1,\n                                                             SIMD_4x32&
      W2,\n                                                             SIMD_4x32&
      W3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' ABCD'
    - ' E'
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan::sha1_x86_first8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1rnds4_epu32
    - raw
    - SIMD_4x32
    - Botan::sha1_x86_nexte
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_first8(SIMD_4x32& ABCD,\n                                                           SIMD_4x32&
      E,\n                                                           const SIMD_4x32&
      W0,\n                                                           const SIMD_4x32&
      W1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' ABCD'
    - ' E'
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: Botan::sha1_x86_rnds8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1rnds4_epu32
    - raw
    - SIMD_4x32
    - Botan::sha1_x86_nexte
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_rnds8(SIMD_4x32& ABCD,\n                                                          SIMD_4x32&
      E,\n                                                          const SIMD_4x32&
      W0,\n                                                          const SIMD_4x32&
      W1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::rev_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE rev_words(const SIMD_4x32& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: _mm_sha1nexte_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan::sha1_x86_nexte
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 6
    functionsReached:
    - _mm_sha1nexte_epu32
    - SIMD_4x32
    - raw
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_x86_nexte(const SIMD_4x32& x, const SIMD_4x32&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::sha1_x86_msg1
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1msg1_epu32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_x86_msg1(const SIMD_4x32& W0, const SIMD_4x32&
      W1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:37,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: _mm_sha1msg2_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: Botan::sha1_x86_next_msg
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1msg2_epu32
    - raw
    - _mm_sha1msg1_epu32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_next_msg(const SIMD_4x32& W0,\n                                                             SIMD_4x32&
      W1,\n                                                             SIMD_4x32&
      W2,\n                                                             SIMD_4x32&
      W3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:48,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' ABCD'
    - ' E'
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan::sha1_x86_first8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1rnds4_epu32
    - raw
    - SIMD_4x32
    - Botan::sha1_x86_nexte
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_first8(SIMD_4x32& ABCD,\n                                                           SIMD_4x32&
      E,\n                                                           const SIMD_4x32&
      W0,\n                                                           const SIMD_4x32&
      W1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:60,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' ABCD'
    - ' E'
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: Botan::sha1_x86_rnds8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha1rnds4_epu32
    - raw
    - SIMD_4x32
    - Botan::sha1_x86_nexte
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_x86_rnds8(SIMD_4x32& ABCD,\n                                                          SIMD_4x32&
      E,\n                                                          const SIMD_4x32&
      W0,\n                                                          const SIMD_4x32&
      W1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::rev_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE rev_words(const SIMD_4x32& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:79,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:79,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:87,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:87,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:88,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:88,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:89,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:89,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:90,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:90,1
    - Dst: sha1_x86_first8<0>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:92,1
    - Dst: sha1_x86_rnds8<0>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:93,1
    - Dst: sha1_x86_msg1
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:95,1
    - Dst: sha1_x86_msg1
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:96,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:99,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:100,1
    - Dst: sha1_x86_rnds8<0, 1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:101,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:103,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:104,1
    - Dst: sha1_x86_rnds8<1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:105,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:107,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:108,1
    - Dst: sha1_x86_rnds8<1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:109,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:111,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:112,1
    - Dst: sha1_x86_rnds8<2>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:113,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:115,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:116,1
    - Dst: sha1_x86_rnds8<2>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:117,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:119,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:120,1
    - Dst: sha1_x86_rnds8<2, 3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:121,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:123,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:124,1
    - Dst: sha1_x86_rnds8<3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:125,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:127,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:128,1
    - Dst: sha1_x86_rnds8<3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:129,1
    - Dst: sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:132,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:138,1
    - Dst: _mm_extract_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:139,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 3
    argNames:
    - ' digest'
    - input_span
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 140
    functionName: Botan::BOTAN_FN_ISA_SHANI::sha1_compress_x86
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - sha1_x86_first8<0>
    - sha1_x86_next_msg
    - sha1_x86_rnds8<0>
    - Botan::SIMD_4x32::load_le
    - SIMD_4x32::raw
    - sha1_x86_rnds8<3>
    - rev_words
    - sha1_x86_rnds8<2, 3>
    - SIMD_4x32
    - sha1_x86_rnds8<2>
    - sha1_x86_nexte
    - sha1_x86_rnds8<1>
    - _mm_extract_epi32
    - sha1_x86_rnds8<0, 1>
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    - sha1_x86_msg1
    linkageType: ''
    returnType: void
    signature: "void BOTAN_FN_ISA_SHANI SHA_1::sha1_compress_x86(digest_type& digest,\n
      \                                                std::span<const uint8_t> input_span,\n
      \                                                size_t blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:25,1
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:26,1
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:27,1
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:28,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:30,1
    - Dst: reinterpret_cast<const uint32_t*>
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:33,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:33,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:40,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:41,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:42,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:43,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:45,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:45,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:45,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:46,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:46,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:46,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:47,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:47,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:47,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:48,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:48,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:48,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:50,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:51,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:54,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:54,1
    - Dst: vsha1cq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:55,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:56,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:57,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:60,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:60,1
    - Dst: vsha1cq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:61,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:62,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:63,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:64,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:67,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:67,1
    - Dst: vsha1cq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:68,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:69,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:70,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:71,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:74,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:74,1
    - Dst: vsha1cq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:75,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:76,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:77,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:78,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:81,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:81,1
    - Dst: vsha1cq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:82,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:83,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:84,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:85,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:88,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:88,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:89,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:90,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:91,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:92,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:95,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:95,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:96,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:97,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:98,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:99,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:102,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:102,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:103,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:104,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:105,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:106,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:109,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:109,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:110,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:111,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:112,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:113,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:116,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:116,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:117,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:118,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:119,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:120,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:123,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:123,1
    - Dst: vsha1mq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:124,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:125,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:126,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:127,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:130,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:130,1
    - Dst: vsha1mq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:131,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:132,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:133,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:134,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:137,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:137,1
    - Dst: vsha1mq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:138,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:139,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:140,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:141,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:144,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:144,1
    - Dst: vsha1mq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:145,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:146,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:147,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:148,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:151,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:151,1
    - Dst: vsha1mq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:152,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:153,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:154,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:155,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:158,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:158,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:159,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:160,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:161,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:162,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:165,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:165,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:166,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:167,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:168,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:169,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:172,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:172,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:173,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:174,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:177,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:177,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:178,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:181,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:181,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:182,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:186,1
    - Dst: vst1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 103
    argCount: 3
    argNames:
    - ' digest'
    - input8
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 195
    functionName: Botan::BOTAN_FN_ISA_SHA2::sha1_armv8_compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp
    functionUses: 0
    functionsReached:
    - vdupq_n_u32
    - vrev32q_u8
    - vsha1su0q_u32
    - vsha1cq_u32
    - vsha1pq_u32
    - vsha1mq_u32
    - vgetq_lane_u32
    - reinterpret_cast<const uint32_t*>
    - vreinterpretq_u32_u8
    - vld1q_u32
    - vaddq_u32
    - vsha1su1q_u32
    - vst1q_u32
    - std::span<const uint8_t>::data
    - vsha1h_u32
    - vreinterpretq_u8_u32
    linkageType: ''
    returnType: void
    signature: "void BOTAN_FN_ISA_SHA2 SHA_1::sha1_armv8_compress_n(digest_type& digest,\n
      \                                                   std::span<const uint8_t>
      input8,\n                                                    size_t blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:25,1
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:26,1
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:27,1
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:28,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:30,1
    - Dst: reinterpret_cast<const uint32_t*>
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:33,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:33,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:40,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:41,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:42,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:43,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:45,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:45,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:45,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:46,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:46,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:46,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:47,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:47,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:47,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:48,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:48,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:48,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:50,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:51,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:54,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:54,1
    - Dst: vsha1cq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:55,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:56,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:57,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:60,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:60,1
    - Dst: vsha1cq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:61,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:62,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:63,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:64,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:67,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:67,1
    - Dst: vsha1cq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:68,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:69,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:70,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:71,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:74,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:74,1
    - Dst: vsha1cq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:75,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:76,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:77,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:78,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:81,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:81,1
    - Dst: vsha1cq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:82,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:83,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:84,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:85,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:88,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:88,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:89,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:90,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:91,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:92,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:95,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:95,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:96,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:97,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:98,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:99,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:102,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:102,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:103,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:104,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:105,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:106,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:109,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:109,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:110,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:111,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:112,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:113,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:116,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:116,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:117,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:118,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:119,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:120,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:123,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:123,1
    - Dst: vsha1mq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:124,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:125,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:126,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:127,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:130,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:130,1
    - Dst: vsha1mq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:131,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:132,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:133,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:134,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:137,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:137,1
    - Dst: vsha1mq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:138,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:139,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:140,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:141,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:144,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:144,1
    - Dst: vsha1mq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:145,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:146,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:147,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:148,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:151,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:151,1
    - Dst: vsha1mq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:152,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:153,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:154,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:155,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:158,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:158,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:159,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:160,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:161,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:162,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:165,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:165,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:166,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:167,1
    - Dst: vsha1su1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:168,1
    - Dst: vsha1su0q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:169,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:172,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:172,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:173,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:174,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:177,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:177,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:178,1
    - Dst: vsha1h_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:181,1
    - Dst: vgetq_lane_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:181,1
    - Dst: vsha1pq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:182,1
    - Dst: vaddq_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:186,1
    - Dst: vst1q_u32
      Src: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 103
    argCount: 3
    argNames:
    - ' digest'
    - input8
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 195
    functionName: Botan::BOTAN_FN_ISA_SHA2::sha1_armv8_compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_armv8/sha1_armv8.cpp
    functionUses: 0
    functionsReached:
    - vdupq_n_u32
    - vrev32q_u8
    - vsha1su0q_u32
    - vsha1cq_u32
    - vsha1pq_u32
    - vsha1mq_u32
    - vgetq_lane_u32
    - reinterpret_cast<const uint32_t*>
    - vreinterpretq_u32_u8
    - vld1q_u32
    - vaddq_u32
    - vsha1su1q_u32
    - vst1q_u32
    - std::span<const uint8_t>::data
    - vsha1h_u32
    - vreinterpretq_u8_u32
    linkageType: ''
    returnType: void
    signature: "void BOTAN_FN_ISA_SHA2 SHA_1::sha1_armv8_compress_n(digest_type& digest,\n
      \                                                   std::span<const uint8_t>
      input8,\n                                                    size_t blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:51,1
    - Dst: SIMD_4x32::shift_elems_right
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:53,1
    - Dst: SIMD_4x32::shift_elems_left
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:58,1
    - Dst: SIMD_4x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:61,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' XW0'
    - XW1
    - XW2
    - XW3
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 71
    functionName: Botan::sha1_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - SIMD_4x32::shift_elems_right
    - auto::rotl
    - SIMD_4x32::shift_elems_left
    - SIMD_4x32::rotl
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_simd_next_w(SIMD_4x32& XW0,\n                                                                     SIMD_4x32
      XW1,\n                                                                     SIMD_4x32
      XW2,\n                                                                     SIMD_4x32
      XW3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:51,1
    - Dst: SIMD_4x32::shift_elems_right
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:53,1
    - Dst: SIMD_4x32::shift_elems_left
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:58,1
    - Dst: SIMD_4x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:61,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' XW0'
    - XW1
    - XW2
    - XW3
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 71
    functionName: Botan::sha1_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - SIMD_4x32::shift_elems_right
    - auto::rotl
    - SIMD_4x32::shift_elems_left
    - SIMD_4x32::rotl
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_simd_next_w(SIMD_4x32& XW0,\n                                                                     SIMD_4x32
      XW1,\n                                                                     SIMD_4x32
      XW2,\n                                                                     SIMD_4x32
      XW3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:82,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:83,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:84,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:85,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:98,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:100,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:101,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:102,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:103,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:110,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:111,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:112,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:113,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:114,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:115,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:117,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:118,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:119,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:120,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:121,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:122,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:124,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:125,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:126,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:127,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:128,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:129,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:131,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:132,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:133,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:134,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:135,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:136,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:138,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:139,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:140,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:141,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:142,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:143,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:145,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:146,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:147,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:148,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:149,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:150,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:152,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:153,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:154,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:155,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:156,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:157,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:159,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:160,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:161,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:162,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:163,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:164,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:166,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:167,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:168,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:169,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:170,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:171,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:173,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:174,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:175,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:176,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:177,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:178,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:180,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:181,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:182,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:183,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:184,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:185,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:187,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:188,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:189,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:190,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:191,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:192,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:194,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:195,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:196,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:197,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:198,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:199,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:201,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:202,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:203,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:204,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:205,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:206,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:208,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:209,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:210,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:211,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:212,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:213,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:215,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:216,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:217,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:218,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:219,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:220,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:222,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:223,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:224,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:225,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:226,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:228,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:229,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:230,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:231,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:232,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:234,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:235,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:236,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:237,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:238,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:240,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:241,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:242,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:243,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 124
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 252
    functionName: Botan::BOTAN_FN_ISA_SIMD_4X32::simd_compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::store_le
    - sha1_simd_next_w
    - F3
    - Botan::SIMD_4x32::splat
    - BufferSlicer::take
    - F2
    - F1
    - F4
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_SIMD_4X32 SHA_1::simd_compress_n(digest_type& digest,
      std::span<const uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:51,1
    - Dst: SIMD_4x32::shift_elems_right
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:53,1
    - Dst: SIMD_4x32::shift_elems_left
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:58,1
    - Dst: SIMD_4x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:61,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' XW0'
    - XW1
    - XW2
    - XW3
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 71
    functionName: Botan::sha1_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - SIMD_4x32::shift_elems_right
    - auto::rotl
    - SIMD_4x32::shift_elems_left
    - SIMD_4x32::rotl
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_simd_next_w(SIMD_4x32& XW0,\n                                                                     SIMD_4x32
      XW1,\n                                                                     SIMD_4x32
      XW2,\n                                                                     SIMD_4x32
      XW3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:51,1
    - Dst: SIMD_4x32::shift_elems_right
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:53,1
    - Dst: SIMD_4x32::shift_elems_left
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:58,1
    - Dst: SIMD_4x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:61,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' XW0'
    - XW1
    - XW2
    - XW3
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 71
    functionName: Botan::sha1_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - SIMD_4x32::shift_elems_right
    - auto::rotl
    - SIMD_4x32::shift_elems_left
    - SIMD_4x32::rotl
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha1_simd_next_w(SIMD_4x32& XW0,\n                                                                     SIMD_4x32
      XW1,\n                                                                     SIMD_4x32
      XW2,\n                                                                     SIMD_4x32
      XW3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:82,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:83,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:84,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:85,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:98,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:100,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:101,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:102,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:103,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:110,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:111,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:112,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:113,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:114,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:115,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:117,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:118,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:119,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:120,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:121,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:122,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:124,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:125,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:126,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:127,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:128,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:129,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:131,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:132,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:133,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:134,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:135,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:136,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:138,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:139,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:140,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:141,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:142,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:143,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:145,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:146,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:147,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:148,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:149,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:150,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:152,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:153,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:154,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:155,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:156,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:157,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:159,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:160,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:161,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:162,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:163,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:164,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:166,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:167,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:168,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:169,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:170,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:171,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:173,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:174,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:175,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:176,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:177,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:178,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:180,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:181,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:182,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:183,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:184,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:185,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:187,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:188,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:189,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:190,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:191,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:192,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:194,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:195,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:196,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:197,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:198,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:199,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:201,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:202,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:203,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:204,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:205,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:206,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:208,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:209,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:210,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:211,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:212,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:213,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:215,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:216,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:217,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:218,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:219,1
    - Dst: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:220,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:222,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:223,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:224,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:225,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:226,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:228,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:229,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:230,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:231,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:232,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:234,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:235,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:236,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:237,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:238,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:240,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:241,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:242,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:243,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 124
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 252
    functionName: Botan::BOTAN_FN_ISA_SIMD_4X32::simd_compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::store_le
    - sha1_simd_next_w
    - F3
    - Botan::SIMD_4x32::splat
    - BufferSlicer::take
    - F2
    - F1
    - F4
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_SIMD_4X32 SHA_1::simd_compress_n(digest_type& digest,
      std::span<const uint8_t> input, size_t blocks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Threefish_512>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:21,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:24,1
    - Dst: Botan::Skein_512::initial_block
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:27,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - arg_output_bits
    - arg_personalization
    argTypes:
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: Botan::Skein_512::Skein_512
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Threefish_512>
    - Invalid_Argument
    - Botan::Skein_512::initial_block
    linkageType: ''
    returnType: void
    signature: void Skein_512::Skein_512(size_t arg_output_bits, std::string_view
      arg_personalization)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:31,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:32,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Botan::Skein_512::name
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - empty
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Skein_512::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Skein_512>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::Skein_512::new_object
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Skein_512>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Skein_512::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Skein_512>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: Botan::Skein_512::copy_state
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Skein_512>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Skein_512::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Skein_512::clear
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:51,1
    - Dst: Botan::Skein_512::initial_block
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::Skein_512::clear
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 1
    functionsReached:
    - Botan::Skein_512::initial_block
    - Botan::Skein_512::clear
    linkageType: ''
    returnType: void
    signature: void Skein_512::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:60,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:60,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - is_final
    argTypes:
    - type_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: Botan::Skein_512::reset_tweak
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void Skein_512::reset_tweak(type_code type, bool is_final)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:66,1
    - Dst: store_le
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:70,1
    - Dst: Botan::Skein_512::reset_tweak
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:72,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:73,1
    - Dst: empty
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:75,1
    - Dst: length
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:81,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:82,1
    - Dst: Botan::Skein_512::reset_tweak
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:85,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:86,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:86,1
    - Dst: Botan::Skein_512::reset_tweak
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 90
    functionName: Botan::Skein_512::initial_block
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 2
    functionsReached:
    - Invalid_Argument
    - Botan::Skein_512::reset_tweak
    - as_span_of_bytes
    - store_le
    - Botan::Skein_512::ubi_512
    - length
    - empty
    - set_key
    linkageType: ''
    returnType: void
    signature: void Skein_512::initial_block()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:97,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:97,1
    - Dst: load_le
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:100,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:100,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:100,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:104,1
    - Dst: skein_feedfwd
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:108,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:111,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:113,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 115
    functionName: Botan::Skein_512::ubi_512
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::subspan
    - static_cast<uint64_t>
    - load_le
    - skein_feedfwd
    - std::min<size_t>
    - std::span<const uint8_t>::empty
    - secure_vector::data
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void Skein_512::ubi_512(std::span<const uint8_t> msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:120,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:121,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:122,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:122,1
    - Dst: auto::size
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:122,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:125,1
    - Dst: aligned_data_to_process
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:126,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:128,1
    - Dst: data
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:128,1
    - Dst: size
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: Botan::Skein_512::add_data
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - aligned_data_to_process
    - data
    - auto::data
    - auto::size
    - size
    - Botan::Skein_512::ubi_512
    - handle_unaligned_data
    - BufferSlicer::empty
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void Skein_512::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:135,1
    - Dst: elements_in_buffer
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:137,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:138,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:139,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:139,1
    - Dst: Botan::Skein_512::reset_tweak
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:143,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:144,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:146,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:146,1
    - Dst: Botan::Skein_512::initial_block
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: Botan::Skein_512::final_result
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - consume
    - Botan::Skein_512::reset_tweak
    - copy_out_le
    - Botan::Skein_512::initial_block
    - fill_up_with_zeros
    - std::span<uint8_t>::first
    - Botan::Skein_512::ubi_512
    - elements_in_buffer
    linkageType: ''
    returnType: void
    signature: void Skein_512::final_result(std::span<uint8_t> out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Threefish_512>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:21,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:24,1
    - Dst: Botan::Skein_512::initial_block
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:27,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - arg_output_bits
    - arg_personalization
    argTypes:
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: Botan::Skein_512::Skein_512
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Threefish_512>
    - Invalid_Argument
    - Botan::Skein_512::initial_block
    linkageType: ''
    returnType: void
    signature: void Skein_512::Skein_512(size_t arg_output_bits, std::string_view
      arg_personalization)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:31,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:32,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Botan::Skein_512::name
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - empty
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Skein_512::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Skein_512>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::Skein_512::new_object
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Skein_512>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Skein_512::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Skein_512>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: Botan::Skein_512::copy_state
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Skein_512>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Skein_512::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Skein_512::clear
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:51,1
    - Dst: Botan::Skein_512::initial_block
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::Skein_512::clear
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 2
    functionsReached:
    - Botan::Skein_512::initial_block
    - Botan::Skein_512::clear
    linkageType: ''
    returnType: void
    signature: void Skein_512::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:60,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:60,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - is_final
    argTypes:
    - type_code
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: Botan::Skein_512::reset_tweak
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void Skein_512::reset_tweak(type_code type, bool is_final)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:66,1
    - Dst: store_le
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:70,1
    - Dst: Botan::Skein_512::reset_tweak
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:72,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:73,1
    - Dst: empty
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:75,1
    - Dst: length
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:81,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:82,1
    - Dst: Botan::Skein_512::reset_tweak
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:85,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:86,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:86,1
    - Dst: Botan::Skein_512::reset_tweak
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 90
    functionName: Botan::Skein_512::initial_block
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 5
    functionsReached:
    - Invalid_Argument
    - Botan::Skein_512::reset_tweak
    - as_span_of_bytes
    - store_le
    - Botan::Skein_512::ubi_512
    - length
    - empty
    - set_key
    linkageType: ''
    returnType: void
    signature: void Skein_512::initial_block()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:97,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:97,1
    - Dst: load_le
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:100,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:100,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:100,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:104,1
    - Dst: skein_feedfwd
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:108,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:111,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:113,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 115
    functionName: Botan::Skein_512::ubi_512
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 4
    functionsReached:
    - std::span<const uint8_t>::subspan
    - static_cast<uint64_t>
    - load_le
    - skein_feedfwd
    - std::min<size_t>
    - std::span<const uint8_t>::empty
    - secure_vector::data
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void Skein_512::ubi_512(std::span<const uint8_t> msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:120,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:121,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:122,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:122,1
    - Dst: auto::size
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:122,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:125,1
    - Dst: aligned_data_to_process
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:126,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:128,1
    - Dst: data
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:128,1
    - Dst: size
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: Botan::Skein_512::add_data
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - aligned_data_to_process
    - data
    - auto::data
    - auto::size
    - size
    - Botan::Skein_512::ubi_512
    - handle_unaligned_data
    - BufferSlicer::empty
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void Skein_512::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:135,1
    - Dst: elements_in_buffer
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:137,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:138,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:139,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:139,1
    - Dst: Botan::Skein_512::reset_tweak
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:143,1
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:144,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:146,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:146,1
    - Dst: Botan::Skein_512::initial_block
      Src: /src/botan/src/lib/hash/skein/skein_512.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: Botan::Skein_512::final_result
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - consume
    - Botan::Skein_512::reset_tweak
    - copy_out_le
    - Botan::Skein_512::initial_block
    - fill_up_with_zeros
    - std::span<uint8_t>::first
    - Botan::Skein_512::ubi_512
    - elements_in_buffer
    linkageType: ''
    returnType: void
    signature: void Skein_512::final_result(std::span<uint8_t> out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::Skein_512::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::Skein_512::output_length
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::Skein_512::ubi_512
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.h
    functionUses: 7
    functionsReached:
    - Botan::Skein_512::ubi_512
    linkageType: ''
    returnType: void
    signature: void ubi_512(const uint8_t msg[], size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::Skein_512::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::Skein_512::output_length
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Skein_512::ubi_512
      Src: /src/botan/src/lib/hash/skein/skein_512.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::Skein_512::ubi_512
    functionSourceFile: /src/botan/src/lib/hash/skein/skein_512.h
    functionUses: 8
    functionsReached:
    - Botan::Skein_512::ubi_512
    linkageType: ''
    returnType: void
    signature: void ubi_512(const uint8_t msg[], size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::poly_mul
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 63
    functionName: Botan::streebog_Ax_table
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_mul
    linkageType: ''
    returnType: std::array<std::array<uint64_t, 256>, 8>
    signature: std::array<std::array<uint64_t, 256>, 8> streebog_Ax_table() noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:105,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: Botan::force_le
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Botan::reverse_bytes
    - Botan::store_le
    - reinterpret_cast<uint8_t*>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t force_le(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:112,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:115,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:115,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:116,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:116,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:117,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:117,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:118,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - block
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: Botan::lps
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t*>
    - Botan::force_le
    linkageType: ''
    returnType: void
    signature: void lps(uint64_t block[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::poly_mul
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 63
    functionName: Botan::streebog_Ax_table
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_mul
    linkageType: ''
    returnType: std::array<std::array<uint64_t, 256>, 8>
    signature: std::array<std::array<uint64_t, 256>, 8> streebog_Ax_table() noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:105,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: Botan::force_le
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 1
    functionsReached:
    - Botan::reverse_bytes
    - Botan::store_le
    - reinterpret_cast<uint8_t*>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t force_le(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:112,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:115,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:115,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:116,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:116,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:117,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:117,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:118,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - block
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: Botan::lps
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t*>
    - Botan::force_le
    linkageType: ''
    returnType: void
    signature: void lps(uint64_t block[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Streebog>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: Botan::Streebog::copy_state
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Streebog>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Streebog::copy_state() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:130,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:130,1
    - Dst: Botan::Streebog::clear
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: Botan::Streebog::Streebog
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - Botan::Streebog::clear
    - fmt
    linkageType: ''
    returnType: void
    signature: void Streebog::Streebog(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: Botan::Streebog::name
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Streebog::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Streebog::clear
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:145,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:146,1
    - Dst: std::fill
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:149,1
    - Dst: begin
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:149,1
    - Dst: end
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: Botan::Streebog::clear
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 2
    functionsReached:
    - Botan::Streebog::clear
    - begin
    - std::fill
    - zeroise
    - end
    linkageType: ''
    returnType: void
    signature: void Streebog::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:158,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:159,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:160,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:160,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:164,1
    - Dst: next_aligned_block_to_process
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:165,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:166,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 171
    functionName: Botan::Streebog::add_data
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - next_aligned_block_to_process
    - handle_unaligned_data
    - BufferSlicer::empty
    - Botan::Streebog::compress
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void Streebog::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elements_in_buffer
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:177,1
    - Dst: append
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:180,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:181,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:183,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:183,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:186,1
    - Dst: store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:187,1
    - Dst: directly_modify_first
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:187,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:188,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:188,1
    - Dst: Botan::Streebog::compress_64
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:190,1
    - Dst: data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:190,1
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:192,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:192,1
    - Dst: Botan::Streebog::output_length
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:192,1
    - Dst: Botan::Streebog::output_length
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:192,1
    - Dst: Botan::Streebog::clear
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 194
    functionName: Botan::Streebog::final_result
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::Streebog::compress_64
    - std::span<uint8_t>::data
    - consume
    - directly_modify_first
    - Botan::Streebog::clear
    - store_le
    - append
    - fill_up_with_zeros
    - std::memcpy
    - Botan::Streebog::compress
    - Botan::Streebog::output_length
    - elements_in_buffer
    linkageType: ''
    returnType: void
    signature: void Streebog::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:198,1
    - Dst: Botan::Streebog::compress_64
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - last_block
    argTypes:
    - uint8_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: Botan::Streebog::compress
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 2
    functionsReached:
    - std::memcpy
    - Botan::Streebog::compress_64
    linkageType: ''
    returnType: void
    signature: void Streebog::compress(const uint8_t input[], bool last_block)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:204,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:209,1
    - Dst: data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:209,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:211,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:213,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:221,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:223,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:225,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:238,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:239,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:242,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - M
    - last_block
    argTypes:
    - uint64_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 248
    functionName: Botan::Streebog::compress_64
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 2
    functionsReached:
    - lps
    - data
    - force_le
    - copy_mem
    linkageType: ''
    returnType: void
    signature: void Streebog::compress_64(const uint64_t M[], bool last_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::poly_mul
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 63
    functionName: Botan::streebog_Ax_table
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_mul
    linkageType: ''
    returnType: std::array<std::array<uint64_t, 256>, 8>
    signature: std::array<std::array<uint64_t, 256>, 8> streebog_Ax_table() noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:105,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: Botan::force_le
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 2
    functionsReached:
    - Botan::reverse_bytes
    - Botan::store_le
    - reinterpret_cast<uint8_t*>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t force_le(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:112,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:115,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:115,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:116,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:116,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:117,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:117,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:118,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - block
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: Botan::lps
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t*>
    - Botan::force_le
    linkageType: ''
    returnType: void
    signature: void lps(uint64_t block[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::poly_mul
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 63
    functionName: Botan::streebog_Ax_table
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_mul
    linkageType: ''
    returnType: std::array<std::array<uint64_t, 256>, 8>
    signature: std::array<std::array<uint64_t, 256>, 8> streebog_Ax_table() noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:105,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: Botan::force_le
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 3
    functionsReached:
    - Botan::reverse_bytes
    - Botan::store_le
    - reinterpret_cast<uint8_t*>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t force_le(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:112,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:115,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:115,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:116,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:116,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:117,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:117,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:118,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - block
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: Botan::lps
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t*>
    - Botan::force_le
    linkageType: ''
    returnType: void
    signature: void lps(uint64_t block[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Streebog>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: Botan::Streebog::copy_state
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Streebog>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Streebog::copy_state() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:130,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:130,1
    - Dst: Botan::Streebog::clear
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: Botan::Streebog::Streebog
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - Botan::Streebog::clear
    - fmt
    linkageType: ''
    returnType: void
    signature: void Streebog::Streebog(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: Botan::Streebog::name
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Streebog::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Streebog::clear
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:145,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:146,1
    - Dst: std::fill
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:149,1
    - Dst: begin
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:149,1
    - Dst: end
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: Botan::Streebog::clear
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 5
    functionsReached:
    - Botan::Streebog::clear
    - begin
    - std::fill
    - zeroise
    - end
    linkageType: ''
    returnType: void
    signature: void Streebog::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:158,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:159,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:160,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:160,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:164,1
    - Dst: next_aligned_block_to_process
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:165,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:166,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 171
    functionName: Botan::Streebog::add_data
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - next_aligned_block_to_process
    - handle_unaligned_data
    - BufferSlicer::empty
    - Botan::Streebog::compress
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void Streebog::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elements_in_buffer
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:177,1
    - Dst: append
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:180,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:181,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:183,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:183,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:186,1
    - Dst: store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:187,1
    - Dst: directly_modify_first
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:187,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:188,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:188,1
    - Dst: Botan::Streebog::compress_64
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:190,1
    - Dst: data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:190,1
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:192,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:192,1
    - Dst: Botan::Streebog::output_length
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:192,1
    - Dst: Botan::Streebog::output_length
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:192,1
    - Dst: Botan::Streebog::clear
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 194
    functionName: Botan::Streebog::final_result
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::Streebog::compress_64
    - std::span<uint8_t>::data
    - consume
    - directly_modify_first
    - Botan::Streebog::clear
    - store_le
    - append
    - fill_up_with_zeros
    - std::memcpy
    - Botan::Streebog::compress
    - Botan::Streebog::output_length
    - elements_in_buffer
    linkageType: ''
    returnType: void
    signature: void Streebog::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:198,1
    - Dst: Botan::Streebog::compress_64
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - last_block
    argTypes:
    - uint8_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: Botan::Streebog::compress
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 4
    functionsReached:
    - std::memcpy
    - Botan::Streebog::compress_64
    linkageType: ''
    returnType: void
    signature: void Streebog::compress(const uint8_t input[], bool last_block)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:204,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:209,1
    - Dst: data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:209,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:211,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:213,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:221,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:223,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:225,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:238,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:239,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:242,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - M
    - last_block
    argTypes:
    - uint64_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 248
    functionName: Botan::Streebog::compress_64
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 4
    functionsReached:
    - lps
    - data
    - force_le
    - copy_mem
    linkageType: ''
    returnType: void
    signature: void Streebog::compress_64(const uint64_t M[], bool last_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan::Streebog::output_length
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Streebog>
      Src: /src/botan/src/lib/hash/streebog/streebog.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan::Streebog::new_object
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Streebog>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::Streebog::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan::Streebog::output_length
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Streebog>
      Src: /src/botan/src/lib/hash/streebog/streebog.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan::Streebog::new_object
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Streebog>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::Streebog::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::BLAKE2b::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::BLAKE2b::output_length
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::BLAKE2b::key_size
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t key_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::BLAKE2b::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::BLAKE2b::output_length
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::BLAKE2b::key_size
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t key_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:34,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:36,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan::BLAKE2b::BLAKE2b
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - Botan::BLAKE2b::state_init
    - size
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::BLAKE2b(size_t output_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:43,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:43,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:43,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:43,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:44,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:44,1
    - Dst: Botan::BLAKE2b::output_length
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:44,1
    - Dst: Botan::BLAKE2b::clear
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:48,1
    - Dst: append
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: Botan::BLAKE2b::state_init
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 1
    functionsReached:
    - data
    - copy_mem
    - append
    - size
    - Botan::BLAKE2b::output_length
    - Botan::BLAKE2b::clear
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::state_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:58,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:60,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:62,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    - M0
    - M1
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: Botan::G
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE G(uint64_t& a, uint64_t& b, uint64_t& c, uint64_t&
      d, uint64_t M0, uint64_t M1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:84,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:85,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:86,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:87,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:88,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:89,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:90,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - M
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: Botan::ROUND
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - Botan::G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE ROUND(uint64_t* v, const uint64_t* M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:58,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:60,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:62,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    - M0
    - M1
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: Botan::G
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 1
    functionsReached:
    - Botan::rotr
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE G(uint64_t& a, uint64_t& b, uint64_t& c, uint64_t&
      d, uint64_t M0, uint64_t M1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:84,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:85,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:86,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:87,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:88,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:89,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:90,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - M
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: Botan::ROUND
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - Botan::G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE ROUND(uint64_t* v, const uint64_t* M)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:105,1
    - Dst: ROUND<0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:120,1
    - Dst: ROUND<14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:121,1
    - Dst: ROUND<11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:122,1
    - Dst: ROUND<7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:123,1
    - Dst: ROUND<9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:124,1
    - Dst: ROUND<2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:125,1
    - Dst: ROUND<12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:126,1
    - Dst: ROUND<13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:127,1
    - Dst: ROUND<6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:128,1
    - Dst: ROUND<10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:129,1
    - Dst: ROUND<0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:130,1
    - Dst: ROUND<14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - input
    - blocks
    - increment
    argTypes:
    - uint8_t*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 137
    functionName: Botan::BLAKE2b::compress
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - ROUND<2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9>
    - load_le
    - ROUND<12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11>
    - ROUND<7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8>
    - ROUND<6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5>
    - ROUND<10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0>
    - ROUND<0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15>
    - ROUND<13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10>
    - ROUND<14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3>
    - ROUND<11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4>
    - ROUND<9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13>
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::compress(const uint8_t* input, size_t blocks, uint64_t
      increment)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:142,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:143,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:144,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:144,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:147,1
    - Dst: aligned_data_to_process
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:148,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:150,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: Botan::BLAKE2b::add_data
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - aligned_data_to_process
    - data
    - auto::data
    - Botan::BLAKE2b::compress
    - handle_unaligned_data
    - BufferSlicer::empty
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elements_in_buffer
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:157,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:158,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:161,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:161,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:162,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:162,1
    - Dst: Botan::BLAKE2b::output_length
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:162,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: Botan::BLAKE2b::final_result
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - copy_out_le
    - consume
    - Botan::BLAKE2b::compress
    - fill_up_with_zeros
    - std::span<uint8_t>::first
    - Botan::BLAKE2b::output_length
    - Botan::BLAKE2b::state_init
    - elements_in_buffer
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Length_Specification
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: Botan::BLAKE2b::key_spec
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - Key_Length_Specification
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification BLAKE2b::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: Botan::BLAKE2b::name
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string BLAKE2b::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<BLAKE2b>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: Botan::BLAKE2b::new_object
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<BLAKE2b>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> BLAKE2b::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<BLAKE2b>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: Botan::BLAKE2b::copy_state
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<BLAKE2b>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> BLAKE2b::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: Botan::BLAKE2b::has_keying_material
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BLAKE2b::has_keying_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:187,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:187,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:187,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:189,1
    - Dst: resize
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:190,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:190,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:192,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:193,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:194,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:197,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:197,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:197,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:197,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: Botan::BLAKE2b::key_schedule
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - Botan::BLAKE2b::state_init
    - copy_mem
    - size
    - clear_mem
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::key_schedule(std::span<const uint8_t> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:202,1
    - Dst: Botan::BLAKE2b::clear
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:203,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:204,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: Botan::BLAKE2b::clear
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 2
    functionsReached:
    - Botan::BLAKE2b::state_init
    - Botan::BLAKE2b::clear
    - zeroise
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:34,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:36,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan::BLAKE2b::BLAKE2b
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - Botan::BLAKE2b::state_init
    - size
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::BLAKE2b(size_t output_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:43,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:43,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:43,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:43,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:44,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:44,1
    - Dst: Botan::BLAKE2b::output_length
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:44,1
    - Dst: Botan::BLAKE2b::clear
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:48,1
    - Dst: append
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: Botan::BLAKE2b::state_init
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 5
    functionsReached:
    - data
    - copy_mem
    - append
    - size
    - Botan::BLAKE2b::output_length
    - Botan::BLAKE2b::clear
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::state_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:58,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:60,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:62,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    - M0
    - M1
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: Botan::G
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 2
    functionsReached:
    - Botan::rotr
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE G(uint64_t& a, uint64_t& b, uint64_t& c, uint64_t&
      d, uint64_t M0, uint64_t M1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:84,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:85,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:86,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:87,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:88,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:89,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:90,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - M
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: Botan::ROUND
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - Botan::G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE ROUND(uint64_t* v, const uint64_t* M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:58,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:60,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:62,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - ' a'
    - ' b'
    - ' c'
    - ' d'
    - M0
    - M1
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: Botan::G
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 3
    functionsReached:
    - Botan::rotr
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE G(uint64_t& a, uint64_t& b, uint64_t& c, uint64_t&
      d, uint64_t M0, uint64_t M1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:84,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:85,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:86,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:87,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:88,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:89,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:90,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - M
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: Botan::ROUND
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - Botan::G
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE ROUND(uint64_t* v, const uint64_t* M)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:105,1
    - Dst: ROUND<0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:120,1
    - Dst: ROUND<14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:121,1
    - Dst: ROUND<11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:122,1
    - Dst: ROUND<7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:123,1
    - Dst: ROUND<9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:124,1
    - Dst: ROUND<2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:125,1
    - Dst: ROUND<12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:126,1
    - Dst: ROUND<13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:127,1
    - Dst: ROUND<6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:128,1
    - Dst: ROUND<10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:129,1
    - Dst: ROUND<0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:130,1
    - Dst: ROUND<14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - input
    - blocks
    - increment
    argTypes:
    - uint8_t*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 137
    functionName: Botan::BLAKE2b::compress
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 2
    functionsReached:
    - ROUND<2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9>
    - load_le
    - ROUND<12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11>
    - ROUND<7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8>
    - ROUND<6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5>
    - ROUND<10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0>
    - ROUND<0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15>
    - ROUND<13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10>
    - ROUND<14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3>
    - ROUND<11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4>
    - ROUND<9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13>
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::compress(const uint8_t* input, size_t blocks, uint64_t
      increment)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:142,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:143,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:144,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:144,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:147,1
    - Dst: aligned_data_to_process
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:148,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:150,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: Botan::BLAKE2b::add_data
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - aligned_data_to_process
    - data
    - auto::data
    - Botan::BLAKE2b::compress
    - handle_unaligned_data
    - BufferSlicer::empty
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elements_in_buffer
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:157,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:158,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:161,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:161,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:162,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:162,1
    - Dst: Botan::BLAKE2b::output_length
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:162,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: Botan::BLAKE2b::final_result
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - copy_out_le
    - consume
    - Botan::BLAKE2b::compress
    - fill_up_with_zeros
    - std::span<uint8_t>::first
    - Botan::BLAKE2b::output_length
    - Botan::BLAKE2b::state_init
    - elements_in_buffer
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Length_Specification
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: Botan::BLAKE2b::key_spec
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - Key_Length_Specification
    linkageType: ''
    returnType: Key_Length_Specification
    signature: Key_Length_Specification BLAKE2b::key_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: Botan::BLAKE2b::name
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string BLAKE2b::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<BLAKE2b>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: Botan::BLAKE2b::new_object
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<BLAKE2b>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> BLAKE2b::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<BLAKE2b>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: Botan::BLAKE2b::copy_state
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<BLAKE2b>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> BLAKE2b::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: Botan::BLAKE2b::has_keying_material
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BLAKE2b::has_keying_material() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:187,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:187,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:187,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:189,1
    - Dst: resize
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:190,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:190,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:192,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:193,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:194,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:197,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:197,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:197,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:197,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: Botan::BLAKE2b::key_schedule
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - Botan::BLAKE2b::state_init
    - copy_mem
    - size
    - clear_mem
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::key_schedule(std::span<const uint8_t> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:202,1
    - Dst: Botan::BLAKE2b::clear
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:203,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:204,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: Botan::BLAKE2b::clear
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 4
    functionsReached:
    - Botan::BLAKE2b::state_init
    - Botan::BLAKE2b::clear
    - zeroise
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 4
    argNames:
    - input
    - length
    - ' S1'
    - ' S2'
    argTypes:
    - uint8_t[]
    - size_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 64
    functionName: Botan::adler32_update
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void adler32_update(const uint8_t input[], size_t length, uint16_t&
      S1, uint16_t& S2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 4
    argNames:
    - input
    - length
    - ' S1'
    - ' S2'
    argTypes:
    - uint8_t[]
    - size_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 64
    functionName: Botan::adler32_update
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void adler32_update(const uint8_t input[], size_t length, uint16_t&
      S1, uint16_t& S2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:74,1
    - Dst: adler32_update
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:75,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:75,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:76,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:76,1
    - Dst: adler32_update
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:79,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:79,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan::Adler32::add_data
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp
    functionUses: 0
    functionsReached:
    - adler32_update
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::last
    linkageType: ''
    returnType: void
    signature: void Adler32::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:86,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:86,1
    - Dst: Botan::Adler32::clear
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: Botan::Adler32::final_result
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp
    functionUses: 0
    functionsReached:
    - Botan::Adler32::clear
    - std::span<uint8_t>::data
    - store_be
    linkageType: ''
    returnType: void
    signature: void Adler32::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Adler32>
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::Adler32::copy_state
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Adler32>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Adler32::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 4
    argNames:
    - input
    - length
    - ' S1'
    - ' S2'
    argTypes:
    - uint8_t[]
    - size_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 64
    functionName: Botan::adler32_update
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void adler32_update(const uint8_t input[], size_t length, uint16_t&
      S1, uint16_t& S2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 4
    argNames:
    - input
    - length
    - ' S1'
    - ' S2'
    argTypes:
    - uint8_t[]
    - size_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 64
    functionName: Botan::adler32_update
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void adler32_update(const uint8_t input[], size_t length, uint16_t&
      S1, uint16_t& S2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:74,1
    - Dst: adler32_update
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:75,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:75,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:76,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:76,1
    - Dst: adler32_update
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:79,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:79,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan::Adler32::add_data
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp
    functionUses: 0
    functionsReached:
    - adler32_update
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::last
    linkageType: ''
    returnType: void
    signature: void Adler32::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:86,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:86,1
    - Dst: Botan::Adler32::clear
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: Botan::Adler32::final_result
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp
    functionUses: 0
    functionsReached:
    - Botan::Adler32::clear
    - std::span<uint8_t>::data
    - store_be
    linkageType: ''
    returnType: void
    signature: void Adler32::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Adler32>
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::Adler32::copy_state
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Adler32>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Adler32::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan::Adler32::name
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::Adler32::output_length
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Adler32>
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::Adler32::new_object
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Adler32>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: Botan::Adler32::clear
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan::Adler32::name
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::Adler32::output_length
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Adler32>
      Src: /src/botan/src/lib/hash/checksum/adler32/adler32.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::Adler32::new_object
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Adler32>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: Botan::Adler32::clear
    functionSourceFile: /src/botan/src/lib/hash/checksum/adler32/adler32.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan::CRC32::name
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::CRC32::output_length
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CRC32>
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::CRC32::new_object
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.h
    functionUses: 0
    functionsReached:
    - std::make_unique<CRC32>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::CRC32::clear
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan::CRC32::name
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::CRC32::output_length
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CRC32>
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::CRC32::new_object
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.h
    functionUses: 0
    functionsReached:
    - std::make_unique<CRC32>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::CRC32::clear
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:54,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:54,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 78
    functionName: Botan::CRC32::add_data
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::last
    linkageType: ''
    returnType: void
    signature: void CRC32::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:85,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:85,1
    - Dst: Botan::CRC32::clear
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: Botan::CRC32::final_result
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp
    functionUses: 0
    functionsReached:
    - Botan::CRC32::clear
    - std::span<uint8_t>::data
    - store_be
    linkageType: ''
    returnType: void
    signature: void CRC32::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CRC32>
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::CRC32::copy_state
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CRC32>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> CRC32::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:54,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:54,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 78
    functionName: Botan::CRC32::add_data
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::last
    linkageType: ''
    returnType: void
    signature: void CRC32::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:85,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:85,1
    - Dst: Botan::CRC32::clear
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: Botan::CRC32::final_result
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp
    functionUses: 0
    functionsReached:
    - Botan::CRC32::clear
    - std::span<uint8_t>::data
    - store_be
    linkageType: ''
    returnType: void
    signature: void CRC32::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CRC32>
      Src: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Botan::CRC32::copy_state
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc32/crc32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CRC32>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> CRC32::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan::CRC24::name
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan::CRC24::output_length
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CRC24>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan::CRC24::new_object
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.h
    functionUses: 0
    functionsReached:
    - std::make_unique<CRC24>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::CRC24::clear
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: Botan::CRC24::name
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: Botan::CRC24::output_length
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CRC24>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: Botan::CRC24::new_object
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.h
    functionUses: 0
    functionsReached:
    - std::make_unique<CRC24>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::CRC24::clear
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crc
    - data
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Botan::process8
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t process8(uint32_t crc, uint8_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crc
    - word
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: Botan::process32
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t process32(uint32_t crc, uint32_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crc
    - data
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Botan::process8
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t process8(uint32_t crc, uint8_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crc
    - word
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: Botan::process32
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t process32(uint32_t crc, uint32_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CRC24>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: Botan::CRC24::copy_state
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CRC24>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> CRC24::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:181,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:181,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:181,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:181,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:181,1
    - Dst: process8
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:182,1
    - Dst: std::span<const uint8_t>::front
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:182,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:185,1
    - Dst: load_le
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:187,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:187,1
    - Dst: process32
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:188,1
    - Dst: process32
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:189,1
    - Dst: process32
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:190,1
    - Dst: process32
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:191,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:193,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:193,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:196,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:196,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:196,1
    - Dst: process8
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:197,1
    - Dst: std::span<const uint8_t>::front
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 201
    functionName: Botan::CRC24::add_data
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::front
    - load_le
    - process32
    - std::span<const uint8_t>::last
    - reinterpret_cast<uintptr_t>
    - process8
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void CRC24::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:207,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:208,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:209,1
    - Dst: Botan::CRC24::clear
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: Botan::CRC24::final_result
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - get_byte<2>
    - get_byte<3>
    - Botan::CRC24::clear
    linkageType: ''
    returnType: void
    signature: void CRC24::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crc
    - data
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Botan::process8
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t process8(uint32_t crc, uint8_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crc
    - word
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: Botan::process32
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t process32(uint32_t crc, uint32_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crc
    - data
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Botan::process8
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t process8(uint32_t crc, uint8_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:148,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crc
    - word
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: Botan::process32
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t process32(uint32_t crc, uint32_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<CRC24>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: Botan::CRC24::copy_state
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<CRC24>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> CRC24::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:181,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:181,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:181,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:181,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:181,1
    - Dst: process8
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:182,1
    - Dst: std::span<const uint8_t>::front
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:182,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:185,1
    - Dst: load_le
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:187,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:187,1
    - Dst: process32
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:188,1
    - Dst: process32
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:189,1
    - Dst: process32
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:190,1
    - Dst: process32
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:191,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:193,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:193,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:196,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:196,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:196,1
    - Dst: process8
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:197,1
    - Dst: std::span<const uint8_t>::front
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 201
    functionName: Botan::CRC24::add_data
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::front
    - load_le
    - process32
    - std::span<const uint8_t>::last
    - reinterpret_cast<uintptr_t>
    - process8
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void CRC24::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:207,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:208,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:209,1
    - Dst: Botan::CRC24::clear
      Src: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: Botan::CRC24::final_result
    functionSourceFile: /src/botan/src/lib/hash/checksum/crc24/crc24.cpp
    functionUses: 0
    functionsReached:
    - get_byte<1>
    - get_byte<2>
    - get_byte<3>
    - Botan::CRC24::clear
    linkageType: ''
    returnType: void
    signature: void CRC24::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:32,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:32,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:34,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:34,1
    - Dst: Botan::sigma
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:35,1
    - Dst: Botan::sigma
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 13
    argNames:
    - A
    - B
    - C
    - ' D'
    - E
    - F
    - G
    - ' H'
    - ' M1'
    - M2
    - M3
    - M4
    - magic
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: Botan::SHA2_32_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h
    functionUses: 0
    functionsReached:
    - Botan::sigma
    - Botan::choose
    - Botan::majority
    - Botan::rho
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE SHA2_32_F(uint32_t A,\n                                  uint32_t
      B,\n                                  uint32_t C,\n                                  uint32_t&
      D,\n                                  uint32_t E,\n                                  uint32_t
      F,\n                                  uint32_t G,\n                                  uint32_t&
      H,\n                                  uint32_t& M1,\n                                  uint32_t
      M2,\n                                  uint32_t M3,\n                                  uint32_t
      M4,\n                                  uint32_t magic)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:43,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:43,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:45,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - A
    - B
    - C
    - ' D'
    - E
    - F
    - G
    - ' H'
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: Botan::SHA2_32_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h
    functionUses: 0
    functionsReached:
    - Botan::choose
    - Botan::majority
    - Botan::rho
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE SHA2_32_F(\n   uint32_t A, uint32_t B, uint32_t
      C, uint32_t& D, uint32_t E, uint32_t F, uint32_t G, uint32_t& H, uint32_t M)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:32,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:32,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:34,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:34,1
    - Dst: Botan::sigma
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:35,1
    - Dst: Botan::sigma
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 13
    argNames:
    - A
    - B
    - C
    - ' D'
    - E
    - F
    - G
    - ' H'
    - ' M1'
    - M2
    - M3
    - M4
    - magic
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: Botan::SHA2_32_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h
    functionUses: 0
    functionsReached:
    - Botan::sigma
    - Botan::choose
    - Botan::majority
    - Botan::rho
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE SHA2_32_F(uint32_t A,\n                                  uint32_t
      B,\n                                  uint32_t C,\n                                  uint32_t&
      D,\n                                  uint32_t E,\n                                  uint32_t
      F,\n                                  uint32_t G,\n                                  uint32_t&
      H,\n                                  uint32_t& M1,\n                                  uint32_t
      M2,\n                                  uint32_t M3,\n                                  uint32_t
      M4,\n                                  uint32_t magic)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:43,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:43,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:45,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - A
    - B
    - C
    - ' D'
    - E
    - F
    - G
    - ' H'
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: Botan::SHA2_32_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h
    functionUses: 0
    functionsReached:
    - Botan::choose
    - Botan::majority
    - Botan::rho
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE SHA2_32_F(\n   uint32_t A, uint32_t B, uint32_t
      C, uint32_t& D, uint32_t E, uint32_t F, uint32_t G, uint32_t& H, uint32_t M)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::SHA_224::name
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::SHA_224::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::SHA_224::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_224::clear
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::SHA_224::clear
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 1
    functionsReached:
    - Botan::SHA_224::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::SHA_256::name
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan::SHA_256::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::SHA_256::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_256::clear
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan::SHA_256::clear
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 1
    functionsReached:
    - Botan::SHA_256::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::SHA_224::name
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::SHA_224::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::SHA_224::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_224::clear
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::SHA_224::clear
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 2
    functionsReached:
    - Botan::SHA_224::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::SHA_256::name
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan::SHA_256::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::SHA_256::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_256::clear
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan::SHA_256::clear
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.h
    functionUses: 2
    functionsReached:
    - Botan::SHA_256::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:26,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:32,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:38,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 50
    functionName: Botan::sha256_provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string sha256_provider()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:26,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:32,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:38,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 50
    functionName: Botan::sha256_provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string sha256_provider()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:61,1
    - Dst: Botan::BOTAN_FN_ISA_SHANI::compress_digest_x86
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:62,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:67,1
    - Dst: Botan::BOTAN_FN_ISA_SHA2::compress_digest_armv8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:68,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:73,1
    - Dst: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest_x86_avx2
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:74,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:79,1
    - Dst: Botan::SHA_256::compress_digest_x86_simd
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:80,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:98,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:98,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:102,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:103,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:104,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:105,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:106,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:107,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:108,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:109,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:110,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:111,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:112,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:113,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:114,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:115,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:116,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:117,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:119,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:120,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:121,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:122,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:123,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:124,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:125,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:126,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:127,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:128,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:129,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:130,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:131,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:132,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:133,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:134,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:136,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:137,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:138,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:139,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:140,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:141,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:142,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:143,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:144,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:145,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:146,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:147,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:148,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:149,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:150,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:151,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:153,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:154,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:155,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:156,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:157,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:158,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:159,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:160,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:161,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:162,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:163,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:164,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:165,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:166,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:167,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 88
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 181
    functionName: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - Botan::SHA_256::compress_digest_x86_simd
    - load_be
    - Botan::BOTAN_FN_ISA_SHA2::compress_digest_armv8
    - BufferSlicer::take
    - Botan::BOTAN_FN_ISA_SHANI::compress_digest_x86
    - SHA2_32_F
    - Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest_x86_avx2
    - has
    linkageType: ''
    returnType: void
    signature: "void BOTAN_SCRUB_STACK_AFTER_RETURN SHA_256::compress_digest(digest_type&
      digest,\n                                                             std::span<const
      uint8_t> input,\n                                                             size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_provider
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: Botan::SHA_224::provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - sha256_provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_224::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Botan::SHA_224::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
    linkageType: ''
    returnType: void
    signature: void SHA_224::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Botan::SHA_224::init
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_224::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_224>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Botan::SHA_224::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_224>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_224::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_224>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan::SHA_224::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_224>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_224::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan::SHA_224::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_224::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: Botan::SHA_224::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_224::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_provider
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: Botan::SHA_256::provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - sha256_provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_256::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: Botan::SHA_256::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
    linkageType: ''
    returnType: void
    signature: void SHA_256::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: Botan::SHA_256::init
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_256::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: Botan::SHA_256::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_256::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: Botan::SHA_256::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_256::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: Botan::SHA_256::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_256::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: Botan::SHA_256::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_256::final_result(std::span<uint8_t> output)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:26,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:32,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:38,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 50
    functionName: Botan::sha256_provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string sha256_provider()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:26,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:32,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:38,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 50
    functionName: Botan::sha256_provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string sha256_provider()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:61,1
    - Dst: Botan::BOTAN_FN_ISA_SHANI::compress_digest_x86
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:62,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:67,1
    - Dst: Botan::BOTAN_FN_ISA_SHA2::compress_digest_armv8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:68,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:73,1
    - Dst: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest_x86_avx2
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:74,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:79,1
    - Dst: Botan::SHA_256::compress_digest_x86_simd
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:80,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:98,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:98,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:102,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:103,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:104,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:105,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:106,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:107,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:108,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:109,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:110,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:111,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:112,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:113,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:114,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:115,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:116,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:117,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:119,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:120,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:121,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:122,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:123,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:124,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:125,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:126,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:127,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:128,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:129,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:130,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:131,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:132,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:133,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:134,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:136,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:137,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:138,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:139,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:140,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:141,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:142,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:143,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:144,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:145,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:146,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:147,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:148,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:149,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:150,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:151,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:153,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:154,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:155,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:156,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:157,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:158,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:159,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:160,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:161,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:162,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:163,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:164,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:165,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:166,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:167,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 88
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 181
    functionName: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 2
    functionsReached:
    - Botan::SHA_256::compress_digest_x86_simd
    - load_be
    - Botan::BOTAN_FN_ISA_SHA2::compress_digest_armv8
    - BufferSlicer::take
    - Botan::BOTAN_FN_ISA_SHANI::compress_digest_x86
    - SHA2_32_F
    - Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest_x86_avx2
    - has
    linkageType: ''
    returnType: void
    signature: "void BOTAN_SCRUB_STACK_AFTER_RETURN SHA_256::compress_digest(digest_type&
      digest,\n                                                             std::span<const
      uint8_t> input,\n                                                             size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_provider
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: Botan::SHA_224::provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - sha256_provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_224::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Botan::SHA_224::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
    linkageType: ''
    returnType: void
    signature: void SHA_224::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Botan::SHA_224::init
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_224::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_224>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Botan::SHA_224::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_224>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_224::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_224>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan::SHA_224::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_224>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_224::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan::SHA_224::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_224::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: Botan::SHA_224::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_224::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_provider
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: Botan::SHA_256::provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - sha256_provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_256::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: Botan::SHA_256::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
    linkageType: ''
    returnType: void
    signature: void SHA_256::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: Botan::SHA_256::init
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_256::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: Botan::SHA_256::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_256::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: Botan::SHA_256::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_256::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: Botan::SHA_256::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_256::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: Botan::SHA_256::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_256::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - _mm_alignr_epi8
    - raw
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr4(const SIMD_4x32& a, const SIMD_4x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    - Dst: _mm_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_srli_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shr64(const SIMD_4x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shuffle_32(const SIMD_4x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_alignr_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr4(const SIMD_8x32& a, const SIMD_8x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    - Dst: _mm256_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_srli_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shr64(const SIMD_8x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32
    - _mm256_shuffle_epi32
    - raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shuffle_32(const SIMD_8x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_T
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:58,1
    - Dst: SIMD_T
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:59,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:61,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:62,1
    - Dst: auto::template shl<32 - sigma0_1>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:64,1
    - Dst: auto::template shr<sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:65,1
    - Dst: auto::template shr<sigma0_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:66,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:69,1
    - Dst: auto::template shr<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:70,1
    - Dst: auto::template shl<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:72,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:73,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:74,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:78,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:79,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:81,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:82,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:83,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:85,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: Botan::next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::template shl<32 - sigma0_1>
    - auto::template shl<sigma0_1 - sigma0_0>
    - auto::template shr<sigma1_2>
    - SIMD_T
    - Botan::shr64
    - auto::template shr<sigma0_0>
    - Botan::shuffle_32
    - Botan::alignr4
    - Botan::SIMD_4x32::byte_shuffle
    - auto::template shr<sigma0_2>
    - auto::template shr<sigma0_1 - sigma0_0>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 next_w(SIMD_T x[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - _mm_alignr_epi8
    - raw
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr4(const SIMD_4x32& a, const SIMD_4x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    - Dst: _mm_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_srli_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shr64(const SIMD_4x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shuffle_32(const SIMD_4x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_alignr_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr4(const SIMD_8x32& a, const SIMD_8x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    - Dst: _mm256_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_srli_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shr64(const SIMD_8x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - SIMD_8x32
    - _mm256_shuffle_epi32
    - raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shuffle_32(const SIMD_8x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_T
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:58,1
    - Dst: SIMD_T
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:59,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:61,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:62,1
    - Dst: auto::template shl<32 - sigma0_1>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:64,1
    - Dst: auto::template shr<sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:65,1
    - Dst: auto::template shr<sigma0_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:66,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:69,1
    - Dst: auto::template shr<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:70,1
    - Dst: auto::template shl<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:72,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:73,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:74,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:78,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:79,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:81,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:82,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:83,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:85,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: Botan::next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::template shl<32 - sigma0_1>
    - auto::template shl<sigma0_1 - sigma0_0>
    - auto::template shr<sigma1_2>
    - SIMD_T
    - Botan::shr64
    - auto::template shr<sigma0_0>
    - Botan::shuffle_32
    - Botan::alignr4
    - Botan::SIMD_4x32::byte_shuffle
    - auto::template shr<sigma0_2>
    - auto::template shr<sigma0_1 - sigma0_0>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 next_w(SIMD_T x[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:127,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:133,1
    - Dst: Botan::SIMD_8x32::load_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:134,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:135,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:142,1
    - Dst: Botan::SIMD_8x32::load_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:142,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:144,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:145,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:146,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:147,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:149,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:151,1
    - Dst: Botan::SIMD_8x32::load_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:151,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:153,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:154,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:155,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:156,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:158,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:160,1
    - Dst: Botan::SIMD_8x32::load_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:160,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:162,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:163,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:164,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:165,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:167,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:169,1
    - Dst: Botan::SIMD_8x32::load_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:169,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:171,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:172,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:173,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:174,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:176,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:179,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:180,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:181,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:182,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:183,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:184,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:185,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:186,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:187,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:188,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:189,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:190,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:191,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:192,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:193,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:194,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:206,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:207,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:208,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:209,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:210,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:211,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:212,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:213,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:214,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:215,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:216,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:217,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:218,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:219,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:220,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:221,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:223,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:224,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:225,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:226,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:227,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:228,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:229,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:230,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:231,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:232,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:233,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:234,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:235,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:236,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:237,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:238,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:240,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:241,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:242,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:243,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:244,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:245,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:246,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:247,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:248,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:249,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:250,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:251,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:252,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:253,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:254,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:255,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:257,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:258,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:259,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:260,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:261,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:262,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:263,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:264,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:265,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:266,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:267,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:268,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:269,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:270,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:271,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:272,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:288,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:289,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:290,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:297,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:297,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:299,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:300,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:301,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:302,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:304,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:306,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:306,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:308,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:309,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:310,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:311,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:313,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:315,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:315,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:317,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:318,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:319,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:320,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:322,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:324,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:324,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:326,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:327,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:328,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:329,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:331,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:334,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:335,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:336,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:337,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:338,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:339,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:340,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:341,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:342,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:343,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:344,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:345,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:346,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:347,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:348,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 187
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 360
    functionName: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest_x86_avx2
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - Botan::SIMD_8x32::load_be128
    - Botan::SIMD_4x32::load_le
    - auto::store_le
    - auto::store_le128
    - Botan::SIMD_8x32::load_le128
    - next_w
    - SHA2_32_F
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: "BOTAN_FN_ISA_AVX2_BMI2 BOTAN_SCRUB_STACK_AFTER_RETURN void SHA_256::compress_digest_x86_avx2(\n
      \  digest_type& digest, std::span<const uint8_t> input, size_t blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - _mm_alignr_epi8
    - raw
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr4(const SIMD_4x32& a, const SIMD_4x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    - Dst: _mm_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_srli_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shr64(const SIMD_4x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shuffle_32(const SIMD_4x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_alignr_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr4(const SIMD_8x32& a, const SIMD_8x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    - Dst: _mm256_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_srli_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shr64(const SIMD_8x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - SIMD_8x32
    - _mm256_shuffle_epi32
    - raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shuffle_32(const SIMD_8x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_T
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:58,1
    - Dst: SIMD_T
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:59,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:61,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:62,1
    - Dst: auto::template shl<32 - sigma0_1>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:64,1
    - Dst: auto::template shr<sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:65,1
    - Dst: auto::template shr<sigma0_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:66,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:69,1
    - Dst: auto::template shr<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:70,1
    - Dst: auto::template shl<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:72,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:73,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:74,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:78,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:79,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:81,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:82,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:83,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:85,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: Botan::next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::template shl<32 - sigma0_1>
    - auto::template shl<sigma0_1 - sigma0_0>
    - auto::template shr<sigma1_2>
    - SIMD_T
    - Botan::shr64
    - auto::template shr<sigma0_0>
    - Botan::shuffle_32
    - Botan::alignr4
    - Botan::SIMD_4x32::byte_shuffle
    - auto::template shr<sigma0_2>
    - auto::template shr<sigma0_1 - sigma0_0>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 next_w(SIMD_T x[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - _mm_alignr_epi8
    - raw
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr4(const SIMD_4x32& a, const SIMD_4x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    - Dst: _mm_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_srli_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shr64(const SIMD_4x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shuffle_32(const SIMD_4x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_alignr_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr4(const SIMD_8x32& a, const SIMD_8x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    - Dst: _mm256_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_srli_epi64
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shr64(const SIMD_8x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - SIMD_8x32
    - _mm256_shuffle_epi32
    - raw
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 shuffle_32(const SIMD_8x32& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_T
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:58,1
    - Dst: SIMD_T
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:59,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:61,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:62,1
    - Dst: auto::template shl<32 - sigma0_1>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:64,1
    - Dst: auto::template shr<sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:65,1
    - Dst: auto::template shr<sigma0_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:66,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:69,1
    - Dst: auto::template shr<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:70,1
    - Dst: auto::template shl<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:72,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:73,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:74,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:78,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:79,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:81,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:82,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:83,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:85,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: Botan::next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::template shl<32 - sigma0_1>
    - auto::template shl<sigma0_1 - sigma0_0>
    - auto::template shr<sigma1_2>
    - SIMD_T
    - Botan::shr64
    - auto::template shr<sigma0_0>
    - Botan::shuffle_32
    - Botan::alignr4
    - Botan::SIMD_4x32::byte_shuffle
    - auto::template shr<sigma0_2>
    - auto::template shr<sigma0_1 - sigma0_0>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 next_w(SIMD_T x[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:127,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:133,1
    - Dst: Botan::SIMD_8x32::load_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:134,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:135,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:142,1
    - Dst: Botan::SIMD_8x32::load_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:142,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:144,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:145,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:146,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:147,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:149,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:151,1
    - Dst: Botan::SIMD_8x32::load_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:151,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:153,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:154,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:155,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:156,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:158,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:160,1
    - Dst: Botan::SIMD_8x32::load_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:160,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:162,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:163,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:164,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:165,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:167,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:169,1
    - Dst: Botan::SIMD_8x32::load_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:169,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:171,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:172,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:173,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:174,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:176,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:179,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:180,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:181,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:182,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:183,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:184,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:185,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:186,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:187,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:188,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:189,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:190,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:191,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:192,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:193,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:194,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:206,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:207,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:208,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:209,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:210,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:211,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:212,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:213,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:214,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:215,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:216,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:217,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:218,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:219,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:220,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:221,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:223,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:224,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:225,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:226,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:227,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:228,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:229,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:230,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:231,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:232,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:233,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:234,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:235,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:236,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:237,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:238,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:240,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:241,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:242,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:243,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:244,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:245,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:246,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:247,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:248,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:249,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:250,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:251,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:252,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:253,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:254,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:255,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:257,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:258,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:259,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:260,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:261,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:262,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:263,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:264,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:265,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:266,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:267,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:268,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:269,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:270,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:271,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:272,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:288,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:289,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:290,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:297,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:297,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:299,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:300,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:301,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:302,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:304,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:306,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:306,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:308,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:309,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:310,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:311,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:313,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:315,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:315,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:317,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:318,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:319,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:320,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:322,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:324,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:324,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:326,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:327,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:328,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:329,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:331,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:334,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:335,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:336,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:337,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:338,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:339,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:340,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:341,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:342,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:343,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:344,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:345,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:346,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:347,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:348,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 187
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 360
    functionName: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest_x86_avx2
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - Botan::SIMD_8x32::load_be128
    - Botan::SIMD_4x32::load_le
    - auto::store_le
    - auto::store_le128
    - Botan::SIMD_8x32::load_le128
    - next_w
    - SHA2_32_F
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: "BOTAN_FN_ISA_AVX2_BMI2 BOTAN_SCRUB_STACK_AFTER_RETURN void SHA_256::compress_digest_x86_avx2(\n
      \  digest_type& digest, std::span<const uint8_t> input, size_t blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:18,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:19,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:21,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:22,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:24,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:25,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:33,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_4x32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: Botan::sha256_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp
    functionUses: 0
    functionsReached:
    - auto::shr
    - Botan::SIMD_4x32::alignr4
    - auto::rotr
    - Botan::SIMD_4x32::byte_shuffle
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_SIMD_4X32
    signature: BOTAN_FN_ISA_SIMD_4X32 sha256_simd_next_w(SIMD_4x32 x[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:18,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:19,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:21,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:22,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:24,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:25,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:33,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_4x32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: Botan::sha256_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp
    functionUses: 0
    functionsReached:
    - auto::shr
    - Botan::SIMD_4x32::alignr4
    - auto::rotr
    - Botan::SIMD_4x32::byte_shuffle
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_SIMD_4X32
    signature: BOTAN_FN_ISA_SIMD_4X32 sha256_simd_next_w(SIMD_4x32 x[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:75,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:81,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:82,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:83,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:90,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:90,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:92,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:93,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:94,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:95,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:97,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:99,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:99,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:101,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:102,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:103,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:104,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:106,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:108,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:108,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:110,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:111,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:112,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:113,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:115,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:117,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:117,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:119,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:120,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:121,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:122,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:124,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:127,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:128,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:129,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:130,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:131,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:132,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:133,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:134,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:135,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:136,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:137,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:138,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:139,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:140,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:141,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 58
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 153
    functionName: Botan::SHA_256::compress_digest_x86_simd
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp
    functionUses: 2
    functionsReached:
    - Botan::SIMD_4x32::load_le
    - auto::store_le
    - sha256_simd_next_w
    - SHA2_32_F
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: void
    signature: void SHA_256::compress_digest_x86_simd(digest_type& digest, std::span<const
      uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:18,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:19,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:21,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:22,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:24,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:25,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:33,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_4x32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: Botan::sha256_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp
    functionUses: 0
    functionsReached:
    - auto::shr
    - Botan::SIMD_4x32::alignr4
    - auto::rotr
    - Botan::SIMD_4x32::byte_shuffle
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_SIMD_4X32
    signature: BOTAN_FN_ISA_SIMD_4X32 sha256_simd_next_w(SIMD_4x32 x[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:18,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:19,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:21,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:22,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:24,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:25,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:27,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:30,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:33,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_4x32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: Botan::sha256_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp
    functionUses: 0
    functionsReached:
    - auto::shr
    - Botan::SIMD_4x32::alignr4
    - auto::rotr
    - Botan::SIMD_4x32::byte_shuffle
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_SIMD_4X32
    signature: BOTAN_FN_ISA_SIMD_4X32 sha256_simd_next_w(SIMD_4x32 x[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:75,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:81,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:82,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:83,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:90,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:90,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:92,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:93,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:94,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:95,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:97,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:99,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:99,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:101,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:102,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:103,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:104,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:106,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:108,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:108,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:110,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:111,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:112,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:113,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:115,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:117,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:117,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:119,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:120,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:121,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:122,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:124,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:127,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:128,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:129,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:130,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:131,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:132,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:133,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:134,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:135,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:136,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:137,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:138,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:139,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:140,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:141,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 58
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 153
    functionName: Botan::SHA_256::compress_digest_x86_simd
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp
    functionUses: 2
    functionsReached:
    - Botan::SIMD_4x32::load_le
    - auto::store_le
    - sha256_simd_next_w
    - SHA2_32_F
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: void
    signature: void SHA_256::compress_digest_x86_simd(digest_type& digest, std::span<const
      uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: auto::shift_elems_right
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' S0'
    - ' S1'
    - ' msg'
    - ' k'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: Botan::sha256_rnds4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256rnds2_epu32
    - auto::raw
    - raw
    - SIMD_4x32
    - auto::shift_elems_right
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha256_rnds4(SIMD_4x32& S0,\n                                                        SIMD_4x32&
      S1,\n                                                        const SIMD_4x32&
      msg,\n                                                        const SIMD_4x32&
      k)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: Botan::sha256_msg_exp
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256msg1_epu32
    - Botan::SIMD_4x32::alignr4
    - raw
    - SIMD_4x32
    - _mm_sha256msg2_epu32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_msg_exp(SIMD_4x32& W0, SIMD_4x32& W1, SIMD_4x32&
      W2, SIMD_4x32& W3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:47,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: Botan::sha256_permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - _mm_blend_epi16
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_permute_state(SIMD_4x32& S0, SIMD_4x32& S1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: auto::shift_elems_right
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' S0'
    - ' S1'
    - ' msg'
    - ' k'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: Botan::sha256_rnds4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256rnds2_epu32
    - auto::raw
    - raw
    - SIMD_4x32
    - auto::shift_elems_right
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha256_rnds4(SIMD_4x32& S0,\n                                                        SIMD_4x32&
      S1,\n                                                        const SIMD_4x32&
      msg,\n                                                        const SIMD_4x32&
      k)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: Botan::sha256_msg_exp
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256msg1_epu32
    - Botan::SIMD_4x32::alignr4
    - raw
    - SIMD_4x32
    - _mm_sha256msg2_epu32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_msg_exp(SIMD_4x32& W0, SIMD_4x32& W1, SIMD_4x32&
      W2, SIMD_4x32& W3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:47,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: Botan::sha256_permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - _mm_blend_epi16
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_permute_state(SIMD_4x32& S0, SIMD_4x32& S1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:70,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:72,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:73,1
    - Dst: sha256_permute_state
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:75,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:81,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:82,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:83,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:84,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:86,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:86,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:87,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:87,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:88,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:88,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:89,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:89,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:92,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:92,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:92,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:92,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:94,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:96,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:96,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:97,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:97,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:99,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:101,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:101,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:102,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:102,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:104,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:106,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:106,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:107,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:107,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:109,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:111,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:111,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:112,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:112,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:114,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:116,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:116,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:117,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:117,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:119,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:121,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:121,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:122,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:122,1
    - Dst: sha256_permute_state
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:132,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:134,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 3
    argNames:
    - ' digest'
    - input_span
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 136
    functionName: Botan::BOTAN_FN_ISA_SHANI::compress_digest_x86
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 2
    functionsReached:
    - SIMD_4x32::store_le
    - Botan::SIMD_4x32::load_le
    - _mm_sha256msg1_epu32
    - sha256_msg_exp
    - auto::raw
    - sha256_rnds4
    - sha256_permute_state
    - SIMD_4x32
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: void
    signature: "void BOTAN_FN_ISA_SHANI BOTAN_SCRUB_STACK_AFTER_RETURN SHA_256::compress_digest_x86(digest_type&
      digest,\n                                                                                    std::span<const
      uint8_t> input_span,\n                                                                                    size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: auto::shift_elems_right
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' S0'
    - ' S1'
    - ' msg'
    - ' k'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: Botan::sha256_rnds4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256rnds2_epu32
    - auto::raw
    - raw
    - SIMD_4x32
    - auto::shift_elems_right
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha256_rnds4(SIMD_4x32& S0,\n                                                        SIMD_4x32&
      S1,\n                                                        const SIMD_4x32&
      msg,\n                                                        const SIMD_4x32&
      k)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: Botan::sha256_msg_exp
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256msg1_epu32
    - Botan::SIMD_4x32::alignr4
    - raw
    - SIMD_4x32
    - _mm_sha256msg2_epu32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_msg_exp(SIMD_4x32& W0, SIMD_4x32& W1, SIMD_4x32&
      W2, SIMD_4x32& W3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:47,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: Botan::sha256_permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - _mm_blend_epi16
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_permute_state(SIMD_4x32& S0, SIMD_4x32& S1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:29,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    - Dst: auto::shift_elems_right
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' S0'
    - ' S1'
    - ' msg'
    - ' k'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: Botan::sha256_rnds4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256rnds2_epu32
    - auto::raw
    - raw
    - SIMD_4x32
    - auto::shift_elems_right
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha256_rnds4(SIMD_4x32& S0,\n                                                        SIMD_4x32&
      S1,\n                                                        const SIMD_4x32&
      msg,\n                                                        const SIMD_4x32&
      k)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:36,1
    - Dst: Botan::SIMD_4x32::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:39,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: Botan::sha256_msg_exp
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256msg1_epu32
    - Botan::SIMD_4x32::alignr4
    - raw
    - SIMD_4x32
    - _mm_sha256msg2_epu32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_msg_exp(SIMD_4x32& W0, SIMD_4x32& W1, SIMD_4x32&
      W2, SIMD_4x32& W3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:44,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:45,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:47,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: Botan::sha256_permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - _mm_blend_epi16
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_permute_state(SIMD_4x32& S0, SIMD_4x32& S1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:70,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:72,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:73,1
    - Dst: sha256_permute_state
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:75,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:81,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:82,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:83,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:84,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:86,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:86,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:87,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:87,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:88,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:88,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:89,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:89,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:92,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:92,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:92,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:92,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:94,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:96,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:96,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:97,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:97,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:99,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:101,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:101,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:102,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:102,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:104,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:106,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:106,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:107,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:107,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:109,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:111,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:111,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:112,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:112,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:114,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:116,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:116,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:117,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:117,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:119,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:121,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:121,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:122,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:122,1
    - Dst: sha256_permute_state
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:132,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:134,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 3
    argNames:
    - ' digest'
    - input_span
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 136
    functionName: Botan::BOTAN_FN_ISA_SHANI::compress_digest_x86
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 2
    functionsReached:
    - SIMD_4x32::store_le
    - Botan::SIMD_4x32::load_le
    - _mm_sha256msg1_epu32
    - sha256_msg_exp
    - auto::raw
    - sha256_rnds4
    - sha256_permute_state
    - SIMD_4x32
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: void
    signature: "void BOTAN_FN_ISA_SHANI BOTAN_SCRUB_STACK_AFTER_RETURN SHA_256::compress_digest_x86(digest_type&
      digest,\n                                                                                    std::span<const
      uint8_t> input_span,\n                                                                                    size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: vsha256su1q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: vsha256su0q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - w0
    - w1
    - w2
    - w3
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: Botan::aarch64_sha256_expand_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::raw
    - vsha256su0q_u32
    - vsha256su1q_u32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_SHA2
    signature: "BOTAN_FN_ISA_SHA2 aarch64_sha256_expand_w(const SIMD_4x32 w0,\n                                                           const
      SIMD_4x32 w1,\n                                                           const
      SIMD_4x32 w2,\n                                                           const
      SIMD_4x32 w3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:34,1
    - Dst: vsha256hq_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: vsha256h2q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' s0'
    - ' s1'
    - w
    - K
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: Botan::aarch64_sha256_update
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
    functionUses: 0
    functionsReached:
    - vsha256hq_u32
    - auto::raw
    - raw
    - vsha256h2q_u32
    - SIMD_4x32
    - Botan::SIMD_4x32::load_le
    linkageType: ''
    returnType: BOTAN_FN_ISA_SHA2
    signature: "BOTAN_FN_ISA_SHA2 aarch64_sha256_update(SIMD_4x32& s0,\n                                                    SIMD_4x32&
      s1,\n                                                    const SIMD_4x32 w,\n
      \                                                   const uint32_t K[4])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: vsha256su1q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: vsha256su0q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - w0
    - w1
    - w2
    - w3
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: Botan::aarch64_sha256_expand_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::raw
    - vsha256su0q_u32
    - vsha256su1q_u32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_SHA2
    signature: "BOTAN_FN_ISA_SHA2 aarch64_sha256_expand_w(const SIMD_4x32 w0,\n                                                           const
      SIMD_4x32 w1,\n                                                           const
      SIMD_4x32 w2,\n                                                           const
      SIMD_4x32 w3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:34,1
    - Dst: vsha256hq_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: vsha256h2q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' s0'
    - ' s1'
    - w
    - K
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: Botan::aarch64_sha256_update
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
    functionUses: 0
    functionsReached:
    - vsha256hq_u32
    - auto::raw
    - raw
    - vsha256h2q_u32
    - SIMD_4x32
    - Botan::SIMD_4x32::load_le
    linkageType: ''
    returnType: BOTAN_FN_ISA_SHA2
    signature: "BOTAN_FN_ISA_SHA2 aarch64_sha256_update(SIMD_4x32& s0,\n                                                    SIMD_4x32&
      s1,\n                                                    const SIMD_4x32 w,\n
      \                                                   const uint32_t K[4])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:61,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:62,1
    - Dst: reinterpret_cast<const uint32_t*>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:64,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:64,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:70,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:71,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:72,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:73,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:76,1
    - Dst: aarch64_sha256_expand_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:77,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:79,1
    - Dst: aarch64_sha256_expand_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:80,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:82,1
    - Dst: aarch64_sha256_expand_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:83,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:85,1
    - Dst: aarch64_sha256_expand_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:86,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:89,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:90,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:91,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:92,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:101,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - ' digest'
    - input8
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 103
    functionName: Botan::BOTAN_FN_ISA_SHA2::compress_digest_armv8
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
    functionUses: 2
    functionsReached:
    - SIMD_4x32::store_le
    - Botan::SIMD_4x32::load_le
    - reinterpret_cast<const uint32_t*>
    - aarch64_sha256_expand_w
    - aarch64_sha256_update
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: void
    signature: "void BOTAN_FN_ISA_SHA2 BOTAN_SCRUB_STACK_AFTER_RETURN SHA_256::compress_digest_armv8(digest_type&
      digest,\n                                                                                     std::span<const
      uint8_t> input8,\n                                                                                     size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: vsha256su1q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: vsha256su0q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - w0
    - w1
    - w2
    - w3
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: Botan::aarch64_sha256_expand_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::raw
    - vsha256su0q_u32
    - vsha256su1q_u32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_SHA2
    signature: "BOTAN_FN_ISA_SHA2 aarch64_sha256_expand_w(const SIMD_4x32 w0,\n                                                           const
      SIMD_4x32 w1,\n                                                           const
      SIMD_4x32 w2,\n                                                           const
      SIMD_4x32 w3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:34,1
    - Dst: vsha256hq_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: vsha256h2q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' s0'
    - ' s1'
    - w
    - K
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: Botan::aarch64_sha256_update
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
    functionUses: 0
    functionsReached:
    - vsha256hq_u32
    - auto::raw
    - raw
    - vsha256h2q_u32
    - SIMD_4x32
    - Botan::SIMD_4x32::load_le
    linkageType: ''
    returnType: BOTAN_FN_ISA_SHA2
    signature: "BOTAN_FN_ISA_SHA2 aarch64_sha256_update(SIMD_4x32& s0,\n                                                    SIMD_4x32&
      s1,\n                                                    const SIMD_4x32 w,\n
      \                                                   const uint32_t K[4])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: vsha256su1q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: vsha256su0q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - w0
    - w1
    - w2
    - w3
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: Botan::aarch64_sha256_expand_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::raw
    - vsha256su0q_u32
    - vsha256su1q_u32
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_SHA2
    signature: "BOTAN_FN_ISA_SHA2 aarch64_sha256_expand_w(const SIMD_4x32 w0,\n                                                           const
      SIMD_4x32 w1,\n                                                           const
      SIMD_4x32 w2,\n                                                           const
      SIMD_4x32 w3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:34,1
    - Dst: vsha256hq_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: vsha256h2q_u32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:36,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' s0'
    - ' s1'
    - w
    - K
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: Botan::aarch64_sha256_update
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
    functionUses: 0
    functionsReached:
    - vsha256hq_u32
    - auto::raw
    - raw
    - vsha256h2q_u32
    - SIMD_4x32
    - Botan::SIMD_4x32::load_le
    linkageType: ''
    returnType: BOTAN_FN_ISA_SHA2
    signature: "BOTAN_FN_ISA_SHA2 aarch64_sha256_update(SIMD_4x32& s0,\n                                                    SIMD_4x32&
      s1,\n                                                    const SIMD_4x32 w,\n
      \                                                   const uint32_t K[4])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:61,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:62,1
    - Dst: reinterpret_cast<const uint32_t*>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:64,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:64,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:70,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:71,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:72,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:73,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:76,1
    - Dst: aarch64_sha256_expand_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:77,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:79,1
    - Dst: aarch64_sha256_expand_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:80,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:82,1
    - Dst: aarch64_sha256_expand_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:83,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:85,1
    - Dst: aarch64_sha256_expand_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:86,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:89,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:90,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:91,1
    - Dst: aarch64_sha256_update
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:92,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:101,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - ' digest'
    - input8
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 103
    functionName: Botan::BOTAN_FN_ISA_SHA2::compress_digest_armv8
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_armv8/sha2_32_armv8.cpp
    functionUses: 2
    functionsReached:
    - SIMD_4x32::store_le
    - Botan::SIMD_4x32::load_le
    - reinterpret_cast<const uint32_t*>
    - aarch64_sha256_expand_w
    - aarch64_sha256_update
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: void
    signature: "void BOTAN_FN_ISA_SHA2 BOTAN_SCRUB_STACK_AFTER_RETURN SHA_256::compress_digest_armv8(digest_type&
      digest,\n                                                                                     std::span<const
      uint8_t> input8,\n                                                                                     size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::Ascon_Hash256::output_length
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::Ascon_Hash256::name
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_Hash256::provider
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::Ascon_Hash256::provider
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.h
    functionUses: 1
    functionsReached:
    - Botan::Ascon_Hash256::provider
    linkageType: ''
    returnType: std::string
    signature: std::string provider() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::Ascon_Hash256::output_length
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::Ascon_Hash256::name
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_Hash256::provider
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::Ascon_Hash256::provider
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.h
    functionUses: 2
    functionsReached:
    - Botan::Ascon_Hash256::provider
    linkageType: ''
    returnType: std::string
    signature: std::string provider() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::Ascon_Hash256::Ascon_Hash256
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ascon_Hash256::Ascon_Hash256()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan::Ascon_Hash256::clear
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ascon_Hash256::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ascon_Hash256>
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::Ascon_Hash256::new_object
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ascon_Hash256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Ascon_Hash256::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ascon_Hash256>
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::Ascon_Hash256::copy_state
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ascon_Hash256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Ascon_Hash256::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::Ascon_Hash256::add_data
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 0
    functionsReached:
    - absorb
    linkageType: ''
    returnType: void
    signature: void Ascon_Hash256::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:51,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:52,1
    - Dst: Botan::Ascon_Hash256::clear
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::Ascon_Hash256::final_result
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 0
    functionsReached:
    - squeeze
    - finish
    - Botan::Ascon_Hash256::clear
    linkageType: ''
    returnType: void
    signature: void Ascon_Hash256::final_result(std::span<uint8_t> out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::Ascon_Hash256::Ascon_Hash256
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ascon_Hash256::Ascon_Hash256()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan::Ascon_Hash256::clear
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ascon_Hash256::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ascon_Hash256>
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::Ascon_Hash256::new_object
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ascon_Hash256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Ascon_Hash256::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ascon_Hash256>
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::Ascon_Hash256::copy_state
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ascon_Hash256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Ascon_Hash256::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::Ascon_Hash256::add_data
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 0
    functionsReached:
    - absorb
    linkageType: ''
    returnType: void
    signature: void Ascon_Hash256::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:51,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:52,1
    - Dst: Botan::Ascon_Hash256::clear
      Src: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::Ascon_Hash256::final_result
    functionSourceFile: /src/botan/src/lib/hash/ascon_hash256/ascon_hash256.cpp
    functionUses: 0
    functionsReached:
    - squeeze
    - finish
    - Botan::Ascon_Hash256::clear
    linkageType: ''
    returnType: void
    signature: void Ascon_Hash256::final_result(std::span<uint8_t> out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MerkleDamgard_Hash::clear
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::MerkleDamgard_Hash::MerkleDamgard_Hash
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 0
    functionsReached:
    - Botan::MerkleDamgard_Hash::clear
    linkageType: ''
    returnType: void
    signature: void MerkleDamgard_Hash()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:47,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:48,1
    - Dst: Botan::SHA_1::compress_n
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:49,1
    - Dst: auto::value
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:49,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:52,1
    - Dst: aligned_data_to_process
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:53,1
    - Dst: Botan::SHA_1::compress_n
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 61
    functionName: Botan::MerkleDamgard_Hash::update
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 0
    functionsReached:
    - aligned_data_to_process
    - Botan::SHA_1::compress_n
    - std::span<const uint8_t>::size
    - handle_unaligned_data
    - BufferSlicer::empty
    - auto::value
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MerkleDamgard_Hash::append_padding_bit
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:64,1
    - Dst: Botan::MerkleDamgard_Hash::append_counter_and_finalize
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:65,1
    - Dst: Botan::MerkleDamgard_Hash::copy_output
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:66,1
    - Dst: Botan::MerkleDamgard_Hash::clear
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: Botan::MerkleDamgard_Hash::final
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 0
    functionsReached:
    - Botan::MerkleDamgard_Hash::append_counter_and_finalize
    - Botan::MerkleDamgard_Hash::clear
    - Botan::MerkleDamgard_Hash::copy_output
    - Botan::MerkleDamgard_Hash::append_padding_bit
    linkageType: ''
    returnType: void
    signature: void final(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_x509_uninit
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:71,1
    - Dst: Botan::MerkleDamgard_Hash::clear
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: Botan::MerkleDamgard_Hash::clear
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 3
    functionsReached:
    - Botan::MerkleDamgard_Hash::clear
    - Botan_Tests::test_x509_uninit
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:78,1
    - Dst: ready_to_consume
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:78,1
    - Dst: append
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:81,1
    - Dst: append
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: Botan::MerkleDamgard_Hash::append_padding_bit
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 1
    functionsReached:
    - append
    - BOTAN_ASSERT_NOMSG
    - ready_to_consume
    linkageType: ''
    returnType: void
    signature: void append_padding_bit()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: elements_until_alignment
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:91,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:92,1
    - Dst: Botan::SHA_1::compress_n
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:93,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:93,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:97,1
    - Dst: elements_until_alignment
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:97,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:98,1
    - Dst: directly_modify_last
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:102,1
    - Dst: store_be
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:104,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:104,1
    - Dst: store_le
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:106,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:106,1
    - Dst: Botan::SHA_1::compress_n
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:110,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 111
    functionName: Botan::MerkleDamgard_Hash::append_counter_and_finalize
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 1
    functionsReached:
    - auto::data
    - consume
    - Botan::SHA_1::compress_n
    - directly_modify_last
    - store_le
    - fill_up_with_zeros
    - BOTAN_ASSERT_NOMSG
    - store_be
    - elements_until_alignment
    linkageType: ''
    returnType: void
    signature: void append_counter_and_finalize()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:114,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:114,1
    - Dst: copy_out_be
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:117,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:117,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:119,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: Botan::MerkleDamgard_Hash::copy_output
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 1
    functionsReached:
    - copy_out_le
    - std::span<uint8_t>::size
    - std::span<uint8_t>::first
    - BOTAN_ASSERT_NOMSG
    - copy_out_be
    linkageType: ''
    returnType: void
    signature: void copy_output(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MerkleDamgard_Hash::clear
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::MerkleDamgard_Hash::MerkleDamgard_Hash
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 0
    functionsReached:
    - Botan::MerkleDamgard_Hash::clear
    linkageType: ''
    returnType: void
    signature: void MerkleDamgard_Hash()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:47,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:48,1
    - Dst: Botan::SHA_1::compress_n
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:49,1
    - Dst: auto::value
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:49,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:52,1
    - Dst: aligned_data_to_process
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:53,1
    - Dst: Botan::SHA_1::compress_n
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 61
    functionName: Botan::MerkleDamgard_Hash::update
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 0
    functionsReached:
    - aligned_data_to_process
    - Botan::SHA_1::compress_n
    - std::span<const uint8_t>::size
    - handle_unaligned_data
    - BufferSlicer::empty
    - auto::value
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MerkleDamgard_Hash::append_padding_bit
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:64,1
    - Dst: Botan::MerkleDamgard_Hash::append_counter_and_finalize
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:65,1
    - Dst: Botan::MerkleDamgard_Hash::copy_output
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:66,1
    - Dst: Botan::MerkleDamgard_Hash::clear
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: Botan::MerkleDamgard_Hash::final
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 0
    functionsReached:
    - Botan::MerkleDamgard_Hash::append_counter_and_finalize
    - Botan::MerkleDamgard_Hash::clear
    - Botan::MerkleDamgard_Hash::copy_output
    - Botan::MerkleDamgard_Hash::append_padding_bit
    linkageType: ''
    returnType: void
    signature: void final(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_x509_uninit
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:71,1
    - Dst: Botan::MerkleDamgard_Hash::clear
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: Botan::MerkleDamgard_Hash::clear
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 6
    functionsReached:
    - Botan::MerkleDamgard_Hash::clear
    - Botan_Tests::test_x509_uninit
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:78,1
    - Dst: ready_to_consume
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:78,1
    - Dst: append
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:81,1
    - Dst: append
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: Botan::MerkleDamgard_Hash::append_padding_bit
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 2
    functionsReached:
    - append
    - BOTAN_ASSERT_NOMSG
    - ready_to_consume
    linkageType: ''
    returnType: void
    signature: void append_padding_bit()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: elements_until_alignment
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:91,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:92,1
    - Dst: Botan::SHA_1::compress_n
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:93,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:93,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:97,1
    - Dst: elements_until_alignment
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:97,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:98,1
    - Dst: directly_modify_last
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:102,1
    - Dst: store_be
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:104,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:104,1
    - Dst: store_le
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:106,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:106,1
    - Dst: Botan::SHA_1::compress_n
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:110,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 111
    functionName: Botan::MerkleDamgard_Hash::append_counter_and_finalize
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 2
    functionsReached:
    - auto::data
    - consume
    - Botan::SHA_1::compress_n
    - directly_modify_last
    - store_le
    - fill_up_with_zeros
    - BOTAN_ASSERT_NOMSG
    - store_be
    - elements_until_alignment
    linkageType: ''
    returnType: void
    signature: void append_counter_and_finalize()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:114,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:114,1
    - Dst: copy_out_be
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:117,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:117,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:119,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: Botan::MerkleDamgard_Hash::copy_output
    functionSourceFile: /src/botan/src/lib/hash/mdx_hash/mdx_hash.h
    functionUses: 2
    functionsReached:
    - copy_out_le
    - std::span<uint8_t>::size
    - std::span<uint8_t>::first
    - BOTAN_ASSERT_NOMSG
    - copy_out_be
    linkageType: ''
    returnType: void
    signature: void copy_output(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::MD4::name
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::MD4::output_length
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::MD4::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MD4::clear
      Src: /src/botan/src/lib/hash/md4/md4.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::MD4::clear
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.h
    functionUses: 1
    functionsReached:
    - Botan::MD4::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::MD4::name
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::MD4::output_length
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::MD4::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MD4::clear
      Src: /src/botan/src/lib/hash/md4/md4.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::MD4::clear
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.h
    functionUses: 2
    functionsReached:
    - Botan::MD4::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:22,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:23,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:25,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:26,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:28,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:29,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:31,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: Botan::FF4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void FF4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:45,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:48,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:51,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: Botan::GG4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void GG4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:61,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:64,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:67,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: Botan::HH4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void HH4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:22,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:23,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:25,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:26,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:28,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:29,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:31,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: Botan::FF4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void FF4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:45,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:48,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:51,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: Botan::GG4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void GG4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:61,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:64,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:67,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: Botan::HH4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void HH4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/hash/md4/md4.cpp:89,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/md4/md4.cpp:89,1
    - Dst: FF4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:93,1
    - Dst: FF4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:94,1
    - Dst: FF4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:95,1
    - Dst: FF4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:96,1
    - Dst: GG4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:98,1
    - Dst: GG4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:99,1
    - Dst: GG4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:100,1
    - Dst: GG4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:101,1
    - Dst: HH4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:103,1
    - Dst: HH4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:104,1
    - Dst: HH4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:105,1
    - Dst: HH4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:106,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/md4/md4.cpp:116,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/md4/md4.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 117
    functionName: Botan::MD4::compress_n
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - GG4
    - load_le
    - FF4
    - HH4
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: void MD4::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/md4/md4.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: Botan::MD4::init
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void MD4::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MD4>
      Src: /src/botan/src/lib/hash/md4/md4.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan::MD4::new_object
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MD4>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> MD4::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MD4>
      Src: /src/botan/src/lib/hash/md4/md4.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan::MD4::copy_state
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MD4>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> MD4::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/md4/md4.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Botan::MD4::add_data
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void MD4::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/md4/md4.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Botan::MD4::final_result
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void MD4::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:22,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:23,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:25,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:26,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:28,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:29,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:31,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: Botan::FF4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void FF4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:45,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:48,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:51,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: Botan::GG4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void GG4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:61,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:64,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:67,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: Botan::HH4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void HH4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:22,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:23,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:25,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:26,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:28,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:29,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:31,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: Botan::FF4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void FF4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:45,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:48,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:51,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: Botan::GG4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void GG4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:61,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:64,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:67,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - ' A'
    - ' B'
    - ' C'
    - ' D'
    - M0
    - M1
    - M2
    - M3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: Botan::HH4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void HH4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t
      M0, uint32_t M1, uint32_t M2, uint32_t M3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/hash/md4/md4.cpp:89,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/md4/md4.cpp:89,1
    - Dst: FF4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:93,1
    - Dst: FF4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:94,1
    - Dst: FF4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:95,1
    - Dst: FF4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:96,1
    - Dst: GG4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:98,1
    - Dst: GG4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:99,1
    - Dst: GG4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:100,1
    - Dst: GG4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:101,1
    - Dst: HH4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:103,1
    - Dst: HH4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:104,1
    - Dst: HH4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:105,1
    - Dst: HH4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:106,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/md4/md4.cpp:116,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/md4/md4.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 117
    functionName: Botan::MD4::compress_n
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - GG4
    - load_le
    - FF4
    - HH4
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: void MD4::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/md4/md4.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: Botan::MD4::init
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void MD4::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MD4>
      Src: /src/botan/src/lib/hash/md4/md4.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan::MD4::new_object
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MD4>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> MD4::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MD4>
      Src: /src/botan/src/lib/hash/md4/md4.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan::MD4::copy_state
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MD4>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> MD4::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/md4/md4.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Botan::MD4::add_data
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void MD4::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/md4/md4.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Botan::MD4::final_result
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void MD4::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::Truncated_Hash::add_data
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void Truncated_Hash::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:23,1
    - Dst: Botan::Truncated_Hash::output_length
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:23,1
    - Dst: final
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:25,1
    - Dst: Botan::Truncated_Hash::output_length
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:28,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:29,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:29,1
    - Dst: data
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:29,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:30,1
    - Dst: std::span<uint8_t>::back
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 37
    functionName: Botan::Truncated_Hash::final_result
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 0
    functionsReached:
    - data
    - std::span<uint8_t>::data
    - std::span<uint8_t>::back
    - Botan::Truncated_Hash::output_length
    - final
    - copy_mem
    - BOTAN_ASSERT_NOMSG
    - zeroise
    linkageType: ''
    returnType: void
    signature: void Truncated_Hash::final_result(std::span<uint8_t> out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::Truncated_Hash::output_length
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Truncated_Hash::output_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:44,1
    - Dst: Botan::Truncated_Hash::name
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::Truncated_Hash::name
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 1
    functionsReached:
    - Botan::Truncated_Hash::name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Truncated_Hash::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:48,1
    - Dst: Botan::Truncated_Hash::new_object
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::Truncated_Hash::new_object
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 1
    functionsReached:
    - Botan::Truncated_Hash::new_object
    - std::make_unique<Truncated_Hash>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Truncated_Hash::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:52,1
    - Dst: Botan::Truncated_Hash::copy_state
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::Truncated_Hash::copy_state
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 1
    functionsReached:
    - Botan::Truncated_Hash::copy_state
    - std::make_unique<Truncated_Hash>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Truncated_Hash::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Truncated_Hash::clear
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::Truncated_Hash::clear
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 1
    functionsReached:
    - Botan::Truncated_Hash::clear
    linkageType: ''
    returnType: void
    signature: void Truncated_Hash::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:60,1
    - Dst: Botan::Truncated_Hash::output_length
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:60,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:61,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:64,1
    - Dst: Botan::Truncated_Hash::output_length
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:67,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - hash
    - bits
    argTypes:
    - std::unique_ptr<HashFunction>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: Botan::Truncated_Hash::Truncated_Hash
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::Truncated_Hash::output_length
    - BOTAN_ASSERT_NONNULL
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Truncated_Hash::Truncated_Hash(std::unique_ptr<HashFunction> hash,
      size_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::Truncated_Hash::add_data
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void Truncated_Hash::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:23,1
    - Dst: Botan::Truncated_Hash::output_length
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:23,1
    - Dst: final
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:25,1
    - Dst: Botan::Truncated_Hash::output_length
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:28,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:29,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:29,1
    - Dst: data
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:29,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:30,1
    - Dst: std::span<uint8_t>::back
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 37
    functionName: Botan::Truncated_Hash::final_result
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 0
    functionsReached:
    - data
    - std::span<uint8_t>::data
    - std::span<uint8_t>::back
    - Botan::Truncated_Hash::output_length
    - final
    - copy_mem
    - BOTAN_ASSERT_NOMSG
    - zeroise
    linkageType: ''
    returnType: void
    signature: void Truncated_Hash::final_result(std::span<uint8_t> out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::Truncated_Hash::output_length
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Truncated_Hash::output_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:44,1
    - Dst: Botan::Truncated_Hash::name
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::Truncated_Hash::name
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 2
    functionsReached:
    - Botan::Truncated_Hash::name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Truncated_Hash::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:48,1
    - Dst: Botan::Truncated_Hash::new_object
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::Truncated_Hash::new_object
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 2
    functionsReached:
    - Botan::Truncated_Hash::new_object
    - std::make_unique<Truncated_Hash>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Truncated_Hash::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:52,1
    - Dst: Botan::Truncated_Hash::copy_state
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::Truncated_Hash::copy_state
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 2
    functionsReached:
    - Botan::Truncated_Hash::copy_state
    - std::make_unique<Truncated_Hash>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Truncated_Hash::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Truncated_Hash::clear
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::Truncated_Hash::clear
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 2
    functionsReached:
    - Botan::Truncated_Hash::clear
    linkageType: ''
    returnType: void
    signature: void Truncated_Hash::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:60,1
    - Dst: Botan::Truncated_Hash::output_length
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:60,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:61,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:64,1
    - Dst: Botan::Truncated_Hash::output_length
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:67,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - hash
    - bits
    argTypes:
    - std::unique_ptr<HashFunction>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: Botan::Truncated_Hash::Truncated_Hash
    functionSourceFile: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::Truncated_Hash::output_length
    - BOTAN_ASSERT_NONNULL
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Truncated_Hash::Truncated_Hash(std::unique_ptr<HashFunction> hash,
      size_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::MD5::name
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::MD5::output_length
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::MD5::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MD5::clear
      Src: /src/botan/src/lib/hash/md5/md5.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::MD5::clear
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.h
    functionUses: 1
    functionsReached:
    - Botan::MD5::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::MD5::name
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::MD5::output_length
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::MD5::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MD5::clear
      Src: /src/botan/src/lib/hash/md5/md5.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::MD5::clear
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.h
    functionUses: 2
    functionsReached:
    - Botan::MD5::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md5/md5.cpp:25,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: Botan::FF
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void FF(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md5/md5.cpp:34,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Botan::GG
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void GG(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan::HH
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void HH(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Botan::II
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void II(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md5/md5.cpp:25,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: Botan::FF
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void FF(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md5/md5.cpp:34,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Botan::GG
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void GG(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan::HH
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void HH(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Botan::II
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void II(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/hash/md5/md5.cpp:72,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/md5/md5.cpp:72,1
    - Dst: FF< 7>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:76,1
    - Dst: FF<12>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:77,1
    - Dst: FF<17>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:78,1
    - Dst: FF<22>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:79,1
    - Dst: FF< 7>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:80,1
    - Dst: FF<12>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:81,1
    - Dst: FF<17>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:82,1
    - Dst: FF<22>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:83,1
    - Dst: FF< 7>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:84,1
    - Dst: FF<12>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:85,1
    - Dst: FF<17>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:86,1
    - Dst: FF<22>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:87,1
    - Dst: FF< 7>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:88,1
    - Dst: FF<12>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:89,1
    - Dst: FF<17>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:90,1
    - Dst: FF<22>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:91,1
    - Dst: GG< 5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:93,1
    - Dst: GG< 9>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:94,1
    - Dst: GG<14>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:95,1
    - Dst: GG<20>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:96,1
    - Dst: GG< 5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:97,1
    - Dst: GG< 9>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:98,1
    - Dst: GG<14>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:99,1
    - Dst: GG<20>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:100,1
    - Dst: GG< 5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:101,1
    - Dst: GG< 9>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:102,1
    - Dst: GG<14>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:103,1
    - Dst: GG<20>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:104,1
    - Dst: GG< 5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:105,1
    - Dst: GG< 9>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:106,1
    - Dst: GG<14>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:107,1
    - Dst: GG<20>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:108,1
    - Dst: HH< 4>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:110,1
    - Dst: HH<11>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:111,1
    - Dst: HH<16>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:112,1
    - Dst: HH<23>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:113,1
    - Dst: HH< 4>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:114,1
    - Dst: HH<11>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:115,1
    - Dst: HH<16>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:116,1
    - Dst: HH<23>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:117,1
    - Dst: HH< 4>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:118,1
    - Dst: HH<11>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:119,1
    - Dst: HH<16>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:120,1
    - Dst: HH<23>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:121,1
    - Dst: HH< 4>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:122,1
    - Dst: HH<11>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:123,1
    - Dst: HH<16>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:124,1
    - Dst: HH<23>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:125,1
    - Dst: II< 6>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:127,1
    - Dst: II<10>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:128,1
    - Dst: II<15>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:129,1
    - Dst: II<21>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:130,1
    - Dst: II< 6>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:131,1
    - Dst: II<10>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:132,1
    - Dst: II<15>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:133,1
    - Dst: II<21>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:134,1
    - Dst: II< 6>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:135,1
    - Dst: II<10>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:136,1
    - Dst: II<15>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:137,1
    - Dst: II<21>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:138,1
    - Dst: II< 6>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:139,1
    - Dst: II<10>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:140,1
    - Dst: II<15>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:141,1
    - Dst: II<21>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 72
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - MD5::digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 151
    functionName: Botan::MD5::compress_n
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - II< 6>
    - FF< 7>
    - II<10>
    - HH< 4>
    - II<15>
    - load_le
    - HH<11>
    - GG<20>
    - HH<16>
    - GG< 9>
    - HH<23>
    - FF<22>
    - II<21>
    - BufferSlicer::take
    - GG<14>
    - GG< 5>
    - FF<12>
    - FF<17>
    linkageType: ''
    returnType: void
    signature: void MD5::compress_n(MD5::digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/md5/md5.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: Botan::MD5::init
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void MD5::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MD5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: Botan::MD5::new_object
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MD5>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> MD5::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MD5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: Botan::MD5::copy_state
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MD5>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> MD5::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/md5/md5.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::MD5::add_data
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void MD5::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/md5/md5.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::MD5::final_result
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void MD5::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md5/md5.cpp:25,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: Botan::FF
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void FF(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md5/md5.cpp:34,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Botan::GG
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void GG(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan::HH
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void HH(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Botan::II
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void II(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md5/md5.cpp:25,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: Botan::FF
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void FF(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md5/md5.cpp:34,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Botan::GG
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void GG(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan::HH
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void HH(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md5/md5.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' A'
    - B
    - C
    - D
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Botan::II
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void II(uint32_t& A, uint32_t B, uint32_t C, uint32_t D, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/hash/md5/md5.cpp:72,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/md5/md5.cpp:72,1
    - Dst: FF< 7>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:76,1
    - Dst: FF<12>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:77,1
    - Dst: FF<17>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:78,1
    - Dst: FF<22>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:79,1
    - Dst: FF< 7>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:80,1
    - Dst: FF<12>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:81,1
    - Dst: FF<17>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:82,1
    - Dst: FF<22>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:83,1
    - Dst: FF< 7>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:84,1
    - Dst: FF<12>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:85,1
    - Dst: FF<17>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:86,1
    - Dst: FF<22>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:87,1
    - Dst: FF< 7>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:88,1
    - Dst: FF<12>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:89,1
    - Dst: FF<17>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:90,1
    - Dst: FF<22>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:91,1
    - Dst: GG< 5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:93,1
    - Dst: GG< 9>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:94,1
    - Dst: GG<14>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:95,1
    - Dst: GG<20>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:96,1
    - Dst: GG< 5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:97,1
    - Dst: GG< 9>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:98,1
    - Dst: GG<14>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:99,1
    - Dst: GG<20>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:100,1
    - Dst: GG< 5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:101,1
    - Dst: GG< 9>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:102,1
    - Dst: GG<14>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:103,1
    - Dst: GG<20>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:104,1
    - Dst: GG< 5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:105,1
    - Dst: GG< 9>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:106,1
    - Dst: GG<14>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:107,1
    - Dst: GG<20>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:108,1
    - Dst: HH< 4>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:110,1
    - Dst: HH<11>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:111,1
    - Dst: HH<16>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:112,1
    - Dst: HH<23>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:113,1
    - Dst: HH< 4>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:114,1
    - Dst: HH<11>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:115,1
    - Dst: HH<16>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:116,1
    - Dst: HH<23>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:117,1
    - Dst: HH< 4>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:118,1
    - Dst: HH<11>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:119,1
    - Dst: HH<16>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:120,1
    - Dst: HH<23>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:121,1
    - Dst: HH< 4>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:122,1
    - Dst: HH<11>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:123,1
    - Dst: HH<16>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:124,1
    - Dst: HH<23>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:125,1
    - Dst: II< 6>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:127,1
    - Dst: II<10>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:128,1
    - Dst: II<15>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:129,1
    - Dst: II<21>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:130,1
    - Dst: II< 6>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:131,1
    - Dst: II<10>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:132,1
    - Dst: II<15>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:133,1
    - Dst: II<21>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:134,1
    - Dst: II< 6>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:135,1
    - Dst: II<10>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:136,1
    - Dst: II<15>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:137,1
    - Dst: II<21>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:138,1
    - Dst: II< 6>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:139,1
    - Dst: II<10>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:140,1
    - Dst: II<15>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:141,1
    - Dst: II<21>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 72
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - MD5::digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 151
    functionName: Botan::MD5::compress_n
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - II< 6>
    - FF< 7>
    - II<10>
    - HH< 4>
    - II<15>
    - load_le
    - HH<11>
    - GG<20>
    - HH<16>
    - GG< 9>
    - HH<23>
    - FF<22>
    - II<21>
    - BufferSlicer::take
    - GG<14>
    - GG< 5>
    - FF<12>
    - FF<17>
    linkageType: ''
    returnType: void
    signature: void MD5::compress_n(MD5::digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/md5/md5.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: Botan::MD5::init
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void MD5::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MD5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: Botan::MD5::new_object
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MD5>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> MD5::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<MD5>
      Src: /src/botan/src/lib/hash/md5/md5.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: Botan::MD5::copy_state
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MD5>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> MD5::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/md5/md5.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::MD5::add_data
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void MD5::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/md5/md5.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::MD5::final_result
    functionSourceFile: /src/botan/src/lib/hash/md5/md5.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void MD5::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:32,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: Botan::whirlpool_sbox
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::array<uint8_t, 256>
    signature: std::array<uint8_t, 256> whirlpool_sbox() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::poly_mul
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' S'
    argTypes:
    - std::array<uint8_t, 256>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: Botan::whirlpool_T_table
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_mul
    linkageType: ''
    returnType: std::array<uint64_t, 256>
    signature: std::array<uint64_t, 256> whirlpool_T_table(const std::array<uint8_t,
      256>& S) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:61,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' S'
    argTypes:
    - std::array<uint8_t, 256>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Botan::whirlpool_rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::data
    - Botan::load_be
    linkageType: ''
    returnType: std::array<uint64_t, 10>
    signature: std::array<uint64_t, 10> whirlpool_rc(const std::array<uint8_t, 256>&
      S) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:71,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:72,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:73,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:74,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:75,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:76,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:77,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:78,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - x0
    - x1
    - x2
    - x3
    - x4
    - x5
    - x6
    - x7
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: Botan::whirl
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    - Botan::get_byte
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t whirl(uint64_t x0, uint64_t x1, uint64_t x2, uint64_t x3,
      uint64_t x4, uint64_t x5, uint64_t x6, uint64_t x7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:32,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: Botan::whirlpool_sbox
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::array<uint8_t, 256>
    signature: std::array<uint8_t, 256> whirlpool_sbox() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::poly_mul
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' S'
    argTypes:
    - std::array<uint8_t, 256>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: Botan::whirlpool_T_table
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_mul
    linkageType: ''
    returnType: std::array<uint64_t, 256>
    signature: std::array<uint64_t, 256> whirlpool_T_table(const std::array<uint8_t,
      256>& S) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:61,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' S'
    argTypes:
    - std::array<uint8_t, 256>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Botan::whirlpool_rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::data
    - Botan::load_be
    linkageType: ''
    returnType: std::array<uint64_t, 10>
    signature: std::array<uint64_t, 10> whirlpool_rc(const std::array<uint8_t, 256>&
      S) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:71,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:72,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:73,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:74,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:75,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:76,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:77,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:78,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - x0
    - x1
    - x2
    - x3
    - x4
    - x5
    - x6
    - x7
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: Botan::whirl
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    - Botan::get_byte
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t whirl(uint64_t x0, uint64_t x1, uint64_t x2, uint64_t x3,
      uint64_t x4, uint64_t x5, uint64_t x6, uint64_t x7)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: Botan::Whirlpool::provider
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string Whirlpool::provider() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:100,1
    - Dst: Botan::Whirlpool::compress_n_avx512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:101,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:108,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:132,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:133,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:134,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:135,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:136,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:137,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:138,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:139,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:143,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:143,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:156,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:157,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:158,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:159,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:160,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:161,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:162,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 184
    functionName: Botan::Whirlpool::compress_n
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - load_be
    - whirl
    - Botan::Whirlpool::compress_n_avx512
    - has
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: void Whirlpool::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:187,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: Botan::Whirlpool::init
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - resize
    - zeroise
    linkageType: ''
    returnType: void
    signature: void Whirlpool::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Whirlpool>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Botan::Whirlpool::new_object
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Whirlpool>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Whirlpool::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Whirlpool>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Botan::Whirlpool::copy_state
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Whirlpool>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Whirlpool::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan::Whirlpool::add_data
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void Whirlpool::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan::Whirlpool::final_result
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void Whirlpool::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:32,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: Botan::whirlpool_sbox
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::array<uint8_t, 256>
    signature: std::array<uint8_t, 256> whirlpool_sbox() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::poly_mul
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' S'
    argTypes:
    - std::array<uint8_t, 256>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: Botan::whirlpool_T_table
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_mul
    linkageType: ''
    returnType: std::array<uint64_t, 256>
    signature: std::array<uint64_t, 256> whirlpool_T_table(const std::array<uint8_t,
      256>& S) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:61,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' S'
    argTypes:
    - std::array<uint8_t, 256>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Botan::whirlpool_rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::data
    - Botan::load_be
    linkageType: ''
    returnType: std::array<uint64_t, 10>
    signature: std::array<uint64_t, 10> whirlpool_rc(const std::array<uint8_t, 256>&
      S) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:71,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:72,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:73,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:74,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:75,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:76,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:77,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:78,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - x0
    - x1
    - x2
    - x3
    - x4
    - x5
    - x6
    - x7
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: Botan::whirl
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    - Botan::get_byte
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t whirl(uint64_t x0, uint64_t x1, uint64_t x2, uint64_t x3,
      uint64_t x4, uint64_t x5, uint64_t x6, uint64_t x7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:32,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: Botan::whirlpool_sbox
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::array<uint8_t, 256>
    signature: std::array<uint8_t, 256> whirlpool_sbox() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::poly_mul
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' S'
    argTypes:
    - std::array<uint8_t, 256>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: Botan::whirlpool_T_table
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_mul
    linkageType: ''
    returnType: std::array<uint64_t, 256>
    signature: std::array<uint64_t, 256> whirlpool_T_table(const std::array<uint8_t,
      256>& S) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:61,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' S'
    argTypes:
    - std::array<uint8_t, 256>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Botan::whirlpool_rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::data
    - Botan::load_be
    linkageType: ''
    returnType: std::array<uint64_t, 10>
    signature: std::array<uint64_t, 10> whirlpool_rc(const std::array<uint8_t, 256>&
      S) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:71,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:72,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:73,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:74,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:75,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:76,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:77,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:78,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - x0
    - x1
    - x2
    - x3
    - x4
    - x5
    - x6
    - x7
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: Botan::whirl
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotr
    - Botan::get_byte
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t whirl(uint64_t x0, uint64_t x1, uint64_t x2, uint64_t x3,
      uint64_t x4, uint64_t x5, uint64_t x6, uint64_t x7)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: Botan::Whirlpool::provider
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string Whirlpool::provider() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:100,1
    - Dst: Botan::Whirlpool::compress_n_avx512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:101,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:108,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:132,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:133,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:134,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:135,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:136,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:137,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:138,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:139,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:143,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:143,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:156,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:157,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:158,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:159,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:160,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:161,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:162,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 184
    functionName: Botan::Whirlpool::compress_n
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - load_be
    - whirl
    - Botan::Whirlpool::compress_n_avx512
    - has
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: void Whirlpool::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:187,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: Botan::Whirlpool::init
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - resize
    - zeroise
    linkageType: ''
    returnType: void
    signature: void Whirlpool::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Whirlpool>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Botan::Whirlpool::new_object
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Whirlpool>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Whirlpool::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Whirlpool>
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Botan::Whirlpool::copy_state
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Whirlpool>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Whirlpool::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan::Whirlpool::add_data
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void Whirlpool::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan::Whirlpool::final_result
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void Whirlpool::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::Whirlpool::name
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::Whirlpool::output_length
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::Whirlpool::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Whirlpool::clear
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::Whirlpool::clear
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.h
    functionUses: 1
    functionsReached:
    - Botan::Whirlpool::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::Whirlpool::name
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::Whirlpool::output_length
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::Whirlpool::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Whirlpool::clear
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::Whirlpool::clear
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.h
    functionUses: 2
    functionsReached:
    - Botan::Whirlpool::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_v
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - m_v
    - _mm512_setzero_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(const WhirlpoolState& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(WhirlpoolState&& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~WhirlpoolState()
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_bytes(const uint8_t src[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_be(const uint64_t src[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_storeu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::store_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_storeu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store_be(uint64_t dst[8]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - WhirlpoolState
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: operator^(WhirlpoolState a, WhirlpoolState b)
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - WhirlpoolState
    - _mm512_xor_si512
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState operator^(WhirlpoolState a, WhirlpoolState b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: '& operator^=(WhirlpoolState other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_xor_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 & operator^=(WhirlpoolState other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:68,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:70,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_srli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:74,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:75,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_or_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_slli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm512_or_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_slli_epi16
    - _mm512_and_si512
    - _mm512_srli_epi16
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: void
    signature: void sub_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_permutexvar_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_load_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::shift_columns
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi8
    - _mm512_load_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void shift_columns() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:140,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:141,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:142,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:143,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:144,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::mix_rows
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    - _mm512_xor_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void mix_rows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::round
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    linkageType: ''
    returnType: void
    signature: void round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    - Dst: _mm512_set_epi64
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_set_epi64
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void rc(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: _mm_set_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm_set_epi8
    linkageType: ''
    returnType: void
    signature: void bswap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:175,1
    - Dst: _mm512_movepi8_mask
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:176,1
    - Dst: _mm512_add_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:177,1
    - Dst: _mm512_mask_blend_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_mask_blend_epi8
    - _mm512_add_epi8
    - _mm512_movepi8_mask
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xtime(__m512i a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_v
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 7
    functionsReached:
    - m_v
    - _mm512_setzero_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(const WhirlpoolState& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(WhirlpoolState&& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~WhirlpoolState()
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_bytes(const uint8_t src[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_be(const uint64_t src[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_storeu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::store_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_storeu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store_be(uint64_t dst[8]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - WhirlpoolState
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: operator^(WhirlpoolState a, WhirlpoolState b)
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - WhirlpoolState
    - _mm512_xor_si512
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState operator^(WhirlpoolState a, WhirlpoolState b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: '& operator^=(WhirlpoolState other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_xor_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 & operator^=(WhirlpoolState other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:68,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:70,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_srli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:74,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:75,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_or_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_slli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm512_or_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_slli_epi16
    - _mm512_and_si512
    - _mm512_srli_epi16
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: void
    signature: void sub_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_permutexvar_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_load_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::shift_columns
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi8
    - _mm512_load_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void shift_columns() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:140,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:141,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:142,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:143,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:144,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::mix_rows
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    - _mm512_xor_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void mix_rows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::round
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    linkageType: ''
    returnType: void
    signature: void round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    - Dst: _mm512_set_epi64
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_set_epi64
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void rc(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: _mm_set_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 2
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm_set_epi8
    linkageType: ''
    returnType: void
    signature: void bswap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:175,1
    - Dst: _mm512_movepi8_mask
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:176,1
    - Dst: _mm512_add_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:177,1
    - Dst: _mm512_mask_blend_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 2
    functionsReached:
    - _mm512_mask_blend_epi8
    - _mm512_add_epi8
    - _mm512_movepi8_mask
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xtime(__m512i a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_v
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 14
    functionsReached:
    - m_v
    - _mm512_setzero_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(const WhirlpoolState& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(WhirlpoolState&& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~WhirlpoolState()
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_bytes(const uint8_t src[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_be(const uint64_t src[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_storeu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::store_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_storeu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store_be(uint64_t dst[8]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - WhirlpoolState
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: operator^(WhirlpoolState a, WhirlpoolState b)
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - WhirlpoolState
    - _mm512_xor_si512
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState operator^(WhirlpoolState a, WhirlpoolState b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: '& operator^=(WhirlpoolState other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_xor_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 & operator^=(WhirlpoolState other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:68,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:70,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_srli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:74,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:75,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_or_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_slli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 2
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm512_or_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_slli_epi16
    - _mm512_and_si512
    - _mm512_srli_epi16
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: void
    signature: void sub_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_permutexvar_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_load_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::shift_columns
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi8
    - _mm512_load_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void shift_columns() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:140,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:141,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:142,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:143,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:144,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::mix_rows
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    - _mm512_xor_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void mix_rows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::round
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    linkageType: ''
    returnType: void
    signature: void round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    - Dst: _mm512_set_epi64
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_set_epi64
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void rc(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: _mm_set_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 3
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm_set_epi8
    linkageType: ''
    returnType: void
    signature: void bswap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:175,1
    - Dst: _mm512_movepi8_mask
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:176,1
    - Dst: _mm512_add_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:177,1
    - Dst: _mm512_mask_blend_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 3
    functionsReached:
    - _mm512_mask_blend_epi8
    - _mm512_add_epi8
    - _mm512_movepi8_mask
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xtime(__m512i a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_v
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 21
    functionsReached:
    - m_v
    - _mm512_setzero_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(const WhirlpoolState& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(WhirlpoolState&& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~WhirlpoolState()
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_bytes(const uint8_t src[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_be(const uint64_t src[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_storeu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::store_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_storeu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store_be(uint64_t dst[8]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - WhirlpoolState
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: operator^(WhirlpoolState a, WhirlpoolState b)
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - WhirlpoolState
    - _mm512_xor_si512
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState operator^(WhirlpoolState a, WhirlpoolState b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: '& operator^=(WhirlpoolState other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_xor_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 & operator^=(WhirlpoolState other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:68,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:70,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_srli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:74,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:75,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_or_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_slli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 3
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm512_or_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_slli_epi16
    - _mm512_and_si512
    - _mm512_srli_epi16
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: void
    signature: void sub_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_permutexvar_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_load_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::shift_columns
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi8
    - _mm512_load_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void shift_columns() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:140,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:141,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:142,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:143,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:144,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::mix_rows
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    - _mm512_xor_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void mix_rows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::round
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    linkageType: ''
    returnType: void
    signature: void round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    - Dst: _mm512_set_epi64
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_set_epi64
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void rc(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: _mm_set_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 4
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm_set_epi8
    linkageType: ''
    returnType: void
    signature: void bswap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:175,1
    - Dst: _mm512_movepi8_mask
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:176,1
    - Dst: _mm512_add_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:177,1
    - Dst: _mm512_mask_blend_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 4
    functionsReached:
    - _mm512_mask_blend_epi8
    - _mm512_add_epi8
    - _mm512_movepi8_mask
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xtime(__m512i a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::load_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:194,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:197,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:197,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:203,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:203,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:204,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:206,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:206,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:207,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:209,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:209,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:210,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:212,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:212,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:213,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:215,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:215,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:216,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:218,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:218,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:219,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:221,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:221,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:222,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:224,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:224,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:225,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:227,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:227,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:228,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:230,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:230,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:231,1
    - Dst: auto::store_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:236,1
    - Dst: data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 237
    functionName: Botan::Whirlpool::compress_n_avx512
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 2
    functionsReached:
    - auto::round
    - data
    - Botan::WhirlpoolAVX512::WhirlpoolState::rc
    - Botan::WhirlpoolAVX512::WhirlpoolState::load_be
    - Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
    - std::span<const uint8_t>::data
    - auto::store_be
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 Whirlpool::compress_n_avx512(digest_type& digest,
      std::span<const uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_v
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 28
    functionsReached:
    - m_v
    - _mm512_setzero_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(const WhirlpoolState& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(WhirlpoolState&& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~WhirlpoolState()
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_bytes(const uint8_t src[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_be(const uint64_t src[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_storeu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::store_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_storeu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store_be(uint64_t dst[8]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - WhirlpoolState
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: operator^(WhirlpoolState a, WhirlpoolState b)
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - WhirlpoolState
    - _mm512_xor_si512
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState operator^(WhirlpoolState a, WhirlpoolState b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: '& operator^=(WhirlpoolState other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_xor_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 & operator^=(WhirlpoolState other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:68,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:70,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_srli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:74,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:75,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_or_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_slli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 4
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm512_or_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_slli_epi16
    - _mm512_and_si512
    - _mm512_srli_epi16
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: void
    signature: void sub_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_permutexvar_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_load_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::shift_columns
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi8
    - _mm512_load_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void shift_columns() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:140,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:141,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:142,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:143,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:144,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::mix_rows
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    - _mm512_xor_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void mix_rows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::round
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    linkageType: ''
    returnType: void
    signature: void round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    - Dst: _mm512_set_epi64
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_set_epi64
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void rc(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: _mm_set_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 5
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm_set_epi8
    linkageType: ''
    returnType: void
    signature: void bswap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:175,1
    - Dst: _mm512_movepi8_mask
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:176,1
    - Dst: _mm512_add_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:177,1
    - Dst: _mm512_mask_blend_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 5
    functionsReached:
    - _mm512_mask_blend_epi8
    - _mm512_add_epi8
    - _mm512_movepi8_mask
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xtime(__m512i a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_v
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 35
    functionsReached:
    - m_v
    - _mm512_setzero_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(const WhirlpoolState& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(WhirlpoolState&& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~WhirlpoolState()
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_bytes(const uint8_t src[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_be(const uint64_t src[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_storeu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::store_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_storeu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store_be(uint64_t dst[8]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - WhirlpoolState
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: operator^(WhirlpoolState a, WhirlpoolState b)
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - WhirlpoolState
    - _mm512_xor_si512
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState operator^(WhirlpoolState a, WhirlpoolState b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: '& operator^=(WhirlpoolState other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_xor_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 & operator^=(WhirlpoolState other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:68,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:70,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_srli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:74,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:75,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_or_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_slli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 5
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm512_or_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_slli_epi16
    - _mm512_and_si512
    - _mm512_srli_epi16
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: void
    signature: void sub_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_permutexvar_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_load_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::shift_columns
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi8
    - _mm512_load_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void shift_columns() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:140,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:141,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:142,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:143,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:144,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::mix_rows
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    - _mm512_xor_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void mix_rows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::round
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    linkageType: ''
    returnType: void
    signature: void round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    - Dst: _mm512_set_epi64
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_set_epi64
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void rc(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: _mm_set_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 6
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm_set_epi8
    linkageType: ''
    returnType: void
    signature: void bswap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:175,1
    - Dst: _mm512_movepi8_mask
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:176,1
    - Dst: _mm512_add_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:177,1
    - Dst: _mm512_mask_blend_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 6
    functionsReached:
    - _mm512_mask_blend_epi8
    - _mm512_add_epi8
    - _mm512_movepi8_mask
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xtime(__m512i a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_v
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 42
    functionsReached:
    - m_v
    - _mm512_setzero_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(const WhirlpoolState& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(WhirlpoolState&& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~WhirlpoolState()
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_bytes(const uint8_t src[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_be(const uint64_t src[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_storeu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::store_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_storeu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store_be(uint64_t dst[8]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - WhirlpoolState
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: operator^(WhirlpoolState a, WhirlpoolState b)
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - WhirlpoolState
    - _mm512_xor_si512
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState operator^(WhirlpoolState a, WhirlpoolState b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: '& operator^=(WhirlpoolState other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_xor_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 & operator^=(WhirlpoolState other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:68,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:70,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_srli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:74,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:75,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_or_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_slli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 6
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm512_or_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_slli_epi16
    - _mm512_and_si512
    - _mm512_srli_epi16
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: void
    signature: void sub_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_permutexvar_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_load_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::shift_columns
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi8
    - _mm512_load_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void shift_columns() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:140,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:141,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:142,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:143,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:144,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::mix_rows
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    - _mm512_xor_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void mix_rows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::round
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    linkageType: ''
    returnType: void
    signature: void round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    - Dst: _mm512_set_epi64
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_set_epi64
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void rc(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: _mm_set_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 7
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm_set_epi8
    linkageType: ''
    returnType: void
    signature: void bswap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:175,1
    - Dst: _mm512_movepi8_mask
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:176,1
    - Dst: _mm512_add_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:177,1
    - Dst: _mm512_mask_blend_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 7
    functionsReached:
    - _mm512_mask_blend_epi8
    - _mm512_add_epi8
    - _mm512_movepi8_mask
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xtime(__m512i a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_v
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    - Dst: _mm512_setzero_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 49
    functionsReached:
    - m_v
    - _mm512_setzero_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(__m512i v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WhirlpoolState(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: '& operator=(const WhirlpoolState& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(const WhirlpoolState& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(WhirlpoolState&& other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState & operator=(WhirlpoolState&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~WhirlpoolState()
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WhirlpoolState()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_bytes(const uint8_t src[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    - Dst: _mm512_loadu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::load_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_loadu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void load_be(const uint64_t src[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_storeu_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::store_be
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_storeu_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 store_be(uint64_t dst[8]) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - WhirlpoolState
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: operator^(WhirlpoolState a, WhirlpoolState b)
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - WhirlpoolState
    - _mm512_xor_si512
    linkageType: ''
    returnType: WhirlpoolState
    signature: WhirlpoolState operator^(WhirlpoolState a, WhirlpoolState b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - WhirlpoolState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: '& operator^=(WhirlpoolState other)'
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_xor_si512
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 & operator^=(WhirlpoolState other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:62,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:64,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:66,1
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:68,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:70,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_srli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:71,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:74,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:75,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:76,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:79,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:80,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_or_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_slli_epi16
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    - Dst: _mm512_and_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 7
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm512_or_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_slli_epi16
    - _mm512_and_si512
    - _mm512_srli_epi16
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: void
    signature: void sub_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_permutexvar_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    - Dst: _mm512_load_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::shift_columns
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm512_permutexvar_epi8
    - _mm512_load_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void shift_columns() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:126,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:128,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:130,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:132,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:134,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:136,1
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: _mm_setr_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:138,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:140,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:141,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:142,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:143,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:144,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:146,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:147,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:148,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:149,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::mix_rows
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - _mm_setr_epi8
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    - _mm512_xor_si512
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void mix_rows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::round
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::sub_bytes
    linkageType: ''
    returnType: void
    signature: void round() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    - Dst: _mm512_set_epi64
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::rc
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 1
    functionsReached:
    - _mm512_set_epi64
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    linkageType: ''
    returnType: void
    signature: void rc(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_broadcast_i32x4
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: _mm_set_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:167,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    - Dst: _mm512_shuffle_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::bswap
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 8
    functionsReached:
    - Botan::WhirlpoolAVX512::WhirlpoolState::WhirlpoolState
    - _mm512_shuffle_epi8
    - _mm512_broadcast_i32x4
    - _mm_set_epi8
    linkageType: ''
    returnType: void
    signature: void bswap() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_set1_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:175,1
    - Dst: _mm512_movepi8_mask
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:176,1
    - Dst: _mm512_add_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:177,1
    - Dst: _mm512_mask_blend_epi8
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    - Dst: _mm512_xor_si512
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - __m512i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: Botan::WhirlpoolAVX512::WhirlpoolState::xtime
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 8
    functionsReached:
    - _mm512_mask_blend_epi8
    - _mm512_add_epi8
    - _mm512_movepi8_mask
    - _mm512_xor_si512
    - _mm512_set1_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 xtime(__m512i a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::load_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:194,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:197,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:197,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:203,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:203,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:204,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:206,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:206,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:207,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:209,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:209,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:210,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:212,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:212,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:213,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:215,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:215,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:216,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:218,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:218,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:219,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:221,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:221,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:222,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:224,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:224,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:225,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:227,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:227,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:228,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:230,1
    - Dst: Botan::WhirlpoolAVX512::WhirlpoolState::rc
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:230,1
    - Dst: auto::round
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:231,1
    - Dst: auto::store_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:236,1
    - Dst: data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 237
    functionName: Botan::Whirlpool::compress_n_avx512
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool_avx512/whirlpool_avx512.cpp
    functionUses: 2
    functionsReached:
    - auto::round
    - data
    - Botan::WhirlpoolAVX512::WhirlpoolState::rc
    - Botan::WhirlpoolAVX512::WhirlpoolState::load_be
    - Botan::WhirlpoolAVX512::WhirlpoolState::load_bytes
    - std::span<const uint8_t>::data
    - auto::store_be
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512
    signature: BOTAN_FN_ISA_AVX512 Whirlpool::compress_n_avx512(digest_type& digest,
      std::span<const uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: Botan::Parallel::add_data
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void Parallel::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:25,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:25,1
    - Dst: Botan::Parallel::output_length
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: Botan::Parallel::final_result
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Parallel::output_length
    - BufferStuffer::next
    - final
    linkageType: ''
    returnType: void
    signature: void Parallel::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Parallel::output_length
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: Botan::Parallel::output_length
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 2
    functionsReached:
    - Botan::Parallel::output_length
    linkageType: ''
    returnType: size_t
    signature: size_t Parallel::output_length() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:43,1
    - Dst: Botan::Parallel::name
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:47,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: Botan::Parallel::name
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - size
    - Botan::Parallel::name
    linkageType: ''
    returnType: std::string
    signature: std::string Parallel::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:57,1
    - Dst: size
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:60,1
    - Dst: std::unique_ptr<HashFunction>
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:60,1
    - Dst: Botan::Parallel::new_object
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:60,1
    - Dst: std::make_unique<Parallel>
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: Botan::Parallel::new_object
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr<HashFunction>
    - std::make_unique<Parallel>
    - std::vector::push_back
    - std::vector::reserve
    - size
    - Botan::Parallel::new_object
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Parallel::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:68,1
    - Dst: size
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:71,1
    - Dst: Botan::Parallel::copy_state
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:71,1
    - Dst: std::make_unique<Parallel>
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: Botan::Parallel::copy_state
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Parallel>
    - Botan::Parallel::copy_state
    - std::vector::push_back
    - std::vector::reserve
    - size
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Parallel::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Parallel::clear
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: Botan::Parallel::clear
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 1
    functionsReached:
    - Botan::Parallel::clear
    linkageType: ''
    returnType: void
    signature: void Parallel::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:84,1
    - Dst: size
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:84,1
    - Dst: push_back
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:86,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' hashes'
    argTypes:
    - std::vector<std::unique_ptr<HashFunction>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: Botan::Parallel::Parallel
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    - size
    - reserve
    linkageType: ''
    returnType: void
    signature: void Parallel::Parallel(std::vector<std::unique_ptr<HashFunction>>&
      hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: Botan::Parallel::add_data
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void Parallel::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:25,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:25,1
    - Dst: Botan::Parallel::output_length
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: Botan::Parallel::final_result
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::Parallel::output_length
    - BufferStuffer::next
    - final
    linkageType: ''
    returnType: void
    signature: void Parallel::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Parallel::output_length
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: Botan::Parallel::output_length
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 4
    functionsReached:
    - Botan::Parallel::output_length
    linkageType: ''
    returnType: size_t
    signature: size_t Parallel::output_length() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:43,1
    - Dst: Botan::Parallel::name
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:47,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: Botan::Parallel::name
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 2
    functionsReached:
    - std::ostringstream::str
    - size
    - Botan::Parallel::name
    linkageType: ''
    returnType: std::string
    signature: std::string Parallel::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:57,1
    - Dst: size
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:60,1
    - Dst: std::unique_ptr<HashFunction>
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:60,1
    - Dst: Botan::Parallel::new_object
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:60,1
    - Dst: std::make_unique<Parallel>
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: Botan::Parallel::new_object
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr<HashFunction>
    - std::make_unique<Parallel>
    - std::vector::push_back
    - std::vector::reserve
    - size
    - Botan::Parallel::new_object
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Parallel::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:68,1
    - Dst: size
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:71,1
    - Dst: Botan::Parallel::copy_state
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:71,1
    - Dst: std::make_unique<Parallel>
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: Botan::Parallel::copy_state
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<Parallel>
    - Botan::Parallel::copy_state
    - std::vector::push_back
    - std::vector::reserve
    - size
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Parallel::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Parallel::clear
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: Botan::Parallel::clear
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 2
    functionsReached:
    - Botan::Parallel::clear
    linkageType: ''
    returnType: void
    signature: void Parallel::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:84,1
    - Dst: size
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:84,1
    - Dst: push_back
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:86,1
    - Dst: std::move
      Src: /src/botan/src/lib/hash/par_hash/par_hash.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' hashes'
    argTypes:
    - std::vector<std::unique_ptr<HashFunction>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: Botan::Parallel::Parallel
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    - size
    - reserve
    linkageType: ''
    returnType: void
    signature: void Parallel::Parallel(std::vector<std::unique_ptr<HashFunction>>&
      hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::Parallel::Parallel
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Parallel(const Parallel&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::Parallel::Parallel
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Parallel(Parallel&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(const Parallel&)'
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Parallel
    signature: Parallel & operator=(const Parallel&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& operator=(Parallel&&)'
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Parallel
    signature: Parallel & operator=(Parallel&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: ~Parallel() override
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Parallel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::Parallel::Parallel
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Parallel(const Parallel&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::Parallel::Parallel
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Parallel(Parallel&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(const Parallel&)'
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Parallel
    signature: Parallel & operator=(const Parallel&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '& operator=(Parallel&&)'
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Parallel
    signature: Parallel & operator=(Parallel&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: ~Parallel() override
    functionSourceFile: /src/botan/src/lib/hash/par_hash/par_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Parallel() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:32,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:32,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:34,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:34,1
    - Dst: Botan::sigma
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:35,1
    - Dst: Botan::sigma
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 13
    argNames:
    - A
    - B
    - C
    - ' D'
    - E
    - F
    - G
    - ' H'
    - ' M1'
    - M2
    - M3
    - M4
    - magic
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: Botan::SHA2_64_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h
    functionUses: 0
    functionsReached:
    - Botan::sigma
    - Botan::choose
    - Botan::majority
    - Botan::rho
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE SHA2_64_F(uint64_t A,\n                                  uint64_t
      B,\n                                  uint64_t C,\n                                  uint64_t&
      D,\n                                  uint64_t E,\n                                  uint64_t
      F,\n                                  uint64_t G,\n                                  uint64_t&
      H,\n                                  uint64_t& M1,\n                                  uint64_t
      M2,\n                                  uint64_t M3,\n                                  uint64_t
      M4,\n                                  uint64_t magic)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:43,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:43,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:45,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - A
    - B
    - C
    - ' D'
    - E
    - F
    - G
    - ' H'
    - M
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: Botan::SHA2_64_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h
    functionUses: 0
    functionsReached:
    - Botan::choose
    - Botan::majority
    - Botan::rho
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE SHA2_64_F(\n   uint64_t A, uint64_t B, uint64_t
      C, uint64_t& D, uint64_t E, uint64_t F, uint64_t G, uint64_t& H, uint64_t M)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:32,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:32,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:34,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:34,1
    - Dst: Botan::sigma
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:35,1
    - Dst: Botan::sigma
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 13
    argNames:
    - A
    - B
    - C
    - ' D'
    - E
    - F
    - G
    - ' H'
    - ' M1'
    - M2
    - M3
    - M4
    - magic
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: Botan::SHA2_64_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h
    functionUses: 0
    functionsReached:
    - Botan::sigma
    - Botan::choose
    - Botan::majority
    - Botan::rho
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE SHA2_64_F(uint64_t A,\n                                  uint64_t
      B,\n                                  uint64_t C,\n                                  uint64_t&
      D,\n                                  uint64_t E,\n                                  uint64_t
      F,\n                                  uint64_t G,\n                                  uint64_t&
      H,\n                                  uint64_t& M1,\n                                  uint64_t
      M2,\n                                  uint64_t M3,\n                                  uint64_t
      M4,\n                                  uint64_t magic)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:43,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:43,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:45,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - A
    - B
    - C
    - ' D'
    - E
    - F
    - G
    - ' H'
    - M
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: Botan::SHA2_64_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h
    functionUses: 0
    functionsReached:
    - Botan::choose
    - Botan::majority
    - Botan::rho
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE SHA2_64_F(\n   uint64_t A, uint64_t B, uint64_t
      C, uint64_t& D, uint64_t E, uint64_t F, uint64_t G, uint64_t& H, uint64_t M)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::SHA_384::name
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::SHA_384::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::SHA_384::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_384::clear
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::SHA_384::clear
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 1
    functionsReached:
    - Botan::SHA_384::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::SHA_512::name
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan::SHA_512::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::SHA_512::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_512::clear
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan::SHA_512::clear
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 1
    functionsReached:
    - Botan::SHA_512::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::SHA_512_256::name
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::SHA_512_256::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan::SHA_512_256::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_512_256::clear
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: Botan::SHA_512_256::clear
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 1
    functionsReached:
    - Botan::SHA_512_256::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::SHA_384::name
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::SHA_384::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::SHA_384::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_384::clear
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::SHA_384::clear
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 2
    functionsReached:
    - Botan::SHA_384::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::SHA_512::name
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: Botan::SHA_512::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::SHA_512::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_512::clear
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: Botan::SHA_512::clear
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 2
    functionsReached:
    - Botan::SHA_512::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::SHA_512_256::name
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::SHA_512_256::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: Botan::SHA_512_256::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_512_256::clear
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: Botan::SHA_512_256::clear
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.h
    functionUses: 2
    functionsReached:
    - Botan::SHA_512_256::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:24,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:30,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:36,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 48
    functionName: Botan::sha512_provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string sha512_provider()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:24,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:30,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:36,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 48
    functionName: Botan::sha512_provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string sha512_provider()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:58,1
    - Dst: Botan::SHA_512::compress_digest_x86
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:59,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:64,1
    - Dst: compress_digest_armv8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:65,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:70,1
    - Dst: Botan::SHA_512::compress_digest_x86_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:71,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:76,1
    - Dst: Botan::SHA_512::compress_digest_x86_avx2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:77,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:95,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:95,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:99,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:100,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:101,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:102,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:103,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:104,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:105,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:106,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:107,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:108,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:109,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:110,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:111,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:112,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:113,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:114,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:115,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:116,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:117,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:118,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:119,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:120,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:121,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:122,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:123,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:124,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:125,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:126,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:127,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:128,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:129,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:130,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:131,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:132,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:133,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:134,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:135,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:136,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:137,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:138,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:139,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:140,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:141,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:142,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:143,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:144,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:145,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:146,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:147,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:148,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:149,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:150,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:151,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:152,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:153,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:154,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:155,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:156,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:157,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:158,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:159,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:160,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:161,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:162,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:163,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:164,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:165,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:166,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:167,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:168,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:169,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:170,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:171,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:172,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:173,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:174,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:175,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:176,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:177,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 104
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 191
    functionName: Botan::SHA_512::compress_digest
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - compress_digest_armv8
    - Botan::SHA_512::compress_digest_x86
    - load_be
    - Botan::SHA_512::compress_digest_x86_avx512
    - Botan::SHA_512::compress_digest_x86_avx2
    - SHA2_64_F
    - BufferSlicer::take
    - has
    linkageType: ''
    returnType: void
    signature: void SHA_512::compress_digest(digest_type& digest, std::span<const
      uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_provider
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: Botan::SHA_512_256::provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - sha512_provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_512_256::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_provider
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: Botan::SHA_384::provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - sha512_provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_384::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_provider
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: Botan::SHA_512::provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - sha512_provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_512::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_512::compress_digest
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: Botan::SHA_512_256::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - Botan::SHA_512::compress_digest
    linkageType: ''
    returnType: void
    signature: void SHA_512_256::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_512::compress_digest
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: Botan::SHA_384::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - Botan::SHA_512::compress_digest
    linkageType: ''
    returnType: void
    signature: void SHA_384::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_512::compress_digest
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: Botan::SHA_512::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - Botan::SHA_512::compress_digest
    linkageType: ''
    returnType: void
    signature: void SHA_512::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: Botan::SHA_512_256::init
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_512_256::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: Botan::SHA_384::init
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_384::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: Botan::SHA_512::init
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_512::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_384>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: Botan::SHA_384::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_384>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_384::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_512>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: Botan::SHA_512::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_512>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_512::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_512_256>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: Botan::SHA_512_256::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_512_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_512_256::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_384>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Botan::SHA_384::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_384>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_384::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_512>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: Botan::SHA_512::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_512>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_512::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_512_256>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: Botan::SHA_512_256::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_512_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_512_256::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: Botan::SHA_384::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_384::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: Botan::SHA_512::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_512::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: Botan::SHA_512_256::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_512_256::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: Botan::SHA_384::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_384::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: Botan::SHA_512::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_512::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: Botan::SHA_512_256::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_512_256::final_result(std::span<uint8_t> output)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:24,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:30,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:36,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 48
    functionName: Botan::sha512_provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string sha512_provider()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:24,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:30,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:36,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 48
    functionName: Botan::sha512_provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string sha512_provider()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:58,1
    - Dst: Botan::SHA_512::compress_digest_x86
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:59,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:64,1
    - Dst: compress_digest_armv8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:65,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:70,1
    - Dst: Botan::SHA_512::compress_digest_x86_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:71,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:76,1
    - Dst: Botan::SHA_512::compress_digest_x86_avx2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:77,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:95,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:95,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:99,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:100,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:101,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:102,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:103,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:104,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:105,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:106,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:107,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:108,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:109,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:110,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:111,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:112,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:113,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:114,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:115,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:116,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:117,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:118,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:119,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:120,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:121,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:122,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:123,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:124,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:125,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:126,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:127,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:128,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:129,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:130,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:131,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:132,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:133,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:134,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:135,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:136,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:137,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:138,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:139,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:140,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:141,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:142,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:143,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:144,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:145,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:146,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:147,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:148,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:149,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:150,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:151,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:152,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:153,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:154,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:155,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:156,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:157,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:158,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:159,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:160,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:161,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:162,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:163,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:164,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:165,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:166,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:167,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:168,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:169,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:170,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:171,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:172,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:173,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:174,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:175,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:176,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:177,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 104
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 191
    functionName: Botan::SHA_512::compress_digest
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 3
    functionsReached:
    - compress_digest_armv8
    - Botan::SHA_512::compress_digest_x86
    - load_be
    - Botan::SHA_512::compress_digest_x86_avx512
    - Botan::SHA_512::compress_digest_x86_avx2
    - SHA2_64_F
    - BufferSlicer::take
    - has
    linkageType: ''
    returnType: void
    signature: void SHA_512::compress_digest(digest_type& digest, std::span<const
      uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_provider
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: Botan::SHA_512_256::provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - sha512_provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_512_256::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_provider
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: Botan::SHA_384::provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - sha512_provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_384::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_provider
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: Botan::SHA_512::provider
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - sha512_provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_512::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_512::compress_digest
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: Botan::SHA_512_256::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - Botan::SHA_512::compress_digest
    linkageType: ''
    returnType: void
    signature: void SHA_512_256::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_512::compress_digest
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: Botan::SHA_384::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - Botan::SHA_512::compress_digest
    linkageType: ''
    returnType: void
    signature: void SHA_384::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_512::compress_digest
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: Botan::SHA_512::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - Botan::SHA_512::compress_digest
    linkageType: ''
    returnType: void
    signature: void SHA_512::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: Botan::SHA_512_256::init
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_512_256::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: Botan::SHA_384::init
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_384::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: Botan::SHA_512::init
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SHA_512::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_384>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: Botan::SHA_384::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_384>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_384::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_512>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: Botan::SHA_512::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_512>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_512::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_512_256>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: Botan::SHA_512_256::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_512_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_512_256::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_384>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Botan::SHA_384::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_384>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_384::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_512>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: Botan::SHA_512::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_512>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_512::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_512_256>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: Botan::SHA_512_256::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_512_256>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_512_256::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: Botan::SHA_384::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_384::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: Botan::SHA_512::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_512::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: Botan::SHA_512_256::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SHA_512_256::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: Botan::SHA_384::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_384::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: Botan::SHA_512::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_512::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: Botan::SHA_512_256::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SHA_512_256::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:41,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:42,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:43,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:44,1
    - Dst: reinterpret_cast<const uint64_t*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:46,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:46,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:55,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:56,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:57,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:58,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:59,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:60,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:61,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:62,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:64,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:64,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:64,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:65,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:65,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:65,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:66,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:66,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:66,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:67,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:67,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:67,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:68,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:68,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:68,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:69,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:69,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:69,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:70,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:70,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:70,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:71,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:71,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:71,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:78,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:78,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:79,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:79,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:80,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:80,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:80,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:81,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:82,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:83,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:83,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:83,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:86,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:86,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:87,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:87,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:88,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:88,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:88,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:89,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:90,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:91,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:91,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:91,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:94,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:94,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:95,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:95,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:96,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:96,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:96,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:97,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:98,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:99,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:99,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:99,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:102,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:102,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:103,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:103,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:104,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:104,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:104,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:105,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:106,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:107,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:107,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:107,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:110,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:110,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:111,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:111,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:112,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:112,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:112,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:113,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:114,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:115,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:115,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:115,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:118,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:118,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:119,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:119,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:120,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:120,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:120,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:121,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:122,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:123,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:123,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:123,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:126,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:126,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:127,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:127,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:128,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:128,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:128,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:129,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:130,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:131,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:131,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:131,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:134,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:134,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:135,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:135,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:136,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:136,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:136,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:137,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:138,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:139,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:139,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:139,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:142,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:142,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:143,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:143,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:144,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:144,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:144,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:145,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:146,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:147,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:147,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:147,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:150,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:150,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:151,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:151,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:152,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:152,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:152,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:153,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:154,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:155,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:155,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:155,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:158,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:158,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:159,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:159,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:160,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:160,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:160,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:161,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:162,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:163,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:163,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:163,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:166,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:166,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:167,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:167,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:168,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:168,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:168,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:169,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:170,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:171,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:171,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:171,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:174,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:174,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:175,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:175,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:176,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:176,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:176,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:177,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:178,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:179,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:179,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:179,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:182,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:182,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:183,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:183,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:184,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:184,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:184,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:185,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:186,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:187,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:187,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:187,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:190,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:190,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:191,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:191,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:192,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:192,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:192,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:193,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:194,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:195,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:195,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:195,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:198,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:198,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:199,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:199,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:200,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:200,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:200,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:201,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:202,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:203,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:203,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:203,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:206,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:206,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:207,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:207,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:208,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:208,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:208,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:209,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:210,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:211,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:211,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:211,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:214,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:214,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:215,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:215,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:216,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:216,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:216,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:217,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:218,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:219,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:219,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:219,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:222,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:222,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:223,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:223,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:224,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:224,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:224,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:225,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:226,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:227,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:227,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:227,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:230,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:230,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:231,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:231,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:232,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:232,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:232,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:233,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:234,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:235,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:235,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:235,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:238,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:238,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:239,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:239,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:240,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:240,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:240,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:241,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:242,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:243,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:243,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:243,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:246,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:246,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:247,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:247,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:248,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:248,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:248,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:249,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:250,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:251,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:251,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:251,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:254,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:254,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:255,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:255,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:256,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:256,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:256,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:257,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:258,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:259,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:259,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:259,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:262,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:262,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:263,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:263,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:264,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:264,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:264,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:265,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:266,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:267,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:267,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:267,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:270,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:270,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:271,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:271,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:272,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:272,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:272,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:273,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:274,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:275,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:275,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:275,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:278,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:278,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:279,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:279,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:280,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:280,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:280,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:281,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:282,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:283,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:283,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:283,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:286,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:286,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:287,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:287,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:288,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:288,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:288,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:289,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:290,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:291,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:291,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:291,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:294,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:294,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:295,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:295,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:296,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:296,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:296,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:297,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:298,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:299,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:299,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:299,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:302,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:302,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:303,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:303,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:304,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:304,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:304,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:305,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:306,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:307,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:307,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:307,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:310,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:310,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:311,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:311,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:312,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:312,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:312,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:313,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:314,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:315,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:315,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:315,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:318,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:318,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:319,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:319,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:320,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:320,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:320,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:321,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:322,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:323,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:323,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:323,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:326,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:326,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:327,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:327,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:328,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:328,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:328,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:329,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:330,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:331,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:331,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:331,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:334,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:334,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:335,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:335,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:336,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:336,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:336,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:337,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:338,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:341,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:341,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:342,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:342,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:343,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:343,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:343,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:344,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:345,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:348,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:348,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:349,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:349,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:350,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:350,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:350,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:351,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:352,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:355,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:355,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:356,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:356,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:357,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:357,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:357,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:358,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:359,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:362,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:362,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:363,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:363,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:364,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:364,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:364,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:365,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:366,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:369,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:369,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:370,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:370,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:371,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:371,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:371,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:372,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:373,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:376,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:376,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:377,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:377,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:378,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:378,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:378,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:379,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:380,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:383,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:383,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:384,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:384,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:385,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:385,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:385,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:386,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:387,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:390,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:391,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:392,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:393,1
    - Dst: vst1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:400,1
    - Dst: vst1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:401,1
    - Dst: vst1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:402,1
    - Dst: vst1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 253
    argCount: 3
    argNames:
    - ' digest'
    - input8
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 404
    functionName: Botan::BOTAN_FN_ISA_SHA512::compress_digest_armv8
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp
    functionUses: 0
    functionsReached:
    - vsha512su1q_u64
    - vreinterpretq_u8_u64
    - vst1q_u64
    - vextq_u64
    - reinterpret_cast<const uint64_t*>
    - vrev64q_u8
    - vreinterpretq_u64_u8
    - vaddq_u64
    - vsha512hq_u64
    - vsha512h2q_u64
    - vld1q_u64
    - vsha512su0q_u64
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: "void BOTAN_FN_ISA_SHA512 SHA_512::compress_digest_armv8(digest_type&
      digest,\n                                                        std::span<const
      uint8_t> input8,\n                                                        size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:41,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:42,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:43,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:44,1
    - Dst: reinterpret_cast<const uint64_t*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:46,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:46,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:55,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:56,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:57,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:58,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:59,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:60,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:61,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:62,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:64,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:64,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:64,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:65,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:65,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:65,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:66,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:66,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:66,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:67,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:67,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:67,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:68,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:68,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:68,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:69,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:69,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:69,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:70,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:70,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:70,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:71,1
    - Dst: vrev64q_u8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:71,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:71,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:78,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:78,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:79,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:79,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:80,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:80,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:80,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:81,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:82,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:83,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:83,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:83,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:86,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:86,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:87,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:87,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:88,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:88,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:88,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:89,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:90,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:91,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:91,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:91,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:94,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:94,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:95,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:95,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:96,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:96,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:96,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:97,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:98,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:99,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:99,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:99,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:102,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:102,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:103,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:103,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:104,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:104,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:104,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:105,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:106,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:107,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:107,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:107,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:110,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:110,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:111,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:111,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:112,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:112,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:112,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:113,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:114,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:115,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:115,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:115,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:118,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:118,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:119,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:119,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:120,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:120,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:120,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:121,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:122,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:123,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:123,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:123,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:126,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:126,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:127,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:127,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:128,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:128,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:128,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:129,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:130,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:131,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:131,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:131,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:134,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:134,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:135,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:135,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:136,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:136,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:136,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:137,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:138,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:139,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:139,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:139,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:142,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:142,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:143,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:143,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:144,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:144,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:144,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:145,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:146,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:147,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:147,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:147,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:150,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:150,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:151,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:151,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:152,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:152,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:152,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:153,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:154,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:155,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:155,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:155,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:158,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:158,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:159,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:159,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:160,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:160,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:160,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:161,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:162,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:163,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:163,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:163,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:166,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:166,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:167,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:167,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:168,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:168,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:168,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:169,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:170,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:171,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:171,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:171,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:174,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:174,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:175,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:175,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:176,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:176,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:176,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:177,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:178,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:179,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:179,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:179,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:182,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:182,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:183,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:183,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:184,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:184,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:184,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:185,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:186,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:187,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:187,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:187,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:190,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:190,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:191,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:191,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:192,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:192,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:192,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:193,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:194,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:195,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:195,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:195,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:198,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:198,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:199,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:199,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:200,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:200,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:200,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:201,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:202,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:203,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:203,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:203,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:206,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:206,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:207,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:207,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:208,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:208,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:208,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:209,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:210,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:211,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:211,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:211,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:214,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:214,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:215,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:215,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:216,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:216,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:216,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:217,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:218,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:219,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:219,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:219,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:222,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:222,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:223,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:223,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:224,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:224,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:224,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:225,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:226,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:227,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:227,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:227,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:230,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:230,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:231,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:231,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:232,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:232,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:232,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:233,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:234,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:235,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:235,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:235,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:238,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:238,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:239,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:239,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:240,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:240,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:240,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:241,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:242,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:243,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:243,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:243,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:246,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:246,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:247,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:247,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:248,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:248,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:248,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:249,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:250,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:251,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:251,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:251,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:254,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:254,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:255,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:255,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:256,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:256,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:256,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:257,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:258,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:259,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:259,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:259,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:262,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:262,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:263,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:263,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:264,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:264,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:264,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:265,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:266,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:267,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:267,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:267,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:270,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:270,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:271,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:271,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:272,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:272,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:272,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:273,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:274,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:275,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:275,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:275,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:278,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:278,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:279,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:279,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:280,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:280,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:280,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:281,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:282,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:283,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:283,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:283,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:286,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:286,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:287,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:287,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:288,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:288,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:288,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:289,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:290,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:291,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:291,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:291,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:294,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:294,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:295,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:295,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:296,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:296,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:296,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:297,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:298,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:299,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:299,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:299,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:302,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:302,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:303,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:303,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:304,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:304,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:304,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:305,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:306,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:307,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:307,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:307,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:310,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:310,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:311,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:311,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:312,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:312,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:312,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:313,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:314,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:315,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:315,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:315,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:318,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:318,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:319,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:319,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:320,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:320,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:320,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:321,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:322,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:323,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:323,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:323,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:326,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:326,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:327,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:327,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:328,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:328,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:328,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:329,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:330,1
    - Dst: vsha512su1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:331,1
    - Dst: vsha512su0q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:331,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:331,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:334,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:334,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:335,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:335,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:336,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:336,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:336,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:337,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:338,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:341,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:341,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:342,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:342,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:343,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:343,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:343,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:344,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:345,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:348,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:348,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:349,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:349,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:350,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:350,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:350,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:351,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:352,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:355,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:355,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:356,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:356,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:357,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:357,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:357,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:358,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:359,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:362,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:362,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:363,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:363,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:364,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:364,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:364,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:365,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:366,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:369,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:369,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:370,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:370,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:371,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:371,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:371,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:372,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:373,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:376,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:376,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:377,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:377,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:378,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:378,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:378,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:379,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:380,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:383,1
    - Dst: vld1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:383,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:384,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:384,1
    - Dst: vsha512hq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:385,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:385,1
    - Dst: vextq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:385,1
    - Dst: vsha512h2q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:386,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:387,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:390,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:391,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:392,1
    - Dst: vaddq_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:393,1
    - Dst: vst1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:400,1
    - Dst: vst1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:401,1
    - Dst: vst1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:402,1
    - Dst: vst1q_u64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 253
    argCount: 3
    argNames:
    - ' digest'
    - input8
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 404
    functionName: Botan::BOTAN_FN_ISA_SHA512::compress_digest_armv8
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_armv8/sha2_64_armv8.cpp
    functionUses: 0
    functionsReached:
    - vsha512su1q_u64
    - vreinterpretq_u8_u64
    - vst1q_u64
    - vextq_u64
    - reinterpret_cast<const uint64_t*>
    - vrev64q_u8
    - vreinterpretq_u64_u8
    - vaddq_u64
    - vsha512hq_u64
    - vsha512h2q_u64
    - vld1q_u64
    - vsha512su0q_u64
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: "void BOTAN_FN_ISA_SHA512 SHA_512::compress_digest_armv8(digest_type&
      digest,\n                                                        std::span<const
      uint8_t> input8,\n                                                        size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:21,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: Botan::sha512_next_w_avx512
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - template rotr<61>
    - template rotr<19>
    - template shr<6>
    - auto::template rotr<1>
    - auto::template shr<7>
    - auto::template rotr<8>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_next_w_avx512(SIMD_T x[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:21,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: Botan::sha512_next_w_avx512
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - template rotr<61>
    - template rotr<19>
    - template shr<6>
    - auto::template rotr<1>
    - auto::template shr<7>
    - auto::template rotr<8>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_next_w_avx512(SIMD_T x[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:83,1
    - Dst: Botan::SIMD_8x64::load_be4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:89,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:91,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:92,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:100,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:100,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:101,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:102,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:103,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:105,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:105,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:106,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:107,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:108,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:110,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:110,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:111,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:112,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:113,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:115,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:115,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:116,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:117,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:118,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:120,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:120,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:121,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:122,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:123,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:125,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:125,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:126,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:127,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:128,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:130,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:130,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:131,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:132,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:133,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:135,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:135,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:136,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:137,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:138,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:142,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:143,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:144,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:145,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:146,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:147,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:148,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:149,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:150,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:151,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:152,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:153,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:154,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:155,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:156,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:157,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:171,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:172,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:173,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:174,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:175,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:176,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:177,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:178,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:179,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:180,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:181,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:182,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:183,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:184,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:185,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:186,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:204,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:205,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:206,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:214,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:214,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:215,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:216,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:217,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:219,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:219,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:220,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:221,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:222,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:224,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:224,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:225,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:226,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:227,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:229,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:229,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:230,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:231,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:232,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:234,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:234,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:235,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:236,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:237,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:239,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:239,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:240,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:241,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:242,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:244,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:244,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:245,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:246,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:247,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:249,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:249,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:250,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:251,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:252,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:256,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:257,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:258,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:259,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:260,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:261,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:262,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:263,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:264,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:265,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:266,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:267,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:268,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:269,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:270,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 159
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 282
    functionName: Botan::SHA_512::compress_digest_x86_avx512
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp
    functionUses: 2
    functionsReached:
    - sha512_next_w_avx512
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - auto::store_le
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - auto::store_le4
    - Botan::SIMD_8x64::broadcast_2x64
    - SHA2_64_F
    - Botan::SIMD_8x64::load_be4
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512_BMI2
    signature: "BOTAN_FN_ISA_AVX512_BMI2 SHA_512::compress_digest_x86_avx512(digest_type&
      digest,\n                                                                  std::span<const
      uint8_t> input,\n                                                                  size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:21,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: Botan::sha512_next_w_avx512
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - template rotr<61>
    - template rotr<19>
    - template shr<6>
    - auto::template rotr<1>
    - auto::template shr<7>
    - auto::template rotr<8>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_next_w_avx512(SIMD_T x[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:21,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: Botan::sha512_next_w_avx512
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - template rotr<61>
    - template rotr<19>
    - template shr<6>
    - auto::template rotr<1>
    - auto::template shr<7>
    - auto::template rotr<8>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_next_w_avx512(SIMD_T x[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:83,1
    - Dst: Botan::SIMD_8x64::load_be4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:89,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:91,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:92,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:100,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:100,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:101,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:102,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:103,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:105,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:105,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:106,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:107,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:108,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:110,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:110,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:111,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:112,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:113,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:115,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:115,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:116,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:117,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:118,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:120,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:120,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:121,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:122,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:123,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:125,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:125,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:126,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:127,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:128,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:130,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:130,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:131,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:132,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:133,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:135,1
    - Dst: Botan::SIMD_8x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:135,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:136,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:137,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:138,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:142,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:143,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:144,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:145,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:146,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:147,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:148,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:149,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:150,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:151,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:152,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:153,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:154,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:155,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:156,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:157,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:171,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:172,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:173,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:174,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:175,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:176,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:177,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:178,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:179,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:180,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:181,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:182,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:183,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:184,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:185,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:186,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:204,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:205,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:206,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:214,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:214,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:215,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:216,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:217,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:219,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:219,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:220,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:221,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:222,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:224,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:224,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:225,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:226,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:227,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:229,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:229,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:230,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:231,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:232,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:234,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:234,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:235,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:236,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:237,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:239,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:239,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:240,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:241,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:242,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:244,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:244,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:245,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:246,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:247,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:249,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:249,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:250,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:251,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:252,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:256,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:257,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:258,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:259,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:260,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:261,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:262,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:263,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:264,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:265,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:266,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:267,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:268,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:269,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:270,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 159
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 282
    functionName: Botan::SHA_512::compress_digest_x86_avx512
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp
    functionUses: 2
    functionsReached:
    - sha512_next_w_avx512
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - auto::store_le
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - auto::store_le4
    - Botan::SIMD_8x64::broadcast_2x64
    - SHA2_64_F
    - Botan::SIMD_8x64::load_be4
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX512_BMI2
    signature: "BOTAN_FN_ISA_AVX512_BMI2 SHA_512::compress_digest_x86_avx512(digest_type&
      digest,\n                                                                  std::span<const
      uint8_t> input,\n                                                                  size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_sha512msg1_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_permute4x64_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_blend_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_sha512msg2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    - ' m3'
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: Botan::sha512_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 8
    functionsReached:
    - _mm256_sha512msg2_epi64
    - _mm256_add_epi64
    - _mm256_sha512msg1_epi64
    - _mm256_extracti128_si256
    - _mm256_permute4x64_epi64
    - _mm256_blend_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_msg_expand(__m256i& m0, __m256i& m1, __m256i&
      m2, __m256i& m3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:29,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:29,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:30,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' state0'
    - ' state1'
    - msg
    - K
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: Botan::sha512_4rounds
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_add_epi64
    - _mm256_extracti128_si256
    - _mm256_sha512rnds2_epi64
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha512_4rounds(__m256i& state0,\n                                                           __m256i&
      state1,\n                                                           const __m256i
      msg,\n                                                           const __m256i
      K)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:34,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:35,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:37,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' state0'
    - ' state1'
    argTypes:
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: Botan::permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_permute2x128_si256
    - _mm256_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE permute_state(__m256i& state0, __m256i& state1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_sha512msg1_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_permute4x64_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_blend_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_sha512msg2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    - ' m3'
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: Botan::sha512_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 8
    functionsReached:
    - _mm256_sha512msg2_epi64
    - _mm256_add_epi64
    - _mm256_sha512msg1_epi64
    - _mm256_extracti128_si256
    - _mm256_permute4x64_epi64
    - _mm256_blend_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_msg_expand(__m256i& m0, __m256i& m1, __m256i&
      m2, __m256i& m3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:29,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:29,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:30,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' state0'
    - ' state1'
    - msg
    - K
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: Botan::sha512_4rounds
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_add_epi64
    - _mm256_extracti128_si256
    - _mm256_sha512rnds2_epi64
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha512_4rounds(__m256i& state0,\n                                                           __m256i&
      state1,\n                                                           const __m256i
      msg,\n                                                           const __m256i
      K)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:34,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:35,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:37,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' state0'
    - ' state1'
    argTypes:
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: Botan::permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_permute2x128_si256
    - _mm256_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE permute_state(__m256i& state0, __m256i& state1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const __m256i*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:68,1
    - Dst: _mm256_set_epi64x
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:71,1
    - Dst: reinterpret_cast<__m256i*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:73,1
    - Dst: data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:73,1
    - Dst: reinterpret_cast<const __m256i*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:74,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:74,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:76,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:77,1
    - Dst: permute_state
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:79,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:85,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:85,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:86,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:86,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:87,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:87,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:88,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:88,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:90,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:90,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:91,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:91,1
    - Dst: _mm256_sha512msg1_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:92,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:92,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:95,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:95,1
    - Dst: sha512_msg_expand
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:96,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:98,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:98,1
    - Dst: sha512_msg_expand
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:99,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:101,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:101,1
    - Dst: sha512_msg_expand
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:102,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:104,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:104,1
    - Dst: sha512_msg_expand
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:105,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:108,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:108,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:109,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:109,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:111,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:112,1
    - Dst: permute_state
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:117,1
    - Dst: _mm256_storeu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:119,1
    - Dst: _mm256_storeu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 123
    functionName: Botan::SHA_512::compress_digest_x86
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 2
    functionsReached:
    - permute_state
    - _mm256_shuffle_epi8
    - data
    - _mm256_add_epi64
    - _mm256_set_epi64x
    - _mm256_sha512msg1_epi64
    - sha512_msg_expand
    - _mm256_extracti128_si256
    - sha512_4rounds
    - reinterpret_cast<__m256i*>
    - reinterpret_cast<const __m256i*>
    - _mm256_loadu_si256
    - _mm256_load_si256
    - std::span<const uint8_t>::data
    - _mm256_storeu_si256
    linkageType: ''
    returnType: BOTAN_FN_ISA_SHA512
    signature: BOTAN_FN_ISA_SHA512 SHA_512::compress_digest_x86(digest_type& digest,
      std::span<const uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_sha512msg1_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_permute4x64_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_blend_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_sha512msg2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    - ' m3'
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: Botan::sha512_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 8
    functionsReached:
    - _mm256_sha512msg2_epi64
    - _mm256_add_epi64
    - _mm256_sha512msg1_epi64
    - _mm256_extracti128_si256
    - _mm256_permute4x64_epi64
    - _mm256_blend_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_msg_expand(__m256i& m0, __m256i& m1, __m256i&
      m2, __m256i& m3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:29,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:29,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:30,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' state0'
    - ' state1'
    - msg
    - K
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: Botan::sha512_4rounds
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_add_epi64
    - _mm256_extracti128_si256
    - _mm256_sha512rnds2_epi64
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha512_4rounds(__m256i& state0,\n                                                           __m256i&
      state1,\n                                                           const __m256i
      msg,\n                                                           const __m256i
      K)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:34,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:35,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:37,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' state0'
    - ' state1'
    argTypes:
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: Botan::permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_permute2x128_si256
    - _mm256_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE permute_state(__m256i& state0, __m256i& state1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_sha512msg1_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_permute4x64_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_blend_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:20,1
    - Dst: _mm256_sha512msg2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    - ' m3'
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: Botan::sha512_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 8
    functionsReached:
    - _mm256_sha512msg2_epi64
    - _mm256_add_epi64
    - _mm256_sha512msg1_epi64
    - _mm256_extracti128_si256
    - _mm256_permute4x64_epi64
    - _mm256_blend_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_msg_expand(__m256i& m0, __m256i& m1, __m256i&
      m2, __m256i& m3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:29,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:29,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:30,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' state0'
    - ' state1'
    - msg
    - K
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: Botan::sha512_4rounds
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_add_epi64
    - _mm256_extracti128_si256
    - _mm256_sha512rnds2_epi64
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sha512_4rounds(__m256i& state0,\n                                                           __m256i&
      state1,\n                                                           const __m256i
      msg,\n                                                           const __m256i
      K)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:34,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:35,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:37,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' state0'
    - ' state1'
    argTypes:
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: Botan::permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_permute2x128_si256
    - _mm256_shuffle_epi32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE permute_state(__m256i& state0, __m256i& state1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const __m256i*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:68,1
    - Dst: _mm256_set_epi64x
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:71,1
    - Dst: reinterpret_cast<__m256i*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:73,1
    - Dst: data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:73,1
    - Dst: reinterpret_cast<const __m256i*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:74,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:74,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:76,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:77,1
    - Dst: permute_state
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:79,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:85,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:85,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:86,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:86,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:87,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:87,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:88,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:88,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:90,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:90,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:91,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:91,1
    - Dst: _mm256_sha512msg1_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:92,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:92,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:95,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:95,1
    - Dst: sha512_msg_expand
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:96,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:98,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:98,1
    - Dst: sha512_msg_expand
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:99,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:101,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:101,1
    - Dst: sha512_msg_expand
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:102,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:104,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:104,1
    - Dst: sha512_msg_expand
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:105,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:108,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:108,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:109,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:109,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:111,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:112,1
    - Dst: permute_state
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:117,1
    - Dst: _mm256_storeu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:119,1
    - Dst: _mm256_storeu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 123
    functionName: Botan::SHA_512::compress_digest_x86
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 2
    functionsReached:
    - permute_state
    - _mm256_shuffle_epi8
    - data
    - _mm256_add_epi64
    - _mm256_set_epi64x
    - _mm256_sha512msg1_epi64
    - sha512_msg_expand
    - _mm256_extracti128_si256
    - sha512_4rounds
    - reinterpret_cast<__m256i*>
    - reinterpret_cast<const __m256i*>
    - _mm256_loadu_si256
    - _mm256_load_si256
    - std::span<const uint8_t>::data
    - _mm256_storeu_si256
    linkageType: ''
    returnType: BOTAN_FN_ISA_SHA512
    signature: BOTAN_FN_ISA_SHA512 SHA_512::compress_digest_x86(digest_type& digest,
      std::span<const uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:21,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: Botan::sha512_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - template rotr<61>
    - template rotr<19>
    - template shr<6>
    - auto::template rotr<1>
    - auto::template shr<7>
    - auto::template rotr<8>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_next_w(SIMD_T x[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:21,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: Botan::sha512_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - template rotr<61>
    - template rotr<19>
    - template shr<6>
    - auto::template rotr<1>
    - auto::template shr<7>
    - auto::template rotr<8>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_next_w(SIMD_T x[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:82,1
    - Dst: Botan::SIMD_4x64::load_be2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:88,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:89,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:90,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:98,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:98,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:99,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:100,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:101,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:103,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:103,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:104,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:105,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:106,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:108,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:108,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:109,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:110,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:111,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:113,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:113,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:114,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:115,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:116,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:118,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:118,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:119,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:120,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:121,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:123,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:123,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:124,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:125,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:126,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:128,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:128,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:129,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:130,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:131,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:133,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:133,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:134,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:135,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:136,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:140,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:141,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:142,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:143,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:144,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:145,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:146,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:147,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:148,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:149,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:150,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:151,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:152,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:153,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:154,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:155,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:167,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:168,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:169,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:170,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:171,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:172,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:173,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:174,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:175,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:176,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:177,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:178,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:179,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:180,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:181,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:182,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:184,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:185,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:186,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:187,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:188,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:189,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:190,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:191,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:192,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:193,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:194,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:195,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:196,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:197,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:198,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:199,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:201,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:202,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:203,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:204,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:205,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:206,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:207,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:208,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:209,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:210,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:211,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:212,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:213,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:214,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:215,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:216,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:218,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:219,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:220,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:221,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:222,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:223,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:224,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:225,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:226,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:227,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:228,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:229,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:230,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:231,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:232,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:233,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:235,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:236,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:237,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:238,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:239,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:240,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:241,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:242,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:243,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:244,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:245,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:246,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:247,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:248,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:249,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:250,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:266,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:267,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:268,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:276,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:276,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:277,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:278,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:279,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:281,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:281,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:282,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:283,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:284,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:286,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:286,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:287,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:288,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:289,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:291,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:291,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:292,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:293,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:294,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:296,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:296,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:297,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:298,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:299,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:301,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:301,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:302,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:303,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:304,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:306,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:306,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:307,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:308,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:309,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:311,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:311,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:312,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:313,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:314,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:318,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:319,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:320,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:321,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:322,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:323,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:324,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:325,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:326,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:327,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:328,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:329,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:330,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:331,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:332,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 219
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 344
    functionName: Botan::SHA_512::compress_digest_x86_avx2
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp
    functionUses: 2
    functionsReached:
    - Botan::SIMD_4x64::broadcast_2x64
    - auto::store_le2
    - Botan::SIMD_4x64::load_be2
    - auto::store_le
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - SHA2_64_F
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - std::span<const uint8_t>::data
    - sha512_next_w
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: "BOTAN_FN_ISA_AVX2_BMI2 SHA_512::compress_digest_x86_avx2(digest_type&
      digest,\n                                                              std::span<const
      uint8_t> input,\n                                                              size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:21,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: Botan::sha512_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - template rotr<61>
    - template rotr<19>
    - template shr<6>
    - auto::template rotr<1>
    - auto::template shr<7>
    - auto::template rotr<8>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_next_w(SIMD_T x[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:21,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: Botan::sha512_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - template rotr<61>
    - template rotr<19>
    - template shr<6>
    - auto::template rotr<1>
    - auto::template shr<7>
    - auto::template rotr<8>
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha512_next_w(SIMD_T x[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:82,1
    - Dst: Botan::SIMD_4x64::load_be2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:88,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:89,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:90,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:98,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:98,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:99,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:100,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:101,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:103,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:103,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:104,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:105,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:106,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:108,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:108,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:109,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:110,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:111,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:113,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:113,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:114,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:115,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:116,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:118,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:118,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:119,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:120,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:121,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:123,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:123,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:124,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:125,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:126,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:128,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:128,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:129,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:130,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:131,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:133,1
    - Dst: Botan::SIMD_4x64::broadcast_2x64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:133,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:134,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:135,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:136,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:140,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:141,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:142,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:143,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:144,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:145,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:146,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:147,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:148,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:149,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:150,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:151,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:152,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:153,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:154,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:155,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:167,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:168,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:169,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:170,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:171,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:172,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:173,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:174,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:175,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:176,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:177,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:178,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:179,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:180,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:181,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:182,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:184,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:185,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:186,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:187,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:188,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:189,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:190,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:191,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:192,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:193,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:194,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:195,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:196,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:197,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:198,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:199,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:201,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:202,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:203,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:204,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:205,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:206,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:207,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:208,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:209,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:210,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:211,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:212,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:213,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:214,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:215,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:216,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:218,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:219,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:220,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:221,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:222,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:223,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:224,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:225,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:226,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:227,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:228,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:229,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:230,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:231,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:232,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:233,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:235,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:236,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:237,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:238,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:239,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:240,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:241,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:242,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:243,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:244,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:245,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:246,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:247,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:248,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:249,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:250,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:266,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:267,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:268,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:276,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:276,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:277,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:278,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:279,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:281,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:281,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:282,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:283,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:284,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:286,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:286,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:287,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:288,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:289,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:291,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:291,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:292,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:293,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:294,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:296,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:296,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:297,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:298,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:299,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:301,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:301,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:302,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:303,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:304,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:306,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:306,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:307,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:308,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:309,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:311,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:311,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:312,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:313,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:314,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:318,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:319,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:320,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:321,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:322,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:323,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:324,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:325,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:326,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:327,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:328,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:329,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:330,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:331,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:332,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 219
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 344
    functionName: Botan::SHA_512::compress_digest_x86_avx2
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp
    functionUses: 2
    functionsReached:
    - Botan::SIMD_4x64::broadcast_2x64
    - auto::store_le2
    - Botan::SIMD_4x64::load_be2
    - auto::store_le
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - SHA2_64_F
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - std::span<const uint8_t>::data
    - sha512_next_w
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: "BOTAN_FN_ISA_AVX2_BMI2 SHA_512::compress_digest_x86_avx2(digest_type&
      digest,\n                                                              std::span<const
      uint8_t> input,\n                                                              size_t
      blocks)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:26,1
    - Dst: compress_digest_armv8
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:27,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:32,1
    - Dst: compress_digest_x86
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:33,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:38,1
    - Dst: compress_digest_x86_avx2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:39,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:56,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:56,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:60,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:61,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:62,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:63,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:64,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:65,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:66,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:67,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:68,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:69,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:70,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:71,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:72,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:73,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:74,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:75,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:76,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:77,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:78,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:79,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:80,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:81,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:82,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:83,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:84,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:85,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:86,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:87,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:88,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:89,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:90,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:91,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:92,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:93,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:94,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:95,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:96,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:97,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:98,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:99,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:100,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:101,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:102,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:103,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:104,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:105,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:106,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:107,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:108,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:109,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:110,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:111,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:112,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:113,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:114,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:115,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:116,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:117,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:118,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:119,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:120,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:121,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:122,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:123,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:124,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:125,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:126,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:127,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:128,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:129,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:130,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:131,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:132,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:133,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:134,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:135,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:136,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:137,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:138,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:139,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:140,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:141,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:142,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:143,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:144,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:145,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:146,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:147,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:148,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:149,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:150,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:151,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:152,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:153,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:154,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:155,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:156,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:157,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:158,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:159,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:160,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:161,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:162,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:163,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:164,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:165,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:166,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:167,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:168,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:169,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:170,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:171,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:172,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:173,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:174,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 137
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 188
    functionName: Botan::SM3::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - compress_digest_x86
    - compress_digest_armv8
    - R1
    - R2
    - load_be
    - compress_digest_x86_avx2
    - BufferSlicer::take
    - SM3_E
    - has
    linkageType: ''
    returnType: void
    signature: void SM3::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: Botan::SM3::init
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SM3::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SM3>
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Botan::SM3::new_object
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SM3>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SM3::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SM3>
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan::SM3::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SM3>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SM3::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan::SM3::add_data
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SM3::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: Botan::SM3::final_result
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SM3::final_result(std::span<uint8_t> output)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:213,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:219,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 231
    functionName: Botan::SM3::provider
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string SM3::provider() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:26,1
    - Dst: compress_digest_armv8
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:27,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:32,1
    - Dst: compress_digest_x86
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:33,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:38,1
    - Dst: compress_digest_x86_avx2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:39,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:56,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:56,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:60,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:61,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:62,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:63,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:64,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:65,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:66,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:67,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:68,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:69,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:70,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:71,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:72,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:73,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:74,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:75,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:76,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:77,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:78,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:79,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:80,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:81,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:82,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:83,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:84,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:85,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:86,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:87,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:88,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:89,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:90,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:91,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:92,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:93,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:94,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:95,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:96,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:97,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:98,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:99,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:100,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:101,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:102,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:103,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:104,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:105,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:106,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:107,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:108,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:109,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:110,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:111,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:112,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:113,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:114,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:115,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:116,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:117,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:118,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:119,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:120,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:121,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:122,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:123,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:124,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:125,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:126,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:127,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:128,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:129,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:130,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:131,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:132,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:133,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:134,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:135,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:136,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:137,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:138,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:139,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:140,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:141,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:142,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:143,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:144,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:145,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:146,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:147,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:148,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:149,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:150,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:151,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:152,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:153,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:154,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:155,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:156,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:157,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:158,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:159,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:160,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:161,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:162,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:163,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:164,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:165,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:166,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:167,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:168,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:169,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:170,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:171,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:172,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:173,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:174,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 137
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 188
    functionName: Botan::SM3::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - compress_digest_x86
    - compress_digest_armv8
    - R1
    - R2
    - load_be
    - compress_digest_x86_avx2
    - BufferSlicer::take
    - SM3_E
    - has
    linkageType: ''
    returnType: void
    signature: void SM3::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: Botan::SM3::init
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void SM3::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SM3>
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Botan::SM3::new_object
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SM3>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SM3::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SM3>
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan::SM3::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SM3>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SM3::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Botan::SM3::add_data
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void SM3::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: Botan::SM3::final_result
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void SM3::final_result(std::span<uint8_t> output)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:213,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:219,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 231
    functionName: Botan::SM3::provider
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::check
    linkageType: ''
    returnType: std::string
    signature: std::string SM3::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:18,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: Botan::P0
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_fn.h
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t P0(uint32_t X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:32,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:33,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:37,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:39,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 11
    argNames:
    - A
    - ' B'
    - C
    - ' D'
    - E
    - ' F'
    - G
    - ' H'
    - TJ
    - Wi
    - Wj
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: Botan::R1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_fn.h
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::P0
    linkageType: ''
    returnType: void
    signature: "void R1(uint32_t A,\n               uint32_t& B,\n               uint32_t
      C,\n               uint32_t& D,\n               uint32_t E,\n               uint32_t&
      F,\n               uint32_t G,\n               uint32_t& H,\n               uint32_t
      TJ,\n               uint32_t Wi,\n               uint32_t Wj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:54,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:55,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:56,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:57,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:59,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:61,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 11
    argNames:
    - A
    - ' B'
    - C
    - ' D'
    - E
    - ' F'
    - G
    - ' H'
    - TJ
    - Wi
    - Wj
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 63
    functionName: Botan::R2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_fn.h
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::P0
    - Botan::choose
    - Botan::majority
    linkageType: ''
    returnType: void
    signature: "void R2(uint32_t A,\n               uint32_t& B,\n               uint32_t
      C,\n               uint32_t& D,\n               uint32_t E,\n               uint32_t&
      F,\n               uint32_t G,\n               uint32_t& H,\n               uint32_t
      TJ,\n               uint32_t Wi,\n               uint32_t Wj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:66,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::P1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_fn.h
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t P1(uint32_t X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::P1
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:70,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:70,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - W0
    - W7
    - W13
    - W3
    - W10
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::SM3_E
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_fn.h
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::P1
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SM3_E(uint32_t W0, uint32_t W7, uint32_t W13, uint32_t W3,
      uint32_t W10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:18,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: Botan::P0
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_fn.h
    functionUses: 2
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t P0(uint32_t X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:32,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:33,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:37,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:39,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 11
    argNames:
    - A
    - ' B'
    - C
    - ' D'
    - E
    - ' F'
    - G
    - ' H'
    - TJ
    - Wi
    - Wj
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: Botan::R1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_fn.h
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::P0
    linkageType: ''
    returnType: void
    signature: "void R1(uint32_t A,\n               uint32_t& B,\n               uint32_t
      C,\n               uint32_t& D,\n               uint32_t E,\n               uint32_t&
      F,\n               uint32_t G,\n               uint32_t& H,\n               uint32_t
      TJ,\n               uint32_t Wi,\n               uint32_t Wj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:54,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:55,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:56,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:57,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:59,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:61,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 11
    argNames:
    - A
    - ' B'
    - C
    - ' D'
    - E
    - ' F'
    - G
    - ' H'
    - TJ
    - Wi
    - Wj
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 63
    functionName: Botan::R2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_fn.h
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::P0
    - Botan::choose
    - Botan::majority
    linkageType: ''
    returnType: void
    signature: "void R2(uint32_t A,\n               uint32_t& B,\n               uint32_t
      C,\n               uint32_t& D,\n               uint32_t E,\n               uint32_t&
      F,\n               uint32_t G,\n               uint32_t& H,\n               uint32_t
      TJ,\n               uint32_t Wi,\n               uint32_t Wj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:66,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::P1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_fn.h
    functionUses: 1
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t P1(uint32_t X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::P1
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:70,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:70,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3_fn.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - W0
    - W7
    - W13
    - W3
    - W10
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::SM3_E
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_fn.h
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::P1
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SM3_E(uint32_t W0, uint32_t W7, uint32_t W13, uint32_t W3,
      uint32_t W10)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::SM3::name
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::SM3::output_length
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::SM3::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM3::clear
      Src: /src/botan/src/lib/hash/sm3/sm3.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::SM3::clear
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.h
    functionUses: 1
    functionsReached:
    - Botan::SM3::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::SM3::name
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::SM3::output_length
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::SM3::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM3::clear
      Src: /src/botan/src/lib/hash/sm3/sm3.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::SM3::clear
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.h
    functionUses: 2
    functionsReached:
    - Botan::SM3::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::alignr12
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_alignr_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr12(const SIMD_8x32& a, const SIMD_8x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::alignr12
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 0
    functionsReached:
    - _mm_alignr_epi8
    - raw
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr12(const SIMD_4x32& a, const SIMD_4x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::alignr12
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:28,1
    - Dst: Botan::alignr12
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:29,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:30,1
    - Dst: template shift_elems_right<1>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:31,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:33,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:34,1
    - Dst: auto::template rotl<23>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:34,1
    - Dst: auto::template rotl<7>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:35,1
    - Dst: auto::template shift_elems_left<3>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:43,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    - Dst: auto::template rotl<30>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    - Dst: auto::template rotl<6>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_T
    - SIMD_T
    - SIMD_T
    - SIMD_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: Botan::next_SM3_W
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotl<6>
    - Botan::SIMD_4x32::alignr8
    - auto::template rotl<7>
    - auto::template rotl<30>
    - auto::template rotl<23>
    - auto::template shift_elems_left<3>
    - auto::template rotl<15>
    - Botan::alignr12
    - template shift_elems_right<1>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 next_SM3_W(SIMD_T& W0, const SIMD_T& W1, const
      SIMD_T& W2, const SIMD_T& W3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::alignr12
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 1
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_alignr_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr12(const SIMD_8x32& a, const SIMD_8x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::alignr12
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 1
    functionsReached:
    - _mm_alignr_epi8
    - raw
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr12(const SIMD_4x32& a, const SIMD_4x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::alignr12
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:28,1
    - Dst: Botan::alignr12
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:29,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:30,1
    - Dst: template shift_elems_right<1>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:31,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:33,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:34,1
    - Dst: auto::template rotl<23>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:34,1
    - Dst: auto::template rotl<7>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:35,1
    - Dst: auto::template shift_elems_left<3>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:43,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    - Dst: auto::template rotl<30>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    - Dst: auto::template rotl<6>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_T
    - SIMD_T
    - SIMD_T
    - SIMD_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: Botan::next_SM3_W
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotl<6>
    - Botan::SIMD_4x32::alignr8
    - auto::template rotl<7>
    - auto::template rotl<30>
    - auto::template rotl<23>
    - auto::template shift_elems_left<3>
    - auto::template rotl<15>
    - Botan::alignr12
    - template shift_elems_right<1>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 next_SM3_W(SIMD_T& W0, const SIMD_T& W1, const
      SIMD_T& W2, const SIMD_T& W3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:70,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:75,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:76,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:77,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:78,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:80,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:81,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:82,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:83,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:90,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:91,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:92,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:93,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:94,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:95,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:97,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:98,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:99,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:100,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:101,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:102,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:104,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:105,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:106,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:107,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:108,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:109,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:111,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:112,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:113,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:114,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:115,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:116,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:118,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:119,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:120,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:121,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:122,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:123,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:125,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:126,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:127,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:128,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:129,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:130,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:132,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:133,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:134,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:135,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:136,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:137,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:139,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:140,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:141,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:142,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:143,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:144,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:146,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:147,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:148,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:149,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:150,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:151,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:153,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:154,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:155,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:156,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:157,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:158,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:160,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:161,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:162,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:163,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:164,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:165,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:167,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:168,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:169,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:170,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:171,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:172,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:174,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:175,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:176,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:177,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:178,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:179,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:181,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:182,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:183,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:184,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:186,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:187,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:188,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:189,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:191,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:192,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:193,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:194,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:208,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:209,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:210,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:211,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:212,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:213,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:214,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:215,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:216,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:217,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:218,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:219,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:220,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:221,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:222,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:223,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:224,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:225,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:226,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:227,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:228,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:229,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:230,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:231,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:232,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:233,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:234,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:235,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:236,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:237,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:238,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:239,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:240,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:241,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:242,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:243,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:244,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:245,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:246,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:247,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:248,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:249,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:250,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:251,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:252,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:253,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:254,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:255,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:256,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:257,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:258,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:259,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:260,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:261,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:262,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:263,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:264,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:265,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:266,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:267,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:268,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:269,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:270,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:271,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:286,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:287,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:288,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:289,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:291,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:292,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:293,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:294,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:301,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:302,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:303,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:304,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:305,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:306,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:308,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:309,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:310,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:311,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:312,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:313,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:315,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:316,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:317,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:318,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:319,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:320,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:322,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:323,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:324,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:325,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:326,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:327,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:329,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:330,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:331,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:332,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:333,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:334,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:336,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:337,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:338,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:339,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:340,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:341,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:343,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:344,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:345,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:346,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:347,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:348,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:350,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:351,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:352,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:353,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:354,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:355,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:357,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:358,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:359,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:360,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:361,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:362,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:364,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:365,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:366,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:367,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:368,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:369,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:371,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:372,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:373,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:374,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:375,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:376,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:378,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:379,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:380,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:381,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:382,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:383,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:385,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:386,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:387,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:388,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:389,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:390,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:392,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:393,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:394,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:395,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:397,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:398,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:399,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:400,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:402,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:403,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:404,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 285
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 420
    functionName: Botan::void::compress_digest_x86_avx2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::store_le
    - R1
    - R2
    - Botan::SIMD_8x32::load_be128
    - next_SM3_W
    - auto::store_le128
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: "BOTAN_FN_ISA_AVX2_BMI2 void SM3::compress_digest_x86_avx2(digest_type&
      digest,\n                                                          std::span<const
      uint8_t> input,\n                                                          size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::alignr12
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 2
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_alignr_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr12(const SIMD_8x32& a, const SIMD_8x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::alignr12
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 2
    functionsReached:
    - _mm_alignr_epi8
    - raw
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr12(const SIMD_4x32& a, const SIMD_4x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::alignr12
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:28,1
    - Dst: Botan::alignr12
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:29,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:30,1
    - Dst: template shift_elems_right<1>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:31,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:33,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:34,1
    - Dst: auto::template rotl<23>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:34,1
    - Dst: auto::template rotl<7>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:35,1
    - Dst: auto::template shift_elems_left<3>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:43,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    - Dst: auto::template rotl<30>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    - Dst: auto::template rotl<6>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_T
    - SIMD_T
    - SIMD_T
    - SIMD_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: Botan::next_SM3_W
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotl<6>
    - Botan::SIMD_4x32::alignr8
    - auto::template rotl<7>
    - auto::template rotl<30>
    - auto::template rotl<23>
    - auto::template shift_elems_left<3>
    - auto::template rotl<15>
    - Botan::alignr12
    - template shift_elems_right<1>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 next_SM3_W(SIMD_T& W0, const SIMD_T& W1, const
      SIMD_T& W2, const SIMD_T& W3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::alignr12
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 3
    functionsReached:
    - SIMD_8x32
    - raw
    - _mm256_alignr_epi8
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr12(const SIMD_8x32& a, const SIMD_8x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::alignr12
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 3
    functionsReached:
    - _mm_alignr_epi8
    - raw
    - SIMD_4x32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 alignr12(const SIMD_4x32& a, const SIMD_4x32&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::alignr12
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:28,1
    - Dst: Botan::alignr12
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:29,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:30,1
    - Dst: template shift_elems_right<1>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:31,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:33,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:34,1
    - Dst: auto::template rotl<23>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:34,1
    - Dst: auto::template rotl<7>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:35,1
    - Dst: auto::template shift_elems_left<3>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:43,1
    - Dst: auto::template rotl<15>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    - Dst: auto::template rotl<30>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    - Dst: auto::template rotl<6>
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_T
    - SIMD_T
    - SIMD_T
    - SIMD_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: Botan::next_SM3_W
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotl<6>
    - Botan::SIMD_4x32::alignr8
    - auto::template rotl<7>
    - auto::template rotl<30>
    - auto::template rotl<23>
    - auto::template shift_elems_left<3>
    - auto::template rotl<15>
    - Botan::alignr12
    - template shift_elems_right<1>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: BOTAN_FN_ISA_AVX2_BMI2 next_SM3_W(SIMD_T& W0, const SIMD_T& W1, const
      SIMD_T& W2, const SIMD_T& W3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:70,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:75,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:76,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:77,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:78,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:80,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:81,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:82,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:83,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:90,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:91,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:92,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:93,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:94,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:95,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:97,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:98,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:99,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:100,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:101,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:102,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:104,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:105,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:106,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:107,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:108,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:109,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:111,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:112,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:113,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:114,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:115,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:116,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:118,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:119,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:120,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:121,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:122,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:123,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:125,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:126,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:127,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:128,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:129,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:130,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:132,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:133,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:134,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:135,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:136,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:137,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:139,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:140,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:141,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:142,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:143,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:144,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:146,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:147,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:148,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:149,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:150,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:151,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:153,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:154,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:155,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:156,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:157,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:158,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:160,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:161,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:162,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:163,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:164,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:165,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:167,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:168,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:169,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:170,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:171,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:172,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:174,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:175,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:176,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:177,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:178,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:179,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:181,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:182,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:183,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:184,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:186,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:187,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:188,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:189,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:191,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:192,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:193,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:194,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:208,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:209,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:210,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:211,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:212,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:213,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:214,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:215,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:216,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:217,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:218,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:219,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:220,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:221,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:222,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:223,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:224,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:225,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:226,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:227,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:228,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:229,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:230,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:231,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:232,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:233,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:234,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:235,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:236,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:237,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:238,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:239,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:240,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:241,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:242,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:243,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:244,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:245,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:246,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:247,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:248,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:249,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:250,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:251,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:252,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:253,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:254,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:255,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:256,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:257,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:258,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:259,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:260,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:261,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:262,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:263,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:264,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:265,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:266,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:267,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:268,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:269,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:270,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:271,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:286,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:287,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:288,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:289,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:291,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:292,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:293,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:294,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:301,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:302,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:303,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:304,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:305,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:306,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:308,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:309,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:310,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:311,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:312,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:313,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:315,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:316,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:317,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:318,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:319,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:320,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:322,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:323,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:324,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:325,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:326,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:327,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:329,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:330,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:331,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:332,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:333,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:334,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:336,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:337,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:338,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:339,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:340,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:341,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:343,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:344,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:345,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:346,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:347,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:348,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:350,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:351,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:352,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:353,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:354,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:355,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:357,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:358,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:359,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:360,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:361,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:362,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:364,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:365,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:366,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:367,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:368,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:369,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:371,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:372,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:373,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:374,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:375,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:376,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:378,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:379,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:380,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:381,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:382,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:383,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:385,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:386,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:387,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:388,1
    - Dst: next_SM3_W
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:389,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:390,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:392,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:393,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:394,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:395,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:397,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:398,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:399,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:400,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:402,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:403,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:404,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 285
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 420
    functionName: Botan::void::compress_digest_x86_avx2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_avx2_bmi2/sm3_avx2_bmi2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::store_le
    - R1
    - R2
    - Botan::SIMD_8x32::load_be128
    - next_SM3_W
    - auto::store_le128
    - std::span<const uint8_t>::data
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_BMI2
    signature: "BOTAN_FN_ISA_AVX2_BMI2 void SM3::compress_digest_x86_avx2(digest_type&
      digest,\n                                                          std::span<const
      uint8_t> input,\n                                                          size_t
      blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vrev64q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:40,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::sm3_reverse_words
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - vrev64q_u32
    - vextq_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_reverse_words(uint32x4_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsetq_lane_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:46,1
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - round
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: Botan::sm3_tj
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - vsetq_lane_u32
    - vdupq_n_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_tj(size_t round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:51,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:51,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:52,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:53,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:55,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:55,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:56,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:57,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:59,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:59,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:60,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:61,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:63,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:63,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:64,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - ' S0'
    - ' S1'
    - w
    - w_prime
    - round
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: Botan::sm3_x4_r1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - Botan::sm3_tj
    - vsm3tt2aq_u32
    - vsm3tt1aq_u32
    - vsm3ss1q_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_x4_r1(\n   uint32x4_t& S0, uint32x4_t& S1,
      uint32x4_t w, uint32x4_t w_prime, size_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:70,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:70,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:71,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:72,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:74,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:74,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:75,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:76,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:78,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:78,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:79,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:80,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:82,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:82,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:83,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - ' S0'
    - ' S1'
    - w
    - w_prime
    - round
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: Botan::sm3_x4_r2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - Botan::sm3_tj
    - vsm3tt1bq_u32
    - vsm3ss1q_u32
    - vsm3tt2bq_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_x4_r2(\n   uint32x4_t& S0, uint32x4_t& S1,
      uint32x4_t w, uint32x4_t w_prime, size_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:91,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:92,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:93,1
    - Dst: vsm3partw1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:95,1
    - Dst: vsm3partw2q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' w0'
    - ' w1'
    - ' w2'
    - ' w3'
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: Botan::sm3_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - vsm3partw1q_u32
    - vextq_u32
    - vsm3partw2q_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_msg_expand(uint32x4_t& w0,\n                                                        const
      uint32x4_t& w1,\n                                                        const
      uint32x4_t& w2,\n                                                        const
      uint32x4_t& w3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vrev64q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:40,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::sm3_reverse_words
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - vrev64q_u32
    - vextq_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_reverse_words(uint32x4_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsetq_lane_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:46,1
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - round
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: Botan::sm3_tj
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 2
    functionsReached:
    - vsetq_lane_u32
    - vdupq_n_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_tj(size_t round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:51,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:51,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:52,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:53,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:55,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:55,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:56,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:57,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:59,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:59,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:60,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:61,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:63,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:63,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:64,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - ' S0'
    - ' S1'
    - w
    - w_prime
    - round
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: Botan::sm3_x4_r1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - Botan::sm3_tj
    - vsm3tt2aq_u32
    - vsm3tt1aq_u32
    - vsm3ss1q_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_x4_r1(\n   uint32x4_t& S0, uint32x4_t& S1,
      uint32x4_t w, uint32x4_t w_prime, size_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:70,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:70,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:71,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:72,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:74,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:74,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:75,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:76,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:78,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:78,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:79,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:80,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:82,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:82,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:83,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - ' S0'
    - ' S1'
    - w
    - w_prime
    - round
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: Botan::sm3_x4_r2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - Botan::sm3_tj
    - vsm3tt1bq_u32
    - vsm3ss1q_u32
    - vsm3tt2bq_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_x4_r2(\n   uint32x4_t& S0, uint32x4_t& S1,
      uint32x4_t w, uint32x4_t w_prime, size_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:91,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:92,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:93,1
    - Dst: vsm3partw1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:95,1
    - Dst: vsm3partw2q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' w0'
    - ' w1'
    - ' w2'
    - ' w3'
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: Botan::sm3_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - vsm3partw1q_u32
    - vextq_u32
    - vsm3partw2q_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_msg_expand(uint32x4_t& w0,\n                                                        const
      uint32x4_t& w1,\n                                                        const
      uint32x4_t& w2,\n                                                        const
      uint32x4_t& w3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sm3_reverse_words
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:102,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:102,1
    - Dst: sm3_reverse_words
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:103,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:103,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:105,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:111,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:111,1
    - Dst: vld1q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:111,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:112,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:112,1
    - Dst: vld1q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:112,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:113,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:113,1
    - Dst: vld1q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:113,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:114,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:114,1
    - Dst: vld1q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:114,1
    - Dst: sm3_x4_r1
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:119,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:119,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:120,1
    - Dst: sm3_x4_r1
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:122,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:122,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:123,1
    - Dst: sm3_x4_r1
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:125,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:125,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:126,1
    - Dst: sm3_x4_r1
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:128,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:128,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:129,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:131,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:131,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:132,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:134,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:134,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:135,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:137,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:137,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:138,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:140,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:140,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:141,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:143,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:143,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:144,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:146,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:146,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:147,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:149,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:149,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:150,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:152,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:152,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:153,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:155,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:155,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:156,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:158,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:158,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:159,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:159,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:160,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:160,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:162,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:163,1
    - Dst: vst1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:166,1
    - Dst: sm3_reverse_words
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:166,1
    - Dst: vst1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:167,1
    - Dst: sm3_reverse_words
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 168
    functionName: Botan::BOTAN_FN_ISA_SM3::compress_digest_armv8
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - sm3_x4_r1
    - vrev32q_u8
    - sm3_x4_r2
    - veorq_u32
    - vld1q_u8
    - vst1q_u32
    - sm3_reverse_words
    - vreinterpretq_u32_u8
    - vld1q_u32
    - sm3_msg_expand
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_SM3 SM3::compress_digest_armv8(digest_type& digest,
      std::span<const uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vrev64q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:40,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::sm3_reverse_words
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - vrev64q_u32
    - vextq_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_reverse_words(uint32x4_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsetq_lane_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:46,1
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - round
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: Botan::sm3_tj
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 4
    functionsReached:
    - vsetq_lane_u32
    - vdupq_n_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_tj(size_t round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:51,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:51,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:52,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:53,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:55,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:55,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:56,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:57,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:59,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:59,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:60,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:61,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:63,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:63,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:64,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - ' S0'
    - ' S1'
    - w
    - w_prime
    - round
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: Botan::sm3_x4_r1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - Botan::sm3_tj
    - vsm3tt2aq_u32
    - vsm3tt1aq_u32
    - vsm3ss1q_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_x4_r1(\n   uint32x4_t& S0, uint32x4_t& S1,
      uint32x4_t w, uint32x4_t w_prime, size_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:70,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:70,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:71,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:72,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:74,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:74,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:75,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:76,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:78,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:78,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:79,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:80,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:82,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:82,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:83,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - ' S0'
    - ' S1'
    - w
    - w_prime
    - round
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: Botan::sm3_x4_r2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - Botan::sm3_tj
    - vsm3tt1bq_u32
    - vsm3ss1q_u32
    - vsm3tt2bq_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_x4_r2(\n   uint32x4_t& S0, uint32x4_t& S1,
      uint32x4_t w, uint32x4_t w_prime, size_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:91,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:92,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:93,1
    - Dst: vsm3partw1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:95,1
    - Dst: vsm3partw2q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' w0'
    - ' w1'
    - ' w2'
    - ' w3'
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: Botan::sm3_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - vsm3partw1q_u32
    - vextq_u32
    - vsm3partw2q_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_msg_expand(uint32x4_t& w0,\n                                                        const
      uint32x4_t& w1,\n                                                        const
      uint32x4_t& w2,\n                                                        const
      uint32x4_t& w3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vrev64q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:40,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::sm3_reverse_words
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - vrev64q_u32
    - vextq_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_reverse_words(uint32x4_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsetq_lane_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:46,1
    - Dst: vdupq_n_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - round
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: Botan::sm3_tj
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 6
    functionsReached:
    - vsetq_lane_u32
    - vdupq_n_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_tj(size_t round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:51,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:51,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:52,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:53,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:55,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:55,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:56,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:57,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:59,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:59,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:60,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:61,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:63,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:63,1
    - Dst: vsm3tt1aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:64,1
    - Dst: vsm3tt2aq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - ' S0'
    - ' S1'
    - w
    - w_prime
    - round
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: Botan::sm3_x4_r1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - Botan::sm3_tj
    - vsm3tt2aq_u32
    - vsm3tt1aq_u32
    - vsm3ss1q_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_x4_r1(\n   uint32x4_t& S0, uint32x4_t& S1,
      uint32x4_t w, uint32x4_t w_prime, size_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:70,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:70,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:71,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:72,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:74,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:74,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:75,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:76,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:78,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:78,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:79,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:80,1
    - Dst: vsm3ss1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:82,1
    - Dst: Botan::sm3_tj
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:82,1
    - Dst: vsm3tt1bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:83,1
    - Dst: vsm3tt2bq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - ' S0'
    - ' S1'
    - w
    - w_prime
    - round
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: Botan::sm3_x4_r2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - Botan::sm3_tj
    - vsm3tt1bq_u32
    - vsm3ss1q_u32
    - vsm3tt2bq_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_x4_r2(\n   uint32x4_t& S0, uint32x4_t& S1,
      uint32x4_t w, uint32x4_t w_prime, size_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:91,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:92,1
    - Dst: vextq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:93,1
    - Dst: vsm3partw1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:95,1
    - Dst: vsm3partw2q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' w0'
    - ' w1'
    - ' w2'
    - ' w3'
    argTypes:
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: Botan::sm3_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - vsm3partw1q_u32
    - vextq_u32
    - vsm3partw2q_u32
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: "BOTAN_FORCE_INLINE sm3_msg_expand(uint32x4_t& w0,\n                                                        const
      uint32x4_t& w1,\n                                                        const
      uint32x4_t& w2,\n                                                        const
      uint32x4_t& w3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sm3_reverse_words
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:102,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:102,1
    - Dst: sm3_reverse_words
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:103,1
    - Dst: vld1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:103,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:105,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:111,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:111,1
    - Dst: vld1q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:111,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:112,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:112,1
    - Dst: vld1q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:112,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:113,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:113,1
    - Dst: vld1q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:113,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:114,1
    - Dst: vrev32q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:114,1
    - Dst: vld1q_u8
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:114,1
    - Dst: sm3_x4_r1
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:119,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:119,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:120,1
    - Dst: sm3_x4_r1
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:122,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:122,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:123,1
    - Dst: sm3_x4_r1
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:125,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:125,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:126,1
    - Dst: sm3_x4_r1
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:128,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:128,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:129,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:131,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:131,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:132,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:134,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:134,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:135,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:137,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:137,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:138,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:140,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:140,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:141,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:143,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:143,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:144,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:146,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:146,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:147,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:149,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:149,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:150,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:152,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:152,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:153,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:155,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:155,1
    - Dst: sm3_msg_expand
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:156,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:158,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:158,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:159,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:159,1
    - Dst: sm3_x4_r2
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:160,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:160,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:162,1
    - Dst: veorq_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:163,1
    - Dst: vst1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:166,1
    - Dst: sm3_reverse_words
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:166,1
    - Dst: vst1q_u32
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:167,1
    - Dst: sm3_reverse_words
      Src: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 168
    functionName: Botan::BOTAN_FN_ISA_SM3::compress_digest_armv8
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_armv8/sm3_armv8.cpp
    functionUses: 0
    functionsReached:
    - sm3_x4_r1
    - vrev32q_u8
    - sm3_x4_r2
    - veorq_u32
    - vld1q_u8
    - vst1q_u32
    - sm3_reverse_words
    - vreinterpretq_u32_u8
    - vld1q_u32
    - sm3_msg_expand
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void BOTAN_FN_ISA_SM3 SM3::compress_digest_armv8(digest_type& digest,
      std::span<const uint8_t> input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:22,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: Botan::sm3_permute_state_in
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - _mm_blend_epi16
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    - Botan::rotr
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_permute_state_in(SIMD_4x32& S0, SIMD_4x32& S1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:33,1
    - Dst: template shift_elems_right<1>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:34,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: _mm_sm3msg1_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: _mm_sm3msg2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: Botan::SM3_NI_next
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sm3msg2_epi32
    - Botan::SIMD_4x32::alignr8
    - _mm_alignr_epi8
    - auto::raw
    - _mm_sm3msg1_epi32
    - raw
    - SIMD_4x32
    - template shift_elems_right<1>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_SM3
    signature: "BOTAN_FN_ISA_AVX2_SM3 SM3_NI_next(SIMD_4x32& W0,\n                                              const
      SIMD_4x32& W1,\n                                              const SIMD_4x32&
      W2,\n                                              const SIMD_4x32& W3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: _mm_sm3rnds2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: _mm_sm3rnds2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' S0'
    - ' S1'
    - W0
    - W1
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: Botan::SM3_NI_Rx4
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::raw
    - auto::raw
    - raw
    - SIMD_4x32
    - _mm_unpacklo_epi64
    - _mm_unpackhi_epi64
    - _mm_sm3rnds2_epi32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_SM3
    signature: BOTAN_FN_ISA_AVX2_SM3 SM3_NI_Rx4(SIMD_4x32& S0, SIMD_4x32& S1, SIMD_4x32
      W0, SIMD_4x32 W1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:22,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: Botan::sm3_permute_state_in
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - _mm_blend_epi16
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    - Botan::rotr
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_permute_state_in(SIMD_4x32& S0, SIMD_4x32& S1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:33,1
    - Dst: template shift_elems_right<1>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:34,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: _mm_sm3msg1_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: _mm_sm3msg2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: Botan::SM3_NI_next
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sm3msg2_epi32
    - Botan::SIMD_4x32::alignr8
    - _mm_alignr_epi8
    - auto::raw
    - _mm_sm3msg1_epi32
    - raw
    - SIMD_4x32
    - template shift_elems_right<1>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_SM3
    signature: "BOTAN_FN_ISA_AVX2_SM3 SM3_NI_next(SIMD_4x32& W0,\n                                              const
      SIMD_4x32& W1,\n                                              const SIMD_4x32&
      W2,\n                                              const SIMD_4x32& W3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: _mm_sm3rnds2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: _mm_sm3rnds2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' S0'
    - ' S1'
    - W0
    - W1
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: Botan::SM3_NI_Rx4
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::raw
    - auto::raw
    - raw
    - SIMD_4x32
    - _mm_unpacklo_epi64
    - _mm_unpackhi_epi64
    - _mm_sm3rnds2_epi32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_SM3
    signature: BOTAN_FN_ISA_AVX2_SM3 SM3_NI_Rx4(SIMD_4x32& S0, SIMD_4x32& S1, SIMD_4x32
      W0, SIMD_4x32 W1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:54,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:55,1
    - Dst: sm3_permute_state_in
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:56,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:58,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:61,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:62,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:63,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:64,1
    - Dst: SM3_NI_Rx4<0>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:72,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:73,1
    - Dst: SM3_NI_Rx4<4>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:75,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:76,1
    - Dst: SM3_NI_Rx4<8>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:78,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:79,1
    - Dst: SM3_NI_Rx4<12>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:81,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:82,1
    - Dst: SM3_NI_Rx4<16>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:84,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:85,1
    - Dst: SM3_NI_Rx4<20>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:87,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:88,1
    - Dst: SM3_NI_Rx4<24>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:90,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:91,1
    - Dst: SM3_NI_Rx4<28>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:93,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:94,1
    - Dst: SM3_NI_Rx4<32>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:96,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:97,1
    - Dst: SM3_NI_Rx4<36>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:99,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:100,1
    - Dst: SM3_NI_Rx4<40>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:102,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:103,1
    - Dst: SM3_NI_Rx4<44>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:105,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:106,1
    - Dst: SM3_NI_Rx4<48>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:108,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:109,1
    - Dst: SM3_NI_Rx4<52>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:111,1
    - Dst: SM3_NI_Rx4<56>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:112,1
    - Dst: SM3_NI_Rx4<60>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:113,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:121,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:122,1
    - Dst: rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:126,1
    - Dst: rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:127,1
    - Dst: rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:130,1
    - Dst: rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 132
    functionName: Botan::void::compress_digest_x86
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - SM3_NI_Rx4<24>
    - SM3_NI_Rx4<28>
    - SM3_NI_Rx4<16>
    - SM3_NI_Rx4<8>
    - SM3_NI_next
    - SM3_NI_Rx4<60>
    - SM3_NI_Rx4<4>
    - SM3_NI_Rx4<48>
    - SM3_NI_Rx4<56>
    - Botan::SIMD_4x32::load_le
    - SM3_NI_Rx4<32>
    - std::span<const uint8_t>::data
    - SM3_NI_Rx4<36>
    - SM3_NI_Rx4<20>
    - auto::store_le
    - sm3_permute_state_in
    - rotr
    - SM3_NI_Rx4<40>
    - SM3_NI_Rx4<52>
    - SM3_NI_Rx4<12>
    - SM3_NI_Rx4<0>
    - SM3_NI_Rx4<44>
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_SM3
    signature: "BOTAN_FN_ISA_AVX2_SM3 void SM3::compress_digest_x86(digest_type& digest,\n
      \                                                   std::span<const uint8_t>
      input,\n                                                    size_t blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:22,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: Botan::sm3_permute_state_in
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - _mm_blend_epi16
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    - Botan::rotr
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_permute_state_in(SIMD_4x32& S0, SIMD_4x32& S1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:33,1
    - Dst: template shift_elems_right<1>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:34,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: _mm_sm3msg1_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: _mm_sm3msg2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: Botan::SM3_NI_next
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sm3msg2_epi32
    - Botan::SIMD_4x32::alignr8
    - _mm_alignr_epi8
    - auto::raw
    - _mm_sm3msg1_epi32
    - raw
    - SIMD_4x32
    - template shift_elems_right<1>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_SM3
    signature: "BOTAN_FN_ISA_AVX2_SM3 SM3_NI_next(SIMD_4x32& W0,\n                                              const
      SIMD_4x32& W1,\n                                              const SIMD_4x32&
      W2,\n                                              const SIMD_4x32& W3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: _mm_sm3rnds2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: _mm_sm3rnds2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' S0'
    - ' S1'
    - W0
    - W1
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: Botan::SM3_NI_Rx4
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::raw
    - auto::raw
    - raw
    - SIMD_4x32
    - _mm_unpacklo_epi64
    - _mm_unpackhi_epi64
    - _mm_sm3rnds2_epi32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_SM3
    signature: BOTAN_FN_ISA_AVX2_SM3 SM3_NI_Rx4(SIMD_4x32& S0, SIMD_4x32& S1, SIMD_4x32
      W0, SIMD_4x32 W1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:19,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:20,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:22,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: Botan::sm3_permute_state_in
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::alignr8
    - _mm_blend_epi16
    - raw
    - SIMD_4x32
    - _mm_shuffle_epi32
    - Botan::rotr
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sm3_permute_state_in(SIMD_4x32& S0, SIMD_4x32& S1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:31,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:32,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:33,1
    - Dst: template shift_elems_right<1>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:34,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: _mm_sm3msg1_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:36,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: _mm_sm3msg2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' W0'
    - ' W1'
    - ' W2'
    - ' W3'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: Botan::SM3_NI_next
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sm3msg2_epi32
    - Botan::SIMD_4x32::alignr8
    - _mm_alignr_epi8
    - auto::raw
    - _mm_sm3msg1_epi32
    - raw
    - SIMD_4x32
    - template shift_elems_right<1>
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_SM3
    signature: "BOTAN_FN_ISA_AVX2_SM3 SM3_NI_next(SIMD_4x32& W0,\n                                              const
      SIMD_4x32& W1,\n                                              const SIMD_4x32&
      W2,\n                                              const SIMD_4x32& W3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:42,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:43,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: _mm_sm3rnds2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:45,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: _mm_sm3rnds2_epi32
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' S0'
    - ' S1'
    - W0
    - W1
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: Botan::SM3_NI_Rx4
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - SIMD_4x32::raw
    - auto::raw
    - raw
    - SIMD_4x32
    - _mm_unpacklo_epi64
    - _mm_unpackhi_epi64
    - _mm_sm3rnds2_epi32
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_SM3
    signature: BOTAN_FN_ISA_AVX2_SM3 SM3_NI_Rx4(SIMD_4x32& S0, SIMD_4x32& S1, SIMD_4x32
      W0, SIMD_4x32 W1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:54,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:55,1
    - Dst: sm3_permute_state_in
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:56,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:58,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:61,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:62,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:63,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:64,1
    - Dst: SM3_NI_Rx4<0>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:72,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:73,1
    - Dst: SM3_NI_Rx4<4>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:75,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:76,1
    - Dst: SM3_NI_Rx4<8>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:78,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:79,1
    - Dst: SM3_NI_Rx4<12>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:81,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:82,1
    - Dst: SM3_NI_Rx4<16>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:84,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:85,1
    - Dst: SM3_NI_Rx4<20>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:87,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:88,1
    - Dst: SM3_NI_Rx4<24>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:90,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:91,1
    - Dst: SM3_NI_Rx4<28>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:93,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:94,1
    - Dst: SM3_NI_Rx4<32>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:96,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:97,1
    - Dst: SM3_NI_Rx4<36>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:99,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:100,1
    - Dst: SM3_NI_Rx4<40>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:102,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:103,1
    - Dst: SM3_NI_Rx4<44>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:105,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:106,1
    - Dst: SM3_NI_Rx4<48>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:108,1
    - Dst: SM3_NI_next
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:109,1
    - Dst: SM3_NI_Rx4<52>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:111,1
    - Dst: SM3_NI_Rx4<56>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:112,1
    - Dst: SM3_NI_Rx4<60>
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:113,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:121,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:122,1
    - Dst: rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:126,1
    - Dst: rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:127,1
    - Dst: rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:130,1
    - Dst: rotr
      Src: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 132
    functionName: Botan::void::compress_digest_x86
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3_x86/sm3_x86.cpp
    functionUses: 0
    functionsReached:
    - SM3_NI_Rx4<24>
    - SM3_NI_Rx4<28>
    - SM3_NI_Rx4<16>
    - SM3_NI_Rx4<8>
    - SM3_NI_next
    - SM3_NI_Rx4<60>
    - SM3_NI_Rx4<4>
    - SM3_NI_Rx4<48>
    - SM3_NI_Rx4<56>
    - Botan::SIMD_4x32::load_le
    - SM3_NI_Rx4<32>
    - std::span<const uint8_t>::data
    - SM3_NI_Rx4<36>
    - SM3_NI_Rx4<20>
    - auto::store_le
    - sm3_permute_state_in
    - rotr
    - SM3_NI_Rx4<40>
    - SM3_NI_Rx4<52>
    - SM3_NI_Rx4<12>
    - SM3_NI_Rx4<0>
    - SM3_NI_Rx4<44>
    - Botan::SIMD_4x32::load_be
    linkageType: ''
    returnType: BOTAN_FN_ISA_AVX2_SM3
    signature: "BOTAN_FN_ISA_AVX2_SM3 void SM3::compress_digest_x86(digest_type& digest,\n
      \                                                   std::span<const uint8_t>
      input,\n                                                    size_t blocks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:27,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::F1
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F1(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:36,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:37,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: Botan::F2
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void F2(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:47,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: Botan::F3
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F3(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:56,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:57,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: Botan::F4
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void F4(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:67,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::F5
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F5(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:27,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::F1
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F1(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:36,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:37,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: Botan::F2
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void F2(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:47,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: Botan::F3
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F3(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:56,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:57,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: Botan::F4
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void F4(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:67,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::F5
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F5(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:91,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:91,1
    - Dst: F1<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:107,1
    - Dst: F5< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:108,1
    - Dst: F1<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:109,1
    - Dst: F5< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:110,1
    - Dst: F1<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:111,1
    - Dst: F5< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:112,1
    - Dst: F1<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:113,1
    - Dst: F5<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:114,1
    - Dst: F1< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:115,1
    - Dst: F5<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:116,1
    - Dst: F1< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:117,1
    - Dst: F5<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:118,1
    - Dst: F1< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:119,1
    - Dst: F5<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:120,1
    - Dst: F1< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:121,1
    - Dst: F5< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:122,1
    - Dst: F1<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:123,1
    - Dst: F5< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:124,1
    - Dst: F1<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:125,1
    - Dst: F5< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:126,1
    - Dst: F1<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:127,1
    - Dst: F5< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:128,1
    - Dst: F1<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:129,1
    - Dst: F5<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:130,1
    - Dst: F1< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:131,1
    - Dst: F5<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:132,1
    - Dst: F1< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:133,1
    - Dst: F5<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:134,1
    - Dst: F1< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:135,1
    - Dst: F5<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:136,1
    - Dst: F1< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:137,1
    - Dst: F5< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:138,1
    - Dst: F2< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:140,1
    - Dst: F4< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:141,1
    - Dst: F2< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:142,1
    - Dst: F4<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:143,1
    - Dst: F2< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:144,1
    - Dst: F4<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:145,1
    - Dst: F2<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:146,1
    - Dst: F4< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:147,1
    - Dst: F2<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:148,1
    - Dst: F4<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:149,1
    - Dst: F2< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:150,1
    - Dst: F4< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:151,1
    - Dst: F2< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:152,1
    - Dst: F4< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:153,1
    - Dst: F2<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:154,1
    - Dst: F4<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:155,1
    - Dst: F2< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:156,1
    - Dst: F4< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:157,1
    - Dst: F2<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:158,1
    - Dst: F4< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:159,1
    - Dst: F2<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:160,1
    - Dst: F4<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:161,1
    - Dst: F2< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:162,1
    - Dst: F4< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:163,1
    - Dst: F2<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:164,1
    - Dst: F4< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:165,1
    - Dst: F2< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:166,1
    - Dst: F4<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:167,1
    - Dst: F2<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:168,1
    - Dst: F4<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:169,1
    - Dst: F2<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:170,1
    - Dst: F4<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:171,1
    - Dst: F3<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:173,1
    - Dst: F3< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:174,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:175,1
    - Dst: F3< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:176,1
    - Dst: F3< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:177,1
    - Dst: F3<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:178,1
    - Dst: F3< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:179,1
    - Dst: F3<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:180,1
    - Dst: F3<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:181,1
    - Dst: F3< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:182,1
    - Dst: F3< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:183,1
    - Dst: F3< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:184,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:185,1
    - Dst: F3< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:186,1
    - Dst: F3<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:187,1
    - Dst: F3<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:188,1
    - Dst: F3<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:189,1
    - Dst: F3<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:190,1
    - Dst: F3< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:191,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:192,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:193,1
    - Dst: F3< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:194,1
    - Dst: F3< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:195,1
    - Dst: F3<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:196,1
    - Dst: F3< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:197,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:198,1
    - Dst: F3<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:199,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:200,1
    - Dst: F3< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:201,1
    - Dst: F3< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:202,1
    - Dst: F3< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:203,1
    - Dst: F3< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:204,1
    - Dst: F4<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:206,1
    - Dst: F2<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:207,1
    - Dst: F4<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:208,1
    - Dst: F2< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:209,1
    - Dst: F4<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:210,1
    - Dst: F2< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:211,1
    - Dst: F4<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:212,1
    - Dst: F2<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:213,1
    - Dst: F4<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:214,1
    - Dst: F2<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:215,1
    - Dst: F4<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:216,1
    - Dst: F2<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:217,1
    - Dst: F4< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:218,1
    - Dst: F2< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:219,1
    - Dst: F4< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:220,1
    - Dst: F2<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:221,1
    - Dst: F4< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:222,1
    - Dst: F2< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:223,1
    - Dst: F4<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:224,1
    - Dst: F2< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:225,1
    - Dst: F4< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:226,1
    - Dst: F2<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:227,1
    - Dst: F4< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:228,1
    - Dst: F2< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:229,1
    - Dst: F4< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:230,1
    - Dst: F2<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:231,1
    - Dst: F4< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:232,1
    - Dst: F2< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:233,1
    - Dst: F4< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:234,1
    - Dst: F2<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:235,1
    - Dst: F4<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:236,1
    - Dst: F2< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:237,1
    - Dst: F5< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:239,1
    - Dst: F1< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:240,1
    - Dst: F5<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:241,1
    - Dst: F1< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:242,1
    - Dst: F5< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:243,1
    - Dst: F1<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:244,1
    - Dst: F5<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:245,1
    - Dst: F1< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:246,1
    - Dst: F5< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:247,1
    - Dst: F1<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:248,1
    - Dst: F5< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:249,1
    - Dst: F1< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:250,1
    - Dst: F5<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:251,1
    - Dst: F1<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:252,1
    - Dst: F5<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:253,1
    - Dst: F1< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:254,1
    - Dst: F5< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:255,1
    - Dst: F1< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:256,1
    - Dst: F5<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:257,1
    - Dst: F1<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:258,1
    - Dst: F5<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:259,1
    - Dst: F1< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:260,1
    - Dst: F5<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:261,1
    - Dst: F1< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:262,1
    - Dst: F5<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:263,1
    - Dst: F1<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:264,1
    - Dst: F5< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:265,1
    - Dst: F1<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:266,1
    - Dst: F5< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:267,1
    - Dst: F1<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:268,1
    - Dst: F5< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:269,1
    - Dst: F1<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 170
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 281
    functionName: Botan::RIPEMD_160::compress_n
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - F2< 9>
    - F4< 5>
    - F3<13>
    - F5<11>
    - F4<15>
    - F5<12>
    - F1<12>
    - F4<14>
    - F2<14>
    - F3<15>
    - F3< 7>
    - F1< 8>
    - F4< 8>
    - F5< 7>
    - F3<11>
    - F5<13>
    - F4< 6>
    - F3<14>
    - BufferSlicer::take
    - F2< 6>
    - F2<13>
    - F5< 8>
    - F5<15>
    - F5<14>
    - F3< 6>
    - F1<11>
    - F1< 6>
    - F4< 7>
    - F4<12>
    - F5< 9>
    - F4< 9>
    - F1<13>
    - F1< 7>
    - F3< 5>
    - F1< 5>
    - F1<14>
    - F4<11>
    - F3< 9>
    - F1<15>
    - F2< 5>
    - F5< 5>
    - load_le
    - F2<15>
    - F2< 7>
    - F1< 9>
    - F3<12>
    - F5< 6>
    - F4<13>
    - F2<11>
    - F3< 8>
    - F2<12>
    - F2< 8>
    linkageType: ''
    returnType: void
    signature: void RIPEMD_160::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: Botan::RIPEMD_160::init
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void RIPEMD_160::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RIPEMD_160>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: Botan::RIPEMD_160::new_object
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RIPEMD_160>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> RIPEMD_160::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RIPEMD_160>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: Botan::RIPEMD_160::copy_state
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RIPEMD_160>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> RIPEMD_160::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: Botan::RIPEMD_160::add_data
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void RIPEMD_160::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: Botan::RIPEMD_160::final_result
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void RIPEMD_160::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:27,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::F1
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F1(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:36,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:37,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: Botan::F2
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void F2(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:47,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: Botan::F3
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F3(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:56,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:57,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: Botan::F4
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void F4(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:67,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::F5
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F5(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:27,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::F1
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F1(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:36,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:37,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: Botan::F2
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void F2(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:47,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: Botan::F3
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F3(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:56,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:57,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: Botan::F4
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    - Botan::choose
    linkageType: ''
    returnType: void
    signature: void F4(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:67,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ' A'
    - B
    - ' C'
    - D
    - E
    - M
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::F5
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - Botan::rotl
    linkageType: ''
    returnType: void
    signature: void F5(uint32_t& A, uint32_t B, uint32_t& C, uint32_t D, uint32_t
      E, uint32_t M)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:91,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:91,1
    - Dst: F1<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:107,1
    - Dst: F5< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:108,1
    - Dst: F1<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:109,1
    - Dst: F5< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:110,1
    - Dst: F1<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:111,1
    - Dst: F5< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:112,1
    - Dst: F1<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:113,1
    - Dst: F5<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:114,1
    - Dst: F1< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:115,1
    - Dst: F5<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:116,1
    - Dst: F1< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:117,1
    - Dst: F5<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:118,1
    - Dst: F1< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:119,1
    - Dst: F5<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:120,1
    - Dst: F1< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:121,1
    - Dst: F5< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:122,1
    - Dst: F1<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:123,1
    - Dst: F5< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:124,1
    - Dst: F1<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:125,1
    - Dst: F5< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:126,1
    - Dst: F1<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:127,1
    - Dst: F5< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:128,1
    - Dst: F1<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:129,1
    - Dst: F5<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:130,1
    - Dst: F1< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:131,1
    - Dst: F5<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:132,1
    - Dst: F1< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:133,1
    - Dst: F5<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:134,1
    - Dst: F1< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:135,1
    - Dst: F5<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:136,1
    - Dst: F1< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:137,1
    - Dst: F5< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:138,1
    - Dst: F2< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:140,1
    - Dst: F4< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:141,1
    - Dst: F2< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:142,1
    - Dst: F4<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:143,1
    - Dst: F2< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:144,1
    - Dst: F4<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:145,1
    - Dst: F2<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:146,1
    - Dst: F4< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:147,1
    - Dst: F2<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:148,1
    - Dst: F4<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:149,1
    - Dst: F2< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:150,1
    - Dst: F4< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:151,1
    - Dst: F2< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:152,1
    - Dst: F4< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:153,1
    - Dst: F2<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:154,1
    - Dst: F4<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:155,1
    - Dst: F2< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:156,1
    - Dst: F4< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:157,1
    - Dst: F2<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:158,1
    - Dst: F4< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:159,1
    - Dst: F2<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:160,1
    - Dst: F4<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:161,1
    - Dst: F2< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:162,1
    - Dst: F4< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:163,1
    - Dst: F2<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:164,1
    - Dst: F4< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:165,1
    - Dst: F2< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:166,1
    - Dst: F4<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:167,1
    - Dst: F2<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:168,1
    - Dst: F4<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:169,1
    - Dst: F2<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:170,1
    - Dst: F4<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:171,1
    - Dst: F3<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:173,1
    - Dst: F3< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:174,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:175,1
    - Dst: F3< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:176,1
    - Dst: F3< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:177,1
    - Dst: F3<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:178,1
    - Dst: F3< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:179,1
    - Dst: F3<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:180,1
    - Dst: F3<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:181,1
    - Dst: F3< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:182,1
    - Dst: F3< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:183,1
    - Dst: F3< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:184,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:185,1
    - Dst: F3< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:186,1
    - Dst: F3<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:187,1
    - Dst: F3<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:188,1
    - Dst: F3<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:189,1
    - Dst: F3<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:190,1
    - Dst: F3< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:191,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:192,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:193,1
    - Dst: F3< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:194,1
    - Dst: F3< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:195,1
    - Dst: F3<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:196,1
    - Dst: F3< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:197,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:198,1
    - Dst: F3<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:199,1
    - Dst: F3<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:200,1
    - Dst: F3< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:201,1
    - Dst: F3< 7>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:202,1
    - Dst: F3< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:203,1
    - Dst: F3< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:204,1
    - Dst: F4<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:206,1
    - Dst: F2<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:207,1
    - Dst: F4<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:208,1
    - Dst: F2< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:209,1
    - Dst: F4<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:210,1
    - Dst: F2< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:211,1
    - Dst: F4<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:212,1
    - Dst: F2<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:213,1
    - Dst: F4<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:214,1
    - Dst: F2<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:215,1
    - Dst: F4<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:216,1
    - Dst: F2<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:217,1
    - Dst: F4< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:218,1
    - Dst: F2< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:219,1
    - Dst: F4< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:220,1
    - Dst: F2<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:221,1
    - Dst: F4< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:222,1
    - Dst: F2< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:223,1
    - Dst: F4<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:224,1
    - Dst: F2< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:225,1
    - Dst: F4< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:226,1
    - Dst: F2<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:227,1
    - Dst: F4< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:228,1
    - Dst: F2< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:229,1
    - Dst: F4< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:230,1
    - Dst: F2<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:231,1
    - Dst: F4< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:232,1
    - Dst: F2< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:233,1
    - Dst: F4< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:234,1
    - Dst: F2<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:235,1
    - Dst: F4<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:236,1
    - Dst: F2< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:237,1
    - Dst: F5< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:239,1
    - Dst: F1< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:240,1
    - Dst: F5<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:241,1
    - Dst: F1< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:242,1
    - Dst: F5< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:243,1
    - Dst: F1<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:244,1
    - Dst: F5<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:245,1
    - Dst: F1< 9>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:246,1
    - Dst: F5< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:247,1
    - Dst: F1<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:248,1
    - Dst: F5< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:249,1
    - Dst: F1< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:250,1
    - Dst: F5<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:251,1
    - Dst: F1<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:252,1
    - Dst: F5<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:253,1
    - Dst: F1< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:254,1
    - Dst: F5< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:255,1
    - Dst: F1< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:256,1
    - Dst: F5<12>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:257,1
    - Dst: F1<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:258,1
    - Dst: F5<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:259,1
    - Dst: F1< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:260,1
    - Dst: F5<14>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:261,1
    - Dst: F1< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:262,1
    - Dst: F5<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:263,1
    - Dst: F1<15>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:264,1
    - Dst: F5< 8>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:265,1
    - Dst: F1<13>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:266,1
    - Dst: F5< 5>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:267,1
    - Dst: F1<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:268,1
    - Dst: F5< 6>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:269,1
    - Dst: F1<11>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 170
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 281
    functionName: Botan::RIPEMD_160::compress_n
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - F2< 9>
    - F4< 5>
    - F3<13>
    - F5<11>
    - F4<15>
    - F5<12>
    - F1<12>
    - F4<14>
    - F2<14>
    - F3<15>
    - F3< 7>
    - F1< 8>
    - F4< 8>
    - F5< 7>
    - F3<11>
    - F5<13>
    - F4< 6>
    - F3<14>
    - BufferSlicer::take
    - F2< 6>
    - F2<13>
    - F5< 8>
    - F5<15>
    - F5<14>
    - F3< 6>
    - F1<11>
    - F1< 6>
    - F4< 7>
    - F4<12>
    - F5< 9>
    - F4< 9>
    - F1<13>
    - F1< 7>
    - F3< 5>
    - F1< 5>
    - F1<14>
    - F4<11>
    - F3< 9>
    - F1<15>
    - F2< 5>
    - F5< 5>
    - load_le
    - F2<15>
    - F2< 7>
    - F1< 9>
    - F3<12>
    - F5< 6>
    - F4<13>
    - F2<11>
    - F3< 8>
    - F2<12>
    - F2< 8>
    linkageType: ''
    returnType: void
    signature: void RIPEMD_160::compress_n(digest_type& digest, std::span<const uint8_t>
      input, size_t blocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: Botan::RIPEMD_160::init
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void RIPEMD_160::init(digest_type& digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RIPEMD_160>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: Botan::RIPEMD_160::new_object
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RIPEMD_160>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> RIPEMD_160::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RIPEMD_160>
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: Botan::RIPEMD_160::copy_state
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RIPEMD_160>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> RIPEMD_160::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: Botan::RIPEMD_160::add_data
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void RIPEMD_160::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/hash/rmd160/rmd160.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: Botan::RIPEMD_160::final_result
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: void
    signature: void RIPEMD_160::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::RIPEMD_160::name
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::RIPEMD_160::output_length
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::RIPEMD_160::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RIPEMD_160::clear
      Src: /src/botan/src/lib/hash/rmd160/rmd160.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::RIPEMD_160::clear
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.h
    functionUses: 1
    functionsReached:
    - Botan::RIPEMD_160::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::RIPEMD_160::name
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::RIPEMD_160::output_length
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::RIPEMD_160::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RIPEMD_160::clear
      Src: /src/botan/src/lib/hash/rmd160/rmd160.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::RIPEMD_160::clear
    functionSourceFile: /src/botan/src/lib/hash/rmd160/rmd160.h
    functionUses: 2
    functionsReached:
    - Botan::RIPEMD_160::clear
    linkageType: ''
    returnType: void
    signature: void clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::GOST_34_11::name
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::GOST_34_11::output_length
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::GOST_34_11::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<GOST_34_11>
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::GOST_34_11::new_object
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.h
    functionUses: 0
    functionsReached:
    - std::make_unique<GOST_34_11>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::GOST_34_11::name
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: Botan::GOST_34_11::output_length
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::GOST_34_11::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<GOST_34_11>
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::GOST_34_11::new_object
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.h
    functionUses: 0
    functionsReached:
    - std::make_unique<GOST_34_11>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> new_object() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GOST_28147_89_Params
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: Botan::GOST_34_11::GOST_34_11
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 0
    functionsReached:
    - GOST_28147_89_Params
    linkageType: ''
    returnType: void
    signature: void GOST_34_11::GOST_34_11()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GOST_34_11::clear
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:21,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:22,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:23,1
    - Dst: Botan::GOST_34_11::clear
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: Botan::GOST_34_11::clear
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 1
    functionsReached:
    - zeroise
    - Botan::GOST_34_11::clear
    linkageType: ''
    returnType: void
    signature: void GOST_34_11::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<GOST_34_11>
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::GOST_34_11::copy_state
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<GOST_34_11>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> GOST_34_11::copy_state() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:38,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:39,1
    - Dst: Botan::GOST_34_11::compress_n
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:40,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:40,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:43,1
    - Dst: aligned_data_to_process
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:44,1
    - Dst: Botan::GOST_34_11::compress_n
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:46,1
    - Dst: data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:46,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: Botan::GOST_34_11::add_data
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 0
    functionsReached:
    - aligned_data_to_process
    - data
    - auto::data
    - Botan::GOST_34_11::compress_n
    - handle_unaligned_data
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void GOST_34_11::add_data(std::span<const uint8_t> input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:61,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:62,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:69,1
    - Dst: data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:69,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:70,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:79,1
    - Dst: set_key
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:83,1
    - Dst: encrypt
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:84,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:150,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:155,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:159,1
    - Dst: data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:159,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:195,1
    - Dst: data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 107
    argCount: 2
    argNames:
    - input
    - blocks
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 197
    functionName: Botan::GOST_34_11::compress_n
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 1
    functionsReached:
    - data
    - xor_buf
    - get_byte<1>
    - load_be
    - get_byte_var
    - get_byte<0>
    - copy_mem
    - encrypt
    - set_key
    linkageType: ''
    returnType: void
    signature: void GOST_34_11::compress_n(const uint8_t input[], size_t blocks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:203,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:204,1
    - Dst: Botan::GOST_34_11::compress_n
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:205,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:205,1
    - Dst: store_le
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:210,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:210,1
    - Dst: Botan::GOST_34_11::compress_n
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:214,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:214,1
    - Dst: Botan::GOST_34_11::compress_n
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:215,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:215,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:217,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:217,1
    - Dst: data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:217,1
    - Dst: Botan::GOST_34_11::clear
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 220
    functionName: Botan::GOST_34_11::final_result
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 0
    functionsReached:
    - data
    - std::span<uint8_t>::data
    - consume
    - Botan::GOST_34_11::compress_n
    - store_le
    - fill_up_with_zeros
    - Botan::GOST_34_11::clear
    - copy_mem
    - secure_vector::data
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void GOST_34_11::final_result(std::span<uint8_t> out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GOST_28147_89_Params
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: Botan::GOST_34_11::GOST_34_11
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 0
    functionsReached:
    - GOST_28147_89_Params
    linkageType: ''
    returnType: void
    signature: void GOST_34_11::GOST_34_11()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GOST_34_11::clear
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:21,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:22,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:23,1
    - Dst: Botan::GOST_34_11::clear
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: Botan::GOST_34_11::clear
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 3
    functionsReached:
    - zeroise
    - Botan::GOST_34_11::clear
    linkageType: ''
    returnType: void
    signature: void GOST_34_11::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<GOST_34_11>
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::GOST_34_11::copy_state
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<GOST_34_11>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> GOST_34_11::copy_state() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:38,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:39,1
    - Dst: Botan::GOST_34_11::compress_n
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:40,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:40,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:43,1
    - Dst: aligned_data_to_process
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:44,1
    - Dst: Botan::GOST_34_11::compress_n
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:46,1
    - Dst: data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:46,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: Botan::GOST_34_11::add_data
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 0
    functionsReached:
    - aligned_data_to_process
    - data
    - auto::data
    - Botan::GOST_34_11::compress_n
    - handle_unaligned_data
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void GOST_34_11::add_data(std::span<const uint8_t> input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:61,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:62,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:69,1
    - Dst: data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:69,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:70,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:79,1
    - Dst: set_key
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:83,1
    - Dst: encrypt
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:84,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:150,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:155,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:159,1
    - Dst: data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:159,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:195,1
    - Dst: data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 107
    argCount: 2
    argNames:
    - input
    - blocks
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 197
    functionName: Botan::GOST_34_11::compress_n
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 3
    functionsReached:
    - data
    - xor_buf
    - get_byte<1>
    - load_be
    - get_byte_var
    - get_byte<0>
    - copy_mem
    - encrypt
    - set_key
    linkageType: ''
    returnType: void
    signature: void GOST_34_11::compress_n(const uint8_t input[], size_t blocks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:203,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:204,1
    - Dst: Botan::GOST_34_11::compress_n
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:205,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:205,1
    - Dst: store_le
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:210,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:210,1
    - Dst: Botan::GOST_34_11::compress_n
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:214,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:214,1
    - Dst: Botan::GOST_34_11::compress_n
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:215,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:215,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:217,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:217,1
    - Dst: data
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:217,1
    - Dst: Botan::GOST_34_11::clear
      Src: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 220
    functionName: Botan::GOST_34_11::final_result
    functionSourceFile: /src/botan/src/lib/hash/gost_3411/gost_3411.cpp
    functionUses: 0
    functionsReached:
    - data
    - std::span<uint8_t>::data
    - consume
    - Botan::GOST_34_11::compress_n
    - store_le
    - fill_up_with_zeros
    - Botan::GOST_34_11::clear
    - copy_mem
    - secure_vector::data
    - in_alignment
    linkageType: ''
    returnType: void
    signature: void GOST_34_11::final_result(std::span<uint8_t> out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Keccak_1600>
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: Botan::Keccak_1600::copy_state
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Keccak_1600>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Keccak_1600::copy_state() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak1600
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:20,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:25,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:25,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: Botan::Keccak_1600::Keccak_1600
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - Botan::keccak1600
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: void
    signature: void Keccak_1600::Keccak_1600(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::Keccak_1600::name
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Keccak_1600::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Keccak_1600>
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::Keccak_1600::new_object
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Keccak_1600>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Keccak_1600::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Keccak_1600::clear
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::Keccak_1600::clear
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 1
    functionsReached:
    - Botan::Keccak_1600::clear
    linkageType: ''
    returnType: void
    signature: void Keccak_1600::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Keccak_1600::provider
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: Botan::Keccak_1600::provider
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 1
    functionsReached:
    - Botan::Keccak_1600::provider
    linkageType: ''
    returnType: std::string
    signature: std::string Keccak_1600::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::Keccak_1600::add_data
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - absorb
    linkageType: ''
    returnType: void
    signature: void Keccak_1600::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:50,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:51,1
    - Dst: Botan::Keccak_1600::clear
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan::Keccak_1600::final_result
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - squeeze
    - finish
    - Botan::Keccak_1600::clear
    linkageType: ''
    returnType: void
    signature: void Keccak_1600::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Keccak_1600>
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: Botan::Keccak_1600::copy_state
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Keccak_1600>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Keccak_1600::copy_state() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak1600
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:20,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:25,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:25,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: Botan::Keccak_1600::Keccak_1600
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - Botan::keccak1600
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: void
    signature: void Keccak_1600::Keccak_1600(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::Keccak_1600::name
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Keccak_1600::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Keccak_1600>
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::Keccak_1600::new_object
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Keccak_1600>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> Keccak_1600::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Keccak_1600::clear
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::Keccak_1600::clear
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 3
    functionsReached:
    - Botan::Keccak_1600::clear
    linkageType: ''
    returnType: void
    signature: void Keccak_1600::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Keccak_1600::provider
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: Botan::Keccak_1600::provider
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 2
    functionsReached:
    - Botan::Keccak_1600::provider
    linkageType: ''
    returnType: std::string
    signature: std::string Keccak_1600::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::Keccak_1600::add_data
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - absorb
    linkageType: ''
    returnType: void
    signature: void Keccak_1600::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:50,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:51,1
    - Dst: Botan::Keccak_1600::clear
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan::Keccak_1600::final_result
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - squeeze
    - finish
    - Botan::Keccak_1600::clear
    linkageType: ''
    returnType: void
    signature: void Keccak_1600::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte_rate
      Src: /src/botan/src/lib/hash/keccak/keccak.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::Keccak_1600::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.h
    functionUses: 0
    functionsReached:
    - byte_rate
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::Keccak_1600::output_length
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte_rate
      Src: /src/botan/src/lib/hash/keccak/keccak.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::Keccak_1600::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.h
    functionUses: 0
    functionsReached:
    - byte_rate
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::Keccak_1600::output_length
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sha3
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:17,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:21,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:21,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: Botan::SHA_3::SHA_3
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - Botan::sha3
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: void
    signature: void SHA_3::SHA_3(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan::SHA_3::name
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_3::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_3::provider
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::SHA_3::provider
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 1
    functionsReached:
    - Botan::SHA_3::provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_3::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_3>
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::SHA_3::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_3>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_3::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_3>
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::SHA_3::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_3>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_3::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_3::clear
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: Botan::SHA_3::clear
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 1
    functionsReached:
    - Botan::SHA_3::clear
    linkageType: ''
    returnType: void
    signature: void SHA_3::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::SHA_3::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - absorb
    linkageType: ''
    returnType: void
    signature: void SHA_3::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:50,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:51,1
    - Dst: Botan::SHA_3::clear
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan::SHA_3::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - squeeze
    - finish
    - Botan::SHA_3::clear
    linkageType: ''
    returnType: void
    signature: void SHA_3::final_result(std::span<uint8_t> output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sha3
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:17,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:21,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:21,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: Botan::SHA_3::SHA_3
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - Botan::sha3
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: void
    signature: void SHA_3::SHA_3(size_t output_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan::SHA_3::name
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_3::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_3::provider
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::SHA_3::provider
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 2
    functionsReached:
    - Botan::SHA_3::provider
    linkageType: ''
    returnType: std::string
    signature: std::string SHA_3::provider() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_3>
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::SHA_3::copy_state
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_3>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_3::copy_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SHA_3>
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::SHA_3::new_object
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SHA_3>
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> SHA_3::new_object() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SHA_3::clear
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: Botan::SHA_3::clear
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 3
    functionsReached:
    - Botan::SHA_3::clear
    linkageType: ''
    returnType: void
    signature: void SHA_3::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absorb
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::SHA_3::add_data
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - absorb
    linkageType: ''
    returnType: void
    signature: void SHA_3::add_data(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:50,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:51,1
    - Dst: Botan::SHA_3::clear
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan::SHA_3::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - squeeze
    - finish
    - Botan::SHA_3::clear
    linkageType: ''
    returnType: void
    signature: void SHA_3::final_result(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte_rate
      Src: /src/botan/src/lib/hash/sha3/sha3.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::SHA_3::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached:
    - byte_rate
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::SHA_3::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::SHA_3_224::SHA_3_224
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA_3_224()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::SHA_3_256::SHA_3_256
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA_3_256()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::SHA_3_384::SHA_3_384
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA_3_384()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::SHA_3_512::SHA_3_512
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA_3_512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte_rate
      Src: /src/botan/src/lib/hash/sha3/sha3.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::SHA_3::hash_block_size
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached:
    - byte_rate
    linkageType: ''
    returnType: size_t
    signature: size_t hash_block_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::SHA_3::output_length
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::SHA_3_224::SHA_3_224
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA_3_224()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::SHA_3_256::SHA_3_256
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA_3_256()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::SHA_3_384::SHA_3_384
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA_3_384()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::SHA_3_512::SHA_3_512
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA_3_512()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha512
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:16,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:16,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:17,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:17,1
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519_base
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pk
    - sk
    - seed
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_seed_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_scalarmult_curve25519_base
    - Botan::Sodium::crypto_hash_sha512
    - copy_mem
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_box_curve25519xsalsa20poly1305_seed_keypair(uint8_t
      pk[32], uint8_t sk[32], const uint8_t seed[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:22,1
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519_base
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_scalarmult_curve25519_base
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_box_curve25519xsalsa20poly1305_keypair(uint8_t pk[32],
      uint8_t sk[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:30,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:30,1
    - Dst: Botan::Sodium::crypto_core_hsalsa20
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:34,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_core_hsalsa20
    - Botan::Sodium::crypto_scalarmult_curve25519
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm(uint8_t
      key[], const uint8_t pk[32], const uint8_t sk[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:45,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:45,1
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:49,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_box_curve25519xsalsa20poly1305(uint8_t ctext[],\n
      \                                                 const uint8_t ptext[],\n                                                  size_t
      ptext_len,\n                                                  const uint8_t
      nonce[],\n                                                  const uint8_t pk[32],\n
      \                                                 const uint8_t sk[32])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:60,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:60,1
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:64,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_box_curve25519xsalsa20poly1305_open(uint8_t ptext[],\n
      \                                                      const uint8_t ctext[],\n
      \                                                      size_t ctext_len,\n                                                       const
      uint8_t nonce[],\n                                                       const
      uint8_t pk[32],\n                                                       const
      uint8_t sk[32])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_beforenm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:76,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:76,1
    - Dst: Botan::Sodium::crypto_box_detached_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:80,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - ctext
    - mac
    - ptext
    - ptext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: Botan::Sodium::crypto_box_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_box_beforenm
    - Botan::Sodium::crypto_box_detached_afternm
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_box_detached(uint8_t ctext[],\n                                uint8_t
      mac[],\n                                const uint8_t ptext[],\n                                size_t
      ptext_len,\n                                const uint8_t nonce[],\n                                const
      uint8_t pk[32],\n                                const uint8_t sk[32])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_beforenm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:92,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:92,1
    - Dst: Botan::Sodium::crypto_box_open_detached_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:96,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - ptext
    - ctext
    - mac
    - ctext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: Botan::Sodium::crypto_box_open_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_box_open_detached_afternm
    - Botan::Sodium::crypto_box_beforenm
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_box_open_detached(uint8_t ptext[],\n                                     const
      uint8_t ctext[],\n                                     const uint8_t mac[],\n
      \                                    size_t ctext_len,\n                                     const
      uint8_t nonce[],\n                                     const uint8_t pk[32],\n
      \                                    const uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha512
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:16,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:16,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:17,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:17,1
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519_base
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pk
    - sk
    - seed
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_seed_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_scalarmult_curve25519_base
    - Botan::Sodium::crypto_hash_sha512
    - copy_mem
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_box_curve25519xsalsa20poly1305_seed_keypair(uint8_t
      pk[32], uint8_t sk[32], const uint8_t seed[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:22,1
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519_base
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_scalarmult_curve25519_base
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_box_curve25519xsalsa20poly1305_keypair(uint8_t pk[32],
      uint8_t sk[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:30,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:30,1
    - Dst: Botan::Sodium::crypto_core_hsalsa20
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:34,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 2
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_core_hsalsa20
    - Botan::Sodium::crypto_scalarmult_curve25519
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm(uint8_t
      key[], const uint8_t pk[32], const uint8_t sk[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:45,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:45,1
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:49,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_box_curve25519xsalsa20poly1305(uint8_t ctext[],\n
      \                                                 const uint8_t ptext[],\n                                                  size_t
      ptext_len,\n                                                  const uint8_t
      nonce[],\n                                                  const uint8_t pk[32],\n
      \                                                 const uint8_t sk[32])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:60,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:60,1
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:64,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_box_curve25519xsalsa20poly1305_open(uint8_t ptext[],\n
      \                                                      const uint8_t ctext[],\n
      \                                                      size_t ctext_len,\n                                                       const
      uint8_t nonce[],\n                                                       const
      uint8_t pk[32],\n                                                       const
      uint8_t sk[32])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_beforenm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:76,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:76,1
    - Dst: Botan::Sodium::crypto_box_detached_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:80,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - ctext
    - mac
    - ptext
    - ptext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: Botan::Sodium::crypto_box_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_box_beforenm
    - Botan::Sodium::crypto_box_detached_afternm
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_box_detached(uint8_t ctext[],\n                                uint8_t
      mac[],\n                                const uint8_t ptext[],\n                                size_t
      ptext_len,\n                                const uint8_t nonce[],\n                                const
      uint8_t pk[32],\n                                const uint8_t sk[32])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_beforenm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:92,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:92,1
    - Dst: Botan::Sodium::crypto_box_open_detached_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:96,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_box.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - ptext
    - ctext
    - mac
    - ctext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: Botan::Sodium::crypto_box_open_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_box.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_box_open_detached_afternm
    - Botan::Sodium::crypto_box_beforenm
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_box_open_detached(uint8_t ptext[],\n                                     const
      uint8_t ctext[],\n                                     const uint8_t mac[],\n
      \                                    size_t ctext_len,\n                                     const
      uint8_t nonce[],\n                                     const uint8_t pk[32],\n
      \                                    const uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Botan::Sodium::sodium_version_string
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * sodium_version_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: Botan::Sodium::sodium_library_version_major
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sodium_library_version_major()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: Botan::Sodium::sodium_library_version_minor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sodium_library_version_minor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: Botan::Sodium::sodium_library_minimal
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sodium_library_minimal()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Botan::Sodium::sodium_init
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sodium_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: Botan::Sodium::randombytes_seedbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t randombytes_seedbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: Botan::Sodium::randombytes_random
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t randombytes_random()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: Botan::Sodium::randombytes_stir
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void randombytes_stir()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: Botan::Sodium::randombytes_close
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int randombytes_close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: Botan::Sodium::randombytes_implementation_name
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * randombytes_implementation_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: Botan::Sodium::randombytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void randombytes(uint8_t buf[], size_t buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_macbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_macbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_secretbox_xsalsa20poly1305_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_boxzerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_boxzerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_zerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_zerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: Botan::Sodium::crypto_secretbox_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: Botan::Sodium::crypto_secretbox_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: Botan::Sodium::crypto_secretbox_macbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_macbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Botan::Sodium::crypto_secretbox_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan::Sodium::crypto_secretbox_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_secretbox_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: Botan::Sodium::crypto_secretbox_easy
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_secretbox_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_secretbox_easy(\n   uint8_t ctext[], const uint8_t ptext[],
      size_t ptext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_open_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - out
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 337
    functionName: Botan::Sodium::crypto_secretbox_open_easy
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_secretbox_open_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_secretbox_open_easy(\n   uint8_t out[], const uint8_t ctext[],
      size_t ctext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: Botan::Sodium::crypto_secretbox_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_secretbox_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: Botan::Sodium::crypto_secretbox_zerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_zerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: Botan::Sodium::crypto_secretbox_boxzerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_boxzerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
      Src: /src/botan/src/lib/compat/sodium/sodium.h:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: Botan::Sodium::crypto_secretbox
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    linkageType: ''
    returnType: int
    signature: "int crypto_secretbox(\n   uint8_t ctext[], const uint8_t ptext[],
      size_t ptext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
      Src: /src/botan/src/lib/compat/sodium/sodium.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: Botan::Sodium::crypto_secretbox_open
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    linkageType: ''
    returnType: int
    signature: "int crypto_secretbox_open(\n   uint8_t ptext[], const uint8_t ctext[],
      size_t ctext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_ietf_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_nsecbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_ietf_nsecbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 373
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_ietf_npubbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_abytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_ietf_abytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_ietf_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_aead_chacha20poly1305_ietf_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 434
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_nsecbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_nsecbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_npubbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_abytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_abytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 499
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_aead_chacha20poly1305_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 505
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_xchacha20poly1305_ietf_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_nsecbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_xchacha20poly1305_ietf_nsecbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 513
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_xchacha20poly1305_ietf_npubbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 517
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_abytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_xchacha20poly1305_ietf_abytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 521
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_xchacha20poly1305_ietf_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 570
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_aead_xchacha20poly1305_ietf_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 576
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_seedbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_seedbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 580
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_publickeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_publickeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 584
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_secretkeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_secretkeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 588
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenmbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_beforenmbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 592
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 596
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_macbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_macbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 600
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 604
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_boxzerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_boxzerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 608
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_zerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_zerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
      Src: /src/botan/src/lib/compat/sodium/sodium.h:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 638
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    linkageType: ''
    returnType: int
    signature: "int crypto_box_curve25519xsalsa20poly1305_afternm(\n   uint8_t ctext[],
      const uint8_t ptext[], size_t ptext_len, const uint8_t nonce[], const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
      Src: /src/botan/src/lib/compat/sodium/sodium.h:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    linkageType: ''
    returnType: int
    signature: "int crypto_box_curve25519xsalsa20poly1305_open_afternm(\n   uint8_t
      ptext[], const uint8_t ctext[], size_t ctext_len, const uint8_t nonce[], const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 649
    functionName: Botan::Sodium::crypto_box_seedbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_seedbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: Botan::Sodium::crypto_box_publickeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_publickeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 657
    functionName: Botan::Sodium::crypto_box_secretkeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_secretkeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 661
    functionName: Botan::Sodium::crypto_box_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 665
    functionName: Botan::Sodium::crypto_box_macbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_macbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: Botan::Sodium::crypto_box_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 673
    functionName: Botan::Sodium::crypto_box_beforenmbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_beforenmbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 677
    functionName: Botan::Sodium::crypto_box_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_box_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_seed_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium.h:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pk
    - sk
    - seed
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 681
    functionName: Botan::Sodium::crypto_box_seed_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_seed_keypair
    linkageType: ''
    returnType: int
    signature: int crypto_box_seed_keypair(uint8_t pk[32], uint8_t sk[32], const uint8_t
      seed[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium.h:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 685
    functionName: Botan::Sodium::crypto_box_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_keypair
    linkageType: ''
    returnType: int
    signature: int crypto_box_keypair(uint8_t pk[32], uint8_t sk[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 712
    functionName: Botan::Sodium::crypto_box_easy
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_box_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_box_easy(uint8_t ctext[],\n                           const
      uint8_t ptext[],\n                           size_t ptext_len,\n                           const
      uint8_t nonce[],\n                           const uint8_t pk[32],\n                           const
      uint8_t sk[32])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_open_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 726
    functionName: Botan::Sodium::crypto_box_open_easy
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_box_open_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_box_open_easy(uint8_t ptext[],\n                                const
      uint8_t ctext[],\n                                size_t ctext_len,\n                                const
      uint8_t nonce[],\n                                const uint8_t pk[32],\n                                const
      uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
      Src: /src/botan/src/lib/compat/sodium/sodium.h:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 728
    functionDepth: 2
    functionLinenumber: 728
    functionLinenumberEnd: 730
    functionName: Botan::Sodium::crypto_box_beforenm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
    linkageType: ''
    returnType: int
    signature: int crypto_box_beforenm(uint8_t key[], const uint8_t pk[32], const
      uint8_t sk[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium.h:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 735
    functionName: Botan::Sodium::crypto_box_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
    linkageType: ''
    returnType: int
    signature: "int crypto_box_afternm(\n   uint8_t ctext[], const uint8_t ptext[],
      size_t ptext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium.h:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 740
    functionName: Botan::Sodium::crypto_box_open_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
    linkageType: ''
    returnType: int
    signature: "int crypto_box_open_afternm(\n   uint8_t ptext[], const uint8_t ctext[],
      size_t ctext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_open_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ptext
    - ctext
    - mac
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 749
    functionName: Botan::Sodium::crypto_box_open_detached_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_secretbox_open_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_box_open_detached_afternm(uint8_t ptext[],\n                                            const
      uint8_t ctext[],\n                                            const uint8_t
      mac[],\n                                            size_t ctext_len,\n                                            const
      uint8_t nonce[],\n                                            const uint8_t
      key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_open_detached_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium.h:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 759
    functionName: Botan::Sodium::crypto_box_open_easy_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_open_detached_afternm
    linkageType: ''
    returnType: int
    signature: "int crypto_box_open_easy_afternm(\n   uint8_t ptext[], const uint8_t
      ctext[], size_t ctext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctext
    - mac
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 768
    functionName: Botan::Sodium::crypto_box_detached_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_secretbox_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_box_detached_afternm(uint8_t ctext[],\n                                       uint8_t
      mac[],\n                                       const uint8_t ptext[],\n                                       size_t
      ptext_len,\n                                       const uint8_t nonce[],\n
      \                                      const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_detached_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium.h:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 773
    functionName: Botan::Sodium::crypto_box_easy_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_detached_afternm
    linkageType: ''
    returnType: int
    signature: "int crypto_box_easy_afternm(\n   uint8_t ctext[], const uint8_t ptext[],
      size_t ptext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 777
    functionName: Botan::Sodium::crypto_box_zerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_zerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 781
    functionName: Botan::Sodium::crypto_box_boxzerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_boxzerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305
      Src: /src/botan/src/lib/compat/sodium/sodium.h:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 790
    functionName: Botan::Sodium::crypto_box
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305
    linkageType: ''
    returnType: int
    signature: "int crypto_box(uint8_t ctext[],\n                      const uint8_t
      ptext[],\n                      size_t ptext_len,\n                      const
      uint8_t nonce[],\n                      const uint8_t pk[32],\n                      const
      uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open
      Src: /src/botan/src/lib/compat/sodium/sodium.h:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 799
    functionName: Botan::Sodium::crypto_box_open
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open
    linkageType: ''
    returnType: int
    signature: "int crypto_box_open(uint8_t ptext[],\n                           const
      uint8_t ctext[],\n                           size_t ctext_len,\n                           const
      uint8_t nonce[],\n                           const uint8_t pk[32],\n                           const
      uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 805
    functionName: Botan::Sodium::crypto_hash_sha512_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_hash_sha512_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 814
    functionName: Botan::Sodium::crypto_auth_hmacsha512_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha512_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 818
    functionName: Botan::Sodium::crypto_auth_hmacsha512_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha512_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 828
    functionName: Botan::Sodium::crypto_auth_hmacsha512_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_auth_hmacsha512_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 834
    functionName: Botan::Sodium::crypto_auth_hmacsha512256_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha512256_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 838
    functionName: Botan::Sodium::crypto_auth_hmacsha512256_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha512256_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 848
    functionName: Botan::Sodium::crypto_auth_hmacsha512256_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_auth_hmacsha512256_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 854
    functionName: Botan::Sodium::crypto_auth_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 858
    functionName: Botan::Sodium::crypto_auth_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 862
    functionName: Botan::Sodium::crypto_auth_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_auth_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256
      Src: /src/botan/src/lib/compat/sodium/sodium.h:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 866
    functionName: Botan::Sodium::crypto_auth
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512256
    linkageType: ''
    returnType: int
    signature: int crypto_auth(uint8_t out[], const uint8_t in[], size_t in_len, const
      uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/lib/compat/sodium/sodium.h:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mac
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 870
    functionName: Botan::Sodium::crypto_auth_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512256_verify
    linkageType: ''
    returnType: int
    signature: int crypto_auth_verify(const uint8_t mac[], const uint8_t in[], size_t
      in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 874
    functionName: Botan::Sodium::crypto_auth_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_auth_keygen(uint8_t k[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 880
    functionName: Botan::Sodium::crypto_hash_sha256_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_hash_sha256_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 889
    functionName: Botan::Sodium::crypto_auth_hmacsha256_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha256_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 893
    functionName: Botan::Sodium::crypto_auth_hmacsha256_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha256_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 903
    functionName: Botan::Sodium::crypto_auth_hmacsha256_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_auth_hmacsha256_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 909
    functionName: Botan::Sodium::crypto_stream_xsalsa20_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xsalsa20_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 913
    functionName: Botan::Sodium::crypto_stream_xsalsa20_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xsalsa20_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 917
    functionName: Botan::Sodium::crypto_stream_xsalsa20_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xsalsa20_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 932
    functionName: Botan::Sodium::crypto_stream_xsalsa20_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_xsalsa20_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 938
    functionName: Botan::Sodium::crypto_core_hsalsa20_outputbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_core_hsalsa20_outputbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 942
    functionName: Botan::Sodium::crypto_core_hsalsa20_inputbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_core_hsalsa20_inputbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 946
    functionName: Botan::Sodium::crypto_core_hsalsa20_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_core_hsalsa20_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 950
    functionName: Botan::Sodium::crypto_core_hsalsa20_constbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_core_hsalsa20_constbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 959
    functionName: Botan::Sodium::crypto_hash_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_hash_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha512
      Src: /src/botan/src/lib/compat/sodium/sodium.h:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - in
    - in_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 963
    functionName: Botan::Sodium::crypto_hash
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_hash_sha512
    linkageType: ''
    returnType: int
    signature: int crypto_hash(uint8_t out[], const uint8_t in[], size_t in_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 967
    functionName: Botan::Sodium::crypto_hash_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_hash_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 973
    functionName: Botan::Sodium::crypto_onetimeauth_poly1305_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_onetimeauth_poly1305_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 977
    functionName: Botan::Sodium::crypto_onetimeauth_poly1305_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_onetimeauth_poly1305_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 987
    functionName: Botan::Sodium::crypto_onetimeauth_poly1305_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_onetimeauth_poly1305_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 993
    functionName: Botan::Sodium::crypto_onetimeauth_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_onetimeauth_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 997
    functionName: Botan::Sodium::crypto_onetimeauth_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_onetimeauth_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1001
    functionName: Botan::Sodium::crypto_onetimeauth_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_onetimeauth_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1005
    functionName: Botan::Sodium::crypto_onetimeauth
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_onetimeauth_poly1305
    linkageType: ''
    returnType: int
    signature: int crypto_onetimeauth(uint8_t out[], const uint8_t in[], size_t in_len,
      const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - h
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1009
    functionName: Botan::Sodium::crypto_onetimeauth_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_onetimeauth_poly1305_verify
    linkageType: ''
    returnType: int
    signature: int crypto_onetimeauth_verify(const uint8_t h[], const uint8_t in[],
      size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_keygen
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1013
    functionName: Botan::Sodium::crypto_onetimeauth_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_onetimeauth_poly1305_keygen
    linkageType: ''
    returnType: void
    signature: void crypto_onetimeauth_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1019
    functionName: Botan::Sodium::crypto_scalarmult_curve25519_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_scalarmult_curve25519_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1023
    functionName: Botan::Sodium::crypto_scalarmult_curve25519_scalarbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_scalarmult_curve25519_scalarbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519_bytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1035
    functionName: Botan::Sodium::crypto_scalarmult_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_scalarmult_curve25519_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_scalarmult_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519_scalarbytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1039
    functionName: Botan::Sodium::crypto_scalarmult_scalarbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_scalarmult_curve25519_scalarbytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_scalarmult_scalarbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1043
    functionName: Botan::Sodium::crypto_scalarmult_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_scalarmult_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519_base
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1047
    functionName: Botan::Sodium::crypto_scalarmult_base
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_scalarmult_curve25519_base
    linkageType: ''
    returnType: int
    signature: int crypto_scalarmult_base(uint8_t out[], const uint8_t scalar[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - scalar
    - base
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1051
    functionName: Botan::Sodium::crypto_scalarmult
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_scalarmult_curve25519
    linkageType: ''
    returnType: int
    signature: int crypto_scalarmult(uint8_t out[], const uint8_t scalar[], const
      uint8_t base[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1057
    functionName: Botan::Sodium::crypto_stream_chacha20_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1061
    functionName: Botan::Sodium::crypto_stream_chacha20_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1065
    functionName: Botan::Sodium::crypto_stream_chacha20_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1080
    functionName: Botan::Sodium::crypto_stream_chacha20_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_chacha20_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1084
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_ietf_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1088
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_ietf_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1092
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_ietf_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1107
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_chacha20_ietf_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1113
    functionName: Botan::Sodium::crypto_stream_xchacha20_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xchacha20_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1117
    functionName: Botan::Sodium::crypto_stream_xchacha20_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xchacha20_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1121
    functionName: Botan::Sodium::crypto_stream_xchacha20_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xchacha20_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1136
    functionName: Botan::Sodium::crypto_stream_xchacha20_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_xchacha20_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1142
    functionName: Botan::Sodium::crypto_stream_salsa20_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_salsa20_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1146
    functionName: Botan::Sodium::crypto_stream_salsa20_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_salsa20_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1150
    functionName: Botan::Sodium::crypto_stream_salsa20_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_salsa20_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1165
    functionName: Botan::Sodium::crypto_stream_salsa20_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_salsa20_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_keybytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1171
    functionName: Botan::Sodium::crypto_stream_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_stream_xsalsa20_keybytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_noncebytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1175
    functionName: Botan::Sodium::crypto_stream_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_stream_xsalsa20_noncebytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1179
    functionName: Botan::Sodium::crypto_stream_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1183
    functionName: Botan::Sodium::crypto_stream_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_stream_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xsalsa20
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1187
    functionName: Botan::Sodium::crypto_stream
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_stream_xsalsa20
    linkageType: ''
    returnType: int
    signature: int crypto_stream(uint8_t out[], size_t out_len, const uint8_t nonce[24],
      const uint8_t key[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_xor
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1192
    functionName: Botan::Sodium::crypto_stream_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_stream_xsalsa20_xor
    linkageType: ''
    returnType: int
    signature: "int crypto_stream_xor(\n   uint8_t out[], const uint8_t in[], size_t
      in_len, const uint8_t nonce[24], const uint8_t key[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1196
    functionName: Botan::Sodium::crypto_stream_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_keygen(uint8_t key[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1202
    functionName: Botan::Sodium::crypto_shorthash_siphash24_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_shorthash_siphash24_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1206
    functionName: Botan::Sodium::crypto_shorthash_siphash24_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_shorthash_siphash24_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_shorthash_siphash24_bytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1215
    functionName: Botan::Sodium::crypto_shorthash_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_shorthash_siphash24_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_shorthash_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_shorthash_siphash24_keybytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1219
    functionName: Botan::Sodium::crypto_shorthash_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_shorthash_siphash24_keybytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_shorthash_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1223
    functionName: Botan::Sodium::crypto_shorthash_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_shorthash_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_shorthash_siphash24
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - k
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1227
    functionName: Botan::Sodium::crypto_shorthash
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_shorthash_siphash24
    linkageType: ''
    returnType: int
    signature: int crypto_shorthash(uint8_t out[], const uint8_t in[], size_t in_len,
      const uint8_t k[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1231
    functionName: Botan::Sodium::crypto_shorthash_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_shorthash_keygen(uint8_t k[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1237
    functionName: Botan::Sodium::crypto_sign_ed25519_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_ed25519_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1239
    functionDepth: 0
    functionLinenumber: 1239
    functionLinenumberEnd: 1241
    functionName: Botan::Sodium::crypto_sign_ed25519_seedbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_ed25519_seedbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1245
    functionName: Botan::Sodium::crypto_sign_ed25519_publickeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_ed25519_publickeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1249
    functionName: Botan::Sodium::crypto_sign_ed25519_secretkeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_ed25519_secretkeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1253
    functionName: Botan::Sodium::crypto_sign_ed25519_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_ed25519_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1272
    functionName: Botan::Sodium::crypto_sign_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1276
    functionName: Botan::Sodium::crypto_sign_seedbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_seedbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1280
    functionName: Botan::Sodium::crypto_sign_publickeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_publickeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1284
    functionName: Botan::Sodium::crypto_sign_secretkeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_secretkeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1288
    functionName: Botan::Sodium::crypto_sign_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1292
    functionName: Botan::Sodium::crypto_sign_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_sign_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_sign_ed25519_seed_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pk
    - sk
    - seed
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1296
    functionName: Botan::Sodium::crypto_sign_seed_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    linkageType: ''
    returnType: int
    signature: int crypto_sign_seed_keypair(uint8_t pk[32], uint8_t sk[32], const
      uint8_t seed[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_sign_ed25519_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1300
    functionName: Botan::Sodium::crypto_sign_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_sign_ed25519_keypair
    linkageType: ''
    returnType: int
    signature: int crypto_sign_keypair(uint8_t pk[32], uint8_t sk[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_sign_ed25519_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - sig
    - sig_len
    - msg
    - msg_len
    - sk
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1305
    functionName: Botan::Sodium::crypto_sign_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_sign_ed25519_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_sign_detached(\n   uint8_t sig[], unsigned long long* sig_len,
      const uint8_t msg[], size_t msg_len, const uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - sig
    - in
    - in_len
    - pk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1307
    functionDepth: 1
    functionLinenumber: 1307
    functionLinenumberEnd: 1309
    functionName: Botan::Sodium::crypto_sign_verify_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_sign_ed25519_verify_detached
    linkageType: ''
    returnType: int
    signature: int crypto_sign_verify_detached(const uint8_t sig[], const uint8_t
      in[], size_t in_len, const uint8_t pk[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Botan::Sodium::sodium_version_string
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * sodium_version_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: Botan::Sodium::sodium_library_version_major
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sodium_library_version_major()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: Botan::Sodium::sodium_library_version_minor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sodium_library_version_minor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: Botan::Sodium::sodium_library_minimal
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sodium_library_minimal()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Botan::Sodium::sodium_init
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sodium_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: Botan::Sodium::randombytes_seedbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t randombytes_seedbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: Botan::Sodium::randombytes_random
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t randombytes_random()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: Botan::Sodium::randombytes_stir
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void randombytes_stir()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: Botan::Sodium::randombytes_close
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int randombytes_close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: Botan::Sodium::randombytes_implementation_name
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * randombytes_implementation_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: Botan::Sodium::randombytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void randombytes(uint8_t buf[], size_t buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_macbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_macbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_secretbox_xsalsa20poly1305_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_boxzerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_boxzerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_zerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_xsalsa20poly1305_zerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: Botan::Sodium::crypto_secretbox_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: Botan::Sodium::crypto_secretbox_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: Botan::Sodium::crypto_secretbox_macbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_macbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Botan::Sodium::crypto_secretbox_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: Botan::Sodium::crypto_secretbox_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_secretbox_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: Botan::Sodium::crypto_secretbox_easy
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_secretbox_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_secretbox_easy(\n   uint8_t ctext[], const uint8_t ptext[],
      size_t ptext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_open_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - out
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 337
    functionName: Botan::Sodium::crypto_secretbox_open_easy
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_secretbox_open_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_secretbox_open_easy(\n   uint8_t out[], const uint8_t ctext[],
      size_t ctext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: Botan::Sodium::crypto_secretbox_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_secretbox_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: Botan::Sodium::crypto_secretbox_zerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_zerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: Botan::Sodium::crypto_secretbox_boxzerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_secretbox_boxzerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
      Src: /src/botan/src/lib/compat/sodium/sodium.h:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: Botan::Sodium::crypto_secretbox
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    linkageType: ''
    returnType: int
    signature: "int crypto_secretbox(\n   uint8_t ctext[], const uint8_t ptext[],
      size_t ptext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
      Src: /src/botan/src/lib/compat/sodium/sodium.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: Botan::Sodium::crypto_secretbox_open
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    linkageType: ''
    returnType: int
    signature: "int crypto_secretbox_open(\n   uint8_t ptext[], const uint8_t ctext[],
      size_t ctext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_ietf_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_nsecbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_ietf_nsecbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 373
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_ietf_npubbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_abytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_ietf_abytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_ietf_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_aead_chacha20poly1305_ietf_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 434
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_nsecbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_nsecbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_npubbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_abytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_abytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_chacha20poly1305_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 499
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_aead_chacha20poly1305_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 505
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_xchacha20poly1305_ietf_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_nsecbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_xchacha20poly1305_ietf_nsecbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 513
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_xchacha20poly1305_ietf_npubbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 517
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_abytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_xchacha20poly1305_ietf_abytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 521
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_aead_xchacha20poly1305_ietf_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 570
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_aead_xchacha20poly1305_ietf_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 576
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_seedbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_seedbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 580
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_publickeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_publickeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 584
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_secretkeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_secretkeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 588
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenmbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_beforenmbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 592
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 596
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_macbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_macbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 600
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 604
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_boxzerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_boxzerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 608
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_zerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_curve25519xsalsa20poly1305_zerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
      Src: /src/botan/src/lib/compat/sodium/sodium.h:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 638
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 3
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    linkageType: ''
    returnType: int
    signature: "int crypto_box_curve25519xsalsa20poly1305_afternm(\n   uint8_t ctext[],
      const uint8_t ptext[], size_t ptext_len, const uint8_t nonce[], const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
      Src: /src/botan/src/lib/compat/sodium/sodium.h:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 3
    functionsReached:
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    linkageType: ''
    returnType: int
    signature: "int crypto_box_curve25519xsalsa20poly1305_open_afternm(\n   uint8_t
      ptext[], const uint8_t ctext[], size_t ctext_len, const uint8_t nonce[], const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 649
    functionName: Botan::Sodium::crypto_box_seedbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_seedbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: Botan::Sodium::crypto_box_publickeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_publickeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 657
    functionName: Botan::Sodium::crypto_box_secretkeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_secretkeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 661
    functionName: Botan::Sodium::crypto_box_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 665
    functionName: Botan::Sodium::crypto_box_macbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_macbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: Botan::Sodium::crypto_box_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 673
    functionName: Botan::Sodium::crypto_box_beforenmbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_beforenmbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 677
    functionName: Botan::Sodium::crypto_box_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_box_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_seed_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium.h:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pk
    - sk
    - seed
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 681
    functionName: Botan::Sodium::crypto_box_seed_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_seed_keypair
    linkageType: ''
    returnType: int
    signature: int crypto_box_seed_keypair(uint8_t pk[32], uint8_t sk[32], const uint8_t
      seed[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium.h:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 685
    functionName: Botan::Sodium::crypto_box_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_keypair
    linkageType: ''
    returnType: int
    signature: int crypto_box_keypair(uint8_t pk[32], uint8_t sk[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 712
    functionName: Botan::Sodium::crypto_box_easy
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_box_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_box_easy(uint8_t ctext[],\n                           const
      uint8_t ptext[],\n                           size_t ptext_len,\n                           const
      uint8_t nonce[],\n                           const uint8_t pk[32],\n                           const
      uint8_t sk[32])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_open_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 726
    functionName: Botan::Sodium::crypto_box_open_easy
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_box_open_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_box_open_easy(uint8_t ptext[],\n                                const
      uint8_t ctext[],\n                                size_t ctext_len,\n                                const
      uint8_t nonce[],\n                                const uint8_t pk[32],\n                                const
      uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
      Src: /src/botan/src/lib/compat/sodium/sodium.h:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 728
    functionDepth: 2
    functionLinenumber: 728
    functionLinenumberEnd: 730
    functionName: Botan::Sodium::crypto_box_beforenm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_beforenm
    linkageType: ''
    returnType: int
    signature: int crypto_box_beforenm(uint8_t key[], const uint8_t pk[32], const
      uint8_t sk[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium.h:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 735
    functionName: Botan::Sodium::crypto_box_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
    linkageType: ''
    returnType: int
    signature: "int crypto_box_afternm(\n   uint8_t ctext[], const uint8_t ptext[],
      size_t ptext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium.h:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 740
    functionName: Botan::Sodium::crypto_box_open_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
    linkageType: ''
    returnType: int
    signature: "int crypto_box_open_afternm(\n   uint8_t ptext[], const uint8_t ctext[],
      size_t ctext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_open_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ptext
    - ctext
    - mac
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 749
    functionName: Botan::Sodium::crypto_box_open_detached_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 3
    functionsReached:
    - Botan::Sodium::crypto_secretbox_open_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_box_open_detached_afternm(uint8_t ptext[],\n                                            const
      uint8_t ctext[],\n                                            const uint8_t
      mac[],\n                                            size_t ctext_len,\n                                            const
      uint8_t nonce[],\n                                            const uint8_t
      key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_open_detached_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium.h:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 759
    functionName: Botan::Sodium::crypto_box_open_easy_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_open_detached_afternm
    linkageType: ''
    returnType: int
    signature: "int crypto_box_open_easy_afternm(\n   uint8_t ptext[], const uint8_t
      ctext[], size_t ctext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_secretbox_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctext
    - mac
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 768
    functionName: Botan::Sodium::crypto_box_detached_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 3
    functionsReached:
    - Botan::Sodium::crypto_secretbox_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_box_detached_afternm(uint8_t ctext[],\n                                       uint8_t
      mac[],\n                                       const uint8_t ptext[],\n                                       size_t
      ptext_len,\n                                       const uint8_t nonce[],\n
      \                                      const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_detached_afternm
      Src: /src/botan/src/lib/compat/sodium/sodium.h:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 773
    functionName: Botan::Sodium::crypto_box_easy_afternm
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_detached_afternm
    linkageType: ''
    returnType: int
    signature: "int crypto_box_easy_afternm(\n   uint8_t ctext[], const uint8_t ptext[],
      size_t ptext_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 777
    functionName: Botan::Sodium::crypto_box_zerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_zerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 781
    functionName: Botan::Sodium::crypto_box_boxzerobytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_box_boxzerobytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305
      Src: /src/botan/src/lib/compat/sodium/sodium.h:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 790
    functionName: Botan::Sodium::crypto_box
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305
    linkageType: ''
    returnType: int
    signature: "int crypto_box(uint8_t ctext[],\n                      const uint8_t
      ptext[],\n                      size_t ptext_len,\n                      const
      uint8_t nonce[],\n                      const uint8_t pk[32],\n                      const
      uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open
      Src: /src/botan/src/lib/compat/sodium/sodium.h:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 799
    functionName: Botan::Sodium::crypto_box_open
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open
    linkageType: ''
    returnType: int
    signature: "int crypto_box_open(uint8_t ptext[],\n                           const
      uint8_t ctext[],\n                           size_t ctext_len,\n                           const
      uint8_t nonce[],\n                           const uint8_t pk[32],\n                           const
      uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 805
    functionName: Botan::Sodium::crypto_hash_sha512_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_hash_sha512_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 814
    functionName: Botan::Sodium::crypto_auth_hmacsha512_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha512_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 818
    functionName: Botan::Sodium::crypto_auth_hmacsha512_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha512_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 828
    functionName: Botan::Sodium::crypto_auth_hmacsha512_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_auth_hmacsha512_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 834
    functionName: Botan::Sodium::crypto_auth_hmacsha512256_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha512256_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 838
    functionName: Botan::Sodium::crypto_auth_hmacsha512256_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha512256_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 848
    functionName: Botan::Sodium::crypto_auth_hmacsha512256_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_auth_hmacsha512256_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 854
    functionName: Botan::Sodium::crypto_auth_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 858
    functionName: Botan::Sodium::crypto_auth_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 862
    functionName: Botan::Sodium::crypto_auth_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_auth_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256
      Src: /src/botan/src/lib/compat/sodium/sodium.h:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 866
    functionName: Botan::Sodium::crypto_auth
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512256
    linkageType: ''
    returnType: int
    signature: int crypto_auth(uint8_t out[], const uint8_t in[], size_t in_len, const
      uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/lib/compat/sodium/sodium.h:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mac
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 870
    functionName: Botan::Sodium::crypto_auth_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512256_verify
    linkageType: ''
    returnType: int
    signature: int crypto_auth_verify(const uint8_t mac[], const uint8_t in[], size_t
      in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 874
    functionName: Botan::Sodium::crypto_auth_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_auth_keygen(uint8_t k[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 880
    functionName: Botan::Sodium::crypto_hash_sha256_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_hash_sha256_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 889
    functionName: Botan::Sodium::crypto_auth_hmacsha256_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha256_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 893
    functionName: Botan::Sodium::crypto_auth_hmacsha256_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_auth_hmacsha256_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 903
    functionName: Botan::Sodium::crypto_auth_hmacsha256_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_auth_hmacsha256_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 909
    functionName: Botan::Sodium::crypto_stream_xsalsa20_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xsalsa20_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 913
    functionName: Botan::Sodium::crypto_stream_xsalsa20_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xsalsa20_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 917
    functionName: Botan::Sodium::crypto_stream_xsalsa20_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xsalsa20_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 932
    functionName: Botan::Sodium::crypto_stream_xsalsa20_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_xsalsa20_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 938
    functionName: Botan::Sodium::crypto_core_hsalsa20_outputbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_core_hsalsa20_outputbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 942
    functionName: Botan::Sodium::crypto_core_hsalsa20_inputbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_core_hsalsa20_inputbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 946
    functionName: Botan::Sodium::crypto_core_hsalsa20_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_core_hsalsa20_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 950
    functionName: Botan::Sodium::crypto_core_hsalsa20_constbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_core_hsalsa20_constbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 959
    functionName: Botan::Sodium::crypto_hash_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_hash_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_hash_sha512
      Src: /src/botan/src/lib/compat/sodium/sodium.h:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - in
    - in_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 963
    functionName: Botan::Sodium::crypto_hash
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_hash_sha512
    linkageType: ''
    returnType: int
    signature: int crypto_hash(uint8_t out[], const uint8_t in[], size_t in_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 967
    functionName: Botan::Sodium::crypto_hash_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_hash_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 973
    functionName: Botan::Sodium::crypto_onetimeauth_poly1305_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_onetimeauth_poly1305_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 977
    functionName: Botan::Sodium::crypto_onetimeauth_poly1305_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_onetimeauth_poly1305_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 987
    functionName: Botan::Sodium::crypto_onetimeauth_poly1305_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 1
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_onetimeauth_poly1305_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 993
    functionName: Botan::Sodium::crypto_onetimeauth_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_onetimeauth_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 997
    functionName: Botan::Sodium::crypto_onetimeauth_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_onetimeauth_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1001
    functionName: Botan::Sodium::crypto_onetimeauth_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_onetimeauth_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1005
    functionName: Botan::Sodium::crypto_onetimeauth
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_onetimeauth_poly1305
    linkageType: ''
    returnType: int
    signature: int crypto_onetimeauth(uint8_t out[], const uint8_t in[], size_t in_len,
      const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - h
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1009
    functionName: Botan::Sodium::crypto_onetimeauth_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_onetimeauth_poly1305_verify
    linkageType: ''
    returnType: int
    signature: int crypto_onetimeauth_verify(const uint8_t h[], const uint8_t in[],
      size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_keygen
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1013
    functionName: Botan::Sodium::crypto_onetimeauth_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_onetimeauth_poly1305_keygen
    linkageType: ''
    returnType: void
    signature: void crypto_onetimeauth_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1019
    functionName: Botan::Sodium::crypto_scalarmult_curve25519_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_scalarmult_curve25519_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1023
    functionName: Botan::Sodium::crypto_scalarmult_curve25519_scalarbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_scalarmult_curve25519_scalarbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519_bytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1035
    functionName: Botan::Sodium::crypto_scalarmult_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_scalarmult_curve25519_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_scalarmult_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519_scalarbytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1039
    functionName: Botan::Sodium::crypto_scalarmult_scalarbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_scalarmult_curve25519_scalarbytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_scalarmult_scalarbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1043
    functionName: Botan::Sodium::crypto_scalarmult_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_scalarmult_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519_base
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1047
    functionName: Botan::Sodium::crypto_scalarmult_base
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_scalarmult_curve25519_base
    linkageType: ''
    returnType: int
    signature: int crypto_scalarmult_base(uint8_t out[], const uint8_t scalar[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_scalarmult_curve25519
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - scalar
    - base
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1051
    functionName: Botan::Sodium::crypto_scalarmult
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_scalarmult_curve25519
    linkageType: ''
    returnType: int
    signature: int crypto_scalarmult(uint8_t out[], const uint8_t scalar[], const
      uint8_t base[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1057
    functionName: Botan::Sodium::crypto_stream_chacha20_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1061
    functionName: Botan::Sodium::crypto_stream_chacha20_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1065
    functionName: Botan::Sodium::crypto_stream_chacha20_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1080
    functionName: Botan::Sodium::crypto_stream_chacha20_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_chacha20_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1084
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_ietf_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1088
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_ietf_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1092
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_chacha20_ietf_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1107
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_chacha20_ietf_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1113
    functionName: Botan::Sodium::crypto_stream_xchacha20_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xchacha20_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1117
    functionName: Botan::Sodium::crypto_stream_xchacha20_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xchacha20_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1121
    functionName: Botan::Sodium::crypto_stream_xchacha20_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_xchacha20_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1136
    functionName: Botan::Sodium::crypto_stream_xchacha20_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_xchacha20_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1142
    functionName: Botan::Sodium::crypto_stream_salsa20_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_salsa20_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1146
    functionName: Botan::Sodium::crypto_stream_salsa20_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_salsa20_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1150
    functionName: Botan::Sodium::crypto_stream_salsa20_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_salsa20_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1165
    functionName: Botan::Sodium::crypto_stream_salsa20_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_salsa20_keygen(uint8_t k[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_keybytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1171
    functionName: Botan::Sodium::crypto_stream_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_stream_xsalsa20_keybytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_noncebytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1175
    functionName: Botan::Sodium::crypto_stream_noncebytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_stream_xsalsa20_noncebytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_noncebytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1179
    functionName: Botan::Sodium::crypto_stream_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_stream_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1183
    functionName: Botan::Sodium::crypto_stream_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_stream_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xsalsa20
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1187
    functionName: Botan::Sodium::crypto_stream
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_stream_xsalsa20
    linkageType: ''
    returnType: int
    signature: int crypto_stream(uint8_t out[], size_t out_len, const uint8_t nonce[24],
      const uint8_t key[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_xor
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1192
    functionName: Botan::Sodium::crypto_stream_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_stream_xsalsa20_xor
    linkageType: ''
    returnType: int
    signature: "int crypto_stream_xor(\n   uint8_t out[], const uint8_t in[], size_t
      in_len, const uint8_t nonce[24], const uint8_t key[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1196
    functionName: Botan::Sodium::crypto_stream_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_stream_keygen(uint8_t key[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1202
    functionName: Botan::Sodium::crypto_shorthash_siphash24_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_shorthash_siphash24_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1206
    functionName: Botan::Sodium::crypto_shorthash_siphash24_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_shorthash_siphash24_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_shorthash_siphash24_bytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1215
    functionName: Botan::Sodium::crypto_shorthash_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_shorthash_siphash24_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_shorthash_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_shorthash_siphash24_keybytes
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1219
    functionName: Botan::Sodium::crypto_shorthash_keybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_shorthash_siphash24_keybytes
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_shorthash_keybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1223
    functionName: Botan::Sodium::crypto_shorthash_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_shorthash_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_shorthash_siphash24
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - k
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1227
    functionName: Botan::Sodium::crypto_shorthash
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_shorthash_siphash24
    linkageType: ''
    returnType: int
    signature: int crypto_shorthash(uint8_t out[], const uint8_t in[], size_t in_len,
      const uint8_t k[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1231
    functionName: Botan::Sodium::crypto_shorthash_keygen
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: void
    signature: void crypto_shorthash_keygen(uint8_t k[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1237
    functionName: Botan::Sodium::crypto_sign_ed25519_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_ed25519_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1239
    functionDepth: 0
    functionLinenumber: 1239
    functionLinenumberEnd: 1241
    functionName: Botan::Sodium::crypto_sign_ed25519_seedbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_ed25519_seedbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1245
    functionName: Botan::Sodium::crypto_sign_ed25519_publickeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_ed25519_publickeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1249
    functionName: Botan::Sodium::crypto_sign_ed25519_secretkeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_ed25519_secretkeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1253
    functionName: Botan::Sodium::crypto_sign_ed25519_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_ed25519_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1272
    functionName: Botan::Sodium::crypto_sign_bytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1276
    functionName: Botan::Sodium::crypto_sign_seedbytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_seedbytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1280
    functionName: Botan::Sodium::crypto_sign_publickeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_publickeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1284
    functionName: Botan::Sodium::crypto_sign_secretkeybytes
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_secretkeybytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1288
    functionName: Botan::Sodium::crypto_sign_messagebytes_max
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t crypto_sign_messagebytes_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1292
    functionName: Botan::Sodium::crypto_sign_primitive
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * crypto_sign_primitive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_sign_ed25519_seed_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pk
    - sk
    - seed
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1296
    functionName: Botan::Sodium::crypto_sign_seed_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    linkageType: ''
    returnType: int
    signature: int crypto_sign_seed_keypair(uint8_t pk[32], uint8_t sk[32], const
      uint8_t seed[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_sign_ed25519_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1300
    functionName: Botan::Sodium::crypto_sign_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_sign_ed25519_keypair
    linkageType: ''
    returnType: int
    signature: int crypto_sign_keypair(uint8_t pk[32], uint8_t sk[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_sign_ed25519_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - sig
    - sig_len
    - msg
    - msg_len
    - sk
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1305
    functionName: Botan::Sodium::crypto_sign_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_sign_ed25519_detached
    linkageType: ''
    returnType: int
    signature: "int crypto_sign_detached(\n   uint8_t sig[], unsigned long long* sig_len,
      const uint8_t msg[], size_t msg_len, const uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/lib/compat/sodium/sodium.h:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - sig
    - in
    - in_len
    - pk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1307
    functionDepth: 1
    functionLinenumber: 1307
    functionLinenumberEnd: 1309
    functionName: Botan::Sodium::crypto_sign_verify_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium.h
    functionUses: 0
    functionsReached:
    - Botan::Sodium::crypto_sign_ed25519_verify_detached
    linkageType: ''
    returnType: int
    signature: int crypto_sign_verify_detached(const uint8_t sig[], const uint8_t
      in[], size_t in_len, const uint8_t pk[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:25,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:26,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:27,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:28,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:31,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:32,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:33,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:34,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:36,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:37,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:38,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:39,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:41,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:42,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:43,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:44,1
    - Dst: Botan::Salsa20::hsalsa20
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:47,1
    - Dst: store_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:48,1
    - Dst: std::span<uint8_t, 32>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - out
    - in
    - key
    - c
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 50
    functionName: Botan::Sodium::crypto_core_hsalsa20
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::Salsa20::hsalsa20
    - std::span<uint8_t, 32>
    - store_le
    - load_le
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_core_hsalsa20(uint8_t out[], const uint8_t in[],
      const uint8_t key[], const uint8_t c[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Salsa20::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:54,1
    - Dst: Salsa20::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:55,1
    - Dst: Salsa20::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: Botan::Sodium::crypto_stream_salsa20
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 4
    functionsReached:
    - Salsa20::set_key
    - Salsa20::set_iv
    - Salsa20::write_keystream
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_stream_salsa20(uint8_t out[], size_t out_len, const
      uint8_t nonce[], const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_salsa20_xor_ic
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: Botan::Sodium::crypto_stream_salsa20_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_stream_salsa20_xor_ic
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_salsa20_xor(\n   uint8_t out[], const uint8_t
      in[], size_t in_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Salsa20::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:72,1
    - Dst: Salsa20::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:73,1
    - Dst: Salsa20::seek
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:74,1
    - Dst: Salsa20::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - out
    - in
    - in_len
    - nonce
    - ic
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: Botan::Sodium::crypto_stream_salsa20_xor_ic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 1
    functionsReached:
    - Salsa20::set_key
    - Salsa20::set_iv
    - Salsa20::cipher
    - Salsa20::seek
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_salsa20_xor_ic(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], uint64_t ic, const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Salsa20::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:81,1
    - Dst: Salsa20::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:82,1
    - Dst: Salsa20::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: Botan::Sodium::crypto_stream_xsalsa20
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 6
    functionsReached:
    - Salsa20::set_key
    - Salsa20::set_iv
    - Salsa20::write_keystream
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_stream_xsalsa20(uint8_t out[], size_t out_len, const
      uint8_t nonce[], const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_xor_ic
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: Botan::Sodium::crypto_stream_xsalsa20_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 6
    functionsReached:
    - Botan::Sodium::crypto_stream_xsalsa20_xor_ic
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_xsalsa20_xor(\n   uint8_t out[], const uint8_t
      in[], size_t in_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Salsa20::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:99,1
    - Dst: Salsa20::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:100,1
    - Dst: Salsa20::seek
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:101,1
    - Dst: Salsa20::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - out
    - in
    - in_len
    - nonce
    - ic
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: Botan::Sodium::crypto_stream_xsalsa20_xor_ic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 1
    functionsReached:
    - Salsa20::set_key
    - Salsa20::set_iv
    - Salsa20::cipher
    - Salsa20::seek
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_xsalsa20_xor_ic(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], uint64_t ic, const uint8_t
      key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:25,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:26,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:27,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:28,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:31,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:32,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:33,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:34,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:36,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:37,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:38,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:39,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:41,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:42,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:43,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:44,1
    - Dst: Botan::Salsa20::hsalsa20
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:47,1
    - Dst: store_le
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:48,1
    - Dst: std::span<uint8_t, 32>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - out
    - in
    - key
    - c
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 50
    functionName: Botan::Sodium::crypto_core_hsalsa20
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::Salsa20::hsalsa20
    - std::span<uint8_t, 32>
    - store_le
    - load_le
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_core_hsalsa20(uint8_t out[], const uint8_t in[],
      const uint8_t key[], const uint8_t c[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Salsa20::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:54,1
    - Dst: Salsa20::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:55,1
    - Dst: Salsa20::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: Botan::Sodium::crypto_stream_salsa20
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 4
    functionsReached:
    - Salsa20::set_key
    - Salsa20::set_iv
    - Salsa20::write_keystream
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_stream_salsa20(uint8_t out[], size_t out_len, const
      uint8_t nonce[], const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_salsa20_xor_ic
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: Botan::Sodium::crypto_stream_salsa20_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_stream_salsa20_xor_ic
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_salsa20_xor(\n   uint8_t out[], const uint8_t
      in[], size_t in_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Salsa20::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:72,1
    - Dst: Salsa20::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:73,1
    - Dst: Salsa20::seek
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:74,1
    - Dst: Salsa20::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - out
    - in
    - in_len
    - nonce
    - ic
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: Botan::Sodium::crypto_stream_salsa20_xor_ic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 2
    functionsReached:
    - Salsa20::set_key
    - Salsa20::set_iv
    - Salsa20::cipher
    - Salsa20::seek
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_salsa20_xor_ic(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], uint64_t ic, const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Salsa20::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:81,1
    - Dst: Salsa20::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:82,1
    - Dst: Salsa20::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: Botan::Sodium::crypto_stream_xsalsa20
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 6
    functionsReached:
    - Salsa20::set_key
    - Salsa20::set_iv
    - Salsa20::write_keystream
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_stream_xsalsa20(uint8_t out[], size_t out_len, const
      uint8_t nonce[], const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_xor_ic
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: Botan::Sodium::crypto_stream_xsalsa20_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 6
    functionsReached:
    - Botan::Sodium::crypto_stream_xsalsa20_xor_ic
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_xsalsa20_xor(\n   uint8_t out[], const uint8_t
      in[], size_t in_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Salsa20::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:99,1
    - Dst: Salsa20::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:100,1
    - Dst: Salsa20::seek
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:101,1
    - Dst: Salsa20::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - out
    - in
    - in_len
    - nonce
    - ic
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: Botan::Sodium::crypto_stream_xsalsa20_xor_ic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp
    functionUses: 2
    functionsReached:
    - Salsa20::set_key
    - Salsa20::set_iv
    - Salsa20::cipher
    - Salsa20::seek
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_xsalsa20_xor_ic(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], uint64_t ic, const uint8_t
      key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:23,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:24,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:25,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:28,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:28,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:28,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:30,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:32,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:33,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:34,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:35,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 39
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp
    functionUses: 8
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_key
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - clear_mem
    - auto::update
    - auto::final
    - secure_vector::data
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_secretbox_xsalsa20poly1305(\n   uint8_t ctext[],
      const uint8_t ptext[], size_t ptext_len, const uint8_t nonce[], const uint8_t
      key[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:47,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:48,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:49,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:52,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:52,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:52,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:54,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:55,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:56,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:57,1
    - Dst: Botan::CT::is_not_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:59,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:59,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:63,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 67
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp
    functionUses: 8
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_key
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - Botan::CT::is_not_equal
    - clear_mem
    - auto::update
    - auto::final
    - secure_vector::data
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_secretbox_xsalsa20poly1305_open(\n   uint8_t ptext[],
      const uint8_t ctext[], size_t ctext_len, const uint8_t nonce[], const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:75,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:76,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:77,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:80,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:80,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:80,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:82,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:84,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:86,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - ctext
    - mac
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 90
    functionName: Botan::Sodium::crypto_secretbox_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp
    functionUses: 8
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_key
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - auto::update
    - auto::final
    - secure_vector::data
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_secretbox_detached(uint8_t ctext[],\n                                      uint8_t
      mac[],\n                                      const uint8_t ptext[],\n                                      size_t
      ptext_len,\n                                      const uint8_t nonce[],\n                                      const
      uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:98,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:99,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:100,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:103,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:103,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:103,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:105,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:106,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:107,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:108,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:110,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:110,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:110,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - ptext
    - ctext
    - mac
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 117
    functionName: Botan::Sodium::crypto_secretbox_open_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp
    functionUses: 8
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_key
    - Botan::CT::is_equal
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - auto::update
    - auto::final
    - secure_vector::data
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_secretbox_open_detached(uint8_t ptext[],\n                                           const
      uint8_t ctext[],\n                                           const uint8_t mac[],\n
      \                                          size_t ctext_len,\n                                           const
      uint8_t nonce[],\n                                           const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:23,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:24,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:25,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:28,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:28,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:28,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:30,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:32,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:33,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:34,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:35,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ctext
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 39
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp
    functionUses: 8
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_key
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - clear_mem
    - auto::update
    - auto::final
    - secure_vector::data
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_secretbox_xsalsa20poly1305(\n   uint8_t ctext[],
      const uint8_t ptext[], size_t ptext_len, const uint8_t nonce[], const uint8_t
      key[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:47,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:48,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:49,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:52,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:52,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:52,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:54,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:55,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:56,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:57,1
    - Dst: Botan::CT::is_not_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:59,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:59,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:63,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - ptext
    - ctext
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 67
    functionName: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp
    functionUses: 8
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_key
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - Botan::CT::is_not_equal
    - clear_mem
    - auto::update
    - auto::final
    - secure_vector::data
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_secretbox_xsalsa20poly1305_open(\n   uint8_t ptext[],
      const uint8_t ctext[], size_t ctext_len, const uint8_t nonce[], const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:75,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:76,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:77,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:80,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:80,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:80,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:82,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:84,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:86,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - ctext
    - mac
    - ptext
    - ptext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 90
    functionName: Botan::Sodium::crypto_secretbox_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp
    functionUses: 8
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_key
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - auto::update
    - auto::final
    - secure_vector::data
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_secretbox_detached(uint8_t ctext[],\n                                      uint8_t
      mac[],\n                                      const uint8_t ptext[],\n                                      size_t
      ptext_len,\n                                      const uint8_t nonce[],\n                                      const
      uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:98,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:99,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:100,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:103,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:103,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:103,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:105,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:106,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:107,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:108,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:110,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:110,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:110,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - ptext
    - ctext
    - mac
    - ctext_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 117
    functionName: Botan::Sodium::crypto_secretbox_open_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_secretbox.cpp
    functionUses: 8
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_key
    - Botan::CT::is_equal
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - auto::update
    - auto::final
    - secure_vector::data
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_secretbox_open_detached(uint8_t ptext[],\n                                           const
      uint8_t ctext[],\n                                           const uint8_t mac[],\n
      \                                          size_t ctext_len,\n                                           const
      uint8_t nonce[],\n                                           const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: system_rng
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:23,1
    - Dst: static_cast<uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::Sodium::randombytes_buf
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 40
    functionsReached:
    - static_cast<uint8_t*>
    - system_rng
    linkageType: ''
    returnType: void
    signature: void Sodium::randombytes_buf(void* buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - upper_bound
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan::Sodium::randombytes_uniform
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Sodium::randombytes_uniform(uint32_t upper_bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:41,1
    - Dst: ChaCha::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:42,1
    - Dst: ChaCha::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:43,1
    - Dst: static_cast<uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - buf
    - size
    - seed
    argTypes:
    - void*
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Botan::Sodium::randombytes_buf_deterministic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - ChaCha::set_key
    - static_cast<uint8_t*>
    - ChaCha::write_keystream
    - ChaCha::set_iv
    linkageType: ''
    returnType: void
    signature: void Sodium::randombytes_buf_deterministic(void* buf, size_t size,
      const uint8_t seed[randombytes_SEEDBYTES])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:47,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::Sodium::crypto_verify_16
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::CT::is_equal
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_verify_16(const uint8_t x[16], const uint8_t y[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:51,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan::Sodium::crypto_verify_32
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::CT::is_equal
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_verify_32(const uint8_t x[32], const uint8_t y[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:55,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::Sodium::crypto_verify_64
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::CT::is_equal
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_verify_64(const uint8_t x[64], const uint8_t y[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan::Sodium::sodium_memzero
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 22
    functionsReached:
    - secure_scrub_memory
    linkageType: ''
    returnType: void
    signature: void Sodium::sodium_memzero(void* ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:63,1
    - Dst: static_cast<const uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:63,1
    - Dst: static_cast<const uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:63,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:65,1
    - Dst: auto::select
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: Botan::Sodium::sodium_memcmp
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - static_cast<const uint8_t*>
    - auto::select
    - Botan::CT::is_equal
    linkageType: ''
    returnType: int
    signature: int Sodium::sodium_memcmp(const void* x, const void* y, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:69,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:76,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:77,1
    - Dst: auto::select
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:78,1
    - Dst: auto::select
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:78,1
    - Dst: static_cast<int8_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - x
    - y
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: Botan::Sodium::sodium_compare
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::ct_is_equal
    - static_cast<int8_t>
    - Botan::bigint_ct_is_lt
    - auto::select
    - static_cast<uint8_t>
    linkageType: ''
    returnType: int
    signature: int Sodium::sodium_compare(const uint8_t x[], const uint8_t y[], size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:89,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: Botan::Sodium::sodium_is_zero
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 12
    functionsReached:
    - static_cast<int>
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: int
    signature: int Sodium::sodium_is_zero(const uint8_t b[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: Botan::Sodium::sodium_increment
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::sodium_is_zero
    linkageType: ''
    returnType: void
    signature: void Sodium::sodium_increment(uint8_t b[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - a
    - b
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: Botan::Sodium::sodium_add
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: void
    signature: void Sodium::sodium_add(uint8_t a[], const uint8_t b[], size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:116,1
    - Dst: std::calloc
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:116,1
    - Dst: store_le
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: Botan::Sodium::sodium_malloc
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint8_t*>
    - store_le
    - std::calloc
    linkageType: ''
    returnType: void
    signature: void * Sodium::sodium_malloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:126,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:127,1
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:128,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:128,1
    - Dst: std::free
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: Botan::Sodium::sodium_free
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint8_t*>
    - load_le
    - static_cast<size_t>
    - secure_scrub_memory
    - std::free
    linkageType: ''
    returnType: void
    signature: void Sodium::sodium_free(void* ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::sodium_malloc
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: Botan::Sodium::sodium_allocarray
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sodium::sodium_malloc
    linkageType: ''
    returnType: void
    signature: void * Sodium::sodium_allocarray(size_t count, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::page_prohibit_access
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:143,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: Botan::Sodium::sodium_mprotect_noaccess
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Botan::OS::page_prohibit_access
    linkageType: ''
    returnType: int
    signature: int Sodium::sodium_mprotect_noaccess(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::page_allow_access
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:153,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: Botan::Sodium::sodium_mprotect_readwrite
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Botan::OS::page_allow_access
    linkageType: ''
    returnType: int
    signature: int Sodium::sodium_mprotect_readwrite(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: system_rng
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:23,1
    - Dst: static_cast<uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::Sodium::randombytes_buf
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 41
    functionsReached:
    - static_cast<uint8_t*>
    - system_rng
    linkageType: ''
    returnType: void
    signature: void Sodium::randombytes_buf(void* buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - upper_bound
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan::Sodium::randombytes_uniform
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sodium::randombytes_buf
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Sodium::randombytes_uniform(uint32_t upper_bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:41,1
    - Dst: ChaCha::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:42,1
    - Dst: ChaCha::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:43,1
    - Dst: static_cast<uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - buf
    - size
    - seed
    argTypes:
    - void*
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Botan::Sodium::randombytes_buf_deterministic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - ChaCha::set_key
    - static_cast<uint8_t*>
    - ChaCha::write_keystream
    - ChaCha::set_iv
    linkageType: ''
    returnType: void
    signature: void Sodium::randombytes_buf_deterministic(void* buf, size_t size,
      const uint8_t seed[randombytes_SEEDBYTES])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:47,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::Sodium::crypto_verify_16
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::CT::is_equal
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_verify_16(const uint8_t x[16], const uint8_t y[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:51,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan::Sodium::crypto_verify_32
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::CT::is_equal
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_verify_32(const uint8_t x[32], const uint8_t y[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:55,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::Sodium::crypto_verify_64
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::CT::is_equal
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_verify_64(const uint8_t x[64], const uint8_t y[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan::Sodium::sodium_memzero
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 22
    functionsReached:
    - secure_scrub_memory
    linkageType: ''
    returnType: void
    signature: void Sodium::sodium_memzero(void* ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:63,1
    - Dst: static_cast<const uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:63,1
    - Dst: static_cast<const uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:63,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:65,1
    - Dst: auto::select
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: Botan::Sodium::sodium_memcmp
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - static_cast<int>
    - static_cast<const uint8_t*>
    - auto::select
    - Botan::CT::is_equal
    linkageType: ''
    returnType: int
    signature: int Sodium::sodium_memcmp(const void* x, const void* y, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:69,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:76,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:77,1
    - Dst: auto::select
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:78,1
    - Dst: auto::select
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:78,1
    - Dst: static_cast<int8_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - x
    - y
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: Botan::Sodium::sodium_compare
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::ct_is_equal
    - static_cast<int8_t>
    - Botan::bigint_ct_is_lt
    - auto::select
    - static_cast<uint8_t>
    linkageType: ''
    returnType: int
    signature: int Sodium::sodium_compare(const uint8_t x[], const uint8_t y[], size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:89,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: Botan::Sodium::sodium_is_zero
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 13
    functionsReached:
    - static_cast<int>
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: int
    signature: int Sodium::sodium_is_zero(const uint8_t b[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: Botan::Sodium::sodium_increment
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::sodium_is_zero
    linkageType: ''
    returnType: void
    signature: void Sodium::sodium_increment(uint8_t b[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - a
    - b
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: Botan::Sodium::sodium_add
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: void
    signature: void Sodium::sodium_add(uint8_t a[], const uint8_t b[], size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:116,1
    - Dst: std::calloc
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:116,1
    - Dst: store_le
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: Botan::Sodium::sodium_malloc
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 5
    functionsReached:
    - static_cast<uint8_t*>
    - store_le
    - std::calloc
    linkageType: ''
    returnType: void
    signature: void * Sodium::sodium_malloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t*>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:126,1
    - Dst: load_le
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:127,1
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:128,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:128,1
    - Dst: std::free
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: Botan::Sodium::sodium_free
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint8_t*>
    - load_le
    - static_cast<size_t>
    - secure_scrub_memory
    - std::free
    linkageType: ''
    returnType: void
    signature: void Sodium::sodium_free(void* ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::sodium_malloc
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: Botan::Sodium::sodium_allocarray
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sodium::sodium_malloc
    linkageType: ''
    returnType: void
    signature: void * Sodium::sodium_allocarray(size_t count, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::page_prohibit_access
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:143,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: Botan::Sodium::sodium_mprotect_noaccess
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Botan::OS::page_prohibit_access
    linkageType: ''
    returnType: int
    signature: int Sodium::sodium_mprotect_noaccess(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::page_allow_access
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:153,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_utils.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: Botan::Sodium::sodium_mprotect_readwrite
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Botan::OS::page_allow_access
    linkageType: ''
    returnType: int
    signature: int Sodium::sodium_mprotect_readwrite(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:16,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:17,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - in_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: Botan::Sodium::crypto_hash_sha512
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 8
    functionsReached:
    - auto::update
    - Botan::HashFunction::create_or_throw
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_hash_sha512(uint8_t out[64], const uint8_t in[],
      size_t in_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:23,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:24,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - in_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: Botan::Sodium::crypto_hash_sha256
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 4
    functionsReached:
    - auto::update
    - Botan::HashFunction::create_or_throw
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_hash_sha256(uint8_t out[], const uint8_t in[], size_t
      in_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:30,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:31,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:32,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: Botan::Sodium::crypto_shorthash_siphash24
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 6
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::update
    - auto::set_key
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_shorthash_siphash24(uint8_t out[8], const uint8_t
      in[], size_t in_len, const uint8_t key[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:38,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:39,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:40,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Botan::Sodium::crypto_onetimeauth_poly1305
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 6
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::update
    - auto::set_key
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_onetimeauth_poly1305(uint8_t out[], const uint8_t
      in[], size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:50,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:50,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:51,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:51,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mac
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: Botan::Sodium::crypto_onetimeauth_poly1305_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 6
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_onetimeauth_poly1305
    - secure_vector::size
    - Botan::Sodium::sodium_memcmp
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_onetimeauth_poly1305_verify(const uint8_t mac[],\n
      \                                              const uint8_t in[],\n                                               size_t
      in_len,\n                                               const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:55,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:56,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:57,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: Botan::Sodium::crypto_auth_hmacsha512
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 4
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::update
    - auto::set_key
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_auth_hmacsha512(uint8_t out[], const uint8_t in[],
      size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_auth_hmacsha512
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:64,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:64,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:65,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:65,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mac
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: Botan::Sodium::crypto_auth_hmacsha512_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512
    - secure_vector::data
    - secure_vector::size
    - Botan::Sodium::sodium_memcmp
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_auth_hmacsha512_verify(const uint8_t mac[], const
      uint8_t in[], size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:69,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:70,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:71,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:74,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:76,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: Botan::Sodium::crypto_auth_hmacsha512256
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 6
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_key
    - auto::final
    - auto::update
    - copy_mem
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_auth_hmacsha512256(uint8_t out[], const uint8_t
      in[], size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:85,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:85,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:86,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:86,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mac
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: Botan::Sodium::crypto_auth_hmacsha512256_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 6
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_auth_hmacsha512256
    - secure_vector::size
    - Botan::Sodium::sodium_memcmp
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_auth_hmacsha512256_verify(const uint8_t mac[],\n
      \                                            const uint8_t in[],\n                                             size_t
      in_len,\n                                             const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:90,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:91,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:92,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: Botan::Sodium::crypto_auth_hmacsha256
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 4
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::update
    - auto::set_key
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_auth_hmacsha256(uint8_t out[], const uint8_t in[],
      size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_auth_hmacsha256
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:99,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:99,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:100,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:100,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mac
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: Botan::Sodium::crypto_auth_hmacsha256_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 4
    functionsReached:
    - secure_vector::data
    - secure_vector::size
    - Botan::Sodium::crypto_auth_hmacsha256
    - Botan::Sodium::sodium_memcmp
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_auth_hmacsha256_verify(const uint8_t mac[], const
      uint8_t in[], size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:16,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:17,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - in_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: Botan::Sodium::crypto_hash_sha512
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 8
    functionsReached:
    - auto::update
    - Botan::HashFunction::create_or_throw
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_hash_sha512(uint8_t out[64], const uint8_t in[],
      size_t in_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:23,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:24,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - in_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: Botan::Sodium::crypto_hash_sha256
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 4
    functionsReached:
    - auto::update
    - Botan::HashFunction::create_or_throw
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_hash_sha256(uint8_t out[], const uint8_t in[], size_t
      in_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:30,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:31,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:32,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: Botan::Sodium::crypto_shorthash_siphash24
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 6
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::update
    - auto::set_key
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_shorthash_siphash24(uint8_t out[8], const uint8_t
      in[], size_t in_len, const uint8_t key[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:38,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:39,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:40,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Botan::Sodium::crypto_onetimeauth_poly1305
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 7
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::update
    - auto::set_key
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_onetimeauth_poly1305(uint8_t out[], const uint8_t
      in[], size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:50,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:50,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:51,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:51,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mac
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: Botan::Sodium::crypto_onetimeauth_poly1305_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 6
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_onetimeauth_poly1305
    - secure_vector::size
    - Botan::Sodium::sodium_memcmp
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_onetimeauth_poly1305_verify(const uint8_t mac[],\n
      \                                              const uint8_t in[],\n                                               size_t
      in_len,\n                                               const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:55,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:56,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:57,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: Botan::Sodium::crypto_auth_hmacsha512
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 5
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::update
    - auto::set_key
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_auth_hmacsha512(uint8_t out[], const uint8_t in[],
      size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_auth_hmacsha512
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:64,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:64,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:65,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:65,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mac
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: Botan::Sodium::crypto_auth_hmacsha512_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512
    - secure_vector::data
    - secure_vector::size
    - Botan::Sodium::sodium_memcmp
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_auth_hmacsha512_verify(const uint8_t mac[], const
      uint8_t in[], size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:69,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:70,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:71,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:74,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:76,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: Botan::Sodium::crypto_auth_hmacsha512256
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 7
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::set_key
    - auto::final
    - auto::update
    - copy_mem
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_auth_hmacsha512256(uint8_t out[], const uint8_t
      in[], size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:85,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:85,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:86,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:86,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mac
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: Botan::Sodium::crypto_auth_hmacsha512256_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 6
    functionsReached:
    - secure_vector::data
    - Botan::Sodium::crypto_auth_hmacsha512256
    - secure_vector::size
    - Botan::Sodium::sodium_memcmp
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_auth_hmacsha512256_verify(const uint8_t mac[],\n
      \                                            const uint8_t in[],\n                                             size_t
      in_len,\n                                             const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:90,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:91,1
    - Dst: auto::update
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:92,1
    - Dst: auto::final
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: Botan::Sodium::crypto_auth_hmacsha256
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 5
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - auto::update
    - auto::set_key
    - auto::final
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_auth_hmacsha256(uint8_t out[], const uint8_t in[],
      size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_auth_hmacsha256
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:99,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:99,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:100,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:100,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_auth.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - mac
    - in
    - in_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: Botan::Sodium::crypto_auth_hmacsha256_verify
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_auth.cpp
    functionUses: 4
    functionsReached:
    - secure_vector::data
    - secure_vector::size
    - Botan::Sodium::crypto_auth_hmacsha256
    - Botan::Sodium::sodium_memcmp
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_auth_hmacsha256_verify(const uint8_t mac[], const
      uint8_t in[], size_t in_len, const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:14,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:15,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:16,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: Botan::Sodium::crypto_stream_chacha20
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    - auto::write_keystream
    - auto::set_key
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_stream_chacha20(uint8_t out[], size_t out_len, const
      uint8_t nonce[], const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_chacha20_xor_ic
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: Botan::Sodium::crypto_stream_chacha20_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_stream_chacha20_xor_ic
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_chacha20_xor(\n   uint8_t out[], const uint8_t
      in[], size_t in_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:32,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:33,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:34,1
    - Dst: auto::seek
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:35,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - out
    - in
    - in_len
    - nonce
    - ic
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: Botan::Sodium::crypto_stream_chacha20_xor_ic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 1
    functionsReached:
    - auto::set_key
    - auto::cipher
    - auto::seek
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_chacha20_xor_ic(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], uint64_t ic, const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:41,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:42,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:43,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    - auto::write_keystream
    - auto::set_key
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_stream_chacha20_ietf(uint8_t out[], size_t out_len,
      const uint8_t nonce[], const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf_xor_ic
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_stream_chacha20_ietf_xor_ic
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_chacha20_ietf_xor(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:55,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:56,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:57,1
    - Dst: auto::seek
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:58,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:58,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - out
    - in
    - in_len
    - nonce
    - ic
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint32_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_xor_ic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint64_t>
    - auto::set_key
    - auto::cipher
    - auto::seek
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_chacha20_ietf_xor_ic(\n   uint8_t out[],
      const uint8_t in[], size_t in_len, const uint8_t nonce[], uint32_t ic, const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:64,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:65,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:66,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: Botan::Sodium::crypto_stream_xchacha20
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    - auto::write_keystream
    - auto::set_key
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_stream_xchacha20(uint8_t out[], size_t out_len,
      const uint8_t nonce[], const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xchacha20_xor_ic
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan::Sodium::crypto_stream_xchacha20_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_stream_xchacha20_xor_ic
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_xchacha20_xor(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:82,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:83,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:84,1
    - Dst: auto::seek
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:85,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - out
    - in
    - in_len
    - nonce
    - ic
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: Botan::Sodium::crypto_stream_xchacha20_xor_ic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 1
    functionsReached:
    - auto::set_key
    - auto::cipher
    - auto::seek
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_xchacha20_xor_ic(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], uint64_t ic, const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:14,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:15,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:16,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: Botan::Sodium::crypto_stream_chacha20
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    - auto::write_keystream
    - auto::set_key
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_stream_chacha20(uint8_t out[], size_t out_len, const
      uint8_t nonce[], const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_chacha20_xor_ic
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: Botan::Sodium::crypto_stream_chacha20_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_stream_chacha20_xor_ic
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_chacha20_xor(\n   uint8_t out[], const uint8_t
      in[], size_t in_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:32,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:33,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:34,1
    - Dst: auto::seek
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:35,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - out
    - in
    - in_len
    - nonce
    - ic
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: Botan::Sodium::crypto_stream_chacha20_xor_ic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 2
    functionsReached:
    - auto::set_key
    - auto::cipher
    - auto::seek
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_chacha20_xor_ic(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], uint64_t ic, const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:41,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:42,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:43,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    - auto::write_keystream
    - auto::set_key
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_stream_chacha20_ietf(uint8_t out[], size_t out_len,
      const uint8_t nonce[], const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf_xor_ic
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_stream_chacha20_ietf_xor_ic
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_chacha20_ietf_xor(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:55,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:56,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:57,1
    - Dst: auto::seek
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:58,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:58,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - out
    - in
    - in_len
    - nonce
    - ic
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint32_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: Botan::Sodium::crypto_stream_chacha20_ietf_xor_ic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint64_t>
    - auto::set_key
    - auto::cipher
    - auto::seek
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_chacha20_ietf_xor_ic(\n   uint8_t out[],
      const uint8_t in[], size_t in_len, const uint8_t nonce[], uint32_t ic, const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:64,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:65,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:66,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - out_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: Botan::Sodium::crypto_stream_xchacha20
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    - auto::write_keystream
    - auto::set_key
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_stream_xchacha20(uint8_t out[], size_t out_len,
      const uint8_t nonce[], const uint8_t key[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::crypto_stream_xchacha20_xor_ic
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - in_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan::Sodium::crypto_stream_xchacha20_xor
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 4
    functionsReached:
    - Botan::Sodium::crypto_stream_xchacha20_xor_ic
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_xchacha20_xor(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::StreamCipher::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:82,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:83,1
    - Dst: auto::set_iv
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:84,1
    - Dst: auto::seek
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:85,1
    - Dst: auto::cipher
      Src: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - out
    - in
    - in_len
    - nonce
    - ic
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: Botan::Sodium::crypto_stream_xchacha20_xor_ic
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_chacha.cpp
    functionUses: 2
    functionsReached:
    - auto::set_key
    - auto::cipher
    - auto::seek
    - Botan::StreamCipher::create_or_throw
    - auto::set_iv
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_stream_xchacha20_xor_ic(\n   uint8_t out[], const
      uint8_t in[], size_t in_len, const uint8_t nonce[], uint64_t ic, const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curve25519_donna
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: Botan::Sodium::crypto_scalarmult_curve25519
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 4
    functionsReached:
    - curve25519_donna
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_scalarmult_curve25519(uint8_t out[32], const uint8_t
      scalar[32], const uint8_t point[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curve25519_basepoint
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: Botan::Sodium::crypto_scalarmult_curve25519_base
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 6
    functionsReached:
    - curve25519_basepoint
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_scalarmult_curve25519_base(uint8_t out[32], const
      uint8_t scalar[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_sign
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - sig
    - sig_len
    - msg
    - msg_len
    - sk
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: Botan::Sodium::crypto_sign_ed25519_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 6
    functionsReached:
    - ed25519_sign
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_sign_ed25519_detached(\n   uint8_t sig[], unsigned
      long long* sig_len, const uint8_t msg[], size_t msg_len, const uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_verify
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - sig
    - msg
    - msg_len
    - pk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan::Sodium::crypto_sign_ed25519_verify_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 6
    functionsReached:
    - ed25519_verify
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_sign_ed25519_verify_detached(const uint8_t sig[],\n
      \                                               const uint8_t msg[],\n                                                size_t
      msg_len,\n                                                const uint8_t pk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:44,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:44,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:44,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_seed_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:45,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan::Sodium::crypto_sign_ed25519_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    - secure_vector::data
    - Botan::Sodium::randombytes_buf
    - secure_vector::size
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_sign_ed25519_keypair(uint8_t pk[32], uint8_t sk[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_gen_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pk
    - sk
    - seed
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::Sodium::crypto_sign_ed25519_seed_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 7
    functionsReached:
    - ed25519_gen_keypair
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_sign_ed25519_seed_keypair(uint8_t pk[], uint8_t
      sk[], const uint8_t seed[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curve25519_donna
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: Botan::Sodium::crypto_scalarmult_curve25519
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 4
    functionsReached:
    - curve25519_donna
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_scalarmult_curve25519(uint8_t out[32], const uint8_t
      scalar[32], const uint8_t point[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curve25519_basepoint
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: Botan::Sodium::crypto_scalarmult_curve25519_base
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 6
    functionsReached:
    - curve25519_basepoint
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_scalarmult_curve25519_base(uint8_t out[32], const
      uint8_t scalar[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_sign
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - sig
    - sig_len
    - msg
    - msg_len
    - sk
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: Botan::Sodium::crypto_sign_ed25519_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 6
    functionsReached:
    - ed25519_sign
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_sign_ed25519_detached(\n   uint8_t sig[], unsigned
      long long* sig_len, const uint8_t msg[], size_t msg_len, const uint8_t sk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_verify
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - sig
    - msg
    - msg_len
    - pk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan::Sodium::crypto_sign_ed25519_verify_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 6
    functionsReached:
    - ed25519_verify
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_sign_ed25519_verify_detached(const uint8_t sig[],\n
      \                                               const uint8_t msg[],\n                                                size_t
      msg_len,\n                                                const uint8_t pk[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sodium::randombytes_buf
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:44,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:44,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:44,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_seed_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:45,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pk
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan::Sodium::crypto_sign_ed25519_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    - secure_vector::data
    - Botan::Sodium::randombytes_buf
    - secure_vector::size
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_sign_ed25519_keypair(uint8_t pk[32], uint8_t sk[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_gen_keypair
      Src: /src/botan/src/lib/compat/sodium/sodium_25519.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pk
    - sk
    - seed
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::Sodium::crypto_sign_ed25519_seed_keypair
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_25519.cpp
    functionUses: 8
    functionsReached:
    - ed25519_gen_keypair
    linkageType: ''
    returnType: int
    signature: int Sodium::crypto_sign_ed25519_seed_keypair(uint8_t pk[], uint8_t
      sk[], const uint8_t seed[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:26,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:28,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:29,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:30,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:34,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:35,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:37,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 9
    argNames:
    - ctext
    - ctext_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_encrypt(uint8_t ctext[],\n                                         unsigned
      long long* ctext_len,\n                                         const uint8_t
      ptext[],\n                                         size_t ptext_len,\n                                         const
      uint8_t ad[],\n                                         size_t ad_len,\n                                         const
      uint8_t nonce[],\n                                         size_t nonce_len,\n
      \                                        const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:61,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:63,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:64,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:65,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:69,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:72,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 9
    argNames:
    - ptext
    - ptext_len
    - ctext
    - ctext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_decrypt(uint8_t ptext[],\n                                         unsigned
      long long* ptext_len,\n                                         const uint8_t
      ctext[],\n                                         size_t ctext_len,\n                                         const
      uint8_t ad[],\n                                         size_t ad_len,\n                                         const
      uint8_t nonce[],\n                                         size_t nonce_len,\n
      \                                        const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:92,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:94,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:95,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:96,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:100,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:101,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:103,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:105,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:105,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:106,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 9
    argNames:
    - ctext
    - mac
    - ptext
    - ptext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_encrypt_detached(uint8_t ctext[],\n
      \                                                 uint8_t mac[],\n                                                  const
      uint8_t ptext[],\n                                                  size_t ptext_len,\n
      \                                                 const uint8_t ad[],\n                                                  size_t
      ad_len,\n                                                  const uint8_t nonce[],\n
      \                                                 size_t nonce_len,\n                                                  const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:119,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:121,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:122,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:123,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:127,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:129,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:129,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:132,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 9
    argNames:
    - ptext
    - ctext
    - ctext_len
    - mac
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - secure_vector::end
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    - secure_vector::insert
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_decrypt_detached(uint8_t ptext[],\n
      \                                                 const uint8_t ctext[],\n                                                  size_t
      ctext_len,\n                                                  const uint8_t
      mac[],\n                                                  const uint8_t ad[],\n
      \                                                 size_t ad_len,\n                                                  const
      uint8_t nonce[],\n                                                  size_t nonce_len,\n
      \                                                 const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:26,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:28,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:29,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:30,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:34,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:35,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:37,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 9
    argNames:
    - ctext
    - ctext_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_encrypt(uint8_t ctext[],\n                                         unsigned
      long long* ctext_len,\n                                         const uint8_t
      ptext[],\n                                         size_t ptext_len,\n                                         const
      uint8_t ad[],\n                                         size_t ad_len,\n                                         const
      uint8_t nonce[],\n                                         size_t nonce_len,\n
      \                                        const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:61,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:63,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:64,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:65,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:69,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:72,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 9
    argNames:
    - ptext
    - ptext_len
    - ctext
    - ctext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_decrypt(uint8_t ptext[],\n                                         unsigned
      long long* ptext_len,\n                                         const uint8_t
      ctext[],\n                                         size_t ctext_len,\n                                         const
      uint8_t ad[],\n                                         size_t ad_len,\n                                         const
      uint8_t nonce[],\n                                         size_t nonce_len,\n
      \                                        const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:92,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:94,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:95,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:96,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:100,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:101,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:103,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:105,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:105,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:106,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 9
    argNames:
    - ctext
    - mac
    - ptext
    - ptext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_encrypt_detached(uint8_t ctext[],\n
      \                                                 uint8_t mac[],\n                                                  const
      uint8_t ptext[],\n                                                  size_t ptext_len,\n
      \                                                 const uint8_t ad[],\n                                                  size_t
      ad_len,\n                                                  const uint8_t nonce[],\n
      \                                                 size_t nonce_len,\n                                                  const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:119,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:121,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:122,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:123,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:127,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:129,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:129,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:132,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 9
    argNames:
    - ptext
    - ctext
    - ctext_len
    - mac
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - secure_vector::end
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    - secure_vector::insert
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_decrypt_detached(uint8_t ptext[],\n
      \                                                 const uint8_t ctext[],\n                                                  size_t
      ctext_len,\n                                                  const uint8_t
      mac[],\n                                                  const uint8_t ad[],\n
      \                                                 size_t ad_len,\n                                                  const
      uint8_t nonce[],\n                                                  size_t nonce_len,\n
      \                                                 const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:152,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:154,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ctext
    - ctext_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_encrypt
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_ietf_encrypt(uint8_t ctext[],\n
      \                                                     unsigned long long* ctext_len,\n
      \                                                     const uint8_t ptext[],\n
      \                                                     size_t ptext_len,\n                                                      const
      uint8_t ad[],\n                                                      size_t
      ad_len,\n                                                      const uint8_t
      unused_secret_nonce[],\n                                                      const
      uint8_t nonce[],\n                                                      const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:167,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:169,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - ptext_len
    - unused_secret_nonce
    - ctext
    - ctext_len
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 171
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - sodium_aead_chacha20poly1305_decrypt
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_ietf_decrypt(uint8_t ptext[],\n
      \                                                     unsigned long long* ptext_len,\n
      \                                                     uint8_t unused_secret_nonce[],\n
      \                                                     const uint8_t ctext[],\n
      \                                                     size_t ctext_len,\n                                                      const
      uint8_t ad[],\n                                                      size_t
      ad_len,\n                                                      const uint8_t
      nonce[],\n                                                      const uint8_t
      key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:183,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:189,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 10
    argNames:
    - ctext
    - mac
    - mac_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_encrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached(uint8_t
      ctext[],\n                                                               uint8_t
      mac[],\n                                                               unsigned
      long long* mac_len,\n                                                               const
      uint8_t ptext[],\n                                                               size_t
      ptext_len,\n                                                               const
      uint8_t ad[],\n                                                               size_t
      ad_len,\n                                                               const
      uint8_t unused_secret_nonce[],\n                                                               const
      uint8_t nonce[],\n                                                               const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:202,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:204,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - unused_secret_nonce
    - ctext
    - ctext_len
    - mac
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_decrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached(uint8_t
      ptext[],\n                                                               uint8_t
      unused_secret_nonce[],\n                                                               const
      uint8_t ctext[],\n                                                               size_t
      ctext_len,\n                                                               const
      uint8_t mac[],\n                                                               const
      uint8_t ad[],\n                                                               size_t
      ad_len,\n                                                               const
      uint8_t nonce[],\n                                                               const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:217,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:218,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ctext
    - ctext_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - sodium_aead_chacha20poly1305_encrypt
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_encrypt(uint8_t ctext[],\n
      \                                                unsigned long long* ctext_len,\n
      \                                                const uint8_t ptext[],\n                                                 size_t
      ptext_len,\n                                                 const uint8_t ad[],\n
      \                                                size_t ad_len,\n                                                 const
      uint8_t unused_secret_nonce[],\n                                                 const
      uint8_t nonce[],\n                                                 const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:231,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:232,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - ptext_len
    - unused_secret_nonce
    - ctext
    - ctext_len
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - sodium_aead_chacha20poly1305_decrypt
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_decrypt(uint8_t ptext[],\n
      \                                                unsigned long long* ptext_len,\n
      \                                                uint8_t unused_secret_nonce[],\n
      \                                                const uint8_t ctext[],\n                                                 size_t
      ctext_len,\n                                                 const uint8_t ad[],\n
      \                                                size_t ad_len,\n                                                 const
      uint8_t nonce[],\n                                                 const uint8_t
      key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:246,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:251,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 10
    argNames:
    - ctext
    - mac
    - mac_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 253
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_encrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_encrypt_detached(uint8_t
      ctext[],\n                                                          uint8_t
      mac[],\n                                                          unsigned long
      long* mac_len,\n                                                          const
      uint8_t ptext[],\n                                                          size_t
      ptext_len,\n                                                          const
      uint8_t ad[],\n                                                          size_t
      ad_len,\n                                                          const uint8_t
      unused_secret_nonce[],\n                                                          const
      uint8_t nonce[],\n                                                          const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:264,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:266,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - unused_secret_nonce
    - ctext
    - ctext_len
    - mac
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_decrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_decrypt_detached(uint8_t
      ptext[],\n                                                          uint8_t
      unused_secret_nonce[],\n                                                          const
      uint8_t ctext[],\n                                                          size_t
      ctext_len,\n                                                          const
      uint8_t mac[],\n                                                          const
      uint8_t ad[],\n                                                          size_t
      ad_len,\n                                                          const uint8_t
      nonce[],\n                                                          const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:279,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:281,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ctext
    - ctext_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 283
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_encrypt
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt(uint8_t ctext[],\n
      \                                                      unsigned long long* ctext_len,\n
      \                                                      const uint8_t ptext[],\n
      \                                                      size_t ptext_len,\n                                                       const
      uint8_t ad[],\n                                                       size_t
      ad_len,\n                                                       const uint8_t
      unused_secret_nonce[],\n                                                       const
      uint8_t nonce[],\n                                                       const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:294,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:296,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - ptext_len
    - unused_secret_nonce
    - ctext
    - ctext_len
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 298
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - sodium_aead_chacha20poly1305_decrypt
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt(uint8_t ptext[],\n
      \                                                      unsigned long long* ptext_len,\n
      \                                                      uint8_t unused_secret_nonce[],\n
      \                                                      const uint8_t ctext[],\n
      \                                                      size_t ctext_len,\n                                                       const
      uint8_t ad[],\n                                                       size_t
      ad_len,\n                                                       const uint8_t
      nonce[],\n                                                       const uint8_t
      key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:310,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:315,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 10
    argNames:
    - ctext
    - mac
    - mac_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_encrypt_detached
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached(uint8_t
      ctext[],\n                                                                uint8_t
      mac[],\n                                                                unsigned
      long long* mac_len,\n                                                                const
      uint8_t ptext[],\n                                                                size_t
      ptext_len,\n                                                                const
      uint8_t ad[],\n                                                                size_t
      ad_len,\n                                                                const
      uint8_t unused_secret_nonce[],\n                                                                const
      uint8_t nonce[],\n                                                                const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:328,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:329,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - unused_secret_nonce
    - ctext
    - ctext_len
    - mac
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 331
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_decrypt_detached
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached(uint8_t
      ptext[],\n                                                                uint8_t
      unused_secret_nonce[],\n                                                                const
      uint8_t ctext[],\n                                                                size_t
      ctext_len,\n                                                                const
      uint8_t mac[],\n                                                                const
      uint8_t ad[],\n                                                                size_t
      ad_len,\n                                                                const
      uint8_t nonce[],\n                                                                const
      uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:26,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:28,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:29,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:30,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:34,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:35,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:37,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 9
    argNames:
    - ctext
    - ctext_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_encrypt(uint8_t ctext[],\n                                         unsigned
      long long* ctext_len,\n                                         const uint8_t
      ptext[],\n                                         size_t ptext_len,\n                                         const
      uint8_t ad[],\n                                         size_t ad_len,\n                                         const
      uint8_t nonce[],\n                                         size_t nonce_len,\n
      \                                        const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:61,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:63,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:64,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:65,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:69,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:72,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 9
    argNames:
    - ptext
    - ptext_len
    - ctext
    - ctext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_decrypt(uint8_t ptext[],\n                                         unsigned
      long long* ptext_len,\n                                         const uint8_t
      ctext[],\n                                         size_t ctext_len,\n                                         const
      uint8_t ad[],\n                                         size_t ad_len,\n                                         const
      uint8_t nonce[],\n                                         size_t nonce_len,\n
      \                                        const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:92,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:94,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:95,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:96,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:100,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:101,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:103,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:105,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:105,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:106,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 9
    argNames:
    - ctext
    - mac
    - ptext
    - ptext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_encrypt_detached(uint8_t ctext[],\n
      \                                                 uint8_t mac[],\n                                                  const
      uint8_t ptext[],\n                                                  size_t ptext_len,\n
      \                                                 const uint8_t ad[],\n                                                  size_t
      ad_len,\n                                                  const uint8_t nonce[],\n
      \                                                 size_t nonce_len,\n                                                  const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:119,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:121,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:122,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:123,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:127,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:129,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:129,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:132,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 9
    argNames:
    - ptext
    - ctext
    - ctext_len
    - mac
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - secure_vector::end
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    - secure_vector::insert
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_decrypt_detached(uint8_t ptext[],\n
      \                                                 const uint8_t ctext[],\n                                                  size_t
      ctext_len,\n                                                  const uint8_t
      mac[],\n                                                  const uint8_t ad[],\n
      \                                                 size_t ad_len,\n                                                  const
      uint8_t nonce[],\n                                                  size_t nonce_len,\n
      \                                                 const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:26,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:28,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:29,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:30,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:34,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:35,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:37,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:39,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 9
    argNames:
    - ctext
    - ctext_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_encrypt(uint8_t ctext[],\n                                         unsigned
      long long* ctext_len,\n                                         const uint8_t
      ptext[],\n                                         size_t ptext_len,\n                                         const
      uint8_t ad[],\n                                         size_t ad_len,\n                                         const
      uint8_t nonce[],\n                                         size_t nonce_len,\n
      \                                        const uint8_t key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:61,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:63,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:64,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:65,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:69,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:72,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 9
    argNames:
    - ptext
    - ptext_len
    - ctext
    - ctext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_decrypt(uint8_t ptext[],\n                                         unsigned
      long long* ptext_len,\n                                         const uint8_t
      ctext[],\n                                         size_t ctext_len,\n                                         const
      uint8_t ad[],\n                                         size_t ad_len,\n                                         const
      uint8_t nonce[],\n                                         size_t nonce_len,\n
      \                                        const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:92,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:94,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:95,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:96,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:100,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:101,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:103,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:105,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:105,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:106,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 9
    argNames:
    - ctext
    - mac
    - ptext
    - ptext_len
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - Botan::copy_mem
    - secure_vector::assign
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_encrypt_detached(uint8_t ctext[],\n
      \                                                 uint8_t mac[],\n                                                  const
      uint8_t ptext[],\n                                                  size_t ptext_len,\n
      \                                                 const uint8_t ad[],\n                                                  size_t
      ad_len,\n                                                  const uint8_t nonce[],\n
      \                                                 size_t nonce_len,\n                                                  const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:119,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:121,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:122,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:123,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:127,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:129,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:129,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:132,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 9
    argNames:
    - ptext
    - ctext
    - ctext_len
    - mac
    - ad
    - ad_len
    - nonce
    - nonce_len
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::set_associated_data
    - secure_vector::reserve
    - auto::set_key
    - secure_vector::end
    - Botan::copy_mem
    - secure_vector::assign
    - secure_vector::size
    - auto::start
    - Botan::AEAD_Mode::create_or_throw
    - auto::finish
    - secure_vector::data
    - secure_vector::insert
    linkageType: ''
    returnType: int
    signature: "int sodium_aead_chacha20poly1305_decrypt_detached(uint8_t ptext[],\n
      \                                                 const uint8_t ctext[],\n                                                  size_t
      ctext_len,\n                                                  const uint8_t
      mac[],\n                                                  const uint8_t ad[],\n
      \                                                 size_t ad_len,\n                                                  const
      uint8_t nonce[],\n                                                  size_t nonce_len,\n
      \                                                 const uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:152,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:154,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ctext
    - ctext_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_encrypt
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_ietf_encrypt(uint8_t ctext[],\n
      \                                                     unsigned long long* ctext_len,\n
      \                                                     const uint8_t ptext[],\n
      \                                                     size_t ptext_len,\n                                                      const
      uint8_t ad[],\n                                                      size_t
      ad_len,\n                                                      const uint8_t
      unused_secret_nonce[],\n                                                      const
      uint8_t nonce[],\n                                                      const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:167,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:169,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - ptext_len
    - unused_secret_nonce
    - ctext
    - ctext_len
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 171
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - sodium_aead_chacha20poly1305_decrypt
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_ietf_decrypt(uint8_t ptext[],\n
      \                                                     unsigned long long* ptext_len,\n
      \                                                     uint8_t unused_secret_nonce[],\n
      \                                                     const uint8_t ctext[],\n
      \                                                     size_t ctext_len,\n                                                      const
      uint8_t ad[],\n                                                      size_t
      ad_len,\n                                                      const uint8_t
      nonce[],\n                                                      const uint8_t
      key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:183,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:189,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 10
    argNames:
    - ctext
    - mac
    - mac_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_encrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached(uint8_t
      ctext[],\n                                                               uint8_t
      mac[],\n                                                               unsigned
      long long* mac_len,\n                                                               const
      uint8_t ptext[],\n                                                               size_t
      ptext_len,\n                                                               const
      uint8_t ad[],\n                                                               size_t
      ad_len,\n                                                               const
      uint8_t unused_secret_nonce[],\n                                                               const
      uint8_t nonce[],\n                                                               const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:202,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:204,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - unused_secret_nonce
    - ctext
    - ctext_len
    - mac
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_decrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached(uint8_t
      ptext[],\n                                                               uint8_t
      unused_secret_nonce[],\n                                                               const
      uint8_t ctext[],\n                                                               size_t
      ctext_len,\n                                                               const
      uint8_t mac[],\n                                                               const
      uint8_t ad[],\n                                                               size_t
      ad_len,\n                                                               const
      uint8_t nonce[],\n                                                               const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:217,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:218,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ctext
    - ctext_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - sodium_aead_chacha20poly1305_encrypt
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_encrypt(uint8_t ctext[],\n
      \                                                unsigned long long* ctext_len,\n
      \                                                const uint8_t ptext[],\n                                                 size_t
      ptext_len,\n                                                 const uint8_t ad[],\n
      \                                                size_t ad_len,\n                                                 const
      uint8_t unused_secret_nonce[],\n                                                 const
      uint8_t nonce[],\n                                                 const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:231,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:232,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - ptext_len
    - unused_secret_nonce
    - ctext
    - ctext_len
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - sodium_aead_chacha20poly1305_decrypt
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_decrypt(uint8_t ptext[],\n
      \                                                unsigned long long* ptext_len,\n
      \                                                uint8_t unused_secret_nonce[],\n
      \                                                const uint8_t ctext[],\n                                                 size_t
      ctext_len,\n                                                 const uint8_t ad[],\n
      \                                                size_t ad_len,\n                                                 const
      uint8_t nonce[],\n                                                 const uint8_t
      key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:246,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:251,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 10
    argNames:
    - ctext
    - mac
    - mac_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 253
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_encrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_encrypt_detached(uint8_t
      ctext[],\n                                                          uint8_t
      mac[],\n                                                          unsigned long
      long* mac_len,\n                                                          const
      uint8_t ptext[],\n                                                          size_t
      ptext_len,\n                                                          const
      uint8_t ad[],\n                                                          size_t
      ad_len,\n                                                          const uint8_t
      unused_secret_nonce[],\n                                                          const
      uint8_t nonce[],\n                                                          const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:264,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:266,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - unused_secret_nonce
    - ctext
    - ctext_len
    - mac
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_decrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_chacha20poly1305_decrypt_detached(uint8_t
      ptext[],\n                                                          uint8_t
      unused_secret_nonce[],\n                                                          const
      uint8_t ctext[],\n                                                          size_t
      ctext_len,\n                                                          const
      uint8_t mac[],\n                                                          const
      uint8_t ad[],\n                                                          size_t
      ad_len,\n                                                          const uint8_t
      nonce[],\n                                                          const uint8_t
      key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:279,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:281,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ctext
    - ctext_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 283
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_encrypt
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt(uint8_t ctext[],\n
      \                                                      unsigned long long* ctext_len,\n
      \                                                      const uint8_t ptext[],\n
      \                                                      size_t ptext_len,\n                                                       const
      uint8_t ad[],\n                                                       size_t
      ad_len,\n                                                       const uint8_t
      unused_secret_nonce[],\n                                                       const
      uint8_t nonce[],\n                                                       const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:294,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:296,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - ptext_len
    - unused_secret_nonce
    - ctext
    - ctext_len
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 298
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - sodium_aead_chacha20poly1305_decrypt
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt(uint8_t ptext[],\n
      \                                                      unsigned long long* ptext_len,\n
      \                                                      uint8_t unused_secret_nonce[],\n
      \                                                      const uint8_t ctext[],\n
      \                                                      size_t ctext_len,\n                                                       const
      uint8_t ad[],\n                                                       size_t
      ad_len,\n                                                       const uint8_t
      nonce[],\n                                                       const uint8_t
      key[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:310,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:315,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 10
    argNames:
    - ctext
    - mac
    - mac_len
    - ptext
    - ptext_len
    - ad
    - ad_len
    - unused_secret_nonce
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - unsigned long long*
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_encrypt_detached
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached(uint8_t
      ctext[],\n                                                                uint8_t
      mac[],\n                                                                unsigned
      long long* mac_len,\n                                                                const
      uint8_t ptext[],\n                                                                size_t
      ptext_len,\n                                                                const
      uint8_t ad[],\n                                                                size_t
      ad_len,\n                                                                const
      uint8_t unused_secret_nonce[],\n                                                                const
      uint8_t nonce[],\n                                                                const
      uint8_t key[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:328,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:329,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - ptext
    - unused_secret_nonce
    - ctext
    - ctext_len
    - mac
    - ad
    - ad_len
    - nonce
    - key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 331
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_decrypt_detached
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    linkageType: ''
    returnType: int
    signature: "int Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached(uint8_t
      ptext[],\n                                                                uint8_t
      unused_secret_nonce[],\n                                                                const
      uint8_t ctext[],\n                                                                size_t
      ctext_len,\n                                                                const
      uint8_t mac[],\n                                                                const
      uint8_t ad[],\n                                                                size_t
      ad_len,\n                                                                const
      uint8_t nonce[],\n                                                                const
      uint8_t key[])"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:132,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:133,1
    - Dst: std::make_unique<RSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:138,1
    - Dst: std::make_unique<X25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:144,1
    - Dst: std::make_unique<X448_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:150,1
    - Dst: std::make_unique<McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:156,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:161,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:161,1
    - Dst: std::make_unique<FrodoKEM_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:162,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:167,1
    - Dst: std::make_unique<Kyber_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:168,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:173,1
    - Dst: std::make_unique<ML_KEM_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:174,1
    - Dst: std::make_unique<ECDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:180,1
    - Dst: std::make_unique<ECDH_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:186,1
    - Dst: std::make_unique<DH_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:192,1
    - Dst: std::make_unique<DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:198,1
    - Dst: std::make_unique<ElGamal_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:204,1
    - Dst: std::make_unique<ECGDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:210,1
    - Dst: std::make_unique<ECKCDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:216,1
    - Dst: std::make_unique<Ed25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:222,1
    - Dst: std::make_unique<Ed448_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:228,1
    - Dst: std::make_unique<GOST_3410_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:234,1
    - Dst: std::make_unique<SM2_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:240,1
    - Dst: std::make_unique<XMSS_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:246,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:251,1
    - Dst: std::make_unique<Dilithium_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:252,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:257,1
    - Dst: std::make_unique<ML_DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:258,1
    - Dst: std::make_unique<HSS_LMS_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:264,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:269,1
    - Dst: std::make_unique<SphincsPlus_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:270,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:275,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:275,1
    - Dst: std::make_unique<SLH_DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:276,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:281,1
    - Dst: std::make_unique<Classic_McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:282,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:286,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:286,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 77
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 287
    functionName: Botan::load_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 6
    functionsReached:
    - std::make_unique<Dilithium_PublicKey>
    - std::make_unique<Classic_McEliece_PublicKey>
    - Botan::fmt
    - std::make_unique<McEliece_PublicKey>
    - std::make_unique<ECKCDSA_PublicKey>
    - Botan::Decoding_Error
    - std::make_unique<ECDSA_PublicKey>
    - std::make_unique<SLH_DSA_PublicKey>
    - std::make_unique<HSS_LMS_PublicKey>
    - std::string_view::starts_with
    - std::make_unique<X25519_PublicKey>
    - std::make_unique<ML_KEM_PublicKey>
    - std::make_unique<XMSS_PublicKey>
    - std::make_unique<X448_PublicKey>
    - std::make_unique<ECGDSA_PublicKey>
    - Botan::oid
    - std::make_unique<DSA_PublicKey>
    - std::make_unique<SM2_PublicKey>
    - std::make_unique<ElGamal_PublicKey>
    - std::make_unique<ML_DSA_PublicKey>
    - std::make_unique<SphincsPlus_PublicKey>
    - std::make_unique<Ed25519_PublicKey>
    - std::make_unique<DH_PublicKey>
    - std::make_unique<Kyber_PublicKey>
    - std::make_unique<GOST_3410_PublicKey>
    - Botan::split_on
    - std::make_unique<FrodoKEM_PublicKey>
    - std::make_unique<Ed448_PublicKey>
    - std::make_unique<RSA_PublicKey>
    - std::make_unique<ECDH_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: "std::unique_ptr<Public_Key> load_public_key(const AlgorithmIdentifier&
      alg_id,\n                                            [[maybe_unused]] std::span<const
      uint8_t> key_bits)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:291,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:292,1
    - Dst: std::make_unique<RSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:297,1
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:303,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:309,1
    - Dst: std::make_unique<ECDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:315,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:321,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:327,1
    - Dst: std::make_unique<DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:333,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:338,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:338,1
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:339,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:344,1
    - Dst: std::make_unique<Kyber_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:345,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:350,1
    - Dst: std::make_unique<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:351,1
    - Dst: std::make_unique<McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:357,1
    - Dst: std::make_unique<ECGDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:363,1
    - Dst: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:369,1
    - Dst: std::make_unique<Ed25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:375,1
    - Dst: std::make_unique<Ed448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:381,1
    - Dst: std::make_unique<GOST_3410_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:387,1
    - Dst: std::make_unique<SM2_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:393,1
    - Dst: std::make_unique<ElGamal_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:399,1
    - Dst: std::make_unique<XMSS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:405,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:410,1
    - Dst: std::make_unique<Dilithium_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:411,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:416,1
    - Dst: std::make_unique<ML_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:417,1
    - Dst: std::make_unique<HSS_LMS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:423,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:428,1
    - Dst: std::make_unique<SphincsPlus_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:429,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:434,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:434,1
    - Dst: std::make_unique<SLH_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:435,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:440,1
    - Dst: std::make_unique<Classic_McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:441,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:445,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:445,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 77
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 446
    functionName: Botan::load_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 22
    functionsReached:
    - Botan::fmt
    - std::make_unique<SLH_DSA_PrivateKey>
    - std::make_unique<ECDH_PrivateKey>
    - std::make_unique<FrodoKEM_PrivateKey>
    - std::make_unique<ML_DSA_PrivateKey>
    - Botan::Decoding_Error
    - std::make_unique<DSA_PrivateKey>
    - std::make_unique<DH_PrivateKey>
    - std::make_unique<X448_PrivateKey>
    - std::make_unique<XMSS_PrivateKey>
    - std::make_unique<HSS_LMS_PrivateKey>
    - std::make_unique<Ed448_PrivateKey>
    - std::make_unique<X25519_PrivateKey>
    - std::string_view::starts_with
    - std::make_unique<ElGamal_PrivateKey>
    - std::make_unique<Ed25519_PrivateKey>
    - std::make_unique<SphincsPlus_PrivateKey>
    - std::make_unique<GOST_3410_PrivateKey>
    - Botan::oid
    - std::make_unique<Classic_McEliece_PrivateKey>
    - std::make_unique<ML_KEM_PrivateKey>
    - std::make_unique<ECGDSA_PrivateKey>
    - Botan::split_on
    - std::make_unique<ECKCDSA_PrivateKey>
    - std::make_unique<RSA_PrivateKey>
    - std::make_unique<SM2_PrivateKey>
    - std::make_unique<McEliece_PrivateKey>
    - std::make_unique<Dilithium_PrivateKey>
    - std::make_unique<ECDSA_PrivateKey>
    - std::make_unique<Kyber_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> load_private_key(const AlgorithmIdentifier&
      alg_id,\n                                              [[maybe_unused]] std::span<const
      uint8_t> key_bits)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:452,1
    - Dst: std::make_unique<ECDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:456,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:462,1
    - Dst: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:468,1
    - Dst: std::make_unique<GOST_3410_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:474,1
    - Dst: std::make_unique<SM2_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:480,1
    - Dst: std::make_unique<ECGDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:486,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - alg_name
    - ' ec_group'
    - ' rng'
    argTypes:
    - std::string_view
    - EC_Group
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 491
    functionName: Botan::create_ec_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<GOST_3410_PrivateKey>
    - std::make_unique<ECKCDSA_PrivateKey>
    - BOTAN_UNUSED
    - std::make_unique<ECDH_PrivateKey>
    - std::make_unique<SM2_PrivateKey>
    - std::make_unique<ECDSA_PrivateKey>
    - std::make_unique<ECGDSA_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> create_ec_private_key(std::string_view
      alg_name,\n                                                   const EC_Group&
      ec_group,\n                                                   RandomNumberGenerator&
      rng)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:503,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:509,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:515,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:515,1
    - Dst: std::make_unique<RSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:516,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:523,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:527,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:529,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:530,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:530,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:533,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:534,1
    - Dst: std::make_unique<McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:538,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:543,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:544,1
    - Dst: std::make_unique<Classic_McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:545,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:551,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:551,1
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:552,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:559,1
    - Dst: KyberMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:562,1
    - Dst: std::make_unique<Kyber_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:565,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:572,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:575,1
    - Dst: std::make_unique<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:578,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:583,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:585,1
    - Dst: DilithiumMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:588,1
    - Dst: std::make_unique<Dilithium_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:591,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:598,1
    - Dst: ML_DSA_Mode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:601,1
    - Dst: std::make_unique<ML_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:604,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:611,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:614,1
    - Dst: std::make_unique<HSS_LMS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:617,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:623,1
    - Dst: std::make_unique<SphincsPlus_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:625,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:631,1
    - Dst: std::make_unique<SLH_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:633,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:640,1
    - Dst: XMSS_Parameters
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:643,1
    - Dst: std::make_unique<XMSS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:646,1
    - Dst: std::make_unique<Ed25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:652,1
    - Dst: std::make_unique<Ed448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:658,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:669,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:670,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:687,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:688,1
    - Dst: Botan::create_ec_private_key
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:689,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:700,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:701,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:709,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:713,1
    - Dst: std::make_unique<DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:719,1
    - Dst: std::make_unique<ElGamal_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:725,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:731,1
    - Dst: std::unique_ptr<Private_Key>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:733,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 133
    argCount: 4
    argNames:
    - alg_name
    - ' rng'
    - params
    - provider
    argTypes:
    - std::string_view
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 734
    functionName: Botan::create_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 101
    functionsReached:
    - std::string
    - Botan::fmt
    - std::make_unique<SLH_DSA_PrivateKey>
    - std::make_unique<FrodoKEM_PrivateKey>
    - std::make_unique<ML_DSA_PrivateKey>
    - std::string_view::empty
    - std::make_unique<DSA_PrivateKey>
    - std::make_unique<X448_PrivateKey>
    - std::make_unique<DH_PrivateKey>
    - std::unique_ptr<Private_Key>
    - std::make_unique<XMSS_PrivateKey>
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - std::make_unique<HSS_LMS_PrivateKey>
    - KyberMode
    - std::make_unique<Ed448_PrivateKey>
    - auto::size
    - std::make_unique<X25519_PrivateKey>
    - std::string_view::starts_with
    - ML_DSA_Mode
    - DilithiumMode
    - std::make_unique<ElGamal_PrivateKey>
    - FrodoKEMMode
    - std::make_unique<Ed25519_PrivateKey>
    - std::make_unique<SphincsPlus_PrivateKey>
    - XMSS_Parameters
    - std::make_unique<Classic_McEliece_PrivateKey>
    - Botan::create_ec_private_key
    - std::make_unique<ML_KEM_PrivateKey>
    - Botan::to_u32bit
    - Botan::EC_Group::supports_named_group
    - BOTAN_UNUSED
    - Botan::EC_Group::from_name
    - Botan::Invalid_Argument
    - Botan::split_on
    - std::make_unique<RSA_PrivateKey>
    - Botan::DL_Group::from_name
    - std::make_unique<McEliece_PrivateKey>
    - std::make_unique<Dilithium_PrivateKey>
    - Botan_CLI::tls_proxy_session::create
    - Botan::Sphincs_Parameters::create
    - ML_KEM_Mode
    - std::make_unique<Kyber_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> create_private_key(std::string_view alg_name,\n
      \                                               RandomNumberGenerator& rng,\n
      \                                               std::string_view params,\n                                                std::string_view
      provider)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:742,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - alg_name
    - ' possible'
    argTypes:
    - std::string_view
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 749
    functionName: Botan::probe_provider_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> probe_provider_private_key(std::string_view
      alg_name,\n                                                    const std::vector<std::string>&
      possible)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:132,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:133,1
    - Dst: std::make_unique<RSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:138,1
    - Dst: std::make_unique<X25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:144,1
    - Dst: std::make_unique<X448_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:150,1
    - Dst: std::make_unique<McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:156,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:161,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:161,1
    - Dst: std::make_unique<FrodoKEM_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:162,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:167,1
    - Dst: std::make_unique<Kyber_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:168,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:173,1
    - Dst: std::make_unique<ML_KEM_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:174,1
    - Dst: std::make_unique<ECDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:180,1
    - Dst: std::make_unique<ECDH_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:186,1
    - Dst: std::make_unique<DH_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:192,1
    - Dst: std::make_unique<DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:198,1
    - Dst: std::make_unique<ElGamal_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:204,1
    - Dst: std::make_unique<ECGDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:210,1
    - Dst: std::make_unique<ECKCDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:216,1
    - Dst: std::make_unique<Ed25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:222,1
    - Dst: std::make_unique<Ed448_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:228,1
    - Dst: std::make_unique<GOST_3410_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:234,1
    - Dst: std::make_unique<SM2_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:240,1
    - Dst: std::make_unique<XMSS_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:246,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:251,1
    - Dst: std::make_unique<Dilithium_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:252,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:257,1
    - Dst: std::make_unique<ML_DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:258,1
    - Dst: std::make_unique<HSS_LMS_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:264,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:269,1
    - Dst: std::make_unique<SphincsPlus_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:270,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:275,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:275,1
    - Dst: std::make_unique<SLH_DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:276,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:281,1
    - Dst: std::make_unique<Classic_McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:282,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:286,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:286,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 77
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 287
    functionName: Botan::load_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 6
    functionsReached:
    - std::make_unique<Dilithium_PublicKey>
    - std::make_unique<Classic_McEliece_PublicKey>
    - Botan::fmt
    - std::make_unique<McEliece_PublicKey>
    - std::make_unique<ECKCDSA_PublicKey>
    - Botan::Decoding_Error
    - std::make_unique<ECDSA_PublicKey>
    - std::make_unique<SLH_DSA_PublicKey>
    - std::make_unique<HSS_LMS_PublicKey>
    - std::string_view::starts_with
    - std::make_unique<X25519_PublicKey>
    - std::make_unique<ML_KEM_PublicKey>
    - std::make_unique<XMSS_PublicKey>
    - std::make_unique<X448_PublicKey>
    - std::make_unique<ECGDSA_PublicKey>
    - Botan::oid
    - std::make_unique<DSA_PublicKey>
    - std::make_unique<SM2_PublicKey>
    - std::make_unique<ElGamal_PublicKey>
    - std::make_unique<ML_DSA_PublicKey>
    - std::make_unique<SphincsPlus_PublicKey>
    - std::make_unique<Ed25519_PublicKey>
    - std::make_unique<DH_PublicKey>
    - std::make_unique<Kyber_PublicKey>
    - std::make_unique<GOST_3410_PublicKey>
    - Botan::split_on
    - std::make_unique<FrodoKEM_PublicKey>
    - std::make_unique<Ed448_PublicKey>
    - std::make_unique<RSA_PublicKey>
    - std::make_unique<ECDH_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: "std::unique_ptr<Public_Key> load_public_key(const AlgorithmIdentifier&
      alg_id,\n                                            [[maybe_unused]] std::span<const
      uint8_t> key_bits)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:291,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:292,1
    - Dst: std::make_unique<RSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:297,1
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:303,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:309,1
    - Dst: std::make_unique<ECDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:315,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:321,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:327,1
    - Dst: std::make_unique<DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:333,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:338,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:338,1
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:339,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:344,1
    - Dst: std::make_unique<Kyber_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:345,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:350,1
    - Dst: std::make_unique<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:351,1
    - Dst: std::make_unique<McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:357,1
    - Dst: std::make_unique<ECGDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:363,1
    - Dst: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:369,1
    - Dst: std::make_unique<Ed25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:375,1
    - Dst: std::make_unique<Ed448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:381,1
    - Dst: std::make_unique<GOST_3410_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:387,1
    - Dst: std::make_unique<SM2_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:393,1
    - Dst: std::make_unique<ElGamal_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:399,1
    - Dst: std::make_unique<XMSS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:405,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:410,1
    - Dst: std::make_unique<Dilithium_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:411,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:416,1
    - Dst: std::make_unique<ML_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:417,1
    - Dst: std::make_unique<HSS_LMS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:423,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:428,1
    - Dst: std::make_unique<SphincsPlus_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:429,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:434,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:434,1
    - Dst: std::make_unique<SLH_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:435,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:440,1
    - Dst: std::make_unique<Classic_McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:441,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:445,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:445,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 77
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 446
    functionName: Botan::load_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 22
    functionsReached:
    - Botan::fmt
    - std::make_unique<SLH_DSA_PrivateKey>
    - std::make_unique<ECDH_PrivateKey>
    - std::make_unique<FrodoKEM_PrivateKey>
    - std::make_unique<ML_DSA_PrivateKey>
    - Botan::Decoding_Error
    - std::make_unique<DSA_PrivateKey>
    - std::make_unique<DH_PrivateKey>
    - std::make_unique<X448_PrivateKey>
    - std::make_unique<XMSS_PrivateKey>
    - std::make_unique<HSS_LMS_PrivateKey>
    - std::make_unique<Ed448_PrivateKey>
    - std::make_unique<X25519_PrivateKey>
    - std::string_view::starts_with
    - std::make_unique<ElGamal_PrivateKey>
    - std::make_unique<Ed25519_PrivateKey>
    - std::make_unique<SphincsPlus_PrivateKey>
    - std::make_unique<GOST_3410_PrivateKey>
    - Botan::oid
    - std::make_unique<Classic_McEliece_PrivateKey>
    - std::make_unique<ML_KEM_PrivateKey>
    - std::make_unique<ECGDSA_PrivateKey>
    - Botan::split_on
    - std::make_unique<ECKCDSA_PrivateKey>
    - std::make_unique<RSA_PrivateKey>
    - std::make_unique<SM2_PrivateKey>
    - std::make_unique<McEliece_PrivateKey>
    - std::make_unique<Dilithium_PrivateKey>
    - std::make_unique<ECDSA_PrivateKey>
    - std::make_unique<Kyber_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> load_private_key(const AlgorithmIdentifier&
      alg_id,\n                                              [[maybe_unused]] std::span<const
      uint8_t> key_bits)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:452,1
    - Dst: std::make_unique<ECDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:456,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:462,1
    - Dst: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:468,1
    - Dst: std::make_unique<GOST_3410_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:474,1
    - Dst: std::make_unique<SM2_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:480,1
    - Dst: std::make_unique<ECGDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:486,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - alg_name
    - ' ec_group'
    - ' rng'
    argTypes:
    - std::string_view
    - EC_Group
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 491
    functionName: Botan::create_ec_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 5
    functionsReached:
    - std::make_unique<GOST_3410_PrivateKey>
    - std::make_unique<ECKCDSA_PrivateKey>
    - BOTAN_UNUSED
    - std::make_unique<ECDH_PrivateKey>
    - std::make_unique<SM2_PrivateKey>
    - std::make_unique<ECDSA_PrivateKey>
    - std::make_unique<ECGDSA_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> create_ec_private_key(std::string_view
      alg_name,\n                                                   const EC_Group&
      ec_group,\n                                                   RandomNumberGenerator&
      rng)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:503,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:509,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:515,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:515,1
    - Dst: std::make_unique<RSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:516,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:523,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:527,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:529,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:530,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:530,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:533,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:534,1
    - Dst: std::make_unique<McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:538,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:543,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:544,1
    - Dst: std::make_unique<Classic_McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:545,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:551,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:551,1
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:552,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:559,1
    - Dst: KyberMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:562,1
    - Dst: std::make_unique<Kyber_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:565,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:572,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:575,1
    - Dst: std::make_unique<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:578,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:583,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:585,1
    - Dst: DilithiumMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:588,1
    - Dst: std::make_unique<Dilithium_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:591,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:598,1
    - Dst: ML_DSA_Mode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:601,1
    - Dst: std::make_unique<ML_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:604,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:611,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:614,1
    - Dst: std::make_unique<HSS_LMS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:617,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:623,1
    - Dst: std::make_unique<SphincsPlus_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:625,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:631,1
    - Dst: std::make_unique<SLH_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:633,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:640,1
    - Dst: XMSS_Parameters
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:643,1
    - Dst: std::make_unique<XMSS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:646,1
    - Dst: std::make_unique<Ed25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:652,1
    - Dst: std::make_unique<Ed448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:658,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:669,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:670,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:687,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:688,1
    - Dst: Botan::create_ec_private_key
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:689,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:700,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:701,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:709,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:713,1
    - Dst: std::make_unique<DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:719,1
    - Dst: std::make_unique<ElGamal_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:725,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:731,1
    - Dst: std::unique_ptr<Private_Key>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:733,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 133
    argCount: 4
    argNames:
    - alg_name
    - ' rng'
    - params
    - provider
    argTypes:
    - std::string_view
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 734
    functionName: Botan::create_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 101
    functionsReached:
    - std::string
    - Botan::fmt
    - std::make_unique<SLH_DSA_PrivateKey>
    - std::make_unique<FrodoKEM_PrivateKey>
    - std::make_unique<ML_DSA_PrivateKey>
    - std::string_view::empty
    - std::make_unique<DSA_PrivateKey>
    - std::make_unique<X448_PrivateKey>
    - std::make_unique<DH_PrivateKey>
    - std::unique_ptr<Private_Key>
    - std::make_unique<XMSS_PrivateKey>
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - std::make_unique<HSS_LMS_PrivateKey>
    - KyberMode
    - std::make_unique<Ed448_PrivateKey>
    - auto::size
    - std::make_unique<X25519_PrivateKey>
    - std::string_view::starts_with
    - ML_DSA_Mode
    - DilithiumMode
    - std::make_unique<ElGamal_PrivateKey>
    - FrodoKEMMode
    - std::make_unique<Ed25519_PrivateKey>
    - std::make_unique<SphincsPlus_PrivateKey>
    - XMSS_Parameters
    - std::make_unique<Classic_McEliece_PrivateKey>
    - Botan::create_ec_private_key
    - std::make_unique<ML_KEM_PrivateKey>
    - Botan::to_u32bit
    - Botan::EC_Group::supports_named_group
    - BOTAN_UNUSED
    - Botan::EC_Group::from_name
    - Botan::Invalid_Argument
    - Botan::split_on
    - std::make_unique<RSA_PrivateKey>
    - Botan::DL_Group::from_name
    - std::make_unique<McEliece_PrivateKey>
    - std::make_unique<Dilithium_PrivateKey>
    - Botan_CLI::tls_proxy_session::create
    - Botan::Sphincs_Parameters::create
    - ML_KEM_Mode
    - std::make_unique<Kyber_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> create_private_key(std::string_view alg_name,\n
      \                                               RandomNumberGenerator& rng,\n
      \                                               std::string_view params,\n                                                std::string_view
      provider)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:742,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - alg_name
    - ' possible'
    argTypes:
    - std::string_view
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 749
    functionName: Botan::probe_provider_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_UNUSED
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> probe_provider_private_key(std::string_view
      alg_name,\n                                                    const std::vector<std::string>&
      possible)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Unknown_PK_Field_Name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:19,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: '& Asymmetric_Key::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Unknown_PK_Field_Name
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & Asymmetric_Key::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:24,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:24,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:26,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:26,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: Botan::Asymmetric_Key::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - fmt
    - Lookup_Error
    - Botan::OID::from_string
    - algo_name
    linkageType: ''
    returnType: OID
    signature: OID Asymmetric_Key::object_identifier() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Botan::Asymmetric_Key::_default_x509_signature_format
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - _signature_element_size_for_DER_encoding
    linkageType: ''
    returnType: Signature_Format
    signature: Signature_Format Asymmetric_Key::_default_x509_signature_format() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:39,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:40,1
    - Dst: auto::process
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:40,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:44,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:46,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:49,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bits
    - bits_len
    - hash_name
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: Botan::create_hex_fingerprint
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - Botan::hex_encode
    - std::string::size
    - Botan::HashFunction::create_or_throw
    - auto::process
    linkageType: ''
    returnType: std::string
    signature: std::string create_hex_fingerprint(const uint8_t bits[], size_t bits_len,
      std::string_view hash_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:59,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:61,1
    - Dst: public_key_bits
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: Botan::Public_Key::subject_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - algorithm_identifier
    - DER_Encoder
    - public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Public_Key::subject_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:71,1
    - Dst: pkcs8_algorithm_identifier
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:74,1
    - Dst: private_key_bits
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: Botan::Private_Key::private_key_info
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - pkcs8_algorithm_identifier
    - private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Private_Key::private_key_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:81,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan::Private_Key::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    - algo_name
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Private_Key::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_hex_fingerprint
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:88,1
    - Dst: Botan::Public_Key::subject_public_key
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Botan::Public_Key::fingerprint_public
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Botan::Public_Key::subject_public_key
    - create_hex_fingerprint
    linkageType: ''
    returnType: std::string
    signature: std::string Public_Key::fingerprint_public(std::string_view hash_algo)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_hex_fingerprint
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:95,1
    - Dst: private_key_bits
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::Private_Key::fingerprint_private
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - create_hex_fingerprint
    - private_key_bits
    linkageType: ''
    returnType: std::string
    signature: std::string Private_Key::fingerprint_private(std::string_view hash_algo)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:101,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:101,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: Botan::Public_Key::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Encryption>
    signature: "std::unique_ptr<PK_Ops::Encryption> Public_Key::create_encryption_op(RandomNumberGenerator&
      /*rng*/,\n                                                                     std::string_view
      /*params*/,\n                                                                     std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:106,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:106,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: Botan::Public_Key::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> Public_Key::create_kem_encryption_op(std::string_view
      /*params*/,\n                                                                             std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:111,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:111,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: Botan::Public_Key::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Public_Key::create_verification_op(std::string_view
      /*params*/,\n                                                                         std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:116,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:116,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: Botan::Public_Key::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Public_Key::create_x509_verification_op(const
      AlgorithmIdentifier& /*params*/,\n                                                                              std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:122,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:122,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: Botan::Private_Key::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Decryption>
    signature: "std::unique_ptr<PK_Ops::Decryption> Private_Key::create_decryption_op(RandomNumberGenerator&
      /*rng*/,\n                                                                      std::string_view
      /*params*/,\n                                                                      std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:128,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:128,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Botan::Private_Key::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> Private_Key::create_kem_decryption_op(RandomNumberGenerator&
      /*rng*/,\n                                                                              std::string_view
      /*params*/,\n                                                                              std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:134,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:134,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: Botan::Private_Key::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> Private_Key::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                    std::string_view
      /*params*/,\n                                                                    std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:140,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:140,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: Botan::Private_Key::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> Private_Key::create_key_agreement_op(RandomNumberGenerator&
      /*rng*/,\n                                                                            std::string_view
      /*params*/,\n                                                                            std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Unknown_PK_Field_Name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:19,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: '& Asymmetric_Key::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Unknown_PK_Field_Name
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & Asymmetric_Key::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:24,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:24,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:26,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:26,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: Botan::Asymmetric_Key::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - fmt
    - Lookup_Error
    - Botan::OID::from_string
    - algo_name
    linkageType: ''
    returnType: OID
    signature: OID Asymmetric_Key::object_identifier() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Botan::Asymmetric_Key::_default_x509_signature_format
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - _signature_element_size_for_DER_encoding
    linkageType: ''
    returnType: Signature_Format
    signature: Signature_Format Asymmetric_Key::_default_x509_signature_format() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:39,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:40,1
    - Dst: auto::process
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:40,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:44,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:46,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:49,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bits
    - bits_len
    - hash_name
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: Botan::create_hex_fingerprint
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - Botan::hex_encode
    - std::string::size
    - Botan::HashFunction::create_or_throw
    - auto::process
    linkageType: ''
    returnType: std::string
    signature: std::string create_hex_fingerprint(const uint8_t bits[], size_t bits_len,
      std::string_view hash_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:59,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:61,1
    - Dst: public_key_bits
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: Botan::Public_Key::subject_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 1
    functionsReached:
    - algorithm_identifier
    - DER_Encoder
    - public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Public_Key::subject_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:71,1
    - Dst: pkcs8_algorithm_identifier
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:74,1
    - Dst: private_key_bits
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: Botan::Private_Key::private_key_info
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - pkcs8_algorithm_identifier
    - private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Private_Key::private_key_info() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:81,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan::Private_Key::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    - algo_name
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Private_Key::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_hex_fingerprint
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:88,1
    - Dst: Botan::Public_Key::subject_public_key
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Botan::Public_Key::fingerprint_public
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Botan::Public_Key::subject_public_key
    - create_hex_fingerprint
    linkageType: ''
    returnType: std::string
    signature: std::string Public_Key::fingerprint_public(std::string_view hash_algo)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_hex_fingerprint
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:95,1
    - Dst: private_key_bits
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash_algo
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::Private_Key::fingerprint_private
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - create_hex_fingerprint
    - private_key_bits
    linkageType: ''
    returnType: std::string
    signature: std::string Private_Key::fingerprint_private(std::string_view hash_algo)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:101,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:101,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: Botan::Public_Key::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Encryption>
    signature: "std::unique_ptr<PK_Ops::Encryption> Public_Key::create_encryption_op(RandomNumberGenerator&
      /*rng*/,\n                                                                     std::string_view
      /*params*/,\n                                                                     std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:106,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:106,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: Botan::Public_Key::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> Public_Key::create_kem_encryption_op(std::string_view
      /*params*/,\n                                                                             std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:111,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:111,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: Botan::Public_Key::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Public_Key::create_verification_op(std::string_view
      /*params*/,\n                                                                         std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:116,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:116,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: Botan::Public_Key::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Public_Key::create_x509_verification_op(const
      AlgorithmIdentifier& /*params*/,\n                                                                              std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:122,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:122,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: Botan::Private_Key::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Decryption>
    signature: "std::unique_ptr<PK_Ops::Decryption> Private_Key::create_decryption_op(RandomNumberGenerator&
      /*rng*/,\n                                                                      std::string_view
      /*params*/,\n                                                                      std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:128,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:128,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Botan::Private_Key::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> Private_Key::create_kem_decryption_op(RandomNumberGenerator&
      /*rng*/,\n                                                                              std::string_view
      /*params*/,\n                                                                              std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:134,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:134,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: Botan::Private_Key::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> Private_Key::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                    std::string_view
      /*params*/,\n                                                                    std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:140,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:140,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pk_keys.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: Botan::Private_Key::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - algo_name
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> Private_Key::create_key_agreement_op(RandomNumberGenerator&
      /*rng*/,\n                                                                            std::string_view
      /*params*/,\n                                                                            std::string_view
      /*provider*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:22,1
    - Dst: subject_public_key
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::X509::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.cpp
    functionUses: 10
    functionsReached:
    - Botan::PEM_Code::encode
    - subject_public_key
    linkageType: ''
    returnType: std::string
    signature: std::string PEM_encode(const Public_Key& key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1::maybe_BER
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:33,1
    - Dst: Botan::PEM_Code::matches
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:33,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:34,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:36,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:38,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:41,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:42,1
    - Dst: load_public_key
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:45,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:47,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - DataSource
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 49
    functionName: Botan::X509::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.cpp
    functionUses: 49
    functionsReached:
    - load_public_key
    - BER_Decoder
    - Botan::ASN1::maybe_BER
    - Decoding_Error
    - Botan::PEM_Code::matches
    - Botan::PEM_Code::decode_check_label
    - std::vector::empty
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> load_key(DataSource& source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:22,1
    - Dst: subject_public_key
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::X509::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.cpp
    functionUses: 10
    functionsReached:
    - Botan::PEM_Code::encode
    - subject_public_key
    linkageType: ''
    returnType: std::string
    signature: std::string PEM_encode(const Public_Key& key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1::maybe_BER
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:33,1
    - Dst: Botan::PEM_Code::matches
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:33,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:34,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:36,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:38,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:41,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:42,1
    - Dst: load_public_key
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:45,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/x509_key.cpp:47,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - DataSource
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 49
    functionName: Botan::X509::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.cpp
    functionUses: 49
    functionsReached:
    - load_public_key
    - BER_Decoder
    - Botan::ASN1::maybe_BER
    - Decoding_Error
    - Botan::PEM_Code::matches
    - Botan::PEM_Code::decode_check_label
    - std::vector::empty
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> load_key(DataSource& source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:24,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: Botan::PK_Decryptor::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - do_decrypt
    - Decoding_Error
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> PK_Decryptor::decrypt(const uint8_t in[], size_t
      length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:41,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:53,1
    - Dst: do_decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:61,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:63,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:64,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:64,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:64,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:66,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:74,1
    - Dst: auto::select_n
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:80,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:80,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:80,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 7
    argNames:
    - in
    - length
    - expected_pt_len
    - ' rng'
    - required_content_bytes
    - required_content_offsets
    - required_contents_length
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    - RandomNumberGenerator
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 83
    functionName: Botan::PK_Decryptor::decrypt_or_random
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::resize
    - random_vec
    - Botan::ct_is_equal
    - secure_vector::data
    - BOTAN_ASSERT
    - secure_vector::size
    - do_decrypt
    - auto::select_n
    - CT::Mask<uint8_t>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PK_Decryptor::decrypt_or_random(const uint8_t
      in[],\n                                                       size_t length,\n
      \                                                      size_t expected_pt_len,\n
      \                                                      RandomNumberGenerator&
      rng,\n                                                       const uint8_t required_content_bytes[],\n
      \                                                      const uint8_t required_content_offsets[],\n
      \                                                      size_t required_contents_length)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Decryptor::decrypt_or_random
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - in
    - length
    - expected_pt_len
    - ' rng'
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: Botan::PK_Decryptor::decrypt_or_random
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_Decryptor::decrypt_or_random
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PK_Decryptor::decrypt_or_random(const uint8_t
      in[],\n                                                       size_t length,\n
      \                                                      size_t expected_pt_len,\n
      \                                                      RandomNumberGenerator&
      rng) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_encryption_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:96,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:98,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:98,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - padding
    - provider
    argTypes:
    - Public_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: Botan::PK_Encryptor_EME::PK_Encryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - create_encryption_op
    - algo_name
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Encryptor_EME::PK_Encryptor_EME(const Public_Key& key,\n                                   RandomNumberGenerator&
      rng,\n                                   std::string_view padding,\n                                   std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: PK_Encryptor_EME::~PK_Encryptor_EME()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encryptor_EME::~PK_Encryptor_EME()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::PK_Encryptor_EME::PK_Encryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encryptor_EME::PK_Encryptor_EME(PK_Encryptor_EME&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Encryptor_EME::ciphertext_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan::PK_Encryptor_EME::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_Encryptor_EME::ciphertext_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Encryptor_EME::ciphertext_length(size_t ptext_len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptext
    - len
    - ' rng'
    argTypes:
    - uint8_t[]
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan::PK_Encryptor_EME::enc
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> PK_Encryptor_EME::enc(const uint8_t ptext[], size_t
      len, RandomNumberGenerator& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max_input_bits
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: Botan::PK_Encryptor_EME::maximum_input_size
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 4
    functionsReached:
    - max_input_bits
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Encryptor_EME::maximum_input_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_decryption_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:123,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:125,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:125,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - padding
    - provider
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: Botan::PK_Decryptor_EME::PK_Decryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - create_decryption_op
    - Invalid_Argument
    - algo_name
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Decryptor_EME::PK_Decryptor_EME(const Private_Key& key,\n
      \                                  RandomNumberGenerator& rng,\n                                   std::string_view
      padding,\n                                   std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: PK_Decryptor_EME::~PK_Decryptor_EME()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Decryptor_EME::~PK_Decryptor_EME()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::PK_Decryptor_EME::PK_Decryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Decryptor_EME::PK_Decryptor_EME(PK_Decryptor_EME&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Decryptor_EME::plaintext_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: Botan::PK_Decryptor_EME::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_Decryptor_EME::plaintext_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Decryptor_EME::plaintext_length(size_t ctext_len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' valid_mask'
    - in
    - in_len
    argTypes:
    - uint8_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: Botan::PK_Decryptor_EME::do_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - decrypt
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> PK_Decryptor_EME::do_decrypt(uint8_t& valid_mask,
      const uint8_t in[], size_t in_len) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_kem_encryption_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:143,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:145,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:145,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - param
    - provider
    argTypes:
    - Public_Key
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached:
    - create_kem_encryption_op
    - Invalid_Argument
    - algo_name
    - fmt
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Encryptor::PK_KEM_Encryptor(const Public_Key& key, std::string_view
      param, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - kem_param
    - provider
    argTypes:
    - Public_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: "void PK_KEM_Encryptor::PK_KEM_Encryptor(const Public_Key& key,\n                                   RandomNumberGenerator&
      rng,\n                                   std::string_view kem_param,\n                                   std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: PK_KEM_Encryptor::~PK_KEM_Encryptor()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Encryptor::~PK_KEM_Encryptor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Encryptor::PK_KEM_Encryptor(PK_KEM_Encryptor&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: Botan::PK_KEM_Encryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 17
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_KEM_Encryptor::shared_key_length(size_t desired_shared_key_len)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: Botan::PK_KEM_Encryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 17
    functionsReached:
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_KEM_Encryptor::encapsulated_key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:175,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:175,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:175,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:176,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:176,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:176,1
    - Dst: kem_encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: Botan::PK_KEM_Encryptor::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 32
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - kem_encrypt
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    linkageType: ''
    returnType: void
    signature: "void PK_KEM_Encryptor::encrypt(std::span<uint8_t> out_encapsulated_key,\n
      \                              std::span<uint8_t> out_shared_key,\n                               RandomNumberGenerator&
      rng,\n                               size_t desired_shared_key_len,\n                               std::span<const
      uint8_t> salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Botan::PK_KEM_Decryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 13
    functionsReached:
    - Botan::PK_KEM_Decryptor::shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_KEM_Decryptor::shared_key_length(size_t desired_shared_key_len)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: Botan::PK_KEM_Decryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 5
    functionsReached:
    - Botan::PK_KEM_Decryptor::encapsulated_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_KEM_Decryptor::encapsulated_key_length() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_kem_decryption_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:193,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:195,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:195,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - param
    - provider
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached:
    - fmt
    - Invalid_Argument
    - algo_name
    - create_kem_decryption_op
    linkageType: ''
    returnType: void
    signature: "void PK_KEM_Decryptor::PK_KEM_Decryptor(const Private_Key& key,\n
      \                                  RandomNumberGenerator& rng,\n                                   std::string_view
      param,\n                                   std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: PK_KEM_Decryptor::~PK_KEM_Decryptor()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Decryptor::~PK_KEM_Decryptor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Decryptor::PK_KEM_Decryptor(PK_KEM_Decryptor&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:208,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:208,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:208,1
    - Dst: kem_decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - out_shared_key
    - encap_key
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: Botan::PK_KEM_Decryptor::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 32
    functionsReached:
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - kem_decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    linkageType: ''
    returnType: void
    signature: "void PK_KEM_Decryptor::decrypt(std::span<uint8_t> out_shared_key,\n
      \                              std::span<const uint8_t> encap_key,\n                               size_t
      desired_shared_key_len,\n                               std::span<const uint8_t>
      salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_key_agreement_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:217,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:219,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:219,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - kdf
    - provider
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 221
    functionName: Botan::PK_Key_Agreement::PK_Key_Agreement
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - create_key_agreement_op
    - Invalid_Argument
    - algo_name
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Key_Agreement::PK_Key_Agreement(const Private_Key& key,\n
      \                                  RandomNumberGenerator& rng,\n                                   std::string_view
      kdf,\n                                   std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: PK_Key_Agreement::~PK_Key_Agreement()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Key_Agreement::~PK_Key_Agreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: Botan::PK_Key_Agreement::PK_Key_Agreement
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Key_Agreement::PK_Key_Agreement(PK_Key_Agreement&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Key_Agreement::agreed_value_size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: Botan::PK_Key_Agreement::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 5
    functionsReached:
    - Botan::PK_Key_Agreement::agreed_value_size
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Key_Agreement::agreed_value_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:236,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key_len
    - peer_key
    - peer_key_len
    - salt
    argTypes:
    - size_t
    - uint8_t[]
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 26
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - as_span_of_bytes
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey PK_Key_Agreement::derive_key(size_t key_len,\n                                          const
      uint8_t peer_key[],\n                                          size_t peer_key_len,\n
      \                                         std::string_view salt) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:242,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_len
    - peer_key
    - salt
    argTypes:
    - size_t
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 27
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - as_span_of_bytes
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey PK_Key_Agreement::derive_key(size_t key_len,\n                                          const
      std::span<const uint8_t> peer_key,\n                                          std::string_view
      salt) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:248,1
    - Dst: agree
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_len
    - peer_key
    - salt
    argTypes:
    - size_t
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 27
    functionsReached:
    - SymmetricKey
    - agree
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey PK_Key_Agreement::derive_key(size_t key_len,\n                                          std::span<const
      uint8_t> peer_key,\n                                          std::span<const
      uint8_t> salt) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:256,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:258,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:258,1
    - Dst: create_signature_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:261,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:263,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:263,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - provider
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - Signature_Format
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: Botan::PK_Signer::PK_Signer
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 14
    functionsReached:
    - Invalid_Argument
    - algo_name
    - _signature_element_size_for_DER_encoding
    - BOTAN_ARG_CHECK
    - create_signature_op
    - has_value
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Signer::PK_Signer(const Private_Key& key,\n                     RandomNumberGenerator&
      rng,\n                     std::string_view padding,\n                     Signature_Format
      format,\n                     std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Signer::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: Botan::PK_Signer::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 5
    functionsReached:
    - Botan::PK_Signer::algorithm_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier PK_Signer::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Signer::hash_function
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: Botan::PK_Signer::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 5
    functionsReached:
    - Botan::PK_Signer::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Signer::hash_function() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: PK_Signer::~PK_Signer()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Signer::~PK_Signer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: Botan::PK_Signer::PK_Signer
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Signer::PK_Signer(PK_Signer&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:281,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: Botan::PK_Signer::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 26
    functionsReached:
    - Botan::PK_Signer::update
    - as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: void PK_Signer::update(std::string_view in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: Botan::PK_Signer::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 27
    functionsReached:
    - Botan::PK_Signer::update
    linkageType: ''
    returnType: void
    signature: void PK_Signer::update(const uint8_t in[], size_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:291,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:291,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:292,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:297,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - sig
    - parts
    - part_size
    argTypes:
    - std::span<const uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: Botan::der_encode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - std::vector::reserve
    - Encoding_Error
    - BufferSlicer::take
    - Botan::DER_Encoder
    - std::span<const uint8_t>::size
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> der_encode_signature(std::span<const uint8_t>
      sig, size_t parts, size_t part_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:291,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:291,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:292,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:297,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - sig
    - parts
    - part_size
    argTypes:
    - std::span<const uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: Botan::der_encode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - std::vector::reserve
    - Encoding_Error
    - BufferSlicer::take
    - Botan::DER_Encoder
    - std::span<const uint8_t>::size
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> der_encode_signature(std::span<const uint8_t>
      sig, size_t parts, size_t part_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Signer::signature_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:311,1
    - Dst: Botan::PK_Signer::signature_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:313,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:342,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 351
    functionName: Botan::PK_Signer::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Internal_Error
    - Botan::PK_Signer::signature_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Signer::signature_length() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sign
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:354,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:359,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:359,1
    - Dst: der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:360,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:360,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 364
    functionName: Botan::PK_Signer::signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 24
    functionsReached:
    - der_encode_signature
    - Internal_Error
    - sign
    - value
    - BOTAN_ASSERT_NOMSG
    - has_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> PK_Signer::signature(RandomNumberGenerator& rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_verification_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:370,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:372,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:372,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:372,1
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:376,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:379,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ' key'
    - padding
    - format
    - provider
    argTypes:
    - Public_Key
    - std::string_view
    - Signature_Format
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 381
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached:
    - Invalid_Argument
    - algo_name
    - _signature_element_size_for_DER_encoding
    - BOTAN_ARG_CHECK
    - create_verification_op
    - has_value
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Verifier::PK_Verifier(const Public_Key& key,\n                         std::string_view
      padding,\n                         Signature_Format format,\n                         std::string_view
      provider)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_x509_verification_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:386,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:388,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:388,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:388,1
    - Dst: _default_x509_signature_format
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:391,1
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' key'
    - ' signature_algorithm'
    - provider
    argTypes:
    - Public_Key
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached:
    - Invalid_Argument
    - algo_name
    - _signature_element_size_for_DER_encoding
    - _default_x509_signature_format
    - create_x509_verification_op
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Verifier::PK_Verifier(const Public_Key& key,\n                         const
      AlgorithmIdentifier& signature_algorithm,\n                         std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: PK_Verifier::~PK_Verifier()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::~PK_Verifier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 397
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::PK_Verifier(PK_Verifier&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Verifier::hash_function
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: Botan::PK_Verifier::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 5
    functionsReached:
    - Botan::PK_Verifier::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Verifier::hash_function() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:406,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - Signature_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: Botan::PK_Verifier::set_input_format
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - has_value
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::set_input_format(Signature_Format format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:412,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - msg
    - msg_length
    - sig
    - sig_length
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: Botan::PK_Verifier::verify_message
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 36
    functionsReached:
    - Botan::PK_Verifier::update
    - Botan::PK_Verifier::check_signature
    linkageType: ''
    returnType: bool
    signature: bool PK_Verifier::verify_message(const uint8_t msg[], size_t msg_length,
      const uint8_t sig[], size_t sig_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:417,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Botan::PK_Verifier::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 23
    functionsReached:
    - Botan::PK_Verifier::update
    - as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::update(std::string_view in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Botan::PK_Verifier::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 24
    functionsReached:
    - Botan::PK_Verifier::update
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::update(const uint8_t in[], size_t length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:427,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:430,1
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:433,1
    - Dst: BER_Decoder::more_items
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:437,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:439,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:445,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:446,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:447,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:449,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:454,1
    - Dst: Botan::der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:457,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:459,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:460,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - sig
    - length
    - sig_part_size
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 463
    functionName: Botan::decode_der_signature_pair
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder::start_sequence
    - BigInt::bytes
    - CT::is_equal<uint8_t>
    - Botan::der_encode_signature
    - std::vector::reserve
    - BigInt::serialize
    - Botan::Decoding_Error
    - BOTAN_ASSERT_NOMSG
    - BER_Decoder::more_items
    - BER_Decoder::decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> decode_der_signature_pair(const uint8_t sig[],
      size_t length, size_t sig_part_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:427,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:430,1
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:433,1
    - Dst: BER_Decoder::more_items
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:437,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:439,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:445,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:446,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:447,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:449,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:454,1
    - Dst: Botan::der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:457,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:459,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:460,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - sig
    - length
    - sig_part_size
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 463
    functionName: Botan::decode_der_signature_pair
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder::start_sequence
    - BigInt::bytes
    - CT::is_equal<uint8_t>
    - Botan::der_encode_signature
    - std::vector::reserve
    - BigInt::serialize
    - Botan::Decoding_Error
    - BOTAN_ASSERT_NOMSG
    - BER_Decoder::more_items
    - BER_Decoder::decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> decode_der_signature_pair(const uint8_t sig[],
      size_t length, size_t sig_part_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_valid_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:470,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:475,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:475,1
    - Dst: decode_der_signature_pair
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:478,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:478,1
    - Dst: is_valid_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:484,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - sig
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 497
    functionName: Botan::PK_Verifier::check_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 21
    functionsReached:
    - decode_der_signature_pair
    - is_valid_signature
    - Internal_Error
    - value
    - BOTAN_ASSERT_NOMSG
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool PK_Verifier::check_signature(const uint8_t sig[], size_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:24,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: Botan::PK_Decryptor::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - do_decrypt
    - Decoding_Error
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> PK_Decryptor::decrypt(const uint8_t in[], size_t
      length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:41,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:53,1
    - Dst: do_decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:61,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:63,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:64,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:64,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:64,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:66,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:74,1
    - Dst: auto::select_n
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:80,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:80,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:80,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 7
    argNames:
    - in
    - length
    - expected_pt_len
    - ' rng'
    - required_content_bytes
    - required_content_offsets
    - required_contents_length
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    - RandomNumberGenerator
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 83
    functionName: Botan::PK_Decryptor::decrypt_or_random
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 1
    functionsReached:
    - secure_vector::resize
    - random_vec
    - Botan::ct_is_equal
    - secure_vector::data
    - BOTAN_ASSERT
    - secure_vector::size
    - do_decrypt
    - auto::select_n
    - CT::Mask<uint8_t>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PK_Decryptor::decrypt_or_random(const uint8_t
      in[],\n                                                       size_t length,\n
      \                                                      size_t expected_pt_len,\n
      \                                                      RandomNumberGenerator&
      rng,\n                                                       const uint8_t required_content_bytes[],\n
      \                                                      const uint8_t required_content_offsets[],\n
      \                                                      size_t required_contents_length)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Decryptor::decrypt_or_random
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - in
    - length
    - expected_pt_len
    - ' rng'
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: Botan::PK_Decryptor::decrypt_or_random
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_Decryptor::decrypt_or_random
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PK_Decryptor::decrypt_or_random(const uint8_t
      in[],\n                                                       size_t length,\n
      \                                                      size_t expected_pt_len,\n
      \                                                      RandomNumberGenerator&
      rng) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_encryption_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:96,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:98,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:98,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - padding
    - provider
    argTypes:
    - Public_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: Botan::PK_Encryptor_EME::PK_Encryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - create_encryption_op
    - algo_name
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Encryptor_EME::PK_Encryptor_EME(const Public_Key& key,\n                                   RandomNumberGenerator&
      rng,\n                                   std::string_view padding,\n                                   std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: PK_Encryptor_EME::~PK_Encryptor_EME()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encryptor_EME::~PK_Encryptor_EME()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::PK_Encryptor_EME::PK_Encryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encryptor_EME::PK_Encryptor_EME(PK_Encryptor_EME&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Encryptor_EME::ciphertext_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan::PK_Encryptor_EME::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_Encryptor_EME::ciphertext_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Encryptor_EME::ciphertext_length(size_t ptext_len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptext
    - len
    - ' rng'
    argTypes:
    - uint8_t[]
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan::PK_Encryptor_EME::enc
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> PK_Encryptor_EME::enc(const uint8_t ptext[], size_t
      len, RandomNumberGenerator& rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max_input_bits
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: Botan::PK_Encryptor_EME::maximum_input_size
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 4
    functionsReached:
    - max_input_bits
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Encryptor_EME::maximum_input_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_decryption_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:123,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:125,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:125,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - padding
    - provider
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: Botan::PK_Decryptor_EME::PK_Decryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - create_decryption_op
    - Invalid_Argument
    - algo_name
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Decryptor_EME::PK_Decryptor_EME(const Private_Key& key,\n
      \                                  RandomNumberGenerator& rng,\n                                   std::string_view
      padding,\n                                   std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: PK_Decryptor_EME::~PK_Decryptor_EME()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Decryptor_EME::~PK_Decryptor_EME()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: Botan::PK_Decryptor_EME::PK_Decryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Decryptor_EME::PK_Decryptor_EME(PK_Decryptor_EME&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Decryptor_EME::plaintext_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: Botan::PK_Decryptor_EME::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_Decryptor_EME::plaintext_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Decryptor_EME::plaintext_length(size_t ctext_len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' valid_mask'
    - in
    - in_len
    argTypes:
    - uint8_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: Botan::PK_Decryptor_EME::do_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - decrypt
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> PK_Decryptor_EME::do_decrypt(uint8_t& valid_mask,
      const uint8_t in[], size_t in_len) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_kem_encryption_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:143,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:145,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:145,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - param
    - provider
    argTypes:
    - Public_Key
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached:
    - create_kem_encryption_op
    - Invalid_Argument
    - algo_name
    - fmt
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Encryptor::PK_KEM_Encryptor(const Public_Key& key, std::string_view
      param, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - kem_param
    - provider
    argTypes:
    - Public_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached:
    - BOTAN_UNUSED
    linkageType: ''
    returnType: void
    signature: "void PK_KEM_Encryptor::PK_KEM_Encryptor(const Public_Key& key,\n                                   RandomNumberGenerator&
      rng,\n                                   std::string_view kem_param,\n                                   std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: PK_KEM_Encryptor::~PK_KEM_Encryptor()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Encryptor::~PK_KEM_Encryptor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Encryptor::PK_KEM_Encryptor(PK_KEM_Encryptor&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: Botan::PK_KEM_Encryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 19
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_KEM_Encryptor::shared_key_length(size_t desired_shared_key_len)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: Botan::PK_KEM_Encryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 19
    functionsReached:
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_KEM_Encryptor::encapsulated_key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:175,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:175,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:175,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:176,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:176,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:176,1
    - Dst: kem_encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: Botan::PK_KEM_Encryptor::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 32
    functionsReached:
    - Botan::PK_KEM_Encryptor::shared_key_length
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - kem_encrypt
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    linkageType: ''
    returnType: void
    signature: "void PK_KEM_Encryptor::encrypt(std::span<uint8_t> out_encapsulated_key,\n
      \                              std::span<uint8_t> out_shared_key,\n                               RandomNumberGenerator&
      rng,\n                               size_t desired_shared_key_len,\n                               std::span<const
      uint8_t> salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Botan::PK_KEM_Decryptor::shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 15
    functionsReached:
    - Botan::PK_KEM_Decryptor::shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_KEM_Decryptor::shared_key_length(size_t desired_shared_key_len)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: Botan::PK_KEM_Decryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 6
    functionsReached:
    - Botan::PK_KEM_Decryptor::encapsulated_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_KEM_Decryptor::encapsulated_key_length() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_kem_decryption_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:193,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:195,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:195,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - param
    - provider
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached:
    - fmt
    - Invalid_Argument
    - algo_name
    - create_kem_decryption_op
    linkageType: ''
    returnType: void
    signature: "void PK_KEM_Decryptor::PK_KEM_Decryptor(const Private_Key& key,\n
      \                                  RandomNumberGenerator& rng,\n                                   std::string_view
      param,\n                                   std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: PK_KEM_Decryptor::~PK_KEM_Decryptor()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Decryptor::~PK_KEM_Decryptor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Decryptor::PK_KEM_Decryptor(PK_KEM_Decryptor&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:208,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:208,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:208,1
    - Dst: kem_decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - out_shared_key
    - encap_key
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: Botan::PK_KEM_Decryptor::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 32
    functionsReached:
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - kem_decrypt
    - Botan::PK_KEM_Decryptor::shared_key_length
    linkageType: ''
    returnType: void
    signature: "void PK_KEM_Decryptor::decrypt(std::span<uint8_t> out_shared_key,\n
      \                              std::span<const uint8_t> encap_key,\n                               size_t
      desired_shared_key_len,\n                               std::span<const uint8_t>
      salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_key_agreement_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:217,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:219,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:219,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - kdf
    - provider
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 221
    functionName: Botan::PK_Key_Agreement::PK_Key_Agreement
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - create_key_agreement_op
    - Invalid_Argument
    - algo_name
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Key_Agreement::PK_Key_Agreement(const Private_Key& key,\n
      \                                  RandomNumberGenerator& rng,\n                                   std::string_view
      kdf,\n                                   std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: PK_Key_Agreement::~PK_Key_Agreement()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Key_Agreement::~PK_Key_Agreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: Botan::PK_Key_Agreement::PK_Key_Agreement
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Key_Agreement::PK_Key_Agreement(PK_Key_Agreement&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Key_Agreement::agreed_value_size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: Botan::PK_Key_Agreement::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 6
    functionsReached:
    - Botan::PK_Key_Agreement::agreed_value_size
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Key_Agreement::agreed_value_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:236,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key_len
    - peer_key
    - peer_key_len
    - salt
    argTypes:
    - size_t
    - uint8_t[]
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 28
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - as_span_of_bytes
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey PK_Key_Agreement::derive_key(size_t key_len,\n                                          const
      uint8_t peer_key[],\n                                          size_t peer_key_len,\n
      \                                         std::string_view salt) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:242,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_len
    - peer_key
    - salt
    argTypes:
    - size_t
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 29
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - as_span_of_bytes
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey PK_Key_Agreement::derive_key(size_t key_len,\n                                          const
      std::span<const uint8_t> peer_key,\n                                          std::string_view
      salt) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:248,1
    - Dst: agree
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_len
    - peer_key
    - salt
    argTypes:
    - size_t
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 29
    functionsReached:
    - SymmetricKey
    - agree
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey PK_Key_Agreement::derive_key(size_t key_len,\n                                          std::span<const
      uint8_t> peer_key,\n                                          std::span<const
      uint8_t> salt) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:256,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:258,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:258,1
    - Dst: create_signature_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:261,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:263,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:263,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - padding
    - format
    - provider
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - Signature_Format
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: Botan::PK_Signer::PK_Signer
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 14
    functionsReached:
    - Invalid_Argument
    - algo_name
    - _signature_element_size_for_DER_encoding
    - BOTAN_ARG_CHECK
    - create_signature_op
    - has_value
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Signer::PK_Signer(const Private_Key& key,\n                     RandomNumberGenerator&
      rng,\n                     std::string_view padding,\n                     Signature_Format
      format,\n                     std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Signer::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: Botan::PK_Signer::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 6
    functionsReached:
    - Botan::PK_Signer::algorithm_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier PK_Signer::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Signer::hash_function
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: Botan::PK_Signer::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 6
    functionsReached:
    - Botan::PK_Signer::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Signer::hash_function() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: PK_Signer::~PK_Signer()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Signer::~PK_Signer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: Botan::PK_Signer::PK_Signer
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Signer::PK_Signer(PK_Signer&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:281,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: Botan::PK_Signer::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 28
    functionsReached:
    - Botan::PK_Signer::update
    - as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: void PK_Signer::update(std::string_view in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: Botan::PK_Signer::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 29
    functionsReached:
    - Botan::PK_Signer::update
    linkageType: ''
    returnType: void
    signature: void PK_Signer::update(const uint8_t in[], size_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:291,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:291,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:292,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:297,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - sig
    - parts
    - part_size
    argTypes:
    - std::span<const uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: Botan::der_encode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 2
    functionsReached:
    - std::vector::emplace_back
    - std::vector::reserve
    - Encoding_Error
    - BufferSlicer::take
    - Botan::DER_Encoder
    - std::span<const uint8_t>::size
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> der_encode_signature(std::span<const uint8_t>
      sig, size_t parts, size_t part_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:291,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:291,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:292,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:297,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - sig
    - parts
    - part_size
    argTypes:
    - std::span<const uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: Botan::der_encode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 2
    functionsReached:
    - std::vector::emplace_back
    - std::vector::reserve
    - Encoding_Error
    - BufferSlicer::take
    - Botan::DER_Encoder
    - std::span<const uint8_t>::size
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> der_encode_signature(std::span<const uint8_t>
      sig, size_t parts, size_t part_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Signer::signature_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:311,1
    - Dst: Botan::PK_Signer::signature_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:313,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:342,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 351
    functionName: Botan::PK_Signer::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Internal_Error
    - Botan::PK_Signer::signature_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Signer::signature_length() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sign
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:354,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:359,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:359,1
    - Dst: der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:360,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:360,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 364
    functionName: Botan::PK_Signer::signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 24
    functionsReached:
    - der_encode_signature
    - Internal_Error
    - sign
    - value
    - BOTAN_ASSERT_NOMSG
    - has_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> PK_Signer::signature(RandomNumberGenerator& rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_verification_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:370,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:372,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:372,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:372,1
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:376,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:379,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ' key'
    - padding
    - format
    - provider
    argTypes:
    - Public_Key
    - std::string_view
    - Signature_Format
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 381
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached:
    - Invalid_Argument
    - algo_name
    - _signature_element_size_for_DER_encoding
    - BOTAN_ARG_CHECK
    - create_verification_op
    - has_value
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Verifier::PK_Verifier(const Public_Key& key,\n                         std::string_view
      padding,\n                         Signature_Format format,\n                         std::string_view
      provider)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_x509_verification_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:386,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:388,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:388,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:388,1
    - Dst: _default_x509_signature_format
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:391,1
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' key'
    - ' signature_algorithm'
    - provider
    argTypes:
    - Public_Key
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached:
    - Invalid_Argument
    - algo_name
    - _signature_element_size_for_DER_encoding
    - _default_x509_signature_format
    - create_x509_verification_op
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Verifier::PK_Verifier(const Public_Key& key,\n                         const
      AlgorithmIdentifier& signature_algorithm,\n                         std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: PK_Verifier::~PK_Verifier()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::~PK_Verifier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 397
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::PK_Verifier(PK_Verifier&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Verifier::hash_function
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: Botan::PK_Verifier::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 6
    functionsReached:
    - Botan::PK_Verifier::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Verifier::hash_function() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:406,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - Signature_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: Botan::PK_Verifier::set_input_format
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - has_value
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::set_input_format(Signature_Format format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:412,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - msg
    - msg_length
    - sig
    - sig_length
    argTypes:
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: Botan::PK_Verifier::verify_message
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 36
    functionsReached:
    - Botan::PK_Verifier::update
    - Botan::PK_Verifier::check_signature
    linkageType: ''
    returnType: bool
    signature: bool PK_Verifier::verify_message(const uint8_t msg[], size_t msg_length,
      const uint8_t sig[], size_t sig_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:417,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Botan::PK_Verifier::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 26
    functionsReached:
    - Botan::PK_Verifier::update
    - as_span_of_bytes
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::update(std::string_view in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Botan::PK_Verifier::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 27
    functionsReached:
    - Botan::PK_Verifier::update
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::update(const uint8_t in[], size_t length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:427,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:430,1
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:433,1
    - Dst: BER_Decoder::more_items
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:437,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:439,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:445,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:446,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:447,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:449,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:454,1
    - Dst: Botan::der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:457,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:459,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:460,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - sig
    - length
    - sig_part_size
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 463
    functionName: Botan::decode_der_signature_pair
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder::start_sequence
    - BigInt::bytes
    - CT::is_equal<uint8_t>
    - Botan::der_encode_signature
    - std::vector::reserve
    - BigInt::serialize
    - Botan::Decoding_Error
    - BOTAN_ASSERT_NOMSG
    - BER_Decoder::more_items
    - BER_Decoder::decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> decode_der_signature_pair(const uint8_t sig[],
      size_t length, size_t sig_part_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:427,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:430,1
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:433,1
    - Dst: BER_Decoder::more_items
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:437,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:439,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:445,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:446,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:447,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:449,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:454,1
    - Dst: Botan::der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:457,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:459,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:460,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - sig
    - length
    - sig_part_size
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 463
    functionName: Botan::decode_der_signature_pair
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder::start_sequence
    - BigInt::bytes
    - CT::is_equal<uint8_t>
    - Botan::der_encode_signature
    - std::vector::reserve
    - BigInt::serialize
    - Botan::Decoding_Error
    - BOTAN_ASSERT_NOMSG
    - BER_Decoder::more_items
    - BER_Decoder::decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> decode_der_signature_pair(const uint8_t sig[],
      size_t length, size_t sig_part_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_valid_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:470,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:475,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:475,1
    - Dst: decode_der_signature_pair
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:478,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:478,1
    - Dst: is_valid_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:484,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - sig
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 497
    functionName: Botan::PK_Verifier::check_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 22
    functionsReached:
    - decode_der_signature_pair
    - is_valid_signature
    - Internal_Error
    - value
    - BOTAN_ASSERT_NOMSG
    - has_value
    linkageType: ''
    returnType: bool
    signature: bool PK_Verifier::check_signature(const uint8_t sig[], size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/pk_keys.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: get_oid
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 0
    functionsReached:
    - object_identifier
    linkageType: ''
    returnType: OID
    signature: OID get_oid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pk_keys.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: message_parts
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 4
    functionsReached:
    - _signature_element_size_for_DER_encoding
    linkageType: ''
    returnType: size_t
    signature: size_t message_parts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pk_keys.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: message_part_size
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 0
    functionsReached:
    - _signature_element_size_for_DER_encoding
    linkageType: ''
    returnType: size_t
    signature: size_t message_part_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _default_x509_signature_format
      Src: /src/botan/src/lib/pubkey/pk_keys.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: default_x509_signature_format
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 3
    functionsReached:
    - _default_x509_signature_format
    linkageType: ''
    returnType: Signature_Format
    signature: Signature_Format default_x509_signature_format() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: algorithm_identifier
      Src: /src/botan/src/lib/pubkey/pk_keys.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 327
    functionName: pkcs8_algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 2
    functionsReached:
    - algorithm_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier pkcs8_algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 333
    functionName: stateful_operation
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool stateful_operation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 340
    functionName: remaining_operations
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: std::optional<uint64_t>
    signature: std::optional<uint64_t> remaining_operations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_hex_fingerprint
      Src: /src/botan/src/lib/pubkey/pk_keys.h:429,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pk_keys.h:429,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_keys.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vec
    - hash_name
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: create_hex_fingerprint
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 5
    functionsReached:
    - create_hex_fingerprint
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::string
    signature: std::string create_hex_fingerprint(std::span<const uint8_t> vec, std::string_view
      hash_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subject_public_key
      Src: /src/botan/src/lib/pubkey/x509_key.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::X509::BER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.h
    functionUses: 12
    functionsReached:
    - subject_public_key
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> BER_encode(const Public_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/pubkey/x509_key.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::X509::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.h
    functionUses: 50
    functionsReached:
    - Botan::X509::load_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> load_key(std::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/pubkey/x509_key.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' enc'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Botan::X509::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.h
    functionUses: 51
    functionsReached:
    - Botan::X509::load_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> load_key(const std::vector<uint8_t>& enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/pubkey/x509_key.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enc
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::X509::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.h
    functionUses: 52
    functionsReached:
    - Botan::X509::load_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> load_key(std::span<const uint8_t> enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/pubkey/x509_key.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: Botan::X509::copy_key
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.h
    functionUses: 0
    functionsReached:
    - Botan::X509::load_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> copy_key(const Public_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subject_public_key
      Src: /src/botan/src/lib/pubkey/x509_key.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::X509::BER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.h
    functionUses: 12
    functionsReached:
    - subject_public_key
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> BER_encode(const Public_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/pubkey/x509_key.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::X509::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.h
    functionUses: 54
    functionsReached:
    - Botan::X509::load_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> load_key(std::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/pubkey/x509_key.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' enc'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Botan::X509::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.h
    functionUses: 55
    functionsReached:
    - Botan::X509::load_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> load_key(const std::vector<uint8_t>& enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/pubkey/x509_key.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enc
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::X509::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.h
    functionUses: 56
    functionsReached:
    - Botan::X509::load_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> load_key(std::span<const uint8_t> enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/pubkey/x509_key.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: Botan::X509::copy_key
    functionSourceFile: /src/botan/src/lib/pubkey/x509_key.h
    functionUses: 0
    functionsReached:
    - Botan::X509::load_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> copy_key(const Public_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: PK_Ops::Signature::algorithm_identifier() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier PK_Ops::Signature::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EncryptionPaddingScheme::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: PK_Ops::Encryption_with_Padding::Encryption_with_Padding(std::string_view
      padding)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::EncryptionPaddingScheme::create
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Encryption_with_Padding::Encryption_with_Padding(std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: PK_Ops::Encryption_with_Padding::~Encryption_with_Padding()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Encryption_with_Padding::~Encryption_with_Padding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maximum_input_size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:36,1
    - Dst: max_ptext_input_bits
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: PK_Ops::Encryption_with_Padding::max_input_bits() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - maximum_input_size
    - max_ptext_input_bits
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Ops::Encryption_with_Padding::max_input_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max_ptext_input_bits
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:41,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:43,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:43,1
    - Dst: pad
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:46,1
    - Dst: raw_encrypt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:47,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: "PK_Ops::Encryption_with_Padding::encrypt(std::span<const uint8_t>
      msg,\n                                                              RandomNumberGenerator&
      rng)"
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - pad
    - first
    - max_ptext_input_bits
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    - raw_encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> PK_Ops::Encryption_with_Padding::encrypt(std::span<const
      uint8_t> msg,\n                                                              RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EncryptionPaddingScheme::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: PK_Ops::Decryption_with_Padding::Decryption_with_Padding(std::string_view
      padding)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::EncryptionPaddingScheme::create
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Decryption_with_Padding::Decryption_with_Padding(std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: PK_Ops::Decryption_with_Padding::~Decryption_with_Padding()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Decryption_with_Padding::~Decryption_with_Padding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_decrypt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:56,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:58,1
    - Dst: unpad
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:59,1
    - Dst: Botan::CT::Mask::from_choice
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:61,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:61,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:73,1
    - Dst: auto::value_or
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' valid_mask'
    - ctext
    argTypes:
    - uint8_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 75
    functionName: PK_Ops::Decryption_with_Padding::decrypt(uint8_t& valid_mask, std::span<const
      uint8_t> ctext)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - raw_decrypt
    - secure_vector::resize
    - secure_vector::size
    - auto::has_value
    - auto::value_or
    - unpad
    - Botan::CT::Mask::from_choice
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> PK_Ops::Decryption_with_Padding::decrypt(uint8_t&
      valid_mask, std::span<const uint8_t> ctext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: PK_Ops::Key_Agreement_with_KDF::Key_Agreement_with_KDF(std::string_view
      kdf)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Key_Agreement_with_KDF::Key_Agreement_with_KDF(std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: PK_Ops::Key_Agreement_with_KDF::~Key_Agreement_with_KDF()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Key_Agreement_with_KDF::~Key_Agreement_with_KDF()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:88,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:89,1
    - Dst: raw_agree
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:92,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:92,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:92,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:94,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:94,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - key_len
    - other_key
    - salt
    argTypes:
    - size_t
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: "PK_Ops::Key_Agreement_with_KDF::agree(size_t key_len,\n                                                             std::span<const
      uint8_t> other_key,\n                                                             std::span<const
      uint8_t> salt)"
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - raw_agree
    - Invalid_Argument
    - std::span<const uint8_t>::empty
    - derive_key
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PK_Ops::Key_Agreement_with_KDF::agree(size_t
      key_len,\n                                                             std::span<const
      uint8_t> other_key,\n                                                             std::span<const
      uint8_t> salt)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:102,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:108,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:108,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:115,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:116,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:117,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:120,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 129
    functionName: Botan::create_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<RawHashFunction>
    - Algorithm_Not_Found
    - Botan::HashFunction::create
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_signature_hash(std::string_view
      padding)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:102,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:108,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:108,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:115,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:116,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:117,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:120,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 129
    functionName: Botan::create_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<RawHashFunction>
    - Algorithm_Not_Found
    - Botan::HashFunction::create
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_signature_hash(std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_signature_hash
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: PK_Ops::Signature_with_Hash::Signature_with_Hash(std::string_view
      hash)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - create_signature_hash
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Signature_with_Hash::Signature_with_Hash(std::string_view
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: PK_Ops::Signature_with_Hash::~Signature_with_Hash()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Signature_with_Hash::~Signature_with_Hash()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: PK_Ops::Signature_with_Hash::rfc6979_hash_function() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Ops::Signature_with_Hash::rfc6979_hash_function() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: PK_Ops::Signature_with_Hash::hash_function() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Ops::Signature_with_Hash::hash_function() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: PK_Ops::Signature_with_Hash::update(std::span<const uint8_t> msg)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Signature_with_Hash::update(std::span<const uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:157,1
    - Dst: raw_sign
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: PK_Ops::Signature_with_Hash::sign(RandomNumberGenerator& rng)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - raw_sign
    - final_stdvec
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> PK_Ops::Signature_with_Hash::sign(RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_signature_hash
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: PK_Ops::Verification_with_Hash::Verification_with_Hash(std::string_view
      padding)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - create_signature_hash
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Verification_with_Hash::Verification_with_Hash(std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: PK_Ops::Verification_with_Hash::~Verification_with_Hash()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Verification_with_Hash::~Verification_with_Hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: PK_Ops::Verification_with_Hash::hash_function() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Ops::Verification_with_Hash::hash_function() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: split_on
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:173,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:173,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:175,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:176,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:177,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:177,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:180,1
    - Dst: parameters_are_null
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:181,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:183,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:183,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:186,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:186,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - ' alg_id'
    - pk_algo
    - allow_null_parameters
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 191
    functionName: "PK_Ops::Verification_with_Hash::Verification_with_Hash(const AlgorithmIdentifier&
      alg_id,\n                                                       std::string_view
      pk_algo,\n                                                       bool allow_null_parameters)"
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - split_on
    - parameters_are_null
    - auto::size
    - Decoding_Error
    - oid
    - Botan::HashFunction::create_or_throw
    - parameters_are_empty
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Ops::Verification_with_Hash::Verification_with_Hash(const
      AlgorithmIdentifier& alg_id,\n                                                       std::string_view
      pk_algo,\n                                                       bool allow_null_parameters)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: PK_Ops::Verification_with_Hash::update(std::span<const uint8_t>
      msg)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Verification_with_Hash::update(std::span<const uint8_t>
      msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:198,1
    - Dst: verify
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: PK_Ops::Verification_with_Hash::is_valid_signature(std::span<const
      uint8_t> sig)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - final_stdvec
    - verify
    linkageType: ''
    returnType: bool
    signature: bool PK_Ops::Verification_with_Hash::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK_Ops::KEM_Encryption_with_KDF::raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: PK_Ops::KEM_Encryption_with_KDF::shared_key_length(size_t desired_shared_key_len)
      const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - PK_Ops::KEM_Encryption_with_KDF::raw_kem_shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Ops::KEM_Encryption_with_KDF::shared_key_length(size_t desired_shared_key_len)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:215,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:215,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:216,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:216,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:216,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:219,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:220,1
    - Dst: "PK_Ops::KEM_Encryption_with_KDF::kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n
        \                                                 std::span<uint8_t> out_shared_key,\n
        \                                                 RandomNumberGenerator& rng,\n
        \                                                 size_t desired_shared_key_len,\n
        \                                                 std::raw_kem_encrypt"
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:223,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:224,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:226,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:226,1
    - Dst: raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:226,1
    - Dst: "PK_Ops::KEM_Encryption_with_KDF::kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n
        \                                                 std::span<uint8_t> out_shared_key,\n
        \                                                 RandomNumberGenerator& rng,\n
        \                                                 size_t desired_shared_key_len,\n
        \                                                 std::raw_kem_encrypt"
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 229
    functionName: "PK_Ops::KEM_Encryption_with_KDF::kem_encrypt(std::span<uint8_t>
      out_encapsulated_key,\n                                                  std::span<uint8_t>
      out_shared_key,\n                                                  RandomNumberGenerator&
      rng,\n                                                  size_t desired_shared_key_len,\n
      \                                                 std::span<const uint8_t> salt)"
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - derive_key
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_EQUAL
    - encapsulated_key_length
    - "PK_Ops::KEM_Encryption_with_KDF::kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n
      \                                                 std::span<uint8_t> out_shared_key,\n
      \                                                 RandomNumberGenerator& rng,\n
      \                                                 size_t desired_shared_key_len,\n
      \                                                 std::raw_kem_encrypt"
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - raw_kem_shared_key_length
    linkageType: ''
    returnType: void
    signature: "void PK_Ops::KEM_Encryption_with_KDF::kem_encrypt(std::span<uint8_t>
      out_encapsulated_key,\n                                                  std::span<uint8_t>
      out_shared_key,\n                                                  RandomNumberGenerator&
      rng,\n                                                  size_t desired_shared_key_len,\n
      \                                                 std::span<const uint8_t> salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: PK_Ops::KEM_Encryption_with_KDF::KEM_Encryption_with_KDF(std::string_view
      kdf)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    linkageType: ''
    returnType: void
    signature: void PK_Ops::KEM_Encryption_with_KDF::KEM_Encryption_with_KDF(std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: PK_Ops::KEM_Encryption_with_KDF::~KEM_Encryption_with_KDF()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::KEM_Encryption_with_KDF::~KEM_Encryption_with_KDF()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK_Ops::KEM_Decryption_with_KDF::raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: PK_Ops::KEM_Decryption_with_KDF::shared_key_length(size_t desired_shared_key_len)
      const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - PK_Ops::KEM_Decryption_with_KDF::raw_kem_shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Ops::KEM_Decryption_with_KDF::shared_key_length(size_t desired_shared_key_len)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:251,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:251,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:254,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:255,1
    - Dst: "PK_Ops::KEM_Decryption_with_KDF::kem_decrypt(std::span<uint8_t> out_shared_key,\n
        \                                                 std::span<const uint8_t>
        encapsulated_key,\n                                                  size_t
        desired_shared_key_len,\n                                                  std::raw_kem_decrypt"
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:258,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:259,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:261,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:261,1
    - Dst: raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:261,1
    - Dst: "PK_Ops::KEM_Decryption_with_KDF::kem_decrypt(std::span<uint8_t> out_shared_key,\n
        \                                                 std::span<const uint8_t>
        encapsulated_key,\n                                                  size_t
        desired_shared_key_len,\n                                                  std::raw_kem_decrypt"
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - out_shared_key
    - encapsulated_key
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 264
    functionName: "PK_Ops::KEM_Decryption_with_KDF::kem_decrypt(std::span<uint8_t>
      out_shared_key,\n                                                  std::span<const
      uint8_t> encapsulated_key,\n                                                  size_t
      desired_shared_key_len,\n                                                  std::span<const
      uint8_t> salt)"
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - "PK_Ops::KEM_Decryption_with_KDF::kem_decrypt(std::span<uint8_t> out_shared_key,\n
      \                                                 std::span<const uint8_t> encapsulated_key,\n
      \                                                 size_t desired_shared_key_len,\n
      \                                                 std::raw_kem_decrypt"
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_EQUAL
    - std::span<const uint8_t>::empty
    - derive_key
    - raw_kem_shared_key_length
    linkageType: ''
    returnType: void
    signature: "void PK_Ops::KEM_Decryption_with_KDF::kem_decrypt(std::span<uint8_t>
      out_shared_key,\n                                                  std::span<const
      uint8_t> encapsulated_key,\n                                                  size_t
      desired_shared_key_len,\n                                                  std::span<const
      uint8_t> salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: PK_Ops::KEM_Decryption_with_KDF::KEM_Decryption_with_KDF(std::string_view
      kdf)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    linkageType: ''
    returnType: void
    signature: void PK_Ops::KEM_Decryption_with_KDF::KEM_Decryption_with_KDF(std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: PK_Ops::KEM_Decryption_with_KDF::~KEM_Decryption_with_KDF()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::KEM_Decryption_with_KDF::~KEM_Decryption_with_KDF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: PK_Ops::Signature::algorithm_identifier() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier PK_Ops::Signature::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EncryptionPaddingScheme::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: PK_Ops::Encryption_with_Padding::Encryption_with_Padding(std::string_view
      padding)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::EncryptionPaddingScheme::create
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Encryption_with_Padding::Encryption_with_Padding(std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: PK_Ops::Encryption_with_Padding::~Encryption_with_Padding()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Encryption_with_Padding::~Encryption_with_Padding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maximum_input_size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:36,1
    - Dst: max_ptext_input_bits
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: PK_Ops::Encryption_with_Padding::max_input_bits() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - maximum_input_size
    - max_ptext_input_bits
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Ops::Encryption_with_Padding::max_input_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max_ptext_input_bits
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:41,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:43,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:43,1
    - Dst: pad
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:46,1
    - Dst: raw_encrypt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:47,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: "PK_Ops::Encryption_with_Padding::encrypt(std::span<const uint8_t>
      msg,\n                                                              RandomNumberGenerator&
      rng)"
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - pad
    - first
    - max_ptext_input_bits
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    - raw_encrypt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> PK_Ops::Encryption_with_Padding::encrypt(std::span<const
      uint8_t> msg,\n                                                              RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EncryptionPaddingScheme::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: PK_Ops::Decryption_with_Padding::Decryption_with_Padding(std::string_view
      padding)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::EncryptionPaddingScheme::create
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Decryption_with_Padding::Decryption_with_Padding(std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: PK_Ops::Decryption_with_Padding::~Decryption_with_Padding()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Decryption_with_Padding::~Decryption_with_Padding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_decrypt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:56,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:58,1
    - Dst: unpad
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:59,1
    - Dst: Botan::CT::Mask::from_choice
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:61,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:61,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:73,1
    - Dst: auto::value_or
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' valid_mask'
    - ctext
    argTypes:
    - uint8_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 75
    functionName: PK_Ops::Decryption_with_Padding::decrypt(uint8_t& valid_mask, std::span<const
      uint8_t> ctext)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - raw_decrypt
    - secure_vector::resize
    - secure_vector::size
    - auto::has_value
    - auto::value_or
    - unpad
    - Botan::CT::Mask::from_choice
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> PK_Ops::Decryption_with_Padding::decrypt(uint8_t&
      valid_mask, std::span<const uint8_t> ctext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: PK_Ops::Key_Agreement_with_KDF::Key_Agreement_with_KDF(std::string_view
      kdf)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Key_Agreement_with_KDF::Key_Agreement_with_KDF(std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: PK_Ops::Key_Agreement_with_KDF::~Key_Agreement_with_KDF()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Key_Agreement_with_KDF::~Key_Agreement_with_KDF()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:88,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:89,1
    - Dst: raw_agree
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:92,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:92,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:92,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:94,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:94,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - key_len
    - other_key
    - salt
    argTypes:
    - size_t
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: "PK_Ops::Key_Agreement_with_KDF::agree(size_t key_len,\n                                                             std::span<const
      uint8_t> other_key,\n                                                             std::span<const
      uint8_t> salt)"
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - raw_agree
    - Invalid_Argument
    - std::span<const uint8_t>::empty
    - derive_key
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PK_Ops::Key_Agreement_with_KDF::agree(size_t
      key_len,\n                                                             std::span<const
      uint8_t> other_key,\n                                                             std::span<const
      uint8_t> salt)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:102,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:108,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:108,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:115,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:116,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:117,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:120,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 129
    functionName: Botan::create_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<RawHashFunction>
    - Algorithm_Not_Found
    - Botan::HashFunction::create
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_signature_hash(std::string_view
      padding)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:102,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:108,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:108,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:115,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:116,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:117,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:120,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 129
    functionName: Botan::create_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<RawHashFunction>
    - Algorithm_Not_Found
    - Botan::HashFunction::create
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_signature_hash(std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_signature_hash
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: PK_Ops::Signature_with_Hash::Signature_with_Hash(std::string_view
      hash)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - create_signature_hash
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Signature_with_Hash::Signature_with_Hash(std::string_view
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: PK_Ops::Signature_with_Hash::~Signature_with_Hash()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Signature_with_Hash::~Signature_with_Hash()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: PK_Ops::Signature_with_Hash::rfc6979_hash_function() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Ops::Signature_with_Hash::rfc6979_hash_function() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: PK_Ops::Signature_with_Hash::hash_function() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Ops::Signature_with_Hash::hash_function() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: PK_Ops::Signature_with_Hash::update(std::span<const uint8_t> msg)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Signature_with_Hash::update(std::span<const uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:157,1
    - Dst: raw_sign
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: PK_Ops::Signature_with_Hash::sign(RandomNumberGenerator& rng)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - raw_sign
    - final_stdvec
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> PK_Ops::Signature_with_Hash::sign(RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_signature_hash
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: PK_Ops::Verification_with_Hash::Verification_with_Hash(std::string_view
      padding)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - create_signature_hash
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Verification_with_Hash::Verification_with_Hash(std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: PK_Ops::Verification_with_Hash::~Verification_with_Hash()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Verification_with_Hash::~Verification_with_Hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: PK_Ops::Verification_with_Hash::hash_function() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string PK_Ops::Verification_with_Hash::hash_function() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: split_on
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:173,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:173,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:175,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:176,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:177,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:177,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:180,1
    - Dst: parameters_are_null
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:181,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:183,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:183,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:186,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:186,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - ' alg_id'
    - pk_algo
    - allow_null_parameters
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 191
    functionName: "PK_Ops::Verification_with_Hash::Verification_with_Hash(const AlgorithmIdentifier&
      alg_id,\n                                                       std::string_view
      pk_algo,\n                                                       bool allow_null_parameters)"
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - split_on
    - parameters_are_null
    - auto::size
    - Decoding_Error
    - oid
    - Botan::HashFunction::create_or_throw
    - parameters_are_empty
    - fmt
    linkageType: ''
    returnType: void
    signature: "void PK_Ops::Verification_with_Hash::Verification_with_Hash(const
      AlgorithmIdentifier& alg_id,\n                                                       std::string_view
      pk_algo,\n                                                       bool allow_null_parameters)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: PK_Ops::Verification_with_Hash::update(std::span<const uint8_t>
      msg)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void PK_Ops::Verification_with_Hash::update(std::span<const uint8_t>
      msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:198,1
    - Dst: verify
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: PK_Ops::Verification_with_Hash::is_valid_signature(std::span<const
      uint8_t> sig)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - final_stdvec
    - verify
    linkageType: ''
    returnType: bool
    signature: bool PK_Ops::Verification_with_Hash::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK_Ops::KEM_Encryption_with_KDF::raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: PK_Ops::KEM_Encryption_with_KDF::shared_key_length(size_t desired_shared_key_len)
      const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - PK_Ops::KEM_Encryption_with_KDF::raw_kem_shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Ops::KEM_Encryption_with_KDF::shared_key_length(size_t desired_shared_key_len)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:215,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:215,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:216,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:216,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:216,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:219,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:220,1
    - Dst: "PK_Ops::KEM_Encryption_with_KDF::kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n
        \                                                 std::span<uint8_t> out_shared_key,\n
        \                                                 RandomNumberGenerator& rng,\n
        \                                                 size_t desired_shared_key_len,\n
        \                                                 std::raw_kem_encrypt"
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:223,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:224,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:226,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:226,1
    - Dst: raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:226,1
    - Dst: "PK_Ops::KEM_Encryption_with_KDF::kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n
        \                                                 std::span<uint8_t> out_shared_key,\n
        \                                                 RandomNumberGenerator& rng,\n
        \                                                 size_t desired_shared_key_len,\n
        \                                                 std::raw_kem_encrypt"
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 229
    functionName: "PK_Ops::KEM_Encryption_with_KDF::kem_encrypt(std::span<uint8_t>
      out_encapsulated_key,\n                                                  std::span<uint8_t>
      out_shared_key,\n                                                  RandomNumberGenerator&
      rng,\n                                                  size_t desired_shared_key_len,\n
      \                                                 std::span<const uint8_t> salt)"
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - derive_key
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_EQUAL
    - encapsulated_key_length
    - "PK_Ops::KEM_Encryption_with_KDF::kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n
      \                                                 std::span<uint8_t> out_shared_key,\n
      \                                                 RandomNumberGenerator& rng,\n
      \                                                 size_t desired_shared_key_len,\n
      \                                                 std::raw_kem_encrypt"
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - raw_kem_shared_key_length
    linkageType: ''
    returnType: void
    signature: "void PK_Ops::KEM_Encryption_with_KDF::kem_encrypt(std::span<uint8_t>
      out_encapsulated_key,\n                                                  std::span<uint8_t>
      out_shared_key,\n                                                  RandomNumberGenerator&
      rng,\n                                                  size_t desired_shared_key_len,\n
      \                                                 std::span<const uint8_t> salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: PK_Ops::KEM_Encryption_with_KDF::KEM_Encryption_with_KDF(std::string_view
      kdf)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    linkageType: ''
    returnType: void
    signature: void PK_Ops::KEM_Encryption_with_KDF::KEM_Encryption_with_KDF(std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: PK_Ops::KEM_Encryption_with_KDF::~KEM_Encryption_with_KDF()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::KEM_Encryption_with_KDF::~KEM_Encryption_with_KDF()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK_Ops::KEM_Decryption_with_KDF::raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: PK_Ops::KEM_Decryption_with_KDF::shared_key_length(size_t desired_shared_key_len)
      const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - PK_Ops::KEM_Decryption_with_KDF::raw_kem_shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t PK_Ops::KEM_Decryption_with_KDF::shared_key_length(size_t desired_shared_key_len)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:251,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:251,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:254,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:255,1
    - Dst: "PK_Ops::KEM_Decryption_with_KDF::kem_decrypt(std::span<uint8_t> out_shared_key,\n
        \                                                 std::span<const uint8_t>
        encapsulated_key,\n                                                  size_t
        desired_shared_key_len,\n                                                  std::raw_kem_decrypt"
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:258,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:259,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:261,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:261,1
    - Dst: raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:261,1
    - Dst: "PK_Ops::KEM_Decryption_with_KDF::kem_decrypt(std::span<uint8_t> out_shared_key,\n
        \                                                 std::span<const uint8_t>
        encapsulated_key,\n                                                  size_t
        desired_shared_key_len,\n                                                  std::raw_kem_decrypt"
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - out_shared_key
    - encapsulated_key
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 264
    functionName: "PK_Ops::KEM_Decryption_with_KDF::kem_decrypt(std::span<uint8_t>
      out_shared_key,\n                                                  std::span<const
      uint8_t> encapsulated_key,\n                                                  size_t
      desired_shared_key_len,\n                                                  std::span<const
      uint8_t> salt)"
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - "PK_Ops::KEM_Decryption_with_KDF::kem_decrypt(std::span<uint8_t> out_shared_key,\n
      \                                                 std::span<const uint8_t> encapsulated_key,\n
      \                                                 size_t desired_shared_key_len,\n
      \                                                 std::raw_kem_decrypt"
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_EQUAL
    - std::span<const uint8_t>::empty
    - derive_key
    - raw_kem_shared_key_length
    linkageType: ''
    returnType: void
    signature: "void PK_Ops::KEM_Decryption_with_KDF::kem_decrypt(std::span<uint8_t>
      out_shared_key,\n                                                  std::span<const
      uint8_t> encapsulated_key,\n                                                  size_t
      desired_shared_key_len,\n                                                  std::span<const
      uint8_t> salt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: PK_Ops::KEM_Decryption_with_KDF::KEM_Decryption_with_KDF(std::string_view
      kdf)
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    linkageType: ''
    returnType: void
    signature: void PK_Ops::KEM_Decryption_with_KDF::KEM_Decryption_with_KDF(std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: PK_Ops::KEM_Decryption_with_KDF::~KEM_Decryption_with_KDF()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Ops::KEM_Decryption_with_KDF::~KEM_Decryption_with_KDF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' pbe_alg_id'
    argTypes:
    - DataSource
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan::PKCS8::PKCS8_extract
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> PKCS8_extract(DataSource& source, AlgorithmIdentifier&
      pbe_alg_id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1::maybe_BER
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:51,1
    - Dst: Botan::PEM_Code::matches
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:51,1
    - Dst: Botan::PKCS8::PKCS8_extract
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:53,1
    - Dst: read_byte
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:56,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:57,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:62,1
    - Dst: Botan::PKCS8::PKCS8_extract
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:69,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:71,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:71,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:75,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:76,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:79,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:84,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: pbes2_decrypt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: get_passphrase
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: AlgorithmIdentifier::parameters
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:91,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:92,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:98,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:106,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 4
    argNames:
    - ' source'
    - ' get_passphrase'
    - ' pk_alg_id'
    - is_encrypted
    argTypes:
    - DataSource
    - std::function<std::string()>
    - AlgorithmIdentifier
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 109
    functionName: Botan::PKCS8::PKCS8_decode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - pbes2_decrypt
    - Botan::PKCS8::PKCS8_extract
    - read_byte
    - Botan::ASN1::maybe_BER
    - secure_vector::empty
    - secure_vector::push_back
    - Decoding_Error
    - BOTAN_UNUSED
    - PKCS8_Exception
    - AlgorithmIdentifier::oid
    - Botan::PEM_Code::matches
    - Botan::PEM_Code::decode
    - AlgorithmIdentifier::parameters
    - get_passphrase
    - fmt
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PKCS8_decode(DataSource& source,\n                                    const
      std::function<std::string()>& get_passphrase,\n                                    AlgorithmIdentifier&
      pk_alg_id,\n                                    bool is_encrypted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' pbe_alg_id'
    argTypes:
    - DataSource
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan::PKCS8::PKCS8_extract
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 1
    functionsReached:
    - BER_Decoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> PKCS8_extract(DataSource& source, AlgorithmIdentifier&
      pbe_alg_id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1::maybe_BER
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:51,1
    - Dst: Botan::PEM_Code::matches
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:51,1
    - Dst: Botan::PKCS8::PKCS8_extract
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:53,1
    - Dst: read_byte
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:56,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:57,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:62,1
    - Dst: Botan::PKCS8::PKCS8_extract
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:69,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:71,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:71,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:75,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:76,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:79,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:84,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: pbes2_decrypt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: get_passphrase
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: AlgorithmIdentifier::parameters
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:91,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:92,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:98,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:106,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 4
    argNames:
    - ' source'
    - ' get_passphrase'
    - ' pk_alg_id'
    - is_encrypted
    argTypes:
    - DataSource
    - std::function<std::string()>
    - AlgorithmIdentifier
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 109
    functionName: Botan::PKCS8::PKCS8_decode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - pbes2_decrypt
    - Botan::PKCS8::PKCS8_extract
    - read_byte
    - Botan::ASN1::maybe_BER
    - secure_vector::empty
    - secure_vector::push_back
    - Decoding_Error
    - BOTAN_UNUSED
    - PKCS8_Exception
    - AlgorithmIdentifier::oid
    - Botan::PEM_Code::matches
    - Botan::PEM_Code::decode
    - AlgorithmIdentifier::parameters
    - get_passphrase
    - fmt
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PKCS8_decode(DataSource& source,\n                                    const
      std::function<std::string()>& get_passphrase,\n                                    AlgorithmIdentifier&
      pk_alg_id,\n                                    bool is_encrypted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:117,1
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: Botan::PKCS8::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 24
    functionsReached:
    - private_key_info
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string PEM_encode(const Private_Key& key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:125,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:135,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:137,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:142,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:148,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:148,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - pbe_algo
    - key_algo
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 152
    functionName: Botan::PKCS8::choose_pbe_params
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::make_pair
    - std::string_view::empty
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    - fmt
    linkageType: ''
    returnType: std::pair<std::string, std::string>
    signature: std::pair<std::string, std::string> choose_pbe_params(std::string_view
      pbe_algo, std::string_view key_algo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:125,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:135,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:137,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:142,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:148,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:148,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - pbe_algo
    - key_algo
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 152
    functionName: Botan::PKCS8::choose_pbe_params
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - std::make_pair
    - std::string_view::empty
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    - fmt
    linkageType: ''
    returnType: std::pair<std::string, std::string>
    signature: std::pair<std::string, std::string> choose_pbe_params(std::string_view
      pbe_algo, std::string_view key_algo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::choose_pbe_params
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:167,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:167,1
    - Dst: pbes2_encrypt_msec
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:170,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:170,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:174,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:178,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - pass
    - msec
    - pbe_algo
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::chrono::milliseconds
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 181
    functionName: Botan::PKCS8::BER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 13
    functionsReached:
    - Botan::PKCS8::BER_encode
    - algo_name
    - pbes2_encrypt_msec
    - BOTAN_UNUSED
    - DER_Encoder::start_sequence
    - Encoding_Error
    - Botan::PKCS8::choose_pbe_params
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> BER_encode(const Private_Key& key,\n                                RandomNumberGenerator&
      rng,\n                                std::string_view pass,\n                                std::chrono::milliseconds
      msec,\n                                std::string_view pbe_algo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:191,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:192,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:195,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - pass
    - msec
    - pbe_algo
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::chrono::milliseconds
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: Botan::PKCS8::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 25
    functionsReached:
    - std::string_view::empty
    - Botan::PKCS8::BER_encode
    - Botan::PKCS8::PEM_encode
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: "std::string PEM_encode(const Private_Key& key,\n                       RandomNumberGenerator&
      rng,\n                       std::string_view pass,\n                       std::chrono::milliseconds
      msec,\n                       std::string_view pbe_algo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pbes2_encrypt_iter
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:209,1
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:209,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:212,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:213,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:218,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:223,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ' key'
    - ' rng'
    - pass
    - pbkdf_iterations
    - cipher
    - pbkdf_hash
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - size_t
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 226
    functionName: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 8
    functionsReached:
    - BOTAN_UNUSED
    - pbes2_encrypt_iter
    - std::string_view::empty
    - private_key_info
    - DER_Encoder::start_sequence
    - Encoding_Error
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> BER_encode_encrypted_pbkdf_iter(const Private_Key&
      key,\n                                                     RandomNumberGenerator&
      rng,\n                                                     std::string_view
      pass,\n                                                     size_t pbkdf_iterations,\n
      \                                                    std::string_view cipher,\n
      \                                                    std::string_view pbkdf_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:237,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' key'
    - ' rng'
    - pass
    - pbkdf_iterations
    - cipher
    - pbkdf_hash
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - size_t
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 8
    functionsReached:
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: "std::string PEM_encode_encrypted_pbkdf_iter(const Private_Key& key,\n
      \                                           RandomNumberGenerator& rng,\n                                            std::string_view
      pass,\n                                            size_t pbkdf_iterations,\n
      \                                           std::string_view cipher,\n                                            std::string_view
      pbkdf_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pbes2_encrypt_msec
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:253,1
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:253,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:257,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:258,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:262,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:270,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - ' key'
    - ' rng'
    - pass
    - pbkdf_msec
    - pbkdf_iterations
    - cipher
    - pbkdf_hash
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::chrono::milliseconds
    - size_t*
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 273
    functionName: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 8
    functionsReached:
    - pbes2_encrypt_msec
    - BOTAN_UNUSED
    - std::string_view::empty
    - private_key_info
    - DER_Encoder
    - Encoding_Error
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> BER_encode_encrypted_pbkdf_msec(const Private_Key&
      key,\n                                                     RandomNumberGenerator&
      rng,\n                                                     std::string_view
      pass,\n                                                     std::chrono::milliseconds
      pbkdf_msec,\n                                                     size_t* pbkdf_iterations,\n
      \                                                    std::string_view cipher,\n
      \                                                    std::string_view pbkdf_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:285,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ' key'
    - ' rng'
    - pass
    - pbkdf_msec
    - pbkdf_iterations
    - cipher
    - pbkdf_hash
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::chrono::milliseconds
    - size_t*
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 8
    functionsReached:
    - Botan::PEM_Code::encode
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    linkageType: ''
    returnType: std::string
    signature: "std::string PEM_encode_encrypted_pbkdf_msec(const Private_Key& key,\n
      \                                           RandomNumberGenerator& rng,\n                                            std::string_view
      pass,\n                                            std::chrono::milliseconds
      pbkdf_msec,\n                                            size_t* pbkdf_iterations,\n
      \                                           std::string_view cipher,\n                                            std::string_view
      pbkdf_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::PKCS8_decode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:299,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:301,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:302,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: load_private_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' source'
    - ' get_pass'
    - is_encrypted
    argTypes:
    - DataSource
    - std::function<std::string()>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 85
    functionsReached:
    - std::string::empty
    - PKCS8_Exception
    - AlgorithmIdentifier::oid
    - Botan::PKCS8::PKCS8_decode
    - load_private_key
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> load_key(DataSource& source,\n                                      const
      std::function<std::string()>& get_pass,\n                                      bool
      is_encrypted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::PKCS8_decode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:299,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:301,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:302,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: load_private_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' source'
    - ' get_pass'
    - is_encrypted
    argTypes:
    - DataSource
    - std::function<std::string()>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 85
    functionsReached:
    - std::string::empty
    - PKCS8_Exception
    - AlgorithmIdentifier::oid
    - Botan::PKCS8::PKCS8_decode
    - load_private_key
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> load_key(DataSource& source,\n                                      const
      std::function<std::string()>& get_pass,\n                                      bool
      is_encrypted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' source'
    - ' get_pass'
    argTypes:
    - DataSource
    - std::function<std::string()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 86
    functionsReached:
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> load_key(DataSource& source, const std::function<std::string()>&
      get_pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - ' get_passphrase'
    argTypes:
    - std::span<const uint8_t>
    - std::function<std::string()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 87
    functionsReached:
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> load_key(std::span<const uint8_t> source,\n
      \                                     const std::function<std::string()>& get_passphrase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - pass
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 88
    functionsReached:
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> load_key(std::span<const uint8_t> source,
      std::string_view pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 89
    functionsReached:
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> load_key(std::span<const uint8_t> source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:338,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' source'
    - pass
    argTypes:
    - DataSource
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 90
    functionsReached:
    - std::string
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> load_key(DataSource& source, std::string_view
      pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:347,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - DataSource
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 351
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 91
    functionsReached:
    - PKCS8_Exception
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> load_key(DataSource& source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' pbe_alg_id'
    argTypes:
    - DataSource
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan::PKCS8::PKCS8_extract
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 2
    functionsReached:
    - BER_Decoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> PKCS8_extract(DataSource& source, AlgorithmIdentifier&
      pbe_alg_id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1::maybe_BER
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:51,1
    - Dst: Botan::PEM_Code::matches
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:51,1
    - Dst: Botan::PKCS8::PKCS8_extract
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:53,1
    - Dst: read_byte
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:56,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:57,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:62,1
    - Dst: Botan::PKCS8::PKCS8_extract
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:69,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:71,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:71,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:75,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:76,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:79,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:84,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: pbes2_decrypt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: get_passphrase
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: AlgorithmIdentifier::parameters
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:91,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:92,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:98,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:106,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 4
    argNames:
    - ' source'
    - ' get_passphrase'
    - ' pk_alg_id'
    - is_encrypted
    argTypes:
    - DataSource
    - std::function<std::string()>
    - AlgorithmIdentifier
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 109
    functionName: Botan::PKCS8::PKCS8_decode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 2
    functionsReached:
    - BER_Decoder
    - pbes2_decrypt
    - Botan::PKCS8::PKCS8_extract
    - read_byte
    - Botan::ASN1::maybe_BER
    - secure_vector::empty
    - secure_vector::push_back
    - Decoding_Error
    - BOTAN_UNUSED
    - PKCS8_Exception
    - AlgorithmIdentifier::oid
    - Botan::PEM_Code::matches
    - Botan::PEM_Code::decode
    - AlgorithmIdentifier::parameters
    - get_passphrase
    - fmt
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PKCS8_decode(DataSource& source,\n                                    const
      std::function<std::string()>& get_passphrase,\n                                    AlgorithmIdentifier&
      pk_alg_id,\n                                    bool is_encrypted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' source'
    - ' pbe_alg_id'
    argTypes:
    - DataSource
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan::PKCS8::PKCS8_extract
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 3
    functionsReached:
    - BER_Decoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> PKCS8_extract(DataSource& source, AlgorithmIdentifier&
      pbe_alg_id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ASN1::maybe_BER
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:51,1
    - Dst: Botan::PEM_Code::matches
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:51,1
    - Dst: Botan::PKCS8::PKCS8_extract
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:53,1
    - Dst: read_byte
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:56,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:57,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:62,1
    - Dst: Botan::PKCS8::PKCS8_extract
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:69,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:71,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:71,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:75,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:76,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:79,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:84,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:85,1
    - Dst: pbes2_decrypt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: get_passphrase
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: AlgorithmIdentifier::parameters
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:89,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:91,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:92,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:98,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:106,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 4
    argNames:
    - ' source'
    - ' get_passphrase'
    - ' pk_alg_id'
    - is_encrypted
    argTypes:
    - DataSource
    - std::function<std::string()>
    - AlgorithmIdentifier
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 109
    functionName: Botan::PKCS8::PKCS8_decode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 2
    functionsReached:
    - BER_Decoder
    - pbes2_decrypt
    - Botan::PKCS8::PKCS8_extract
    - read_byte
    - Botan::ASN1::maybe_BER
    - secure_vector::empty
    - secure_vector::push_back
    - Decoding_Error
    - BOTAN_UNUSED
    - PKCS8_Exception
    - AlgorithmIdentifier::oid
    - Botan::PEM_Code::matches
    - Botan::PEM_Code::decode
    - AlgorithmIdentifier::parameters
    - get_passphrase
    - fmt
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> PKCS8_decode(DataSource& source,\n                                    const
      std::function<std::string()>& get_passphrase,\n                                    AlgorithmIdentifier&
      pk_alg_id,\n                                    bool is_encrypted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:117,1
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: Botan::PKCS8::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 25
    functionsReached:
    - private_key_info
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string PEM_encode(const Private_Key& key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:125,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:135,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:137,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:142,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:148,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:148,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - pbe_algo
    - key_algo
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 152
    functionName: Botan::PKCS8::choose_pbe_params
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 1
    functionsReached:
    - Invalid_Argument
    - std::make_pair
    - std::string_view::empty
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    - fmt
    linkageType: ''
    returnType: std::pair<std::string, std::string>
    signature: std::pair<std::string, std::string> choose_pbe_params(std::string_view
      pbe_algo, std::string_view key_algo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:125,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:135,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:137,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:142,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:147,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:148,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:148,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:151,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - pbe_algo
    - key_algo
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 152
    functionName: Botan::PKCS8::choose_pbe_params
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 1
    functionsReached:
    - Invalid_Argument
    - std::make_pair
    - std::string_view::empty
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    - fmt
    linkageType: ''
    returnType: std::pair<std::string, std::string>
    signature: std::pair<std::string, std::string> choose_pbe_params(std::string_view
      pbe_algo, std::string_view key_algo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::choose_pbe_params
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:167,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:167,1
    - Dst: pbes2_encrypt_msec
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:170,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:170,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:174,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:178,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - pass
    - msec
    - pbe_algo
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::chrono::milliseconds
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 181
    functionName: Botan::PKCS8::BER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 15
    functionsReached:
    - Botan::PKCS8::BER_encode
    - algo_name
    - pbes2_encrypt_msec
    - BOTAN_UNUSED
    - DER_Encoder::start_sequence
    - Encoding_Error
    - Botan::PKCS8::choose_pbe_params
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> BER_encode(const Private_Key& key,\n                                RandomNumberGenerator&
      rng,\n                                std::string_view pass,\n                                std::chrono::milliseconds
      msec,\n                                std::string_view pbe_algo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:191,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:192,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:195,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ' key'
    - ' rng'
    - pass
    - msec
    - pbe_algo
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::chrono::milliseconds
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: Botan::PKCS8::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 26
    functionsReached:
    - std::string_view::empty
    - Botan::PKCS8::BER_encode
    - Botan::PKCS8::PEM_encode
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: "std::string PEM_encode(const Private_Key& key,\n                       RandomNumberGenerator&
      rng,\n                       std::string_view pass,\n                       std::chrono::milliseconds
      msec,\n                       std::string_view pbe_algo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pbes2_encrypt_iter
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:209,1
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:209,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:212,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:213,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:218,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:223,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ' key'
    - ' rng'
    - pass
    - pbkdf_iterations
    - cipher
    - pbkdf_hash
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - size_t
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 226
    functionName: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 9
    functionsReached:
    - BOTAN_UNUSED
    - pbes2_encrypt_iter
    - std::string_view::empty
    - private_key_info
    - DER_Encoder::start_sequence
    - Encoding_Error
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> BER_encode_encrypted_pbkdf_iter(const Private_Key&
      key,\n                                                     RandomNumberGenerator&
      rng,\n                                                     std::string_view
      pass,\n                                                     size_t pbkdf_iterations,\n
      \                                                    std::string_view cipher,\n
      \                                                    std::string_view pbkdf_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:237,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' key'
    - ' rng'
    - pass
    - pbkdf_iterations
    - cipher
    - pbkdf_hash
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - size_t
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 8
    functionsReached:
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: "std::string PEM_encode_encrypted_pbkdf_iter(const Private_Key& key,\n
      \                                           RandomNumberGenerator& rng,\n                                            std::string_view
      pass,\n                                            size_t pbkdf_iterations,\n
      \                                           std::string_view cipher,\n                                            std::string_view
      pbkdf_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pbes2_encrypt_msec
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:253,1
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:253,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:257,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:258,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:262,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:270,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - ' key'
    - ' rng'
    - pass
    - pbkdf_msec
    - pbkdf_iterations
    - cipher
    - pbkdf_hash
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::chrono::milliseconds
    - size_t*
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 273
    functionName: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 9
    functionsReached:
    - pbes2_encrypt_msec
    - BOTAN_UNUSED
    - std::string_view::empty
    - private_key_info
    - DER_Encoder
    - Encoding_Error
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> BER_encode_encrypted_pbkdf_msec(const Private_Key&
      key,\n                                                     RandomNumberGenerator&
      rng,\n                                                     std::string_view
      pass,\n                                                     std::chrono::milliseconds
      pbkdf_msec,\n                                                     size_t* pbkdf_iterations,\n
      \                                                    std::string_view cipher,\n
      \                                                    std::string_view pbkdf_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:285,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ' key'
    - ' rng'
    - pass
    - pbkdf_msec
    - pbkdf_iterations
    - cipher
    - pbkdf_hash
    argTypes:
    - Private_Key
    - RandomNumberGenerator
    - std::string_view
    - std::chrono::milliseconds
    - size_t*
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 8
    functionsReached:
    - Botan::PEM_Code::encode
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    linkageType: ''
    returnType: std::string
    signature: "std::string PEM_encode_encrypted_pbkdf_msec(const Private_Key& key,\n
      \                                           RandomNumberGenerator& rng,\n                                            std::string_view
      pass,\n                                            std::chrono::milliseconds
      pbkdf_msec,\n                                            size_t* pbkdf_iterations,\n
      \                                           std::string_view cipher,\n                                            std::string_view
      pbkdf_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::PKCS8_decode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:299,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:301,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:302,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: load_private_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' source'
    - ' get_pass'
    - is_encrypted
    argTypes:
    - DataSource
    - std::function<std::string()>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 91
    functionsReached:
    - std::string::empty
    - PKCS8_Exception
    - AlgorithmIdentifier::oid
    - Botan::PKCS8::PKCS8_decode
    - load_private_key
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> load_key(DataSource& source,\n                                      const
      std::function<std::string()>& get_pass,\n                                      bool
      is_encrypted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::PKCS8_decode
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:299,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:301,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:302,1
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:303,1
    - Dst: load_private_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ' source'
    - ' get_pass'
    - is_encrypted
    argTypes:
    - DataSource
    - std::function<std::string()>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 91
    functionsReached:
    - std::string::empty
    - PKCS8_Exception
    - AlgorithmIdentifier::oid
    - Botan::PKCS8::PKCS8_decode
    - load_private_key
    - fmt
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> load_key(DataSource& source,\n                                      const
      std::function<std::string()>& get_pass,\n                                      bool
      is_encrypted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' source'
    - ' get_pass'
    argTypes:
    - DataSource
    - std::function<std::string()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 92
    functionsReached:
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> load_key(DataSource& source, const std::function<std::string()>&
      get_pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - ' get_passphrase'
    argTypes:
    - std::span<const uint8_t>
    - std::function<std::string()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 93
    functionsReached:
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: "std::unique_ptr<Private_Key> load_key(std::span<const uint8_t> source,\n
      \                                     const std::function<std::string()>& get_passphrase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - pass
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 94
    functionsReached:
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> load_key(std::span<const uint8_t> source,
      std::string_view pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 95
    functionsReached:
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> load_key(std::span<const uint8_t> source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:338,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' source'
    - pass
    argTypes:
    - DataSource
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 96
    functionsReached:
    - std::string
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> load_key(DataSource& source, std::string_view
      pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_Exception
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:347,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.cpp:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - DataSource
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 351
    functionName: Botan::PKCS8::load_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.cpp
    functionUses: 97
    functionsReached:
    - PKCS8_Exception
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> load_key(DataSource& source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::PK_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encryptor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: ~PK_Encryptor()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PK_Encryptor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::PK_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encryptor(const PK_Encryptor&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::PK_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encryptor(PK_Encryptor&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::PK_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encryptor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: ~PK_Encryptor()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PK_Encryptor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::PK_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encryptor(const PK_Encryptor&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::PK_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encryptor(PK_Encryptor&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: ~PK_Decryptor()
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PK_Decryptor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: PK_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Decryptor(const PK_Decryptor&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: PK_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Decryptor(PK_Decryptor&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK_Signer
      Src: /src/botan/src/lib/pubkey/pubkey.h:164,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:186,1
    - Dst: signature
      Src: /src/botan/src/lib/pubkey/pubkey.h:187,1
    - Dst: sign_message
      Src: /src/botan/src/lib/pubkey/pubkey.h:197,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:197,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:197,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:204,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:217,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:217,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 264
    functionName: final
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 172
    functionsReached:
    - data
    - signature
    - sign_message
    - size
    - update
    - PK_Signer
    linkageType: ''
    returnType: PK_Signer
    signature: PK_Signer final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: PK_Signer
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Signer(const PK_Signer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:186,1
    - Dst: signature
      Src: /src/botan/src/lib/pubkey/pubkey.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - in
    - length
    - ' rng'
    argTypes:
    - uint8_t[]
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: sign_message
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 68
    functionsReached:
    - signature
    - update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign_message(const uint8_t in[], size_t length,
      RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sign_message
      Src: /src/botan/src/lib/pubkey/pubkey.h:197,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:197,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: sign_message
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 69
    functionsReached:
    - sign_message
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign_message(std::span<const uint8_t> in, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 369
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void update(uint8_t in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:217,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:217,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 370
    functionsReached:
    - std::span<const uint8_t>::size
    - update
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - Signature_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: set_output_format
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_output_format(Signature_Format format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK_Verifier
      Src: /src/botan/src/lib/pubkey/pubkey.h:280,1
    - Dst: verify_message
      Src: /src/botan/src/lib/pubkey/pubkey.h:325,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:325,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:325,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:325,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:325,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:333,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:348,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:348,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:348,1
    - Dst: check_signature
      Src: /src/botan/src/lib/pubkey/pubkey.h:371,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:371,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:371,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/pubkey.h:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 391
    functionName: final
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 172
    functionsReached:
    - PK_Verifier
    - data
    - size
    - BOTAN_DEPRECATED
    - verify_message
    - update
    - check_signature
    linkageType: ''
    returnType: PK_Verifier
    signature: PK_Verifier final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Verifier(const PK_Verifier&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_message
      Src: /src/botan/src/lib/pubkey/pubkey.h:325,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:325,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:325,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:325,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 326
    functionName: verify_message
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 64
    functionsReached:
    - verify_message
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: bool
    signature: bool verify_message(std::span<const uint8_t> msg, std::span<const uint8_t>
      sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 333
    functionName: update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 372
    functionsReached:
    - update
    linkageType: ''
    returnType: void
    signature: void update(uint8_t in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:348,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:348,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 348
    functionName: update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 373
    functionsReached:
    - std::span<const uint8_t>::size
    - update
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_signature
      Src: /src/botan/src/lib/pubkey/pubkey.h:371,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:371,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: check_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 48
    functionsReached:
    - std::span<const uint8_t>::data
    - check_signature
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: bool
    signature: bool check_signature(std::span<const uint8_t> sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/pubkey.h:405,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pubkey.h:436,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pubkey.h:450,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:450,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 482
    functionName: final
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 172
    functionsReached:
    - derive_key
    - data
    - PK_Key_Agreement
    - size
    linkageType: ''
    returnType: PK_Key_Agreement
    signature: PK_Key_Agreement final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: PK_Key_Agreement
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Key_Agreement(const PK_Key_Agreement&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pubkey.h:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key_len
    - peer_key
    - peer_key_len
    - salt
    - salt_len
    argTypes:
    - size_t
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 105
    functionsReached:
    - derive_key
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey derive_key(\n         size_t key_len, const uint8_t peer_key[],
      size_t peer_key_len, const uint8_t salt[], size_t salt_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pubkey.h:450,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:450,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key_len
    - peer_key
    - salt
    - salt_len
    argTypes:
    - size_t
    - std::span<const uint8_t>
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 451
    functionName: derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 106
    functionsReached:
    - derive_key
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey derive_key(size_t key_len,\n                              std::span<const
      uint8_t> peer_key,\n                              const uint8_t salt[],\n                              size_t
      salt_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 522
    functionName: PK_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PK_Encryptor_EME
    signature: PK_Encryptor_EME PK_Encryptor
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 506
    functionName: PK_Encryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Encryptor_EME(const PK_Encryptor_EME&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK_Decryptor_EME
      Src: /src/botan/src/lib/pubkey/pubkey.h:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 557
    functionName: PK_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached:
    - PK_Decryptor_EME
    linkageType: ''
    returnType: PK_Decryptor_EME
    signature: PK_Decryptor_EME PK_Decryptor
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 547
    functionName: PK_Decryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_Decryptor_EME(const PK_Decryptor_EME&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pubkey.h:565,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pubkey.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - encapsulated_shared_key
    - shared_key
    argTypes:
    - std::vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 565
    functionName: KEM_Encapsulation::KEM_Encapsulation
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void KEM_Encapsulation(std::vector<uint8_t> encapsulated_shared_key,
      secure_vector<uint8_t> shared_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 570
    functionName: '& encapsulated_shared_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & encapsulated_shared_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 575
    functionName: '& shared_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & shared_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pubkey.h:582,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/pubkey.h:582,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/pubkey.h:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' kem'
    argTypes:
    - KEM_Encapsulation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: KEM_Encapsulation::destructure
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 4
    functionsReached:
    - std::exchange
    - std::make_pair
    linkageType: ''
    returnType: std::pair<std::vector<uint8_t>, secure_vector<uint8_t>>
    signature: "std::pair<std::vector<uint8_t>, secure_vector<uint8_t>> destructure(\n
      \        KEM_Encapsulation&& kem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - encapsulated_size
    - shared_key_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 589
    functionName: KEM_Encapsulation::KEM_Encapsulation
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KEM_Encapsulation(size_t encapsulated_size, size_t shared_key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/pubkey.h:618,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:670,1
    - Dst: KEM_Encapsulation
      Src: /src/botan/src/lib/pubkey/pubkey.h:671,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pubkey.h:671,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pubkey.h:671,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:689,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:689,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:690,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:690,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:691,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/pubkey.h:710,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:717,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/pubkey.h:720,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:726,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:726,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:727,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:727,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 733
    functionName: final
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 172
    functionsReached:
    - resize
    - shared_key_length
    - std::move
    - KEM_Encapsulation
    - BOTAN_DEPRECATED
    - encapsulated_key_length
    - encrypt
    linkageType: ''
    returnType: PK_KEM_Encryptor
    signature: PK_KEM_Encryptor final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 626
    functionName: PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Encryptor(const PK_KEM_Encryptor&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:670,1
    - Dst: KEM_Encapsulation
      Src: /src/botan/src/lib/pubkey/pubkey.h:671,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pubkey.h:671,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pubkey.h:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 672
    functionName: encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 226
    functionsReached:
    - std::move
    - KEM_Encapsulation
    - encrypt
    linkageType: ''
    returnType: KEM_Encapsulation
    signature: "KEM_Encapsulation encrypt(RandomNumberGenerator& rng,\n                                size_t
      desired_shared_key_len = 32,\n                                std::span<const
      uint8_t> salt = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:689,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:689,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:690,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:690,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' out_encapsulated_key'
    - ' out_shared_key'
    - ' rng'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 692
    functionName: encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 227
    functionsReached:
    - resize
    - shared_key_length
    - encapsulated_key_length
    - encrypt
    linkageType: ''
    returnType: void
    signature: "void encrypt(secure_vector<uint8_t>& out_encapsulated_key,\n                   secure_vector<uint8_t>&
      out_shared_key,\n                   RandomNumberGenerator& rng,\n                   size_t
      desired_shared_key_len = 32,\n                   std::span<const uint8_t> salt
      = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' out_encapsulated_key'
    - ' out_shared_key'
    - desired_shared_key_len
    - ' rng'
    - salt
    - salt_len
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - size_t
    - RandomNumberGenerator
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 718
    functionName: encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 228
    functionsReached:
    - encrypt
    linkageType: ''
    returnType: void
    signature: "void encrypt(secure_vector<uint8_t>& out_encapsulated_key,\n                   secure_vector<uint8_t>&
      out_shared_key,\n                   size_t desired_shared_key_len,\n                   RandomNumberGenerator&
      rng,\n                   const uint8_t salt[],\n                   size_t salt_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:726,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:726,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:727,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:727,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' out_encapsulated_key'
    - ' out_shared_key'
    - desired_shared_key_len
    - ' rng'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 729
    functionName: encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 229
    functionsReached:
    - resize
    - shared_key_length
    - encapsulated_key_length
    - encrypt
    linkageType: ''
    returnType: void
    signature: "void encrypt(secure_vector<uint8_t>& out_encapsulated_key,\n                   secure_vector<uint8_t>&
      out_shared_key,\n                   size_t desired_shared_key_len,\n                   RandomNumberGenerator&
      rng,\n                   std::span<const uint8_t> salt = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK_KEM_Decryptor
      Src: /src/botan/src/lib/pubkey/pubkey.h:747,1
    - Dst: decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:815,1
    - Dst: decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 840
    functionName: final
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 172
    functionsReached:
    - PK_KEM_Decryptor
    - decrypt
    linkageType: ''
    returnType: PK_KEM_Decryptor
    signature: PK_KEM_Decryptor final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 753
    functionName: PK_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK_KEM_Decryptor(const PK_KEM_Decryptor&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - encap_key
    - encap_key_len
    - desired_shared_key_len
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 817
    functionName: decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 196
    functionsReached:
    - decrypt
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> decrypt(const uint8_t encap_key[],\n                                     size_t
      encap_key_len,\n                                     size_t desired_shared_key_len,\n
      \                                    const uint8_t salt[] = nullptr,\n                                     size_t
      salt_len = 0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encap_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 836
    functionName: decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 197
    functionsReached:
    - decrypt
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> decrypt(std::span<const uint8_t> encap_key,\n
      \                                    size_t desired_shared_key_len = 32,\n                                     std::span<const
      uint8_t> salt = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: Botan::Decoding_Error
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: PKCS8_Exception
    signature: PKCS8_Exception Decoding_Error
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::PKCS8::BER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.h
    functionUses: 16
    functionsReached:
    - private_key_info
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> BER_encode(const Private_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.h:237,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: Botan::PKCS8::copy_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.h
    functionUses: 0
    functionsReached:
    - private_key_info
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> copy_key(const Private_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::PKCS8::BER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.h
    functionUses: 16
    functionsReached:
    - private_key_info
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> BER_encode(const Private_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.h:237,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: Botan::PKCS8::copy_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.h
    functionUses: 0
    functionsReached:
    - private_key_info
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> copy_key(const Private_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: Botan::Decoding_Error
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: PKCS8_Exception
    signature: PKCS8_Exception Decoding_Error
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::PKCS8::BER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.h
    functionUses: 16
    functionsReached:
    - private_key_info
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> BER_encode(const Private_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.h:237,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: Botan::PKCS8::copy_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.h
    functionUses: 0
    functionsReached:
    - private_key_info
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> copy_key(const Private_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::PKCS8::BER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.h
    functionUses: 16
    functionsReached:
    - private_key_info
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> BER_encode(const Private_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key_info
      Src: /src/botan/src/lib/pubkey/pkcs8.h:237,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/lib/pubkey/pkcs8.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: Botan::PKCS8::copy_key
    functionSourceFile: /src/botan/src/lib/pubkey/pkcs8.h
    functionUses: 0
    functionsReached:
    - private_key_info
    - Botan::PKCS8::load_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> copy_key(const Private_Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::ecp_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ecp_work_factor(size_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:24,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:26,1
    - Dst: std::pow
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:29,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - log2_k
    argTypes:
    - size_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: Botan::nfs_workfactor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 0
    functionsReached:
    - std::pow
    - static_cast<size_t>
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: size_t
    signature: size_t nfs_workfactor(size_t bits, double log2_k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:24,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:26,1
    - Dst: std::pow
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:29,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - log2_k
    argTypes:
    - size_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: Botan::nfs_workfactor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 0
    functionsReached:
    - std::pow
    - static_cast<size_t>
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: size_t
    signature: size_t nfs_workfactor(size_t bits, double log2_k)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::nfs_workfactor
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan::if_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 8
    functionsReached:
    - Botan::nfs_workfactor
    linkageType: ''
    returnType: size_t
    signature: size_t if_work_factor(size_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::dl_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 4
    functionsReached:
    - Botan::if_work_factor
    linkageType: ''
    returnType: size_t
    signature: size_t dl_work_factor(size_t bits)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - p_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 101
    functionName: Botan::dl_exponent_size
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 12
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t dl_exponent_size(size_t p_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::ecp_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ecp_work_factor(size_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:24,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:26,1
    - Dst: std::pow
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:29,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - log2_k
    argTypes:
    - size_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: Botan::nfs_workfactor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 1
    functionsReached:
    - std::pow
    - static_cast<size_t>
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: size_t
    signature: size_t nfs_workfactor(size_t bits, double log2_k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:24,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:26,1
    - Dst: std::pow
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:29,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - log2_k
    argTypes:
    - size_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: Botan::nfs_workfactor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 1
    functionsReached:
    - std::pow
    - static_cast<size_t>
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: size_t
    signature: size_t nfs_workfactor(size_t bits, double log2_k)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::nfs_workfactor
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan::if_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 9
    functionsReached:
    - Botan::nfs_workfactor
    linkageType: ''
    returnType: size_t
    signature: size_t if_work_factor(size_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::dl_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 4
    functionsReached:
    - Botan::if_work_factor
    linkageType: ''
    returnType: size_t
    signature: size_t dl_work_factor(size_t bits)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - p_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 101
    functionName: Botan::dl_exponent_size
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 12
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t dl_exponent_size(size_t p_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: Botan::PK_Ops::Encryption
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: ~Encryption()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Encryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: Botan::PK_Ops::Decryption
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Decryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: ~Decryption()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Decryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 97
    functionName: Botan::PK_Ops::Verification
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Verification
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: ~Verification()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Verification()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 134
    functionName: Botan::PK_Ops::Signature
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Signature
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: ~Signature()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: Botan::PK_Ops::Key_Agreement
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Key_Agreement
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: ~Key_Agreement()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Agreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 166
    functionName: Botan::PK_Ops::KEM_Encryption
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API KEM_Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: ~KEM_Encryption()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~KEM_Encryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: Botan::PK_Ops::KEM_Decryption
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API KEM_Decryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: ~KEM_Decryption()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~KEM_Decryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: Botan::PK_Ops::Encryption
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: ~Encryption()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Encryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: Botan::PK_Ops::Decryption
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Decryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: ~Decryption()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Decryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 97
    functionName: Botan::PK_Ops::Verification
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Verification
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: ~Verification()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Verification()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 134
    functionName: Botan::PK_Ops::Signature
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Signature
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: ~Signature()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: Botan::PK_Ops::Key_Agreement
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Key_Agreement
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: ~Key_Agreement()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Key_Agreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 166
    functionName: Botan::PK_Ops::KEM_Encryption
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API KEM_Encryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: ~KEM_Encryption()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~KEM_Encryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: Botan::PK_Ops::KEM_Decryption
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API KEM_Decryption
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: ~KEM_Decryption()
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~KEM_Decryption()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: StrongSpan<const SphincsContext>::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:43,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:47,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: StrongSpan<const SphincsContext>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:49,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:58,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:62,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - msg
    - ' params'
    - context
    argTypes:
    - SphincsInputMessage
    - Sphincs_Parameters
    - StrongSpan<const SphincsContext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 63
    functionName: Botan::prepare_message
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::concat
    - std::move
    - Botan::store_be
    - BOTAN_ARG_CHECK
    - StrongSpan<const SphincsContext>::empty
    - Internal_Error
    - is_slh_dsa
    - Botan::checked_cast_to
    - StrongSpan<const SphincsContext>::size
    linkageType: ''
    returnType: SphincsMessageInternal
    signature: "SphincsMessageInternal prepare_message(SphincsInputMessage msg,\n
      \                                      const Sphincs_Parameters& params,\n                                       StrongSpan<const
      SphincsContext> context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: StrongSpan<const SphincsContext>::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:43,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:47,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: StrongSpan<const SphincsContext>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:49,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:58,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:62,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - msg
    - ' params'
    - context
    argTypes:
    - SphincsInputMessage
    - Sphincs_Parameters
    - StrongSpan<const SphincsContext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 63
    functionName: Botan::prepare_message
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::concat
    - std::move
    - Botan::store_be
    - BOTAN_ARG_CHECK
    - StrongSpan<const SphincsContext>::empty
    - Internal_Error
    - is_slh_dsa
    - Botan::checked_cast_to
    - StrongSpan<const SphincsContext>::size
    linkageType: ''
    returnType: SphincsMessageInternal
    signature: "SphincsMessageInternal prepare_message(SphincsInputMessage msg,\n
      \                                      const Sphincs_Parameters& params,\n                                       StrongSpan<const
      SphincsContext> context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:71,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - params
    - public_seed
    - sphincs_root
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    - SphincsTreeNode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: Botan::SphincsPlus_PublicKeyInternal::SphincsPlus_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_PublicKeyInternal(Sphincs_Parameters params,\n                                    SphincsPublicSeed
      public_seed,\n                                    SphincsTreeNode sphincs_root)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:74,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:74,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:75,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:79,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:79,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:80,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:80,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:82,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - params
    - key_bits
    argTypes:
    - Sphincs_Parameters
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: Botan::SphincsPlus_PublicKeyInternal::SphincsPlus_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Sphincs_Parameters::n
    - BufferSlicer::copy
    - Decoding_Error
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - public_key_bytes
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKeyInternal(Sphincs_Parameters params, std::span<const
      uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::SphincsPlus_PublicKeyInternal::key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - concat
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: '& seed() const'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SphincsPublicSeed
    signature: SphincsPublicSeed & seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: '& root() const'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SphincsTreeNode
    signature: SphincsTreeNode & root() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: '& parameters() const'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Sphincs_Parameters
    signature: Sphincs_Parameters & parameters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:102,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - secret_seed
    - prf
    argTypes:
    - SphincsSecretSeed
    - SphincsSecretPRF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: Botan::SphincsPlus_PrivateKeyInternal::SphincsPlus_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKeyInternal(SphincsSecretSeed secret_seed,
      SphincsSecretPRF prf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:105,1
    - Dst: private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:105,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:105,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:106,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:110,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:110,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:111,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:111,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:113,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' params'
    - key_bits
    argTypes:
    - Sphincs_Parameters
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: Botan::SphincsPlus_PrivateKeyInternal::SphincsPlus_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - n
    - BufferSlicer::copy
    - Decoding_Error
    - private_key_bytes
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - public_key_bytes
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKeyInternal(const Sphincs_Parameters& params,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: '& seed() const'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SphincsSecretSeed
    signature: SphincsSecretSeed & seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& prf() const'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SphincsSecretPRF
    signature: SphincsSecretPRF & prf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan::SphincsPlus_PrivateKeyInternal::key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - concat
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - pub_key
    - type
    - hash
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: Botan::SphincsPlus_PublicKey::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_PublicKey::SphincsPlus_PublicKey(std::span<const
      uint8_t> pub_key,\n                                             Sphincs_Parameter_Set
      type,\n                                             Sphincs_Hash_Type hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<SphincsPlus_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:133,1
    - Dst: Sphincs_Parameters::is_available
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:134,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pub_key
    - params
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: Botan::SphincsPlus_PublicKey::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    - std::make_shared<SphincsPlus_PublicKeyInternal>
    - Sphincs_Parameters::is_available
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKey::SphincsPlus_PublicKey(std::span<const uint8_t>
      pub_key, Sphincs_Parameters params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:140,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: Botan::SphincsPlus_PublicKey::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - oid
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKey::SphincsPlus_PublicKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: SphincsPlus_PublicKey::~SphincsPlus_PublicKey()
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKey::~SphincsPlus_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan::SphincsPlus_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: size_t
    signature: size_t SphincsPlus_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Botan::SphincsPlus_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: std::string
    signature: std::string SphincsPlus_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Botan::SphincsPlus_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: size_t
    signature: size_t SphincsPlus_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: Botan::SphincsPlus_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier SphincsPlus_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: Botan::SphincsPlus_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: OID
    signature: OID SphincsPlus_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: Botan::SphincsPlus_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SphincsPlus_PublicKey::check_key(RandomNumberGenerator& /*rng*/,
      bool /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::SphincsPlus_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SphincsPlus_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SphincsPlus_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: Botan::SphincsPlus_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SphincsPlus_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SphincsPlus_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SphincsPlus_PrivateKey>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:180,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: Botan::SphincsPlus_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SphincsPlus_PrivateKey>
    - parameters
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> SphincsPlus_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:188,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:191,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:191,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:193,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pub_key
    argTypes:
    - std::shared_ptr<SphincsPlus_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: Botan::SphincsPlus_Verification_Operation::SphincsPlus_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - parameters
    - seed
    - BOTAN_ARG_CHECK
    - size
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_Verification_Operation(std::shared_ptr<SphincsPlus_PublicKeyInternal>
      pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: Botan::SphincsPlus_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - get
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_message
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: Botan::SphincsPlus_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    - parameters
    - std::exchange
    - prepare_message
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msg_hash_function_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan::SphincsPlus_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - msg_hash_function_name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:220,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:221,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:221,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:227,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:227,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:228,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:228,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:232,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: fors_public_key_from_signature
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:234,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:237,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:237,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:238,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:238,1
    - Dst: ht_verify
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:239,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' msg'
    - sig
    argTypes:
    - SphincsMessageInternal
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 240
    functionName: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 1
    functionsReached:
    - n
    - ht_verify
    - Sphincs_Address::set_tree_address
    - fors_public_key_from_signature
    - sphincs_signature_bytes
    - fors_signature_bytes
    - ht_signature_bytes
    - parameters
    - root
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - H_msg
    - std::span<const uint8_t>::size
    - BufferSlicer::take
    linkageType: ''
    returnType: bool
    signature: bool slh_verify_internal(const SphincsMessageInternal& msg, std::span<const
      uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:188,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:191,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:191,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:193,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pub_key
    argTypes:
    - std::shared_ptr<SphincsPlus_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: Botan::SphincsPlus_Verification_Operation::SphincsPlus_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - parameters
    - seed
    - BOTAN_ARG_CHECK
    - size
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_Verification_Operation(std::shared_ptr<SphincsPlus_PublicKeyInternal>
      pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: Botan::SphincsPlus_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - get
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_message
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: Botan::SphincsPlus_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    - parameters
    - std::exchange
    - prepare_message
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msg_hash_function_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan::SphincsPlus_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - msg_hash_function_name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:220,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:221,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:221,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:227,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:227,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:228,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:228,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:232,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: fors_public_key_from_signature
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:234,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:237,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:237,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:238,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:238,1
    - Dst: ht_verify
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:239,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' msg'
    - sig
    argTypes:
    - SphincsMessageInternal
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 240
    functionName: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 2
    functionsReached:
    - n
    - ht_verify
    - Sphincs_Address::set_tree_address
    - fors_public_key_from_signature
    - sphincs_signature_bytes
    - fors_signature_bytes
    - ht_signature_bytes
    - parameters
    - root
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - H_msg
    - std::span<const uint8_t>::size
    - BufferSlicer::take
    linkageType: ''
    returnType: bool
    signature: bool slh_verify_internal(const SphincsMessageInternal& msg, std::span<const
      uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:252,1
    - Dst: std::make_unique<SphincsPlus_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:253,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:255,1
    - Dst: Botan::SphincsPlus_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: Botan::SphincsPlus_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<SphincsPlus_Verification_Operation>
    - Provider_Not_Found
    - Botan::SphincsPlus_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> SphincsPlus_PublicKey::create_verification_op(std::string_view
      /*params*/,\n                                                                                    std::string_view
      provider) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:260,1
    - Dst: Botan::SphincsPlus_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:261,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:262,1
    - Dst: std::make_unique<SphincsPlus_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:264,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:266,1
    - Dst: Botan::SphincsPlus_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: Botan::SphincsPlus_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Botan::SphincsPlus_PublicKey::algo_name
    - std::make_unique<SphincsPlus_Verification_Operation>
    - Botan::SphincsPlus_PublicKey::algorithm_identifier
    - Provider_Not_Found
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> SphincsPlus_PublicKey::create_x509_verification_op(\n
      \  const AlgorithmIdentifier& signature_algorithm, std::string_view provider)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: Botan::SphincsPlus_PublicKey::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SphincsPlus_PublicKey::supports_operation(PublicKeyOperation op)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:282,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:282,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:283,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    - Dst: auto::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' oid'
    - key_bits
    argTypes:
    - OID
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: Botan::slice_off_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bytes
    - std::span<const uint8_t>::subspan
    - Botan::Decoding_Error
    - auto::public_key_bytes
    - Botan::Sphincs_Parameters::create
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> slice_off_public_key(const OID& oid, std::span<const
      uint8_t> key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:282,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:282,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:283,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    - Dst: auto::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' oid'
    - key_bits
    argTypes:
    - OID
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: Botan::slice_off_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bytes
    - std::span<const uint8_t>::subspan
    - Botan::Decoding_Error
    - auto::public_key_bytes
    - Botan::Sphincs_Parameters::create
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> slice_off_public_key(const OID& oid, std::span<const
      uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - private_key
    - type
    - hash
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_PrivateKey::SphincsPlus_PrivateKey(std::span<const
      uint8_t> private_key,\n                                               Sphincs_Parameter_Set
      type,\n                                               Sphincs_Hash_Type hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:297,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - oid
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKey::SphincsPlus_PrivateKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slice_off_public_key
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:300,1
    - Dst: Sphincs_Parameters::object_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:300,1
    - Dst: Sphincs_Parameters::is_available
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:301,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:302,1
    - Dst: Sphincs_Parameters::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:305,1
    - Dst: Sphincs_Parameters::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:305,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:306,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:306,1
    - Dst: std::make_shared<SphincsPlus_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:308,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - private_key
    - params
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Sphincs_Parameters::private_key_bytes
    - Sphincs_Parameters::public_key_bytes
    - Sphincs_Parameters::object_identifier
    - std::make_shared<SphincsPlus_PrivateKeyInternal>
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - slice_off_public_key
    - Sphincs_Parameters::is_available
    - BOTAN_ASSERT_NOMSG
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKey::SphincsPlus_PrivateKey(std::span<const
      uint8_t> private_key, Sphincs_Parameters params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - type
    - hash
    argTypes:
    - RandomNumberGenerator
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_PrivateKey::SphincsPlus_PrivateKey(RandomNumberGenerator&
      rng,\n                                               Sphincs_Parameter_Set type,\n
      \                                              Sphincs_Hash_Type hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Sphincs_Parameters::is_available
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:318,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:319,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:321,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:321,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:322,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:322,1
    - Dst: std::make_shared<SphincsPlus_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:324,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:324,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:324,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:326,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:326,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:327,1
    - Dst: xmss_gen_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:328,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:328,1
    - Dst: std::make_shared<SphincsPlus_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:330,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:330,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' rng'
    - params
    argTypes:
    - RandomNumberGenerator
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 331
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Sphincs_Parameters::n
    - random_vec
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - xmss_gen_root
    - seed
    - std::make_shared<SphincsPlus_PrivateKeyInternal>
    - Sphincs_Parameters::is_available
    - Not_Implemented
    - std::make_shared<SphincsPlus_PublicKeyInternal>
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKey::SphincsPlus_PrivateKey(RandomNumberGenerator&
      rng, Sphincs_Parameters params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 333
    functionName: SphincsPlus_PrivateKey::~SphincsPlus_PrivateKey()
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKey::~SphincsPlus_PrivateKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:336,1
    - Dst: key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:336,1
    - Dst: key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: Botan::SphincsPlus_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 4
    functionsReached:
    - concat
    - key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> SphincsPlus_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SphincsPlus_PrivateKey::private_key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: Botan::SphincsPlus_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SphincsPlus_PrivateKey::private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> SphincsPlus_PrivateKey::raw_private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SphincsPlus_PublicKey>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: Botan::SphincsPlus_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<SphincsPlus_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> SphincsPlus_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:354,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:355,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:359,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:359,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:360,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - private_key
    - public_key
    - randomized
    argTypes:
    - std::shared_ptr<SphincsPlus_PrivateKeyInternal>
    - std::shared_ptr<SphincsPlus_PublicKeyInternal>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: Botan::SphincsPlus_Signature_Operation::SphincsPlus_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - parameters
    - seed
    - BOTAN_ARG_CHECK
    - size
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_Signature_Operation(std::shared_ptr<SphincsPlus_PrivateKeyInternal>
      private_key,\n                                      std::shared_ptr<SphincsPlus_PublicKeyInternal>
      public_key,\n                                      bool randomized)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: Botan::SphincsPlus_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - get
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:372,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:372,1
    - Dst: prepare_message
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: Botan::SphincsPlus_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - std::exchange
    - Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    - parameters
    - prepare_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: Botan::SphincsPlus_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: Botan::SphincsPlus_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msg_hash_function_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    functionName: Botan::SphincsPlus_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - msg_hash_function_name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:393,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: StrongSpan<const SphincsOptionalRandomness>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:401,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:401,1
    - Dst: PRF_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:405,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:405,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:409,1
    - Dst: fors_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:412,1
    - Dst: ht_sign
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:420,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:426,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' message'
    - addrnd
    argTypes:
    - SphincsMessageInternal
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 428
    functionName: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 1
    functionsReached:
    - n
    - parameters
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
    - H_msg
    - Sphincs_Address::set_tree_address
    - sphincs_signature_bytes
    - fors_signature_bytes
    - prf
    - PRF_msg
    - StrongSpan<const SphincsOptionalRandomness>
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - ht_signature_bytes
    - root
    - seed
    - fors_sign_and_pkgen
    - ht_sign
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
    - BufferStuffer::next
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> slh_sign_internal(const SphincsMessageInternal&
      message,\n                                             std::optional<StrongSpan<const
      SphincsOptionalRandomness>> addrnd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:354,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:355,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:359,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:359,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:360,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - private_key
    - public_key
    - randomized
    argTypes:
    - std::shared_ptr<SphincsPlus_PrivateKeyInternal>
    - std::shared_ptr<SphincsPlus_PublicKeyInternal>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: Botan::SphincsPlus_Signature_Operation::SphincsPlus_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - parameters
    - seed
    - BOTAN_ARG_CHECK
    - size
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_Signature_Operation(std::shared_ptr<SphincsPlus_PrivateKeyInternal>
      private_key,\n                                      std::shared_ptr<SphincsPlus_PublicKeyInternal>
      public_key,\n                                      bool randomized)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: Botan::SphincsPlus_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - get
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:372,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:372,1
    - Dst: prepare_message
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: Botan::SphincsPlus_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - std::exchange
    - Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    - parameters
    - prepare_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: Botan::SphincsPlus_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: Botan::SphincsPlus_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msg_hash_function_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    functionName: Botan::SphincsPlus_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - msg_hash_function_name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:393,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: StrongSpan<const SphincsOptionalRandomness>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:401,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:401,1
    - Dst: PRF_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:405,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:405,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:409,1
    - Dst: fors_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:412,1
    - Dst: ht_sign
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:420,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:426,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' message'
    - addrnd
    argTypes:
    - SphincsMessageInternal
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 428
    functionName: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 2
    functionsReached:
    - n
    - parameters
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
    - H_msg
    - Sphincs_Address::set_tree_address
    - sphincs_signature_bytes
    - fors_signature_bytes
    - prf
    - PRF_msg
    - StrongSpan<const SphincsOptionalRandomness>
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - ht_signature_bytes
    - root
    - seed
    - fors_sign_and_pkgen
    - ht_sign
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
    - BufferStuffer::next
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> slh_sign_internal(const SphincsMessageInternal&
      message,\n                                             std::optional<StrongSpan<const
      SphincsOptionalRandomness>> addrnd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:443,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:444,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:444,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:450,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:451,1
    - Dst: std::make_unique<SphincsPlus_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:452,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:454,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:454,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 455
    functionName: Botan::SphincsPlus_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - BOTAN_UNUSED
    - Provider_Not_Found
    - std::string_view::empty
    - BOTAN_ARG_CHECK
    - std::make_unique<SphincsPlus_Signature_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> SphincsPlus_PrivateKey::create_signature_op(RandomNumberGenerator&
      rng,\n                                                                               std::string_view
      params,\n                                                                               std::string_view
      provider) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: StrongSpan<const SphincsContext>::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:43,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:47,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: StrongSpan<const SphincsContext>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:49,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:58,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:62,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - msg
    - ' params'
    - context
    argTypes:
    - SphincsInputMessage
    - Sphincs_Parameters
    - StrongSpan<const SphincsContext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 63
    functionName: Botan::prepare_message
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::concat
    - std::move
    - Botan::store_be
    - BOTAN_ARG_CHECK
    - StrongSpan<const SphincsContext>::empty
    - Internal_Error
    - is_slh_dsa
    - Botan::checked_cast_to
    - StrongSpan<const SphincsContext>::size
    linkageType: ''
    returnType: SphincsMessageInternal
    signature: "SphincsMessageInternal prepare_message(SphincsInputMessage msg,\n
      \                                      const Sphincs_Parameters& params,\n                                       StrongSpan<const
      SphincsContext> context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: StrongSpan<const SphincsContext>::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:43,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:47,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: StrongSpan<const SphincsContext>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:49,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:58,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:62,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - msg
    - ' params'
    - context
    argTypes:
    - SphincsInputMessage
    - Sphincs_Parameters
    - StrongSpan<const SphincsContext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 63
    functionName: Botan::prepare_message
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::concat
    - std::move
    - Botan::store_be
    - BOTAN_ARG_CHECK
    - StrongSpan<const SphincsContext>::empty
    - Internal_Error
    - is_slh_dsa
    - Botan::checked_cast_to
    - StrongSpan<const SphincsContext>::size
    linkageType: ''
    returnType: SphincsMessageInternal
    signature: "SphincsMessageInternal prepare_message(SphincsInputMessage msg,\n
      \                                      const Sphincs_Parameters& params,\n                                       StrongSpan<const
      SphincsContext> context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:71,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - params
    - public_seed
    - sphincs_root
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    - SphincsTreeNode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: Botan::SphincsPlus_PublicKeyInternal::SphincsPlus_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_PublicKeyInternal(Sphincs_Parameters params,\n                                    SphincsPublicSeed
      public_seed,\n                                    SphincsTreeNode sphincs_root)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:74,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:74,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:75,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:79,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:79,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:80,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:80,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:82,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - params
    - key_bits
    argTypes:
    - Sphincs_Parameters
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: Botan::SphincsPlus_PublicKeyInternal::SphincsPlus_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Sphincs_Parameters::n
    - BufferSlicer::copy
    - Decoding_Error
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - public_key_bytes
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKeyInternal(Sphincs_Parameters params, std::span<const
      uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::SphincsPlus_PublicKeyInternal::key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - concat
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: '& seed() const'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SphincsPublicSeed
    signature: SphincsPublicSeed & seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: '& root() const'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SphincsTreeNode
    signature: SphincsTreeNode & root() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: '& parameters() const'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Sphincs_Parameters
    signature: Sphincs_Parameters & parameters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:102,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - secret_seed
    - prf
    argTypes:
    - SphincsSecretSeed
    - SphincsSecretPRF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: Botan::SphincsPlus_PrivateKeyInternal::SphincsPlus_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKeyInternal(SphincsSecretSeed secret_seed,
      SphincsSecretPRF prf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:105,1
    - Dst: private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:105,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:105,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:106,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:110,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:110,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:111,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:111,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:113,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' params'
    - key_bits
    argTypes:
    - Sphincs_Parameters
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: Botan::SphincsPlus_PrivateKeyInternal::SphincsPlus_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - n
    - BufferSlicer::copy
    - Decoding_Error
    - private_key_bytes
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - public_key_bytes
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKeyInternal(const Sphincs_Parameters& params,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: '& seed() const'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SphincsSecretSeed
    signature: SphincsSecretSeed & seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& prf() const'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SphincsSecretPRF
    signature: SphincsSecretPRF & prf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan::SphincsPlus_PrivateKeyInternal::key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - concat
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - pub_key
    - type
    - hash
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: Botan::SphincsPlus_PublicKey::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_PublicKey::SphincsPlus_PublicKey(std::span<const
      uint8_t> pub_key,\n                                             Sphincs_Parameter_Set
      type,\n                                             Sphincs_Hash_Type hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<SphincsPlus_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:133,1
    - Dst: Sphincs_Parameters::is_available
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:134,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pub_key
    - params
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: Botan::SphincsPlus_PublicKey::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    - std::make_shared<SphincsPlus_PublicKeyInternal>
    - Sphincs_Parameters::is_available
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKey::SphincsPlus_PublicKey(std::span<const uint8_t>
      pub_key, Sphincs_Parameters params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:140,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: Botan::SphincsPlus_PublicKey::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - oid
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKey::SphincsPlus_PublicKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: SphincsPlus_PublicKey::~SphincsPlus_PublicKey()
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKey::~SphincsPlus_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan::SphincsPlus_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: size_t
    signature: size_t SphincsPlus_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Botan::SphincsPlus_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 2
    functionsReached:
    - parameters
    linkageType: ''
    returnType: std::string
    signature: std::string SphincsPlus_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Botan::SphincsPlus_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: size_t
    signature: size_t SphincsPlus_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: Botan::SphincsPlus_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 1
    functionsReached:
    - parameters
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier SphincsPlus_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: Botan::SphincsPlus_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: OID
    signature: OID SphincsPlus_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: Botan::SphincsPlus_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SphincsPlus_PublicKey::check_key(RandomNumberGenerator& /*rng*/,
      bool /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::SphincsPlus_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 1
    functionsReached:
    - key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SphincsPlus_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SphincsPlus_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: Botan::SphincsPlus_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SphincsPlus_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SphincsPlus_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SphincsPlus_PrivateKey>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:180,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: Botan::SphincsPlus_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SphincsPlus_PrivateKey>
    - parameters
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> SphincsPlus_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:188,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:191,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:191,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:193,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pub_key
    argTypes:
    - std::shared_ptr<SphincsPlus_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: Botan::SphincsPlus_Verification_Operation::SphincsPlus_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - parameters
    - seed
    - BOTAN_ARG_CHECK
    - size
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_Verification_Operation(std::shared_ptr<SphincsPlus_PublicKeyInternal>
      pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: Botan::SphincsPlus_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - get
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_message
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: Botan::SphincsPlus_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    - parameters
    - std::exchange
    - prepare_message
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msg_hash_function_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan::SphincsPlus_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - msg_hash_function_name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:220,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:221,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:221,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:227,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:227,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:228,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:228,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:232,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: fors_public_key_from_signature
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:234,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:237,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:237,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:238,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:238,1
    - Dst: ht_verify
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:239,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' msg'
    - sig
    argTypes:
    - SphincsMessageInternal
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 240
    functionName: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 3
    functionsReached:
    - n
    - ht_verify
    - Sphincs_Address::set_tree_address
    - fors_public_key_from_signature
    - sphincs_signature_bytes
    - fors_signature_bytes
    - ht_signature_bytes
    - parameters
    - root
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - H_msg
    - std::span<const uint8_t>::size
    - BufferSlicer::take
    linkageType: ''
    returnType: bool
    signature: bool slh_verify_internal(const SphincsMessageInternal& msg, std::span<const
      uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:188,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:191,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:191,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:193,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pub_key
    argTypes:
    - std::shared_ptr<SphincsPlus_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: Botan::SphincsPlus_Verification_Operation::SphincsPlus_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - parameters
    - seed
    - BOTAN_ARG_CHECK
    - size
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_Verification_Operation(std::shared_ptr<SphincsPlus_PublicKeyInternal>
      pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: Botan::SphincsPlus_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - get
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_message
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:211,1
    - Dst: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: Botan::SphincsPlus_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    - parameters
    - std::exchange
    - prepare_message
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msg_hash_function_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan::SphincsPlus_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - msg_hash_function_name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:220,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:221,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:221,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:227,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:227,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:228,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:228,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:232,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: fors_public_key_from_signature
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:234,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:237,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:237,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:238,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:238,1
    - Dst: ht_verify
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:239,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' msg'
    - sig
    argTypes:
    - SphincsMessageInternal
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 240
    functionName: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 4
    functionsReached:
    - n
    - ht_verify
    - Sphincs_Address::set_tree_address
    - fors_public_key_from_signature
    - sphincs_signature_bytes
    - fors_signature_bytes
    - ht_signature_bytes
    - parameters
    - root
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - H_msg
    - std::span<const uint8_t>::size
    - BufferSlicer::take
    linkageType: ''
    returnType: bool
    signature: bool slh_verify_internal(const SphincsMessageInternal& msg, std::span<const
      uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:252,1
    - Dst: std::make_unique<SphincsPlus_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:253,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:255,1
    - Dst: Botan::SphincsPlus_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: Botan::SphincsPlus_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<SphincsPlus_Verification_Operation>
    - Provider_Not_Found
    - Botan::SphincsPlus_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> SphincsPlus_PublicKey::create_verification_op(std::string_view
      /*params*/,\n                                                                                    std::string_view
      provider) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:260,1
    - Dst: Botan::SphincsPlus_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:261,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:262,1
    - Dst: std::make_unique<SphincsPlus_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:264,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:266,1
    - Dst: Botan::SphincsPlus_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: Botan::SphincsPlus_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Botan::SphincsPlus_PublicKey::algo_name
    - std::make_unique<SphincsPlus_Verification_Operation>
    - Botan::SphincsPlus_PublicKey::algorithm_identifier
    - Provider_Not_Found
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> SphincsPlus_PublicKey::create_x509_verification_op(\n
      \  const AlgorithmIdentifier& signature_algorithm, std::string_view provider)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: Botan::SphincsPlus_PublicKey::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SphincsPlus_PublicKey::supports_operation(PublicKeyOperation op)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:282,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:282,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:283,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    - Dst: auto::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' oid'
    - key_bits
    argTypes:
    - OID
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: Botan::slice_off_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bytes
    - std::span<const uint8_t>::subspan
    - Botan::Decoding_Error
    - auto::public_key_bytes
    - Botan::Sphincs_Parameters::create
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> slice_off_public_key(const OID& oid, std::span<const
      uint8_t> key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:282,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:282,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:283,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    - Dst: auto::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' oid'
    - key_bits
    argTypes:
    - OID
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: Botan::slice_off_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bytes
    - std::span<const uint8_t>::subspan
    - Botan::Decoding_Error
    - auto::public_key_bytes
    - Botan::Sphincs_Parameters::create
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> slice_off_public_key(const OID& oid, std::span<const
      uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - private_key
    - type
    - hash
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_PrivateKey::SphincsPlus_PrivateKey(std::span<const
      uint8_t> private_key,\n                                               Sphincs_Parameter_Set
      type,\n                                               Sphincs_Hash_Type hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:297,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - oid
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKey::SphincsPlus_PrivateKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slice_off_public_key
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:300,1
    - Dst: Sphincs_Parameters::object_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:300,1
    - Dst: Sphincs_Parameters::is_available
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:301,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:302,1
    - Dst: Sphincs_Parameters::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:305,1
    - Dst: Sphincs_Parameters::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:305,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:306,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:306,1
    - Dst: std::make_shared<SphincsPlus_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:308,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - private_key
    - params
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Sphincs_Parameters::private_key_bytes
    - Sphincs_Parameters::public_key_bytes
    - Sphincs_Parameters::object_identifier
    - std::make_shared<SphincsPlus_PrivateKeyInternal>
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - slice_off_public_key
    - Sphincs_Parameters::is_available
    - BOTAN_ASSERT_NOMSG
    - Not_Implemented
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKey::SphincsPlus_PrivateKey(std::span<const
      uint8_t> private_key, Sphincs_Parameters params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - type
    - hash
    argTypes:
    - RandomNumberGenerator
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_PrivateKey::SphincsPlus_PrivateKey(RandomNumberGenerator&
      rng,\n                                               Sphincs_Parameter_Set type,\n
      \                                              Sphincs_Hash_Type hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Sphincs_Parameters::is_available
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:318,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:319,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:321,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:321,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:322,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:322,1
    - Dst: std::make_shared<SphincsPlus_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:324,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:324,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:324,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:326,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:326,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:327,1
    - Dst: xmss_gen_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:328,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:328,1
    - Dst: std::make_shared<SphincsPlus_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:330,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:330,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' rng'
    - params
    argTypes:
    - RandomNumberGenerator
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 331
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Sphincs_Parameters::n
    - random_vec
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - xmss_gen_root
    - seed
    - std::make_shared<SphincsPlus_PrivateKeyInternal>
    - Sphincs_Parameters::is_available
    - Not_Implemented
    - std::make_shared<SphincsPlus_PublicKeyInternal>
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKey::SphincsPlus_PrivateKey(RandomNumberGenerator&
      rng, Sphincs_Parameters params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 333
    functionName: SphincsPlus_PrivateKey::~SphincsPlus_PrivateKey()
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKey::~SphincsPlus_PrivateKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:336,1
    - Dst: key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:336,1
    - Dst: key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: Botan::SphincsPlus_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 5
    functionsReached:
    - concat
    - key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> SphincsPlus_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SphincsPlus_PrivateKey::private_key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: Botan::SphincsPlus_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SphincsPlus_PrivateKey::private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> SphincsPlus_PrivateKey::raw_private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SphincsPlus_PublicKey>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: Botan::SphincsPlus_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<SphincsPlus_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> SphincsPlus_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:354,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:355,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:359,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:359,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:360,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - private_key
    - public_key
    - randomized
    argTypes:
    - std::shared_ptr<SphincsPlus_PrivateKeyInternal>
    - std::shared_ptr<SphincsPlus_PublicKeyInternal>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: Botan::SphincsPlus_Signature_Operation::SphincsPlus_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - parameters
    - seed
    - BOTAN_ARG_CHECK
    - size
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_Signature_Operation(std::shared_ptr<SphincsPlus_PrivateKeyInternal>
      private_key,\n                                      std::shared_ptr<SphincsPlus_PublicKeyInternal>
      public_key,\n                                      bool randomized)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: Botan::SphincsPlus_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - get
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:372,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:372,1
    - Dst: prepare_message
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: Botan::SphincsPlus_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - std::exchange
    - Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    - parameters
    - prepare_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: Botan::SphincsPlus_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: Botan::SphincsPlus_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msg_hash_function_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    functionName: Botan::SphincsPlus_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - msg_hash_function_name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:393,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: StrongSpan<const SphincsOptionalRandomness>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:401,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:401,1
    - Dst: PRF_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:405,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:405,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:409,1
    - Dst: fors_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:412,1
    - Dst: ht_sign
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:420,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:426,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' message'
    - addrnd
    argTypes:
    - SphincsMessageInternal
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 428
    functionName: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 3
    functionsReached:
    - n
    - parameters
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
    - H_msg
    - Sphincs_Address::set_tree_address
    - sphincs_signature_bytes
    - fors_signature_bytes
    - prf
    - PRF_msg
    - StrongSpan<const SphincsOptionalRandomness>
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - ht_signature_bytes
    - root
    - seed
    - fors_sign_and_pkgen
    - ht_sign
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
    - BufferStuffer::next
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> slh_sign_internal(const SphincsMessageInternal&
      message,\n                                             std::optional<StrongSpan<const
      SphincsOptionalRandomness>> addrnd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:354,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:355,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:356,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:359,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:359,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:360,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - private_key
    - public_key
    - randomized
    argTypes:
    - std::shared_ptr<SphincsPlus_PrivateKeyInternal>
    - std::shared_ptr<SphincsPlus_PublicKeyInternal>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: Botan::SphincsPlus_Signature_Operation::SphincsPlus_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - parameters
    - seed
    - BOTAN_ARG_CHECK
    - size
    linkageType: ''
    returnType: void
    signature: "void SphincsPlus_Signature_Operation(std::shared_ptr<SphincsPlus_PrivateKeyInternal>
      private_key,\n                                      std::shared_ptr<SphincsPlus_PublicKeyInternal>
      public_key,\n                                      bool randomized)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: Botan::SphincsPlus_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::begin
    - get
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:372,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:372,1
    - Dst: prepare_message
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:374,1
    - Dst: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: Botan::SphincsPlus_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - std::exchange
    - Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    - parameters
    - prepare_message
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: Botan::SphincsPlus_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: Botan::SphincsPlus_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msg_hash_function_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    functionName: Botan::SphincsPlus_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - msg_hash_function_name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:393,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: StrongSpan<const SphincsOptionalRandomness>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:399,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:401,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:401,1
    - Dst: PRF_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:405,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:405,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:409,1
    - Dst: fors_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:410,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:412,1
    - Dst: ht_sign
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:420,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:426,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' message'
    - addrnd
    argTypes:
    - SphincsMessageInternal
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 428
    functionName: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 4
    functionsReached:
    - n
    - parameters
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
    - H_msg
    - Sphincs_Address::set_tree_address
    - sphincs_signature_bytes
    - fors_signature_bytes
    - prf
    - PRF_msg
    - StrongSpan<const SphincsOptionalRandomness>
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - ht_signature_bytes
    - root
    - seed
    - fors_sign_and_pkgen
    - ht_sign
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
    - BufferStuffer::next
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> slh_sign_internal(const SphincsMessageInternal&
      message,\n                                             std::optional<StrongSpan<const
      SphincsOptionalRandomness>> addrnd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:443,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:444,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:444,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:450,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:451,1
    - Dst: std::make_unique<SphincsPlus_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:452,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:454,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:454,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 455
    functionName: Botan::SphincsPlus_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - BOTAN_UNUSED
    - Provider_Not_Found
    - std::string_view::empty
    - BOTAN_ARG_CHECK
    - std::make_unique<SphincsPlus_Signature_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> SphincsPlus_PrivateKey::create_signature_op(RandomNumberGenerator&
      rng,\n                                                                               std::string_view
      params,\n                                                                               std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:47,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: Botan::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:56,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:62,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:63,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:63,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:72,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:77,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:82,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:87,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:92,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:97,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:113,1
    - Dst: auto::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:114,1
    - Dst: Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:130,1
    - Dst: Sphincs_Address_Type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:134,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:138,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:139,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:147,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:148,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:149,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:150,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:151,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:152,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 160
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 9
    functionsReached:
    - Sphincs_Address_Type
    - static_cast<uint32_t>
    - Botan::store_be
    - Botan::end
    - Botan::Sphincs_Address
    - Botan::size
    - Botan::begin
    - std::array::data
    - Botan::set_type
    - Botan::copy
    - Sphincs_Address::copy_keypair_from
    - static_cast<uint8_t>
    - Botan::get
    - auto::copy_subtree_from
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Sphincs_Address
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Sphincs_Address_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 9
    functionsReached:
    - Botan::set_type
    linkageType: ''
    returnType: void
    signature: void Sphincs_Address(Sphincs_Address_Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: std::array<uint32_t, 8>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: std::array<uint32_t, 8>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - std::array<uint32_t, 8>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 9
    functionsReached:
    - Botan::copy
    - std::array<uint32_t, 8>::end
    - Botan::begin
    - std::array<uint32_t, 8>::begin
    linkageType: ''
    returnType: void
    signature: void Sphincs_Address(std::array<uint32_t, 8> address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HypertreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - layer
    argTypes:
    - HypertreeLayerIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: Botan::set_layer_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - HypertreeLayerIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_layer_address(HypertreeLayerIndex layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:62,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:63,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tree
    argTypes:
    - XmssTreeIndexInLayer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: Botan::set_tree_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - XmssTreeIndexInLayer::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_tree_address(XmssTreeIndexInLayer tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - Sphincs_Address_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan::set_type
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_type(Sphincs_Address_Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TreeNodeIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - TreeNodeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: Botan::set_keypair_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - TreeNodeIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_keypair_address(TreeNodeIndex keypair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WotsChainIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - chain
    argTypes:
    - WotsChainIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan::set_chain_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - WotsChainIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_chain_address(WotsChainIndex chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_height
    argTypes:
    - TreeLayerIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: Botan::set_tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - TreeLayerIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_tree_height(TreeLayerIndex tree_height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WotsHashIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash
    argTypes:
    - WotsHashIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Botan::set_hash_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - WotsHashIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_hash_address(WotsHashIndex hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TreeNodeIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_index
    argTypes:
    - TreeNodeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: Botan::set_tree_index
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - TreeNodeIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_tree_index(TreeNodeIndex tree_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: Botan::copy_subtree_from
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & copy_subtree_from(const Sphincs_Address& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:113,1
    - Dst: auto::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: Botan::as_subtree_from
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 8
    functionsReached:
    - Botan::Sphincs_Address
    - auto::copy_subtree_from
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address as_subtree_from(const Sphincs_Address& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: Botan::copy_keypair_from
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & copy_keypair_from(const Sphincs_Address other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: Botan::as_keypair_from
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 4
    functionsReached:
    - Sphincs_Address::copy_keypair_from
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address as_keypair_from(const Sphincs_Address& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sphincs_Address_Type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::get_type
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - Sphincs_Address_Type
    linkageType: ''
    returnType: Sphincs_Address_Type
    signature: Sphincs_Address_Type get_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:138,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:139,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: Botan::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - std::array::data
    - Botan::size
    - Botan::store_be
    linkageType: ''
    returnType: std::array<uint8_t, 32>
    signature: std::array<uint8_t, 32> to_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:147,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:148,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:149,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:150,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:151,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:152,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: Botan::to_bytes_compressed
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - Botan::store_be
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::array<uint8_t, 22>
    signature: std::array<uint8_t, 22> to_bytes_compressed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:47,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: Botan::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:56,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:62,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:63,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:63,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:72,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:77,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:82,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:87,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:92,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:97,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:113,1
    - Dst: auto::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:114,1
    - Dst: Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:130,1
    - Dst: Sphincs_Address_Type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:134,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:138,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:139,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:147,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:148,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:149,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:150,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:151,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:152,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 160
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 11
    functionsReached:
    - Sphincs_Address_Type
    - static_cast<uint32_t>
    - Botan::store_be
    - Botan::end
    - Botan::Sphincs_Address
    - Botan::size
    - Botan::begin
    - std::array::data
    - Botan::set_type
    - Botan::copy
    - Sphincs_Address::copy_keypair_from
    - static_cast<uint8_t>
    - Botan::get
    - auto::copy_subtree_from
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Sphincs_Address
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Sphincs_Address_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 11
    functionsReached:
    - Botan::set_type
    linkageType: ''
    returnType: void
    signature: void Sphincs_Address(Sphincs_Address_Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: std::array<uint32_t, 8>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: std::array<uint32_t, 8>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - std::array<uint32_t, 8>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 11
    functionsReached:
    - Botan::copy
    - std::array<uint32_t, 8>::end
    - Botan::begin
    - std::array<uint32_t, 8>::begin
    linkageType: ''
    returnType: void
    signature: void Sphincs_Address(std::array<uint32_t, 8> address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HypertreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - layer
    argTypes:
    - HypertreeLayerIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: Botan::set_layer_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - HypertreeLayerIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_layer_address(HypertreeLayerIndex layer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:62,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:63,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tree
    argTypes:
    - XmssTreeIndexInLayer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: Botan::set_tree_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - XmssTreeIndexInLayer::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_tree_address(XmssTreeIndexInLayer tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - Sphincs_Address_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan::set_type
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 4
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_type(Sphincs_Address_Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TreeNodeIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - TreeNodeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: Botan::set_keypair_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - TreeNodeIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_keypair_address(TreeNodeIndex keypair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WotsChainIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - chain
    argTypes:
    - WotsChainIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan::set_chain_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - WotsChainIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_chain_address(WotsChainIndex chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_height
    argTypes:
    - TreeLayerIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: Botan::set_tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - TreeLayerIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_tree_height(TreeLayerIndex tree_height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WotsHashIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash
    argTypes:
    - WotsHashIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Botan::set_hash_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - WotsHashIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_hash_address(WotsHashIndex hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TreeNodeIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_index
    argTypes:
    - TreeNodeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: Botan::set_tree_index
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - TreeNodeIndex::get
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & set_tree_index(TreeNodeIndex tree_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: Botan::copy_subtree_from
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & copy_subtree_from(const Sphincs_Address& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:113,1
    - Dst: auto::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: Botan::as_subtree_from
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 8
    functionsReached:
    - Botan::Sphincs_Address
    - auto::copy_subtree_from
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address as_subtree_from(const Sphincs_Address& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: Botan::copy_keypair_from
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address & copy_keypair_from(const Sphincs_Address other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: Botan::as_keypair_from
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 4
    functionsReached:
    - Sphincs_Address::copy_keypair_from
    linkageType: ''
    returnType: Sphincs_Address
    signature: Sphincs_Address as_keypair_from(const Sphincs_Address& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sphincs_Address_Type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::get_type
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - Sphincs_Address_Type
    linkageType: ''
    returnType: Sphincs_Address_Type
    signature: Sphincs_Address_Type get_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:138,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:139,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: Botan::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - std::array::data
    - Botan::size
    - Botan::store_be
    linkageType: ''
    returnType: std::array<uint8_t, 32>
    signature: std::array<uint8_t, 32> to_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:147,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:148,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:149,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:150,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:151,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:152,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: Botan::to_bytes_compressed
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - Botan::store_be
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::array<uint8_t, 22>
    signature: std::array<uint8_t, 22> to_bytes_compressed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sphincs_params'
    - ' pub_seed'
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::Sphincs_Hash_Functions::Sphincs_Hash_Functions
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Sphincs_Hash_Functions::Sphincs_Hash_Functions(const Sphincs_Parameters&
      sphincs_params,\n                                               const SphincsPublicSeed&
      pub_seed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hash_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:34,1
    - Dst: std::make_unique<Sphincs_Hash_Functions_Sha2>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:37,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:39,1
    - Dst: std::make_unique<Sphincs_Hash_Functions_Shake>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:44,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:46,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:50,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' sphincs_params'
    - ' pub_seed'
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 53
    functionName: Botan::Sphincs_Hash_Functions::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 18
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - std::make_unique<Sphincs_Hash_Functions_Sha2>
    - std::make_unique<Sphincs_Hash_Functions_Shake>
    - hash_type
    - Not_Implemented
    linkageType: ''
    returnType: std::unique_ptr<Sphincs_Hash_Functions>
    signature: "std::unique_ptr<Sphincs_Hash_Functions> Sphincs_Hash_Functions::create(const
      Sphincs_Parameters& sphincs_params,\n                                                                       const
      SphincsPublicSeed& pub_seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:62,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:62,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:63,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:63,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::array::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:69,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:69,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: wrapped_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nbits
    - bytes
    argTypes:
    - uint32_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: Botan::from_first_n_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - std::array::rbegin
    - Botan::copy
    - std::span<const uint8_t>::rend
    - wrapped_type
    - Botan::load_be
    - std::span<const uint8_t>::rbegin
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - Botan::T
    linkageType: ''
    returnType: T
    signature: T from_first_n_bits(const uint32_t nbits, std::span<const uint8_t>
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:62,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:62,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:63,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:63,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::array::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:69,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:69,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: wrapped_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nbits
    - bytes
    argTypes:
    - uint32_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: Botan::from_first_n_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - std::array::rbegin
    - Botan::copy
    - std::span<const uint8_t>::rend
    - wrapped_type
    - Botan::load_be
    - std::span<const uint8_t>::rbegin
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - Botan::T
    linkageType: ''
    returnType: T
    signature: T from_first_n_bits(const uint32_t nbits, std::span<const uint8_t>
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H_msg_digest
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:78,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:84,1
    - Dst: fors_message_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:84,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:85,1
    - Dst: tree_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:85,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:86,1
    - Dst: leaf_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:86,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:87,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:87,1
    - Dst: from_first_n_bits<XmssTreeIndexInLayer>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:89,1
    - Dst: h
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:89,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:89,1
    - Dst: from_first_n_bits<TreeNodeIndex>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:90,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:90,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - ' root'
    - ' message'
    argTypes:
    - StrongSpan<const SphincsMessageRandomness>
    - SphincsTreeNode
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: Botan::Sphincs_Hash_Functions::H_msg
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - H_msg_digest
    - h
    - xmss_tree_height
    - BufferSlicer::copy
    - std::move
    - leaf_digest_bytes
    - fors_message_bytes
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - tree_digest_bytes
    - from_first_n_bits<XmssTreeIndexInLayer>
    - from_first_n_bits<TreeNodeIndex>
    - BufferSlicer::take
    linkageType: ''
    returnType: std::tuple<SphincsHashedMessage, XmssTreeIndexInLayer, TreeNodeIndex>
    signature: "std::tuple<SphincsHashedMessage, XmssTreeIndexInLayer, TreeNodeIndex>
      Sphincs_Hash_Functions::H_msg(\n   StrongSpan<const SphincsMessageRandomness>
      r, const SphincsTreeNode& root, const SphincsMessageInternal& message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sphincs_params'
    - ' pub_seed'
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::Sphincs_Hash_Functions::Sphincs_Hash_Functions
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Sphincs_Hash_Functions::Sphincs_Hash_Functions(const Sphincs_Parameters&
      sphincs_params,\n                                               const SphincsPublicSeed&
      pub_seed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hash_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:34,1
    - Dst: std::make_unique<Sphincs_Hash_Functions_Sha2>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:37,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:39,1
    - Dst: std::make_unique<Sphincs_Hash_Functions_Shake>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:44,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:46,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:50,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' sphincs_params'
    - ' pub_seed'
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 53
    functionName: Botan::Sphincs_Hash_Functions::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 18
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - std::make_unique<Sphincs_Hash_Functions_Sha2>
    - std::make_unique<Sphincs_Hash_Functions_Shake>
    - hash_type
    - Not_Implemented
    linkageType: ''
    returnType: std::unique_ptr<Sphincs_Hash_Functions>
    signature: "std::unique_ptr<Sphincs_Hash_Functions> Sphincs_Hash_Functions::create(const
      Sphincs_Parameters& sphincs_params,\n                                                                       const
      SphincsPublicSeed& pub_seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:62,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:62,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:63,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:63,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::array::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:69,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:69,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: wrapped_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nbits
    - bytes
    argTypes:
    - uint32_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: Botan::from_first_n_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - std::array::rbegin
    - Botan::copy
    - std::span<const uint8_t>::rend
    - wrapped_type
    - Botan::load_be
    - std::span<const uint8_t>::rbegin
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - Botan::T
    linkageType: ''
    returnType: T
    signature: T from_first_n_bits(const uint32_t nbits, std::span<const uint8_t>
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:62,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:62,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:63,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:63,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: std::array::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:68,1
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:69,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:69,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: wrapped_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nbits
    - bytes
    argTypes:
    - uint32_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: Botan::from_first_n_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - std::array::rbegin
    - Botan::copy
    - std::span<const uint8_t>::rend
    - wrapped_type
    - Botan::load_be
    - std::span<const uint8_t>::rbegin
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - Botan::T
    linkageType: ''
    returnType: T
    signature: T from_first_n_bits(const uint32_t nbits, std::span<const uint8_t>
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H_msg_digest
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:78,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:84,1
    - Dst: fors_message_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:84,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:85,1
    - Dst: tree_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:85,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:86,1
    - Dst: leaf_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:86,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:87,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:87,1
    - Dst: from_first_n_bits<XmssTreeIndexInLayer>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:89,1
    - Dst: h
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:89,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:89,1
    - Dst: from_first_n_bits<TreeNodeIndex>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:90,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:90,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - ' root'
    - ' message'
    argTypes:
    - StrongSpan<const SphincsMessageRandomness>
    - SphincsTreeNode
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: Botan::Sphincs_Hash_Functions::H_msg
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - H_msg_digest
    - h
    - xmss_tree_height
    - BufferSlicer::copy
    - std::move
    - leaf_digest_bytes
    - fors_message_bytes
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - tree_digest_bytes
    - from_first_n_bits<XmssTreeIndexInLayer>
    - from_first_n_bits<TreeNodeIndex>
    - BufferSlicer::take
    linkageType: ''
    returnType: std::tuple<SphincsHashedMessage, XmssTreeIndexInLayer, TreeNodeIndex>
    signature: "std::tuple<SphincsHashedMessage, XmssTreeIndexInLayer, TreeNodeIndex>
      Sphincs_Hash_Functions::H_msg(\n   StrongSpan<const SphincsMessageRandomness>
      r, const SphincsTreeNode& root, const SphincsMessageInternal& message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<const WotsNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<const WotsNode>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<WotsPublicKeyNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:35,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:36,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - out
    - wots_chain_key
    - start
    - steps
    - ' addr'
    - ' hashes'
    - ' params'
    argTypes:
    - StrongSpan<WotsPublicKeyNode>
    - StrongSpan<const WotsNode>
    - WotsHashIndex
    - uint8_t
    - Sphincs_Address
    - Sphincs_Hash_Functions
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - StrongSpan<const WotsNode>::end
    - Botan::set_hash_address
    - Botan::w
    - StrongSpan<WotsPublicKeyNode>::begin
    - Botan::T
    - Botan::copy
    - StrongSpan<const WotsNode>::begin
    linkageType: ''
    returnType: void
    signature: "void chain(StrongSpan<WotsPublicKeyNode> out,\n           StrongSpan<const
      WotsNode> wots_chain_key,\n           WotsHashIndex start,\n           uint8_t
      steps,\n           Sphincs_Address& addr,\n           Sphincs_Hash_Functions&
      hashes,\n           const Sphincs_Parameters& params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: std::span<WotsHashIndex>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:61,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - output
    - input
    - ' params'
    argTypes:
    - std::span<WotsHashIndex>
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: Botan::base_2_b
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - std::span<WotsHashIndex>::size
    - log_w
    - Botan::w
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - WotsHashIndex
    linkageType: ''
    returnType: void
    signature: void base_2_b(std::span<WotsHashIndex> output, std::span<const uint8_t>
      input, const Sphincs_Parameters& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:76,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:76,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:80,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:80,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:83,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:83,1
    - Dst: wots_checksum_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:87,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - output
    - msg_base_w
    - ' params'
    argTypes:
    - std::span<WotsHashIndex>
    - std::span<const WotsHashIndex>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: Botan::wots_checksum
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - wots_checksum_bytes
    - log_w
    - wots_len_2
    - Botan::store_be
    - std::array::size
    - std::span
    - Botan::w
    - Botan::base_2_b
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - Botan::get
    linkageType: ''
    returnType: void
    signature: "void wots_checksum(std::span<WotsHashIndex> output,\n                   std::span<const
      WotsHashIndex> msg_base_w,\n                   const Sphincs_Parameters& params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<const WotsNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<const WotsNode>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<WotsPublicKeyNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:35,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:36,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - out
    - wots_chain_key
    - start
    - steps
    - ' addr'
    - ' hashes'
    - ' params'
    argTypes:
    - StrongSpan<WotsPublicKeyNode>
    - StrongSpan<const WotsNode>
    - WotsHashIndex
    - uint8_t
    - Sphincs_Address
    - Sphincs_Hash_Functions
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - StrongSpan<const WotsNode>::end
    - Botan::set_hash_address
    - Botan::w
    - StrongSpan<WotsPublicKeyNode>::begin
    - Botan::T
    - Botan::copy
    - StrongSpan<const WotsNode>::begin
    linkageType: ''
    returnType: void
    signature: "void chain(StrongSpan<WotsPublicKeyNode> out,\n           StrongSpan<const
      WotsNode> wots_chain_key,\n           WotsHashIndex start,\n           uint8_t
      steps,\n           Sphincs_Address& addr,\n           Sphincs_Hash_Functions&
      hashes,\n           const Sphincs_Parameters& params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: std::span<WotsHashIndex>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:61,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - output
    - input
    - ' params'
    argTypes:
    - std::span<WotsHashIndex>
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: Botan::base_2_b
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 1
    functionsReached:
    - std::span<WotsHashIndex>::size
    - log_w
    - Botan::w
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - WotsHashIndex
    linkageType: ''
    returnType: void
    signature: void base_2_b(std::span<WotsHashIndex> output, std::span<const uint8_t>
      input, const Sphincs_Parameters& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:76,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:76,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:80,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:80,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:83,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:83,1
    - Dst: wots_checksum_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:87,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - output
    - msg_base_w
    - ' params'
    argTypes:
    - std::span<WotsHashIndex>
    - std::span<const WotsHashIndex>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: Botan::wots_checksum
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - wots_checksum_bytes
    - log_w
    - wots_len_2
    - Botan::store_be
    - std::array::size
    - std::span
    - Botan::w
    - Botan::base_2_b
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - Botan::get
    linkageType: ''
    returnType: void
    signature: "void wots_checksum(std::span<WotsHashIndex> output,\n                   std::span<const
      WotsHashIndex> msg_base_w,\n                   const Sphincs_Parameters& params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wots_len_1
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:93,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:93,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:95,1
    - Dst: wots_len_1
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:95,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:96,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:96,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:98,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:98,1
    - Dst: Botan::wots_checksum
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' msg'
    - ' params'
    argTypes:
    - SphincsTreeNode
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: Botan::chain_lengths
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 4
    functionsReached:
    - wots_len_1
    - wots_len_2
    - std::span
    - Botan::base_2_b
    - Botan::wots_checksum
    - Botan::get
    linkageType: ''
    returnType: std::vector<WotsHashIndex>
    signature: std::vector<WotsHashIndex> chain_lengths(const SphincsTreeNode& msg,
      const Sphincs_Parameters& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::chain_lengths
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:109,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:110,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:110,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:114,1
    - Dst: Botan::set_chain_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:115,1
    - Dst: WotsChainIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:118,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:119,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:119,1
    - Dst: WotsHashIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:119,1
    - Dst: Botan::chain
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:121,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:121,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:121,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:122,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' hashed_message'
    - signature
    - ' address'
    - ' params'
    - ' hashes'
    argTypes:
    - SphincsTreeNode
    - StrongSpan<const WotsSignature>
    - Sphincs_Address
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 131
    functionName: Botan::wots_public_key_from_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 4
    functionsReached:
    - Botan::n
    - wots_len
    - BufferStuffer::next
    - Botan::w
    - Botan::set_chain_address
    - Botan::chain_lengths
    - Botan::chain
    - WotsHashIndex::get
    - WotsChainIndex::get
    - static_cast<uint8_t>
    - BufferSlicer::take
    linkageType: ''
    returnType: WotsPublicKey
    signature: "WotsPublicKey wots_public_key_from_signature(const SphincsTreeNode&
      hashed_message,\n                                             StrongSpan<const
      WotsSignature> signature,\n                                             Sphincs_Address&
      address,\n                                             const Sphincs_Parameters&
      params,\n                                             Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: std::optional<TreeNodeIndex>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:145,1
    - Dst: Botan::get_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:145,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:148,1
    - Dst: Botan::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:153,1
    - Dst: Botan::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:154,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:156,1
    - Dst: std::optional<TreeNodeIndex>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:160,1
    - Dst: std::optional<TreeNodeIndex>::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:160,1
    - Dst: WotsChainIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:161,1
    - Dst: Botan::set_chain_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:168,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:169,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:169,1
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:170,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:172,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:172,1
    - Dst: Botan::PRF
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:174,1
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:176,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:182,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:182,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:182,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:182,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:182,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:186,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:191,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:193,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 10
    argNames:
    - sig_out
    - leaf_out
    - ' secret_seed'
    - leaf_idx
    - sign_leaf_idx
    - ' wots_steps'
    - ' leaf_addr'
    - ' pk_addr'
    - ' params'
    - ' hashes'
    argTypes:
    - StrongSpan<WotsSignature>
    - StrongSpan<SphincsTreeNode>
    - SphincsSecretSeed
    - TreeNodeIndex
    - std::optional<TreeNodeIndex>
    - std::vector<WotsHashIndex>
    - Sphincs_Address
    - Sphincs_Address
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 199
    functionName: Botan::wots_sign_and_pkgen
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - Botan::PRF
    - Botan::size
    - Botan::set_chain_address
    - Botan::T
    - Botan::n
    - wots_bytes
    - std::optional<TreeNodeIndex>::value
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - WotsHashIndex
    - Botan::set_hash_address
    - auto::begin
    - wots_len
    - auto::has_value
    - Botan::set_type
    - Botan::copy
    - WotsChainIndex::get
    - Botan::set_keypair_address
    - BufferStuffer::next
    - Botan::w
    - std::optional<TreeNodeIndex>::has_value
    - Botan::get_type
    - auto::value
    linkageType: ''
    returnType: void
    signature: "void wots_sign_and_pkgen(StrongSpan<WotsSignature> sig_out,\n                         StrongSpan<SphincsTreeNode>
      leaf_out,\n                         const SphincsSecretSeed& secret_seed,\n
      \                        TreeNodeIndex leaf_idx,\n                         std::optional<TreeNodeIndex>
      sign_leaf_idx,\n                         const std::vector<WotsHashIndex>& wots_steps,\n
      \                        Sphincs_Address& leaf_addr,\n                         Sphincs_Address&
      pk_addr,\n                         const Sphincs_Parameters& params,\n                         Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<const WotsNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<const WotsNode>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<WotsPublicKeyNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:35,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:36,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - out
    - wots_chain_key
    - start
    - steps
    - ' addr'
    - ' hashes'
    - ' params'
    argTypes:
    - StrongSpan<WotsPublicKeyNode>
    - StrongSpan<const WotsNode>
    - WotsHashIndex
    - uint8_t
    - Sphincs_Address
    - Sphincs_Hash_Functions
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 1
    functionsReached:
    - StrongSpan<const WotsNode>::end
    - Botan::set_hash_address
    - Botan::w
    - StrongSpan<WotsPublicKeyNode>::begin
    - Botan::T
    - Botan::copy
    - StrongSpan<const WotsNode>::begin
    linkageType: ''
    returnType: void
    signature: "void chain(StrongSpan<WotsPublicKeyNode> out,\n           StrongSpan<const
      WotsNode> wots_chain_key,\n           WotsHashIndex start,\n           uint8_t
      steps,\n           Sphincs_Address& addr,\n           Sphincs_Hash_Functions&
      hashes,\n           const Sphincs_Parameters& params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: std::span<WotsHashIndex>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:61,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - output
    - input
    - ' params'
    argTypes:
    - std::span<WotsHashIndex>
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: Botan::base_2_b
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 3
    functionsReached:
    - std::span<WotsHashIndex>::size
    - log_w
    - Botan::w
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - WotsHashIndex
    linkageType: ''
    returnType: void
    signature: void base_2_b(std::span<WotsHashIndex> output, std::span<const uint8_t>
      input, const Sphincs_Parameters& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:76,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:76,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:80,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:80,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:83,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:83,1
    - Dst: wots_checksum_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:87,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - output
    - msg_base_w
    - ' params'
    argTypes:
    - std::span<WotsHashIndex>
    - std::span<const WotsHashIndex>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: Botan::wots_checksum
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 1
    functionsReached:
    - wots_checksum_bytes
    - log_w
    - wots_len_2
    - Botan::store_be
    - std::array::size
    - std::span
    - Botan::w
    - Botan::base_2_b
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - Botan::get
    linkageType: ''
    returnType: void
    signature: "void wots_checksum(std::span<WotsHashIndex> output,\n                   std::span<const
      WotsHashIndex> msg_base_w,\n                   const Sphincs_Parameters& params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<const WotsNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<const WotsNode>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: StrongSpan<WotsPublicKeyNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:32,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:35,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:36,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - out
    - wots_chain_key
    - start
    - steps
    - ' addr'
    - ' hashes'
    - ' params'
    argTypes:
    - StrongSpan<WotsPublicKeyNode>
    - StrongSpan<const WotsNode>
    - WotsHashIndex
    - uint8_t
    - Sphincs_Address
    - Sphincs_Hash_Functions
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 1
    functionsReached:
    - StrongSpan<const WotsNode>::end
    - Botan::set_hash_address
    - Botan::w
    - StrongSpan<WotsPublicKeyNode>::begin
    - Botan::T
    - Botan::copy
    - StrongSpan<const WotsNode>::begin
    linkageType: ''
    returnType: void
    signature: "void chain(StrongSpan<WotsPublicKeyNode> out,\n           StrongSpan<const
      WotsNode> wots_chain_key,\n           WotsHashIndex start,\n           uint8_t
      steps,\n           Sphincs_Address& addr,\n           Sphincs_Hash_Functions&
      hashes,\n           const Sphincs_Parameters& params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: std::span<WotsHashIndex>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:48,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:61,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - output
    - input
    - ' params'
    argTypes:
    - std::span<WotsHashIndex>
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: Botan::base_2_b
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 4
    functionsReached:
    - std::span<WotsHashIndex>::size
    - log_w
    - Botan::w
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - WotsHashIndex
    linkageType: ''
    returnType: void
    signature: void base_2_b(std::span<WotsHashIndex> output, std::span<const uint8_t>
      input, const Sphincs_Parameters& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:76,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:76,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:80,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:80,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:83,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:83,1
    - Dst: wots_checksum_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:87,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - output
    - msg_base_w
    - ' params'
    argTypes:
    - std::span<WotsHashIndex>
    - std::span<const WotsHashIndex>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: Botan::wots_checksum
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 1
    functionsReached:
    - wots_checksum_bytes
    - log_w
    - wots_len_2
    - Botan::store_be
    - std::array::size
    - std::span
    - Botan::w
    - Botan::base_2_b
    - std::array::data
    - BOTAN_ASSERT_NOMSG
    - Botan::get
    linkageType: ''
    returnType: void
    signature: "void wots_checksum(std::span<WotsHashIndex> output,\n                   std::span<const
      WotsHashIndex> msg_base_w,\n                   const Sphincs_Parameters& params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wots_len_1
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:93,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:93,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:95,1
    - Dst: wots_len_1
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:95,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:96,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:96,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:98,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:98,1
    - Dst: Botan::wots_checksum
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' msg'
    - ' params'
    argTypes:
    - SphincsTreeNode
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: Botan::chain_lengths
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 5
    functionsReached:
    - wots_len_1
    - wots_len_2
    - std::span
    - Botan::base_2_b
    - Botan::wots_checksum
    - Botan::get
    linkageType: ''
    returnType: std::vector<WotsHashIndex>
    signature: std::vector<WotsHashIndex> chain_lengths(const SphincsTreeNode& msg,
      const Sphincs_Parameters& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::chain_lengths
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:109,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:110,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:110,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:114,1
    - Dst: Botan::set_chain_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:115,1
    - Dst: WotsChainIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:118,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:119,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:119,1
    - Dst: WotsHashIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:119,1
    - Dst: Botan::chain
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:121,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:121,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:121,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:122,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' hashed_message'
    - signature
    - ' address'
    - ' params'
    - ' hashes'
    argTypes:
    - SphincsTreeNode
    - StrongSpan<const WotsSignature>
    - Sphincs_Address
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 131
    functionName: Botan::wots_public_key_from_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 4
    functionsReached:
    - Botan::n
    - wots_len
    - BufferStuffer::next
    - Botan::w
    - Botan::set_chain_address
    - Botan::chain_lengths
    - Botan::chain
    - WotsHashIndex::get
    - WotsChainIndex::get
    - static_cast<uint8_t>
    - BufferSlicer::take
    linkageType: ''
    returnType: WotsPublicKey
    signature: "WotsPublicKey wots_public_key_from_signature(const SphincsTreeNode&
      hashed_message,\n                                             StrongSpan<const
      WotsSignature> signature,\n                                             Sphincs_Address&
      address,\n                                             const Sphincs_Parameters&
      params,\n                                             Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: std::optional<TreeNodeIndex>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:145,1
    - Dst: Botan::get_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:145,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:148,1
    - Dst: Botan::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:153,1
    - Dst: Botan::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:154,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:156,1
    - Dst: std::optional<TreeNodeIndex>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:160,1
    - Dst: std::optional<TreeNodeIndex>::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:160,1
    - Dst: WotsChainIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:161,1
    - Dst: Botan::set_chain_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:168,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:169,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:169,1
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:170,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:172,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:172,1
    - Dst: Botan::PRF
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:174,1
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:176,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:182,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:182,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:182,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:182,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:182,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:186,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:191,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:193,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 10
    argNames:
    - sig_out
    - leaf_out
    - ' secret_seed'
    - leaf_idx
    - sign_leaf_idx
    - ' wots_steps'
    - ' leaf_addr'
    - ' pk_addr'
    - ' params'
    - ' hashes'
    argTypes:
    - StrongSpan<WotsSignature>
    - StrongSpan<SphincsTreeNode>
    - SphincsSecretSeed
    - TreeNodeIndex
    - std::optional<TreeNodeIndex>
    - std::vector<WotsHashIndex>
    - Sphincs_Address
    - Sphincs_Address
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 199
    functionName: Botan::wots_sign_and_pkgen
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - Botan::PRF
    - Botan::size
    - Botan::set_chain_address
    - Botan::T
    - Botan::n
    - wots_bytes
    - std::optional<TreeNodeIndex>::value
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - WotsHashIndex
    - Botan::set_hash_address
    - auto::begin
    - wots_len
    - auto::has_value
    - Botan::set_type
    - Botan::copy
    - WotsChainIndex::get
    - Botan::set_keypair_address
    - BufferStuffer::next
    - Botan::w
    - std::optional<TreeNodeIndex>::has_value
    - Botan::get_type
    - auto::value
    linkageType: ''
    returnType: void
    signature: "void wots_sign_and_pkgen(StrongSpan<WotsSignature> sig_out,\n                         StrongSpan<SphincsTreeNode>
      leaf_out,\n                         const SphincsSecretSeed& secret_seed,\n
      \                        TreeNodeIndex leaf_idx,\n                         std::optional<TreeNodeIndex>
      sign_leaf_idx,\n                         const std::vector<WotsHashIndex>& wots_steps,\n
      \                        Sphincs_Address& leaf_addr,\n                         Sphincs_Address&
      pk_addr,\n                         const Sphincs_Parameters& params,\n                         Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:29,1
    - Dst: StrongSpan<SphincsHypertreeSignature>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:29,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:29,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:33,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:38,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:42,1
    - Dst: Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:43,1
    - Dst: Botan::xmss_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:45,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:45,1
    - Dst: xmss_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:45,1
    - Dst: TreeNodeIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:55,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:55,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:55,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:56,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:59,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - out_sig
    - ' message_to_sign'
    - ' secret_seed'
    - tree_index_in_layer
    - idx_leaf
    - ' params'
    - ' hashes'
    argTypes:
    - StrongSpan<SphincsHypertreeSignature>
    - SphincsTreeNode
    - SphincsSecretSeed
    - XmssTreeIndexInLayer
    - TreeNodeIndex
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 60
    functionName: Botan::ht_sign
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - Sphincs_Address::set_tree_address
    - xmss_tree_height
    - ht_signature_bytes
    - Sphincs_Address::copy_subtree_from
    - Sphincs_Address::set_layer_address
    - xmss_signature_bytes
    - TreeNodeIndex
    - StrongSpan<SphincsHypertreeSignature>::size
    - BufferStuffer::next
    - Botan::xmss_sign_and_pkgen
    - BOTAN_ASSERT_NOMSG
    - Botan::d
    - XmssTreeIndexInLayer::get
    linkageType: ''
    returnType: void
    signature: "void ht_sign(StrongSpan<SphincsHypertreeSignature> out_sig,\n             const
      SphincsTreeNode& message_to_sign,\n             const SphincsSecretSeed& secret_seed,\n
      \            XmssTreeIndexInLayer tree_index_in_layer,\n             TreeNodeIndex
      idx_leaf,\n             const Sphincs_Parameters& params,\n             Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:69,1
    - Dst: StrongSpan<const SphincsHypertreeSignature>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:69,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:69,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:76,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:79,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:83,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:84,1
    - Dst: Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:86,1
    - Dst: Sphincs_Address::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:87,1
    - Dst: Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:89,1
    - Dst: Botan::wots_public_key_from_signature
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:91,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:92,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:92,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:95,1
    - Dst: Botan::compute_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:98,1
    - Dst: StrongSpan<SphincsTreeNode>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:98,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:104,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:104,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:104,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:105,1
    - Dst: TreeNodeIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:109,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:109,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:109,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:110,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:113,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 7
    argNames:
    - ' signed_msg'
    - ht_sig
    - ' pk_root'
    - tree_index_in_layer
    - idx_leaf
    - ' params'
    - ' hashes'
    argTypes:
    - SphincsTreeNode
    - StrongSpan<const SphincsHypertreeSignature>
    - SphincsTreeNode
    - XmssTreeIndexInLayer
    - TreeNodeIndex
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 117
    functionName: Botan::ht_verify
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp
    functionUses: 0
    functionsReached:
    - StrongSpan<SphincsTreeNode>
    - Sphincs_Address::set_layer_address
    - Botan::T
    - StrongSpan<const SphincsHypertreeSignature>::size
    - TreeNodeIndex
    - Botan::d
    - XmssTreeIndexInLayer::get
    - Botan::compute_root
    - Botan::n
    - Sphincs_Address::set_tree_address
    - Sphincs_Address::copy_subtree_from
    - wots_bytes
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    - ht_signature_bytes
    - BufferSlicer::empty
    - xmss_tree_height
    - Botan::wots_public_key_from_signature
    - Sphincs_Address::set_keypair_address
    - Sphincs_Address::copy_keypair_from
    linkageType: ''
    returnType: bool
    signature: "bool ht_verify(const SphincsTreeNode& signed_msg,\n               StrongSpan<const
      SphincsHypertreeSignature> ht_sig,\n               const SphincsTreeNode& pk_root,\n
      \              XmssTreeIndexInLayer tree_index_in_layer,\n               TreeNodeIndex
      idx_leaf,\n               const Sphincs_Parameters& params,\n               Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:29,1
    - Dst: StrongSpan<SphincsHypertreeSignature>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:29,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:29,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:33,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:38,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:42,1
    - Dst: Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:43,1
    - Dst: Botan::xmss_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:45,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:45,1
    - Dst: xmss_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:45,1
    - Dst: TreeNodeIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:55,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:55,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:55,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:56,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:59,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - out_sig
    - ' message_to_sign'
    - ' secret_seed'
    - tree_index_in_layer
    - idx_leaf
    - ' params'
    - ' hashes'
    argTypes:
    - StrongSpan<SphincsHypertreeSignature>
    - SphincsTreeNode
    - SphincsSecretSeed
    - XmssTreeIndexInLayer
    - TreeNodeIndex
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 60
    functionName: Botan::ht_sign
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - Sphincs_Address::set_tree_address
    - xmss_tree_height
    - ht_signature_bytes
    - Sphincs_Address::copy_subtree_from
    - Sphincs_Address::set_layer_address
    - xmss_signature_bytes
    - TreeNodeIndex
    - StrongSpan<SphincsHypertreeSignature>::size
    - BufferStuffer::next
    - Botan::xmss_sign_and_pkgen
    - BOTAN_ASSERT_NOMSG
    - Botan::d
    - XmssTreeIndexInLayer::get
    linkageType: ''
    returnType: void
    signature: "void ht_sign(StrongSpan<SphincsHypertreeSignature> out_sig,\n             const
      SphincsTreeNode& message_to_sign,\n             const SphincsSecretSeed& secret_seed,\n
      \            XmssTreeIndexInLayer tree_index_in_layer,\n             TreeNodeIndex
      idx_leaf,\n             const Sphincs_Parameters& params,\n             Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:69,1
    - Dst: StrongSpan<const SphincsHypertreeSignature>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:69,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:69,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:76,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:79,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:83,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:84,1
    - Dst: Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:86,1
    - Dst: Sphincs_Address::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:87,1
    - Dst: Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:89,1
    - Dst: Botan::wots_public_key_from_signature
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:91,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:92,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:92,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:95,1
    - Dst: Botan::compute_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:98,1
    - Dst: StrongSpan<SphincsTreeNode>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:98,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:104,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:104,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:104,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:105,1
    - Dst: TreeNodeIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:109,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:109,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:109,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:110,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:113,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 7
    argNames:
    - ' signed_msg'
    - ht_sig
    - ' pk_root'
    - tree_index_in_layer
    - idx_leaf
    - ' params'
    - ' hashes'
    argTypes:
    - SphincsTreeNode
    - StrongSpan<const SphincsHypertreeSignature>
    - SphincsTreeNode
    - XmssTreeIndexInLayer
    - TreeNodeIndex
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 117
    functionName: Botan::ht_verify
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp
    functionUses: 0
    functionsReached:
    - StrongSpan<SphincsTreeNode>
    - Sphincs_Address::set_layer_address
    - Botan::T
    - StrongSpan<const SphincsHypertreeSignature>::size
    - TreeNodeIndex
    - Botan::d
    - XmssTreeIndexInLayer::get
    - Botan::compute_root
    - Botan::n
    - Sphincs_Address::set_tree_address
    - Sphincs_Address::copy_subtree_from
    - wots_bytes
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    - ht_signature_bytes
    - BufferSlicer::empty
    - xmss_tree_height
    - Botan::wots_public_key_from_signature
    - Sphincs_Address::set_keypair_address
    - Sphincs_Address::copy_keypair_from
    linkageType: ''
    returnType: bool
    signature: "bool ht_verify(const SphincsTreeNode& signed_msg,\n               StrongSpan<const
      SphincsHypertreeSignature> ht_sig,\n               const SphincsTreeNode& pk_root,\n
      \              XmssTreeIndexInLayer tree_index_in_layer,\n               TreeNodeIndex
      idx_leaf,\n               const Sphincs_Parameters& params,\n               Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:26,1
    - Dst: StrongSpan<SphincsTreeNode>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:26,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:26,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:27,1
    - Dst: StrongSpan<SphincsAuthenticationPath>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:27,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:27,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:31,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:32,1
    - Dst: Botan::set_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:45,1
    - Dst: TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:45,1
    - Dst: gen_leaf
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:46,1
    - Dst: TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:56,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:57,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:64,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:64,1
    - Dst: StrongSpan<SphincsAuthenticationPath>::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:65,1
    - Dst: TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:65,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:65,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:65,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:66,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:71,1
    - Dst: TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:71,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:71,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:71,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:80,1
    - Dst: Botan::set_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:89,1
    - Dst: Botan::set_tree_index
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:90,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:92,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:95,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 9
    argNames:
    - out_root
    - out_auth_path
    - ' params'
    - ' hashes'
    - leaf_idx
    - idx_offset
    - total_tree_height
    - ' gen_leaf'
    - ' tree_address'
    argTypes:
    - StrongSpan<SphincsTreeNode>
    - StrongSpan<SphincsAuthenticationPath>
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    - std::optional<TreeNodeIndex>
    - uint32_t
    - uint32_t
    - GenerateLeafFunction
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 100
    functionName: Botan::treehash
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp
    functionUses: 0
    functionsReached:
    - Botan::n
    - StrongSpan<SphincsTreeNode>::size
    - gen_leaf
    - Botan::copy_mem
    - TreeLayerIndex
    - Botan::set_tree_height
    - std::span
    - StrongSpan<SphincsAuthenticationPath>::get
    - StrongSpan<SphincsAuthenticationPath>::size
    - auto::has_value
    - Botan::set_tree_index
    - TreeLayerIndex::get
    - BOTAN_ASSERT_NOMSG
    - auto::value
    - Botan::T
    linkageType: ''
    returnType: void
    signature: "void treehash(StrongSpan<SphincsTreeNode> out_root,\n              StrongSpan<SphincsAuthenticationPath>
      out_auth_path,\n              const Sphincs_Parameters& params,\n              Sphincs_Hash_Functions&
      hashes,\n              std::optional<TreeNodeIndex> leaf_idx,\n              uint32_t
      idx_offset,\n              uint32_t total_tree_height,\n              const
      GenerateLeafFunction& gen_leaf,\n              Sphincs_Address& tree_address)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:111,1
    - Dst: StrongSpan<SphincsTreeNode>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:111,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:111,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:112,1
    - Dst: StrongSpan<const SphincsAuthenticationPath>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:112,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:112,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:113,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:113,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:113,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:117,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:134,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:134,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:137,1
    - Dst: Botan::set_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:142,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:144,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:147,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 9
    argNames:
    - out
    - ' params'
    - ' hashes'
    - ' leaf'
    - leaf_idx
    - idx_offset
    - authentication_path
    - total_tree_height
    - ' tree_address'
    argTypes:
    - StrongSpan<SphincsTreeNode>
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    - SphincsTreeNode
    - TreeNodeIndex
    - uint32_t
    - StrongSpan<const SphincsAuthenticationPath>
    - uint32_t
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 148
    functionName: Botan::compute_root
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp
    functionUses: 2
    functionsReached:
    - Botan::n
    - StrongSpan<SphincsTreeNode>::size
    - Botan::copy_mem
    - Botan::set_tree_height
    - Botan::size
    - StrongSpan<const SphincsAuthenticationPath>::size
    - Botan::T
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - Botan::swap
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void compute_root(StrongSpan<SphincsTreeNode> out,\n                  const
      Sphincs_Parameters& params,\n                  Sphincs_Hash_Functions& hashes,\n
      \                 const SphincsTreeNode& leaf,\n                  TreeNodeIndex
      leaf_idx,\n                  uint32_t idx_offset,\n                  StrongSpan<const
      SphincsAuthenticationPath> authentication_path,\n                  uint32_t
      total_tree_height,\n                  Sphincs_Address& tree_address)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:26,1
    - Dst: StrongSpan<SphincsTreeNode>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:26,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:26,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:27,1
    - Dst: StrongSpan<SphincsAuthenticationPath>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:27,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:27,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:31,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:32,1
    - Dst: Botan::set_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:45,1
    - Dst: TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:45,1
    - Dst: gen_leaf
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:46,1
    - Dst: TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:56,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:57,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:64,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:64,1
    - Dst: StrongSpan<SphincsAuthenticationPath>::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:65,1
    - Dst: TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:65,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:65,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:65,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:66,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:71,1
    - Dst: TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:71,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:71,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:71,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:80,1
    - Dst: Botan::set_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:89,1
    - Dst: Botan::set_tree_index
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:90,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:92,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:95,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 9
    argNames:
    - out_root
    - out_auth_path
    - ' params'
    - ' hashes'
    - leaf_idx
    - idx_offset
    - total_tree_height
    - ' gen_leaf'
    - ' tree_address'
    argTypes:
    - StrongSpan<SphincsTreeNode>
    - StrongSpan<SphincsAuthenticationPath>
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    - std::optional<TreeNodeIndex>
    - uint32_t
    - uint32_t
    - GenerateLeafFunction
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 100
    functionName: Botan::treehash
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp
    functionUses: 0
    functionsReached:
    - Botan::n
    - StrongSpan<SphincsTreeNode>::size
    - gen_leaf
    - Botan::copy_mem
    - TreeLayerIndex
    - Botan::set_tree_height
    - std::span
    - StrongSpan<SphincsAuthenticationPath>::get
    - StrongSpan<SphincsAuthenticationPath>::size
    - auto::has_value
    - Botan::set_tree_index
    - TreeLayerIndex::get
    - BOTAN_ASSERT_NOMSG
    - auto::value
    - Botan::T
    linkageType: ''
    returnType: void
    signature: "void treehash(StrongSpan<SphincsTreeNode> out_root,\n              StrongSpan<SphincsAuthenticationPath>
      out_auth_path,\n              const Sphincs_Parameters& params,\n              Sphincs_Hash_Functions&
      hashes,\n              std::optional<TreeNodeIndex> leaf_idx,\n              uint32_t
      idx_offset,\n              uint32_t total_tree_height,\n              const
      GenerateLeafFunction& gen_leaf,\n              Sphincs_Address& tree_address)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:111,1
    - Dst: StrongSpan<SphincsTreeNode>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:111,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:111,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:112,1
    - Dst: StrongSpan<const SphincsAuthenticationPath>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:112,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:112,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:113,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:113,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:113,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:117,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:134,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:134,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:137,1
    - Dst: Botan::set_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:142,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:144,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:147,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 9
    argNames:
    - out
    - ' params'
    - ' hashes'
    - ' leaf'
    - leaf_idx
    - idx_offset
    - authentication_path
    - total_tree_height
    - ' tree_address'
    argTypes:
    - StrongSpan<SphincsTreeNode>
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    - SphincsTreeNode
    - TreeNodeIndex
    - uint32_t
    - StrongSpan<const SphincsAuthenticationPath>
    - uint32_t
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 148
    functionName: Botan::compute_root
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp
    functionUses: 2
    functionsReached:
    - Botan::n
    - StrongSpan<SphincsTreeNode>::size
    - Botan::copy_mem
    - Botan::set_tree_height
    - Botan::size
    - StrongSpan<const SphincsAuthenticationPath>::size
    - Botan::T
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - Botan::swap
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void compute_root(StrongSpan<SphincsTreeNode> out,\n                  const
      Sphincs_Parameters& params,\n                  Sphincs_Hash_Functions& hashes,\n
      \                 const SphincsTreeNode& leaf,\n                  TreeNodeIndex
      leaf_idx,\n                  uint32_t idx_offset,\n                  StrongSpan<const
      SphincsAuthenticationPath> authentication_path,\n                  uint32_t
      total_tree_height,\n                  Sphincs_Address& tree_address)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Hash_Functions
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:25,1
    - Dst: tweak_hash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:58,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:59,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:60,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:65,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:66,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:71,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:75,1
    - Dst: Botan::Sphincs_Hash_Functions
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 104
    functionName: Botan::Sphincs_Hash_Functions
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h
    functionUses: 1
    functionsReached:
    - Botan::n
    - tweak_hash
    - Botan::update
    - Botan::Sphincs_Hash_Functions
    - Botan::size
    - Botan::T
    - Botan::final
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Sphincs_Hash_Functions
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tweak_hash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:58,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:59,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - ' address'
    argTypes:
    - std::span<uint8_t>
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: Botan::T
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h
    functionUses: 17
    functionsReached:
    - tweak_hash
    - Botan::size
    - Botan::final
    - Botan::update
    linkageType: ''
    returnType: void
    signature: void T(std::span<uint8_t> out, const Sphincs_Address& address, const
      BufferTs&... in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:65,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' address'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan::T
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h
    functionUses: 18
    functionsReached:
    - Botan::n
    - Botan::T
    linkageType: ''
    returnType: OutT
    signature: OutT T(const Sphincs_Address& address, const BufferTs&... in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - ' sk_seed'
    - ' address'
    argTypes:
    - StrongSpan<ForsLeafSecret>
    - SphincsSecretSeed
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::PRF
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h
    functionUses: 2
    functionsReached:
    - Botan::T
    linkageType: ''
    returnType: void
    signature: void PRF(StrongSpan<ForsLeafSecret> out, const SphincsSecretSeed& sk_seed,
      const Sphincs_Address& address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - ' sk_seed'
    - ' address'
    argTypes:
    - StrongSpan<WotsNode>
    - SphincsSecretSeed
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan::PRF
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h
    functionUses: 2
    functionsReached:
    - Botan::T
    linkageType: ''
    returnType: void
    signature: void PRF(StrongSpan<WotsNode> out, const SphincsSecretSeed& sk_seed,
      const Sphincs_Address& address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Hash_Functions
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:25,1
    - Dst: tweak_hash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:58,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:59,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:60,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:65,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:66,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:71,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:75,1
    - Dst: Botan::Sphincs_Hash_Functions
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 104
    functionName: Botan::Sphincs_Hash_Functions
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h
    functionUses: 2
    functionsReached:
    - Botan::n
    - tweak_hash
    - Botan::update
    - Botan::Sphincs_Hash_Functions
    - Botan::size
    - Botan::T
    - Botan::final
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Sphincs_Hash_Functions
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tweak_hash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:58,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:58,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:59,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - ' address'
    argTypes:
    - std::span<uint8_t>
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: Botan::T
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h
    functionUses: 21
    functionsReached:
    - tweak_hash
    - Botan::size
    - Botan::final
    - Botan::update
    linkageType: ''
    returnType: void
    signature: void T(std::span<uint8_t> out, const Sphincs_Address& address, const
      BufferTs&... in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:65,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' address'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Botan::T
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h
    functionUses: 22
    functionsReached:
    - Botan::n
    - Botan::T
    linkageType: ''
    returnType: OutT
    signature: OutT T(const Sphincs_Address& address, const BufferTs&... in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - ' sk_seed'
    - ' address'
    argTypes:
    - StrongSpan<ForsLeafSecret>
    - SphincsSecretSeed
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::PRF
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h
    functionUses: 2
    functionsReached:
    - Botan::T
    linkageType: ''
    returnType: void
    signature: void PRF(StrongSpan<ForsLeafSecret> out, const SphincsSecretSeed& sk_seed,
      const Sphincs_Address& address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - ' sk_seed'
    - ' address'
    argTypes:
    - StrongSpan<WotsNode>
    - SphincsSecretSeed
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan::PRF
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.h
    functionUses: 2
    functionsReached:
    - Botan::T
    linkageType: ''
    returnType: void
    signature: void PRF(StrongSpan<WotsNode> out, const SphincsSecretSeed& sk_seed,
      const Sphincs_Address& address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h:200,1
    - Dst: Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 255
    functionName: final
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 176
    functionsReached:
    - public_key_bytes
    - Sphincs_Parameters
    linkageType: ''
    returnType: Sphincs_Parameters
    signature: Sphincs_Parameters final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: hash_type
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: Sphincs_Hash_Type
    signature: Sphincs_Hash_Type hash_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: parameter_set
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Sphincs_Parameter_Set
    signature: Sphincs_Parameter_Set parameter_set() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: n
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 3429
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: h
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 811
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t h() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: d
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 2602
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t d() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: a
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 1533
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: k
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 1430
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t k() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: w
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 600
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t w() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: bitsec
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bitsec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: xmss_tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xmss_tree_height() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: xmss_signature_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xmss_signature_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: ht_signature_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ht_signature_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: log_w
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t log_w() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: wots_len_1
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t wots_len_1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: wots_len_2
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t wots_len_2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: wots_len
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t wots_len() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: wots_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t wots_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: wots_checksum_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t wots_checksum_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: fors_signature_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fors_signature_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: fors_message_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fors_message_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: sphincs_signature_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t sphincs_signature_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: public_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t public_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: private_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 8
    functionsReached:
    - public_key_bytes
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t private_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: tree_digest_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tree_digest_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: leaf_digest_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t leaf_digest_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    functionName: h_msg_digest_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t h_msg_digest_bytes() const
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:157,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:157,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 128
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 158
    functionName: Botan::set_and_hash_from_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - Botan::fmt
    linkageType: ''
    returnType: std::pair<Sphincs_Parameter_Set, Sphincs_Hash_Type>
    signature: std::pair<Sphincs_Parameter_Set, Sphincs_Hash_Type> set_and_hash_from_name(std::string_view
      name)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:242,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:245,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 246
    functionName: Botan::name_from_set_and_hash
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: std::string
    signature: std::string name_from_set_and_hash(Sphincs_Parameter_Set set, Sphincs_Hash_Type
      hash)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - set
    argTypes:
    - Sphincs_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 266
    functionName: Botan::is_slh_dsa_set
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool is_slh_dsa_set(Sphincs_Parameter_Set set)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:157,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:157,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 128
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 158
    functionName: Botan::set_and_hash_from_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - Botan::fmt
    linkageType: ''
    returnType: std::pair<Sphincs_Parameter_Set, Sphincs_Hash_Type>
    signature: std::pair<Sphincs_Parameter_Set, Sphincs_Hash_Type> set_and_hash_from_name(std::string_view
      name)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:242,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:245,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 246
    functionName: Botan::name_from_set_and_hash
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: std::string
    signature: std::string name_from_set_and_hash(Sphincs_Parameter_Set set, Sphincs_Hash_Type
      hash)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - set
    argTypes:
    - Sphincs_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 266
    functionName: Botan::is_slh_dsa_set
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool is_slh_dsa_set(Sphincs_Parameter_Set set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:280,1
    - Dst: is_slh_dsa_set
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:280,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:282,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:283,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:284,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:287,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:291,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:297,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:306,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:311,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:317,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 9
    argNames:
    - set
    - hash_type
    - n
    - h
    - d
    - a
    - k
    - w
    - bitsec
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 320
    functionName: Botan::Sphincs_Parameters::Sphincs_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - is_slh_dsa_set
    - ceil_tobytes
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_NOMSG
    - ceil_log2
    linkageType: ''
    returnType: void
    signature: "void Sphincs_Parameters::Sphincs_Parameters(Sphincs_Parameter_Set
      set,\n                                       Sphincs_Hash_Type hash_type,\n
      \                                      uint32_t n,\n                                       uint32_t
      h,\n                                       uint32_t d,\n                                       uint32_t
      a,\n                                       uint32_t k,\n                                       uint32_t
      w,\n                                       uint32_t bitsec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_slh_dsa_set
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 345
    functionName: Botan::Sphincs_Parameters::is_available
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - is_slh_dsa_set
    linkageType: ''
    returnType: bool
    signature: bool Sphincs_Parameters::is_available() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:353,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:356,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:360,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:363,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:367,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:370,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 373
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 64
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Sphincs_Parameters::Sphincs_Parameters
    linkageType: ''
    returnType: Sphincs_Parameters
    signature: "Sphincs_Parameters Sphincs_Parameters::create(\n   Sphincs_Parameter_Set
      set, Sphincs_Hash_Type hash /*, SlhDsaInputMode input_mode [TODO: prehash mode]*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_and_hash_from_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:376,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 65
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - set_and_hash_from_name
    linkageType: ''
    returnType: Sphincs_Parameters
    signature: Sphincs_Parameters Sphincs_Parameters::create(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_slh_dsa_set
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 382
    functionName: Botan::Sphincs_Parameters::is_slh_dsa
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - is_slh_dsa_set
    linkageType: ''
    returnType: bool
    signature: bool Sphincs_Parameters::is_slh_dsa() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:389,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:389,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 394
    functionName: Botan::Sphincs_Parameters::hash_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - n
    - BOTAN_ASSERT_UNREACHABLE
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Sphincs_Parameters::hash_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name_from_set_and_hash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:397,1
    - Dst: parameter_set
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:397,1
    - Dst: hash_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: Botan::Sphincs_Parameters::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - hash_type
    - name_from_set_and_hash
    - parameter_set
    linkageType: ''
    returnType: std::string
    signature: std::string Sphincs_Parameters::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:401,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 66
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - to_formatted_string
    linkageType: ''
    returnType: Sphincs_Parameters
    signature: Sphincs_Parameters Sphincs_Parameters::create(const OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:405,1
    - Dst: Botan::Sphincs_Parameters::to_string
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: Botan::Sphincs_Parameters::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::to_string
    - Botan::OID::from_string
    linkageType: ''
    returnType: OID
    signature: OID Sphincs_Parameters::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:409,1
    - Dst: Botan::Sphincs_Parameters::object_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 410
    functionName: Botan::Sphincs_Parameters::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::object_identifier
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Sphincs_Parameters::algorithm_identifier() const
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:157,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:157,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 128
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 158
    functionName: Botan::set_and_hash_from_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - Botan::fmt
    linkageType: ''
    returnType: std::pair<Sphincs_Parameter_Set, Sphincs_Hash_Type>
    signature: std::pair<Sphincs_Parameter_Set, Sphincs_Hash_Type> set_and_hash_from_name(std::string_view
      name)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:242,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:245,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 246
    functionName: Botan::name_from_set_and_hash
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: std::string
    signature: std::string name_from_set_and_hash(Sphincs_Parameter_Set set, Sphincs_Hash_Type
      hash)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - set
    argTypes:
    - Sphincs_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 266
    functionName: Botan::is_slh_dsa_set
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool is_slh_dsa_set(Sphincs_Parameter_Set set)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:157,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:157,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 128
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 158
    functionName: Botan::set_and_hash_from_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - Botan::fmt
    linkageType: ''
    returnType: std::pair<Sphincs_Parameter_Set, Sphincs_Hash_Type>
    signature: std::pair<Sphincs_Parameter_Set, Sphincs_Hash_Type> set_and_hash_from_name(std::string_view
      name)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:242,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:245,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 246
    functionName: Botan::name_from_set_and_hash
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: std::string
    signature: std::string name_from_set_and_hash(Sphincs_Parameter_Set set, Sphincs_Hash_Type
      hash)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - set
    argTypes:
    - Sphincs_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 266
    functionName: Botan::is_slh_dsa_set
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool is_slh_dsa_set(Sphincs_Parameter_Set set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:280,1
    - Dst: is_slh_dsa_set
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:280,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:282,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:283,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:284,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:287,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:291,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:297,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:306,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:311,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:317,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 9
    argNames:
    - set
    - hash_type
    - n
    - h
    - d
    - a
    - k
    - w
    - bitsec
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 320
    functionName: Botan::Sphincs_Parameters::Sphincs_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 1
    functionsReached:
    - is_slh_dsa_set
    - ceil_tobytes
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_NOMSG
    - ceil_log2
    linkageType: ''
    returnType: void
    signature: "void Sphincs_Parameters::Sphincs_Parameters(Sphincs_Parameter_Set
      set,\n                                       Sphincs_Hash_Type hash_type,\n
      \                                      uint32_t n,\n                                       uint32_t
      h,\n                                       uint32_t d,\n                                       uint32_t
      a,\n                                       uint32_t k,\n                                       uint32_t
      w,\n                                       uint32_t bitsec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_slh_dsa_set
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 345
    functionName: Botan::Sphincs_Parameters::is_available
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - is_slh_dsa_set
    linkageType: ''
    returnType: bool
    signature: bool Sphincs_Parameters::is_available() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:353,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:356,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:360,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:363,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:367,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:370,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 373
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 66
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Sphincs_Parameters::Sphincs_Parameters
    linkageType: ''
    returnType: Sphincs_Parameters
    signature: "Sphincs_Parameters Sphincs_Parameters::create(\n   Sphincs_Parameter_Set
      set, Sphincs_Hash_Type hash /*, SlhDsaInputMode input_mode [TODO: prehash mode]*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_and_hash_from_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:376,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 67
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - set_and_hash_from_name
    linkageType: ''
    returnType: Sphincs_Parameters
    signature: Sphincs_Parameters Sphincs_Parameters::create(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_slh_dsa_set
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 382
    functionName: Botan::Sphincs_Parameters::is_slh_dsa
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - is_slh_dsa_set
    linkageType: ''
    returnType: bool
    signature: bool Sphincs_Parameters::is_slh_dsa() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:389,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:389,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 394
    functionName: Botan::Sphincs_Parameters::hash_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - n
    - BOTAN_ASSERT_UNREACHABLE
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string Sphincs_Parameters::hash_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name_from_set_and_hash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:397,1
    - Dst: parameter_set
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:397,1
    - Dst: hash_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: Botan::Sphincs_Parameters::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 1
    functionsReached:
    - hash_type
    - name_from_set_and_hash
    - parameter_set
    linkageType: ''
    returnType: std::string
    signature: std::string Sphincs_Parameters::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:401,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 68
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - to_formatted_string
    linkageType: ''
    returnType: Sphincs_Parameters
    signature: Sphincs_Parameters Sphincs_Parameters::create(const OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:405,1
    - Dst: Botan::Sphincs_Parameters::to_string
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: Botan::Sphincs_Parameters::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sphincs_Parameters::to_string
    - Botan::OID::from_string
    linkageType: ''
    returnType: OID
    signature: OID Sphincs_Parameters::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:409,1
    - Dst: Botan::Sphincs_Parameters::object_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 410
    functionName: Botan::Sphincs_Parameters::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::object_identifier
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Sphincs_Parameters::algorithm_identifier() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:28,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:28,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:29,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:29,1
    - Dst: std::optional<TreeNodeIndex>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:34,1
    - Dst: Botan::chain_lengths
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:35,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:41,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:42,1
    - Dst: Sphincs_Address::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:44,1
    - Dst: Botan::wots_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:47,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:51,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:52,1
    - Dst: Botan::get_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:52,1
    - Dst: Botan::treehash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:53,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 8
    argNames:
    - out_sig
    - ' message'
    - ' secret_seed'
    - ' wots_addr'
    - ' tree_addr'
    - idx_leaf
    - ' params'
    - ' hashes'
    argTypes:
    - StrongSpan<SphincsXmssSignature>
    - SphincsTreeNode
    - SphincsSecretSeed
    - Sphincs_Address
    - Sphincs_Address
    - std::optional<TreeNodeIndex>
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 56
    functionName: Botan::xmss_sign_and_pkgen
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp
    functionUses: 2
    functionsReached:
    - Botan::treehash
    - Botan::n
    - xmss_tree_height
    - Sphincs_Address::set_type
    - wots_bytes
    - BufferStuffer::remaining_capacity
    - Botan::wots_sign_and_pkgen
    - BufferStuffer::next
    - std::optional<TreeNodeIndex>::has_value
    - Botan::chain_lengths
    - Botan::as_subtree_from
    - Botan::get_type
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: SphincsTreeNode
    signature: "SphincsTreeNode xmss_sign_and_pkgen(StrongSpan<SphincsXmssSignature>
      out_sig,\n                                    const SphincsTreeNode& message,\n
      \                                   const SphincsSecretSeed& secret_seed,\n
      \                                   Sphincs_Address& wots_addr,\n                                    Sphincs_Address&
      tree_addr,\n                                    std::optional<TreeNodeIndex>
      idx_leaf,\n                                    const Sphincs_Parameters& params,\n
      \                                   Sphincs_Hash_Functions& hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:64,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:64,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:64,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:65,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:70,1
    - Dst: HypertreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:70,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:70,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:71,1
    - Dst: HypertreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:71,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:71,1
    - Dst: Botan::xmss_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' params'
    - ' secret_seed'
    - ' hashes'
    argTypes:
    - Sphincs_Parameters
    - SphincsSecretSeed
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: Botan::xmss_gen_root
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::n
    - xmss_tree_height
    - wots_bytes
    - Sphincs_Address::set_layer_address
    - Botan::xmss_sign_and_pkgen
    - HypertreeLayerIndex
    - Botan::d
    linkageType: ''
    returnType: SphincsTreeNode
    signature: "SphincsTreeNode xmss_gen_root(const Sphincs_Parameters& params,\n
      \                             const SphincsSecretSeed& secret_seed,\n                              Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:28,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:28,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:29,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:29,1
    - Dst: std::optional<TreeNodeIndex>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:34,1
    - Dst: Botan::chain_lengths
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:35,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:41,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:42,1
    - Dst: Sphincs_Address::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:44,1
    - Dst: Botan::wots_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:47,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:51,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:52,1
    - Dst: Botan::get_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:52,1
    - Dst: Botan::treehash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:53,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 8
    argNames:
    - out_sig
    - ' message'
    - ' secret_seed'
    - ' wots_addr'
    - ' tree_addr'
    - idx_leaf
    - ' params'
    - ' hashes'
    argTypes:
    - StrongSpan<SphincsXmssSignature>
    - SphincsTreeNode
    - SphincsSecretSeed
    - Sphincs_Address
    - Sphincs_Address
    - std::optional<TreeNodeIndex>
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 56
    functionName: Botan::xmss_sign_and_pkgen
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp
    functionUses: 3
    functionsReached:
    - Botan::treehash
    - Botan::n
    - xmss_tree_height
    - Sphincs_Address::set_type
    - wots_bytes
    - BufferStuffer::remaining_capacity
    - Botan::wots_sign_and_pkgen
    - BufferStuffer::next
    - std::optional<TreeNodeIndex>::has_value
    - Botan::chain_lengths
    - Botan::as_subtree_from
    - Botan::get_type
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: SphincsTreeNode
    signature: "SphincsTreeNode xmss_sign_and_pkgen(StrongSpan<SphincsXmssSignature>
      out_sig,\n                                    const SphincsTreeNode& message,\n
      \                                   const SphincsSecretSeed& secret_seed,\n
      \                                   Sphincs_Address& wots_addr,\n                                    Sphincs_Address&
      tree_addr,\n                                    std::optional<TreeNodeIndex>
      idx_leaf,\n                                    const Sphincs_Parameters& params,\n
      \                                   Sphincs_Hash_Functions& hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:64,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:64,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:64,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:65,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:70,1
    - Dst: HypertreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:70,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:70,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:71,1
    - Dst: HypertreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:71,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:71,1
    - Dst: Botan::xmss_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' params'
    - ' secret_seed'
    - ' hashes'
    argTypes:
    - Sphincs_Parameters
    - SphincsSecretSeed
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: Botan::xmss_gen_root
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::n
    - xmss_tree_height
    - wots_bytes
    - Sphincs_Address::set_layer_address
    - Botan::xmss_sign_and_pkgen
    - HypertreeLayerIndex
    - Botan::d
    linkageType: ''
    returnType: SphincsTreeNode
    signature: "SphincsTreeNode xmss_gen_root(const Sphincs_Parameters& params,\n
      \                             const SphincsSecretSeed& secret_seed,\n                              Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SphincsPlus_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKey(const SphincsPlus_PublicKey& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SphincsPlus_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKey(SphincsPlus_PublicKey&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SphincsPlus_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKey(const SphincsPlus_PublicKey& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SphincsPlus_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PublicKey(SphincsPlus_PublicKey&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SphincsPlus_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKey(const SphincsPlus_PrivateKey& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SphincsPlus_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SphincsPlus_PrivateKey(SphincsPlus_PrivateKey&& other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:31,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:38,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:40,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:45,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:49,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:53,1
    - Dst: update_idx
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - message
    - ' params'
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 59
    functionName: Botan::fors_message_to_indices
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 0
    functionsReached:
    - update_idx
    - k
    - a
    - Internal_Error
    - is_slh_dsa
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::vector<TreeNodeIndex>
    signature: std::vector<TreeNodeIndex> fors_message_to_indices(std::span<const
      uint8_t> message, const Sphincs_Parameters& params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:31,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:38,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:40,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:45,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:49,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:53,1
    - Dst: update_idx
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - message
    - ' params'
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 59
    functionName: Botan::fors_message_to_indices
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 0
    functionsReached:
    - update_idx
    - k
    - a
    - Internal_Error
    - is_slh_dsa
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::vector<TreeNodeIndex>
    signature: std::vector<TreeNodeIndex> fors_message_to_indices(std::span<const
      uint8_t> message, const Sphincs_Parameters& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:69,1
    - Dst: StrongSpan<ForsSignature>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:69,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:69,1
    - Dst: Botan::fors_message_to_indices
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:71,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:73,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:75,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:77,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:77,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:83,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:87,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:87,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:87,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:88,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:89,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:92,1
    - Dst: TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:93,1
    - Dst: Botan::PRF
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:96,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:96,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:96,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:99,1
    - Dst: auto::set_tree_index
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:103,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:104,1
    - Dst: Botan::PRF
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:106,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:108,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:109,1
    - Dst: Botan::treehash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:112,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:112,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:112,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:113,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:113,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:113,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:118,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:123,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:123,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:124,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:124,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 6
    argNames:
    - sig_out
    - ' hashed_message'
    - ' secret_seed'
    - ' address'
    - ' params'
    - ' hashes'
    argTypes:
    - StrongSpan<ForsSignature>
    - SphincsHashedMessage
    - SphincsSecretSeed
    - Sphincs_Address
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 128
    functionName: Botan::fors_sign_and_pkgen
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 4
    functionsReached:
    - Botan::fors_message_to_indices
    - Botan::treehash
    - Botan::n
    - Botan::PRF
    - BufferStuffer::full
    - fors_signature_bytes
    - auto::size
    - k
    - a
    - TreeLayerIndex
    - Botan::as_keypair_from
    - auto::set_type
    - BufferStuffer::next
    - auto::set_tree_index
    - BOTAN_ASSERT_NOMSG
    - StrongSpan<ForsSignature>::size
    - Botan::T
    linkageType: ''
    returnType: SphincsTreeNode
    signature: "SphincsTreeNode fors_sign_and_pkgen(StrongSpan<ForsSignature> sig_out,\n
      \                                   const SphincsHashedMessage& hashed_message,\n
      \                                   const SphincsSecretSeed& secret_seed,\n
      \                                   const Sphincs_Address& address,\n                                    const
      Sphincs_Parameters& params,\n                                    Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fors_message_to_indices
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:135,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:137,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:139,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:142,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:142,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:147,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:147,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:147,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:148,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:149,1
    - Dst: auto::set_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:152,1
    - Dst: TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:152,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:153,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:153,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:154,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:154,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:154,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:155,1
    - Dst: Botan::compute_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:158,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:158,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:158,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:165,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:169,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:169,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ' hashed_message'
    - signature
    - ' address'
    - ' params'
    - ' hashes'
    argTypes:
    - SphincsHashedMessage
    - StrongSpan<const ForsSignature>
    - Sphincs_Address
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 174
    functionName: Botan::fors_public_key_from_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 4
    functionsReached:
    - Botan::fors_message_to_indices
    - BufferStuffer::full
    - Botan::n
    - auto::size
    - k
    - a
    - TreeLayerIndex
    - Botan::as_keypair_from
    - BufferStuffer::next
    - auto::set_tree_height
    - Botan::T
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    - Botan::compute_root
    linkageType: ''
    returnType: SphincsTreeNode
    signature: "SphincsTreeNode fors_public_key_from_signature(const SphincsHashedMessage&
      hashed_message,\n                                               StrongSpan<const
      ForsSignature> signature,\n                                               const
      Sphincs_Address& address,\n                                               const
      Sphincs_Parameters& params,\n                                               Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:31,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:38,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:40,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:45,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:49,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:53,1
    - Dst: update_idx
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - message
    - ' params'
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 59
    functionName: Botan::fors_message_to_indices
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 2
    functionsReached:
    - update_idx
    - k
    - a
    - Internal_Error
    - is_slh_dsa
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::vector<TreeNodeIndex>
    signature: std::vector<TreeNodeIndex> fors_message_to_indices(std::span<const
      uint8_t> message, const Sphincs_Parameters& params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:29,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:31,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:38,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:40,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:45,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:49,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:53,1
    - Dst: update_idx
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - message
    - ' params'
    argTypes:
    - std::span<const uint8_t>
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 59
    functionName: Botan::fors_message_to_indices
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 2
    functionsReached:
    - update_idx
    - k
    - a
    - Internal_Error
    - is_slh_dsa
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: std::vector<TreeNodeIndex>
    signature: std::vector<TreeNodeIndex> fors_message_to_indices(std::span<const
      uint8_t> message, const Sphincs_Parameters& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:69,1
    - Dst: StrongSpan<ForsSignature>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:69,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:69,1
    - Dst: Botan::fors_message_to_indices
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:71,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:73,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:75,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:77,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:77,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:83,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:87,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:87,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:87,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:88,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:89,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:92,1
    - Dst: TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:93,1
    - Dst: Botan::PRF
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:96,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:96,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:96,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:99,1
    - Dst: auto::set_tree_index
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:103,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:104,1
    - Dst: Botan::PRF
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:106,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:108,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:109,1
    - Dst: Botan::treehash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:112,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:112,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:112,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:113,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:113,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:113,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:118,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:123,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:123,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:124,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:124,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 6
    argNames:
    - sig_out
    - ' hashed_message'
    - ' secret_seed'
    - ' address'
    - ' params'
    - ' hashes'
    argTypes:
    - StrongSpan<ForsSignature>
    - SphincsHashedMessage
    - SphincsSecretSeed
    - Sphincs_Address
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 128
    functionName: Botan::fors_sign_and_pkgen
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 4
    functionsReached:
    - Botan::fors_message_to_indices
    - Botan::treehash
    - Botan::n
    - Botan::PRF
    - BufferStuffer::full
    - fors_signature_bytes
    - auto::size
    - k
    - a
    - TreeLayerIndex
    - Botan::as_keypair_from
    - auto::set_type
    - BufferStuffer::next
    - auto::set_tree_index
    - BOTAN_ASSERT_NOMSG
    - StrongSpan<ForsSignature>::size
    - Botan::T
    linkageType: ''
    returnType: SphincsTreeNode
    signature: "SphincsTreeNode fors_sign_and_pkgen(StrongSpan<ForsSignature> sig_out,\n
      \                                   const SphincsHashedMessage& hashed_message,\n
      \                                   const SphincsSecretSeed& secret_seed,\n
      \                                   const Sphincs_Address& address,\n                                    const
      Sphincs_Parameters& params,\n                                    Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fors_message_to_indices
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:135,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:137,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:139,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:142,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:142,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:147,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:147,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:147,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:148,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:149,1
    - Dst: auto::set_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:152,1
    - Dst: TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:152,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:153,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:153,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:154,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:154,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:154,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:155,1
    - Dst: Botan::compute_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:158,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:158,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:158,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:165,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:169,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:169,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ' hashed_message'
    - signature
    - ' address'
    - ' params'
    - ' hashes'
    argTypes:
    - SphincsHashedMessage
    - StrongSpan<const ForsSignature>
    - Sphincs_Address
    - Sphincs_Parameters
    - Sphincs_Hash_Functions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 174
    functionName: Botan::fors_public_key_from_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 4
    functionsReached:
    - Botan::fors_message_to_indices
    - BufferStuffer::full
    - Botan::n
    - auto::size
    - k
    - a
    - TreeLayerIndex
    - Botan::as_keypair_from
    - BufferStuffer::next
    - auto::set_tree_height
    - Botan::T
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    - Botan::compute_root
    linkageType: ''
    returnType: SphincsTreeNode
    signature: "SphincsTreeNode fors_public_key_from_signature(const SphincsHashedMessage&
      hashed_message,\n                                               StrongSpan<const
      ForsSignature> signature,\n                                               const
      Sphincs_Address& address,\n                                               const
      Sphincs_Parameters& params,\n                                               Sphincs_Hash_Functions&
      hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:24,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:25,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:26,1
    - Dst: Botan::to_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' address'
    - input_length
    argTypes:
    - Sphincs_Address
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: '& tweak_hash(const Sphincs_Address& address, size_t input_length)
      override'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h
    functionUses: 0
    functionsReached:
    - Botan::to_bytes
    - Botan::update
    - BOTAN_UNUSED
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & tweak_hash(const Sphincs_Address& address, size_t input_length)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:33,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:34,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:35,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:36,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:37,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - r
    - ' root'
    - ' message'
    argTypes:
    - StrongSpan<const SphincsMessageRandomness>
    - SphincsTreeNode
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: Botan::Sphincs_Hash_Functions_Shake::H_msg_digest
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h
    functionUses: 0
    functionsReached:
    - final_stdvec
    - update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> H_msg_digest(StrongSpan<const SphincsMessageRandomness>
      r,\n                                        const SphincsTreeNode& root,\n                                        const
      SphincsMessageInternal& message) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:45,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:46,1
    - Dst: h_msg_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:47,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' sphincs_params'
    - ' pub_seed'
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: Botan::Sphincs_Hash_Functions_Shake::Sphincs_Hash_Functions_Shake
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h
    functionUses: 0
    functionsReached:
    - n
    - update
    - h_msg_digest_bytes
    linkageType: ''
    returnType: void
    signature: void Sphincs_Hash_Functions_Shake(const Sphincs_Parameters& sphincs_params,
      const SphincsPublicSeed& pub_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:55,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:56,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:57,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:58,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - sk_prf
    - opt_rand
    - ' msg'
    argTypes:
    - StrongSpan<SphincsMessageRandomness>
    - StrongSpan<const SphincsSecretPRF>
    - StrongSpan<const SphincsOptionalRandomness>
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: Botan::Sphincs_Hash_Functions_Shake::PRF_msg
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h
    functionUses: 0
    functionsReached:
    - update
    - final
    linkageType: ''
    returnType: void
    signature: "void PRF_msg(StrongSpan<SphincsMessageRandomness> out,\n                   StrongSpan<const
      SphincsSecretPRF> sk_prf,\n                   StrongSpan<const SphincsOptionalRandomness>
      opt_rand,\n                   const SphincsMessageInternal& msg) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::Sphincs_Hash_Functions_Shake::msg_hash_function_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string msg_hash_function_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:24,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:25,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:26,1
    - Dst: to_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' address'
    - input_length
    argTypes:
    - Sphincs_Address
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: '& tweak_hash(const Sphincs_Address& address, size_t input_length)
      override'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - update
    - to_bytes
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & tweak_hash(const Sphincs_Address& address, size_t input_length)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:33,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:34,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:35,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:36,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:37,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - r
    - ' root'
    - ' message'
    argTypes:
    - StrongSpan<const SphincsMessageRandomness>
    - SphincsTreeNode
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: Botan::Sphincs_Hash_Functions_Shake::H_msg_digest
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h
    functionUses: 0
    functionsReached:
    - final_stdvec
    - update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> H_msg_digest(StrongSpan<const SphincsMessageRandomness>
      r,\n                                        const SphincsTreeNode& root,\n                                        const
      SphincsMessageInternal& message) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:45,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:46,1
    - Dst: h_msg_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:47,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' sphincs_params'
    - ' pub_seed'
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: Botan::Sphincs_Hash_Functions_Shake::Sphincs_Hash_Functions_Shake
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h
    functionUses: 0
    functionsReached:
    - n
    - update
    - h_msg_digest_bytes
    linkageType: ''
    returnType: void
    signature: void Sphincs_Hash_Functions_Shake(const Sphincs_Parameters& sphincs_params,
      const SphincsPublicSeed& pub_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:55,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:56,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:57,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:58,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - sk_prf
    - opt_rand
    - ' msg'
    argTypes:
    - StrongSpan<SphincsMessageRandomness>
    - StrongSpan<const SphincsSecretPRF>
    - StrongSpan<const SphincsOptionalRandomness>
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: Botan::Sphincs_Hash_Functions_Shake::PRF_msg
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h
    functionUses: 0
    functionsReached:
    - update
    - final
    linkageType: ''
    returnType: void
    signature: "void PRF_msg(StrongSpan<SphincsMessageRandomness> out,\n                   StrongSpan<const
      SphincsSecretPRF> sk_prf,\n                   StrongSpan<const SphincsOptionalRandomness>
      opt_rand,\n                   const SphincsMessageInternal& msg) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::Sphincs_Hash_Functions_Shake::msg_hash_function_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_shake_base/sp_hash_shake.h
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string msg_hash_function_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:37,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:39,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:40,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:41,1
    - Dst: Botan::to_bytes_compressed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' address'
    - input_length
    argTypes:
    - Sphincs_Address
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: '& tweak_hash(const Sphincs_Address& address, size_t input_length)
      override'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h
    functionUses: 0
    functionsReached:
    - Botan::update
    - Botan::n
    - Botan::to_bytes_compressed
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & tweak_hash(const Sphincs_Address& address, size_t input_length)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:48,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:49,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:50,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:51,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:52,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:54,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:55,1
    - Dst: h_msg_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:57,1
    - Dst: mgf1_mask
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - r
    - ' root'
    - ' message'
    argTypes:
    - StrongSpan<const SphincsMessageRandomness>
    - SphincsTreeNode
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: Botan::Sphincs_Hash_Functions_Sha2::H_msg_digest
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h
    functionUses: 0
    functionsReached:
    - concat
    - h_msg_digest_bytes
    - final
    - mgf1_mask
    - update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> H_msg_digest(StrongSpan<const SphincsMessageRandomness>
      r,\n                                        const SphincsTreeNode& root,\n                                        const
      SphincsMessageInternal& message) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:66,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:67,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:67,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:67,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:68,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:68,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:68,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:68,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:70,1
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:71,1
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:71,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:71,1
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:72,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:75,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:75,1
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:76,1
    - Dst: std::make_unique<SHA_512>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:76,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:76,1
    - Dst: std::make_unique<SHA_512>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:77,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:79,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:80,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:80,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:80,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:81,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:81,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:81,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:81,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:84,1
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:85,1
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:85,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:85,1
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - ' sphincs_params'
    - ' pub_seed'
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 89
    functionName: Botan::Sphincs_Hash_Functions_Sha2::Sphincs_Hash_Functions_Sha2
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h
    functionUses: 0
    functionsReached:
    - n
    - copy
    - std::vector<uint8_t>
    - std::make_unique<SHA_256>
    - begin
    - size
    - std::make_unique<Truncated_Hash>
    - BOTAN_ASSERT_NOMSG
    - std::make_unique<SHA_512>
    - end
    linkageType: ''
    returnType: void
    signature: void Sphincs_Hash_Functions_Sha2(const Sphincs_Parameters& sphincs_params,
      const SphincsPublicSeed& pub_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_object
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:95,1
    - Dst: HMAC::set_key
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:96,1
    - Dst: HMAC::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:97,1
    - Dst: HMAC::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:98,1
    - Dst: HMAC::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:99,1
    - Dst: HMAC::final
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:101,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:102,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:102,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:102,1
    - Dst: StrongSpan<SphincsMessageRandomness>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:102,1
    - Dst: StrongSpan<SphincsMessageRandomness>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - sk_prf
    - opt_rand
    - ' msg'
    argTypes:
    - StrongSpan<SphincsMessageRandomness>
    - StrongSpan<const SphincsSecretPRF>
    - StrongSpan<const SphincsOptionalRandomness>
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: Botan::Sphincs_Hash_Functions_Sha2::PRF_msg
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h
    functionUses: 0
    functionsReached:
    - auto::begin
    - copy
    - new_object
    - HMAC::set_key
    - StrongSpan<SphincsMessageRandomness>::size
    - StrongSpan<SphincsMessageRandomness>::begin
    - HMAC::final
    - HMAC::update
    linkageType: ''
    returnType: void
    signature: "void PRF_msg(StrongSpan<SphincsMessageRandomness> out,\n                   StrongSpan<const
      SphincsSecretPRF> sk_prf,\n                   StrongSpan<const SphincsOptionalRandomness>
      opt_rand,\n                   const SphincsMessageInternal& msg) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan::Sphincs_Hash_Functions_Sha2::msg_hash_function_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string msg_hash_function_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:37,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:39,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:40,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:41,1
    - Dst: to_bytes_compressed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' address'
    - input_length
    argTypes:
    - Sphincs_Address
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: '& tweak_hash(const Sphincs_Address& address, size_t input_length)
      override'
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h
    functionUses: 0
    functionsReached:
    - n
    - update
    - to_bytes_compressed
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & tweak_hash(const Sphincs_Address& address, size_t input_length)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:48,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:49,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:50,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:51,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:52,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:54,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:55,1
    - Dst: h_msg_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:57,1
    - Dst: mgf1_mask
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - r
    - ' root'
    - ' message'
    argTypes:
    - StrongSpan<const SphincsMessageRandomness>
    - SphincsTreeNode
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: Botan::Sphincs_Hash_Functions_Sha2::H_msg_digest
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h
    functionUses: 0
    functionsReached:
    - concat
    - h_msg_digest_bytes
    - final
    - mgf1_mask
    - update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> H_msg_digest(StrongSpan<const SphincsMessageRandomness>
      r,\n                                        const SphincsTreeNode& root,\n                                        const
      SphincsMessageInternal& message) override"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:66,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:67,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:67,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:67,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:68,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:68,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:68,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:68,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:70,1
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:71,1
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:71,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:71,1
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:72,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:75,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:75,1
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:76,1
    - Dst: std::make_unique<SHA_512>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:76,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:76,1
    - Dst: std::make_unique<SHA_512>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:77,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:79,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:80,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:80,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:80,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:81,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:81,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:81,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:81,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:84,1
    - Dst: std::make_unique<Truncated_Hash>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:85,1
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:85,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:85,1
    - Dst: std::make_unique<SHA_256>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - ' sphincs_params'
    - ' pub_seed'
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 89
    functionName: Botan::Sphincs_Hash_Functions_Sha2::Sphincs_Hash_Functions_Sha2
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h
    functionUses: 0
    functionsReached:
    - n
    - copy
    - std::vector<uint8_t>
    - std::make_unique<SHA_256>
    - begin
    - size
    - std::make_unique<Truncated_Hash>
    - BOTAN_ASSERT_NOMSG
    - std::make_unique<SHA_512>
    - end
    linkageType: ''
    returnType: void
    signature: void Sphincs_Hash_Functions_Sha2(const Sphincs_Parameters& sphincs_params,
      const SphincsPublicSeed& pub_seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_object
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:95,1
    - Dst: HMAC::set_key
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:96,1
    - Dst: HMAC::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:97,1
    - Dst: HMAC::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:98,1
    - Dst: HMAC::update
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:99,1
    - Dst: HMAC::final
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:101,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:102,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:102,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:102,1
    - Dst: StrongSpan<SphincsMessageRandomness>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:102,1
    - Dst: StrongSpan<SphincsMessageRandomness>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - sk_prf
    - opt_rand
    - ' msg'
    argTypes:
    - StrongSpan<SphincsMessageRandomness>
    - StrongSpan<const SphincsSecretPRF>
    - StrongSpan<const SphincsOptionalRandomness>
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: Botan::Sphincs_Hash_Functions_Sha2::PRF_msg
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h
    functionUses: 0
    functionsReached:
    - auto::begin
    - copy
    - new_object
    - HMAC::set_key
    - StrongSpan<SphincsMessageRandomness>::size
    - StrongSpan<SphincsMessageRandomness>::begin
    - HMAC::final
    - HMAC::update
    linkageType: ''
    returnType: void
    signature: "void PRF_msg(StrongSpan<SphincsMessageRandomness> out,\n                   StrongSpan<const
      SphincsSecretPRF> sk_prf,\n                   StrongSpan<const SphincsOptionalRandomness>
      opt_rand,\n                   const SphincsMessageInternal& msg) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan::Sphincs_Hash_Functions_Sha2::msg_hash_function_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus_sha2_base/sp_hash_sha2.h
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string msg_hash_function_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: ~EC_Scalar_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EC_Scalar_Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: ~EC_AffinePoint_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EC_AffinePoint_Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: ~EC_Mul2Table_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EC_Mul2Table_Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::EC_Group_Data::EC_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Data(const EC_Group_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan::EC_Group_Data::EC_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Data(EC_Group_Data&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: '& operator=(const EC_Group_Data& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Data
    signature: EC_Group_Data & operator=(const EC_Group_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: '& operator=(EC_Group_Data&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Data
    signature: EC_Group_Data & operator=(EC_Group_Data&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: '& oid() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OID
    signature: OID & oid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: '& der_named_curve() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & der_named_curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: '& p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: '& a() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: '& b() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: '& order() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & order() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: '& cofactor() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & cofactor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: '& curve() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CurveGFp
    signature: CurveGFp & curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: '& base_point() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & base_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: '& monty() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & monty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& monty_a() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & monty_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: '& monty_b() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & monty_b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: '& mod_order() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Barrett_Reduction
    signature: Barrett_Reduction & mod_order() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan::EC_Group_Data::order_is_less_than_p
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool order_is_less_than_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan::EC_Group_Data::has_cofactor
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_cofactor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: '& g_x() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & g_x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: '& g_y() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & g_y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: Botan::EC_Group_Data::p_words
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t p_words() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: Botan::EC_Group_Data::p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t p_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: Botan::EC_Group_Data::p_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t p_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: Botan::EC_Group_Data::order_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t order_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::EC_Group_Data::order_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t order_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan::EC_Group_Data::a_is_minus_3
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool a_is_minus_3() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: Botan::EC_Group_Data::a_is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool a_is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan::EC_Group_Data::source
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Source
    signature: EC_Group_Source source() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: Botan::EC_Group_Data::engine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Engine
    signature: EC_Group_Engine engine() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: '& pcurve() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: PCurve::PrimeOrderCurve
    signature: PCurve::PrimeOrderCurve & pcurve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: ~EC_Scalar_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EC_Scalar_Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: ~EC_AffinePoint_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EC_AffinePoint_Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: ~EC_Mul2Table_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EC_Mul2Table_Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::EC_Group_Data::EC_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Data(const EC_Group_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: Botan::EC_Group_Data::EC_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Data(EC_Group_Data&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: '& operator=(const EC_Group_Data& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Data
    signature: EC_Group_Data & operator=(const EC_Group_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: '& operator=(EC_Group_Data&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Data
    signature: EC_Group_Data & operator=(EC_Group_Data&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: '& oid() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OID
    signature: OID & oid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: '& der_named_curve() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & der_named_curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: '& p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: '& a() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: '& b() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: '& order() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & order() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: '& cofactor() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & cofactor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: '& curve() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CurveGFp
    signature: CurveGFp & curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: '& base_point() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & base_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: '& monty() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & monty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& monty_a() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & monty_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: '& monty_b() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & monty_b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: '& mod_order() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Barrett_Reduction
    signature: Barrett_Reduction & mod_order() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: Botan::EC_Group_Data::order_is_less_than_p
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool order_is_less_than_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: Botan::EC_Group_Data::has_cofactor
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_cofactor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: '& g_x() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & g_x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: '& g_y() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & g_y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: Botan::EC_Group_Data::p_words
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t p_words() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: Botan::EC_Group_Data::p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t p_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: Botan::EC_Group_Data::p_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t p_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: Botan::EC_Group_Data::order_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t order_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::EC_Group_Data::order_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t order_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan::EC_Group_Data::a_is_minus_3
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool a_is_minus_3() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: Botan::EC_Group_Data::a_is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool a_is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan::EC_Group_Data::source
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Source
    signature: EC_Group_Source source() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: Botan::EC_Group_Data::engine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Engine
    signature: EC_Group_Engine engine() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: '& pcurve() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: PCurve::PrimeOrderCurve
    signature: PCurve::PrimeOrderCurve & pcurve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.h:19,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - group
    - v
    argTypes:
    - std::shared_ptr<const EC_Group_Data>
    - PCurve::PrimeOrderCurve::Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: Botan::EC_Scalar_Data_PC::EC_Scalar_Data_PC
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_PC(std::shared_ptr<const EC_Group_Data> group,
      PCurve::PrimeOrderCurve::Scalar v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: '& value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: '& value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCurve::PrimeOrderCurve::AffinePoint
    signature: PCurve::PrimeOrderCurve::AffinePoint & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.h:19,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - group
    - v
    argTypes:
    - std::shared_ptr<const EC_Group_Data>
    - PCurve::PrimeOrderCurve::Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: Botan::EC_Scalar_Data_PC::EC_Scalar_Data_PC
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_PC(std::shared_ptr<const EC_Group_Data> group,
      PCurve::PrimeOrderCurve::Scalar v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: '& value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: '& value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCurve::PrimeOrderCurve::AffinePoint
    signature: PCurve::PrimeOrderCurve::AffinePoint & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:19,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inner
    argTypes:
    - std::unique_ptr<EC_Scalar_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::EC_Scalar::_from_inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::_from_inner(std::unique_ptr<EC_Scalar_Data> inner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:22,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scalar
    argTypes:
    - std::unique_ptr<EC_Scalar_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::EC_Scalar::EC_Scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 7
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::EC_Scalar(std::unique_ptr<EC_Scalar_Data> scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::EC_Scalar::EC_Scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 7
    functionsReached:
    - inner
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::EC_Scalar(const EC_Scalar& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::EC_Scalar::EC_Scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 7
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::EC_Scalar(EC_Scalar&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: '& EC_Scalar::assign'
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: '& EC_Scalar::operator=(const EC_Scalar& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - '& EC_Scalar::assign'
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar & EC_Scalar::operator=(const EC_Scalar& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:38,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:38,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:38,1
    - Dst: std::swap
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: '& EC_Scalar::operator=(EC_Scalar&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - _inner
    - std::swap
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar & EC_Scalar::operator=(EC_Scalar&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: EC_Scalar::~EC_Scalar()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::~EC_Scalar()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::EC_Scalar::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Scalar::bytes
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Scalar::bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:50,1
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::EC_Scalar::from_bytes_with_trunc
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 8
    functionsReached:
    - _data
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::from_bytes_with_trunc(const EC_Group& group, std::span<const
      uint8_t> bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:54,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:55,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: Botan::EC_Scalar::from_bytes_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 11
    functionsReached:
    - std::move
    - _data
    - Botan::EC_Scalar::EC_Scalar
    - Decoding_Error
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::from_bytes_mod_order(const EC_Group& group, std::span<const
      uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:62,1
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - EC_Group
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::EC_Scalar::random
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 36
    functionsReached:
    - _data
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::random(const EC_Group& group, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:66,1
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::EC_Scalar::one
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 14
    functionsReached:
    - _data
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::one(const EC_Group& group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:70,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:71,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:71,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - ' bn'
    argTypes:
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: Botan::EC_Scalar::from_bigint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 12
    functionsReached:
    - std::move
    - _data
    - Invalid_Argument
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::from_bigint(const EC_Group& group, const BigInt&
      bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:78,1
    - Dst: Botan::EC_Scalar::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:79,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: Botan::EC_Scalar::to_bigint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::bytes
    - Botan::EC_Scalar::serialize_to
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: BigInt
    signature: BigInt EC_Scalar::to_bigint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:84,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:85,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:85,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan::EC_Scalar::gk_x_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 5
    functionsReached:
    - _inner
    - inner
    - Botan::EC_Scalar::EC_Scalar
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::gk_x_mod_order(const EC_Scalar& scalar, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::EC_Scalar::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 1
    functionsReached:
    - inner
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::serialize_to(std::span<uint8_t> bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:93,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:93,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:93,1
    - Dst: Botan::EC_Scalar::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:94,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:95,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:95,1
    - Dst: Botan::EC_Scalar::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:96,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:96,1
    - Dst: Botan::EC_Scalar::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:97,1
    - Dst: std::span<uint8_t>::last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - bytes
    - ' r'
    - ' s'
    argTypes:
    - std::span<uint8_t>
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: Botan::EC_Scalar::serialize_pair_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::EC_Scalar::bytes
    - BOTAN_ARG_CHECK
    - std::span<uint8_t>::first
    - _inner
    - std::span<uint8_t>::last
    - Botan::EC_Scalar::serialize_to
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::serialize_pair_to(std::span<uint8_t> bytes, const EC_Scalar&
      r, const EC_Scalar& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:102,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:106,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:108,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:108,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:109,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:109,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:112,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:112,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: Botan::EC_Scalar::deserialize_pair
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - auto::value
    - std::make_pair
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: std::optional<std::pair<EC_Scalar, EC_Scalar>>
    signature: "std::optional<std::pair<EC_Scalar, EC_Scalar>> EC_Scalar::deserialize_pair(const
      EC_Group& group,\n                                                                           std::span<const
      uint8_t> bytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:119,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: Botan::EC_Scalar::deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 15
    functionsReached:
    - std::move
    - _data
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: std::optional<EC_Scalar>
    signature: std::optional<EC_Scalar> EC_Scalar::deserialize(const EC_Group& group,
      std::span<const uint8_t> bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:127,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: Botan::EC_Scalar::EC_Scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 14
    functionsReached:
    - _data
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::EC_Scalar(const EC_Group& group, std::span<const uint8_t>
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: Botan::EC_Scalar::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar::is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:138,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: Botan::EC_Scalar::invert
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::invert() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:142,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Botan::EC_Scalar::invert_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::invert_vartime() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:146,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: Botan::EC_Scalar::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::negate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::square_self
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: Botan::EC_Scalar::square_self
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Scalar::square_self
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::square_self()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:154,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:154,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: Botan::EC_Scalar::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::add(const EC_Scalar& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:158,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:158,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: Botan::EC_Scalar::sub
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::sub(const EC_Scalar& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:162,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:162,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: Botan::EC_Scalar::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::mul(const EC_Scalar& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::assign
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:166,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::EC_Scalar::assign
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Scalar::assign
    - inner
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::assign(const EC_Scalar& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::zeroize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::EC_Scalar::zeroize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Scalar::zeroize
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::zeroize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:174,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: Botan::EC_Scalar::is_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar::is_eq(const EC_Scalar& x) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:187,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:188,1
    - Dst: get_order_bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:191,1
    - Dst: expand_message_xmd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:194,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:196,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:198,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - ' group'
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - EC_Group
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 201
    functionName: Botan::EC_Scalar::hash
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 4
    functionsReached:
    - std::string_view::starts_with
    - Botan::EC_Scalar::from_bytes_mod_order
    - BOTAN_UNUSED
    - expand_message_xmd
    - get_order_bits
    - Not_Implemented
    linkageType: ''
    returnType: EC_Scalar
    signature: "EC_Scalar EC_Scalar::hash(const EC_Group& group,\n                          std::string_view
      hash_fn,\n                          std::span<const uint8_t> input,\n                          std::span<const
      uint8_t> domain_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:19,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inner
    argTypes:
    - std::unique_ptr<EC_Scalar_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::EC_Scalar::_from_inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::_from_inner(std::unique_ptr<EC_Scalar_Data> inner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:22,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scalar
    argTypes:
    - std::unique_ptr<EC_Scalar_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::EC_Scalar::EC_Scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 21
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::EC_Scalar(std::unique_ptr<EC_Scalar_Data> scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::EC_Scalar::EC_Scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 21
    functionsReached:
    - inner
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::EC_Scalar(const EC_Scalar& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::EC_Scalar::EC_Scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 21
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::EC_Scalar(EC_Scalar&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: '& EC_Scalar::assign'
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: '& EC_Scalar::operator=(const EC_Scalar& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - '& EC_Scalar::assign'
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar & EC_Scalar::operator=(const EC_Scalar& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:38,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:38,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:38,1
    - Dst: std::swap
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: '& EC_Scalar::operator=(EC_Scalar&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - _inner
    - std::swap
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar & EC_Scalar::operator=(EC_Scalar&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: EC_Scalar::~EC_Scalar()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::~EC_Scalar()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::EC_Scalar::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::bytes
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Scalar::bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:50,1
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::EC_Scalar::from_bytes_with_trunc
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 8
    functionsReached:
    - _data
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::from_bytes_with_trunc(const EC_Group& group, std::span<const
      uint8_t> bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:54,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:55,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: Botan::EC_Scalar::from_bytes_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 12
    functionsReached:
    - std::move
    - _data
    - Botan::EC_Scalar::EC_Scalar
    - Decoding_Error
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::from_bytes_mod_order(const EC_Group& group, std::span<const
      uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:62,1
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - EC_Group
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::EC_Scalar::random
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 36
    functionsReached:
    - _data
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::random(const EC_Group& group, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:66,1
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::EC_Scalar::one
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 14
    functionsReached:
    - _data
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::one(const EC_Group& group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:70,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:71,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:71,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - ' bn'
    argTypes:
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: Botan::EC_Scalar::from_bigint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 12
    functionsReached:
    - std::move
    - _data
    - Invalid_Argument
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::from_bigint(const EC_Group& group, const BigInt&
      bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:78,1
    - Dst: Botan::EC_Scalar::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:79,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: Botan::EC_Scalar::to_bigint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::bytes
    - Botan::EC_Scalar::serialize_to
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: BigInt
    signature: BigInt EC_Scalar::to_bigint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:84,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:85,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:85,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan::EC_Scalar::gk_x_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 6
    functionsReached:
    - _inner
    - inner
    - Botan::EC_Scalar::EC_Scalar
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::gk_x_mod_order(const EC_Scalar& scalar, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::EC_Scalar::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 3
    functionsReached:
    - inner
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::serialize_to(std::span<uint8_t> bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:93,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:93,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:93,1
    - Dst: Botan::EC_Scalar::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:94,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:95,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:95,1
    - Dst: Botan::EC_Scalar::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:96,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:96,1
    - Dst: Botan::EC_Scalar::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:97,1
    - Dst: std::span<uint8_t>::last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - bytes
    - ' r'
    - ' s'
    argTypes:
    - std::span<uint8_t>
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: Botan::EC_Scalar::serialize_pair_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::EC_Scalar::bytes
    - BOTAN_ARG_CHECK
    - std::span<uint8_t>::first
    - _inner
    - std::span<uint8_t>::last
    - Botan::EC_Scalar::serialize_to
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::serialize_pair_to(std::span<uint8_t> bytes, const EC_Scalar&
      r, const EC_Scalar& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:102,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:106,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:108,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:108,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:109,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:109,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:112,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:112,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: Botan::EC_Scalar::deserialize_pair
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - auto::value
    - std::make_pair
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - Botan::EC_Scalar::deserialize
    linkageType: ''
    returnType: std::optional<std::pair<EC_Scalar, EC_Scalar>>
    signature: "std::optional<std::pair<EC_Scalar, EC_Scalar>> EC_Scalar::deserialize_pair(const
      EC_Group& group,\n                                                                           std::span<const
      uint8_t> bytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:119,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: Botan::EC_Scalar::deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 16
    functionsReached:
    - std::move
    - _data
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: std::optional<EC_Scalar>
    signature: std::optional<EC_Scalar> EC_Scalar::deserialize(const EC_Group& group,
      std::span<const uint8_t> bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:127,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: Botan::EC_Scalar::EC_Scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 28
    functionsReached:
    - _data
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::EC_Scalar(const EC_Group& group, std::span<const uint8_t>
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: Botan::EC_Scalar::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar::is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:138,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: Botan::EC_Scalar::invert
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::invert() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:142,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Botan::EC_Scalar::invert_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::invert_vartime() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:146,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: Botan::EC_Scalar::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::negate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::square_self
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: Botan::EC_Scalar::square_self
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Scalar::square_self
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::square_self()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:154,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:154,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: Botan::EC_Scalar::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::add(const EC_Scalar& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:158,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:158,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: Botan::EC_Scalar::sub
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::sub(const EC_Scalar& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:162,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:162,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: Botan::EC_Scalar::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar EC_Scalar::mul(const EC_Scalar& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::assign
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:166,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: Botan::EC_Scalar::assign
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Scalar::assign
    - inner
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::assign(const EC_Scalar& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::zeroize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::EC_Scalar::zeroize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Scalar::zeroize
    linkageType: ''
    returnType: void
    signature: void EC_Scalar::zeroize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:174,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: Botan::EC_Scalar::is_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar::is_eq(const EC_Scalar& x) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:187,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:188,1
    - Dst: get_order_bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:191,1
    - Dst: expand_message_xmd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:194,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:196,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:198,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - ' group'
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - EC_Group
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 201
    functionName: Botan::EC_Scalar::hash
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.cpp
    functionUses: 4
    functionsReached:
    - std::string_view::starts_with
    - Botan::EC_Scalar::from_bytes_mod_order
    - BOTAN_UNUSED
    - expand_message_xmd
    - get_order_bits
    - Not_Implemented
    linkageType: ''
    returnType: EC_Scalar
    signature: "EC_Scalar EC_Scalar::hash(const EC_Group& group,\n                          std::string_view
      hash_fn,\n                          std::span<const uint8_t> input,\n                          std::span<const
      uint8_t> domain_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:73,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:108,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:111,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:131,1
    - Dst: Botan::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:132,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:148,1
    - Dst: T::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:148,1
    - Dst: serialize_pair_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:149,1
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:161,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:228,1
    - Dst: Botan::sub
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:230,1
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:232,1
    - Dst: is_eq
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:234,1
    - Dst: Botan::inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 256
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 26
    functionsReached:
    - Botan::serialize_to
    - Botan::EC_Scalar::gk_x_mod_order
    - Botan::mul
    - Botan::bytes
    - Botan::sub
    - is_eq
    - Botan::is_zero
    - T::bytes
    - BOTAN_DEPRECATED
    - Botan::inner
    - serialize_pair_to
    - Botan::add
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: Botan::gk_x_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar gk_x_mod_order(const EC_Scalar& scalar, RandomNumberGenerator&
      rng, std::vector<BigInt>& /*ws*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:131,1
    - Dst: Botan::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: Botan::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - Botan::serialize_to
    - Botan::bytes
    linkageType: ''
    returnType: T
    signature: T serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:148,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:148,1
    - Dst: serialize_pair_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' r'
    - ' s'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Botan::serialize_pair
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - serialize_pair_to
    - Botan::bytes
    linkageType: ''
    returnType: T
    signature: T serialize_pair(const EC_Scalar& r, const EC_Scalar& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan::is_nonzero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - Botan::is_zero
    linkageType: ''
    returnType: bool
    signature: bool is_nonzero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: operator+(const EC_Scalar& x, const EC_Scalar& y)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - Botan::add
    linkageType: ''
    returnType: friend
    signature: friend operator+(const EC_Scalar& x, const EC_Scalar& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sub
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: operator-(const EC_Scalar& x, const EC_Scalar& y)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - Botan::sub
    linkageType: ''
    returnType: friend
    signature: friend operator-(const EC_Scalar& x, const EC_Scalar& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: operator*(const EC_Scalar& x, const EC_Scalar& y)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - Botan::mul
    linkageType: ''
    returnType: friend
    signature: friend operator*(const EC_Scalar& x, const EC_Scalar& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_eq
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: operator==(const EC_Scalar& x, const EC_Scalar& y)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - is_eq
    linkageType: ''
    returnType: friend
    signature: friend operator==(const EC_Scalar& x, const EC_Scalar& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 244
    functionName: Botan::_inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - Botan::inner
    linkageType: ''
    returnType: EC_Scalar_Data
    signature: EC_Scalar_Data & _inner() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: Botan::inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: EC_Scalar_Data
    signature: EC_Scalar_Data & inner() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:73,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:108,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:111,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:131,1
    - Dst: Botan::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:132,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:148,1
    - Dst: T::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:148,1
    - Dst: serialize_pair_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:149,1
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:161,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:228,1
    - Dst: Botan::sub
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:230,1
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:232,1
    - Dst: is_eq
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:234,1
    - Dst: Botan::inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 256
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 26
    functionsReached:
    - Botan::serialize_to
    - Botan::EC_Scalar::gk_x_mod_order
    - Botan::mul
    - Botan::bytes
    - Botan::sub
    - is_eq
    - Botan::is_zero
    - T::bytes
    - BOTAN_DEPRECATED
    - Botan::inner
    - serialize_pair_to
    - Botan::add
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: Botan::gk_x_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar gk_x_mod_order(const EC_Scalar& scalar, RandomNumberGenerator&
      rng, std::vector<BigInt>& /*ws*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:131,1
    - Dst: Botan::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: Botan::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - Botan::serialize_to
    - Botan::bytes
    linkageType: ''
    returnType: T
    signature: T serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:148,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:148,1
    - Dst: serialize_pair_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' r'
    - ' s'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Botan::serialize_pair
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - serialize_pair_to
    - Botan::bytes
    linkageType: ''
    returnType: T
    signature: T serialize_pair(const EC_Scalar& r, const EC_Scalar& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan::is_nonzero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - Botan::is_zero
    linkageType: ''
    returnType: bool
    signature: bool is_nonzero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: operator+(const EC_Scalar& x, const EC_Scalar& y)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - add
    linkageType: ''
    returnType: friend
    signature: friend operator+(const EC_Scalar& x, const EC_Scalar& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sub
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: operator-(const EC_Scalar& x, const EC_Scalar& y)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - sub
    linkageType: ''
    returnType: friend
    signature: friend operator-(const EC_Scalar& x, const EC_Scalar& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: operator*(const EC_Scalar& x, const EC_Scalar& y)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - mul
    linkageType: ''
    returnType: friend
    signature: friend operator*(const EC_Scalar& x, const EC_Scalar& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_eq
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: operator==(const EC_Scalar& x, const EC_Scalar& y)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - is_eq
    linkageType: ''
    returnType: friend
    signature: friend operator==(const EC_Scalar& x, const EC_Scalar& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 244
    functionName: Botan::_inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 0
    functionsReached:
    - Botan::inner
    linkageType: ''
    returnType: EC_Scalar_Data
    signature: EC_Scalar_Data & _inner() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: Botan::inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_scalar.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: EC_Scalar_Data
    signature: EC_Scalar_Data & inner() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::EC_Group_Data_Map::EC_Group_Data_Map
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Data_Map()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:33,1
    - Dst: Botan::EC_Group_Data_Map::clear
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: Botan::EC_Group_Data_Map::clear
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 1
    functionsReached:
    - size
    - Botan::EC_Group_Data_Map::clear
    linkageType: ''
    returnType: size_t
    signature: size_t clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:40,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:41,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:45,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:46,1
    - Dst: erase
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:47,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: Botan::EC_Group_Data_Map::unregister
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - erase
    - oid
    - begin
    - size
    - empty
    linkageType: ''
    returnType: bool
    signature: bool unregister(const OID& oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:58,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:64,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:67,1
    - Dst: std::shared_ptr<EC_Group_Data>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: Botan::EC_Group_Data_Map::lookup
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<EC_Group_Data>
    - Botan::EC_Group::EC_group_info
    - oid
    - push_back
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: std::shared_ptr<EC_Group_Data> lookup(const OID& oid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:84,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:84,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:89,1
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:98,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:99,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:99,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:113,1
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:113,1
    - Dst: set_oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:114,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:123,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:128,1
    - Dst: auto::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:128,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:136,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 9
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' g_x'
    - ' g_y'
    - ' order'
    - ' cofactor'
    - ' oid'
    - source
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - OID
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 142
    functionName: Botan::EC_Group_Data_Map::lookup_or_create
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - Botan::EC_Group_Data::create
    - to_string
    - Botan::EC_Group::EC_group_info
    - oid
    - has_value
    - auto::params_match
    - BOTAN_ARG_CHECK
    - push_back
    - BOTAN_ASSERT_NOMSG
    - set_oid
    - params_match
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: "std::shared_ptr<EC_Group_Data> lookup_or_create(const BigInt& p,\n
      \                                                     const BigInt& a,\n                                                      const
      BigInt& b,\n                                                      const BigInt&
      g_x,\n                                                      const BigInt& g_y,\n
      \                                                     const BigInt& order,\n
      \                                                     const BigInt& cofactor,\n
      \                                                     const OID& oid,\n                                                      EC_Group_Source
      source)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:153,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:159,1
    - Dst: OID::has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:160,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:161,1
    - Dst: auto::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:164,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 6
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - base_pt
    - ' order'
    - ' cofactor'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - std::span<const uint8_t>
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 171
    functionName: Botan::EC_Group_Data_Map::lookup_from_params
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::EC_group_info
    - OID::has_value
    - auto::params_match
    - push_back
    - Botan::EC_Group::EC_group_identity_from_order
    - params_match
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: "std::shared_ptr<EC_Group_Data> lookup_from_params(const BigInt& p,\n
      \                                                       const BigInt& a,\n                                                        const
      BigInt& b,\n                                                        std::span<const
      uint8_t> base_pt,\n                                                        const
      BigInt& order,\n                                                        const
      BigInt& cofactor)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:185,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:191,1
    - Dst: OID::has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:192,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:193,1
    - Dst: auto::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:196,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:197,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:209,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:209,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 8
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' g_x'
    - ' g_y'
    - ' order'
    - ' cofactor'
    - source
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 212
    functionName: Botan::EC_Group_Data_Map::lookup_or_create_without_oid
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group_Data::create
    - OID
    - Botan::EC_Group::EC_group_info
    - OID::has_value
    - auto::params_match
    - push_back
    - Botan::EC_Group::EC_group_identity_from_order
    - params_match
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: "std::shared_ptr<EC_Group_Data> lookup_or_create_without_oid(const
      BigInt& p,\n                                                                  const
      BigInt& a,\n                                                                  const
      BigInt& b,\n                                                                  const
      BigInt& g_x,\n                                                                  const
      BigInt& g_y,\n                                                                  const
      BigInt& order,\n                                                                  const
      BigInt& cofactor,\n                                                                  EC_Group_Source
      source)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: '& EC_Group::ec_group_data()'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Data_Map
    signature: EC_Group_Data_Map & EC_Group::ec_group_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: Botan::EC_Group::clear_registered_curve_data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 25
    functionsReached:
    - ec_group_data
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Group::clear_registered_curve_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:245,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:245,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - p_str
    - a_str
    - b_str
    - g_x_str
    - g_y_str
    - order_str
    - ' oid'
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 256
    functionName: Botan::EC_Group::load_EC_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - Botan::EC_Group_Data::create
    - has_value
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: "std::shared_ptr<EC_Group_Data> EC_Group::load_EC_group_info(const
      char* p_str,\n                                                            const
      char* a_str,\n                                                            const
      char* b_str,\n                                                            const
      char* g_x_str,\n                                                            const
      char* g_y_str,\n                                                            const
      char* order_str,\n                                                            const
      OID& oid)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::peek_next_object
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:263,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:267,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:269,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:271,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:271,1
    - Dst: OID::to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:271,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:274,1
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:284,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:287,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:303,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:306,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:306,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:306,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:307,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:310,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:311,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:315,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:318,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:318,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:319,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:322,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:323,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:332,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:333,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:334,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:337,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:338,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:339,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:343,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:343,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:344,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:350,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:351,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:351,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:352,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:352,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:355,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:357,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:359,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:359,1
    - Dst: sqrt_modulo_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:360,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:364,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:368,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:372,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:376,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:379,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:382,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:383,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:385,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:387,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:388,1
    - Dst: asn1_tag_to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:388,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 62
    argCount: 2
    argNames:
    - bits
    - source
    argTypes:
    - std::span<const uint8_t>
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 390
    functionName: Botan::EC_Group::BER_decode_EC_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder::peek_next_object
    - ec_group_data
    - OID::to_string
    - BigInt::is_negative
    - auto::square
    - auto::reduce
    - auto::cube
    - auto::multiply
    - Botan::BigInt::from_bytes
    - BigInt::is_zero
    - is_bailie_psw_probable_prime
    - BigInt::bytes
    - std::make_pair
    - BER_Decoder::decode
    - std::vector::size
    - fmt
    - OID
    - asn1_tag_to_string
    - BER_Decoder::start_sequence
    - Botan::Barrett_Reduction::for_public_modulus
    - sqrt_modulo_prime
    - subspan
    - Decoding_Error
    - BigInt::bits
    - BigInt::get_bit
    linkageType: ''
    returnType: std::pair<std::shared_ptr<EC_Group_Data>, bool>
    signature: "std::pair<std::shared_ptr<EC_Group_Data>, bool> EC_Group::BER_decode_EC_group(std::span<const
      uint8_t> bits,\n                                                                              EC_Group_Source
      source)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group::EC_Group()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: EC_Group::~EC_Group()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group::~EC_Group()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 396
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group::EC_Group(const EC_Group&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::shared_ptr<EC_Group_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EC_Group::EC_Group(std::shared_ptr<EC_Group_Data>&& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_Group::known_named_groups
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:405,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: Botan::EC_Group::supports_named_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 109
    functionsReached:
    - EC_Group::known_named_groups
    - std::string
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::supports_named_group(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: Botan::EC_Group::supports_application_specific_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::supports_application_specific_group()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: Botan::EC_Group::supports_application_specific_group_with_cofactor
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::supports_application_specific_group_with_cofactor()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:428,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:431,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:431,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:431,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:434,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: Botan::EC_Group::from_OID
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 32
    functionsReached:
    - ec_group_data
    - Invalid_Argument
    - to_string
    - std::move
    - Botan::EC_Group::EC_Group
    - fmt
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group EC_Group::from_OID(const OID& oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:441,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:442,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:442,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:446,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:446,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:449,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 450
    functionName: Botan::EC_Group::from_name
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 217
    functionsReached:
    - Botan::OID::from_name
    - ec_group_data
    - Invalid_Argument
    - std::move
    - Botan::EC_Group::EC_Group
    - auto::value
    - fmt
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group EC_Group::from_name(std::string_view name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:453,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:458,1
    - Dst: OID::has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:459,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:460,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:465,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:465,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:467,1
    - Dst: Botan::EC_Group::BER_decode_EC_group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:469,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:476,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:476,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 478
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 2
    functionsReached:
    - ec_group_data
    - Invalid_Argument
    - std::string_view::starts_with
    - Botan::EC_Group::BER_decode_EC_group
    - OID::has_value
    - std::string_view::empty
    - Botan::OID::from_string
    - Botan::PEM_Code::decode_check_label
    - std::string_view::size
    - fmt
    linkageType: ''
    returnType: void
    signature: void EC_Group::EC_Group(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:482,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 484
    functionName: Botan::EC_Group::from_PEM
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 4
    functionsReached:
    - Botan::PEM_Code::decode_check_label
    - Botan::EC_Group::EC_Group
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group EC_Group::from_PEM(std::string_view pem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:494,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:495,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 8
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' base_x'
    - ' base_y'
    - ' order'
    - ' cofactor'
    - ' oid'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 501
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 3
    functionsReached:
    - ec_group_data
    - has_value
    linkageType: ''
    returnType: void
    signature: "void EC_Group::EC_Group(const BigInt& p,\n                   const
      BigInt& a,\n                   const BigInt& b,\n                   const BigInt&
      base_x,\n                   const BigInt& base_y,\n                   const
      BigInt& order,\n                   const BigInt& cofactor,\n                   const
      OID& oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:510,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:510,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:519,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:519,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:520,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:520,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:522,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:523,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:524,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:525,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:530,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:536,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:538,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:538,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:541,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:543,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:544,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:545,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:546,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:547,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:547,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:547,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:549,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:550,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:550,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:552,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:553,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:553,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:557,1
    - Dst: abs
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:557,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:557,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:560,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:560,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:560,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:560,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:561,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:561,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:561,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:562,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:565,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:566,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:566,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:566,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:567,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:572,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 7
    argNames:
    - ' oid'
    - ' p'
    - ' a'
    - ' b'
    - ' base_x'
    - ' base_y'
    - ' order'
    argTypes:
    - OID
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 573
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 3
    functionsReached:
    - is_bailie_psw_probable_prime
    - ec_group_data
    - auto::square
    - auto::reduce
    - auto::cube
    - abs
    - BOTAN_ARG_CHECK
    - Botan::BigInt::from_s32
    - bits
    - auto::multiply
    - Botan::Barrett_Reduction::for_public_modulus
    - BigInt::set_bit
    - has_value
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: void
    signature: "void EC_Group::EC_Group(const OID& oid,\n                   const
      BigInt& p,\n                   const BigInt& a,\n                   const BigInt&
      b,\n                   const BigInt& base_x,\n                   const BigInt&
      base_y,\n                   const BigInt& order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::BER_decode_EC_group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ber
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 579
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Group::BER_decode_EC_group
    linkageType: ''
    returnType: void
    signature: void EC_Group::EC_Group(std::span<const uint8_t> ber)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 584
    functionName: Botan::EC_Group::unregister
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 4
    functionsReached:
    - ec_group_data
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::unregister(const OID& oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: '& EC_Group::data() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: EC_Group_Data
    signature: EC_Group_Data & EC_Group::data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: Botan::EC_Group::get_p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Group::get_p_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: Botan::EC_Group::get_p_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Group::get_p_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 603
    functionName: Botan::EC_Group::get_order_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Group::get_order_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: Botan::EC_Group::get_order_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Group::get_order_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: '& EC_Group::get_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 615
    functionName: '& EC_Group::get_a() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: '& EC_Group::get_b() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 624
    functionName: '& EC_Group::get_base_point() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_Group::get_base_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 628
    functionName: '& EC_Group::generator() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_Group::generator() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:632,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:637,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:642,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:642,1
    - Dst: Botan::EC_Group::has_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:646,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:647,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:647,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 653
    functionName: Botan::EC_Group::verify_public_element
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_order
    - get_cofactor
    - is_zero
    - Botan::EC_Group::has_cofactor
    - on_the_curve
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::verify_public_element(const EC_Point& point) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 659
    functionName: '& EC_Group::get_order() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_order() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 663
    functionName: '& EC_Group::get_g_x() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_g_x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 667
    functionName: '& EC_Group::get_g_y() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_g_y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 671
    functionName: '& EC_Group::get_cofactor() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_cofactor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 675
    functionName: Botan::EC_Group::has_cofactor
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 1
    functionsReached:
    - data
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::has_cofactor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 679
    functionName: '& EC_Group::get_curve_oid() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: OID
    signature: OID & EC_Group::get_curve_oid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 683
    functionName: Botan::EC_Group::source
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: EC_Group_Source
    signature: EC_Group_Source EC_Group::source() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 687
    functionName: Botan::EC_Group::engine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 8
    functionsReached:
    - data
    linkageType: ''
    returnType: EC_Group_Engine
    signature: EC_Group_Engine EC_Group::engine() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:690,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:692,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 697
    functionName: Botan::EC_Group::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Encoding_Error
    - data
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_Group::DER_encode() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:706,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:708,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:710,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:714,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:717,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:718,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:721,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:722,1
    - Dst: Botan::EC_Group::DER_encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:726,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - form
    argTypes:
    - EC_Group_Encoding
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 732
    functionName: Botan::EC_Group::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group::get_p_bytes
    - get_b
    - get_p
    - get_order
    - Botan::EC_Group::DER_encode
    - get_cofactor
    - Botan::EC_AffinePoint::generator
    - DER_Encoder::start_sequence
    - Internal_Error
    - get_a
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_Group::DER_encode(EC_Group_Encoding form) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::DER_encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:735,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - form
    argTypes:
    - EC_Group_Encoding
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 737
    functionName: Botan::EC_Group::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::DER_encode
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string EC_Group::PEM_encode(EC_Group_Encoding form) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:746,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 747
    functionName: EC_Group::operator==(const EC_Group& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_b
    - get_p
    - get_order
    - get_cofactor
    - get_a
    - get_g_y
    - get_g_x
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::operator==(const EC_Group& other) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::source
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:750,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:760,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:761,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:762,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:763,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:779,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:784,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:789,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:791,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:791,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:791,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:791,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:792,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:792,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:792,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:799,1
    - Dst: get_base_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:804,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:806,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:809,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:809,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:813,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:819,1
    - Dst: abs
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:819,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:819,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 824
    functionName: Botan::EC_Group::verify_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_b
    - get_p
    - get_order
    - auto::square
    - auto::reduce
    - get_cofactor
    - get_base_point
    - is_zero
    - is_prime
    - auto::cube
    - abs
    - Botan::BigInt::from_s32
    - on_the_curve
    - get_a
    - bits
    - auto::multiply
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::EC_Group::source
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::verify_group(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group::Mul2Table
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 826
    functionName: EC_Group::Mul2Table::Mul2Table(EC_Group::Mul2Table&& other) noexcept
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group::Mul2Table::Mul2Table(EC_Group::Mul2Table&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:830,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 830
    functionName: EC_Group::Mul2Table::Mul2Table(const EC_AffinePoint& h)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - _inner
    - _group
    linkageType: ''
    returnType: void
    signature: void EC_Group::Mul2Table::Mul2Table(const EC_AffinePoint& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 832
    functionName: EC_Group::Mul2Table::~Mul2Table()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group::Mul2Table::~Mul2Table()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:835,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:835,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:835,1
    - Dst: Botan::EC_AffinePoint::_from_inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:837,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 841
    functionName: EC_Group::Mul2Table::mul2_vartime(const EC_Scalar& x, const EC_Scalar&
      y) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime
    - _inner
    - std::move
    - Botan::EC_AffinePoint::_from_inner
    linkageType: ''
    returnType: std::optional<EC_AffinePoint>
    signature: std::optional<EC_AffinePoint> EC_Group::Mul2Table::mul2_vartime(const
      EC_Scalar& x, const EC_Scalar& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:846,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:846,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:846,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' v'
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 847
    functionName: "EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq(const EC_Scalar&
      v,\n                                                      const EC_Scalar& x,\n
      \                                                     const EC_Scalar& y) const"
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - _inner
    linkageType: ''
    returnType: bool
    signature: "bool EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq(const EC_Scalar&
      v,\n                                                      const EC_Scalar& x,\n
      \                                                     const EC_Scalar& y) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' v'
    - ' c'
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 854
    functionName: "EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq(const EC_Scalar&
      v,\n                                                      const EC_Scalar& c,\n
      \                                                     const EC_Scalar& x,\n
      \                                                     const EC_Scalar& y) const"
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq
    linkageType: ''
    returnType: bool
    signature: "bool EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq(const EC_Scalar&
      v,\n                                                      const EC_Scalar& c,\n
      \                                                     const EC_Scalar& x,\n
      \                                                     const EC_Scalar& y) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::EC_Group_Data_Map::EC_Group_Data_Map
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Data_Map()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:33,1
    - Dst: Botan::EC_Group_Data_Map::clear
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: Botan::EC_Group_Data_Map::clear
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 2
    functionsReached:
    - size
    - Botan::EC_Group_Data_Map::clear
    linkageType: ''
    returnType: size_t
    signature: size_t clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:40,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:41,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:45,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:46,1
    - Dst: erase
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:47,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: Botan::EC_Group_Data_Map::unregister
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - erase
    - oid
    - begin
    - size
    - empty
    linkageType: ''
    returnType: bool
    signature: bool unregister(const OID& oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:58,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:64,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:67,1
    - Dst: std::shared_ptr<EC_Group_Data>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: Botan::EC_Group_Data_Map::lookup
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<EC_Group_Data>
    - Botan::EC_Group::EC_group_info
    - oid
    - push_back
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: std::shared_ptr<EC_Group_Data> lookup(const OID& oid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:84,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:84,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:89,1
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:98,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:99,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:99,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:113,1
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:113,1
    - Dst: set_oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:114,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:123,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:128,1
    - Dst: auto::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:128,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:136,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 9
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' g_x'
    - ' g_y'
    - ' order'
    - ' cofactor'
    - ' oid'
    - source
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - OID
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 142
    functionName: Botan::EC_Group_Data_Map::lookup_or_create
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - Botan::EC_Group_Data::create
    - to_string
    - Botan::EC_Group::EC_group_info
    - oid
    - has_value
    - auto::params_match
    - BOTAN_ARG_CHECK
    - push_back
    - BOTAN_ASSERT_NOMSG
    - set_oid
    - params_match
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: "std::shared_ptr<EC_Group_Data> lookup_or_create(const BigInt& p,\n
      \                                                     const BigInt& a,\n                                                      const
      BigInt& b,\n                                                      const BigInt&
      g_x,\n                                                      const BigInt& g_y,\n
      \                                                     const BigInt& order,\n
      \                                                     const BigInt& cofactor,\n
      \                                                     const OID& oid,\n                                                      EC_Group_Source
      source)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:153,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:159,1
    - Dst: OID::has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:160,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:161,1
    - Dst: auto::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:164,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 6
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - base_pt
    - ' order'
    - ' cofactor'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - std::span<const uint8_t>
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 171
    functionName: Botan::EC_Group_Data_Map::lookup_from_params
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::EC_group_info
    - OID::has_value
    - auto::params_match
    - push_back
    - Botan::EC_Group::EC_group_identity_from_order
    - params_match
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: "std::shared_ptr<EC_Group_Data> lookup_from_params(const BigInt& p,\n
      \                                                       const BigInt& a,\n                                                        const
      BigInt& b,\n                                                        std::span<const
      uint8_t> base_pt,\n                                                        const
      BigInt& order,\n                                                        const
      BigInt& cofactor)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:185,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:191,1
    - Dst: OID::has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:192,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:193,1
    - Dst: auto::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:196,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:197,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:209,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:209,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 8
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' g_x'
    - ' g_y'
    - ' order'
    - ' cofactor'
    - source
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 212
    functionName: Botan::EC_Group_Data_Map::lookup_or_create_without_oid
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group_Data::create
    - OID
    - Botan::EC_Group::EC_group_info
    - OID::has_value
    - auto::params_match
    - push_back
    - Botan::EC_Group::EC_group_identity_from_order
    - params_match
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: "std::shared_ptr<EC_Group_Data> lookup_or_create_without_oid(const
      BigInt& p,\n                                                                  const
      BigInt& a,\n                                                                  const
      BigInt& b,\n                                                                  const
      BigInt& g_x,\n                                                                  const
      BigInt& g_y,\n                                                                  const
      BigInt& order,\n                                                                  const
      BigInt& cofactor,\n                                                                  EC_Group_Source
      source)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: '& EC_Group::ec_group_data()'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Data_Map
    signature: EC_Group_Data_Map & EC_Group::ec_group_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: Botan::EC_Group::clear_registered_curve_data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 25
    functionsReached:
    - ec_group_data
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Group::clear_registered_curve_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:245,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:245,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - p_str
    - a_str
    - b_str
    - g_x_str
    - g_y_str
    - order_str
    - ' oid'
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 256
    functionName: Botan::EC_Group::load_EC_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - Botan::EC_Group_Data::create
    - has_value
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: "std::shared_ptr<EC_Group_Data> EC_Group::load_EC_group_info(const
      char* p_str,\n                                                            const
      char* a_str,\n                                                            const
      char* b_str,\n                                                            const
      char* g_x_str,\n                                                            const
      char* g_y_str,\n                                                            const
      char* order_str,\n                                                            const
      OID& oid)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::peek_next_object
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:263,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:267,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:269,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:271,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:271,1
    - Dst: OID::to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:271,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:274,1
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:284,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:287,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:303,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:306,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:306,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:306,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:307,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:310,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:311,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:315,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:318,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:318,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:319,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:322,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:323,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:332,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:333,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:334,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:337,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:338,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:339,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:343,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:343,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:344,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:350,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:351,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:351,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:352,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:352,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:355,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:357,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:359,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:359,1
    - Dst: sqrt_modulo_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:360,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:364,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:368,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:372,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:376,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:379,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:382,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:383,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:385,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:387,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:388,1
    - Dst: asn1_tag_to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:388,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 62
    argCount: 2
    argNames:
    - bits
    - source
    argTypes:
    - std::span<const uint8_t>
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 390
    functionName: Botan::EC_Group::BER_decode_EC_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 2
    functionsReached:
    - BER_Decoder::peek_next_object
    - ec_group_data
    - OID::to_string
    - BigInt::is_negative
    - auto::square
    - auto::reduce
    - auto::cube
    - auto::multiply
    - Botan::BigInt::from_bytes
    - BigInt::is_zero
    - is_bailie_psw_probable_prime
    - BigInt::bytes
    - std::make_pair
    - BER_Decoder::decode
    - std::vector::size
    - fmt
    - OID
    - asn1_tag_to_string
    - BER_Decoder::start_sequence
    - Botan::Barrett_Reduction::for_public_modulus
    - sqrt_modulo_prime
    - subspan
    - Decoding_Error
    - BigInt::bits
    - BigInt::get_bit
    linkageType: ''
    returnType: std::pair<std::shared_ptr<EC_Group_Data>, bool>
    signature: "std::pair<std::shared_ptr<EC_Group_Data>, bool> EC_Group::BER_decode_EC_group(std::span<const
      uint8_t> bits,\n                                                                              EC_Group_Source
      source)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group::EC_Group()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: EC_Group::~EC_Group()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group::~EC_Group()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 396
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group::EC_Group(const EC_Group&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::shared_ptr<EC_Group_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 3
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EC_Group::EC_Group(std::shared_ptr<EC_Group_Data>&& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_Group::known_named_groups
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:405,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: Botan::EC_Group::supports_named_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 109
    functionsReached:
    - EC_Group::known_named_groups
    - std::string
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::supports_named_group(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: Botan::EC_Group::supports_application_specific_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::supports_application_specific_group()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: Botan::EC_Group::supports_application_specific_group_with_cofactor
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::supports_application_specific_group_with_cofactor()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:428,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:431,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:431,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:431,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:434,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: Botan::EC_Group::from_OID
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 32
    functionsReached:
    - ec_group_data
    - Invalid_Argument
    - to_string
    - std::move
    - Botan::EC_Group::EC_Group
    - fmt
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group EC_Group::from_OID(const OID& oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:441,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:442,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:442,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:446,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:446,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:449,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 450
    functionName: Botan::EC_Group::from_name
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 217
    functionsReached:
    - Botan::OID::from_name
    - ec_group_data
    - Invalid_Argument
    - std::move
    - Botan::EC_Group::EC_Group
    - auto::value
    - fmt
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group EC_Group::from_name(std::string_view name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:453,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:458,1
    - Dst: OID::has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:459,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:460,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:465,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:465,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:467,1
    - Dst: Botan::EC_Group::BER_decode_EC_group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:469,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:476,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:476,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 478
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 5
    functionsReached:
    - ec_group_data
    - Invalid_Argument
    - std::string_view::starts_with
    - Botan::EC_Group::BER_decode_EC_group
    - OID::has_value
    - std::string_view::empty
    - Botan::OID::from_string
    - Botan::PEM_Code::decode_check_label
    - std::string_view::size
    - fmt
    linkageType: ''
    returnType: void
    signature: void EC_Group::EC_Group(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:482,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 484
    functionName: Botan::EC_Group::from_PEM
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 4
    functionsReached:
    - Botan::PEM_Code::decode_check_label
    - Botan::EC_Group::EC_Group
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group EC_Group::from_PEM(std::string_view pem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:494,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:495,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 8
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' base_x'
    - ' base_y'
    - ' order'
    - ' cofactor'
    - ' oid'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 501
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 6
    functionsReached:
    - ec_group_data
    - has_value
    linkageType: ''
    returnType: void
    signature: "void EC_Group::EC_Group(const BigInt& p,\n                   const
      BigInt& a,\n                   const BigInt& b,\n                   const BigInt&
      base_x,\n                   const BigInt& base_y,\n                   const
      BigInt& order,\n                   const BigInt& cofactor,\n                   const
      OID& oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:510,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:510,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:519,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:519,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:520,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:520,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:522,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:523,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:524,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:525,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:530,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:536,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:538,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:538,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:541,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:543,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:544,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:545,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:546,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:547,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:547,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:547,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:549,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:550,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:550,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:552,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:553,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:553,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:557,1
    - Dst: abs
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:557,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:557,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:560,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:560,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:560,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:560,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:561,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:561,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:561,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:562,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:565,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:566,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:566,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:566,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:567,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:572,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 7
    argNames:
    - ' oid'
    - ' p'
    - ' a'
    - ' b'
    - ' base_x'
    - ' base_y'
    - ' order'
    argTypes:
    - OID
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 573
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 6
    functionsReached:
    - is_bailie_psw_probable_prime
    - ec_group_data
    - auto::square
    - auto::reduce
    - auto::cube
    - abs
    - BOTAN_ARG_CHECK
    - Botan::BigInt::from_s32
    - bits
    - auto::multiply
    - Botan::Barrett_Reduction::for_public_modulus
    - BigInt::set_bit
    - has_value
    - Botan_Tests::BitOps_Tests::test_power_of_2
    linkageType: ''
    returnType: void
    signature: "void EC_Group::EC_Group(const OID& oid,\n                   const
      BigInt& p,\n                   const BigInt& a,\n                   const BigInt&
      b,\n                   const BigInt& base_x,\n                   const BigInt&
      base_y,\n                   const BigInt& order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::BER_decode_EC_group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ber
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 579
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 6
    functionsReached:
    - Botan::EC_Group::BER_decode_EC_group
    linkageType: ''
    returnType: void
    signature: void EC_Group::EC_Group(std::span<const uint8_t> ber)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 584
    functionName: Botan::EC_Group::unregister
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 4
    functionsReached:
    - ec_group_data
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::unregister(const OID& oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: '& EC_Group::data() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: EC_Group_Data
    signature: EC_Group_Data & EC_Group::data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: Botan::EC_Group::get_p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Group::get_p_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: Botan::EC_Group::get_p_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 1
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Group::get_p_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 603
    functionName: Botan::EC_Group::get_order_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Group::get_order_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: Botan::EC_Group::get_order_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Group::get_order_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: '& EC_Group::get_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 615
    functionName: '& EC_Group::get_a() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: '& EC_Group::get_b() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 624
    functionName: '& EC_Group::get_base_point() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_Group::get_base_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 628
    functionName: '& EC_Group::generator() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_Group::generator() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:632,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:637,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:642,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:642,1
    - Dst: Botan::EC_Group::has_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:646,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:647,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:647,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 653
    functionName: Botan::EC_Group::verify_public_element
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_order
    - get_cofactor
    - is_zero
    - Botan::EC_Group::has_cofactor
    - on_the_curve
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::verify_public_element(const EC_Point& point) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 659
    functionName: '& EC_Group::get_order() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_order() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 663
    functionName: '& EC_Group::get_g_x() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_g_x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 667
    functionName: '& EC_Group::get_g_y() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_g_y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 671
    functionName: '& EC_Group::get_cofactor() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_Group::get_cofactor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 675
    functionName: Botan::EC_Group::has_cofactor
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 2
    functionsReached:
    - data
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::has_cofactor() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 679
    functionName: '& EC_Group::get_curve_oid() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: OID
    signature: OID & EC_Group::get_curve_oid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 683
    functionName: Botan::EC_Group::source
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 1
    functionsReached:
    - data
    linkageType: ''
    returnType: EC_Group_Source
    signature: EC_Group_Source EC_Group::source() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 687
    functionName: Botan::EC_Group::engine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 8
    functionsReached:
    - data
    linkageType: ''
    returnType: EC_Group_Engine
    signature: EC_Group_Engine EC_Group::engine() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:690,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:692,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 697
    functionName: Botan::EC_Group::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 2
    functionsReached:
    - Encoding_Error
    - data
    - empty
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_Group::DER_encode() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:706,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:708,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:710,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:714,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:717,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:718,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:721,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:722,1
    - Dst: Botan::EC_Group::DER_encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:726,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - form
    argTypes:
    - EC_Group_Encoding
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 732
    functionName: Botan::EC_Group::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Group::get_p_bytes
    - get_b
    - get_p
    - get_order
    - Botan::EC_Group::DER_encode
    - get_cofactor
    - Botan::EC_AffinePoint::generator
    - DER_Encoder::start_sequence
    - Internal_Error
    - get_a
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_Group::DER_encode(EC_Group_Encoding form) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::DER_encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:735,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - form
    argTypes:
    - EC_Group_Encoding
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 737
    functionName: Botan::EC_Group::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::DER_encode
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string EC_Group::PEM_encode(EC_Group_Encoding form) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:744,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:746,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 747
    functionName: EC_Group::operator==(const EC_Group& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_b
    - get_p
    - get_order
    - get_cofactor
    - get_a
    - get_g_y
    - get_g_x
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::operator==(const EC_Group& other) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::source
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:750,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:760,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:761,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:762,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:763,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:779,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:784,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:789,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:791,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:791,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:791,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:791,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:792,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:792,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:792,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:799,1
    - Dst: get_base_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:804,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:806,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:809,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:809,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:813,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:819,1
    - Dst: abs
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:819,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:819,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 824
    functionName: Botan::EC_Group::verify_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_b
    - get_p
    - get_order
    - auto::square
    - auto::reduce
    - get_cofactor
    - get_base_point
    - is_zero
    - is_prime
    - auto::cube
    - abs
    - Botan::BigInt::from_s32
    - on_the_curve
    - get_a
    - bits
    - auto::multiply
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::EC_Group::source
    linkageType: ''
    returnType: bool
    signature: bool EC_Group::verify_group(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group::Mul2Table
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 826
    functionName: EC_Group::Mul2Table::Mul2Table(EC_Group::Mul2Table&& other) noexcept
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group::Mul2Table::Mul2Table(EC_Group::Mul2Table&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:830,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 830
    functionName: EC_Group::Mul2Table::Mul2Table(const EC_AffinePoint& h)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - _inner
    - _group
    linkageType: ''
    returnType: void
    signature: void EC_Group::Mul2Table::Mul2Table(const EC_AffinePoint& h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 832
    functionName: EC_Group::Mul2Table::~Mul2Table()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group::Mul2Table::~Mul2Table()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:835,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:835,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:835,1
    - Dst: Botan::EC_AffinePoint::_from_inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:837,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 841
    functionName: EC_Group::Mul2Table::mul2_vartime(const EC_Scalar& x, const EC_Scalar&
      y) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime
    - _inner
    - std::move
    - Botan::EC_AffinePoint::_from_inner
    linkageType: ''
    returnType: std::optional<EC_AffinePoint>
    signature: std::optional<EC_AffinePoint> EC_Group::Mul2Table::mul2_vartime(const
      EC_Scalar& x, const EC_Scalar& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:846,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:846,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:846,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' v'
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 847
    functionName: "EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq(const EC_Scalar&
      v,\n                                                      const EC_Scalar& x,\n
      \                                                     const EC_Scalar& y) const"
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - _inner
    linkageType: ''
    returnType: bool
    signature: "bool EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq(const EC_Scalar&
      v,\n                                                      const EC_Scalar& x,\n
      \                                                     const EC_Scalar& y) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' v'
    - ' c'
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 854
    functionName: "EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq(const EC_Scalar&
      v,\n                                                      const EC_Scalar& c,\n
      \                                                     const EC_Scalar& x,\n
      \                                                     const EC_Scalar& y) const"
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq
    linkageType: ''
    returnType: bool
    signature: "bool EC_Group::Mul2Table::mul2_vartime_x_mod_order_eq(const EC_Scalar&
      v,\n                                                      const EC_Scalar& c,\n
      \                                                     const EC_Scalar& x,\n
      \                                                     const EC_Scalar& y) const"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:18,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:30,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:42,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:54,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:66,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:78,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:90,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:102,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:114,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:126,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:138,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:150,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:162,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:174,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:186,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:198,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:210,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:222,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:234,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:246,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:258,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:270,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:282,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:294,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:306,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:318,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:330,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:342,1
    - Dst: std::shared_ptr<EC_Group_Data>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:352,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 86
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 353
    functionName: Botan::EC_Group::EC_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp
    functionUses: 8
    functionsReached:
    - std::shared_ptr<EC_Group_Data>
    - Botan::EC_Group::load_EC_group_info
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: std::shared_ptr<EC_Group_Data> EC_Group::EC_group_info(const OID& oid)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:358,1
    - Dst: word_at
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:358,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:360,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:364,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:368,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:372,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:376,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:380,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:384,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:388,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:392,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:396,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:400,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:404,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:408,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:412,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:416,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:420,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:424,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:428,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:432,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:436,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:440,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:444,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:448,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:452,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:456,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:460,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:464,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:468,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:472,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 86
    argCount: 1
    argNames:
    - ' order'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 473
    functionName: Botan::EC_Group::EC_group_identity_from_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp
    functionUses: 8
    functionsReached:
    - BigInt
    - static_cast<uint32_t>
    - word_at
    - OID
    linkageType: ''
    returnType: OID
    signature: OID EC_Group::EC_group_identity_from_order(const BigInt& order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:478,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:478,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:482,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:482,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:486,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:486,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:490,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:490,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:494,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:494,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:498,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:498,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:502,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:507,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:507,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:511,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:511,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:515,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:515,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:519,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:519,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:523,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:523,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:527,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 551
    functionName: '& EC_Group::known_named_groups()'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp
    functionUses: 0
    functionsReached:
    - defined
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> & EC_Group::known_named_groups()
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:18,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:30,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:42,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:54,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:66,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:78,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:90,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:102,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:114,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:126,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:138,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:150,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:162,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:174,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:186,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:198,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:210,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:222,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:234,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:246,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:258,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:270,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:282,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:294,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:306,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:318,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:330,1
    - Dst: Botan::EC_Group::load_EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:342,1
    - Dst: std::shared_ptr<EC_Group_Data>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:352,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 86
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 353
    functionName: Botan::EC_Group::EC_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp
    functionUses: 8
    functionsReached:
    - std::shared_ptr<EC_Group_Data>
    - Botan::EC_Group::load_EC_group_info
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: std::shared_ptr<EC_Group_Data> EC_Group::EC_group_info(const OID& oid)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:358,1
    - Dst: word_at
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:358,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:360,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:364,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:368,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:372,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:376,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:380,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:384,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:388,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:392,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:396,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:400,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:404,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:408,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:412,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:416,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:420,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:424,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:428,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:432,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:436,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:440,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:444,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:448,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:452,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:456,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:460,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:464,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:468,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:472,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 86
    argCount: 1
    argNames:
    - ' order'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 473
    functionName: Botan::EC_Group::EC_group_identity_from_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp
    functionUses: 8
    functionsReached:
    - BigInt
    - static_cast<uint32_t>
    - word_at
    - OID
    linkageType: ''
    returnType: OID
    signature: OID EC_Group::EC_group_identity_from_order(const BigInt& order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:478,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:478,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:482,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:482,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:486,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:486,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:490,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:490,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:494,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:494,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:498,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:498,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:502,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:507,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:507,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:511,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:511,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:515,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:515,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:519,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:519,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:523,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:523,1
    - Dst: defined
      Src: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:527,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 551
    functionName: '& EC_Group::known_named_groups()'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_named.cpp
    functionUses: 0
    functionsReached:
    - defined
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> & EC_Group::known_named_groups()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: EC_Group_Data::~EC_Group_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Data::~EC_Group_Data()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:46,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:47,1
    - Dst: sig_words
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:51,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:52,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:53,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:56,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:61,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:63,1
    - Dst: human_name_or_empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:65,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:66,1
    - Dst: Botan::PCurve::PrimeOrderCurve::for_named_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:68,1
    - Dst: Botan::PCurve::PrimeOrderCurve::from_params
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:77,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:87,1
    - Dst: R2
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:87,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:88,1
    - Dst: R2
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:88,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:94,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:95,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:97,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:98,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:98,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 9
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' g_x'
    - ' g_y'
    - ' order'
    - ' cofactor'
    - ' oid'
    - source
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - OID
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 102
    functionName: Botan::EC_Group_Data::EC_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - R2
    - DER_Encoder::encode
    - std::string::empty
    - to_string
    - mul
    - is_zero
    - human_name_or_empty
    - Botan::PCurve::PrimeOrderCurve::for_named_curve
    - Botan::PCurve::PrimeOrderCurve::from_params
    - bits
    - sig_words
    - Botan::Barrett_Reduction::for_public_modulus
    - Not_Implemented
    - empty
    - fmt
    linkageType: ''
    returnType: void
    signature: "void EC_Group_Data::EC_Group_Data(const BigInt& p,\n                             const
      BigInt& a,\n                             const BigInt& b,\n                             const
      BigInt& g_x,\n                             const BigInt& g_y,\n                             const
      BigInt& order,\n                             const BigInt& cofactor,\n                             const
      OID& oid,\n                             EC_Group_Source source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<EC_Group_Data>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:113,1
    - Dst: CurveGFp
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:116,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:116,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:117,1
    - Dst: std::make_unique<EC_Point_Base_Point_Precompute>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 9
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' g_x'
    - ' g_y'
    - ' order'
    - ' cofactor'
    - ' oid'
    - source
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - OID
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 124
    functionName: Botan::EC_Group_Data::create
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 6
    functionsReached:
    - std::make_unique<EC_Point_Base_Point_Precompute>
    - auto::get
    - std::make_shared<EC_Group_Data>
    - EC_Point
    - CurveGFp
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: "std::shared_ptr<EC_Group_Data> EC_Group_Data::create(const BigInt&
      p,\n                                                     const BigInt& a,\n
      \                                                    const BigInt& b,\n                                                     const
      BigInt& g_x,\n                                                     const BigInt&
      g_y,\n                                                     const BigInt& order,\n
      \                                                    const BigInt& cofactor,\n
      \                                                    const OID& oid,\n                                                     EC_Group_Source
      source)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:133,1
    - Dst: Botan::EC_Group_Data::a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:136,1
    - Dst: Botan::EC_Group_Data::b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:139,1
    - Dst: Botan::EC_Group_Data::order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:142,1
    - Dst: Botan::EC_Group_Data::cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:145,1
    - Dst: Botan::EC_Group_Data::g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:148,1
    - Dst: Botan::EC_Group_Data::g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 7
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' g_x'
    - ' g_y'
    - ' order'
    - ' cofactor'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 156
    functionName: Botan::EC_Group_Data::params_match
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group_Data::g_y
    - Botan::EC_Group_Data::cofactor
    - Botan::EC_Group_Data::p
    - Botan::EC_Group_Data::a
    - Botan::EC_Group_Data::order
    - Botan::EC_Group_Data::b
    - Botan::EC_Group_Data::g_x
    linkageType: ''
    returnType: bool
    signature: "bool EC_Group_Data::params_match(const BigInt& p,\n                                 const
      BigInt& a,\n                                 const BigInt& b,\n                                 const
      BigInt& g_x,\n                                 const BigInt& g_y,\n                                 const
      BigInt& order,\n                                 const BigInt& cofactor) const"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:164,1
    - Dst: Botan::EC_Group_Data::a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:167,1
    - Dst: Botan::EC_Group_Data::b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:170,1
    - Dst: Botan::EC_Group_Data::order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:173,1
    - Dst: Botan::EC_Group_Data::cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:176,1
    - Dst: Botan::EC_Group_Data::p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:180,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:182,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:185,1
    - Dst: is_odd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:186,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:188,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:191,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:200,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:201,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:202,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:204,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:205,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:207,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:211,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:217,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 6
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - base_pt
    - ' order'
    - ' cofactor'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - std::span<const uint8_t>
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 219
    functionName: Botan::EC_Group_Data::params_match
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group_Data::cofactor
    - Botan::EC_Group_Data::p_bytes
    - std::span<const uint8_t>::subspan
    - Botan::ct_is_equal
    - Decoding_Error
    - is_odd
    - Botan::EC_Group_Data::p
    - serialize
    - Botan::EC_Group_Data::a
    - Botan::EC_Group_Data::order
    - std::span<const uint8_t>::size
    - Botan::EC_Group_Data::b
    linkageType: ''
    returnType: bool
    signature: "bool EC_Group_Data::params_match(const BigInt& p,\n                                 const
      BigInt& a,\n                                 const BigInt& b,\n                                 std::span<const
      uint8_t> base_pt,\n                                 const BigInt& order,\n                                 const
      BigInt& cofactor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: Botan::EC_Group_Data::params_match
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - a
    - Botan::EC_Group_Data::params_match
    - g_y
    - b
    - g_x
    - p
    - cofactor
    - order
    linkageType: ''
    returnType: bool
    signature: bool EC_Group_Data::params_match(const EC_Group_Data& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:226,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:226,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:227,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:227,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:227,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: Botan::EC_Group_Data::set_oid
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder::encode
    - BOTAN_ARG_CHECK
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_Group_Data::set_oid(const OID& oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:235,1
    - Dst: Botan::EC_Group_Data::order_bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:237,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:239,1
    - Dst: Botan::EC_Group_Data::order_bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:241,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:243,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:248,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:248,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 262
    functionName: Botan::EC_Group_Data::scalar_from_bytes_with_trunc
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group_Data::scalar_from_bytes_mod_order
    - Botan::EC_Group_Data::order_bits
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_from_bytes_with_trunc(std::span<const
      uint8_t> bytes) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:265,1
    - Dst: Botan::EC_Group_Data::order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:265,1
    - Dst: scalar_from_wide_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:270,1
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:271,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:271,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:271,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:277,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:277,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:277,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:277,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 282
    functionName: Botan::EC_Group_Data::scalar_from_bytes_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - BigInt
    - Not_Implemented
    - Botan::EC_Group_Data::order_bytes
    - std::make_unique<EC_Scalar_Data_BN>
    - reduce
    - std::span<const uint8_t>::size
    - std::make_unique<EC_Scalar_Data_PC>
    - scalar_from_wide_bytes
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_from_bytes_mod_order(std::span<const
      uint8_t> bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:286,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:286,1
    - Dst: random_scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:286,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:289,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:289,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:290,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:290,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: Botan::EC_Group_Data::scalar_random
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::random_integer
    - random_scalar
    - std::make_unique<EC_Scalar_Data_BN>
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - std::make_unique<EC_Scalar_Data_PC>
    - Not_Implemented
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_random(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:299,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:299,1
    - Dst: Botan::EC_Group_Data::scalar_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:299,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:302,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:302,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:302,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 307
    functionName: Botan::EC_Group_Data::scalar_one
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<EC_Scalar_Data_BN>
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::EC_Group_Data::scalar_one
    - std::make_unique<EC_Scalar_Data_PC>
    - Not_Implemented
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_one() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::scalar_deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:315,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:315,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:318,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:318,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' bn'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 323
    functionName: Botan::EC_Group_Data::scalar_from_bigint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group_Data::scalar_deserialize
    - serialize
    - std::make_unique<EC_Scalar_Data_BN>
    - Not_Implemented
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_from_bigint(const
      BigInt& bn) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:328,1
    - Dst: base_point_mul_x_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:329,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:329,1
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:330,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:330,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:333,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:334,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:336,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:336,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:338,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:339,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:339,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:339,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:341,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:341,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:341,1
    - Dst: auto::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:341,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 347
    functionName: Botan::EC_Group_Data::gk_x_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - auto::get_affine_x
    - mul
    - Not_Implemented
    - EC_Scalar_Data_BN::checked_ref
    - Botan::Sodium::sodium_memzero
    - EC_Scalar_Data_PC::checked_ref
    - std::make_unique<EC_Scalar_Data_BN>
    - reduce
    - value
    - std::make_unique<EC_Scalar_Data_PC>
    - base_point_mul_x_mod_order
    - shared_from_this
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: "std::unique_ptr<EC_Scalar_Data> EC_Group_Data::gk_x_mod_order(const
      EC_Scalar_Data& scalar,\n                                                              RandomNumberGenerator&
      rng) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:350,1
    - Dst: deserialize_scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:355,1
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:356,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:356,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:364,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:368,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:368,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:368,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:370,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 373
    functionName: Botan::EC_Group_Data::scalar_deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - BigInt::is_zero
    - std::move
    - deserialize_scalar
    - Not_Implemented
    - std::make_unique<EC_Scalar_Data_BN>
    - std::make_unique<EC_Scalar_Data_PC>
    - std::span<const uint8_t>::size
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_deserialize(std::span<const
      uint8_t> bytes) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:378,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:380,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:383,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:383,1
    - Dst: Botan::EC_Group_Data::point_deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:385,1
    - Dst: deserialize_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:391,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:392,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:392,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:392,1
    - Dst: Botan::OS2ECP
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:398,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:399,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:399,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:399,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 407
    functionName: Botan::EC_Group_Data::point_deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - Botan::EC_Group_Data::point_deserialize
    - Not_Implemented
    - Botan::OS2ECP
    - std::span<const uint8_t>::back
    - std::span<const uint8_t>::begin
    - deserialize_point
    - std::span<const uint8_t>::size
    - shared_from_this
    - std::make_unique<EC_AffinePoint_Data_PC>
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::point_deserialize(std::span<const
      uint8_t> bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:418,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:419,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:424,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:426,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 430
    functionName: Botan::h2c_expand_message
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::starts_with
    - BOTAN_UNUSED
    - Not_Implemented
    - Botan::expand_message_xmd
    linkageType: ''
    returnType: std::function<void(std::span<uint8_t>)>
    signature: "std::function<void(std::span<uint8_t>)> h2c_expand_message(std::string_view
      hash_fn,\n                                                           std::span<const
      uint8_t> input,\n                                                           std::span<const
      uint8_t> domain_sep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:418,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:419,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:424,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:426,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 430
    functionName: Botan::h2c_expand_message
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::starts_with
    - BOTAN_UNUSED
    - Not_Implemented
    - Botan::expand_message_xmd
    linkageType: ''
    returnType: std::function<void(std::span<uint8_t>)>
    signature: "std::function<void(std::span<uint8_t>)> h2c_expand_message(std::string_view
      hash_fn,\n                                                           std::span<const
      uint8_t> input,\n                                                           std::span<const
      uint8_t> domain_sep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:438,1
    - Dst: h2c_expand_message
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:438,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:439,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:439,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:439,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 443
    functionName: Botan::EC_Group_Data::point_hash_to_curve_ro
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    - hash_to_curve_ro
    - h2c_expand_message
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::point_hash_to_curve_ro(std::string_view
      hash_fn,\n                                                                           std::span<const
      uint8_t> input,\n                                                                           std::span<const
      uint8_t> domain_sep) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:449,1
    - Dst: h2c_expand_message
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:449,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:450,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:450,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:450,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 454
    functionName: Botan::EC_Group_Data::point_hash_to_curve_nu
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - hash_to_curve_nu
    - std::move
    - Not_Implemented
    - h2c_expand_message
    - std::make_unique<EC_AffinePoint_Data_PC>
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::point_hash_to_curve_nu(std::string_view
      hash_fn,\n                                                                           std::span<const
      uint8_t> input,\n                                                                           std::span<const
      uint8_t> domain_sep) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:459,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:460,1
    - Dst: mul_by_g
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:460,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:460,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:461,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:461,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:461,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:464,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:465,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:467,1
    - Dst: m_base_mult::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:469,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:469,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:470,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:470,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:470,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 475
    functionName: Botan::EC_Group_Data::point_g_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - Not_Implemented
    - EC_Scalar_Data_BN::checked_ref
    - mul_by_g
    - group
    - shared_from_this
    - m_base_mult::mul
    - value
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - EC_Scalar_Data_PC::checked_ref
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::point_g_mul(const
      EC_Scalar_Data& scalar,\n                                                                RandomNumberGenerator&
      rng) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::mul_px_qy
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:483,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:483,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:484,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:485,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:486,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:490,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:490,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:490,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:497,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:500,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:501,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:503,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:503,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:505,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:505,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:506,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:506,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:510,1
    - Dst: auto::force_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:511,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:512,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:512,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - ' p'
    - ' x'
    - ' q'
    - ' y'
    - ' rng'
    argTypes:
    - EC_AffinePoint_Data
    - EC_Scalar_Data
    - EC_AffinePoint_Data
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 520
    functionName: Botan::EC_Group_Data::mul_px_qy
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - auto::is_zero
    - Botan::EC_Group_Data::mul_px_qy
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - Not_Implemented
    - order
    - EC_Scalar_Data_BN::checked_ref
    - EC_Point_Var_Point_Precompute::mul
    - EC_Scalar_Data_PC::checked_ref
    - group
    - auto::force_affine
    - cofactor
    - EC_AffinePoint_Data_PC::checked_ref
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - shared_from_this
    - to_legacy_point
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::mul_px_qy(const
      EC_AffinePoint_Data& p,\n                                                              const
      EC_Scalar_Data& x,\n                                                              const
      EC_AffinePoint_Data& q,\n                                                              const
      EC_Scalar_Data& y,\n                                                              RandomNumberGenerator&
      rng) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: point_add
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:525,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:525,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:526,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:528,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:528,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:528,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:531,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:531,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:532,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:532,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:532,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - EC_AffinePoint_Data
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 537
    functionName: Botan::EC_Group_Data::affine_add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    - point_add
    - std::move
    - Not_Implemented
    - EC_AffinePoint_Data_PC::checked_ref
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - shared_from_this
    - to_legacy_point
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::affine_add(const
      EC_AffinePoint_Data& p,\n                                                               const
      EC_AffinePoint_Data& q) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: point_negate
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:541,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:541,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:542,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:542,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:545,1
    - Dst: auto::negate
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:546,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:547,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:547,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:547,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 552
    functionName: Botan::EC_Group_Data::affine_neg
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    - point_negate
    - auto::negate
    - std::move
    - Not_Implemented
    - EC_AffinePoint_Data_PC::checked_ref
    - std::make_unique<EC_AffinePoint_Data_PC>
    - shared_from_this
    - to_legacy_point
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::affine_neg(const
      EC_AffinePoint_Data& p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Mul2Table_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:556,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:559,1
    - Dst: Botan::EC_Group_Data::base_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:559,1
    - Dst: std::make_unique<EC_Mul2Table_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:560,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: Botan::EC_Group_Data::make_mul2_table
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group_Data::base_point
    - std::make_unique<EC_Mul2Table_Data_PC>
    - std::make_unique<EC_Mul2Table_Data_BN>
    - Not_Implemented
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Mul2Table_Data>
    signature: std::unique_ptr<EC_Mul2Table_Data> EC_Group_Data::make_mul2_table(const
      EC_AffinePoint_Data& h) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: EC_Group_Data::~EC_Group_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group_Data::~EC_Group_Data()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:46,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:47,1
    - Dst: sig_words
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:51,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:52,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:53,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:56,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:61,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:63,1
    - Dst: human_name_or_empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:65,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:66,1
    - Dst: Botan::PCurve::PrimeOrderCurve::for_named_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:68,1
    - Dst: Botan::PCurve::PrimeOrderCurve::from_params
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:77,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:87,1
    - Dst: R2
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:87,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:88,1
    - Dst: R2
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:88,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:94,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:95,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:97,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:98,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:98,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 9
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' g_x'
    - ' g_y'
    - ' order'
    - ' cofactor'
    - ' oid'
    - source
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - OID
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 102
    functionName: Botan::EC_Group_Data::EC_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - R2
    - DER_Encoder::encode
    - std::string::empty
    - to_string
    - mul
    - is_zero
    - human_name_or_empty
    - Botan::PCurve::PrimeOrderCurve::for_named_curve
    - Botan::PCurve::PrimeOrderCurve::from_params
    - bits
    - sig_words
    - Botan::Barrett_Reduction::for_public_modulus
    - Not_Implemented
    - empty
    - fmt
    linkageType: ''
    returnType: void
    signature: "void EC_Group_Data::EC_Group_Data(const BigInt& p,\n                             const
      BigInt& a,\n                             const BigInt& b,\n                             const
      BigInt& g_x,\n                             const BigInt& g_y,\n                             const
      BigInt& order,\n                             const BigInt& cofactor,\n                             const
      OID& oid,\n                             EC_Group_Source source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<EC_Group_Data>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:113,1
    - Dst: CurveGFp
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:116,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:116,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:117,1
    - Dst: std::make_unique<EC_Point_Base_Point_Precompute>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 9
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' g_x'
    - ' g_y'
    - ' order'
    - ' cofactor'
    - ' oid'
    - source
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - OID
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 124
    functionName: Botan::EC_Group_Data::create
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 6
    functionsReached:
    - std::make_unique<EC_Point_Base_Point_Precompute>
    - auto::get
    - std::make_shared<EC_Group_Data>
    - EC_Point
    - CurveGFp
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: "std::shared_ptr<EC_Group_Data> EC_Group_Data::create(const BigInt&
      p,\n                                                     const BigInt& a,\n
      \                                                    const BigInt& b,\n                                                     const
      BigInt& g_x,\n                                                     const BigInt&
      g_y,\n                                                     const BigInt& order,\n
      \                                                    const BigInt& cofactor,\n
      \                                                    const OID& oid,\n                                                     EC_Group_Source
      source)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:133,1
    - Dst: Botan::EC_Group_Data::a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:136,1
    - Dst: Botan::EC_Group_Data::b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:139,1
    - Dst: Botan::EC_Group_Data::order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:142,1
    - Dst: Botan::EC_Group_Data::cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:145,1
    - Dst: Botan::EC_Group_Data::g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:148,1
    - Dst: Botan::EC_Group_Data::g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 7
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - ' g_x'
    - ' g_y'
    - ' order'
    - ' cofactor'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 156
    functionName: Botan::EC_Group_Data::params_match
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group_Data::g_y
    - Botan::EC_Group_Data::cofactor
    - Botan::EC_Group_Data::p
    - Botan::EC_Group_Data::a
    - Botan::EC_Group_Data::order
    - Botan::EC_Group_Data::b
    - Botan::EC_Group_Data::g_x
    linkageType: ''
    returnType: bool
    signature: "bool EC_Group_Data::params_match(const BigInt& p,\n                                 const
      BigInt& a,\n                                 const BigInt& b,\n                                 const
      BigInt& g_x,\n                                 const BigInt& g_y,\n                                 const
      BigInt& order,\n                                 const BigInt& cofactor) const"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:164,1
    - Dst: Botan::EC_Group_Data::a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:167,1
    - Dst: Botan::EC_Group_Data::b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:170,1
    - Dst: Botan::EC_Group_Data::order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:173,1
    - Dst: Botan::EC_Group_Data::cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:176,1
    - Dst: Botan::EC_Group_Data::p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:180,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:182,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:185,1
    - Dst: is_odd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:186,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:188,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:191,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:200,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:201,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:202,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:204,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:205,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:207,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:211,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:217,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 6
    argNames:
    - ' p'
    - ' a'
    - ' b'
    - base_pt
    - ' order'
    - ' cofactor'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - std::span<const uint8_t>
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 219
    functionName: Botan::EC_Group_Data::params_match
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group_Data::cofactor
    - Botan::EC_Group_Data::p_bytes
    - std::span<const uint8_t>::subspan
    - Botan::ct_is_equal
    - Decoding_Error
    - is_odd
    - Botan::EC_Group_Data::p
    - serialize
    - Botan::EC_Group_Data::a
    - Botan::EC_Group_Data::order
    - std::span<const uint8_t>::size
    - Botan::EC_Group_Data::b
    linkageType: ''
    returnType: bool
    signature: "bool EC_Group_Data::params_match(const BigInt& p,\n                                 const
      BigInt& a,\n                                 const BigInt& b,\n                                 std::span<const
      uint8_t> base_pt,\n                                 const BigInt& order,\n                                 const
      BigInt& cofactor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: Botan::EC_Group_Data::params_match
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 2
    functionsReached:
    - a
    - Botan::EC_Group_Data::params_match
    - g_y
    - b
    - g_x
    - p
    - cofactor
    - order
    linkageType: ''
    returnType: bool
    signature: bool EC_Group_Data::params_match(const EC_Group_Data& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:226,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:226,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:227,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:227,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:227,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: Botan::EC_Group_Data::set_oid
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder::encode
    - BOTAN_ARG_CHECK
    - empty
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_Group_Data::set_oid(const OID& oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:235,1
    - Dst: Botan::EC_Group_Data::order_bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:237,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:239,1
    - Dst: Botan::EC_Group_Data::order_bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:241,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:243,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:248,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:248,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 262
    functionName: Botan::EC_Group_Data::scalar_from_bytes_with_trunc
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group_Data::scalar_from_bytes_mod_order
    - Botan::EC_Group_Data::order_bits
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_from_bytes_with_trunc(std::span<const
      uint8_t> bytes) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:265,1
    - Dst: Botan::EC_Group_Data::order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:265,1
    - Dst: scalar_from_wide_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:270,1
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:271,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:271,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:271,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:277,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:277,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:277,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:277,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 282
    functionName: Botan::EC_Group_Data::scalar_from_bytes_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - BigInt
    - Not_Implemented
    - Botan::EC_Group_Data::order_bytes
    - std::make_unique<EC_Scalar_Data_BN>
    - reduce
    - std::span<const uint8_t>::size
    - std::make_unique<EC_Scalar_Data_PC>
    - scalar_from_wide_bytes
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_from_bytes_mod_order(std::span<const
      uint8_t> bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:286,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:286,1
    - Dst: random_scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:286,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:289,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:289,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:290,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:290,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: Botan::EC_Group_Data::scalar_random
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::random_integer
    - random_scalar
    - std::make_unique<EC_Scalar_Data_BN>
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - std::make_unique<EC_Scalar_Data_PC>
    - Not_Implemented
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_random(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:299,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:299,1
    - Dst: Botan::EC_Group_Data::scalar_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:299,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:302,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:302,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:302,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 307
    functionName: Botan::EC_Group_Data::scalar_one
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<EC_Scalar_Data_BN>
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::EC_Group_Data::scalar_one
    - std::make_unique<EC_Scalar_Data_PC>
    - Not_Implemented
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_one() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::scalar_deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:315,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:315,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:318,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:318,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' bn'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 323
    functionName: Botan::EC_Group_Data::scalar_from_bigint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group_Data::scalar_deserialize
    - serialize
    - std::make_unique<EC_Scalar_Data_BN>
    - Not_Implemented
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_from_bigint(const
      BigInt& bn) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:328,1
    - Dst: base_point_mul_x_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:329,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:329,1
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:330,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:330,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:333,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:334,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:336,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:336,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:338,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:339,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:339,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:339,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:341,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:341,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:341,1
    - Dst: auto::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:341,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 347
    functionName: Botan::EC_Group_Data::gk_x_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - auto::get_affine_x
    - mul
    - Not_Implemented
    - EC_Scalar_Data_BN::checked_ref
    - Botan::Sodium::sodium_memzero
    - EC_Scalar_Data_PC::checked_ref
    - std::make_unique<EC_Scalar_Data_BN>
    - reduce
    - value
    - std::make_unique<EC_Scalar_Data_PC>
    - base_point_mul_x_mod_order
    - shared_from_this
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: "std::unique_ptr<EC_Scalar_Data> EC_Group_Data::gk_x_mod_order(const
      EC_Scalar_Data& scalar,\n                                                              RandomNumberGenerator&
      rng) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:350,1
    - Dst: deserialize_scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:355,1
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:356,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:356,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:364,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:368,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:368,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:368,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:370,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 373
    functionName: Botan::EC_Group_Data::scalar_deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 2
    functionsReached:
    - BigInt::is_zero
    - std::move
    - deserialize_scalar
    - Not_Implemented
    - std::make_unique<EC_Scalar_Data_BN>
    - std::make_unique<EC_Scalar_Data_PC>
    - std::span<const uint8_t>::size
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Group_Data::scalar_deserialize(std::span<const
      uint8_t> bytes) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:378,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:380,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:383,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:383,1
    - Dst: Botan::EC_Group_Data::point_deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:385,1
    - Dst: deserialize_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:391,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:392,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:392,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:392,1
    - Dst: Botan::OS2ECP
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:398,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:399,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:399,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:399,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 407
    functionName: Botan::EC_Group_Data::point_deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - Botan::EC_Group_Data::point_deserialize
    - Not_Implemented
    - Botan::OS2ECP
    - std::span<const uint8_t>::back
    - std::span<const uint8_t>::begin
    - deserialize_point
    - std::span<const uint8_t>::size
    - shared_from_this
    - std::make_unique<EC_AffinePoint_Data_PC>
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::point_deserialize(std::span<const
      uint8_t> bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:418,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:419,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:424,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:426,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 430
    functionName: Botan::h2c_expand_message
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::starts_with
    - BOTAN_UNUSED
    - Not_Implemented
    - Botan::expand_message_xmd
    linkageType: ''
    returnType: std::function<void(std::span<uint8_t>)>
    signature: "std::function<void(std::span<uint8_t>)> h2c_expand_message(std::string_view
      hash_fn,\n                                                           std::span<const
      uint8_t> input,\n                                                           std::span<const
      uint8_t> domain_sep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:418,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:419,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:424,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:426,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 430
    functionName: Botan::h2c_expand_message
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::starts_with
    - BOTAN_UNUSED
    - Not_Implemented
    - Botan::expand_message_xmd
    linkageType: ''
    returnType: std::function<void(std::span<uint8_t>)>
    signature: "std::function<void(std::span<uint8_t>)> h2c_expand_message(std::string_view
      hash_fn,\n                                                           std::span<const
      uint8_t> input,\n                                                           std::span<const
      uint8_t> domain_sep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:438,1
    - Dst: h2c_expand_message
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:438,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:439,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:439,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:439,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 443
    functionName: Botan::EC_Group_Data::point_hash_to_curve_ro
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    - hash_to_curve_ro
    - h2c_expand_message
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::point_hash_to_curve_ro(std::string_view
      hash_fn,\n                                                                           std::span<const
      uint8_t> input,\n                                                                           std::span<const
      uint8_t> domain_sep) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:449,1
    - Dst: h2c_expand_message
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:449,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:450,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:450,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:450,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 454
    functionName: Botan::EC_Group_Data::point_hash_to_curve_nu
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - hash_to_curve_nu
    - std::move
    - Not_Implemented
    - h2c_expand_message
    - std::make_unique<EC_AffinePoint_Data_PC>
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::point_hash_to_curve_nu(std::string_view
      hash_fn,\n                                                                           std::span<const
      uint8_t> input,\n                                                                           std::span<const
      uint8_t> domain_sep) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:459,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:460,1
    - Dst: mul_by_g
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:460,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:460,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:461,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:461,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:461,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:464,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:465,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:467,1
    - Dst: m_base_mult::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:469,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:469,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:470,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:470,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:470,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 475
    functionName: Botan::EC_Group_Data::point_g_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - Not_Implemented
    - EC_Scalar_Data_BN::checked_ref
    - mul_by_g
    - group
    - shared_from_this
    - m_base_mult::mul
    - value
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - EC_Scalar_Data_PC::checked_ref
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::point_g_mul(const
      EC_Scalar_Data& scalar,\n                                                                RandomNumberGenerator&
      rng) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::mul_px_qy
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:483,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:483,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:484,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:485,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:486,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:490,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:490,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:490,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:497,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:500,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:501,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:503,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:503,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:505,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:505,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:506,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:506,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:510,1
    - Dst: auto::force_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:511,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:512,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:512,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - ' p'
    - ' x'
    - ' q'
    - ' y'
    - ' rng'
    argTypes:
    - EC_AffinePoint_Data
    - EC_Scalar_Data
    - EC_AffinePoint_Data
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 520
    functionName: Botan::EC_Group_Data::mul_px_qy
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 2
    functionsReached:
    - auto::is_zero
    - Botan::EC_Group_Data::mul_px_qy
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - Not_Implemented
    - order
    - EC_Scalar_Data_BN::checked_ref
    - EC_Point_Var_Point_Precompute::mul
    - EC_Scalar_Data_PC::checked_ref
    - group
    - auto::force_affine
    - cofactor
    - EC_AffinePoint_Data_PC::checked_ref
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - shared_from_this
    - to_legacy_point
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::mul_px_qy(const
      EC_AffinePoint_Data& p,\n                                                              const
      EC_Scalar_Data& x,\n                                                              const
      EC_AffinePoint_Data& q,\n                                                              const
      EC_Scalar_Data& y,\n                                                              RandomNumberGenerator&
      rng) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: point_add
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:525,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:525,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:526,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:528,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:528,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:528,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:531,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:531,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:532,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:532,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:532,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - EC_AffinePoint_Data
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 537
    functionName: Botan::EC_Group_Data::affine_add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    - point_add
    - std::move
    - Not_Implemented
    - EC_AffinePoint_Data_PC::checked_ref
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - shared_from_this
    - to_legacy_point
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::affine_add(const
      EC_AffinePoint_Data& p,\n                                                               const
      EC_AffinePoint_Data& q) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: point_negate
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:541,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:541,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:542,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:542,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:545,1
    - Dst: auto::negate
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:546,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:547,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:547,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:547,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 552
    functionName: Botan::EC_Group_Data::affine_neg
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    - point_negate
    - auto::negate
    - std::move
    - Not_Implemented
    - EC_AffinePoint_Data_PC::checked_ref
    - std::make_unique<EC_AffinePoint_Data_PC>
    - shared_from_this
    - to_legacy_point
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: std::unique_ptr<EC_AffinePoint_Data> EC_Group_Data::affine_neg(const
      EC_AffinePoint_Data& p) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Mul2Table_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:556,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:559,1
    - Dst: Botan::EC_Group_Data::base_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:559,1
    - Dst: std::make_unique<EC_Mul2Table_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:560,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: Botan::EC_Group_Data::make_mul2_table
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group_Data::base_point
    - std::make_unique<EC_Mul2Table_Data_PC>
    - std::make_unique<EC_Mul2Table_Data_BN>
    - Not_Implemented
    - shared_from_this
    linkageType: ''
    returnType: std::unique_ptr<EC_Mul2Table_Data>
    signature: std::unique_ptr<EC_Mul2Table_Data> EC_Group_Data::make_mul2_table(const
      EC_AffinePoint_Data& h) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:100,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:108,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:165,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:172,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:172,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:182,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:199,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:200,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:206,1
    - Dst: Botan::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:206,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:285,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:470,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:471,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:474,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:476,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:483,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:491,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:497,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:499,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:500,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:501,1
    - Dst: Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:505,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:506,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:508,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:518,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:522,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:523,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:524,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:535,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:539,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:540,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:540,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:550,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:555,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:556,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:557,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:563,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:564,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:580,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:591,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:593,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:609,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:618,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:620,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:627,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:628,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:629,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:631,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:638,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:639,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:646,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:646,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:646,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:651,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:651,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:656,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:657,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:657,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:663,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:664,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:670,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:671,1
    - Dst: auto::square_self
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:672,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:673,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:679,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:680,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:681,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:682,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:688,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:690,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:691,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:692,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:693,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:699,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:700,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:701,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:704,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:707,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:709,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 734
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 26
    functionsReached:
    - get_p
    - Botan::BigInt
    - Botan::Decoding_Error
    - BOTAN_DEPRECATED
    - Botan::EC_Group::from_OID
    - auto::to_bigint
    - EC_AffinePoint
    - to_bigint
    - auto::square_self
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - get_a
    - Botan::EC_Scalar::random
    - Botan::EC_Group::from_PEM
    - OID
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::EC_Scalar::from_bytes_mod_order
    - auto::to_legacy_point
    - Botan::EC_Group
    - Mul2Table::mul2_vartime
    - Botan::EC_AffinePoint::identity
    - get_p_bytes
    - auto::serialize
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ber
    - ber_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group(const uint8_t ber[], size_t ber_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 22
    functionsReached:
    - Botan::EC_Group::from_OID
    linkageType: ''
    returnType: void
    signature: void EC_Group(const OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan::EC_Group_from_PEM
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_PEM
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group EC_Group_from_PEM(std::string_view pem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group(EC_Group&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan::initialized
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool initialized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: Botan::used_explicit_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool used_explicit_encoding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 377
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: Mul2Table
    signature: Mul2Table final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Mul2Table
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: Botan::Mul2Table
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mul2Table(const Mul2Table& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 454
    functionName: Botan::_data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: std::shared_ptr<EC_Group_Data> & _data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 472
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 2
    functionsReached:
    - EC_AffinePoint
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point OS2ECP(const uint8_t bits[], size_t len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoded_point
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 477
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 2
    functionsReached:
    - EC_AffinePoint
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point OS2ECP(std::span<const uint8_t> encoded_point) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:499,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:500,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:501,1
    - Dst: Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:505,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:506,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' x_bn'
    - ' h_pt'
    - ' y_bn'
    argTypes:
    - BigInt
    - EC_Point
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 510
    functionName: Botan::point_multiply
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Mul2Table::mul2_vartime
    - EC_AffinePoint
    - Botan::EC_AffinePoint::identity
    - auto::to_legacy_point
    - Botan::EC_Scalar::from_bigint
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point point_multiply(const BigInt& x_bn, const EC_Point& h_pt, const
      BigInt& y_bn) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:522,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:523,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k_bn'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 525
    functionName: Botan::blinded_base_point_multiply
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bigint
    - auto::to_legacy_point
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point blinded_base_point_multiply(const BigInt& k_bn,\n                                           RandomNumberGenerator&
      rng,\n                                           std::vector<BigInt>& /*ws*/)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:539,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:540,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k_bn'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 541
    functionName: Botan::blinded_base_point_multiply_x
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bigint
    - Botan::BigInt
    linkageType: ''
    returnType: BigInt
    signature: "BigInt blinded_base_point_multiply_x(const BigInt& k_bn,\n                                           RandomNumberGenerator&
      rng,\n                                           std::vector<BigInt>& /*ws*/)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:555,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:556,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' point'
    - ' k_bn'
    - ' rng'
    argTypes:
    - EC_Point
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 551
    functionDepth: 3
    functionLinenumber: 551
    functionLinenumberEnd: 558
    functionName: Botan::blinded_var_point_multiply
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - EC_AffinePoint
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point blinded_var_point_multiply(const EC_Point& point,\n                                          const
      BigInt& k_bn,\n                                          RandomNumberGenerator&
      rng,\n                                          std::vector<BigInt>& /*ws*/)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 565
    functionName: Botan::random_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::random
    linkageType: ''
    returnType: BigInt
    signature: BigInt random_scalar(RandomNumberGenerator& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:591,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - hash_fn
    - input
    - input_len
    - domain_sep
    - domain_sep_len
    argTypes:
    - std::string_view
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 595
    functionName: Botan::hash_to_curve
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point hash_to_curve(std::string_view hash_fn,\n                             const
      uint8_t input[],\n                             size_t input_len,\n                             const
      uint8_t domain_sep[],\n                             size_t domain_sep_len,\n
      \                            bool random_oracle = true) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:618,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - hash_fn
    - input
    - input_len
    - domain_sep
    argTypes:
    - std::string_view
    - uint8_t[]
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 622
    functionName: Botan::hash_to_curve
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point hash_to_curve(std::string_view hash_fn,\n                             const
      uint8_t input[],\n                             size_t input_len,\n                             std::string_view
      domain_sep,\n                             bool random_oracle = true) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:628,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:629,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 633
    functionName: Botan::point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::Decoding_Error
    - auto::to_legacy_point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point point(const BigInt& x, const BigInt& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 640
    functionName: Botan::zero_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::identity
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point zero_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:646,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 646
    functionName: Botan::a_is_minus_3
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - get_p
    - get_a
    linkageType: ''
    returnType: bool
    signature: bool a_is_minus_3() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 651
    functionName: Botan::a_is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - get_a
    linkageType: ''
    returnType: bool
    signature: bool a_is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:657,1
    - Dst: Botan::serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 658
    functionName: Botan::mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::serialize
    linkageType: ''
    returnType: BigInt
    signature: BigInt mod_order(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 663
    functionDepth: 3
    functionLinenumber: 663
    functionLinenumberEnd: 665
    functionName: Botan::inverse_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    linkageType: ''
    returnType: BigInt
    signature: BigInt inverse_mod_order(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:671,1
    - Dst: auto::square_self
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:672,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 670
    functionDepth: 3
    functionLinenumber: 670
    functionLinenumberEnd: 674
    functionName: Botan::square_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - auto::to_bigint
    - Botan::EC_Scalar::from_bigint
    - auto::square_self
    linkageType: ''
    returnType: BigInt
    signature: BigInt square_mod_order(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:680,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:681,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 683
    functionName: Botan::multiply_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - to_bigint
    linkageType: ''
    returnType: BigInt
    signature: BigInt multiply_mod_order(const BigInt& x, const BigInt& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:690,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:691,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:692,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 694
    functionName: Botan::multiply_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - to_bigint
    linkageType: ''
    returnType: BigInt
    signature: BigInt multiply_mod_order(const BigInt& x, const BigInt& y, const BigInt&
      z) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:700,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 699
    functionDepth: 3
    functionLinenumber: 699
    functionLinenumberEnd: 702
    functionName: Botan::cube_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - to_bigint
    linkageType: ''
    returnType: BigInt
    signature: BigInt cube_mod_order(const BigInt& x) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:707,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 711
    functionName: Botan::point_size
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - get_p_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t point_size(EC_Point_Format format) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - EC_Group
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 738
    functionName: operator!=(const EC_Group& lhs, const EC_Group& rhs)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const EC_Group& lhs, const EC_Group& rhs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:100,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:108,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:165,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:172,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:172,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:182,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:199,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:200,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:206,1
    - Dst: Botan::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:206,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:285,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:470,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:471,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:474,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:476,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:483,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:491,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:497,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:499,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:500,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:501,1
    - Dst: Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:505,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:506,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:508,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:518,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:522,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:523,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:524,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:535,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:539,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:540,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:540,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:550,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:555,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:556,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:557,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:563,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:564,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:580,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:591,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:593,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:609,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:618,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:620,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:627,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:628,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:629,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:631,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:638,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:639,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:646,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:646,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:646,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:651,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:651,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:656,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:657,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:657,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:663,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:664,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:670,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:671,1
    - Dst: auto::square_self
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:672,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:673,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:679,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:680,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:681,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:682,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:688,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:690,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:691,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:692,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:693,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:699,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:700,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:701,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:704,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:707,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:709,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 734
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 26
    functionsReached:
    - get_p
    - Botan::BigInt
    - Botan::Decoding_Error
    - BOTAN_DEPRECATED
    - Botan::EC_Group::from_OID
    - auto::to_bigint
    - EC_AffinePoint
    - to_bigint
    - auto::square_self
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - get_a
    - Botan::EC_Scalar::random
    - Botan::EC_Group::from_PEM
    - OID
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::EC_Scalar::from_bytes_mod_order
    - auto::to_legacy_point
    - Botan::EC_Group
    - Mul2Table::mul2_vartime
    - Botan::EC_AffinePoint::identity
    - get_p_bytes
    - auto::serialize
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ber
    - ber_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group(const uint8_t ber[], size_t ber_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 23
    functionsReached:
    - Botan::EC_Group::from_OID
    linkageType: ''
    returnType: void
    signature: void EC_Group(const OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Botan::EC_Group_from_PEM
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_PEM
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group EC_Group_from_PEM(std::string_view pem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Group(EC_Group&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: Botan::initialized
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool initialized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: Botan::used_explicit_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool used_explicit_encoding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 377
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: Mul2Table
    signature: Mul2Table final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Mul2Table
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: Botan::Mul2Table
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mul2Table(const Mul2Table& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 454
    functionName: Botan::_data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<EC_Group_Data>
    signature: std::shared_ptr<EC_Group_Data> & _data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 472
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 2
    functionsReached:
    - EC_AffinePoint
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point OS2ECP(const uint8_t bits[], size_t len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoded_point
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 477
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 2
    functionsReached:
    - EC_AffinePoint
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point OS2ECP(std::span<const uint8_t> encoded_point) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:499,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:500,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:501,1
    - Dst: Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:505,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:506,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' x_bn'
    - ' h_pt'
    - ' y_bn'
    argTypes:
    - BigInt
    - EC_Point
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 510
    functionName: Botan::point_multiply
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Mul2Table::mul2_vartime
    - EC_AffinePoint
    - Botan::EC_AffinePoint::identity
    - auto::to_legacy_point
    - Botan::EC_Scalar::from_bigint
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point point_multiply(const BigInt& x_bn, const EC_Point& h_pt, const
      BigInt& y_bn) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:522,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:523,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k_bn'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 525
    functionName: Botan::blinded_base_point_multiply
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bigint
    - auto::to_legacy_point
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point blinded_base_point_multiply(const BigInt& k_bn,\n                                           RandomNumberGenerator&
      rng,\n                                           std::vector<BigInt>& /*ws*/)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:539,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:540,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k_bn'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 541
    functionName: Botan::blinded_base_point_multiply_x
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bigint
    - Botan::BigInt
    linkageType: ''
    returnType: BigInt
    signature: "BigInt blinded_base_point_multiply_x(const BigInt& k_bn,\n                                           RandomNumberGenerator&
      rng,\n                                           std::vector<BigInt>& /*ws*/)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:555,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:556,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' point'
    - ' k_bn'
    - ' rng'
    argTypes:
    - EC_Point
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 551
    functionDepth: 3
    functionLinenumber: 551
    functionLinenumberEnd: 558
    functionName: Botan::blinded_var_point_multiply
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - EC_AffinePoint
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point blinded_var_point_multiply(const EC_Point& point,\n                                          const
      BigInt& k_bn,\n                                          RandomNumberGenerator&
      rng,\n                                          std::vector<BigInt>& /*ws*/)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 565
    functionName: Botan::random_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::random
    linkageType: ''
    returnType: BigInt
    signature: BigInt random_scalar(RandomNumberGenerator& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:591,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - hash_fn
    - input
    - input_len
    - domain_sep
    - domain_sep_len
    argTypes:
    - std::string_view
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 595
    functionName: Botan::hash_to_curve
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point hash_to_curve(std::string_view hash_fn,\n                             const
      uint8_t input[],\n                             size_t input_len,\n                             const
      uint8_t domain_sep[],\n                             size_t domain_sep_len,\n
      \                            bool random_oracle = true) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:618,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - hash_fn
    - input
    - input_len
    - domain_sep
    argTypes:
    - std::string_view
    - uint8_t[]
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 622
    functionName: Botan::hash_to_curve
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point hash_to_curve(std::string_view hash_fn,\n                             const
      uint8_t input[],\n                             size_t input_len,\n                             std::string_view
      domain_sep,\n                             bool random_oracle = true) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:628,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:629,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 633
    functionName: Botan::point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::from_bigint_xy
    - Botan::Decoding_Error
    - auto::to_legacy_point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point point(const BigInt& x, const BigInt& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 640
    functionName: Botan::zero_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::identity
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point zero_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:646,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 646
    functionName: Botan::a_is_minus_3
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - get_p
    - get_a
    linkageType: ''
    returnType: bool
    signature: bool a_is_minus_3() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 651
    functionName: Botan::a_is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - get_a
    linkageType: ''
    returnType: bool
    signature: bool a_is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:657,1
    - Dst: Botan::serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 658
    functionName: Botan::mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::serialize
    linkageType: ''
    returnType: BigInt
    signature: BigInt mod_order(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 663
    functionDepth: 3
    functionLinenumber: 663
    functionLinenumberEnd: 665
    functionName: Botan::inverse_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    linkageType: ''
    returnType: BigInt
    signature: BigInt inverse_mod_order(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:671,1
    - Dst: auto::square_self
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:672,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 670
    functionDepth: 3
    functionLinenumber: 670
    functionLinenumberEnd: 674
    functionName: Botan::square_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - auto::to_bigint
    - Botan::EC_Scalar::from_bigint
    - auto::square_self
    linkageType: ''
    returnType: BigInt
    signature: BigInt square_mod_order(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:680,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:681,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 683
    functionName: Botan::multiply_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - to_bigint
    linkageType: ''
    returnType: BigInt
    signature: BigInt multiply_mod_order(const BigInt& x, const BigInt& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:690,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:691,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:692,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 694
    functionName: Botan::multiply_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - to_bigint
    linkageType: ''
    returnType: BigInt
    signature: BigInt multiply_mod_order(const BigInt& x, const BigInt& y, const BigInt&
      z) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:700,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 699
    functionDepth: 3
    functionLinenumber: 699
    functionLinenumberEnd: 702
    functionName: Botan::cube_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - to_bigint
    linkageType: ''
    returnType: BigInt
    signature: BigInt cube_mod_order(const BigInt& x) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:707,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 711
    functionName: Botan::point_size
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - get_p_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t point_size(EC_Point_Format format) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - EC_Group
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 738
    functionName: operator!=(const EC_Group& lhs, const EC_Group& rhs)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const EC_Group& lhs, const EC_Group& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:16,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - point
    argTypes:
    - std::unique_ptr<EC_AffinePoint_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::EC_AffinePoint::EC_AffinePoint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 35
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::EC_AffinePoint(std::unique_ptr<EC_AffinePoint_Data>
      point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan::EC_AffinePoint::EC_AffinePoint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 35
    functionsReached:
    - inner
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::EC_AffinePoint(const EC_AffinePoint& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::EC_AffinePoint::EC_AffinePoint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 35
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::EC_AffinePoint(EC_AffinePoint&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: '& EC_AffinePoint::operator=(const EC_AffinePoint& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint & EC_AffinePoint::operator=(const EC_AffinePoint& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: '& EC_AffinePoint::operator=(EC_AffinePoint&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint & EC_AffinePoint::operator=(EC_AffinePoint&& other)
      noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:37,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan::EC_AffinePoint::EC_AffinePoint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 35
    functionsReached:
    - _data
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::EC_AffinePoint(const EC_Group& group, std::span<const
      uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::EC_AffinePoint::to_legacy_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_AffinePoint::to_legacy_point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point EC_AffinePoint::to_legacy_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' pt'
    argTypes:
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: Botan::EC_AffinePoint::EC_AffinePoint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 35
    functionsReached:
    - encode
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::EC_AffinePoint(const EC_Group& group, const EC_Point&
      pt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint::_group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:61,1
    - Dst: _group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:61,1
    - Dst: EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:65,1
    - Dst: is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:66,1
    - Dst: EC_AffinePoint::serialize_uncompressed
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:72,1
    - Dst: serialize_uncompressed
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:73,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:74,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:74,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:74,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:76,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:76,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:76,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 77
    functionName: EC_AffinePoint::operator==(const EC_AffinePoint& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - _group
    - auto::data
    - auto::size
    - Botan::CT::is_equal
    - EC_AffinePoint::serialize_uncompressed
    - is_identity
    - EC_AffinePoint::is_identity
    - serialize_uncompressed
    - BOTAN_ASSERT_NOMSG
    - EC_AffinePoint::_group
    linkageType: ''
    returnType: bool
    signature: bool EC_AffinePoint::operator==(const EC_AffinePoint& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: Botan::EC_AffinePoint::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 18
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::identity(const EC_Group& group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:86,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:86,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:86,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: Botan::EC_AffinePoint::generator
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 31
    functionsReached:
    - Botan::EC_AffinePoint::from_bigint_xy
    - Internal_Error
    - get_g_y
    - get_g_x
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::generator(const EC_Group& group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:94,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:94,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:97,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:97,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:101,1
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:104,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:104,1
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:105,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:105,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' y'
    argTypes:
    - EC_Group
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: Botan::EC_AffinePoint::from_bigint_xy
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 22
    functionsReached:
    - get_p
    - subspan
    - last
    - get_p_bytes
    - Botan::EC_AffinePoint::deserialize
    - is_negative
    - serialize_to
    linkageType: ''
    returnType: std::optional<EC_AffinePoint>
    signature: std::optional<EC_AffinePoint> EC_AffinePoint::from_bigint_xy(const
      EC_Group& group, const BigInt& x, const BigInt& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan::EC_AffinePoint::field_element_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: size_t
    signature: size_t EC_AffinePoint::field_element_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: Botan::EC_AffinePoint::is_identity
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: bool
    signature: bool EC_AffinePoint::is_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:122,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - EC_Group
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: Botan::EC_AffinePoint::hash_to_curve_ro
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 14
    functionsReached:
    - std::move
    - _data
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint EC_AffinePoint::hash_to_curve_ro(const EC_Group& group,\n
      \                                               std::string_view hash_fn,\n
      \                                               std::span<const uint8_t> input,\n
      \                                               std::span<const uint8_t> domain_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:130,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - EC_Group
    - std::string_view
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: Botan::EC_AffinePoint::hash_to_curve_ro
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 15
    functionsReached:
    - as_span_of_bytes
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint EC_AffinePoint::hash_to_curve_ro(const EC_Group& group,\n
      \                                               std::string_view hash_fn,\n
      \                                               std::span<const uint8_t> input,\n
      \                                               std::string_view domain_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:137,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:138,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - EC_Group
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: Botan::EC_AffinePoint::hash_to_curve_nu
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 14
    functionsReached:
    - std::move
    - _data
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint EC_AffinePoint::hash_to_curve_nu(const EC_Group& group,\n
      \                                               std::string_view hash_fn,\n
      \                                               std::span<const uint8_t> input,\n
      \                                               std::span<const uint8_t> domain_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:145,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - EC_Group
    - std::string_view
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: Botan::EC_AffinePoint::hash_to_curve_nu
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 15
    functionsReached:
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - as_span_of_bytes
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint EC_AffinePoint::hash_to_curve_nu(const EC_Group& group,\n
      \                                               std::string_view hash_fn,\n
      \                                               std::span<const uint8_t> input,\n
      \                                               std::string_view domain_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: EC_AffinePoint::~EC_AffinePoint()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::~EC_AffinePoint()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:151,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:152,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: Botan::EC_AffinePoint::deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 17
    functionsReached:
    - std::move
    - _data
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::optional<EC_AffinePoint>
    signature: std::optional<EC_AffinePoint> EC_AffinePoint::deserialize(const EC_Group&
      group, std::span<const uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:159,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:159,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: Botan::EC_AffinePoint::g_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 35
    functionsReached:
    - std::move
    - _inner
    - Botan::EC_AffinePoint::EC_AffinePoint
    - inner
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::g_mul(const EC_Scalar& scalar, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:164,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:164,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Botan::EC_AffinePoint::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - _inner
    - Botan::EC_AffinePoint::EC_AffinePoint
    - inner
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::mul(const EC_Scalar& scalar, RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:168,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan::EC_AffinePoint::mul_x_only
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - _inner
    - inner
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_AffinePoint::mul_x_only(const EC_Scalar&
      scalar, RandomNumberGenerator& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:176,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:176,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:176,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:176,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:176,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:178,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' p'
    - ' x'
    - ' q'
    - ' y'
    - ' rng'
    argTypes:
    - EC_AffinePoint
    - EC_Scalar
    - EC_AffinePoint
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: Botan::EC_AffinePoint::mul_px_qy
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 12
    functionsReached:
    - std::move
    - _inner
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::optional<EC_AffinePoint>
    signature: "std::optional<EC_AffinePoint> EC_AffinePoint::mul_px_qy(const EC_AffinePoint&
      p,\n                                                        const EC_Scalar&
      x,\n                                                        const EC_AffinePoint&
      q,\n                                                        const EC_Scalar&
      y,\n                                                        RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:185,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:185,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:185,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' q'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: Botan::EC_AffinePoint::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - _inner
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::add(const EC_AffinePoint& q) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::_inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:190,1
    - Dst: Botan::EC_AffinePoint::_inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:190,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:191,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: Botan::EC_AffinePoint::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::_inner
    - std::move
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::negate() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::serialize_compressed
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:196,1
    - Dst: Botan::EC_AffinePoint::serialize_uncompressed
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:198,1
    - Dst: Botan::EC_AffinePoint::serialize_uncompressed
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:202,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:203,1
    - Dst: auto::front
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 207
    functionName: Botan::EC_AffinePoint::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan::EC_AffinePoint::serialize_compressed
    - auto::size
    - Botan::EC_AffinePoint::serialize_uncompressed
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_AffinePoint::serialize(EC_Point_Format format)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:210,1
    - Dst: Botan::EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:210,1
    - Dst: Botan::EC_AffinePoint::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: Botan::EC_AffinePoint::serialize_x_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_AffinePoint::serialize_x_to
    - Botan::EC_AffinePoint::is_identity
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::serialize_x_to(std::span<uint8_t> bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:215,1
    - Dst: Botan::EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:215,1
    - Dst: Botan::EC_AffinePoint::serialize_y_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: Botan::EC_AffinePoint::serialize_y_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_AffinePoint::serialize_y_to
    - Botan::EC_AffinePoint::is_identity
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::serialize_y_to(std::span<uint8_t> bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:220,1
    - Dst: Botan::EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:220,1
    - Dst: Botan::EC_AffinePoint::serialize_xy_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: Botan::EC_AffinePoint::serialize_xy_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_AffinePoint::serialize_xy_to
    - Botan::EC_AffinePoint::is_identity
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::serialize_xy_to(std::span<uint8_t> bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:225,1
    - Dst: Botan::EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:225,1
    - Dst: Botan::EC_AffinePoint::serialize_compressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan::EC_AffinePoint::serialize_compressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_AffinePoint::serialize_compressed_to
    - Botan::EC_AffinePoint::is_identity
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::serialize_compressed_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:230,1
    - Dst: Botan::EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:230,1
    - Dst: Botan::EC_AffinePoint::serialize_uncompressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: Botan::EC_AffinePoint::serialize_uncompressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_AffinePoint::serialize_uncompressed_to
    - Botan::EC_AffinePoint::is_identity
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::serialize_uncompressed_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:235,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inner
    argTypes:
    - std::unique_ptr<EC_AffinePoint_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: Botan::EC_AffinePoint::_from_inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::_from_inner(std::unique_ptr<EC_AffinePoint_Data>
      inner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: '& EC_AffinePoint::_group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: std::shared_ptr<const EC_Group_Data>
    signature: std::shared_ptr<const EC_Group_Data> & EC_AffinePoint::_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:16,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - point
    argTypes:
    - std::unique_ptr<EC_AffinePoint_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::EC_AffinePoint::EC_AffinePoint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 45
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::EC_AffinePoint(std::unique_ptr<EC_AffinePoint_Data>
      point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: Botan::EC_AffinePoint::EC_AffinePoint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 45
    functionsReached:
    - inner
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::EC_AffinePoint(const EC_AffinePoint& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: Botan::EC_AffinePoint::EC_AffinePoint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 45
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::EC_AffinePoint(EC_AffinePoint&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: '& EC_AffinePoint::operator=(const EC_AffinePoint& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint & EC_AffinePoint::operator=(const EC_AffinePoint& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: '& EC_AffinePoint::operator=(EC_AffinePoint&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint & EC_AffinePoint::operator=(EC_AffinePoint&& other)
      noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:37,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan::EC_AffinePoint::EC_AffinePoint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 45
    functionsReached:
    - _data
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::EC_AffinePoint(const EC_Group& group, std::span<const
      uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::EC_AffinePoint::to_legacy_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_AffinePoint::to_legacy_point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point EC_AffinePoint::to_legacy_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' pt'
    argTypes:
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: Botan::EC_AffinePoint::EC_AffinePoint
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 45
    functionsReached:
    - encode
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::EC_AffinePoint(const EC_Group& group, const EC_Point&
      pt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint::_group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:61,1
    - Dst: _group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:61,1
    - Dst: EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:65,1
    - Dst: is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:66,1
    - Dst: EC_AffinePoint::serialize_uncompressed
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:72,1
    - Dst: serialize_uncompressed
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:73,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:74,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:74,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:74,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:76,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:76,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:76,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 77
    functionName: EC_AffinePoint::operator==(const EC_AffinePoint& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - _group
    - auto::data
    - auto::size
    - Botan::CT::is_equal
    - EC_AffinePoint::serialize_uncompressed
    - is_identity
    - EC_AffinePoint::is_identity
    - serialize_uncompressed
    - BOTAN_ASSERT_NOMSG
    - EC_AffinePoint::_group
    linkageType: ''
    returnType: bool
    signature: bool EC_AffinePoint::operator==(const EC_AffinePoint& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: Botan::EC_AffinePoint::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 18
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::identity(const EC_Group& group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:86,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:86,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:86,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: Botan::EC_AffinePoint::generator
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 31
    functionsReached:
    - Botan::EC_AffinePoint::from_bigint_xy
    - Internal_Error
    - get_g_y
    - get_g_x
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::generator(const EC_Group& group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:94,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:94,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:97,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:97,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:101,1
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:104,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:104,1
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:105,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:105,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' y'
    argTypes:
    - EC_Group
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: Botan::EC_AffinePoint::from_bigint_xy
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 23
    functionsReached:
    - get_p
    - subspan
    - last
    - get_p_bytes
    - Botan::EC_AffinePoint::deserialize
    - is_negative
    - serialize_to
    linkageType: ''
    returnType: std::optional<EC_AffinePoint>
    signature: std::optional<EC_AffinePoint> EC_AffinePoint::from_bigint_xy(const
      EC_Group& group, const BigInt& x, const BigInt& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan::EC_AffinePoint::field_element_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: size_t
    signature: size_t EC_AffinePoint::field_element_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: Botan::EC_AffinePoint::is_identity
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 5
    functionsReached:
    - inner
    linkageType: ''
    returnType: bool
    signature: bool EC_AffinePoint::is_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:122,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - EC_Group
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: Botan::EC_AffinePoint::hash_to_curve_ro
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 15
    functionsReached:
    - std::move
    - _data
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint EC_AffinePoint::hash_to_curve_ro(const EC_Group& group,\n
      \                                               std::string_view hash_fn,\n
      \                                               std::span<const uint8_t> input,\n
      \                                               std::span<const uint8_t> domain_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:130,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - EC_Group
    - std::string_view
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: Botan::EC_AffinePoint::hash_to_curve_ro
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 16
    functionsReached:
    - as_span_of_bytes
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint EC_AffinePoint::hash_to_curve_ro(const EC_Group& group,\n
      \                                               std::string_view hash_fn,\n
      \                                               std::span<const uint8_t> input,\n
      \                                               std::string_view domain_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:137,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:138,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - EC_Group
    - std::string_view
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: Botan::EC_AffinePoint::hash_to_curve_nu
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 15
    functionsReached:
    - std::move
    - _data
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint EC_AffinePoint::hash_to_curve_nu(const EC_Group& group,\n
      \                                               std::string_view hash_fn,\n
      \                                               std::span<const uint8_t> input,\n
      \                                               std::span<const uint8_t> domain_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:145,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - hash_fn
    - input
    - domain_sep
    argTypes:
    - EC_Group
    - std::string_view
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: Botan::EC_AffinePoint::hash_to_curve_nu
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 16
    functionsReached:
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - as_span_of_bytes
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint EC_AffinePoint::hash_to_curve_nu(const EC_Group& group,\n
      \                                               std::string_view hash_fn,\n
      \                                               std::span<const uint8_t> input,\n
      \                                               std::string_view domain_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: EC_AffinePoint::~EC_AffinePoint()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::~EC_AffinePoint()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:151,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:152,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: Botan::EC_AffinePoint::deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 18
    functionsReached:
    - std::move
    - _data
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::optional<EC_AffinePoint>
    signature: std::optional<EC_AffinePoint> EC_AffinePoint::deserialize(const EC_Group&
      group, std::span<const uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:159,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:159,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: Botan::EC_AffinePoint::g_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 35
    functionsReached:
    - std::move
    - _inner
    - Botan::EC_AffinePoint::EC_AffinePoint
    - inner
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::g_mul(const EC_Scalar& scalar, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:164,1
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:164,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Botan::EC_AffinePoint::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - _inner
    - Botan::EC_AffinePoint::EC_AffinePoint
    - inner
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::mul(const EC_Scalar& scalar, RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:168,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan::EC_AffinePoint::mul_x_only
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - _inner
    - inner
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_AffinePoint::mul_x_only(const EC_Scalar&
      scalar, RandomNumberGenerator& rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:176,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:176,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:176,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:176,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:176,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:178,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ' p'
    - ' x'
    - ' q'
    - ' y'
    - ' rng'
    argTypes:
    - EC_AffinePoint
    - EC_Scalar
    - EC_AffinePoint
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: Botan::EC_AffinePoint::mul_px_qy
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 12
    functionsReached:
    - std::move
    - _inner
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: std::optional<EC_AffinePoint>
    signature: "std::optional<EC_AffinePoint> EC_AffinePoint::mul_px_qy(const EC_AffinePoint&
      p,\n                                                        const EC_Scalar&
      x,\n                                                        const EC_AffinePoint&
      q,\n                                                        const EC_Scalar&
      y,\n                                                        RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:185,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:185,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:185,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' q'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: Botan::EC_AffinePoint::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - _inner
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::add(const EC_AffinePoint& q) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::_inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:190,1
    - Dst: Botan::EC_AffinePoint::_inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:190,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:191,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: Botan::EC_AffinePoint::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::_inner
    - std::move
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::negate() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::serialize_compressed
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:196,1
    - Dst: Botan::EC_AffinePoint::serialize_uncompressed
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:198,1
    - Dst: Botan::EC_AffinePoint::serialize_uncompressed
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:202,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:203,1
    - Dst: auto::front
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 207
    functionName: Botan::EC_AffinePoint::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - auto::front
    - Botan::EC_AffinePoint::serialize_compressed
    - auto::size
    - Botan::EC_AffinePoint::serialize_uncompressed
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_AffinePoint::serialize(EC_Point_Format format)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:210,1
    - Dst: Botan::EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:210,1
    - Dst: Botan::EC_AffinePoint::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: Botan::EC_AffinePoint::serialize_x_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_AffinePoint::serialize_x_to
    - Botan::EC_AffinePoint::is_identity
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::serialize_x_to(std::span<uint8_t> bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:215,1
    - Dst: Botan::EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:215,1
    - Dst: Botan::EC_AffinePoint::serialize_y_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: Botan::EC_AffinePoint::serialize_y_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_AffinePoint::serialize_y_to
    - Botan::EC_AffinePoint::is_identity
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::serialize_y_to(std::span<uint8_t> bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:220,1
    - Dst: Botan::EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:220,1
    - Dst: Botan::EC_AffinePoint::serialize_xy_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: Botan::EC_AffinePoint::serialize_xy_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_AffinePoint::serialize_xy_to
    - Botan::EC_AffinePoint::is_identity
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::serialize_xy_to(std::span<uint8_t> bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:225,1
    - Dst: Botan::EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:225,1
    - Dst: Botan::EC_AffinePoint::serialize_compressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: Botan::EC_AffinePoint::serialize_compressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_AffinePoint::serialize_compressed_to
    - Botan::EC_AffinePoint::is_identity
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::serialize_compressed_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:230,1
    - Dst: Botan::EC_AffinePoint::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:230,1
    - Dst: Botan::EC_AffinePoint::serialize_uncompressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: Botan::EC_AffinePoint::serialize_uncompressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_AffinePoint::serialize_uncompressed_to
    - Botan::EC_AffinePoint::is_identity
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint::serialize_uncompressed_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:235,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inner
    argTypes:
    - std::unique_ptr<EC_AffinePoint_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: Botan::EC_AffinePoint::_from_inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - Botan::EC_AffinePoint::EC_AffinePoint
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint EC_AffinePoint::_from_inner(std::unique_ptr<EC_AffinePoint_Data>
      inner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: '& EC_AffinePoint::_group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.cpp
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: std::shared_ptr<const EC_Group_Data>
    signature: std::shared_ptr<const EC_Group_Data> & EC_AffinePoint::_group() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const EC_Scalar_Data_PC*>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:15,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: '& EC_Scalar_Data_PC::checked_ref(const EC_Scalar_Data& data)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    - dynamic_cast<const EC_Scalar_Data_PC*>
    linkageType: ''
    returnType: EC_Scalar_Data_PC
    signature: EC_Scalar_Data_PC & EC_Scalar_Data_PC::checked_ref(const EC_Scalar_Data&
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: '& EC_Scalar_Data_PC::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const EC_Group_Data>
    signature: std::shared_ptr<const EC_Group_Data> & EC_Scalar_Data_PC::group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar_Data_PC::group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::EC_Scalar_Data_PC::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_PC::group
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Scalar_Data_PC::bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:31,1
    - Dst: Botan::EC_Scalar_Data_PC::group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:31,1
    - Dst: Botan::EC_Scalar_Data_PC::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan::EC_Scalar_Data_PC::clone
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_PC::group
    - std::make_unique<EC_Scalar_Data_PC>
    - Botan::EC_Scalar_Data_PC::value
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar_Data_PC::group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:35,1
    - Dst: scalar_is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: Botan::EC_Scalar_Data_PC::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_PC::group
    - scalar_is_zero
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar_Data_PC::is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:40,1
    - Dst: scalar_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:41,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::EC_Scalar_Data_PC::is_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - scalar_equal
    - group
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar_Data_PC::is_eq(const EC_Scalar_Data& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan::EC_Scalar_Data_PC::assign
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_PC::assign(const EC_Scalar_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _zeroize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Botan::EC_Scalar_Data_PC::zeroize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - _zeroize
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_PC::zeroize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::EC_Scalar_Data_PC::square_self
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - pcurve
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_PC::square_self()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:58,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::EC_Scalar_Data_PC::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_PC>
    - pcurve
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::negate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:62,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::EC_Scalar_Data_PC::invert
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_PC>
    - pcurve
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::invert() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:66,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::EC_Scalar_Data_PC::invert_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_PC>
    - pcurve
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::invert_vartime()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:70,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:70,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::EC_Scalar_Data_PC::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_PC>
    - group
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::add(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:74,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:74,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan::EC_Scalar_Data_PC::sub
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_PC>
    - group
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::sub(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:78,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:78,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Botan::EC_Scalar_Data_PC::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_PC>
    - group
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::mul(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:82,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:82,1
    - Dst: order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:82,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan::EC_Scalar_Data_PC::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - pcurve
    - order_bytes
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_PC::serialize_to(std::span<uint8_t> bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:88,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:88,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:89,1
    - Dst: affine_point_is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:91,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:92,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:92,1
    - Dst: serialize_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - group
    - pt
    argTypes:
    - std::shared_ptr<const EC_Group_Data>
    - PCurve::PrimeOrderCurve::AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: Botan::EC_AffinePoint_Data_PC::EC_AffinePoint_Data_PC
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - resize
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - std::move
    - affine_point_is_identity
    - serialize_point
    - pcurve
    linkageType: ''
    returnType: void
    signature: "void EC_AffinePoint_Data_PC::EC_AffinePoint_Data_PC(std::shared_ptr<const
      EC_Group_Data> group,\n                                               PCurve::PrimeOrderCurve::AffinePoint
      pt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const EC_AffinePoint_Data_PC*>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:98,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: '& EC_AffinePoint_Data_PC::checked_ref(const EC_AffinePoint_Data&
      data)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    - dynamic_cast<const EC_AffinePoint_Data_PC*>
    linkageType: ''
    returnType: EC_AffinePoint_Data_PC
    signature: EC_AffinePoint_Data_PC & EC_AffinePoint_Data_PC::checked_ref(const
      EC_AffinePoint_Data& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: Botan::EC_AffinePoint_Data_PC::clone
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_PC>
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: std::unique_ptr<EC_AffinePoint_Data> EC_AffinePoint_Data_PC::clone()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: '& EC_AffinePoint_Data_PC::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const EC_Group_Data>
    signature: std::shared_ptr<const EC_Group_Data> & EC_AffinePoint_Data_PC::group()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:115,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:115,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:116,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:117,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:118,1
    - Dst: Botan::EC_AffinePoint_Data_PC::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:118,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: Botan::EC_AffinePoint_Data_PC::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - Botan::EC_AffinePoint_Data_PC::mul
    - BOTAN_ARG_CHECK
    - group
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - pcurve
    - EC_Scalar_Data_PC::checked_ref
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_AffinePoint_Data_PC::mul(const
      EC_Scalar_Data& scalar,\n                                                                 RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:124,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:124,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:125,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: Botan::EC_AffinePoint_Data_PC::mul_x_only
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - pcurve
    - EC_Scalar_Data_PC::checked_ref
    - group
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> EC_AffinePoint_Data_PC::mul_x_only(const EC_Scalar_Data&
      scalar,\n                                                          RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Botan::EC_AffinePoint_Data_PC::field_element_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 1
    functionsReached:
    - pcurve
    linkageType: ''
    returnType: size_t
    signature: size_t EC_AffinePoint_Data_PC::field_element_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: Botan::EC_AffinePoint_Data_PC::is_identity
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool EC_AffinePoint_Data_PC::is_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:138,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:138,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:139,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:140,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:140,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:141,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_x_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - subspan
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - copy_mem
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_PC::serialize_x_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:145,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:145,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:146,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:147,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:147,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:148,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_y_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - subspan
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - copy_mem
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_PC::serialize_y_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:152,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:152,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:153,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:154,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:154,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:155,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_xy_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - std::span<uint8_t>::size
    - last
    - BOTAN_ARG_CHECK
    - copy_mem
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_PC::serialize_xy_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:159,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:159,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:160,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:161,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:161,1
    - Dst: back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:162,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:165,1
    - Dst: Botan::EC_AffinePoint_Data_PC::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:166,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_compressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - std::span<uint8_t>::size
    - BufferStuffer::append
    - BufferStuffer::next
    - BOTAN_ARG_CHECK
    - back
    - Botan::EC_AffinePoint_Data_PC::serialize_x_to
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_PC::serialize_compressed_to(std::span<uint8_t>
      bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:170,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:170,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:171,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:172,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:172,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_uncompressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - copy_mem
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_PC::serialize_uncompressed_to(std::span<uint8_t>
      bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:178,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:179,1
    - Dst: curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:179,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:181,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:182,1
    - Dst: curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:182,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:183,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:183,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:184,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: Botan::EC_AffinePoint_Data_PC::to_legacy_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - subspan
    - last
    - curve
    - EC_Point
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point EC_AffinePoint_Data_PC::to_legacy_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:189,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:190,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:190,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:192,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:194,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' q'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: Botan::EC_Mul2Table_Data_PC::EC_Mul2Table_Data_PC
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - group
    - EC_AffinePoint_Data_PC::checked_ref
    - pcurve
    - value
    linkageType: ''
    returnType: void
    signature: void EC_Mul2Table_Data_PC::EC_Mul2Table_Data_PC(const EC_AffinePoint_Data&
      q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:199,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:199,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:199,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:201,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:202,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:204,1
    - Dst: Botan::EC_Mul2Table_Data_PC::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:206,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:206,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:206,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:207,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' xd'
    - ' yd'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: Botan::EC_Mul2Table_Data_PC::mul2_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Mul2Table_Data_PC::mul2_vartime
    - BOTAN_ARG_CHECK
    - group
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - pcurve
    - EC_Scalar_Data_PC::checked_ref
    - value
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Mul2Table_Data_PC::mul2_vartime(const
      EC_Scalar_Data& xd,\n                                                                        const
      EC_Scalar_Data& yd) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:216,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:216,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:216,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:218,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:219,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:220,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:222,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:222,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:222,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' vd'
    - ' xd'
    - ' yd'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: Botan::EC_Mul2Table_Data_PC::mul2_vartime_x_mod_order_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - group
    - value
    - pcurve
    - EC_Scalar_Data_PC::checked_ref
    linkageType: ''
    returnType: bool
    signature: "bool EC_Mul2Table_Data_PC::mul2_vartime_x_mod_order_eq(const EC_Scalar_Data&
      vd,\n                                                       const EC_Scalar_Data&
      xd,\n                                                       const EC_Scalar_Data&
      yd) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const EC_Scalar_Data_PC*>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:15,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: '& EC_Scalar_Data_PC::checked_ref(const EC_Scalar_Data& data)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    - dynamic_cast<const EC_Scalar_Data_PC*>
    linkageType: ''
    returnType: EC_Scalar_Data_PC
    signature: EC_Scalar_Data_PC & EC_Scalar_Data_PC::checked_ref(const EC_Scalar_Data&
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: '& EC_Scalar_Data_PC::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const EC_Group_Data>
    signature: std::shared_ptr<const EC_Group_Data> & EC_Scalar_Data_PC::group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar_Data_PC::group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::EC_Scalar_Data_PC::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_PC::group
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Scalar_Data_PC::bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:31,1
    - Dst: Botan::EC_Scalar_Data_PC::group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:31,1
    - Dst: Botan::EC_Scalar_Data_PC::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan::EC_Scalar_Data_PC::clone
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_PC::group
    - std::make_unique<EC_Scalar_Data_PC>
    - Botan::EC_Scalar_Data_PC::value
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar_Data_PC::group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:35,1
    - Dst: scalar_is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: Botan::EC_Scalar_Data_PC::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_PC::group
    - scalar_is_zero
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar_Data_PC::is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:40,1
    - Dst: scalar_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:41,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::EC_Scalar_Data_PC::is_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - scalar_equal
    - group
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar_Data_PC::is_eq(const EC_Scalar_Data& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan::EC_Scalar_Data_PC::assign
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_PC::assign(const EC_Scalar_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _zeroize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Botan::EC_Scalar_Data_PC::zeroize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - _zeroize
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_PC::zeroize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::EC_Scalar_Data_PC::square_self
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - pcurve
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_PC::square_self()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:58,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::EC_Scalar_Data_PC::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_PC>
    - pcurve
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::negate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:62,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::EC_Scalar_Data_PC::invert
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_PC>
    - pcurve
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::invert() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:66,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::EC_Scalar_Data_PC::invert_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_PC>
    - pcurve
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::invert_vartime()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:70,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:70,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::EC_Scalar_Data_PC::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_PC>
    - group
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::add(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:74,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:74,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan::EC_Scalar_Data_PC::sub
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_PC>
    - group
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::sub(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:78,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:78,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Botan::EC_Scalar_Data_PC::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_PC>
    - group
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_PC::mul(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:82,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:82,1
    - Dst: order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:82,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan::EC_Scalar_Data_PC::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - pcurve
    - order_bytes
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_PC::serialize_to(std::span<uint8_t> bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:88,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:88,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:89,1
    - Dst: affine_point_is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:91,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:92,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:92,1
    - Dst: serialize_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - group
    - pt
    argTypes:
    - std::shared_ptr<const EC_Group_Data>
    - PCurve::PrimeOrderCurve::AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: Botan::EC_AffinePoint_Data_PC::EC_AffinePoint_Data_PC
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - resize
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - std::move
    - affine_point_is_identity
    - serialize_point
    - pcurve
    linkageType: ''
    returnType: void
    signature: "void EC_AffinePoint_Data_PC::EC_AffinePoint_Data_PC(std::shared_ptr<const
      EC_Group_Data> group,\n                                               PCurve::PrimeOrderCurve::AffinePoint
      pt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const EC_AffinePoint_Data_PC*>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:98,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: '& EC_AffinePoint_Data_PC::checked_ref(const EC_AffinePoint_Data&
      data)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    - dynamic_cast<const EC_AffinePoint_Data_PC*>
    linkageType: ''
    returnType: EC_AffinePoint_Data_PC
    signature: EC_AffinePoint_Data_PC & EC_AffinePoint_Data_PC::checked_ref(const
      EC_AffinePoint_Data& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: Botan::EC_AffinePoint_Data_PC::clone
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_PC>
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: std::unique_ptr<EC_AffinePoint_Data> EC_AffinePoint_Data_PC::clone()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: '& EC_AffinePoint_Data_PC::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const EC_Group_Data>
    signature: std::shared_ptr<const EC_Group_Data> & EC_AffinePoint_Data_PC::group()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:115,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:115,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:116,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:117,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:118,1
    - Dst: Botan::EC_AffinePoint_Data_PC::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:118,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: Botan::EC_AffinePoint_Data_PC::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - Botan::EC_AffinePoint_Data_PC::mul
    - BOTAN_ARG_CHECK
    - group
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - pcurve
    - EC_Scalar_Data_PC::checked_ref
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_AffinePoint_Data_PC::mul(const
      EC_Scalar_Data& scalar,\n                                                                 RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:124,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:124,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:125,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: Botan::EC_AffinePoint_Data_PC::mul_x_only
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - pcurve
    - EC_Scalar_Data_PC::checked_ref
    - group
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> EC_AffinePoint_Data_PC::mul_x_only(const EC_Scalar_Data&
      scalar,\n                                                          RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Botan::EC_AffinePoint_Data_PC::field_element_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 8
    functionsReached:
    - pcurve
    linkageType: ''
    returnType: size_t
    signature: size_t EC_AffinePoint_Data_PC::field_element_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: Botan::EC_AffinePoint_Data_PC::is_identity
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 6
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool EC_AffinePoint_Data_PC::is_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:138,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:138,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:139,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:140,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:140,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:141,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_x_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - subspan
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - copy_mem
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_PC::serialize_x_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:145,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:145,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:146,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:147,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:147,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:148,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_y_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - subspan
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - copy_mem
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_PC::serialize_y_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:152,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:152,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:153,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:154,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:154,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:155,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_xy_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - std::span<uint8_t>::size
    - last
    - BOTAN_ARG_CHECK
    - copy_mem
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_PC::serialize_xy_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:159,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:159,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:160,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:161,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:161,1
    - Dst: back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:162,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:165,1
    - Dst: Botan::EC_AffinePoint_Data_PC::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:166,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_compressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - std::span<uint8_t>::size
    - BufferStuffer::append
    - BufferStuffer::next
    - BOTAN_ARG_CHECK
    - back
    - Botan::EC_AffinePoint_Data_PC::serialize_x_to
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_PC::serialize_compressed_to(std::span<uint8_t>
      bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:170,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:170,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:171,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:172,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:172,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_uncompressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - copy_mem
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_PC::serialize_uncompressed_to(std::span<uint8_t>
      bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:178,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:179,1
    - Dst: curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:179,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:181,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:182,1
    - Dst: curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:182,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:183,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:183,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:184,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: Botan::EC_AffinePoint_Data_PC::to_legacy_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - subspan
    - last
    - curve
    - EC_Point
    - Botan::BigInt::from_bytes
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point EC_AffinePoint_Data_PC::to_legacy_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:189,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:190,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:190,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:192,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:194,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' q'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: Botan::EC_Mul2Table_Data_PC::EC_Mul2Table_Data_PC
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - group
    - EC_AffinePoint_Data_PC::checked_ref
    - pcurve
    - value
    linkageType: ''
    returnType: void
    signature: void EC_Mul2Table_Data_PC::EC_Mul2Table_Data_PC(const EC_AffinePoint_Data&
      q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:199,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:199,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:199,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:201,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:202,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:204,1
    - Dst: Botan::EC_Mul2Table_Data_PC::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:206,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:206,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:206,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:207,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' xd'
    - ' yd'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: Botan::EC_Mul2Table_Data_PC::mul2_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Mul2Table_Data_PC::mul2_vartime
    - BOTAN_ARG_CHECK
    - group
    - point_to_affine
    - std::make_unique<EC_AffinePoint_Data_PC>
    - pcurve
    - EC_Scalar_Data_PC::checked_ref
    - value
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Mul2Table_Data_PC::mul2_vartime(const
      EC_Scalar_Data& xd,\n                                                                        const
      EC_Scalar_Data& yd) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:216,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:216,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:216,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:218,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:219,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:220,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:222,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:222,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:222,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' vd'
    - ' xd'
    - ' yd'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: Botan::EC_Mul2Table_Data_PC::mul2_vartime_x_mod_order_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - group
    - value
    - pcurve
    - EC_Scalar_Data_PC::checked_ref
    linkageType: ''
    returnType: bool
    signature: "bool EC_Mul2Table_Data_PC::mul2_vartime_x_mod_order_eq(const EC_Scalar_Data&
      vd,\n                                                       const EC_Scalar_Data&
      xd,\n                                                       const EC_Scalar_Data&
      yd) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:41,1
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:174,1
    - Dst: Botan::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:175,1
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:184,1
    - Dst: Botan::serialize_y_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:185,1
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:194,1
    - Dst: Botan::serialize_xy_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:195,1
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:204,1
    - Dst: Botan::serialize_uncompressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:205,1
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:214,1
    - Dst: Botan::serialize_compressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:215,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:244,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:246,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:249,1
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:251,1
    - Dst: Botan::mul_x_only
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:258,1
    - Dst: Botan::inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 277
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 26
    functionsReached:
    - Botan::serialize_y_to
    - Botan::serialize_uncompressed_to
    - Botan::mul_x_only
    - Botan::EC_AffinePoint::g_mul
    - Botan::mul
    - EC_AffinePoint
    - Botan::serialize_compressed_to
    - BOTAN_DEPRECATED
    - Botan::inner
    - Botan::serialize_x_to
    - Botan::field_element_bytes
    - Botan::serialize_xy_to
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:174,1
    - Dst: Botan::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: Botan::x_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::serialize_x_to
    - Botan::field_element_bytes
    linkageType: ''
    returnType: T
    signature: T x_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:184,1
    - Dst: Botan::serialize_y_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: Botan::y_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::serialize_y_to
    - Botan::field_element_bytes
    linkageType: ''
    returnType: T
    signature: T y_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:194,1
    - Dst: Botan::serialize_xy_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: Botan::xy_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::field_element_bytes
    - Botan::serialize_xy_to
    linkageType: ''
    returnType: T
    signature: T xy_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:204,1
    - Dst: Botan::serialize_uncompressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: Botan::serialize_uncompressed
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::field_element_bytes
    - Botan::serialize_uncompressed_to
    linkageType: ''
    returnType: T
    signature: T serialize_uncompressed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:214,1
    - Dst: Botan::serialize_compressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: Botan::serialize_compressed
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::serialize_compressed_to
    - Botan::field_element_bytes
    linkageType: ''
    returnType: T
    signature: T serialize_compressed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: operator!=(const EC_AffinePoint& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const EC_AffinePoint& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: Botan::g_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::g_mul
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint g_mul(const EC_Scalar& scalar, RandomNumberGenerator&
      rng, std::vector<BigInt>& /*ws*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: Botan::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 5
    functionsReached:
    - Botan::mul
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint mul(const EC_Scalar& scalar, RandomNumberGenerator&
      rng, std::vector<BigInt>& /*ws*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mul_x_only
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: Botan::mul_x_only
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 2
    functionsReached:
    - Botan::mul_x_only
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> mul_x_only(const EC_Scalar& scalar,\n                                        RandomNumberGenerator&
      rng,\n                                        std::vector<BigInt>& /*ws*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 263
    functionName: Botan::_inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::inner
    linkageType: ''
    returnType: EC_AffinePoint_Data
    signature: EC_AffinePoint_Data & _inner() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: Botan::inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: EC_AffinePoint_Data
    signature: EC_AffinePoint_Data & inner() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:41,1
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:174,1
    - Dst: Botan::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:175,1
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:184,1
    - Dst: Botan::serialize_y_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:185,1
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:194,1
    - Dst: Botan::serialize_xy_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:195,1
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:204,1
    - Dst: Botan::serialize_uncompressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:205,1
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:214,1
    - Dst: Botan::serialize_compressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:215,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:244,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:246,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:249,1
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:251,1
    - Dst: Botan::mul_x_only
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:258,1
    - Dst: Botan::inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 277
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 26
    functionsReached:
    - Botan::serialize_y_to
    - Botan::serialize_uncompressed_to
    - Botan::mul_x_only
    - Botan::EC_AffinePoint::g_mul
    - Botan::mul
    - EC_AffinePoint
    - Botan::serialize_compressed_to
    - BOTAN_DEPRECATED
    - Botan::inner
    - Botan::serialize_x_to
    - Botan::field_element_bytes
    - Botan::serialize_xy_to
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:174,1
    - Dst: Botan::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: Botan::x_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::serialize_x_to
    - Botan::field_element_bytes
    linkageType: ''
    returnType: T
    signature: T x_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:184,1
    - Dst: Botan::serialize_y_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: Botan::y_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::serialize_y_to
    - Botan::field_element_bytes
    linkageType: ''
    returnType: T
    signature: T y_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:194,1
    - Dst: Botan::serialize_xy_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: Botan::xy_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::field_element_bytes
    - Botan::serialize_xy_to
    linkageType: ''
    returnType: T
    signature: T xy_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:204,1
    - Dst: Botan::serialize_uncompressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: Botan::serialize_uncompressed
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::field_element_bytes
    - Botan::serialize_uncompressed_to
    linkageType: ''
    returnType: T
    signature: T serialize_uncompressed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:214,1
    - Dst: Botan::serialize_compressed_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: Botan::serialize_compressed
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::serialize_compressed_to
    - Botan::field_element_bytes
    linkageType: ''
    returnType: T
    signature: T serialize_compressed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: operator!=(const EC_AffinePoint& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const EC_AffinePoint& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: Botan::g_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::g_mul
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint g_mul(const EC_Scalar& scalar, RandomNumberGenerator&
      rng, std::vector<BigInt>& /*ws*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: Botan::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 7
    functionsReached:
    - Botan::mul
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint mul(const EC_Scalar& scalar, RandomNumberGenerator&
      rng, std::vector<BigInt>& /*ws*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mul_x_only
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: Botan::mul_x_only
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 4
    functionsReached:
    - Botan::mul_x_only
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> mul_x_only(const EC_Scalar& scalar,\n                                        RandomNumberGenerator&
      rng,\n                                        std::vector<BigInt>& /*ws*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 263
    functionName: Botan::_inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 0
    functionsReached:
    - Botan::inner
    linkageType: ''
    returnType: EC_AffinePoint_Data
    signature: EC_AffinePoint_Data & _inner() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: Botan::inner
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_apoint.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: EC_AffinePoint_Data
    signature: EC_AffinePoint_Data & inner() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - order_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::blinding_size
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t blinding_size(size_t order_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: Botan::blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:27,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_order'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: Botan::blinding_mask
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - Botan::blinding_size
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - bits
    - Botan::is_seeded
    - BigInt::set_bit
    linkageType: ''
    returnType: BigInt
    signature: BigInt blinding_mask(const BigInt& group_order, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - order_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::blinding_size
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t blinding_size(size_t order_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: Botan::blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:27,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_order'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: Botan::blinding_mask
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - Botan::blinding_size
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - bits
    - Botan::is_seeded
    - BigInt::set_bit
    linkageType: ''
    returnType: BigInt
    signature: BigInt blinding_mask(const BigInt& group_order, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_Point_Multi_Point_Precompute::multi_exp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' z1'
    - ' y'
    - ' z2'
    argTypes:
    - EC_Point
    - BigInt
    - EC_Point
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Botan::multi_exponentiate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - EC_Point_Multi_Point_Precompute::multi_exp
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point multi_exponentiate(const EC_Point& x, const BigInt& z1, const
      EC_Point& y, const BigInt& z2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:43,1
    - Dst: modulus_bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:46,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:48,1
    - Dst: blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:48,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:58,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:60,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:63,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:64,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:66,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:67,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:68,1
    - Dst: EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:70,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:71,1
    - Dst: Botan::EC_Point::force_all_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:74,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:74,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:76,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:78,1
    - Dst: get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:80,1
    - Dst: get_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - ' base'
    - ' mod_order'
    argTypes:
    - EC_Point
    - Barrett_Reduction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 85
    functionName: Botan::EC_Point_Base_Point_Precompute::EC_Point_Base_Point_Precompute
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - round_up
    - resize
    - data
    - std::move
    - get_x
    - get_word_vector
    - std::vector::size
    - get_y
    - get_curve
    - EC_Point::mult2
    - Botan::EC_Point::force_all_affine
    - modulus_bits
    - EC_Point::swap
    - blinding_size
    - plus
    linkageType: ''
    returnType: void
    signature: "void EC_Point_Base_Point_Precompute::EC_Point_Base_Point_Precompute(const
      EC_Point& base,\n                                                               const
      Barrett_Reduction& mod_order)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:91,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:92,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:96,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:98,1
    - Dst: blinding_mask
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:100,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:109,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:109,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:112,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:112,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:112,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:115,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:115,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:119,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:119,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:121,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:123,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:124,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:134,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:136,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:137,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:138,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:139,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:140,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:141,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:142,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:145,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:146,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:147,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:148,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:149,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:150,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:151,1
    - Dst: EC_Point::add_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:156,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:156,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:158,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:164,1
    - Dst: EC_Point::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:165,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:165,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:169,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:169,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - ' k'
    - ' rng'
    - ' group_order'
    - ' ws'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    - BigInt
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 172
    functionName: Botan::EC_Point_Base_Point_Precompute::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - bits
    - EC_Point::randomize_repr
    - get_word_vector
    - EC_Point::on_the_curve
    - Invalid_Argument
    - zero
    - BigInt::get_substring
    - Botan::ct_is_equal
    - blinding_mask
    - auto::if_set_return
    - reduce
    - round_up
    - resize
    - BOTAN_DEBUG_ASSERT
    - is_negative
    - std::vector::data
    - BigInt::bits
    - size
    - is_seeded
    - EC_Point::add_affine
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point EC_Point_Base_Point_Precompute::mul(const BigInt& k,\n                                             RandomNumberGenerator&
      rng,\n                                             const BigInt& group_order,\n
      \                                            std::vector<BigInt>& ws) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:177,1
    - Dst: get_p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:177,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:178,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:179,1
    - Dst: auto::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:183,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:185,1
    - Dst: auto::zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:186,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:189,1
    - Dst: double_of
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:190,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:191,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:195,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:197,1
    - Dst: randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:198,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:202,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:202,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:204,1
    - Dst: get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:206,1
    - Dst: get_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:207,1
    - Dst: get_z
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - ' ipoint'
    - ' rng'
    - ' ws'
    argTypes:
    - EC_Point
    - RandomNumberGenerator
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 211
    functionName: Botan::EC_Point_Var_Point_Precompute::EC_Point_Var_Point_Precompute
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - double_of
    - resize
    - data
    - get_p_words
    - randomize_repr
    - get_x
    - plus
    - get_y
    - get_curve
    - auto::randomize_repr
    - static_cast<size_t>
    - size
    - is_seeded
    - get_z
    - auto::zero
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void EC_Point_Var_Point_Precompute::EC_Point_Var_Point_Precompute(const
      EC_Point& ipoint,\n                                                             RandomNumberGenerator&
      rng,\n                                                             std::vector<BigInt>&
      ws)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:217,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:218,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:220,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:221,1
    - Dst: blinding_mask
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:225,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:228,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:230,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:230,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:237,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:239,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:239,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:239,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:241,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:244,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:248,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:248,1
    - Dst: EC_Point::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:255,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:255,1
    - Dst: EC_Point::mult2i
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:259,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:261,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:263,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:263,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:263,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:265,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:268,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:272,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:272,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:277,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:277,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - ' k'
    - ' rng'
    - ' group_order'
    - ' ws'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    - BigInt
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 280
    functionName: Botan::EC_Point_Var_Point_Precompute::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - EC_Point::randomize_repr
    - get_word_vector
    - EC_Point::on_the_curve
    - BOTAN_ASSERT_NOMSG
    - Invalid_Argument
    - Botan::ct_is_equal
    - BigInt::get_substring
    - blinding_mask
    - auto::if_set_return
    - EC_Point::add
    - clear_mem
    - round_up
    - resize
    - secure_vector::size
    - static_cast<size_t>
    - size
    - BigInt::bits
    - is_negative
    - EC_Point::mult2i
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point EC_Point_Var_Point_Precompute::mul(const BigInt& k,\n                                            RandomNumberGenerator&
      rng,\n                                            const BigInt& group_order,\n
      \                                           std::vector<BigInt>& ws) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:283,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:283,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:284,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:284,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:291,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:293,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:296,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:298,1
    - Dst: reserve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:300,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:302,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:303,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:304,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:306,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:307,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:307,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:308,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:308,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:309,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:309,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:311,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:312,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:312,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:313,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:313,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:314,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:314,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:316,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:317,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:317,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:318,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:318,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:319,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:319,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:323,1
    - Dst: Botan::EC_Point::force_all_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:329,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 333
    functionName: Botan::EC_Point_Multi_Point_Precompute::EC_Point_Multi_Point_Precompute
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - zero
    - EC_Point::plus
    - is_zero
    - get_word_vector
    - reserve
    - EC_Point::mult2
    - Botan::EC_Point::force_all_affine
    - on_the_curve
    - push_back
    - plus
    linkageType: ''
    returnType: void
    signature: void EC_Point_Multi_Point_Precompute::EC_Point_Multi_Point_Precompute(const
      EC_Point& x, const EC_Point& y)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:336,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:342,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:342,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:342,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:342,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:344,1
    - Dst: EC_Point::mult2i
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:348,1
    - Dst: get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:351,1
    - Dst: get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:352,1
    - Dst: EC_Point::add_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:359,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:361,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:366,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:366,1
    - Dst: EC_Point::negate
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - ' z1'
    - ' z2'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 371
    functionName: Botan::EC_Point_Multi_Point_Precompute::multi_exp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - round_up
    - zero
    - is_negative
    - get_substring
    - max
    - size
    - bits
    - EC_Point::add
    - EC_Point::negate
    - EC_Point::add_affine
    - EC_Point::mult2i
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point EC_Point_Multi_Point_Precompute::multi_exp(const BigInt& z1,
      const BigInt& z2) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - order_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::blinding_size
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t blinding_size(size_t order_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: Botan::blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:27,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_order'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: Botan::blinding_mask
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - Botan::blinding_size
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - bits
    - Botan::is_seeded
    - BigInt::set_bit
    linkageType: ''
    returnType: BigInt
    signature: BigInt blinding_mask(const BigInt& group_order, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - order_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::blinding_size
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t blinding_size(size_t order_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: Botan::blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:27,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_order'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: Botan::blinding_mask
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - Botan::blinding_size
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - bits
    - Botan::is_seeded
    - BigInt::set_bit
    linkageType: ''
    returnType: BigInt
    signature: BigInt blinding_mask(const BigInt& group_order, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_Point_Multi_Point_Precompute::multi_exp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' z1'
    - ' y'
    - ' z2'
    argTypes:
    - EC_Point
    - BigInt
    - EC_Point
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Botan::multi_exponentiate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - EC_Point_Multi_Point_Precompute::multi_exp
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point multi_exponentiate(const EC_Point& x, const BigInt& z1, const
      EC_Point& y, const BigInt& z2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:43,1
    - Dst: modulus_bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:46,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:48,1
    - Dst: blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:48,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:58,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:60,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:63,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:64,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:66,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:67,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:68,1
    - Dst: EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:70,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:71,1
    - Dst: Botan::EC_Point::force_all_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:74,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:74,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:76,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:78,1
    - Dst: get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:80,1
    - Dst: get_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - ' base'
    - ' mod_order'
    argTypes:
    - EC_Point
    - Barrett_Reduction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 85
    functionName: Botan::EC_Point_Base_Point_Precompute::EC_Point_Base_Point_Precompute
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - round_up
    - resize
    - data
    - std::move
    - get_x
    - get_word_vector
    - std::vector::size
    - get_y
    - get_curve
    - EC_Point::mult2
    - Botan::EC_Point::force_all_affine
    - modulus_bits
    - EC_Point::swap
    - blinding_size
    - plus
    linkageType: ''
    returnType: void
    signature: "void EC_Point_Base_Point_Precompute::EC_Point_Base_Point_Precompute(const
      EC_Point& base,\n                                                               const
      Barrett_Reduction& mod_order)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:91,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:92,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:96,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:98,1
    - Dst: blinding_mask
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:100,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:109,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:109,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:112,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:112,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:112,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:115,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:115,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:119,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:119,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:121,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:123,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:124,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:134,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:136,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:137,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:138,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:139,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:140,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:141,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:142,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:145,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:146,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:147,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:148,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:149,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:150,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:151,1
    - Dst: EC_Point::add_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:156,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:156,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:158,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:164,1
    - Dst: EC_Point::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:165,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:165,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:169,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:169,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - ' k'
    - ' rng'
    - ' group_order'
    - ' ws'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    - BigInt
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 172
    functionName: Botan::EC_Point_Base_Point_Precompute::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - bits
    - EC_Point::randomize_repr
    - get_word_vector
    - EC_Point::on_the_curve
    - Invalid_Argument
    - zero
    - BigInt::get_substring
    - Botan::ct_is_equal
    - blinding_mask
    - auto::if_set_return
    - reduce
    - round_up
    - resize
    - BOTAN_DEBUG_ASSERT
    - is_negative
    - std::vector::data
    - BigInt::bits
    - size
    - is_seeded
    - EC_Point::add_affine
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point EC_Point_Base_Point_Precompute::mul(const BigInt& k,\n                                             RandomNumberGenerator&
      rng,\n                                             const BigInt& group_order,\n
      \                                            std::vector<BigInt>& ws) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:177,1
    - Dst: get_p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:177,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:178,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:179,1
    - Dst: auto::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:183,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:185,1
    - Dst: auto::zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:186,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:189,1
    - Dst: double_of
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:190,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:191,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:195,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:197,1
    - Dst: randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:198,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:202,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:202,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:204,1
    - Dst: get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:206,1
    - Dst: get_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:207,1
    - Dst: get_z
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - ' ipoint'
    - ' rng'
    - ' ws'
    argTypes:
    - EC_Point
    - RandomNumberGenerator
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 211
    functionName: Botan::EC_Point_Var_Point_Precompute::EC_Point_Var_Point_Precompute
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - double_of
    - resize
    - data
    - get_p_words
    - randomize_repr
    - get_x
    - plus
    - get_y
    - get_curve
    - auto::randomize_repr
    - static_cast<size_t>
    - size
    - is_seeded
    - get_z
    - auto::zero
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: "void EC_Point_Var_Point_Precompute::EC_Point_Var_Point_Precompute(const
      EC_Point& ipoint,\n                                                             RandomNumberGenerator&
      rng,\n                                                             std::vector<BigInt>&
      ws)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:217,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:218,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:220,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:221,1
    - Dst: blinding_mask
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:225,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:228,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:230,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:230,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:237,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:239,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:239,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:239,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:241,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:244,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:248,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:248,1
    - Dst: EC_Point::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:255,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:255,1
    - Dst: EC_Point::mult2i
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:259,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:261,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:263,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:263,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:263,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:265,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:268,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:272,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:272,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:277,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:277,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - ' k'
    - ' rng'
    - ' group_order'
    - ' ws'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    - BigInt
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 280
    functionName: Botan::EC_Point_Var_Point_Precompute::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - EC_Point::randomize_repr
    - get_word_vector
    - EC_Point::on_the_curve
    - BOTAN_ASSERT_NOMSG
    - Invalid_Argument
    - Botan::ct_is_equal
    - BigInt::get_substring
    - blinding_mask
    - auto::if_set_return
    - EC_Point::add
    - clear_mem
    - round_up
    - resize
    - secure_vector::size
    - static_cast<size_t>
    - size
    - BigInt::bits
    - is_negative
    - EC_Point::mult2i
    linkageType: ''
    returnType: EC_Point
    signature: "EC_Point EC_Point_Var_Point_Precompute::mul(const BigInt& k,\n                                            RandomNumberGenerator&
      rng,\n                                            const BigInt& group_order,\n
      \                                           std::vector<BigInt>& ws) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:283,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:283,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:284,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:284,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:291,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:293,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:296,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:298,1
    - Dst: reserve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:300,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:302,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:303,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:304,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:306,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:307,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:307,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:308,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:308,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:309,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:309,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:311,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:312,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:312,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:313,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:313,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:314,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:314,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:316,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:317,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:317,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:318,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:318,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:319,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:319,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:323,1
    - Dst: Botan::EC_Point::force_all_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:329,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 333
    functionName: Botan::EC_Point_Multi_Point_Precompute::EC_Point_Multi_Point_Precompute
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - zero
    - EC_Point::plus
    - is_zero
    - get_word_vector
    - reserve
    - EC_Point::mult2
    - Botan::EC_Point::force_all_affine
    - on_the_curve
    - push_back
    - plus
    linkageType: ''
    returnType: void
    signature: void EC_Point_Multi_Point_Precompute::EC_Point_Multi_Point_Precompute(const
      EC_Point& x, const EC_Point& y)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:336,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:342,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:342,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:342,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:342,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:344,1
    - Dst: EC_Point::mult2i
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:348,1
    - Dst: get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:351,1
    - Dst: get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:352,1
    - Dst: EC_Point::add_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:359,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:361,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:366,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:366,1
    - Dst: EC_Point::negate
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - ' z1'
    - ' z2'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 371
    functionName: Botan::EC_Point_Multi_Point_Precompute::multi_exp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - round_up
    - zero
    - is_negative
    - get_substring
    - max
    - size
    - bits
    - EC_Point::add
    - EC_Point::negate
    - EC_Point::add_affine
    - EC_Point::mult2i
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point EC_Point_Multi_Point_Precompute::multi_exp(const BigInt& z1,
      const BigInt& z2) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.h:18,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - group
    - v
    argTypes:
    - std::shared_ptr<const EC_Group_Data>
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: Botan::EC_Scalar_Data_BN::EC_Scalar_Data_BN
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_BN(std::shared_ptr<const EC_Group_Data> group,
      BigInt v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::EC_AffinePoint_Data_BN::to_legacy_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point to_legacy_point() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.h:18,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - group
    - v
    argTypes:
    - std::shared_ptr<const EC_Group_Data>
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: Botan::EC_Scalar_Data_BN::EC_Scalar_Data_BN
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_BN(std::shared_ptr<const EC_Group_Data> group,
      BigInt v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::EC_AffinePoint_Data_BN::to_legacy_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point to_legacy_point() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:52,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:62,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:74,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:100,1
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:134,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:135,1
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:163,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:238,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:245,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:252,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:254,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:257,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:258,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:259,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:262,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:340,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:351,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:361,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 366
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 26
    functionsReached:
    - get_p
    - Botan::is_zero
    - EC_Point::mult2
    - EC_Point::add
    - BOTAN_DEPRECATED
    - Botan::swap
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::EC_Point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Point()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: Botan::EC_Point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Point(const EC_Point&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::EC_Point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: void
    signature: void EC_Point(EC_Point&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: '& operator=(EC_Point&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & operator=(EC_Point&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~EC_Point()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EC_Point()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:134,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: Botan::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - get_p
    - Botan::is_zero
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & negate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: Botan::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 7
    functionsReached:
    - Botan::is_zero
    linkageType: ''
    returnType: bool
    signature: bool is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: Botan::get_x
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: Botan::get_y
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: Botan::get_z
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_z() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:257,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:258,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' new_x'
    - ' new_y'
    - ' new_z'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: Botan::swap_coords
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: void
    signature: void swap_coords(BigInt& new_x, BigInt& new_y, BigInt& new_z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: Botan::swap
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 7
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: friend
    signature: friend swap(EC_Point& x, EC_Point& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' other'
    - ' workspace'
    argTypes:
    - EC_Point
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: Botan::plus
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - EC_Point::add
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point plus(const EC_Point& other, std::vector<BigInt>& workspace)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' workspace'
    argTypes:
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: Botan::double_of
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - EC_Point::mult2
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point double_of(std::vector<BigInt>& workspace) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Botan::get_curve
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CurveGFp
    signature: CurveGFp & get_curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: operator-(const EC_Point& lhs)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point operator-(const EC_Point& lhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: operator+(const EC_Point& lhs, const EC_Point& rhs)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point operator+(const EC_Point& lhs, const EC_Point& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: operator-(const EC_Point& lhs, const EC_Point& rhs)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point operator-(const EC_Point& lhs, const EC_Point& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' point'
    - ' scalar'
    argTypes:
    - EC_Point
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: operator*(const EC_Point& point, const BigInt& scalar)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - Botan::mul
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point operator*(const EC_Point& point, const BigInt& scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' point'
    argTypes:
    - BigInt
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: operator*(const BigInt& scalar, const EC_Point& point)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - Botan::mul
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point operator*(const BigInt& scalar, const EC_Point& point)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:52,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:62,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:74,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:100,1
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:134,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:135,1
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:163,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:238,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:245,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:252,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:254,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:257,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:258,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:259,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:262,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:340,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:351,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:361,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 366
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 26
    functionsReached:
    - get_p
    - Botan::is_zero
    - EC_Point::mult2
    - EC_Point::add
    - BOTAN_DEPRECATED
    - Botan::swap
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::EC_Point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Point()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: Botan::EC_Point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_Point(const EC_Point&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::EC_Point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 1
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: void
    signature: void EC_Point(EC_Point&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: '& operator=(EC_Point&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & operator=(EC_Point&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ~EC_Point()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EC_Point()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:134,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: Botan::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - get_p
    - Botan::is_zero
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & negate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: Botan::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 10
    functionsReached:
    - Botan::is_zero
    linkageType: ''
    returnType: bool
    signature: bool is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: Botan::get_x
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: Botan::get_y
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: Botan::get_z
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_z() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:257,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:258,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' new_x'
    - ' new_y'
    - ' new_z'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: Botan::swap_coords
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: void
    signature: void swap_coords(BigInt& new_x, BigInt& new_y, BigInt& new_z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: Botan::swap
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 11
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: friend
    signature: friend swap(EC_Point& x, EC_Point& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' other'
    - ' workspace'
    argTypes:
    - EC_Point
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: Botan::plus
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - EC_Point::add
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point plus(const EC_Point& other, std::vector<BigInt>& workspace)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' workspace'
    argTypes:
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: Botan::double_of
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - EC_Point::mult2
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point double_of(std::vector<BigInt>& workspace) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Botan::get_curve
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CurveGFp
    signature: CurveGFp & get_curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: operator-(const EC_Point& lhs)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - EC_Point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point operator-(const EC_Point& lhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: operator+(const EC_Point& lhs, const EC_Point& rhs)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point operator+(const EC_Point& lhs, const EC_Point& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: operator-(const EC_Point& lhs, const EC_Point& rhs)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point operator-(const EC_Point& lhs, const EC_Point& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' point'
    - ' scalar'
    argTypes:
    - EC_Point
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: operator*(const EC_Point& point, const BigInt& scalar)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - mul
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point operator*(const EC_Point& point, const BigInt& scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' point'
    argTypes:
    - BigInt
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: operator*(const BigInt& scalar, const EC_Point& point)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - mul
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point operator*(const BigInt& scalar, const EC_Point& point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_Group_Data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::CurveGFp::CurveGFp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void CurveGFp::CurveGFp(const EC_Group_Data* group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: '& CurveGFp::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: EC_Group_Data
    signature: EC_Group_Data & CurveGFp::group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: '& CurveGFp::group'
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: '& CurveGFp::get_a() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - '& CurveGFp::group'
    linkageType: ''
    returnType: BigInt
    signature: BigInt & CurveGFp::get_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: '& CurveGFp::group'
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: '& CurveGFp::get_b() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - '& CurveGFp::group'
    linkageType: ''
    returnType: BigInt
    signature: BigInt & CurveGFp::get_b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: '& CurveGFp::group'
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: '& CurveGFp::get_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - '& CurveGFp::group'
    linkageType: ''
    returnType: BigInt
    signature: BigInt & CurveGFp::get_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CurveGFp::group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::CurveGFp::get_p_words
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - Botan::CurveGFp::group
    linkageType: ''
    returnType: size_t
    signature: size_t CurveGFp::get_p_words() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:56,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::to_rep
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void to_rep(const EC_Group_Data& group, BigInt& x, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' z'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::from_rep
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void from_rep(const EC_Group_Data& group, BigInt& z, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::from_rep_to_tmp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt from_rep_to_tmp(const EC_Group_Data& group, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' group'
    - ' z'
    - ' x'
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_mul(const EC_Group_Data& group, BigInt& z, const BigInt& x,
      const BigInt& y, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' group'
    - ' z'
    - x_w
    - x_size
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - word[]
    - size_t
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: "void fe_mul(\n   const EC_Group_Data& group, BigInt& z, const word
      x_w[], size_t x_size, const BigInt& y, secure_vector<word>& ws)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mod_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ' z'
    - ' p'
    - ' ws'
    argTypes:
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Botan::fe_smul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - mod_mul
    linkageType: ''
    returnType: void
    signature: void fe_smul(BigInt& z, const BigInt& p, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - ' x'
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt fe_mul(const EC_Group_Data& group, const BigInt& x, const BigInt&
      y, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - ' z'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_sqr(const EC_Group_Data& group, BigInt& z, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' group'
    - ' z'
    - x_w
    - x_size
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - word[]
    - size_t
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_sqr(const EC_Group_Data& group, BigInt& z, const word x_w[],
      size_t x_size, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt fe_sqr(const EC_Group_Data& group, const BigInt& x, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: Botan::p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::invert_element
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    - Botan::p
    - Botan::inverse_mod_public_prime
    linkageType: ''
    returnType: BigInt
    signature: BigInt invert_element(const EC_Group_Data& group, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Botan::monty_ws_size
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - Botan::p_words
    linkageType: ''
    returnType: size_t
    signature: size_t monty_ws_size(const EC_Group_Data& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:56,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::to_rep
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void to_rep(const EC_Group_Data& group, BigInt& x, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' z'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::from_rep
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void from_rep(const EC_Group_Data& group, BigInt& z, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::from_rep_to_tmp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt from_rep_to_tmp(const EC_Group_Data& group, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' group'
    - ' z'
    - ' x'
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_mul(const EC_Group_Data& group, BigInt& z, const BigInt& x,
      const BigInt& y, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' group'
    - ' z'
    - x_w
    - x_size
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - word[]
    - size_t
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: "void fe_mul(\n   const EC_Group_Data& group, BigInt& z, const word
      x_w[], size_t x_size, const BigInt& y, secure_vector<word>& ws)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mod_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ' z'
    - ' p'
    - ' ws'
    argTypes:
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Botan::fe_smul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - mod_mul
    linkageType: ''
    returnType: void
    signature: void fe_smul(BigInt& z, const BigInt& p, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - ' x'
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt fe_mul(const EC_Group_Data& group, const BigInt& x, const BigInt&
      y, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - ' z'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_sqr(const EC_Group_Data& group, BigInt& z, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' group'
    - ' z'
    - x_w
    - x_size
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - word[]
    - size_t
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_sqr(const EC_Group_Data& group, BigInt& z, const word x_w[],
      size_t x_size, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt fe_sqr(const EC_Group_Data& group, const BigInt& x, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: Botan::p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::invert_element
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    - Botan::p
    - Botan::inverse_mod_public_prime
    linkageType: ''
    returnType: BigInt
    signature: BigInt invert_element(const EC_Group_Data& group, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Botan::monty_ws_size
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - Botan::p_words
    linkageType: ''
    returnType: size_t
    signature: size_t monty_ws_size(const EC_Group_Data& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' curve'
    argTypes:
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::EC_Point::EC_Point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: void
    signature: void EC_Point::EC_Point(const CurveGFp& curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Point::EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan::EC_Point::zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Point::EC_Point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point EC_Point::zero() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:115,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:115,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:115,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:116,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:118,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:119,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:121,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:122,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:127,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - ' curve'
    - x
    - y
    argTypes:
    - CurveGFp
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: Botan::EC_Point::EC_Point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 1
    functionsReached:
    - Invalid_Argument
    - std::move
    - p
    - group
    - to_rep
    linkageType: ''
    returnType: void
    signature: void EC_Point::EC_Point(const CurveGFp& curve, BigInt x, BigInt y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:132,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: Botan::EC_Point::randomize_repr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 5
    functionsReached:
    - Botan::EC_Point::randomize_repr
    - group
    linkageType: ''
    returnType: void
    signature: void EC_Point::randomize_repr(RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:138,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:142,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:144,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:144,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:144,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:153,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:154,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:156,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:157,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' rng'
    - ' ws'
    argTypes:
    - RandomNumberGenerator
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 159
    functionName: Botan::EC_Point::randomize_repr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 5
    functionsReached:
    - Botan::BigInt::random_integer
    - Botan::BigInt::from_s32
    - p
    - is_seeded
    - group
    - fe_sqr
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void EC_Point::randomize_repr(RandomNumberGenerator& rng, secure_vector<word>&
      ws)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:164,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:164,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:167,1
    - Dst: Botan::get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' ws_bn'
    - cap_size
    argTypes:
    - std::vector<BigInt>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: Botan::resize_ws
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::size
    - Botan::get_word_vector
    linkageType: ''
    returnType: void
    signature: void resize_ws(std::vector<BigInt>& ws_bn, size_t cap_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:164,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:164,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:167,1
    - Dst: Botan::get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' ws_bn'
    - cap_size
    argTypes:
    - std::vector<BigInt>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: Botan::resize_ws
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::size
    - Botan::get_word_vector
    linkageType: ''
    returnType: void
    signature: void resize_ws(std::vector<BigInt>& ws_bn, size_t cap_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:176,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:177,1
    - Dst: Botan::EC_Point::is_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:177,1
    - Dst: get_p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:179,1
    - Dst: Botan::EC_Point::add_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:180,1
    - Dst: m_x::_data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:180,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:181,1
    - Dst: m_x::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:181,1
    - Dst: m_y::_data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:182,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:183,1
    - Dst: m_y::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' other'
    - ' workspace'
    argTypes:
    - EC_Point
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: Botan::EC_Point::add_affine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 1
    functionsReached:
    - min
    - Botan::EC_Point::is_affine
    - BOTAN_DEBUG_ASSERT
    - get_p_words
    - Botan::EC_Point::add_affine
    - m_x::size
    - m_y::size
    - m_x::_data
    - BOTAN_ASSERT_NOMSG
    - m_y::_data
    linkageType: ''
    returnType: void
    signature: void EC_Point::add_affine(const EC_Point& other, std::vector<BigInt>&
      workspace)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:189,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:189,1
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:189,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:193,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:195,1
    - Dst: set_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:196,1
    - Dst: set_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:197,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:198,1
    - Dst: resize_ws
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:202,1
    - Dst: monty_ws_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:202,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:204,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:205,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:218,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:220,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:221,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:223,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:224,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:226,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:228,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:230,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:231,1
    - Dst: Botan::EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:232,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:237,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:238,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:239,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:243,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:245,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:247,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:249,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:250,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:252,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:253,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:255,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:257,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:258,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:259,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:260,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:262,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 5
    argNames:
    - x_words
    - x_size
    - y_words
    - y_size
    - ' ws_bn'
    argTypes:
    - word[]
    - size_t
    - word[]
    - size_t
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 264
    functionName: Botan::EC_Point::add_affine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 1
    functionsReached:
    - as_bool
    - monty
    - mod_sub
    - Botan::EC_Point::swap
    - is_zero
    - monty_ws_size
    - get_word_vector
    - set_words
    - Botan::EC_Point::mult2
    - p
    - clear
    - group
    - fe_sqr
    - fe_mul
    - Botan::CT::all_zeros
    - resize_ws
    linkageType: ''
    returnType: void
    signature: "void EC_Point::add_affine(\n   const word x_words[], size_t x_size,
      const word y_words[], size_t y_size, std::vector<BigInt>& ws_bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:267,1
    - Dst: get_p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:269,1
    - Dst: Botan::EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:271,1
    - Dst: m_x::_data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:271,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:272,1
    - Dst: m_x::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:272,1
    - Dst: m_y::_data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:273,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:274,1
    - Dst: m_y::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:274,1
    - Dst: m_z::_data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:275,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:276,1
    - Dst: m_z::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' other'
    - ' workspace'
    argTypes:
    - EC_Point
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 278
    functionName: Botan::EC_Point::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 1
    functionsReached:
    - min
    - get_p_words
    - Botan::EC_Point::add
    - m_x::size
    - BOTAN_ARG_CHECK
    - m_y::size
    - m_z::size
    - m_x::_data
    - m_y::_data
    - m_z::_data
    linkageType: ''
    returnType: void
    signature: void EC_Point::add(const EC_Point& other, std::vector<BigInt>& workspace)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:287,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:287,1
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:287,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:291,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:293,1
    - Dst: set_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:294,1
    - Dst: set_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:295,1
    - Dst: set_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:296,1
    - Dst: resize_ws
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:300,1
    - Dst: monty_ws_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:300,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:302,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:303,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:316,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:318,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:319,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:320,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:321,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:323,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:324,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:326,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:327,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:329,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:331,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:333,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:334,1
    - Dst: Botan::EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:335,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:340,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:341,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:342,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:346,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:348,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:350,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:352,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:353,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:354,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:355,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:357,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:359,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:360,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:362,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:364,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 7
    argNames:
    - x_words
    - x_size
    - y_words
    - y_size
    - z_words
    - z_size
    - ' ws_bn'
    argTypes:
    - word[]
    - size_t
    - word[]
    - size_t
    - word[]
    - size_t
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 366
    functionName: Botan::EC_Point::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 1
    functionsReached:
    - as_bool
    - monty
    - mod_sub
    - is_zero
    - monty_ws_size
    - get_word_vector
    - set_words
    - Botan::EC_Point::mult2
    - p
    - clear
    - group
    - fe_sqr
    - fe_mul
    - Botan::CT::all_zeros
    - resize_ws
    linkageType: ''
    returnType: void
    signature: "void EC_Point::add(const word x_words[],\n                   size_t
      x_size,\n                   const word y_words[],\n                   size_t
      y_size,\n                   const word z_words[],\n                   size_t
      z_size,\n                   std::vector<BigInt>& ws_bn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:373,1
    - Dst: Botan::EC_Point::EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:374,1
    - Dst: Botan::EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - iterations
    - ' ws_bn'
    argTypes:
    - size_t
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 385
    functionName: Botan::EC_Point::mult2i
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Point::EC_Point
    - Botan::EC_Point::mult2
    - is_zero
    linkageType: ''
    returnType: void
    signature: void EC_Point::mult2i(size_t iterations, std::vector<BigInt>& ws_bn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:389,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:393,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:395,1
    - Dst: Botan::EC_Point::EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:396,1
    - Dst: resize_ws
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:400,1
    - Dst: monty_ws_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:400,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:402,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:403,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:414,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:416,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:418,1
    - Dst: fe_smul<4>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:419,1
    - Dst: a_is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:421,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:423,1
    - Dst: fe_smul<3>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:424,1
    - Dst: a_is_minus_3
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:425,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:430,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:434,1
    - Dst: mod_add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:437,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:439,1
    - Dst: fe_smul<3>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:441,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:443,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:444,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:445,1
    - Dst: monty_a
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:445,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:447,1
    - Dst: fe_smul<3>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:448,1
    - Dst: mod_add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:449,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:452,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:453,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:454,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:456,1
    - Dst: fe_smul<8>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:457,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:459,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:461,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:462,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:464,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:466,1
    - Dst: fe_smul<2>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:467,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:469,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - ' ws_bn'
    argTypes:
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 471
    functionName: Botan::EC_Point::mult2
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 3
    functionsReached:
    - is_zero
    - fe_smul<3>
    - fe_smul<4>
    - resize_ws
    - Botan::EC_Point::EC_Point
    - mod_sub
    - mod_add
    - get_word_vector
    - group
    - fe_sqr
    - monty_a
    - Botan::EC_Point::swap
    - a_is_minus_3
    - monty_ws_size
    - fe_smul<8>
    - p
    - fe_smul<2>
    - a_is_zero
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void EC_Point::mult2(std::vector<BigInt>& ws_bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: '& EC_Point::operator+=(const EC_Point& rhs)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - add
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_Point::operator+=(const EC_Point& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:481,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 490
    functionName: '& EC_Point::operator-=(const EC_Point& rhs)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - is_zero
    - EC_Point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_Point::operator-=(const EC_Point& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' scalar'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: '& EC_Point::operator*=(const BigInt& scalar)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_Point::operator*=(const BigInt& scalar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:498,1
    - Dst: Botan::EC_Point::zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:502,1
    - Dst: get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:505,1
    - Dst: Botan::EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:506,1
    - Dst: Botan::EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:507,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:510,1
    - Dst: negate
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:511,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:514,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' scalar'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 517
    functionName: Botan::EC_Point::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - negate
    - Botan::EC_Point::add
    - Botan::EC_Point::mult2
    - Botan::EC_Point::zero
    - bits
    - Botan::EC_Point::on_the_curve
    - get_bit
    - is_negative
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point EC_Point::mul(const BigInt& scalar) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<EC_Point>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:521,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:523,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:529,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:530,1
    - Dst: m_curve::group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:543,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:544,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:546,1
    - Dst: monty_ws_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:546,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:547,1
    - Dst: monty_ws_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:547,1
    - Dst: std::span<EC_Point>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:550,1
    - Dst: std::span<EC_Point>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:553,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:554,1
    - Dst: invert_element
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:557,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:557,1
    - Dst: std::span<EC_Point>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:563,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:566,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:568,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:570,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:571,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:572,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:573,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:577,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:578,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:579,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:580,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - points
    - ' ws'
    argTypes:
    - std::span<EC_Point>
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 582
    functionName: Botan::EC_Point::force_all_affine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 4
    functionsReached:
    - monty
    - resize
    - is_zero
    - monty_ws_size
    - invert_element
    - Botan::EC_Point::force_affine
    - std::span<EC_Point>::size
    - size
    - fe_sqr
    - m_curve::group
    - Invalid_State
    - fe_mul
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void EC_Point::force_all_affine(std::span<EC_Point> points, secure_vector<word>&
      ws)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:585,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:586,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:591,1
    - Dst: invert_element
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:593,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:594,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:595,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:596,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:597,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 599
    functionName: Botan::EC_Point::force_affine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 9
    functionsReached:
    - monty
    - is_zero
    - invert_element
    - group
    - fe_sqr
    - Invalid_State
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void EC_Point::force_affine()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:602,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 604
    functionName: Botan::EC_Point::is_affine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 1
    functionsReached:
    - monty
    - group
    linkageType: ''
    returnType: bool
    signature: bool EC_Point::is_affine() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:607,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:608,1
    - Dst: Botan::encode_1363
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:610,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:610,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:610,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: Botan::EC_Point::x_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - secure_vector::size
    - Botan::encode_1363
    - Botan::EC_Point::get_affine_x
    - group
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_Point::x_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:615,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:616,1
    - Dst: Botan::encode_1363
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:618,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:618,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:618,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: Botan::EC_Point::y_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - secure_vector::size
    - Botan::encode_1363
    - group
    - secure_vector::data
    - Botan::EC_Point::get_affine_y
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_Point::y_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:623,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:624,1
    - Dst: Botan::encode_1363
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:626,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:626,1
    - Dst: Botan::encode_1363
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:627,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 629
    functionName: Botan::EC_Point::xy_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 20
    functionsReached:
    - p_bytes
    - Botan::encode_1363
    - Botan::EC_Point::get_affine_x
    - group
    - Botan::EC_Point::get_affine_y
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_Point::xy_bytes() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:632,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:633,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:638,1
    - Dst: Botan::EC_Point::is_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:640,1
    - Dst: from_rep_to_tmp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:641,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:644,1
    - Dst: invert_element
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:645,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:648,1
    - Dst: from_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 651
    functionName: Botan::EC_Point::get_affine_x
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 10
    functionsReached:
    - Botan::EC_Point::is_affine
    - from_rep
    - is_zero
    - from_rep_to_tmp
    - invert_element
    - group
    - Invalid_State
    - fe_mul
    - fe_sqr
    linkageType: ''
    returnType: BigInt
    signature: BigInt EC_Point::get_affine_x() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:654,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:655,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:658,1
    - Dst: Botan::EC_Point::is_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:661,1
    - Dst: from_rep_to_tmp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:662,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:665,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:666,1
    - Dst: invert_element
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:667,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:670,1
    - Dst: from_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 673
    functionName: Botan::EC_Point::get_affine_y
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 10
    functionsReached:
    - Botan::EC_Point::is_affine
    - from_rep
    - is_zero
    - from_rep_to_tmp
    - invert_element
    - group
    - Invalid_State
    - fe_mul
    - fe_sqr
    linkageType: ''
    returnType: BigInt
    signature: BigInt EC_Point::get_affine_y() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:682,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:686,1
    - Dst: from_rep_to_tmp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:689,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:689,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:690,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:690,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:691,1
    - Dst: monty_a
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:691,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:692,1
    - Dst: monty_b
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:694,1
    - Dst: from_rep_to_tmp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:698,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:703,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:704,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:704,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:705,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:705,1
    - Dst: from_rep_to_tmp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:707,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 712
    functionName: Botan::EC_Point::on_the_curve
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 13
    functionsReached:
    - is_zero
    - from_rep_to_tmp
    - group
    - fe_sqr
    - monty_a
    - fe_mul
    - monty_b
    linkageType: ''
    returnType: bool
    signature: bool EC_Point::on_the_curve() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:715,1
    - Dst: is_positive
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:715,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:717,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:721,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:725,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:728,1
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:735,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:736,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:736,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:756,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:759,1
    - Dst: Botan::EC_Point::get_z
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:759,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:760,1
    - Dst: Botan::EC_Point::get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:771,1
    - Dst: order_is_less_than_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:775,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:776,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:777,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:778,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:779,1
    - Dst: Botan::EC_Point::get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:781,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 789
    functionName: Botan::EC_Point::_is_x_eq_to_v_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - is_positive
    - mod_order
    - has_cofactor
    - Botan::EC_Point::is_zero
    - Botan::EC_Point::get_affine_x
    - p
    - order_is_less_than_p
    - Botan::EC_Point::get_z
    - group
    - BOTAN_ASSERT_NOMSG
    - order
    - to_rep
    - fe_mul
    - fe_sqr
    - Botan::EC_Point::get_x
    linkageType: ''
    returnType: bool
    signature: bool EC_Point::_is_x_eq_to_v_mod_order(const BigInt& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:793,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:794,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:795,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 797
    functionName: Botan::EC_Point::swap
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 7
    functionsReached:
    - Botan::EC_Point::swap
    linkageType: ''
    returnType: void
    signature: void EC_Point::swap(EC_Point& other) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:805,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:806,1
    - Dst: get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:809,1
    - Dst: get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:809,1
    - Dst: get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:809,1
    - Dst: get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 810
    functionName: EC_Point::operator==(const EC_Point& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - get_affine_x
    - is_zero
    - get_affine_y
    linkageType: ''
    returnType: bool
    signature: bool EC_Point::operator==(const EC_Point& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:814,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:815,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:818,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:820,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:821,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:829,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:830,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:830,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:831,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:831,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:833,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:833,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:833,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:834,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:834,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:836,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:836,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:836,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:837,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:837,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:838,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:838,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:840,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 844
    functionName: Botan::EC_Point::encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 16
    functionsReached:
    - Invalid_Argument
    - BigInt::serialize_to
    - is_zero
    - std::vector<uint8_t>
    - BufferStuffer::append
    - BufferStuffer::next
    - Botan::EC_Point::get_affine_x
    - group
    - BigInt::get_bit
    - Botan::EC_Point::get_affine_y
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_Point::encode(EC_Point_Format format) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:851,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:854,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - y_mod_2
    - ' x'
    - ' p'
    - ' a'
    - ' b'
    argTypes:
    - bool
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 862
    functionName: Botan::decompress_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BigInt::get_bit
    - Botan::Decoding_Error
    - Botan::sqrt_modulo_prime
    linkageType: ''
    returnType: BigInt
    signature: BigInt decompress_point(bool y_mod_2, const BigInt& x, const BigInt&
      p, const BigInt& a, const BigInt& b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:851,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:854,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - y_mod_2
    - ' x'
    - ' p'
    - ' a'
    - ' b'
    argTypes:
    - bool
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 862
    functionName: Botan::decompress_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BigInt::get_bit
    - Botan::Decoding_Error
    - Botan::sqrt_modulo_prime
    linkageType: ''
    returnType: BigInt
    signature: BigInt decompress_point(bool y_mod_2, const BigInt& x, const BigInt&
      p, const BigInt& a, const BigInt& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS2ECP
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:867,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:867,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ' curve'
    argTypes:
    - std::span<const uint8_t>
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 868
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 3
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan::OS2ECP
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point OS2ECP(std::span<const uint8_t> data, const CurveGFp& curve)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:873,1
    - Dst: Botan::OS2ECP
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:876,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:876,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:876,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:876,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:880,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:881,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - data
    - data_len
    - ' curve'
    argTypes:
    - uint8_t[]
    - size_t
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 885
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 4
    functionsReached:
    - get_b
    - get_p
    - Botan::OS2ECP
    - EC_Point::on_the_curve
    - Botan::Decoding_Error
    - get_a
    - Botan::EC_Point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point OS2ECP(const uint8_t data[], size_t data_len, const CurveGFp&
      curve)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:889,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:893,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:900,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:902,1
    - Dst: Botan::decompress_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:905,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:908,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:911,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:912,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:915,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:918,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:919,1
    - Dst: Botan::decompress_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:923,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:924,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:927,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:927,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:927,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:931,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:934,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 5
    argNames:
    - pt
    - pt_len
    - ' p'
    - ' a'
    - ' b'
    argTypes:
    - uint8_t[]
    - size_t
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 935
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 4
    functionsReached:
    - Botan::bytes
    - std::make_pair
    - Botan::Decoding_Error
    - Botan::to_string
    - static_cast<int>
    - Botan::BigInt::decode
    - Botan::decompress_point
    linkageType: ''
    returnType: std::pair<BigInt, BigInt>
    signature: std::pair<BigInt, BigInt> OS2ECP(const uint8_t pt[], size_t pt_len,
      const BigInt& p, const BigInt& a, const BigInt& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_Group_Data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::CurveGFp::CurveGFp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void CurveGFp::CurveGFp(const EC_Group_Data* group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: '& CurveGFp::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: EC_Group_Data
    signature: EC_Group_Data & CurveGFp::group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: '& CurveGFp::group'
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: '& CurveGFp::get_a() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - '& CurveGFp::group'
    linkageType: ''
    returnType: BigInt
    signature: BigInt & CurveGFp::get_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: '& CurveGFp::group'
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: '& CurveGFp::get_b() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - '& CurveGFp::group'
    linkageType: ''
    returnType: BigInt
    signature: BigInt & CurveGFp::get_b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: '& CurveGFp::group'
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: '& CurveGFp::get_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - '& CurveGFp::group'
    linkageType: ''
    returnType: BigInt
    signature: BigInt & CurveGFp::get_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CurveGFp::group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::CurveGFp::get_p_words
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - Botan::CurveGFp::group
    linkageType: ''
    returnType: size_t
    signature: size_t CurveGFp::get_p_words() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:56,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::to_rep
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void to_rep(const EC_Group_Data& group, BigInt& x, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' z'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::from_rep
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void from_rep(const EC_Group_Data& group, BigInt& z, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::from_rep_to_tmp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt from_rep_to_tmp(const EC_Group_Data& group, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' group'
    - ' z'
    - ' x'
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_mul(const EC_Group_Data& group, BigInt& z, const BigInt& x,
      const BigInt& y, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' group'
    - ' z'
    - x_w
    - x_size
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - word[]
    - size_t
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: "void fe_mul(\n   const EC_Group_Data& group, BigInt& z, const word
      x_w[], size_t x_size, const BigInt& y, secure_vector<word>& ws)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mod_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ' z'
    - ' p'
    - ' ws'
    argTypes:
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Botan::fe_smul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - mod_mul
    linkageType: ''
    returnType: void
    signature: void fe_smul(BigInt& z, const BigInt& p, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - ' x'
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt fe_mul(const EC_Group_Data& group, const BigInt& x, const BigInt&
      y, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - ' z'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_sqr(const EC_Group_Data& group, BigInt& z, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' group'
    - ' z'
    - x_w
    - x_size
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - word[]
    - size_t
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_sqr(const EC_Group_Data& group, BigInt& z, const word x_w[],
      size_t x_size, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt fe_sqr(const EC_Group_Data& group, const BigInt& x, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: Botan::p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::invert_element
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    - Botan::p
    - Botan::inverse_mod_public_prime
    linkageType: ''
    returnType: BigInt
    signature: BigInt invert_element(const EC_Group_Data& group, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Botan::monty_ws_size
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - Botan::p_words
    linkageType: ''
    returnType: size_t
    signature: size_t monty_ws_size(const EC_Group_Data& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:56,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::to_rep
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void to_rep(const EC_Group_Data& group, BigInt& x, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' z'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::from_rep
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void from_rep(const EC_Group_Data& group, BigInt& z, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::from_rep_to_tmp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt from_rep_to_tmp(const EC_Group_Data& group, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' group'
    - ' z'
    - ' x'
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_mul(const EC_Group_Data& group, BigInt& z, const BigInt& x,
      const BigInt& y, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' group'
    - ' z'
    - x_w
    - x_size
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - word[]
    - size_t
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: "void fe_mul(\n   const EC_Group_Data& group, BigInt& z, const word
      x_w[], size_t x_size, const BigInt& y, secure_vector<word>& ws)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mod_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ' z'
    - ' p'
    - ' ws'
    argTypes:
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Botan::fe_smul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - mod_mul
    linkageType: ''
    returnType: void
    signature: void fe_smul(BigInt& z, const BigInt& p, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - ' x'
    - ' y'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::fe_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt fe_mul(const EC_Group_Data& group, const BigInt& x, const BigInt&
      y, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' group'
    - ' z'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_sqr(const EC_Group_Data& group, BigInt& z, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' group'
    - ' z'
    - x_w
    - x_size
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - word[]
    - size_t
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: void
    signature: void fe_sqr(const EC_Group_Data& group, BigInt& z, const word x_w[],
      size_t x_size, secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::fe_sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    linkageType: ''
    returnType: BigInt
    signature: BigInt fe_sqr(const EC_Group_Data& group, const BigInt& x, secure_vector<word>&
      ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: Botan::p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' group'
    - ' x'
    - ' ws'
    argTypes:
    - EC_Group_Data
    - BigInt
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::invert_element
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - monty
    - Botan::p
    - Botan::inverse_mod_public_prime
    linkageType: ''
    returnType: BigInt
    signature: BigInt invert_element(const EC_Group_Data& group, const BigInt& x,
      secure_vector<word>& ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Botan::monty_ws_size
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - Botan::p_words
    linkageType: ''
    returnType: size_t
    signature: size_t monty_ws_size(const EC_Group_Data& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' curve'
    argTypes:
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::EC_Point::EC_Point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 3
    functionsReached:
    - group
    linkageType: ''
    returnType: void
    signature: void EC_Point::EC_Point(const CurveGFp& curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Point::EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan::EC_Point::zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Point::EC_Point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point EC_Point::zero() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:115,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:115,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:115,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:116,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:118,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:119,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:121,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:122,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:127,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - ' curve'
    - x
    - y
    argTypes:
    - CurveGFp
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: Botan::EC_Point::EC_Point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 4
    functionsReached:
    - Invalid_Argument
    - std::move
    - p
    - group
    - to_rep
    linkageType: ''
    returnType: void
    signature: void EC_Point::EC_Point(const CurveGFp& curve, BigInt x, BigInt y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:132,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: Botan::EC_Point::randomize_repr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 6
    functionsReached:
    - Botan::EC_Point::randomize_repr
    - group
    linkageType: ''
    returnType: void
    signature: void EC_Point::randomize_repr(RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:138,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:142,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:144,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:144,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:144,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:153,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:154,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:156,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:157,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' rng'
    - ' ws'
    argTypes:
    - RandomNumberGenerator
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 159
    functionName: Botan::EC_Point::randomize_repr
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 6
    functionsReached:
    - Botan::BigInt::random_integer
    - Botan::BigInt::from_s32
    - p
    - is_seeded
    - group
    - fe_sqr
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void EC_Point::randomize_repr(RandomNumberGenerator& rng, secure_vector<word>&
      ws)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:164,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:164,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:167,1
    - Dst: Botan::get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' ws_bn'
    - cap_size
    argTypes:
    - std::vector<BigInt>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: Botan::resize_ws
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::size
    - Botan::get_word_vector
    linkageType: ''
    returnType: void
    signature: void resize_ws(std::vector<BigInt>& ws_bn, size_t cap_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:164,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:164,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:167,1
    - Dst: Botan::get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' ws_bn'
    - cap_size
    argTypes:
    - std::vector<BigInt>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: Botan::resize_ws
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::size
    - Botan::get_word_vector
    linkageType: ''
    returnType: void
    signature: void resize_ws(std::vector<BigInt>& ws_bn, size_t cap_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:176,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:177,1
    - Dst: Botan::EC_Point::is_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:177,1
    - Dst: get_p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:179,1
    - Dst: Botan::EC_Point::add_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:180,1
    - Dst: m_x::_data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:180,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:181,1
    - Dst: m_x::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:181,1
    - Dst: m_y::_data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:182,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:183,1
    - Dst: m_y::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' other'
    - ' workspace'
    argTypes:
    - EC_Point
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: Botan::EC_Point::add_affine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 2
    functionsReached:
    - min
    - Botan::EC_Point::is_affine
    - BOTAN_DEBUG_ASSERT
    - get_p_words
    - Botan::EC_Point::add_affine
    - m_x::size
    - m_y::size
    - m_x::_data
    - BOTAN_ASSERT_NOMSG
    - m_y::_data
    linkageType: ''
    returnType: void
    signature: void EC_Point::add_affine(const EC_Point& other, std::vector<BigInt>&
      workspace)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:189,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:189,1
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:189,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:193,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:195,1
    - Dst: set_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:196,1
    - Dst: set_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:197,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:198,1
    - Dst: resize_ws
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:202,1
    - Dst: monty_ws_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:202,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:204,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:205,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:218,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:220,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:221,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:223,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:224,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:226,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:228,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:230,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:231,1
    - Dst: Botan::EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:232,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:237,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:238,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:239,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:243,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:245,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:247,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:249,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:250,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:252,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:253,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:255,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:257,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:258,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:259,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:260,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:262,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 5
    argNames:
    - x_words
    - x_size
    - y_words
    - y_size
    - ' ws_bn'
    argTypes:
    - word[]
    - size_t
    - word[]
    - size_t
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 264
    functionName: Botan::EC_Point::add_affine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 2
    functionsReached:
    - as_bool
    - monty
    - mod_sub
    - Botan::EC_Point::swap
    - is_zero
    - monty_ws_size
    - get_word_vector
    - set_words
    - Botan::EC_Point::mult2
    - p
    - clear
    - group
    - fe_sqr
    - fe_mul
    - Botan::CT::all_zeros
    - resize_ws
    linkageType: ''
    returnType: void
    signature: "void EC_Point::add_affine(\n   const word x_words[], size_t x_size,
      const word y_words[], size_t y_size, std::vector<BigInt>& ws_bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:267,1
    - Dst: get_p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:269,1
    - Dst: Botan::EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:271,1
    - Dst: m_x::_data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:271,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:272,1
    - Dst: m_x::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:272,1
    - Dst: m_y::_data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:273,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:274,1
    - Dst: m_y::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:274,1
    - Dst: m_z::_data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:275,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:276,1
    - Dst: m_z::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' other'
    - ' workspace'
    argTypes:
    - EC_Point
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 278
    functionName: Botan::EC_Point::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 3
    functionsReached:
    - min
    - get_p_words
    - Botan::EC_Point::add
    - m_x::size
    - BOTAN_ARG_CHECK
    - m_y::size
    - m_z::size
    - m_x::_data
    - m_y::_data
    - m_z::_data
    linkageType: ''
    returnType: void
    signature: void EC_Point::add(const EC_Point& other, std::vector<BigInt>& workspace)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:287,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:287,1
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:287,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:291,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:293,1
    - Dst: set_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:294,1
    - Dst: set_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:295,1
    - Dst: set_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:296,1
    - Dst: resize_ws
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:300,1
    - Dst: monty_ws_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:300,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:302,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:303,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:316,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:318,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:319,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:320,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:321,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:323,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:324,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:326,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:327,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:329,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:331,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:333,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:334,1
    - Dst: Botan::EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:335,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:340,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:341,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:342,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:346,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:348,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:350,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:352,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:353,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:354,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:355,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:357,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:359,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:360,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:362,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:364,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 7
    argNames:
    - x_words
    - x_size
    - y_words
    - y_size
    - z_words
    - z_size
    - ' ws_bn'
    argTypes:
    - word[]
    - size_t
    - word[]
    - size_t
    - word[]
    - size_t
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 366
    functionName: Botan::EC_Point::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 3
    functionsReached:
    - as_bool
    - monty
    - mod_sub
    - is_zero
    - monty_ws_size
    - get_word_vector
    - set_words
    - Botan::EC_Point::mult2
    - p
    - clear
    - group
    - fe_sqr
    - fe_mul
    - Botan::CT::all_zeros
    - resize_ws
    linkageType: ''
    returnType: void
    signature: "void EC_Point::add(const word x_words[],\n                   size_t
      x_size,\n                   const word y_words[],\n                   size_t
      y_size,\n                   const word z_words[],\n                   size_t
      z_size,\n                   std::vector<BigInt>& ws_bn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:373,1
    - Dst: Botan::EC_Point::EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:374,1
    - Dst: Botan::EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - iterations
    - ' ws_bn'
    argTypes:
    - size_t
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 385
    functionName: Botan::EC_Point::mult2i
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Point::EC_Point
    - Botan::EC_Point::mult2
    - is_zero
    linkageType: ''
    returnType: void
    signature: void EC_Point::mult2i(size_t iterations, std::vector<BigInt>& ws_bn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:389,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:393,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:395,1
    - Dst: Botan::EC_Point::EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:396,1
    - Dst: resize_ws
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:400,1
    - Dst: monty_ws_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:400,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:402,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:403,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:414,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:416,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:418,1
    - Dst: fe_smul<4>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:419,1
    - Dst: a_is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:421,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:423,1
    - Dst: fe_smul<3>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:424,1
    - Dst: a_is_minus_3
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:425,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:430,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:434,1
    - Dst: mod_add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:437,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:439,1
    - Dst: fe_smul<3>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:441,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:443,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:444,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:445,1
    - Dst: monty_a
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:445,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:447,1
    - Dst: fe_smul<3>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:448,1
    - Dst: mod_add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:449,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:452,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:453,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:454,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:456,1
    - Dst: fe_smul<8>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:457,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:459,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:461,1
    - Dst: mod_sub
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:462,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:464,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:466,1
    - Dst: fe_smul<2>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:467,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:469,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - ' ws_bn'
    argTypes:
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 471
    functionName: Botan::EC_Point::mult2
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 7
    functionsReached:
    - is_zero
    - fe_smul<3>
    - fe_smul<4>
    - resize_ws
    - Botan::EC_Point::EC_Point
    - mod_sub
    - mod_add
    - get_word_vector
    - group
    - fe_sqr
    - monty_a
    - Botan::EC_Point::swap
    - a_is_minus_3
    - monty_ws_size
    - fe_smul<8>
    - p
    - fe_smul<2>
    - a_is_zero
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void EC_Point::mult2(std::vector<BigInt>& ws_bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: '& EC_Point::operator+=(const EC_Point& rhs)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - add
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_Point::operator+=(const EC_Point& rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:481,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 490
    functionName: '& EC_Point::operator-=(const EC_Point& rhs)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - is_zero
    - EC_Point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_Point::operator-=(const EC_Point& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' scalar'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: '& EC_Point::operator*=(const BigInt& scalar)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_Point::operator*=(const BigInt& scalar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:498,1
    - Dst: Botan::EC_Point::zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:502,1
    - Dst: get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:505,1
    - Dst: Botan::EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:506,1
    - Dst: Botan::EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:507,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:510,1
    - Dst: negate
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:511,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:514,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' scalar'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 517
    functionName: Botan::EC_Point::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - negate
    - Botan::EC_Point::add
    - Botan::EC_Point::mult2
    - Botan::EC_Point::zero
    - bits
    - Botan::EC_Point::on_the_curve
    - get_bit
    - is_negative
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point EC_Point::mul(const BigInt& scalar) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<EC_Point>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:521,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:523,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:529,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:530,1
    - Dst: m_curve::group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:543,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:544,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:546,1
    - Dst: monty_ws_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:546,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:547,1
    - Dst: monty_ws_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:547,1
    - Dst: std::span<EC_Point>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:550,1
    - Dst: std::span<EC_Point>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:553,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:554,1
    - Dst: invert_element
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:557,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:557,1
    - Dst: std::span<EC_Point>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:563,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:566,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:568,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:570,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:571,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:572,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:573,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:577,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:578,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:579,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:580,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - points
    - ' ws'
    argTypes:
    - std::span<EC_Point>
    - secure_vector<word>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 582
    functionName: Botan::EC_Point::force_all_affine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 4
    functionsReached:
    - monty
    - resize
    - is_zero
    - monty_ws_size
    - invert_element
    - Botan::EC_Point::force_affine
    - std::span<EC_Point>::size
    - size
    - fe_sqr
    - m_curve::group
    - Invalid_State
    - fe_mul
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void EC_Point::force_all_affine(std::span<EC_Point> points, secure_vector<word>&
      ws)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:585,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:586,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:591,1
    - Dst: invert_element
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:593,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:594,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:595,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:596,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:597,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 599
    functionName: Botan::EC_Point::force_affine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 10
    functionsReached:
    - monty
    - is_zero
    - invert_element
    - group
    - fe_sqr
    - Invalid_State
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void EC_Point::force_affine()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:602,1
    - Dst: monty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 604
    functionName: Botan::EC_Point::is_affine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 4
    functionsReached:
    - monty
    - group
    linkageType: ''
    returnType: bool
    signature: bool EC_Point::is_affine() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:607,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:608,1
    - Dst: Botan::encode_1363
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:610,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:610,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:610,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: Botan::EC_Point::x_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - secure_vector::size
    - Botan::encode_1363
    - Botan::EC_Point::get_affine_x
    - group
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_Point::x_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:615,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:616,1
    - Dst: Botan::encode_1363
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:618,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:618,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:618,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: Botan::EC_Point::y_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - secure_vector::size
    - Botan::encode_1363
    - group
    - secure_vector::data
    - Botan::EC_Point::get_affine_y
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_Point::y_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:623,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:624,1
    - Dst: Botan::encode_1363
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:626,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:626,1
    - Dst: Botan::encode_1363
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:627,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 629
    functionName: Botan::EC_Point::xy_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 20
    functionsReached:
    - p_bytes
    - Botan::encode_1363
    - Botan::EC_Point::get_affine_x
    - group
    - Botan::EC_Point::get_affine_y
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_Point::xy_bytes() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:632,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:633,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:638,1
    - Dst: Botan::EC_Point::is_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:640,1
    - Dst: from_rep_to_tmp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:641,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:644,1
    - Dst: invert_element
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:645,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:648,1
    - Dst: from_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 651
    functionName: Botan::EC_Point::get_affine_x
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 14
    functionsReached:
    - Botan::EC_Point::is_affine
    - from_rep
    - is_zero
    - from_rep_to_tmp
    - invert_element
    - group
    - Invalid_State
    - fe_mul
    - fe_sqr
    linkageType: ''
    returnType: BigInt
    signature: BigInt EC_Point::get_affine_x() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:654,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:655,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:658,1
    - Dst: Botan::EC_Point::is_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:661,1
    - Dst: from_rep_to_tmp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:662,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:665,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:666,1
    - Dst: invert_element
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:667,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:670,1
    - Dst: from_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 673
    functionName: Botan::EC_Point::get_affine_y
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 13
    functionsReached:
    - Botan::EC_Point::is_affine
    - from_rep
    - is_zero
    - from_rep_to_tmp
    - invert_element
    - group
    - Invalid_State
    - fe_mul
    - fe_sqr
    linkageType: ''
    returnType: BigInt
    signature: BigInt EC_Point::get_affine_y() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:682,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:686,1
    - Dst: from_rep_to_tmp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:689,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:689,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:690,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:690,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:691,1
    - Dst: monty_a
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:691,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:692,1
    - Dst: monty_b
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:694,1
    - Dst: from_rep_to_tmp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:698,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:703,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:704,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:704,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:705,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:705,1
    - Dst: from_rep_to_tmp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:707,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 712
    functionName: Botan::EC_Point::on_the_curve
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 14
    functionsReached:
    - is_zero
    - from_rep_to_tmp
    - group
    - fe_sqr
    - monty_a
    - fe_mul
    - monty_b
    linkageType: ''
    returnType: bool
    signature: bool EC_Point::on_the_curve() const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:715,1
    - Dst: is_positive
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:715,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:717,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:721,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:725,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:728,1
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:735,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:736,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:736,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:756,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:759,1
    - Dst: Botan::EC_Point::get_z
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:759,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:760,1
    - Dst: Botan::EC_Point::get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:771,1
    - Dst: order_is_less_than_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:775,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:776,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:777,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:778,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:779,1
    - Dst: Botan::EC_Point::get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:781,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 789
    functionName: Botan::EC_Point::_is_x_eq_to_v_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - is_positive
    - mod_order
    - has_cofactor
    - Botan::EC_Point::is_zero
    - Botan::EC_Point::get_affine_x
    - p
    - order_is_less_than_p
    - Botan::EC_Point::get_z
    - group
    - BOTAN_ASSERT_NOMSG
    - order
    - to_rep
    - fe_mul
    - fe_sqr
    - Botan::EC_Point::get_x
    linkageType: ''
    returnType: bool
    signature: bool EC_Point::_is_x_eq_to_v_mod_order(const BigInt& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:793,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:794,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:795,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 797
    functionName: Botan::EC_Point::swap
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 10
    functionsReached:
    - Botan::EC_Point::swap
    linkageType: ''
    returnType: void
    signature: void EC_Point::swap(EC_Point& other) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:805,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:806,1
    - Dst: get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:809,1
    - Dst: get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:809,1
    - Dst: get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:809,1
    - Dst: get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 810
    functionName: EC_Point::operator==(const EC_Point& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 0
    functionsReached:
    - get_affine_x
    - is_zero
    - get_affine_y
    linkageType: ''
    returnType: bool
    signature: bool EC_Point::operator==(const EC_Point& other) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:814,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:815,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:818,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:820,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:821,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:829,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:830,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:830,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:831,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:831,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:833,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:833,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:833,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:834,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:834,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:836,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:836,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:836,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:837,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:837,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:838,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:838,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:840,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 844
    functionName: Botan::EC_Point::encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 16
    functionsReached:
    - Invalid_Argument
    - BigInt::serialize_to
    - is_zero
    - std::vector<uint8_t>
    - BufferStuffer::append
    - BufferStuffer::next
    - Botan::EC_Point::get_affine_x
    - group
    - BigInt::get_bit
    - Botan::EC_Point::get_affine_y
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_Point::encode(EC_Point_Format format) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:851,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:854,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - y_mod_2
    - ' x'
    - ' p'
    - ' a'
    - ' b'
    argTypes:
    - bool
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 862
    functionName: Botan::decompress_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 1
    functionsReached:
    - BigInt::get_bit
    - Botan::Decoding_Error
    - Botan::sqrt_modulo_prime
    linkageType: ''
    returnType: BigInt
    signature: BigInt decompress_point(bool y_mod_2, const BigInt& x, const BigInt&
      p, const BigInt& a, const BigInt& b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:851,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:854,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - y_mod_2
    - ' x'
    - ' p'
    - ' a'
    - ' b'
    argTypes:
    - bool
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 862
    functionName: Botan::decompress_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 1
    functionsReached:
    - BigInt::get_bit
    - Botan::Decoding_Error
    - Botan::sqrt_modulo_prime
    linkageType: ''
    returnType: BigInt
    signature: BigInt decompress_point(bool y_mod_2, const BigInt& x, const BigInt&
      p, const BigInt& a, const BigInt& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS2ECP
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:867,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:867,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ' curve'
    argTypes:
    - std::span<const uint8_t>
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 868
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 5
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan::OS2ECP
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point OS2ECP(std::span<const uint8_t> data, const CurveGFp& curve)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:873,1
    - Dst: Botan::OS2ECP
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:876,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:876,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:876,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:876,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:880,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:881,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - data
    - data_len
    - ' curve'
    argTypes:
    - uint8_t[]
    - size_t
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 885
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 6
    functionsReached:
    - get_b
    - get_p
    - Botan::OS2ECP
    - EC_Point::on_the_curve
    - Botan::Decoding_Error
    - get_a
    - Botan::EC_Point
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point OS2ECP(const uint8_t data[], size_t data_len, const CurveGFp&
      curve)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:889,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:893,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:900,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:902,1
    - Dst: Botan::decompress_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:905,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:908,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:911,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:912,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:915,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:918,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:919,1
    - Dst: Botan::decompress_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:923,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:924,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:927,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:927,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:927,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:931,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:934,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 5
    argNames:
    - pt
    - pt_len
    - ' p'
    - ' a'
    - ' b'
    argTypes:
    - uint8_t[]
    - size_t
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 935
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 6
    functionsReached:
    - Botan::bytes
    - std::make_pair
    - Botan::Decoding_Error
    - Botan::to_string
    - static_cast<int>
    - Botan::BigInt::decode
    - Botan::decompress_point
    linkageType: ''
    returnType: std::pair<BigInt, BigInt>
    signature: std::pair<BigInt, BigInt> OS2ECP(const uint8_t pt[], size_t pt_len,
      const BigInt& p, const BigInt& a, const BigInt& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const EC_Scalar_Data_BN*>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:16,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: '& EC_Scalar_Data_BN::checked_ref(const EC_Scalar_Data& data)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const EC_Scalar_Data_BN*>
    - Invalid_State
    linkageType: ''
    returnType: EC_Scalar_Data_BN
    signature: EC_Scalar_Data_BN & EC_Scalar_Data_BN::checked_ref(const EC_Scalar_Data&
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: '& EC_Scalar_Data_BN::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const EC_Group_Data>
    signature: std::shared_ptr<const EC_Group_Data> & EC_Scalar_Data_BN::group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar_Data_BN::group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan::EC_Scalar_Data_BN::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_BN::group
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Scalar_Data_BN::bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:32,1
    - Dst: Botan::EC_Scalar_Data_BN::group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:32,1
    - Dst: Botan::EC_Scalar_Data_BN::value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::EC_Scalar_Data_BN::clone
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_BN>
    - Botan::EC_Scalar_Data_BN::value
    - Botan::EC_Scalar_Data_BN::group
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar_Data_BN::value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::EC_Scalar_Data_BN::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_BN::value
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar_Data_BN::is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:40,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::EC_Scalar_Data_BN::is_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - value
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar_Data_BN::is_eq(const EC_Scalar_Data& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::EC_Scalar_Data_BN::assign
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_BN::assign(const EC_Scalar_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: Botan::EC_Scalar_Data_BN::zeroize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_BN::zeroize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::EC_Scalar_Data_BN::square_self
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - mod_order
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_BN::square_self()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:59,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:59,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan::EC_Scalar_Data_BN::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    - mod_order
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::negate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:63,1
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:63,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan::EC_Scalar_Data_BN::invert
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    - inverse_mod_public_prime
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::invert() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:67,1
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:67,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::EC_Scalar_Data_BN::invert_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    - inverse_mod_public_prime
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::invert_vartime()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:71,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:71,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::EC_Scalar_Data_BN::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_BN>
    - mod_order
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::add(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:75,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:76,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:76,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: Botan::EC_Scalar_Data_BN::sub
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    - mod_order
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::sub(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:80,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:80,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan::EC_Scalar_Data_BN::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_BN>
    - mod_order
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::mul(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:84,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:84,1
    - Dst: order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:84,1
    - Dst: Botan::EC_Scalar_Data_BN::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan::EC_Scalar_Data_BN::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 1
    functionsReached:
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - Botan::EC_Scalar_Data_BN::serialize_to
    - order_bytes
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_BN::serialize_to(std::span<uint8_t> bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:89,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:89,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:90,1
    - Dst: force_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:91,1
    - Dst: xy_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - group
    - pt
    argTypes:
    - std::shared_ptr<const EC_Group_Data>
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: Botan::EC_AffinePoint_Data_BN::EC_AffinePoint_Data_BN
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - xy_bytes
    - is_zero
    - force_affine
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::EC_AffinePoint_Data_BN(std::shared_ptr<const
      EC_Group_Data> group, EC_Point pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan::EC_AffinePoint_Data_BN::clone
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: std::unique_ptr<EC_AffinePoint_Data> EC_AffinePoint_Data_BN::clone()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: '& EC_AffinePoint_Data_BN::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const EC_Group_Data>
    signature: std::shared_ptr<const EC_Group_Data> & EC_AffinePoint_Data_BN::group()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:106,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:106,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:107,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:117,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:117,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:118,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:118,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 120
    functionName: Botan::EC_AffinePoint_Data_BN::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - EC_Scalar_Data_BN::checked_ref
    - EC_Point_Var_Point_Precompute::mul
    - BOTAN_ARG_CHECK
    - cofactor
    - group
    - order
    - value
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_AffinePoint_Data_BN::mul(const
      EC_Scalar_Data& scalar,\n                                                                 RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:124,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:124,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:125,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:135,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:135,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:136,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:136,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 138
    functionName: Botan::EC_AffinePoint_Data_BN::mul_x_only
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - EC_Scalar_Data_BN::checked_ref
    - EC_Point_Var_Point_Precompute::mul
    - BOTAN_ARG_CHECK
    - cofactor
    - auto::x_bytes
    - group
    - order
    - value
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> EC_AffinePoint_Data_BN::mul_x_only(const EC_Scalar_Data&
      scalar,\n                                                          RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: Botan::EC_AffinePoint_Data_BN::field_element_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t EC_AffinePoint_Data_BN::field_element_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan::EC_AffinePoint_Data_BN::is_identity
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool EC_AffinePoint_Data_BN::is_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:149,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:149,1
    - Dst: Botan::EC_AffinePoint_Data_BN::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:150,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:151,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:151,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:152,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: Botan::EC_AffinePoint_Data_BN::serialize_x_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - first
    - std::span<uint8_t>::size
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - BOTAN_ARG_CHECK
    - copy_mem
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::serialize_x_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:156,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:156,1
    - Dst: Botan::EC_AffinePoint_Data_BN::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:157,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:158,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:158,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:159,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: Botan::EC_AffinePoint_Data_BN::serialize_y_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - last
    - BOTAN_ARG_CHECK
    - copy_mem
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::serialize_y_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:163,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:163,1
    - Dst: Botan::EC_AffinePoint_Data_BN::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:164,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:165,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:165,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: Botan::EC_AffinePoint_Data_BN::serialize_xy_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - BOTAN_ARG_CHECK
    - copy_mem
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::serialize_xy_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:170,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:170,1
    - Dst: Botan::EC_AffinePoint_Data_BN::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:171,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:172,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:172,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:173,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:176,1
    - Dst: Botan::EC_AffinePoint_Data_BN::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:177,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: Botan::EC_AffinePoint_Data_BN::serialize_compressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_BN::serialize_x_to
    - std::span<uint8_t>::size
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - BufferStuffer::append
    - BufferStuffer::next
    - BOTAN_ARG_CHECK
    - size
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::serialize_compressed_to(std::span<uint8_t>
      bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:181,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:181,1
    - Dst: Botan::EC_AffinePoint_Data_BN::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:182,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:183,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:183,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:185,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: Botan::EC_AffinePoint_Data_BN::serialize_uncompressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - BufferStuffer::append
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::serialize_uncompressed_to(std::span<uint8_t>
      bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:190,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:190,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:190,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:191,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' g'
    - ' h'
    argTypes:
    - EC_AffinePoint_Data
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: Botan::EC_Mul2Table_Data_BN::EC_Mul2Table_Data_BN
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - to_legacy_point
    - group
    linkageType: ''
    returnType: void
    signature: void EC_Mul2Table_Data_BN::EC_Mul2Table_Data_BN(const EC_AffinePoint_Data&
      g, const EC_AffinePoint_Data& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:196,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:196,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:196,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:198,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:199,1
    - Dst: multi_exp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:200,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:200,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:200,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:202,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:205,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: Botan::EC_Mul2Table_Data_BN::mul2_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - EC_Scalar_Data_BN::checked_ref
    - BOTAN_ARG_CHECK
    - group
    - value
    - multi_exp
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Mul2Table_Data_BN::mul2_vartime(const
      EC_Scalar_Data& x,\n                                                                        const
      EC_Scalar_Data& y) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:211,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:211,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:211,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:211,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:213,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:214,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:215,1
    - Dst: multi_exp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:216,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:216,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:216,1
    - Dst: auto::_is_x_eq_to_v_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:218,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - ' v'
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: Botan::EC_Mul2Table_Data_BN::mul2_vartime_x_mod_order_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - EC_Scalar_Data_BN::checked_ref
    - BOTAN_ARG_CHECK
    - group
    - value
    - multi_exp
    - auto::_is_x_eq_to_v_mod_order
    linkageType: ''
    returnType: bool
    signature: "bool EC_Mul2Table_Data_BN::mul2_vartime_x_mod_order_eq(const EC_Scalar_Data&
      v,\n                                                       const EC_Scalar_Data&
      x,\n                                                       const EC_Scalar_Data&
      y) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const EC_Scalar_Data_BN*>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:16,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: '& EC_Scalar_Data_BN::checked_ref(const EC_Scalar_Data& data)'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const EC_Scalar_Data_BN*>
    - Invalid_State
    linkageType: ''
    returnType: EC_Scalar_Data_BN
    signature: EC_Scalar_Data_BN & EC_Scalar_Data_BN::checked_ref(const EC_Scalar_Data&
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: '& EC_Scalar_Data_BN::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const EC_Group_Data>
    signature: std::shared_ptr<const EC_Group_Data> & EC_Scalar_Data_BN::group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar_Data_BN::group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan::EC_Scalar_Data_BN::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_BN::group
    linkageType: ''
    returnType: size_t
    signature: size_t EC_Scalar_Data_BN::bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:32,1
    - Dst: Botan::EC_Scalar_Data_BN::group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:32,1
    - Dst: Botan::EC_Scalar_Data_BN::value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::EC_Scalar_Data_BN::clone
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_BN>
    - Botan::EC_Scalar_Data_BN::value
    - Botan::EC_Scalar_Data_BN::group
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar_Data_BN::value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::EC_Scalar_Data_BN::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_BN::value
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar_Data_BN::is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:40,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::EC_Scalar_Data_BN::is_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - value
    linkageType: ''
    returnType: bool
    signature: bool EC_Scalar_Data_BN::is_eq(const EC_Scalar_Data& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::EC_Scalar_Data_BN::assign
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_BN::assign(const EC_Scalar_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: Botan::EC_Scalar_Data_BN::zeroize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_BN::zeroize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::EC_Scalar_Data_BN::square_self
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - mod_order
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_BN::square_self()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:59,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:59,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Botan::EC_Scalar_Data_BN::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    - mod_order
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::negate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:63,1
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:63,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan::EC_Scalar_Data_BN::invert
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    - inverse_mod_public_prime
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::invert() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:67,1
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:67,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::EC_Scalar_Data_BN::invert_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    - inverse_mod_public_prime
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::invert_vartime()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:71,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:71,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::EC_Scalar_Data_BN::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_BN>
    - mod_order
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::add(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:75,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:76,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:76,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: Botan::EC_Scalar_Data_BN::sub
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    - mod_order
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::sub(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:80,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:80,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan::EC_Scalar_Data_BN::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - checked_ref
    - std::make_unique<EC_Scalar_Data_BN>
    - mod_order
    linkageType: ''
    returnType: std::unique_ptr<EC_Scalar_Data>
    signature: std::unique_ptr<EC_Scalar_Data> EC_Scalar_Data_BN::mul(const EC_Scalar_Data&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:84,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:84,1
    - Dst: order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:84,1
    - Dst: Botan::EC_Scalar_Data_BN::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan::EC_Scalar_Data_BN::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 2
    functionsReached:
    - std::span<uint8_t>::size
    - BOTAN_ARG_CHECK
    - Botan::EC_Scalar_Data_BN::serialize_to
    - order_bytes
    linkageType: ''
    returnType: void
    signature: void EC_Scalar_Data_BN::serialize_to(std::span<uint8_t> bytes) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:89,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:89,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:90,1
    - Dst: force_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:91,1
    - Dst: xy_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - group
    - pt
    argTypes:
    - std::shared_ptr<const EC_Group_Data>
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: Botan::EC_AffinePoint_Data_BN::EC_AffinePoint_Data_BN
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - xy_bytes
    - is_zero
    - force_affine
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::EC_AffinePoint_Data_BN(std::shared_ptr<const
      EC_Group_Data> group, EC_Point pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Botan::EC_AffinePoint_Data_BN::clone
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: std::unique_ptr<EC_AffinePoint_Data> EC_AffinePoint_Data_BN::clone()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: '& EC_AffinePoint_Data_BN::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const EC_Group_Data>
    signature: std::shared_ptr<const EC_Group_Data> & EC_AffinePoint_Data_BN::group()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:106,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:106,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:107,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:117,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:117,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:118,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:118,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 120
    functionName: Botan::EC_AffinePoint_Data_BN::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - EC_Scalar_Data_BN::checked_ref
    - EC_Point_Var_Point_Precompute::mul
    - BOTAN_ARG_CHECK
    - cofactor
    - group
    - order
    - value
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_AffinePoint_Data_BN::mul(const
      EC_Scalar_Data& scalar,\n                                                                 RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:124,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:124,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:125,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:135,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:135,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:136,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:136,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 138
    functionName: Botan::EC_AffinePoint_Data_BN::mul_x_only
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - EC_Scalar_Data_BN::checked_ref
    - EC_Point_Var_Point_Precompute::mul
    - BOTAN_ARG_CHECK
    - cofactor
    - auto::x_bytes
    - group
    - order
    - value
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> EC_AffinePoint_Data_BN::mul_x_only(const EC_Scalar_Data&
      scalar,\n                                                          RandomNumberGenerator&
      rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: Botan::EC_AffinePoint_Data_BN::field_element_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 5
    functionsReached:
    - p_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t EC_AffinePoint_Data_BN::field_element_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Botan::EC_AffinePoint_Data_BN::is_identity
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 5
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool EC_AffinePoint_Data_BN::is_identity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:149,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:149,1
    - Dst: Botan::EC_AffinePoint_Data_BN::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:150,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:151,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:151,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:152,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: Botan::EC_AffinePoint_Data_BN::serialize_x_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 1
    functionsReached:
    - first
    - std::span<uint8_t>::size
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - BOTAN_ARG_CHECK
    - copy_mem
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::serialize_x_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:156,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:156,1
    - Dst: Botan::EC_AffinePoint_Data_BN::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:157,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:158,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:158,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:159,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: Botan::EC_AffinePoint_Data_BN::serialize_y_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - last
    - BOTAN_ARG_CHECK
    - copy_mem
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::serialize_y_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:163,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:163,1
    - Dst: Botan::EC_AffinePoint_Data_BN::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:164,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:165,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:165,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: Botan::EC_AffinePoint_Data_BN::serialize_xy_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - BOTAN_ARG_CHECK
    - copy_mem
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::serialize_xy_to(std::span<uint8_t> bytes)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:170,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:170,1
    - Dst: Botan::EC_AffinePoint_Data_BN::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:171,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:172,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:172,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:173,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:176,1
    - Dst: Botan::EC_AffinePoint_Data_BN::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:177,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: Botan::EC_AffinePoint_Data_BN::serialize_compressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint_Data_BN::serialize_x_to
    - std::span<uint8_t>::size
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - BufferStuffer::append
    - BufferStuffer::next
    - BOTAN_ARG_CHECK
    - size
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::serialize_compressed_to(std::span<uint8_t>
      bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:181,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:181,1
    - Dst: Botan::EC_AffinePoint_Data_BN::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:182,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:183,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:183,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:185,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: Botan::EC_AffinePoint_Data_BN::serialize_uncompressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - std::span<uint8_t>::size
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - BufferStuffer::append
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: void
    signature: void EC_AffinePoint_Data_BN::serialize_uncompressed_to(std::span<uint8_t>
      bytes) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:190,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:190,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:190,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:191,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' g'
    - ' h'
    argTypes:
    - EC_AffinePoint_Data
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: Botan::EC_Mul2Table_Data_BN::EC_Mul2Table_Data_BN
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - to_legacy_point
    - group
    linkageType: ''
    returnType: void
    signature: void EC_Mul2Table_Data_BN::EC_Mul2Table_Data_BN(const EC_AffinePoint_Data&
      g, const EC_AffinePoint_Data& h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:196,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:196,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:196,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:198,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:199,1
    - Dst: multi_exp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:200,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:200,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:200,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:202,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:205,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: Botan::EC_Mul2Table_Data_BN::mul2_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - EC_Scalar_Data_BN::checked_ref
    - BOTAN_ARG_CHECK
    - group
    - value
    - multi_exp
    linkageType: ''
    returnType: std::unique_ptr<EC_AffinePoint_Data>
    signature: "std::unique_ptr<EC_AffinePoint_Data> EC_Mul2Table_Data_BN::mul2_vartime(const
      EC_Scalar_Data& x,\n                                                                        const
      EC_Scalar_Data& y) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:211,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:211,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:211,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:211,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:213,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:214,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:215,1
    - Dst: multi_exp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:216,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:216,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:216,1
    - Dst: auto::_is_x_eq_to_v_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:218,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - ' v'
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: Botan::EC_Mul2Table_Data_BN::mul2_vartime_x_mod_order_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - EC_Scalar_Data_BN::checked_ref
    - BOTAN_ARG_CHECK
    - group
    - value
    - multi_exp
    - auto::_is_x_eq_to_v_mod_order
    linkageType: ''
    returnType: bool
    signature: "bool EC_Mul2Table_Data_BN::mul2_vartime_x_mod_order_eq(const EC_Scalar_Data&
      v,\n                                                       const EC_Scalar_Data&
      x,\n                                                       const EC_Scalar_Data&
      y) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 84
    functionName: Botan::CurveGFp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API CurveGFp
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::CurveGFp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CurveGFp(const CurveGFp&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::CurveGFp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CurveGFp(CurveGFp&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~CurveGFp()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~CurveGFp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::CurveGFp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CurveGFp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::swap
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 13
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: void
    signature: void swap(CurveGFp& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: operator==(const CurveGFp& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const CurveGFp& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 84
    functionName: Botan::CurveGFp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API CurveGFp
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::CurveGFp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CurveGFp(const CurveGFp&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::CurveGFp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CurveGFp(CurveGFp&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~CurveGFp()
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~CurveGFp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::CurveGFp
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CurveGFp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::swap
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 15
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: void
    signature: void swap(CurveGFp& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: operator==(const CurveGFp& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/curve_gfp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const CurveGFp& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:29,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' key'
    - kdf_hash
    argTypes:
    - SM2_Encryption_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::SM2_Encryption_Operation::SM2_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - domain
    - fmt
    linkageType: ''
    returnType: void
    signature: void SM2_Encryption_Operation(const SM2_Encryption_PublicKey& key,
      std::string_view kdf_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: Botan::SM2_Encryption_Operation::max_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t max_input_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:38,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: Botan::SM2_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - output_length
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t ptext_len) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:47,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:49,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:51,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:52,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:58,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:58,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:60,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:61,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:63,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:64,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:65,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:66,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:69,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:72,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 78
    functionName: Botan::SM2_Encryption_Operation::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - EC_AffinePoint::y_bytes
    - Botan::EC_Scalar::random
    - xor_buf
    - Botan::EC_AffinePoint::g_mul
    - mul
    - BigInt
    - final
    - DER_Encoder
    - std::span<const uint8_t>::size
    - derive_key
    - EC_AffinePoint::x_bytes
    - update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> encrypt(std::span<const uint8_t> msg, RandomNumberGenerator&
      rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:93,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:95,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key'
    - ' rng'
    - kdf_hash
    argTypes:
    - SM2_Encryption_PrivateKey
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: Botan::SM2_Decryption_Operation::SM2_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - domain
    - _private_key
    - fmt
    linkageType: ''
    returnType: void
    signature: "void SM2_Decryption_Operation(const SM2_Encryption_PrivateKey& key,\n
      \                              RandomNumberGenerator& rng,\n                               std::string_view
      kdf_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:104,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:106,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: Botan::SM2_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - output_length
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t ptext_len) const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:114,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:120,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:128,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:138,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:138,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:139,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:143,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:151,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:152,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:155,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:159,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:162,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:163,1
    - Dst: auto::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:170,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:171,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:172,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:175,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - ' valid_mask'
    - ctext
    argTypes:
    - uint8_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 181
    functionName: Botan::SM2_Decryption_Operation::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - auto::data
    - xor_buf
    - auto::y_bytes
    - secure_vector::data
    - output_length
    - auto::size
    - CT::is_equal<uint8_t>
    - secure_vector<uint8_t>
    - auto::mul
    - Botan::EC_AffinePoint::from_bigint_xy
    - DER_Encoder
    - auto::x_bytes
    - update
    - auto::xy_bytes
    - get_p_bytes
    - secure_vector::size
    - final
    - derive_key
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decrypt(uint8_t& valid_mask, std::span<const
      uint8_t> ctext) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:29,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' key'
    - kdf_hash
    argTypes:
    - SM2_Encryption_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::SM2_Encryption_Operation::SM2_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - domain
    - fmt
    linkageType: ''
    returnType: void
    signature: void SM2_Encryption_Operation(const SM2_Encryption_PublicKey& key,
      std::string_view kdf_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: Botan::SM2_Encryption_Operation::max_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t max_input_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:38,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: Botan::SM2_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - output_length
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t ptext_len) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:47,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:49,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:51,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:52,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:58,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:58,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:60,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:61,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:63,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:64,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:65,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:66,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:69,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:72,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 78
    functionName: Botan::SM2_Encryption_Operation::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - EC_AffinePoint::y_bytes
    - Botan::EC_Scalar::random
    - xor_buf
    - Botan::EC_AffinePoint::g_mul
    - mul
    - BigInt
    - final
    - DER_Encoder
    - std::span<const uint8_t>::size
    - derive_key
    - EC_AffinePoint::x_bytes
    - update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> encrypt(std::span<const uint8_t> msg, RandomNumberGenerator&
      rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:93,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:95,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key'
    - ' rng'
    - kdf_hash
    argTypes:
    - SM2_Encryption_PrivateKey
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: Botan::SM2_Decryption_Operation::SM2_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - domain
    - _private_key
    - fmt
    linkageType: ''
    returnType: void
    signature: "void SM2_Decryption_Operation(const SM2_Encryption_PrivateKey& key,\n
      \                              RandomNumberGenerator& rng,\n                               std::string_view
      kdf_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:104,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:106,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: Botan::SM2_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - output_length
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t ptext_len) const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:114,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:120,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:128,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:138,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:138,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:139,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:143,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:151,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:152,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:155,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:159,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:162,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:163,1
    - Dst: auto::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:170,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:171,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:172,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:175,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - ' valid_mask'
    - ctext
    argTypes:
    - uint8_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 181
    functionName: Botan::SM2_Decryption_Operation::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - auto::data
    - xor_buf
    - auto::y_bytes
    - secure_vector::data
    - output_length
    - auto::size
    - CT::is_equal<uint8_t>
    - secure_vector<uint8_t>
    - auto::mul
    - Botan::EC_AffinePoint::from_bigint_xy
    - DER_Encoder
    - auto::x_bytes
    - update
    - auto::xy_bytes
    - get_p_bytes
    - secure_vector::size
    - final
    - derive_key
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decrypt(uint8_t& valid_mask, std::span<const
      uint8_t> ctext) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:196,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:198,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:199,1
    - Dst: std::make_unique<SM2_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:200,1
    - Dst: std::make_unique<SM2_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:202,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:206,1
    - Dst: Botan::SM2_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: Botan::SM2_PublicKey::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Provider_Not_Found
    - Botan::SM2_PublicKey::algo_name
    - std::string_view::empty
    - std::make_unique<SM2_Encryption_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Encryption>
    signature: "std::unique_ptr<PK_Ops::Encryption> SM2_PublicKey::create_encryption_op(RandomNumberGenerator&
      rng,\n                                                                        std::string_view
      params,\n                                                                        std::string_view
      provider) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:212,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:213,1
    - Dst: std::make_unique<SM2_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:214,1
    - Dst: std::make_unique<SM2_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:216,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:220,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 221
    functionName: Botan::SM2_PrivateKey::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<SM2_Decryption_Operation>
    - Provider_Not_Found
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Decryption>
    signature: "std::unique_ptr<PK_Ops::Decryption> SM2_PrivateKey::create_decryption_op(RandomNumberGenerator&
      rng,\n                                                                         std::string_view
      params,\n                                                                         std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:29,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' key'
    - kdf_hash
    argTypes:
    - SM2_Encryption_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::SM2_Encryption_Operation::SM2_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - domain
    - fmt
    linkageType: ''
    returnType: void
    signature: void SM2_Encryption_Operation(const SM2_Encryption_PublicKey& key,
      std::string_view kdf_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: Botan::SM2_Encryption_Operation::max_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t max_input_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:38,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: Botan::SM2_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - output_length
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t ptext_len) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:47,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:49,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:51,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:52,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:58,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:58,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:60,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:61,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:63,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:64,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:65,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:66,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:69,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:72,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 78
    functionName: Botan::SM2_Encryption_Operation::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - EC_AffinePoint::y_bytes
    - Botan::EC_Scalar::random
    - xor_buf
    - Botan::EC_AffinePoint::g_mul
    - mul
    - BigInt
    - final
    - DER_Encoder
    - std::span<const uint8_t>::size
    - derive_key
    - EC_AffinePoint::x_bytes
    - update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> encrypt(std::span<const uint8_t> msg, RandomNumberGenerator&
      rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:93,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:95,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key'
    - ' rng'
    - kdf_hash
    argTypes:
    - SM2_Encryption_PrivateKey
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: Botan::SM2_Decryption_Operation::SM2_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - domain
    - _private_key
    - fmt
    linkageType: ''
    returnType: void
    signature: "void SM2_Decryption_Operation(const SM2_Encryption_PrivateKey& key,\n
      \                              RandomNumberGenerator& rng,\n                               std::string_view
      kdf_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:104,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:106,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: Botan::SM2_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - output_length
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t ptext_len) const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:114,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:120,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:128,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:138,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:138,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:139,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:143,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:151,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:152,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:155,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:159,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:162,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:163,1
    - Dst: auto::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:170,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:171,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:172,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:175,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - ' valid_mask'
    - ctext
    argTypes:
    - uint8_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 181
    functionName: Botan::SM2_Decryption_Operation::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - auto::data
    - xor_buf
    - auto::y_bytes
    - secure_vector::data
    - output_length
    - auto::size
    - CT::is_equal<uint8_t>
    - secure_vector<uint8_t>
    - auto::mul
    - Botan::EC_AffinePoint::from_bigint_xy
    - DER_Encoder
    - auto::x_bytes
    - update
    - auto::xy_bytes
    - get_p_bytes
    - secure_vector::size
    - final
    - derive_key
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decrypt(uint8_t& valid_mask, std::span<const
      uint8_t> ctext) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:29,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' key'
    - kdf_hash
    argTypes:
    - SM2_Encryption_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::SM2_Encryption_Operation::SM2_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - domain
    - fmt
    linkageType: ''
    returnType: void
    signature: void SM2_Encryption_Operation(const SM2_Encryption_PublicKey& key,
      std::string_view kdf_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: Botan::SM2_Encryption_Operation::max_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t max_input_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:38,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: Botan::SM2_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - output_length
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t ptext_len) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:47,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:49,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:51,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:52,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:58,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:58,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:60,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:61,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:63,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:64,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:65,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:66,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:69,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:72,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 78
    functionName: Botan::SM2_Encryption_Operation::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - EC_AffinePoint::y_bytes
    - Botan::EC_Scalar::random
    - xor_buf
    - Botan::EC_AffinePoint::g_mul
    - mul
    - BigInt
    - final
    - DER_Encoder
    - std::span<const uint8_t>::size
    - derive_key
    - EC_AffinePoint::x_bytes
    - update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> encrypt(std::span<const uint8_t> msg, RandomNumberGenerator&
      rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:93,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:95,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key'
    - ' rng'
    - kdf_hash
    argTypes:
    - SM2_Encryption_PrivateKey
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: Botan::SM2_Decryption_Operation::SM2_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - domain
    - _private_key
    - fmt
    linkageType: ''
    returnType: void
    signature: "void SM2_Decryption_Operation(const SM2_Encryption_PrivateKey& key,\n
      \                              RandomNumberGenerator& rng,\n                               std::string_view
      kdf_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:104,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:106,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: Botan::SM2_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - output_length
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t ptext_len) const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:114,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:120,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:128,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:138,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:138,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:139,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:143,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:151,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:152,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:155,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:159,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:162,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:163,1
    - Dst: auto::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:170,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:171,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:172,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:175,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - ' valid_mask'
    - ctext
    argTypes:
    - uint8_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 181
    functionName: Botan::SM2_Decryption_Operation::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - auto::data
    - xor_buf
    - auto::y_bytes
    - secure_vector::data
    - output_length
    - auto::size
    - CT::is_equal<uint8_t>
    - secure_vector<uint8_t>
    - auto::mul
    - Botan::EC_AffinePoint::from_bigint_xy
    - DER_Encoder
    - auto::x_bytes
    - update
    - auto::xy_bytes
    - get_p_bytes
    - secure_vector::size
    - final
    - derive_key
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decrypt(uint8_t& valid_mask, std::span<const
      uint8_t> ctext) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:196,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:198,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:199,1
    - Dst: std::make_unique<SM2_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:200,1
    - Dst: std::make_unique<SM2_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:202,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:206,1
    - Dst: Botan::SM2_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: Botan::SM2_PublicKey::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Provider_Not_Found
    - Botan::SM2_PublicKey::algo_name
    - std::string_view::empty
    - std::make_unique<SM2_Encryption_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Encryption>
    signature: "std::unique_ptr<PK_Ops::Encryption> SM2_PublicKey::create_encryption_op(RandomNumberGenerator&
      rng,\n                                                                        std::string_view
      params,\n                                                                        std::string_view
      provider) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:212,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:213,1
    - Dst: std::make_unique<SM2_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:214,1
    - Dst: std::make_unique<SM2_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:216,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:220,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 221
    functionName: Botan::SM2_PrivateKey::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<SM2_Decryption_Operation>
    - Provider_Not_Found
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Decryption>
    signature: "std::unique_ptr<PK_Ops::Decryption> SM2_PrivateKey::create_decryption_op(RandomNumberGenerator&
      rng,\n                                                                         std::string_view
      params,\n                                                                         std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' public_point'
    argTypes:
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::SM2_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_PublicKey(const EC_Group& group, const EC_Point& public_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: Botan::SM2_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_PublicKey(const AlgorithmIdentifier& alg_id, std::span<const
      uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' public_point'
    argTypes:
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::SM2_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_PublicKey(const EC_Group& group, const EC_Point& public_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: Botan::SM2_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2_PublicKey(const AlgorithmIdentifier& alg_id, std::span<const
      uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: get_da_inv
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_da_inv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: _get_da_inv
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar & _get_da_inv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: Botan::SM2_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string SM2_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::SM2_PublicKey::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> SM2_PublicKey::_signature_element_size_for_DER_encoding()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SM2_Signature_PublicKey>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:28,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:28,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan::SM2_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SM2_Signature_PublicKey>
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> SM2_PrivateKey::public_key() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:32,1
    - Dst: private_value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:41,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:41,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 50
    functionName: Botan::SM2_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - private_value
    - Botan::KeyPair::signature_consistency_check
    - Botan::EC_PrivateKey::check_key
    - domain
    linkageType: ''
    returnType: bool
    signature: bool SM2_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::one
    - invert
    - to_bigint
    - Botan::SM2_PrivateKey::_private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:59,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:59,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:59,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:59,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::one
    - invert
    - to_bigint
    - Botan::SM2_PrivateKey::_private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(const EC_Group& group, const EC_Scalar&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:64,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:64,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:64,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:64,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::one
    - invert
    - to_bigint
    - Botan::SM2_PrivateKey::_private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(RandomNumberGenerator& rng, const
      EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:69,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:69,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:69,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:69,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - ' group'
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::one
    - invert
    - to_bigint
    - Botan::SM2_PrivateKey::_private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(RandomNumberGenerator& rng, const
      EC_Group& group, const BigInt& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:77,1
    - Dst: Botan::sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' hash'
    - user_id
    - ' group'
    - ' pubkey'
    argTypes:
    - HashFunction
    - std::string_view
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: Botan::sm2_compute_za
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 1
    functionsReached:
    - EC_AffinePoint
    - Botan::sm2_compute_za
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> sm2_compute_za(HashFunction& hash,\n                                    std::string_view
      user_id,\n                                    const EC_Group& group,\n                                    const
      EC_Point& pubkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:86,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:87,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:90,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:90,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:92,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:92,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:93,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:93,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:94,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:96,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:98,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:98,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:99,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:99,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:100,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:100,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:102,1
    - Dst: Botan::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:102,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ' hash'
    - user_id
    - ' group'
    - ' pubkey'
    argTypes:
    - HashFunction
    - std::string_view
    - EC_Group
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: Botan::sm2_compute_za
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 1
    functionsReached:
    - get_g_x
    - get_b
    - Botan::Invalid_Argument
    - Botan::update
    - Botan::get_byte
    - static_cast<uint16_t>
    - get_p_bytes
    - Botan::xy_bytes
    - get_a
    - get_g_y
    - Botan::final
    - std::string_view::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> sm2_compute_za(HashFunction& hash,\n                                    std::string_view
      user_id,\n                                    const EC_Group& group,\n                                    const
      EC_AffinePoint& pubkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: _get_da_inv
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:119,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:121,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:121,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sm2'
    - ident
    - hash
    argTypes:
    - SM2_PrivateKey
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: Botan::SM2_Signature_Operation::SM2_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Signature_Operation::update
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - sm2_compute_za
    - domain
    - _get_da_inv
    - _private_key
    linkageType: ''
    returnType: void
    signature: void SM2_Signature_Operation(const SM2_PrivateKey& sm2, std::string_view
      ident, std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::SM2_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:130,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: Botan::SM2_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 2
    functionsReached:
    - Botan::SM2_Signature_Operation::update
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan::SM2_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:153,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:153,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:155,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:158,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:159,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:164,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:166,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 170
    functionName: Botan::SM2_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::gk_x_mod_order
    - Botan::SM2_Signature_Operation::update
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - final
    - clear
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SM2_Signature_Operation::sign(RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:178,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:178,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:182,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:184,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:184,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sm2'
    - ident
    - hash
    argTypes:
    - SM2_PublicKey
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: Botan::SM2_Verification_Operation::SM2_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - sm2_compute_za
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_Verification_Operation(const SM2_PublicKey& sm2, std::string_view
      ident, std::string_view hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:191,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: Botan::SM2_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 2
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan::SM2_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:214,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:217,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:218,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:223,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:224,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:226,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:226,1
    - Dst: auto::is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:228,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 235
    functionName: Botan::SM2_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - mul2_vartime_x_mod_order_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - final
    - is_nonzero
    - clear
    - auto::is_nonzero
    - auto::value
    linkageType: ''
    returnType: bool
    signature: bool SM2_Verification_Operation::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:251,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:255,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - params
    - ' userid'
    - ' hash'
    argTypes:
    - std::string_view
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 258
    functionName: Botan::parse_sm2_param_string
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::find
    - std::string_view::substr
    linkageType: ''
    returnType: void
    signature: void parse_sm2_param_string(std::string_view params, std::string& userid,
      std::string& hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: _get_da_inv
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:119,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:121,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:121,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sm2'
    - ident
    - hash
    argTypes:
    - SM2_PrivateKey
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: Botan::SM2_Signature_Operation::SM2_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Signature_Operation::update
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - sm2_compute_za
    - domain
    - _get_da_inv
    - _private_key
    linkageType: ''
    returnType: void
    signature: void SM2_Signature_Operation(const SM2_PrivateKey& sm2, std::string_view
      ident, std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::SM2_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:130,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: Botan::SM2_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 5
    functionsReached:
    - Botan::SM2_Signature_Operation::update
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan::SM2_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:153,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:153,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:155,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:158,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:159,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:164,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:166,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 170
    functionName: Botan::SM2_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::gk_x_mod_order
    - Botan::SM2_Signature_Operation::update
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - final
    - clear
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SM2_Signature_Operation::sign(RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:178,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:178,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:182,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:184,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:184,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sm2'
    - ident
    - hash
    argTypes:
    - SM2_PublicKey
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: Botan::SM2_Verification_Operation::SM2_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - sm2_compute_za
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_Verification_Operation(const SM2_PublicKey& sm2, std::string_view
      ident, std::string_view hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:191,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: Botan::SM2_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 5
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan::SM2_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:214,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:217,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:218,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:223,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:224,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:226,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:226,1
    - Dst: auto::is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:228,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 235
    functionName: Botan::SM2_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - mul2_vartime_x_mod_order_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - final
    - is_nonzero
    - clear
    - auto::is_nonzero
    - auto::value
    linkageType: ''
    returnType: bool
    signature: bool SM2_Verification_Operation::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:251,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:255,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - params
    - ' userid'
    - ' hash'
    argTypes:
    - std::string_view
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 258
    functionName: Botan::parse_sm2_param_string
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::find
    - std::string_view::substr
    linkageType: ''
    returnType: void
    signature: void parse_sm2_param_string(std::string_view params, std::string& userid,
      std::string& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SM2_PrivateKey>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:263,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Botan::SM2_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<SM2_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> SM2_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:268,1
    - Dst: parse_sm2_param_string
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:271,1
    - Dst: std::make_unique<SM2_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:272,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:275,1
    - Dst: Botan::SM2_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: Botan::SM2_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - Botan::SM2_PublicKey::algo_name
    - std::string_view::empty
    - std::make_unique<SM2_Verification_Operation>
    - parse_sm2_param_string
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> SM2_PublicKey::create_verification_op(std::string_view
      params,\n                                                                            std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:281,1
    - Dst: parse_sm2_param_string
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:284,1
    - Dst: std::make_unique<SM2_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:285,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:288,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 289
    functionName: Botan::SM2_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SM2_Signature_Operation>
    - algo_name
    - Provider_Not_Found
    - std::string_view::empty
    - parse_sm2_param_string
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> SM2_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                       std::string_view
      params,\n                                                                       std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: Botan::SM2_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string SM2_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::SM2_PublicKey::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> SM2_PublicKey::_signature_element_size_for_DER_encoding()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SM2_Signature_PublicKey>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:28,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:28,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan::SM2_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SM2_Signature_PublicKey>
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> SM2_PrivateKey::public_key() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:32,1
    - Dst: private_value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:41,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:41,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 50
    functionName: Botan::SM2_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - private_value
    - Botan::KeyPair::signature_consistency_check
    - Botan::EC_PrivateKey::check_key
    - domain
    linkageType: ''
    returnType: bool
    signature: bool SM2_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::one
    - invert
    - to_bigint
    - Botan::SM2_PrivateKey::_private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:59,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:59,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:59,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:59,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::one
    - invert
    - to_bigint
    - Botan::SM2_PrivateKey::_private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(const EC_Group& group, const EC_Scalar&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:64,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:64,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:64,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:64,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::one
    - invert
    - to_bigint
    - Botan::SM2_PrivateKey::_private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(RandomNumberGenerator& rng, const
      EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:69,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:69,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:69,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:69,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - ' group'
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::one
    - invert
    - to_bigint
    - Botan::SM2_PrivateKey::_private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(RandomNumberGenerator& rng, const
      EC_Group& group, const BigInt& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:77,1
    - Dst: Botan::sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' hash'
    - user_id
    - ' group'
    - ' pubkey'
    argTypes:
    - HashFunction
    - std::string_view
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: Botan::sm2_compute_za
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 2
    functionsReached:
    - EC_AffinePoint
    - Botan::sm2_compute_za
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> sm2_compute_za(HashFunction& hash,\n                                    std::string_view
      user_id,\n                                    const EC_Group& group,\n                                    const
      EC_Point& pubkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:86,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:87,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:90,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:90,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:92,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:92,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:93,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:93,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:94,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:96,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:98,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:98,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:99,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:99,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:100,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:100,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:102,1
    - Dst: Botan::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:102,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ' hash'
    - user_id
    - ' group'
    - ' pubkey'
    argTypes:
    - HashFunction
    - std::string_view
    - EC_Group
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: Botan::sm2_compute_za
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 2
    functionsReached:
    - get_g_x
    - get_b
    - Botan::Invalid_Argument
    - Botan::update
    - Botan::get_byte
    - static_cast<uint16_t>
    - get_p_bytes
    - Botan::xy_bytes
    - get_a
    - get_g_y
    - Botan::final
    - std::string_view::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> sm2_compute_za(HashFunction& hash,\n                                    std::string_view
      user_id,\n                                    const EC_Group& group,\n                                    const
      EC_AffinePoint& pubkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: _get_da_inv
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:119,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:121,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:121,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sm2'
    - ident
    - hash
    argTypes:
    - SM2_PrivateKey
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: Botan::SM2_Signature_Operation::SM2_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Signature_Operation::update
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - sm2_compute_za
    - domain
    - _get_da_inv
    - _private_key
    linkageType: ''
    returnType: void
    signature: void SM2_Signature_Operation(const SM2_PrivateKey& sm2, std::string_view
      ident, std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::SM2_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:130,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: Botan::SM2_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 8
    functionsReached:
    - Botan::SM2_Signature_Operation::update
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan::SM2_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:153,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:153,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:155,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:158,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:159,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:164,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:166,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 170
    functionName: Botan::SM2_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::gk_x_mod_order
    - Botan::SM2_Signature_Operation::update
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - final
    - clear
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SM2_Signature_Operation::sign(RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:178,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:178,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:182,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:184,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:184,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sm2'
    - ident
    - hash
    argTypes:
    - SM2_PublicKey
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: Botan::SM2_Verification_Operation::SM2_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - sm2_compute_za
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_Verification_Operation(const SM2_PublicKey& sm2, std::string_view
      ident, std::string_view hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:191,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: Botan::SM2_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 8
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan::SM2_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:214,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:217,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:218,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:223,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:224,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:226,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:226,1
    - Dst: auto::is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:228,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 235
    functionName: Botan::SM2_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - mul2_vartime_x_mod_order_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - final
    - is_nonzero
    - clear
    - auto::is_nonzero
    - auto::value
    linkageType: ''
    returnType: bool
    signature: bool SM2_Verification_Operation::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:251,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:255,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - params
    - ' userid'
    - ' hash'
    argTypes:
    - std::string_view
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 258
    functionName: Botan::parse_sm2_param_string
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::find
    - std::string_view::substr
    linkageType: ''
    returnType: void
    signature: void parse_sm2_param_string(std::string_view params, std::string& userid,
      std::string& hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: _get_da_inv
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:115,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:119,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:121,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:121,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sm2'
    - ident
    - hash
    argTypes:
    - SM2_PrivateKey
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: Botan::SM2_Signature_Operation::SM2_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Signature_Operation::update
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - sm2_compute_za
    - domain
    - _get_da_inv
    - _private_key
    linkageType: ''
    returnType: void
    signature: void SM2_Signature_Operation(const SM2_PrivateKey& sm2, std::string_view
      ident, std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::SM2_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:130,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: Botan::SM2_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 11
    functionsReached:
    - Botan::SM2_Signature_Operation::update
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan::SM2_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:153,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:153,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:155,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:158,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:159,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:164,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:166,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 170
    functionName: Botan::SM2_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::gk_x_mod_order
    - Botan::SM2_Signature_Operation::update
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - final
    - clear
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SM2_Signature_Operation::sign(RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:178,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:178,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:182,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:184,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:184,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' sm2'
    - ident
    - hash
    argTypes:
    - SM2_PublicKey
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: Botan::SM2_Verification_Operation::SM2_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - _public_ec_point
    - Botan::HashFunction::create_or_throw
    - sm2_compute_za
    - domain
    linkageType: ''
    returnType: void
    signature: void SM2_Verification_Operation(const SM2_PublicKey& sm2, std::string_view
      ident, std::string_view hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:191,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: Botan::SM2_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 11
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan::SM2_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:214,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:217,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:218,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:223,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:224,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:226,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:226,1
    - Dst: auto::is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:228,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 235
    functionName: Botan::SM2_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::SM2_Verification_Operation::update
    - mul2_vartime_x_mod_order_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - final
    - is_nonzero
    - clear
    - auto::is_nonzero
    - auto::value
    linkageType: ''
    returnType: bool
    signature: bool SM2_Verification_Operation::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:251,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:255,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - params
    - ' userid'
    - ' hash'
    argTypes:
    - std::string_view
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 258
    functionName: Botan::parse_sm2_param_string
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::find
    - std::string_view::substr
    linkageType: ''
    returnType: void
    signature: void parse_sm2_param_string(std::string_view params, std::string& userid,
      std::string& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SM2_PrivateKey>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:263,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Botan::SM2_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<SM2_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> SM2_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:268,1
    - Dst: parse_sm2_param_string
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:271,1
    - Dst: std::make_unique<SM2_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:272,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:275,1
    - Dst: Botan::SM2_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: Botan::SM2_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - Botan::SM2_PublicKey::algo_name
    - std::string_view::empty
    - std::make_unique<SM2_Verification_Operation>
    - parse_sm2_param_string
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> SM2_PublicKey::create_verification_op(std::string_view
      params,\n                                                                            std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:281,1
    - Dst: parse_sm2_param_string
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:284,1
    - Dst: std::make_unique<SM2_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:285,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:288,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 289
    functionName: Botan::SM2_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SM2_Signature_Operation>
    - algo_name
    - Provider_Not_Found
    - std::string_view::empty
    - parse_sm2_param_string
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> SM2_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                       std::string_view
      params,\n                                                                       std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:15,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:15,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:17,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:22,1
    - Dst: is_identity
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - group
    - pt
    argTypes:
    - EC_Group
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: Botan::EC_PublicKey_Data::EC_PublicKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ARG_CHECK
    - is_identity
    - to_legacy_point
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey_Data::EC_PublicKey_Data(EC_Group group, EC_AffinePoint
      pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:26,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:26,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:26,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:29,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - x
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: Botan::EC_PrivateKey_Data::EC_PrivateKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ARG_CHECK
    - to_bigint
    - is_nonzero
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data::EC_PrivateKey_Data(EC_Group group, EC_Scalar
      x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:35,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:37,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: Botan::decode_ec_secret_key_scalar
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:49,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:52,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:53,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 57
    functionName: Botan::decode_ec_secret_key_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Scalar::deserialize
    - Botan::copy_mem
    - last
    - auto::value
    - Botan::Decoding_Error
    - get_order_bytes
    - std::span<const uint8_t>::size
    - Botan::decode_ec_secret_key_scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar decode_ec_secret_key_scalar(const EC_Group& group, std::span<const
      uint8_t> bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:35,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:37,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: Botan::decode_ec_secret_key_scalar
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:49,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:52,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:53,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 57
    functionName: Botan::decode_ec_secret_key_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Scalar::deserialize
    - Botan::copy_mem
    - last
    - auto::value
    - Botan::Decoding_Error
    - get_order_bytes
    - std::span<const uint8_t>::size
    - Botan::decode_ec_secret_key_scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar decode_ec_secret_key_scalar(const EC_Group& group, std::span<const
      uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_ec_secret_key_scalar
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: Botan::EC_PrivateKey_Data::EC_PrivateKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 0
    functionsReached:
    - decode_ec_secret_key_scalar
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data::EC_PrivateKey_Data(const EC_Group& group,
      std::span<const uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zeroize
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: EC_PrivateKey_Data::~EC_PrivateKey_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 0
    functionsReached:
    - zeroize
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data::~EC_PrivateKey_Data()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:72,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:72,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:74,1
    - Dst: std::make_shared<EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:78,1
    - Dst: public_point
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - with_modular_inverse
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: Botan::EC_PrivateKey_Data::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<EC_PublicKey_Data>
    - Botan::EC_AffinePoint::g_mul
    - public_point
    - invert
    linkageType: ''
    returnType: std::shared_ptr<EC_PublicKey_Data>
    signature: "std::shared_ptr<EC_PublicKey_Data> EC_PrivateKey_Data::public_key(RandomNumberGenerator&
      rng,\n                                                                  bool
      with_modular_inverse) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey_Data::public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - with_modular_inverse
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan::EC_PrivateKey_Data::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_PrivateKey_Data::public_key
    linkageType: ''
    returnType: std::shared_ptr<EC_PublicKey_Data>
    signature: std::shared_ptr<EC_PublicKey_Data> EC_PrivateKey_Data::public_key(bool
      with_modular_inverse) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey_Data::serialize_to
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::EC_PrivateKey_Data::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_PrivateKey_Data::serialize_to
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data::serialize_to(std::span<uint8_t> output) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:15,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:15,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:17,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:22,1
    - Dst: is_identity
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - group
    - pt
    argTypes:
    - EC_Group
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: Botan::EC_PublicKey_Data::EC_PublicKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ARG_CHECK
    - is_identity
    - to_legacy_point
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey_Data::EC_PublicKey_Data(EC_Group group, EC_AffinePoint
      pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:26,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:26,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:26,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:29,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - x
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: Botan::EC_PrivateKey_Data::EC_PrivateKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ARG_CHECK
    - to_bigint
    - is_nonzero
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data::EC_PrivateKey_Data(EC_Group group, EC_Scalar
      x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:35,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:37,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: Botan::decode_ec_secret_key_scalar
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:49,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:52,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:53,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 57
    functionName: Botan::decode_ec_secret_key_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Scalar::deserialize
    - Botan::copy_mem
    - last
    - auto::value
    - Botan::Decoding_Error
    - get_order_bytes
    - std::span<const uint8_t>::size
    - Botan::decode_ec_secret_key_scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar decode_ec_secret_key_scalar(const EC_Group& group, std::span<const
      uint8_t> bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:35,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:37,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:48,1
    - Dst: Botan::decode_ec_secret_key_scalar
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:49,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:52,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:53,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 57
    functionName: Botan::decode_ec_secret_key_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::deserialize
    - Botan::copy_mem
    - last
    - auto::value
    - Botan::Decoding_Error
    - get_order_bytes
    - std::span<const uint8_t>::size
    - Botan::decode_ec_secret_key_scalar
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar decode_ec_secret_key_scalar(const EC_Group& group, std::span<const
      uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_ec_secret_key_scalar
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: Botan::EC_PrivateKey_Data::EC_PrivateKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 0
    functionsReached:
    - decode_ec_secret_key_scalar
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data::EC_PrivateKey_Data(const EC_Group& group,
      std::span<const uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zeroize
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: EC_PrivateKey_Data::~EC_PrivateKey_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 0
    functionsReached:
    - zeroize
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data::~EC_PrivateKey_Data()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:72,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:72,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:74,1
    - Dst: std::make_shared<EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:78,1
    - Dst: public_point
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - with_modular_inverse
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: Botan::EC_PrivateKey_Data::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 1
    functionsReached:
    - std::make_shared<EC_PublicKey_Data>
    - Botan::EC_AffinePoint::g_mul
    - public_point
    - invert
    linkageType: ''
    returnType: std::shared_ptr<EC_PublicKey_Data>
    signature: "std::shared_ptr<EC_PublicKey_Data> EC_PrivateKey_Data::public_key(RandomNumberGenerator&
      rng,\n                                                                  bool
      with_modular_inverse) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey_Data::public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - with_modular_inverse
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan::EC_PrivateKey_Data::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_PrivateKey_Data::public_key
    linkageType: ''
    returnType: std::shared_ptr<EC_PublicKey_Data>
    signature: std::shared_ptr<EC_PublicKey_Data> EC_PrivateKey_Data::public_key(bool
      with_modular_inverse) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey_Data::serialize_to
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::EC_PrivateKey_Data::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_PrivateKey_Data::serialize_to
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data::serialize_to(std::span<uint8_t> output) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::EC_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey(EC_PublicKey&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: ~EC_PublicKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EC_PublicKey() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::domain_format
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Encoding
    signature: EC_Group_Encoding domain_format() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan::point_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point_Format
    signature: EC_Point_Format point_encoding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::EC_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::EC_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey(EC_PublicKey&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: ~EC_PublicKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EC_PublicKey() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::domain_format
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group_Encoding
    signature: EC_Group_Encoding domain_format() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan::point_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point_Format
    signature: EC_Point_Format point_encoding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::EC_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: EC_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: Botan::EC_PublicKey_Data::EC_PublicKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached:
    - EC_AffinePoint
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey_Data(const EC_Group& group, std::span<const uint8_t>
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group & group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: '& public_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint & public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& legacy_point() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & legacy_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::EC_PrivateKey_Data::EC_PrivateKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data(const EC_PrivateKey_Data&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::EC_PrivateKey_Data::EC_PrivateKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data(EC_PrivateKey_Data&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(const EC_PrivateKey_Data&)'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_PrivateKey_Data
    signature: EC_PrivateKey_Data & operator=(const EC_PrivateKey_Data&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(EC_PrivateKey_Data&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_PrivateKey_Data
    signature: EC_PrivateKey_Data & operator=(EC_PrivateKey_Data&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey_Data::group
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h:67,1
    - Dst: Botan::EC_PrivateKey_Data::serialize_to
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: Botan::EC_PrivateKey_Data::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached:
    - Botan::EC_PrivateKey_Data::serialize_to
    - Botan::EC_PrivateKey_Data::group
    linkageType: ''
    returnType: T
    signature: T serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group & group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: '& private_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar & private_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: '& legacy_bigint() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & legacy_bigint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - bytes
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: Botan::EC_PublicKey_Data::EC_PublicKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached:
    - EC_AffinePoint
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey_Data(const EC_Group& group, std::span<const uint8_t>
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group & group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: '& public_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint & public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& legacy_point() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & legacy_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::EC_PrivateKey_Data::EC_PrivateKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data(const EC_PrivateKey_Data&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::EC_PrivateKey_Data::EC_PrivateKey_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey_Data(EC_PrivateKey_Data&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(const EC_PrivateKey_Data&)'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_PrivateKey_Data
    signature: EC_PrivateKey_Data & operator=(const EC_PrivateKey_Data&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(EC_PrivateKey_Data&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_PrivateKey_Data
    signature: EC_PrivateKey_Data & operator=(EC_PrivateKey_Data&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey_Data::group
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h:67,1
    - Dst: Botan::EC_PrivateKey_Data::serialize_to
      Src: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: Botan::EC_PrivateKey_Data::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached:
    - Botan::EC_PrivateKey_Data::serialize_to
    - Botan::EC_PrivateKey_Data::group
    linkageType: ''
    returnType: T
    signature: T serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group & group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: '& private_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar & private_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: '& legacy_bigint() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ec_key_data.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & legacy_bigint() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::EC_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - domain
    linkageType: ''
    returnType: size_t
    signature: size_t EC_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecp_work_factor
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:31,1
    - Dst: Botan::EC_PublicKey::key_length
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan::EC_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - ecp_work_factor
    - Botan::EC_PublicKey::key_length
    linkageType: ''
    returnType: size_t
    signature: size_t EC_PublicKey::estimated_strength() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_curve_oid
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Botan::default_encoding_for
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - get_curve_oid
    linkageType: ''
    returnType: EC_Group_Encoding
    signature: EC_Group_Encoding default_encoding_for(const EC_Group& group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_curve_oid
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Botan::default_encoding_for
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - get_curve_oid
    linkageType: ''
    returnType: EC_Group_Encoding
    signature: EC_Group_Encoding default_encoding_for(const EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:48,1
    - Dst: std::make_shared<const EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:49,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:49,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:50,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' pub_point'
    argTypes:
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: Botan::EC_PublicKey::EC_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<const EC_PublicKey_Data>
    - default_encoding_for
    - std::move
    - EC_AffinePoint
    - domain
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::EC_PublicKey(const EC_Group& group, const EC_Point&
      pub_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<const EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:55,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:56,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' pub_point'
    argTypes:
    - EC_Group
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan::EC_PublicKey::EC_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<const EC_PublicKey_Data>
    - domain
    - default_encoding_for
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::EC_PublicKey(const EC_Group& group, const EC_AffinePoint&
      pub_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<const EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:60,1
    - Dst: EC_Group
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:60,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:60,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:61,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Botan::EC_PublicKey::EC_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<const EC_PublicKey_Data>
    - default_encoding_for
    - parameters
    - domain
    - EC_Group
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::EC_PublicKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:65,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: '& EC_PublicKey::domain() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - group
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group & EC_PublicKey::domain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:71,1
    - Dst: legacy_point
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: '& EC_PublicKey::public_point() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - legacy_point
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_PublicKey::public_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:77,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: '& EC_PublicKey::_public_ec_point() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - public_key
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint & EC_PublicKey::_public_ec_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:83,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan::EC_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: bool
    signature: bool EC_PublicKey::check_key(RandomNumberGenerator& rng, bool /*strong*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:87,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:87,1
    - Dst: Botan::EC_PublicKey::DER_domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::EC_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - object_identifier
    - Botan::EC_PublicKey::DER_domain
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier EC_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:91,1
    - Dst: point_encoding
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::EC_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - point_encoding
    - _public_ec_point
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::EC_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:99,1
    - Dst: domain_format
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::EC_PublicKey::DER_domain
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 1
    functionsReached:
    - domain
    - domain_format
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_PublicKey::DER_domain() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - enc
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: Botan::EC_PublicKey::set_point_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::set_point_encoding(EC_Point_Format enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:111,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - form
    argTypes:
    - EC_Group_Encoding
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: Botan::EC_PublicKey::set_parameter_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - domain
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::set_parameter_encoding(EC_Group_Encoding form)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:119,1
    - Dst: legacy_bigint
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: '& EC_PrivateKey::private_value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - legacy_bigint
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_PrivateKey::private_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:124,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: '& EC_PrivateKey::_private_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - private_key
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar & EC_PrivateKey::_private_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:135,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:135,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:135,1
    - Dst: std::make_shared<EC_PrivateKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:136,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:136,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:137,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:138,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' rng'
    - ' ec_group'
    - ' x'
    - with_modular_inverse
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: Botan::EC_PrivateKey::EC_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - default_encoding_for
    - Botan::EC_Scalar::random
    - std::move
    - is_zero
    - Botan::EC_Scalar::from_bigint
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    - domain
    linkageType: ''
    returnType: void
    signature: "void EC_PrivateKey::EC_PrivateKey(RandomNumberGenerator& rng,\n                             const
      EC_Group& ec_group,\n                             const BigInt& x,\n                             bool
      with_modular_inverse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:142,1
    - Dst: std::make_shared<EC_PrivateKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:143,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:143,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:144,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:145,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' rng'
    - ' ec_group'
    - with_modular_inverse
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: Botan::EC_PrivateKey::EC_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - default_encoding_for
    - Botan::EC_Scalar::random
    - std::move
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    - domain
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey::EC_PrivateKey(RandomNumberGenerator& rng, const
      EC_Group& ec_group, bool with_modular_inverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<EC_PrivateKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:149,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:150,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:151,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' ec_group'
    - ' x'
    - with_modular_inverse
    argTypes:
    - EC_Group
    - EC_Scalar
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: Botan::EC_PrivateKey::EC_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - domain
    - default_encoding_for
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey::EC_PrivateKey(const EC_Group& ec_group, const EC_Scalar&
      x, bool with_modular_inverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:155,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Botan::EC_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - serialize
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:160,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:162,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:164,1
    - Dst: Botan::EC_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:165,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: Botan::EC_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - static_cast<size_t>
    - public_key
    - Botan::EC_PrivateKey::raw_private_key_bits
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_PrivateKey::private_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:176,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:182,1
    - Dst: ASN1_Type
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:186,1
    - Dst: std::make_shared<EC_PrivateKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:190,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:192,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:193,1
    - Dst: std::make_shared<EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:195,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:198,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' alg_id'
    - key_bits
    - with_modular_inverse
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 199
    functionName: Botan::EC_PrivateKey::EC_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - ASN1_Type
    - default_encoding_for
    - secure_vector::empty
    - parameters
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    - std::make_shared<EC_PublicKey_Data>
    - domain
    linkageType: ''
    returnType: void
    signature: "void EC_PrivateKey::EC_PrivateKey(const AlgorithmIdentifier& alg_id,\n
      \                            std::span<const uint8_t> key_bits,\n                             bool
      with_modular_inverse)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: Botan::EC_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_PublicKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool EC_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:211,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:211,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:213,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:215,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:217,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:219,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:221,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:223,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:225,1
    - Dst: Public_Key::get_int_field
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:227,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 229
    functionName: '& EC_PublicKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - Public_Key::get_int_field
    - '& EC_PublicKey::get_int_field(std::domain'
    - Not_Implemented
    - fmt
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_PublicKey::get_int_field(std::string_view field) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: '& EC_PrivateKey::get_int_field(std::private_value'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:233,1
    - Dst: EC_PublicKey::get_int_field
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: '& EC_PrivateKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - '& EC_PrivateKey::get_int_field(std::private_value'
    - EC_PublicKey::get_int_field
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_PrivateKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Botan::EC_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 1
    functionsReached:
    - domain
    linkageType: ''
    returnType: size_t
    signature: size_t EC_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecp_work_factor
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:31,1
    - Dst: Botan::EC_PublicKey::key_length
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan::EC_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - ecp_work_factor
    - Botan::EC_PublicKey::key_length
    linkageType: ''
    returnType: size_t
    signature: size_t EC_PublicKey::estimated_strength() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_curve_oid
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Botan::default_encoding_for
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - get_curve_oid
    linkageType: ''
    returnType: EC_Group_Encoding
    signature: EC_Group_Encoding default_encoding_for(const EC_Group& group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_curve_oid
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Botan::default_encoding_for
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - get_curve_oid
    linkageType: ''
    returnType: EC_Group_Encoding
    signature: EC_Group_Encoding default_encoding_for(const EC_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:48,1
    - Dst: std::make_shared<const EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:49,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:49,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:50,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' pub_point'
    argTypes:
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: Botan::EC_PublicKey::EC_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<const EC_PublicKey_Data>
    - default_encoding_for
    - std::move
    - EC_AffinePoint
    - domain
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::EC_PublicKey(const EC_Group& group, const EC_Point&
      pub_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<const EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:55,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:56,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' pub_point'
    argTypes:
    - EC_Group
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan::EC_PublicKey::EC_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<const EC_PublicKey_Data>
    - domain
    - default_encoding_for
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::EC_PublicKey(const EC_Group& group, const EC_AffinePoint&
      pub_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<const EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:60,1
    - Dst: EC_Group
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:60,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:60,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:61,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Botan::EC_PublicKey::EC_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<const EC_PublicKey_Data>
    - default_encoding_for
    - parameters
    - domain
    - EC_Group
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::EC_PublicKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:65,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: '& EC_PublicKey::domain() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - group
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group & EC_PublicKey::domain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:71,1
    - Dst: legacy_point
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: '& EC_PublicKey::public_point() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - legacy_point
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: EC_Point
    signature: EC_Point & EC_PublicKey::public_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:77,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: '& EC_PublicKey::_public_ec_point() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - public_key
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: EC_AffinePoint
    signature: EC_AffinePoint & EC_PublicKey::_public_ec_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:83,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan::EC_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 1
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: bool
    signature: bool EC_PublicKey::check_key(RandomNumberGenerator& rng, bool /*strong*/)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:87,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:87,1
    - Dst: Botan::EC_PublicKey::DER_domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::EC_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - object_identifier
    - Botan::EC_PublicKey::DER_domain
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier EC_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:91,1
    - Dst: point_encoding
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::EC_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 1
    functionsReached:
    - point_encoding
    - _public_ec_point
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::EC_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:99,1
    - Dst: domain_format
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::EC_PublicKey::DER_domain
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 2
    functionsReached:
    - domain
    - domain_format
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> EC_PublicKey::DER_domain() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - enc
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: Botan::EC_PublicKey::set_point_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::set_point_encoding(EC_Point_Format enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:111,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - form
    argTypes:
    - EC_Group_Encoding
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: Botan::EC_PublicKey::set_parameter_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - domain
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::set_parameter_encoding(EC_Group_Encoding form)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:119,1
    - Dst: legacy_bigint
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: '& EC_PrivateKey::private_value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - legacy_bigint
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_PrivateKey::private_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:124,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: '& EC_PrivateKey::_private_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - private_key
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar & EC_PrivateKey::_private_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:135,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:135,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:135,1
    - Dst: std::make_shared<EC_PrivateKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:136,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:136,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:137,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:138,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' rng'
    - ' ec_group'
    - ' x'
    - with_modular_inverse
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: Botan::EC_PrivateKey::EC_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - default_encoding_for
    - Botan::EC_Scalar::random
    - std::move
    - is_zero
    - Botan::EC_Scalar::from_bigint
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    - domain
    linkageType: ''
    returnType: void
    signature: "void EC_PrivateKey::EC_PrivateKey(RandomNumberGenerator& rng,\n                             const
      EC_Group& ec_group,\n                             const BigInt& x,\n                             bool
      with_modular_inverse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:142,1
    - Dst: std::make_shared<EC_PrivateKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:143,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:143,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:144,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:145,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' rng'
    - ' ec_group'
    - with_modular_inverse
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: Botan::EC_PrivateKey::EC_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - default_encoding_for
    - Botan::EC_Scalar::random
    - std::move
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    - domain
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey::EC_PrivateKey(RandomNumberGenerator& rng, const
      EC_Group& ec_group, bool with_modular_inverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<EC_PrivateKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:149,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:150,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:151,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' ec_group'
    - ' x'
    - with_modular_inverse
    argTypes:
    - EC_Group
    - EC_Scalar
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: Botan::EC_PrivateKey::EC_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - domain
    - default_encoding_for
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey::EC_PrivateKey(const EC_Group& ec_group, const EC_Scalar&
      x, bool with_modular_inverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:155,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Botan::EC_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 1
    functionsReached:
    - serialize
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:160,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:162,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:164,1
    - Dst: Botan::EC_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:165,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: Botan::EC_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - static_cast<size_t>
    - public_key
    - Botan::EC_PrivateKey::raw_private_key_bits
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> EC_PrivateKey::private_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:176,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:182,1
    - Dst: ASN1_Type
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:186,1
    - Dst: std::make_shared<EC_PrivateKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:190,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:192,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:193,1
    - Dst: std::make_shared<EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:195,1
    - Dst: default_encoding_for
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:198,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' alg_id'
    - key_bits
    - with_modular_inverse
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 199
    functionName: Botan::EC_PrivateKey::EC_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - ASN1_Type
    - default_encoding_for
    - secure_vector::empty
    - parameters
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    - std::make_shared<EC_PublicKey_Data>
    - domain
    linkageType: ''
    returnType: void
    signature: "void EC_PrivateKey::EC_PrivateKey(const AlgorithmIdentifier& alg_id,\n
      \                            std::span<const uint8_t> key_bits,\n                             bool
      with_modular_inverse)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: Botan::EC_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_PublicKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool EC_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:211,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:211,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:213,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:215,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:217,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:219,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:221,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:223,1
    - Dst: '& EC_PublicKey::get_int_field(std::domain'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:225,1
    - Dst: Public_Key::get_int_field
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:227,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 229
    functionName: '& EC_PublicKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - Public_Key::get_int_field
    - '& EC_PublicKey::get_int_field(std::domain'
    - Not_Implemented
    - fmt
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_PublicKey::get_int_field(std::string_view field) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: '& EC_PrivateKey::get_int_field(std::private_value'
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:233,1
    - Dst: EC_PublicKey::get_int_field
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: '& EC_PrivateKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp
    functionUses: 0
    functionsReached:
    - '& EC_PrivateKey::get_int_field(std::private_value'
    - EC_PublicKey::get_int_field
    linkageType: ''
    returnType: BigInt
    signature: BigInt & EC_PrivateKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::curve25519_donna
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mypublic
    - secret
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: Botan::curve25519_basepoint
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::curve25519_donna
    linkageType: ''
    returnType: void
    signature: void curve25519_basepoint(uint8_t mypublic[32], const uint8_t secret[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:28,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - size
    - thing
    argTypes:
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::size_check
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::Decoding_Error
    - Botan::fmt
    linkageType: ''
    returnType: void
    signature: void size_check(size_t size, const char* thing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::curve25519_donna
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' secret'
    - pubval
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan::curve25519
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::curve25519_donna
    - Botan::data
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> curve25519(const secure_vector<uint8_t>& secret,
      const uint8_t pubval[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:28,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - size
    - thing
    argTypes:
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::size_check
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::Decoding_Error
    - Botan::fmt
    linkageType: ''
    returnType: void
    signature: void size_check(size_t size, const char* thing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::curve25519_donna
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' secret'
    - pubval
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan::curve25519
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::curve25519_donna
    - Botan::data
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> curve25519(const secure_vector<uint8_t>& secret,
      const uint8_t pubval[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:41,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::X25519_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - object_identifier
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier X25519_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan::X25519_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool X25519_PublicKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: Botan::X25519_PublicKey::X25519_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519_PublicKey::X25519_PublicKey(const AlgorithmIdentifier&
      /*unused*/, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:52,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:52,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:52,1
    - Dst: size_check
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:54,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pub
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Botan::X25519_PublicKey::X25519_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - size_check
    - std::span<const uint8_t>::begin
    - size
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void X25519_PublicKey::X25519_PublicKey(std::span<const uint8_t> pub)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::X25519_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> X25519_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X25519_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::X25519_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::X25519_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> X25519_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::X25519_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<X25519_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> X25519_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:70,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:71,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:74,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:75,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:75,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:75,1
    - Dst: curve25519_basepoint
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:76,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:76,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - secret_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: Botan::X25519_PrivateKey::X25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - Decoding_Error
    - std::span<const uint8_t>::begin
    - curve25519_basepoint
    - std::span<const uint8_t>::size
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void X25519_PrivateKey::X25519_PrivateKey(std::span<const uint8_t>
      secret_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:80,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:81,1
    - Dst: curve25519_basepoint
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:82,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:82,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: Botan::X25519_PrivateKey::X25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - data
    - resize
    - random_vec
    - curve25519_basepoint
    linkageType: ''
    returnType: void
    signature: void X25519_PrivateKey::X25519_PrivateKey(RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:86,1
    - Dst: size_check
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:88,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:89,1
    - Dst: curve25519_basepoint
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:90,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:90,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: Botan::X25519_PrivateKey::X25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - size_check
    - resize
    - data
    - size
    - curve25519_basepoint
    linkageType: ''
    returnType: void
    signature: void X25519_PrivateKey::X25519_PrivateKey(const AlgorithmIdentifier&
      /*unused*/, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:94,1
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan::X25519_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - public_value
    - std::make_unique<X25519_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> X25519_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Botan::X25519_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> X25519_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curve25519_basepoint
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:103,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:103,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: Botan::X25519_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - data
    - curve25519_basepoint
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool X25519_PrivateKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size_check
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:108,1
    - Dst: curve25519
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: Botan::X25519_PrivateKey::agree
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - size_check
    - curve25519
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> X25519_PrivateKey::agree(const uint8_t w[],
      size_t w_len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - X25519_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: Botan::X25519_KA_Operation::X25519_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519_KA_Operation(const X25519_PrivateKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::X25519_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: agree
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:125,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: Botan::X25519_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - auto::data
    - auto::size
    - agree
    - Botan::CT::all_zeros
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_agree(const uint8_t w[], size_t w_len) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - X25519_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: Botan::X25519_KA_Operation::X25519_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519_KA_Operation(const X25519_PrivateKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::X25519_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: agree
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:125,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: Botan::X25519_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - auto::data
    - auto::size
    - agree
    - Botan::CT::all_zeros
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_agree(const uint8_t w[], size_t w_len) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:152,1
    - Dst: std::make_unique<X25519_KA_Operation>
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:153,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:155,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: Botan::X25519_PrivateKey::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<X25519_KA_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> X25519_PrivateKey::create_key_agreement_op(RandomNumberGenerator&
      /*rng*/,\n                                                                                  std::string_view
      params,\n                                                                                  std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::curve25519_donna
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mypublic
    - secret
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: Botan::curve25519_basepoint
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::curve25519_donna
    linkageType: ''
    returnType: void
    signature: void curve25519_basepoint(uint8_t mypublic[32], const uint8_t secret[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:28,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - size
    - thing
    argTypes:
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::size_check
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::Decoding_Error
    - Botan::fmt
    linkageType: ''
    returnType: void
    signature: void size_check(size_t size, const char* thing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::curve25519_donna
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' secret'
    - pubval
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan::curve25519
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::curve25519_donna
    - Botan::data
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> curve25519(const secure_vector<uint8_t>& secret,
      const uint8_t pubval[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:28,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - size
    - thing
    argTypes:
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::size_check
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::Decoding_Error
    - Botan::fmt
    linkageType: ''
    returnType: void
    signature: void size_check(size_t size, const char* thing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::curve25519_donna
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' secret'
    - pubval
    argTypes:
    - secure_vector<uint8_t>
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Botan::curve25519
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::curve25519_donna
    - Botan::data
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> curve25519(const secure_vector<uint8_t>& secret,
      const uint8_t pubval[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:41,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::X25519_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - object_identifier
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier X25519_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan::X25519_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool X25519_PublicKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: Botan::X25519_PublicKey::X25519_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519_PublicKey::X25519_PublicKey(const AlgorithmIdentifier&
      /*unused*/, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:52,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:52,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:52,1
    - Dst: size_check
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:54,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pub
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Botan::X25519_PublicKey::X25519_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - size_check
    - std::span<const uint8_t>::begin
    - size
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void X25519_PublicKey::X25519_PublicKey(std::span<const uint8_t> pub)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::X25519_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> X25519_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X25519_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::X25519_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan::X25519_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> X25519_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::X25519_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<X25519_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> X25519_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:70,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:71,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:74,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:75,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:75,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:75,1
    - Dst: curve25519_basepoint
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:76,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:76,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - secret_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: Botan::X25519_PrivateKey::X25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - resize
    - data
    - Decoding_Error
    - std::span<const uint8_t>::begin
    - curve25519_basepoint
    - std::span<const uint8_t>::size
    - assign
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void X25519_PrivateKey::X25519_PrivateKey(std::span<const uint8_t>
      secret_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:80,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:81,1
    - Dst: curve25519_basepoint
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:82,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:82,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: Botan::X25519_PrivateKey::X25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - data
    - resize
    - random_vec
    - curve25519_basepoint
    linkageType: ''
    returnType: void
    signature: void X25519_PrivateKey::X25519_PrivateKey(RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:86,1
    - Dst: size_check
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:88,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:89,1
    - Dst: curve25519_basepoint
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:90,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:90,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: Botan::X25519_PrivateKey::X25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - size_check
    - resize
    - data
    - size
    - curve25519_basepoint
    linkageType: ''
    returnType: void
    signature: void X25519_PrivateKey::X25519_PrivateKey(const AlgorithmIdentifier&
      /*unused*/, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:94,1
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan::X25519_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - public_value
    - std::make_unique<X25519_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> X25519_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Botan::X25519_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> X25519_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curve25519_basepoint
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:103,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:103,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: Botan::X25519_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - data
    - curve25519_basepoint
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool X25519_PrivateKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size_check
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:108,1
    - Dst: curve25519
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: Botan::X25519_PrivateKey::agree
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - size_check
    - curve25519
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> X25519_PrivateKey::agree(const uint8_t w[],
      size_t w_len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - X25519_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: Botan::X25519_KA_Operation::X25519_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519_KA_Operation(const X25519_PrivateKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::X25519_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: agree
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:125,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: Botan::X25519_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - auto::data
    - auto::size
    - agree
    - Botan::CT::all_zeros
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_agree(const uint8_t w[], size_t w_len) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - X25519_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: Botan::X25519_KA_Operation::X25519_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519_KA_Operation(const X25519_PrivateKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::X25519_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: agree
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:125,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:136,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: Botan::X25519_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - auto::data
    - auto::size
    - agree
    - Botan::CT::all_zeros
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_agree(const uint8_t w[], size_t w_len) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:152,1
    - Dst: std::make_unique<X25519_KA_Operation>
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:153,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:155,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/x25519/x25519.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: Botan::X25519_PrivateKey::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<X25519_KA_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> X25519_PrivateKey::create_key_agreement_op(RandomNumberGenerator&
      /*rng*/,\n                                                                                  std::string_view
      params,\n                                                                                  std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/x25519/x25519.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.h
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/x25519/x25519.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Botan::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.h
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/x25519/x25519.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: public_value
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.h
    functionUses: 68
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_private_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: get_x
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/x25519.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & get_x() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: Botan::fsum
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsum(uint64_t out[5], const uint64_t in[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:66,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: Botan::fdifference_backwards
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void fdifference_backwards(uint64_t out[5], const uint64_t in[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:79,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:80,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan::fadd_sub
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::fsum
    - Botan::fdifference_backwards
    linkageType: ''
    returnType: void
    signature: void fadd_sub(uint64_t x[5], uint64_t y[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:88,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:91,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:91,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:94,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:94,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:97,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:97,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:100,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:100,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - out
    - in
    - scalar
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: Botan::fscalar_product
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fscalar_product(uint64_t out[5], const uint64_t in[5], const uint64_t
      scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:115,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:116,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:117,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:118,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:119,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:144,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:146,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:148,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:150,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 3
    argNames:
    - out
    - in
    - in2
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 167
    functionName: Botan::fmul
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fmul(uint64_t out[5], const uint64_t in[5], const uint64_t in2[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:190,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:192,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:194,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:196,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 214
    functionName: Botan::fsquare
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fsquare(uint64_t out[5], const uint64_t in[5], size_t count =
      1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:218,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:219,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:220,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:221,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: Botan::fexpand
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: void
    signature: void fexpand(uint64_t* out, const uint8_t* in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:229,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:230,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:231,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:232,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:233,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:284,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:285,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:286,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:287,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - uint8_t*
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 289
    functionName: Botan::fcontract
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::combine_lower
    - Botan::store_le
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fcontract(uint8_t* out, const uint64_t input[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:316,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:317,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:319,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:320,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:322,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:324,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:325,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:326,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:328,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:329,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:330,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:332,1
    - Dst: Botan::fscalar_product
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:333,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:334,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 9
    argNames:
    - result_two_q_x
    - result_two_q_z
    - result_q_plus_q_dash_x
    - result_q_plus_q_dash_z
    - in_q_x
    - in_q_z
    - in_q_dash_x
    - in_q_dash_z
    - q_minus_q_dash
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 337
    functionName: Botan::fmonty
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::fscalar_product
    - Botan::fadd_sub
    - Botan::fmul
    - Botan::fsum
    - Botan::fdifference_backwards
    - Botan::fsquare
    linkageType: ''
    returnType: void
    signature: "void fmonty(uint64_t result_two_q_x[5],\n            uint64_t result_two_q_z[5],\n
      \           uint64_t result_q_plus_q_dash_x[5],\n            uint64_t result_q_plus_q_dash_z[5],\n
      \           uint64_t in_q_x[5],\n            uint64_t in_q_z[5],\n            uint64_t
      in_q_dash_x[5],\n            uint64_t in_q_dash_z[5],\n            const uint64_t
      q_minus_q_dash[5])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:348,1
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - a
    - b
    - c
    - d
    - swap
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - CT::Mask<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: Botan::swap_conditional
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - CT::Mask<uint64_t>::if_set_return
    linkageType: ''
    returnType: void
    signature: void swap_conditional(uint64_t a[5], uint64_t b[5], uint64_t c[5],
      uint64_t d[5], CT::Mask<uint64_t> swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:374,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:378,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:379,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:380,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:381,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:382,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:383,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:384,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:385,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:387,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:388,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:390,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:391,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:393,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:394,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:396,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:397,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:399,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:400,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:402,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:403,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:405,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:406,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:408,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:409,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:411,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:414,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 4
    argNames:
    - resultx
    - resultz
    - n
    - q
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint8_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 416
    functionName: Botan::cmult
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmonty
    - Botan::copy_mem
    - Botan::swap_conditional
    - Botan::CT::Mask::expand_bit
    linkageType: ''
    returnType: void
    signature: void cmult(uint64_t resultx[5], uint64_t resultz[5], const uint8_t
      n[32], const uint64_t q[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:427,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:428,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:429,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:430,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:431,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:432,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:433,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:434,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:435,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:436,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:437,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:438,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:439,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:440,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:441,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:442,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:443,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:444,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:445,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:446,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:447,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 449
    functionName: Botan::crecip
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmul
    - Botan::fsquare
    linkageType: ''
    returnType: void
    signature: void crecip(uint64_t out[5], const uint64_t z[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: Botan::fsum
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsum(uint64_t out[5], const uint64_t in[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:66,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: Botan::fdifference_backwards
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void fdifference_backwards(uint64_t out[5], const uint64_t in[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:79,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:80,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan::fadd_sub
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::copy_mem
    - Botan::fsum
    - Botan::fdifference_backwards
    linkageType: ''
    returnType: void
    signature: void fadd_sub(uint64_t x[5], uint64_t y[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:88,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:91,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:91,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:94,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:94,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:97,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:97,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:100,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:100,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - out
    - in
    - scalar
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: Botan::fscalar_product
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fscalar_product(uint64_t out[5], const uint64_t in[5], const uint64_t
      scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:115,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:116,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:117,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:118,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:119,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:144,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:146,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:148,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:150,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 3
    argNames:
    - out
    - in
    - in2
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 167
    functionName: Botan::fmul
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fmul(uint64_t out[5], const uint64_t in[5], const uint64_t in2[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:190,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:192,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:194,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:196,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 214
    functionName: Botan::fsquare
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fsquare(uint64_t out[5], const uint64_t in[5], size_t count =
      1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:218,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:219,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:220,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:221,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: Botan::fexpand
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: void
    signature: void fexpand(uint64_t* out, const uint8_t* in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:229,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:230,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:231,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:232,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:233,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:284,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:285,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:286,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:287,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - uint8_t*
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 289
    functionName: Botan::fcontract
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::combine_lower
    - Botan::store_le
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fcontract(uint8_t* out, const uint64_t input[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:316,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:317,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:319,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:320,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:322,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:324,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:325,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:326,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:328,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:329,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:330,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:332,1
    - Dst: Botan::fscalar_product
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:333,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:334,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 9
    argNames:
    - result_two_q_x
    - result_two_q_z
    - result_q_plus_q_dash_x
    - result_q_plus_q_dash_z
    - in_q_x
    - in_q_z
    - in_q_dash_x
    - in_q_dash_z
    - q_minus_q_dash
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 337
    functionName: Botan::fmonty
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::fscalar_product
    - Botan::fadd_sub
    - Botan::fmul
    - Botan::fsum
    - Botan::fdifference_backwards
    - Botan::fsquare
    linkageType: ''
    returnType: void
    signature: "void fmonty(uint64_t result_two_q_x[5],\n            uint64_t result_two_q_z[5],\n
      \           uint64_t result_q_plus_q_dash_x[5],\n            uint64_t result_q_plus_q_dash_z[5],\n
      \           uint64_t in_q_x[5],\n            uint64_t in_q_z[5],\n            uint64_t
      in_q_dash_x[5],\n            uint64_t in_q_dash_z[5],\n            const uint64_t
      q_minus_q_dash[5])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:348,1
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - a
    - b
    - c
    - d
    - swap
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - CT::Mask<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: Botan::swap_conditional
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - CT::Mask<uint64_t>::if_set_return
    linkageType: ''
    returnType: void
    signature: void swap_conditional(uint64_t a[5], uint64_t b[5], uint64_t c[5],
      uint64_t d[5], CT::Mask<uint64_t> swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:374,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:378,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:379,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:380,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:381,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:382,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:383,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:384,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:385,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:387,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:388,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:390,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:391,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:393,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:394,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:396,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:397,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:399,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:400,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:402,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:403,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:405,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:406,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:408,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:409,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:411,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:414,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 4
    argNames:
    - resultx
    - resultz
    - n
    - q
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint8_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 416
    functionName: Botan::cmult
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmonty
    - Botan::copy_mem
    - Botan::swap_conditional
    - Botan::CT::Mask::expand_bit
    linkageType: ''
    returnType: void
    signature: void cmult(uint64_t resultx[5], uint64_t resultz[5], const uint8_t
      n[32], const uint64_t q[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:427,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:428,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:429,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:430,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:431,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:432,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:433,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:434,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:435,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:436,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:437,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:438,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:439,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:440,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:441,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:442,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:443,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:444,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:445,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:446,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:447,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 449
    functionName: Botan::crecip
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmul
    - Botan::fsquare
    linkageType: ''
    returnType: void
    signature: void crecip(uint64_t out[5], const uint64_t z[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:454,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:455,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:463,1
    - Dst: Botan::fexpand
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:468,1
    - Dst: Botan::cmult
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:469,1
    - Dst: Botan::crecip
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:470,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:471,1
    - Dst: Botan::fcontract
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:472,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:474,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:475,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - mypublic
    - secret
    - basepoint
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 453
    functionDepth: 4
    functionLinenumber: 453
    functionLinenumberEnd: 477
    functionName: Botan::curve25519_donna
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 6
    functionsReached:
    - Botan::copy_mem
    - Botan::fmul
    - Botan::fexpand
    - Botan::crecip
    - Botan::CT::poison
    - Botan::fcontract
    - Botan::CT::unpoison
    - Botan::cmult
    linkageType: ''
    returnType: void
    signature: void curve25519_donna(uint8_t mypublic[32], const uint8_t secret[32],
      const uint8_t basepoint[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: Botan::fsum
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsum(uint64_t out[5], const uint64_t in[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:66,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: Botan::fdifference_backwards
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void fdifference_backwards(uint64_t out[5], const uint64_t in[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:79,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:80,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan::fadd_sub
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached:
    - Botan::copy_mem
    - Botan::fsum
    - Botan::fdifference_backwards
    linkageType: ''
    returnType: void
    signature: void fadd_sub(uint64_t x[5], uint64_t y[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:88,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:91,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:91,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:94,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:94,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:97,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:97,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:100,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:100,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - out
    - in
    - scalar
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: Botan::fscalar_product
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fscalar_product(uint64_t out[5], const uint64_t in[5], const uint64_t
      scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:115,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:116,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:117,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:118,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:119,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:144,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:146,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:148,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:150,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 3
    argNames:
    - out
    - in
    - in2
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 167
    functionName: Botan::fmul
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 5
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fmul(uint64_t out[5], const uint64_t in[5], const uint64_t in2[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:190,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:192,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:194,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:196,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 214
    functionName: Botan::fsquare
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 4
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fsquare(uint64_t out[5], const uint64_t in[5], size_t count =
      1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:218,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:219,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:220,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:221,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: Botan::fexpand
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: void
    signature: void fexpand(uint64_t* out, const uint8_t* in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:229,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:230,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:231,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:232,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:233,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:284,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:285,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:286,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:287,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - uint8_t*
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 289
    functionName: Botan::fcontract
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::combine_lower
    - Botan::store_le
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fcontract(uint8_t* out, const uint64_t input[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:316,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:317,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:319,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:320,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:322,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:324,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:325,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:326,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:328,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:329,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:330,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:332,1
    - Dst: Botan::fscalar_product
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:333,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:334,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 9
    argNames:
    - result_two_q_x
    - result_two_q_z
    - result_q_plus_q_dash_x
    - result_q_plus_q_dash_z
    - in_q_x
    - in_q_z
    - in_q_dash_x
    - in_q_dash_z
    - q_minus_q_dash
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 337
    functionName: Botan::fmonty
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached:
    - Botan::fscalar_product
    - Botan::fadd_sub
    - Botan::fmul
    - Botan::fsum
    - Botan::fdifference_backwards
    - Botan::fsquare
    linkageType: ''
    returnType: void
    signature: "void fmonty(uint64_t result_two_q_x[5],\n            uint64_t result_two_q_z[5],\n
      \           uint64_t result_q_plus_q_dash_x[5],\n            uint64_t result_q_plus_q_dash_z[5],\n
      \           uint64_t in_q_x[5],\n            uint64_t in_q_z[5],\n            uint64_t
      in_q_dash_x[5],\n            uint64_t in_q_dash_z[5],\n            const uint64_t
      q_minus_q_dash[5])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:348,1
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - a
    - b
    - c
    - d
    - swap
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - CT::Mask<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: Botan::swap_conditional
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached:
    - CT::Mask<uint64_t>::if_set_return
    linkageType: ''
    returnType: void
    signature: void swap_conditional(uint64_t a[5], uint64_t b[5], uint64_t c[5],
      uint64_t d[5], CT::Mask<uint64_t> swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:374,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:378,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:379,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:380,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:381,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:382,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:383,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:384,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:385,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:387,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:388,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:390,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:391,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:393,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:394,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:396,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:397,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:399,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:400,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:402,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:403,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:405,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:406,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:408,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:409,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:411,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:414,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 4
    argNames:
    - resultx
    - resultz
    - n
    - q
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint8_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 416
    functionName: Botan::cmult
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmonty
    - Botan::copy_mem
    - Botan::swap_conditional
    - Botan::CT::Mask::expand_bit
    linkageType: ''
    returnType: void
    signature: void cmult(uint64_t resultx[5], uint64_t resultz[5], const uint8_t
      n[32], const uint64_t q[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:427,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:428,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:429,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:430,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:431,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:432,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:433,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:434,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:435,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:436,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:437,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:438,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:439,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:440,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:441,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:442,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:443,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:444,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:445,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:446,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:447,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 449
    functionName: Botan::crecip
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmul
    - Botan::fsquare
    linkageType: ''
    returnType: void
    signature: void crecip(uint64_t out[5], const uint64_t z[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: Botan::fsum
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsum(uint64_t out[5], const uint64_t in[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:66,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: Botan::fdifference_backwards
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 6
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void fdifference_backwards(uint64_t out[5], const uint64_t in[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:79,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:80,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: Botan::fadd_sub
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 3
    functionsReached:
    - Botan::copy_mem
    - Botan::fsum
    - Botan::fdifference_backwards
    linkageType: ''
    returnType: void
    signature: void fadd_sub(uint64_t x[5], uint64_t y[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:88,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:91,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:91,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:94,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:94,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:97,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:97,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:100,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:100,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - out
    - in
    - scalar
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: Botan::fscalar_product
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 3
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fscalar_product(uint64_t out[5], const uint64_t in[5], const uint64_t
      scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:115,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:116,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:117,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:118,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:119,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:144,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:146,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:148,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:150,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 3
    argNames:
    - out
    - in
    - in2
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 167
    functionName: Botan::fmul
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 7
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fmul(uint64_t out[5], const uint64_t in[5], const uint64_t in2[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:183,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:184,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:185,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:186,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:187,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:190,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:192,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:194,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:196,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 214
    functionName: Botan::fsquare
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 6
    functionsReached:
    - Botan::carry_shift
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fsquare(uint64_t out[5], const uint64_t in[5], size_t count =
      1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:218,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:219,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:220,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:221,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: Botan::fexpand
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: void
    signature: void fexpand(uint64_t* out, const uint8_t* in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:229,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:230,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:231,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:232,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:233,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:284,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:285,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:286,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:287,1
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - uint8_t*
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 289
    functionName: Botan::fcontract
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::combine_lower
    - Botan::store_le
    - uint128_t
    linkageType: ''
    returnType: void
    signature: void fcontract(uint8_t* out, const uint64_t input[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:316,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:317,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:319,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:320,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:322,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:324,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:325,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:326,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:328,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:329,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:330,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:332,1
    - Dst: Botan::fscalar_product
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:333,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:334,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 9
    argNames:
    - result_two_q_x
    - result_two_q_z
    - result_q_plus_q_dash_x
    - result_q_plus_q_dash_z
    - in_q_x
    - in_q_z
    - in_q_dash_x
    - in_q_dash_z
    - q_minus_q_dash
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 337
    functionName: Botan::fmonty
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 3
    functionsReached:
    - Botan::fscalar_product
    - Botan::fadd_sub
    - Botan::fmul
    - Botan::fsum
    - Botan::fdifference_backwards
    - Botan::fsquare
    linkageType: ''
    returnType: void
    signature: "void fmonty(uint64_t result_two_q_x[5],\n            uint64_t result_two_q_z[5],\n
      \           uint64_t result_q_plus_q_dash_x[5],\n            uint64_t result_q_plus_q_dash_z[5],\n
      \           uint64_t in_q_x[5],\n            uint64_t in_q_z[5],\n            uint64_t
      in_q_dash_x[5],\n            uint64_t in_q_dash_z[5],\n            const uint64_t
      q_minus_q_dash[5])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:348,1
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - a
    - b
    - c
    - d
    - swap
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - uint64_t[]
    - CT::Mask<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: Botan::swap_conditional
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 3
    functionsReached:
    - CT::Mask<uint64_t>::if_set_return
    linkageType: ''
    returnType: void
    signature: void swap_conditional(uint64_t a[5], uint64_t b[5], uint64_t c[5],
      uint64_t d[5], CT::Mask<uint64_t> swap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:374,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:378,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:379,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:380,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:381,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:382,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:383,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:384,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:385,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:387,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:388,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:390,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:391,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:393,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:394,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:396,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:397,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:399,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:400,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:402,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:403,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:405,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:406,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:408,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:409,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:411,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:414,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 4
    argNames:
    - resultx
    - resultz
    - n
    - q
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - uint8_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 416
    functionName: Botan::cmult
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmonty
    - Botan::copy_mem
    - Botan::swap_conditional
    - Botan::CT::Mask::expand_bit
    linkageType: ''
    returnType: void
    signature: void cmult(uint64_t resultx[5], uint64_t resultz[5], const uint8_t
      n[32], const uint64_t q[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:427,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:428,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:429,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:430,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:431,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:432,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:433,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:434,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:435,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:436,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:437,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:438,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:439,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:440,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:441,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:442,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:443,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:444,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:445,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:446,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:447,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 449
    functionName: Botan::crecip
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmul
    - Botan::fsquare
    linkageType: ''
    returnType: void
    signature: void crecip(uint64_t out[5], const uint64_t z[5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:454,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:455,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:463,1
    - Dst: Botan::fexpand
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:468,1
    - Dst: Botan::cmult
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:469,1
    - Dst: Botan::crecip
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:470,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:471,1
    - Dst: Botan::fcontract
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:472,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:474,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:475,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - mypublic
    - secret
    - basepoint
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 453
    functionDepth: 4
    functionLinenumber: 453
    functionLinenumberEnd: 477
    functionName: Botan::curve25519_donna
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 6
    functionsReached:
    - Botan::copy_mem
    - Botan::fmul
    - Botan::fexpand
    - Botan::crecip
    - Botan::CT::poison
    - Botan::fcontract
    - Botan::CT::unpoison
    - Botan::cmult
    linkageType: ''
    returnType: void
    signature: void curve25519_donna(uint8_t mypublic[32], const uint8_t secret[32],
      const uint8_t basepoint[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::CRYSTALS::Trait_Base::Trait_Base
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trait_Base()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:82,1
    - Dst: std::span<const T>::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:82,1
    - Dst: std::span<const T>::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - polyvec
    argTypes:
    - std::span<const T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan::CRYSTALS::Trait_Base::polys_in_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::span<const T>::size
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t polys_in_polyvec(std::span<const T> polyvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:90,1
    - Dst: std::span<U>::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:90,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:91,1
    - Dst: std::span<U>::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:91,1
    - Dst: std::span<U>::subspan
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:92,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:93,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - polyvec
    - index
    argTypes:
    - std::span<U>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: Botan::CRYSTALS::Trait_Base::poly_in_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - auto::data
    - auto::size
    - std::span<U>::subspan
    - std::span<U>::size
    linkageType: ''
    returnType: std::span<U, N>
    signature: std::span<U, N> poly_in_polyvec(std::span<U> polyvec, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Mock_Trait::montgomery_reduce_coefficient
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:96,1
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::CRYSTALS::Trait_Base::fqmul
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - static_cast<T2>
    - Botan_Tests::Mock_Trait::montgomery_reduce_coefficient
    linkageType: ''
    returnType: T
    signature: T fqmul(T a, T b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - result
    - lhs
    - rhs
    argTypes:
    - std::span<T, N>
    - std::span<const T, N>
    - std::span<const T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: Botan::CRYSTALS::Trait_Base::poly_add
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_add(std::span<T, N> result, std::span<const T, N> lhs, std::span<const
      T, N> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - result
    - lhs
    - rhs
    argTypes:
    - std::span<T, N>
    - std::span<const T, N>
    - std::span<const T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: Botan::CRYSTALS::Trait_Base::poly_sub
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_sub(std::span<T, N> result, std::span<const T, N> lhs, std::span<const
      T, N> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::expand_top_bit
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:115,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:115,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - coeffs
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: Botan::CRYSTALS::Trait_Base::poly_cadd_q
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::expand_top_bit
    - static_cast<unsigned_T>
    - auto::if_set_return
    linkageType: ''
    returnType: void
    signature: void poly_cadd_q(std::span<T, N> coeffs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::fqmul
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan::CRYSTALS::Trait_Base::to_montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::fqmul
    linkageType: ''
    returnType: T
    signature: T to_montgomery(T a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Mock_Trait::barrett_reduce_coefficient
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - poly
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: Botan::CRYSTALS::Trait_Base::barrett_reduce
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Mock_Trait::barrett_reduce_coefficient
    linkageType: ''
    returnType: void
    signature: void barrett_reduce(std::span<T, N> poly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:132,1
    - Dst: Botan::CRYSTALS::Trait_Base::polys_in_polyvec
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:134,1
    - Dst: Botan_Tests::Mock_Trait::poly_pointwise_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:135,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_in_polyvec
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:135,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_in_polyvec
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:135,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_add
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:136,1
    - Dst: Botan::CRYSTALS::Trait_Base::barrett_reduce
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - w
    - u
    - v
    argTypes:
    - std::span<T, N>
    - std::span<const T>
    - std::span<const T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: Botan::CRYSTALS::Trait_Base::polyvec_pointwise_acc_montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::polys_in_polyvec
    - Botan::CRYSTALS::Trait_Base::poly_in_polyvec
    - Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    - clear_mem
    - Botan::CRYSTALS::Trait_Base::barrett_reduce
    - Botan::CRYSTALS::Trait_Base::poly_add
    linkageType: ''
    returnType: void
    signature: "void polyvec_pointwise_acc_montgomery(std::span<T, N> w,\n                                                             std::span<const
      T> u,\n                                                             std::span<const
      T> v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::from_domain_cast
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:167,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - StructureT<Trait, From>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: Botan::CRYSTALS::detail::domain_cast
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::CRYSTALS::Polynomial::from_domain_cast
    linkageType: ''
    returnType: StructureT<Trait, To>
    signature: StructureT<Trait, To> domain_cast(StructureT<Trait, From>&& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:180,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:185,1
    - Dst: Botan_Tests::get_test_instances_min
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:185,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:186,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:186,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:192,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:193,1
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:195,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:197,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:197,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - range
    - min
    - max
    argTypes:
    - std::span<const T, N>
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 200
    functionName: Botan::CRYSTALS::detail::ct_all_within_range
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_test_instances_min
    - static_cast<unsigned_T>
    - BOTAN_DEBUG_ASSERT
    - Botan::CT::Mask::is_within_range
    - static_cast<int64_t>
    - auto::as_bool
    - map
    - Botan_Tests::test_other_key_not_set
    linkageType: ''
    returnType: bool
    signature: "bool ct_all_within_range(std::span<const T, N> range, T min, T max)\n
      \  requires(sizeof(T) <= 4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::from_domain_cast
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:167,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - StructureT<Trait, From>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: Botan::CRYSTALS::detail::domain_cast
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::CRYSTALS::Polynomial::from_domain_cast
    linkageType: ''
    returnType: StructureT<Trait, To>
    signature: StructureT<Trait, To> domain_cast(StructureT<Trait, From>&& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:180,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:185,1
    - Dst: Botan_Tests::get_test_instances_min
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:185,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:186,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:186,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:192,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:193,1
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:195,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:197,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:197,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - range
    - min
    - max
    argTypes:
    - std::span<const T, N>
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 200
    functionName: Botan::CRYSTALS::detail::ct_all_within_range
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::get_test_instances_min
    - static_cast<unsigned_T>
    - BOTAN_DEBUG_ASSERT
    - Botan::CT::Mask::is_within_range
    - static_cast<int64_t>
    - auto::as_bool
    - map
    - Botan_Tests::test_other_key_not_set
    linkageType: ''
    returnType: bool
    signature: "bool ct_all_within_range(std::span<const T, N> range, T min, T max)\n
      \  requires(sizeof(T) <= 4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:238,1
    - Dst: Botan::CRYSTALS::Polynomial::owns_storage
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:239,1
    - Dst: std::span<T, Trait::N>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Polynomial<Trait, OtherD>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: Botan::CRYSTALS::Polynomial::Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::span<T, Trait::N>
    - Botan::CRYSTALS::Polynomial::owns_storage
    linkageType: ''
    returnType: void
    signature: void Polynomial(Polynomial<Trait, OtherD>&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::Polynomial
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:250,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Polynomial<Trait, OtherD>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: Botan::CRYSTALS::Polynomial::from_domain_cast
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - std::move
    - Botan::CRYSTALS::Polynomial::Polynomial
    linkageType: ''
    returnType: Polynomial<Trait, D>
    signature: Polynomial<Trait, D> from_domain_cast(Polynomial<Trait, OtherD>&& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:254,1
    - Dst: Botan::CRYSTALS::Polynomial::owns_storage
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: Botan::CRYSTALS::Polynomial::Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - Botan::CRYSTALS::Polynomial::owns_storage
    linkageType: ''
    returnType: void
    signature: void Polynomial()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:256,1
    - Dst: Botan::CRYSTALS::Polynomial::owns_storage
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coeffs
    argTypes:
    - std::span<T, Trait::N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: Botan::CRYSTALS::Polynomial::Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - Botan::CRYSTALS::Polynomial::owns_storage
    linkageType: ''
    returnType: void
    signature: void Polynomial(std::span<T, Trait::N> coeffs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 258
    functionName: Botan::CRYSTALS::Polynomial::Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Polynomial(const ThisPolynomial& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: Botan::CRYSTALS::Polynomial::Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Polynomial(ThisPolynomial&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 263
    functionName: '& operator=(const ThisPolynomial& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThisPolynomial
    signature: ThisPolynomial & operator=(const ThisPolynomial& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:267,1
    - Dst: owns_storage
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:267,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:268,1
    - Dst: std::span<T, Trait::N>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: '& operator=(ThisPolynomial&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NOMSG
    - std::span<T, Trait::N>
    - owns_storage
    linkageType: ''
    returnType: ThisPolynomial
    signature: ThisPolynomial & operator=(ThisPolynomial&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: ~Polynomial()
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Polynomial()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan::CRYSTALS::Polynomial::size
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::Polynomial::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan::CRYSTALS::Polynomial::domain
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Domain
    signature: Domain domain() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:282,1
    - Dst: std::span<T, Trait::N>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:283,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:284,1
    - Dst: ThisPolynomial::owns_storage
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: Botan::CRYSTALS::Polynomial::clone
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::span<T, Trait::N>
    - BOTAN_DEBUG_ASSERT
    - ThisPolynomial::owns_storage
    - copy_mem
    linkageType: ''
    returnType: ThisPolynomial
    signature: ThisPolynomial clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::ct_all_within_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:290,1
    - Dst: Botan::CRYSTALS::Polynomial::coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: Botan::CRYSTALS::Polynomial::ct_validate_value_range
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Polynomial::coefficients
    - Botan::CRYSTALS::detail::ct_all_within_range
    linkageType: ''
    returnType: bool
    signature: bool ct_validate_value_range(T min, T max) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: Botan::CRYSTALS::Polynomial::hamming_weight
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hamming_weight() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: Botan::CRYSTALS::Polynomial::coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::span<T, Trait::N>
    signature: std::span<T, Trait::N> coefficients()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    functionName: Botan::CRYSTALS::Polynomial::coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::span<const T, Trait::N>
    signature: std::span<const T, Trait::N> coefficients() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 306
    functionName: '& operator[](size_t i)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator[](size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: operator[](size_t i) const
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 310
    functionName: Botan::CRYSTALS::Polynomial::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::Polynomial::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: Botan::CRYSTALS::Polynomial::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::Polynomial::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: Botan::CRYSTALS::Polynomial::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::Polynomial::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 316
    functionName: Botan::CRYSTALS::Polynomial::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::Polynomial::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: Botan::CRYSTALS::Polynomial::owns_storage
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 3
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool owns_storage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::barrett_reduce
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: '& reduce()'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::barrett_reduce
    linkageType: ''
    returnType: ThisPolynomial
    signature: ThisPolynomial & reduce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::poly_cadd_q
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: '& conditional_add_q()'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::poly_cadd_q
    linkageType: ''
    returnType: ThisPolynomial
    signature: ThisPolynomial & conditional_add_q()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 330
    functionName: Botan::CRYSTALS::Polynomial::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 332
    functionName: Botan::CRYSTALS::Polynomial::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::poly_add
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: operator+=(const ThisPolynomial& other)
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::poly_add
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator+=(const ThisPolynomial& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::poly_sub
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: operator-=(const ThisPolynomial& other)
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::poly_sub
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator-=(const ThisPolynomial& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:379,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:380,1
    - Dst: Botan::CRYSTALS::PolynomialVector::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:380,1
    - Dst: Botan::CRYSTALS::PolynomialVector::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:381,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:383,1
    - Dst: Polynomial<Trait, D>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:384,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - PolynomialVector<Trait, OtherD>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: Botan::CRYSTALS::PolynomialVector::PolynomialVector
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - subspan
    - std::move
    - emplace_back
    - Botan::CRYSTALS::PolynomialVector::size
    - Polynomial<Trait, D>
    linkageType: ''
    returnType: void
    signature: "void PolynomialVector(\n         PolynomialVector<Trait, OtherD>&&
      other) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::PolynomialVector
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:397,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - PolynomialVector<Trait, OtherD>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: Botan::CRYSTALS::PolynomialVector::from_domain_cast
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::CRYSTALS::PolynomialVector::PolynomialVector
    linkageType: ''
    returnType: PolynomialVector<Trait, D>
    signature: PolynomialVector<Trait, D> from_domain_cast(PolynomialVector<Trait,
      OtherD>&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:403,1
    - Dst: Polynomial<Trait, D>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:404,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - vecsize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: Botan::CRYSTALS::PolynomialVector::PolynomialVector
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - Polynomial<Trait, D>
    - emplace_back
    - subspan
    linkageType: ''
    returnType: void
    signature: void PolynomialVector(size_t vecsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 408
    functionName: Botan::CRYSTALS::PolynomialVector::PolynomialVector
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolynomialVector(const ThisPolynomialVector& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 409
    functionName: Botan::CRYSTALS::PolynomialVector::PolynomialVector
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolynomialVector(ThisPolynomialVector&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 410
    functionName: '& operator=(const ThisPolynomialVector& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & operator=(const ThisPolynomialVector& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 411
    functionName: '& operator=(ThisPolynomialVector&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & operator=(ThisPolynomialVector&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: ~PolynomialVector()
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PolynomialVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: Botan::CRYSTALS::PolynomialVector::size
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: Botan::CRYSTALS::PolynomialVector::domain
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Domain
    signature: Domain domain() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: Botan::CRYSTALS::PolynomialVector::clone
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - copy_mem
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: Botan::CRYSTALS::PolynomialVector::hamming_weight
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hamming_weight() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::ct_all_within_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:440,1
    - Dst: Botan::CRYSTALS::PolynomialVector::coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 441
    functionName: Botan::CRYSTALS::PolynomialVector::ct_validate_value_range
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::coefficients
    - Botan::CRYSTALS::detail::ct_all_within_range
    linkageType: ''
    returnType: bool
    signature: bool ct_validate_value_range(T min, T max) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 443
    functionName: Botan::CRYSTALS::PolynomialVector::coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::span<T>
    signature: std::span<T> coefficients()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 445
    functionName: Botan::CRYSTALS::PolynomialVector::coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::span<const T>
    signature: std::span<const T> coefficients() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:448,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:448,1
    - Dst: m_vec::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:448,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:449,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_add
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:450,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:450,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:450,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 453
    functionName: '& operator+=(const ThisPolynomialVector& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - coefficients
    - BOTAN_ASSERT
    - size
    - m_vec::size
    - Botan::CRYSTALS::Trait_Base::poly_add
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & operator+=(const ThisPolynomialVector& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:456,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:456,1
    - Dst: m_vec::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:456,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:457,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_sub
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:458,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:458,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:458,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 461
    functionName: '& operator-=(const ThisPolynomialVector& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::poly_sub
    - coefficients
    - BOTAN_ASSERT
    - size
    - m_vec::size
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & operator-=(const ThisPolynomialVector& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::barrett_reduce
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:465,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: '& reduce()'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - coefficients
    - Botan::CRYSTALS::Trait_Base::barrett_reduce
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & reduce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::poly_cadd_q
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:472,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 475
    functionName: '& conditional_add_q()'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::poly_cadd_q
    - coefficients
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & conditional_add_q()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 477
    functionName: '& operator[](size_t i)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Polynomial<Trait, D>
    signature: Polynomial<Trait, D> & operator[](size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 479
    functionName: '& operator[](size_t i) const'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Polynomial<Trait, D>
    signature: Polynomial<Trait, D> & operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 481
    functionName: Botan::CRYSTALS::PolynomialVector::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 483
    functionName: Botan::CRYSTALS::PolynomialVector::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: Botan::CRYSTALS::PolynomialVector::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 487
    functionName: Botan::CRYSTALS::PolynomialVector::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: Botan::CRYSTALS::PolynomialVector::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::poison_range
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 491
    functionName: Botan::CRYSTALS::PolynomialVector::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_range
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mat
    argTypes:
    - std::vector<PolynomialVector<Trait>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 503
    functionName: Botan::CRYSTALS::PolynomialMatrix::PolynomialMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PolynomialMatrix(std::vector<PolynomialVector<Trait>> mat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 505
    functionName: Botan::CRYSTALS::PolynomialMatrix::PolynomialMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolynomialMatrix(const ThisPolynomialMatrix& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 506
    functionName: Botan::CRYSTALS::PolynomialMatrix::PolynomialMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolynomialMatrix(ThisPolynomialMatrix&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 507
    functionName: '& operator=(const ThisPolynomialMatrix& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThisPolynomialMatrix
    signature: ThisPolynomialMatrix & operator=(const ThisPolynomialMatrix& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    functionName: '& operator=(ThisPolynomialMatrix&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThisPolynomialMatrix
    signature: ThisPolynomialMatrix & operator=(ThisPolynomialMatrix&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 509
    functionName: ~PolynomialMatrix()
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PolynomialMatrix()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialMatrix::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    functionName: Botan::CRYSTALS::PolynomialMatrix::size
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::PolynomialMatrix::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:514,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rows
    - cols
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 518
    functionName: Botan::CRYSTALS::PolynomialMatrix::PolynomialMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - emplace_back
    - reserve
    linkageType: ''
    returnType: void
    signature: void PolynomialMatrix(size_t rows, size_t cols)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 520
    functionName: '& operator[](size_t i)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::NTT>
    signature: PolynomialVector<Trait, Domain::NTT> & operator[](size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 522
    functionName: '& operator[](size_t i) const'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::NTT>
    signature: PolynomialVector<Trait, Domain::NTT> & operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialMatrix::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 524
    functionName: Botan::CRYSTALS::PolynomialMatrix::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::PolynomialMatrix::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialMatrix::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 526
    functionName: Botan::CRYSTALS::PolynomialMatrix::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::PolynomialMatrix::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialMatrix::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 528
    functionName: Botan::CRYSTALS::PolynomialMatrix::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::PolynomialMatrix::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialMatrix::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 530
    functionName: Botan::CRYSTALS::PolynomialMatrix::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::PolynomialMatrix::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 532
    functionName: Botan::CRYSTALS::PolynomialMatrix::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::poison_range
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 534
    functionName: Botan::CRYSTALS::PolynomialMatrix::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_range
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::to_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Polynomial<Trait, D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: Botan::CRYSTALS::detail::montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::to_montgomery
    linkageType: ''
    returnType: void
    signature: void montgomery(Polynomial<Trait, D>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:551,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' out'
    - ' a'
    - ' b'
    argTypes:
    - Polynomial<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 555
    functionName: Botan::CRYSTALS::detail::dot_product
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - size
    - reduce
    linkageType: ''
    returnType: void
    signature: "void dot_product(Polynomial<Trait, Domain::NTT>& out,\n                 const
      PolynomialVector<Trait, Domain::NTT>& a,\n                 const PolynomialVector<Trait,
      Domain::NTT>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::to_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Polynomial<Trait, D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: Botan::CRYSTALS::detail::montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::to_montgomery
    linkageType: ''
    returnType: void
    signature: void montgomery(Polynomial<Trait, D>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:551,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' out'
    - ' a'
    - ' b'
    argTypes:
    - Polynomial<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 555
    functionName: Botan::CRYSTALS::detail::dot_product
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - size
    - reduce
    linkageType: ''
    returnType: void
    signature: "void dot_product(Polynomial<Trait, Domain::NTT>& out,\n                 const
      PolynomialVector<Trait, Domain::NTT>& a,\n                 const PolynomialVector<Trait,
      Domain::NTT>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail::domain_cast<Domain::NTT>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:561,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:561,1
    - Dst: Botan_Tests::Mock_Trait::ntt
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:562,1
    - Dst: auto::coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Polynomial<Trait, Domain::Normal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 564
    functionName: Botan::CRYSTALS::ntt
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan_Tests::Mock_Trait::ntt
    - auto::coefficients
    - detail::domain_cast<Domain::NTT>
    linkageType: ''
    returnType: Polynomial<Trait, Domain::NTT>
    signature: Polynomial<Trait, Domain::NTT> ntt(Polynomial<Trait, Domain::Normal>
      p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail::domain_cast<Domain::Normal>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:568,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:568,1
    - Dst: Botan_Tests::Mock_Trait::inverse_ntt
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:569,1
    - Dst: auto::coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p_ntt
    argTypes:
    - Polynomial<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 571
    functionName: Botan::CRYSTALS::inverse_ntt
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - auto::coefficients
    - detail::domain_cast<Domain::Normal>
    - Botan_Tests::Mock_Trait::inverse_ntt
    linkageType: ''
    returnType: Polynomial<Trait, Domain::Normal>
    signature: Polynomial<Trait, Domain::Normal> inverse_ntt(Polynomial<Trait, Domain::NTT>
      p_ntt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail::domain_cast<Domain::NTT>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:575,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:575,1
    - Dst: Botan_Tests::Mock_Trait::ntt
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:577,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - polyvec
    argTypes:
    - PolynomialVector<Trait, Domain::Normal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 580
    functionName: Botan::CRYSTALS::ntt
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan_Tests::Mock_Trait::ntt
    - coefficients
    - detail::domain_cast<Domain::NTT>
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::NTT>
    signature: PolynomialVector<Trait, Domain::NTT> ntt(PolynomialVector<Trait, Domain::Normal>
      polyvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail::domain_cast<Domain::Normal>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:584,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:584,1
    - Dst: Botan_Tests::Mock_Trait::inverse_ntt
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:586,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - polyvec_ntt
    argTypes:
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: Botan::CRYSTALS::inverse_ntt
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - detail::domain_cast<Domain::Normal>
    - coefficients
    - Botan_Tests::Mock_Trait::inverse_ntt
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::Normal>
    signature: PolynomialVector<Trait, Domain::Normal> inverse_ntt(PolynomialVector<Trait,
      Domain::NTT> polyvec_ntt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Polynomial<Trait, D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 592
    functionDepth: 5
    functionLinenumber: 592
    functionLinenumberEnd: 595
    functionName: Botan::CRYSTALS::montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::detail::montgomery
    linkageType: ''
    returnType: Polynomial<Trait, D>
    signature: Polynomial<Trait, D> montgomery(Polynomial<Trait, D> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - polyvec
    argTypes:
    - PolynomialVector<Trait, D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 5
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: Botan::CRYSTALS::montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::detail::montgomery
    linkageType: ''
    returnType: PolynomialVector<Trait, D>
    signature: PolynomialVector<Trait, D> montgomery(PolynomialVector<Trait, D> polyvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:608,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:608,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:608,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:609,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:610,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_add
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:611,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:611,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:611,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - PolynomialVector<Trait, Domain::Normal>
    - PolynomialVector<Trait, Domain::Normal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 614
    functionName: "operator+(const PolynomialVector<Trait, Domain::Normal>& a,\n                                                  const
      PolynomialVector<Trait, Domain::Normal>& b)"
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - size
    - BOTAN_DEBUG_ASSERT
    - Botan::CRYSTALS::Trait_Base::poly_add
    - coefficients
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::Normal>
    signature: "PolynomialVector<Trait, Domain::Normal> operator+(const PolynomialVector<Trait,
      Domain::Normal>& a,\n                                                  const
      PolynomialVector<Trait, Domain::Normal>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:619,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:620,1
    - Dst: Botan::CRYSTALS::Trait_Base::polyvec_pointwise_acc_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:621,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:621,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:621,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' mat'
    - ' vec'
    argTypes:
    - PolynomialMatrix<Trait>
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 617
    functionDepth: 4
    functionLinenumber: 617
    functionLinenumberEnd: 624
    functionName: "operator*(const PolynomialMatrix<Trait>& mat,\n                                               const
      PolynomialVector<Trait, Domain::NTT>& vec)"
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::polyvec_pointwise_acc_montgomery
    - size
    - coefficients
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::NTT>
    signature: "PolynomialVector<Trait, Domain::NTT> operator*(const PolynomialMatrix<Trait>&
      mat,\n                                               const PolynomialVector<Trait,
      Domain::NTT>& vec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::dot_product
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - PolynomialVector<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 632
    functionName: "operator*(const PolynomialVector<Trait, Domain::NTT>& a,\n                                         const
      PolynomialVector<Trait, Domain::NTT>& b)"
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::detail::dot_product
    linkageType: ''
    returnType: Polynomial<Trait, Domain::NTT>
    signature: "Polynomial<Trait, Domain::NTT> operator*(const PolynomialVector<Trait,
      Domain::NTT>& a,\n                                         const PolynomialVector<Trait,
      Domain::NTT>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:637,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:638,1
    - Dst: Botan_Tests::Mock_Trait::poly_pointwise_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:639,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:639,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:639,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' p'
    - ' pv'
    argTypes:
    - Polynomial<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 642
    functionName: "operator*(const Polynomial<Trait, Domain::NTT>& p,\n                                               const
      PolynomialVector<Trait, Domain::NTT>& pv)"
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - size
    - coefficients
    - Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::NTT>
    signature: "PolynomialVector<Trait, Domain::NTT> operator*(const Polynomial<Trait,
      Domain::NTT>& p,\n                                               const PolynomialVector<Trait,
      Domain::NTT>& pv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Mock_Trait::poly_pointwise_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:648,1
    - Dst: Polynomial::coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:648,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:648,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Polynomial<Trait, Domain::NTT>
    - Polynomial<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 650
    functionName: "operator*(const Polynomial<Trait, Domain::NTT>& a,\n                                         const
      Polynomial<Trait, Domain::NTT>& b)"
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Polynomial::coefficients
    - coefficients
    - Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    linkageType: ''
    returnType: Polynomial<Trait, Domain::NTT>
    signature: "Polynomial<Trait, Domain::NTT> operator*(const Polynomial<Trait, Domain::NTT>&
      a,\n                                         const Polynomial<Trait, Domain::NTT>&
      b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:654,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:655,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' pv'
    - shift
    argTypes:
    - PolynomialVector<Trait, Domain::Normal>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 662
    functionName: operator<<(const PolynomialVector<Trait, Domain::Normal>& pv, size_t
      shift)
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - size
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::Normal>
    signature: PolynomialVector<Trait, Domain::Normal> operator<<(const PolynomialVector<Trait,
      Domain::Normal>& pv, size_t shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::CRYSTALS::Trait_Base::Trait_Base
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trait_Base()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:82,1
    - Dst: std::span<const T>::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:82,1
    - Dst: std::span<const T>::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - polyvec
    argTypes:
    - std::span<const T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Botan::CRYSTALS::Trait_Base::polys_in_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - std::span<const T>::size
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t polys_in_polyvec(std::span<const T> polyvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:90,1
    - Dst: std::span<U>::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:90,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:91,1
    - Dst: std::span<U>::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:91,1
    - Dst: std::span<U>::subspan
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:92,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:93,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - polyvec
    - index
    argTypes:
    - std::span<U>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: Botan::CRYSTALS::Trait_Base::poly_in_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - auto::data
    - auto::size
    - std::span<U>::subspan
    - std::span<U>::size
    linkageType: ''
    returnType: std::span<U, N>
    signature: std::span<U, N> poly_in_polyvec(std::span<U> polyvec, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Mock_Trait::montgomery_reduce_coefficient
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:96,1
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Botan::CRYSTALS::Trait_Base::fqmul
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - static_cast<T2>
    - Botan_Tests::Mock_Trait::montgomery_reduce_coefficient
    linkageType: ''
    returnType: T
    signature: T fqmul(T a, T b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - result
    - lhs
    - rhs
    argTypes:
    - std::span<T, N>
    - std::span<const T, N>
    - std::span<const T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: Botan::CRYSTALS::Trait_Base::poly_add
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_add(std::span<T, N> result, std::span<const T, N> lhs, std::span<const
      T, N> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - result
    - lhs
    - rhs
    argTypes:
    - std::span<T, N>
    - std::span<const T, N>
    - std::span<const T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: Botan::CRYSTALS::Trait_Base::poly_sub
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_sub(std::span<T, N> result, std::span<const T, N> lhs, std::span<const
      T, N> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::expand_top_bit
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:115,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:115,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - coeffs
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: Botan::CRYSTALS::Trait_Base::poly_cadd_q
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CT::Mask::expand_top_bit
    - static_cast<unsigned_T>
    - auto::if_set_return
    linkageType: ''
    returnType: void
    signature: void poly_cadd_q(std::span<T, N> coeffs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::fqmul
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan::CRYSTALS::Trait_Base::to_montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::fqmul
    linkageType: ''
    returnType: T
    signature: T to_montgomery(T a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Mock_Trait::barrett_reduce_coefficient
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - poly
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: Botan::CRYSTALS::Trait_Base::barrett_reduce
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 3
    functionsReached:
    - Botan_Tests::Mock_Trait::barrett_reduce_coefficient
    linkageType: ''
    returnType: void
    signature: void barrett_reduce(std::span<T, N> poly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:132,1
    - Dst: Botan::CRYSTALS::Trait_Base::polys_in_polyvec
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:134,1
    - Dst: Botan_Tests::Mock_Trait::poly_pointwise_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:135,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_in_polyvec
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:135,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_in_polyvec
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:135,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_add
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:136,1
    - Dst: Botan::CRYSTALS::Trait_Base::barrett_reduce
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - w
    - u
    - v
    argTypes:
    - std::span<T, N>
    - std::span<const T>
    - std::span<const T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: Botan::CRYSTALS::Trait_Base::polyvec_pointwise_acc_montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::polys_in_polyvec
    - Botan::CRYSTALS::Trait_Base::poly_in_polyvec
    - Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    - clear_mem
    - Botan::CRYSTALS::Trait_Base::barrett_reduce
    - Botan::CRYSTALS::Trait_Base::poly_add
    linkageType: ''
    returnType: void
    signature: "void polyvec_pointwise_acc_montgomery(std::span<T, N> w,\n                                                             std::span<const
      T> u,\n                                                             std::span<const
      T> v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::from_domain_cast
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:167,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - StructureT<Trait, From>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: Botan::CRYSTALS::detail::domain_cast
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::CRYSTALS::Polynomial::from_domain_cast
    linkageType: ''
    returnType: StructureT<Trait, To>
    signature: StructureT<Trait, To> domain_cast(StructureT<Trait, From>&& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:180,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:185,1
    - Dst: Botan_Tests::get_test_instances_min
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:185,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:186,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:186,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:192,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:193,1
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:195,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:197,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:197,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - range
    - min
    - max
    argTypes:
    - std::span<const T, N>
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 200
    functionName: Botan::CRYSTALS::detail::ct_all_within_range
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan_Tests::get_test_instances_min
    - static_cast<unsigned_T>
    - BOTAN_DEBUG_ASSERT
    - Botan::CT::Mask::is_within_range
    - static_cast<int64_t>
    - auto::as_bool
    - map
    - Botan_Tests::test_other_key_not_set
    linkageType: ''
    returnType: bool
    signature: "bool ct_all_within_range(std::span<const T, N> range, T min, T max)\n
      \  requires(sizeof(T) <= 4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::from_domain_cast
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:167,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - StructureT<Trait, From>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: Botan::CRYSTALS::detail::domain_cast
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::CRYSTALS::Polynomial::from_domain_cast
    linkageType: ''
    returnType: StructureT<Trait, To>
    signature: StructureT<Trait, To> domain_cast(StructureT<Trait, From>&& p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:180,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:185,1
    - Dst: Botan_Tests::get_test_instances_min
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:185,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:186,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:186,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:192,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:193,1
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:195,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:197,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:197,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - range
    - min
    - max
    argTypes:
    - std::span<const T, N>
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 200
    functionName: Botan::CRYSTALS::detail::ct_all_within_range
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan_Tests::get_test_instances_min
    - static_cast<unsigned_T>
    - BOTAN_DEBUG_ASSERT
    - Botan::CT::Mask::is_within_range
    - static_cast<int64_t>
    - auto::as_bool
    - map
    - Botan_Tests::test_other_key_not_set
    linkageType: ''
    returnType: bool
    signature: "bool ct_all_within_range(std::span<const T, N> range, T min, T max)\n
      \  requires(sizeof(T) <= 4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:238,1
    - Dst: Botan::CRYSTALS::Polynomial::owns_storage
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:239,1
    - Dst: std::span<T, Trait::N>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Polynomial<Trait, OtherD>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: Botan::CRYSTALS::Polynomial::Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - std::move
    - std::span<T, Trait::N>
    - Botan::CRYSTALS::Polynomial::owns_storage
    linkageType: ''
    returnType: void
    signature: void Polynomial(Polynomial<Trait, OtherD>&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::Polynomial
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:250,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Polynomial<Trait, OtherD>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: Botan::CRYSTALS::Polynomial::from_domain_cast
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 4
    functionsReached:
    - std::move
    - Botan::CRYSTALS::Polynomial::Polynomial
    linkageType: ''
    returnType: Polynomial<Trait, D>
    signature: Polynomial<Trait, D> from_domain_cast(Polynomial<Trait, OtherD>&& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:254,1
    - Dst: Botan::CRYSTALS::Polynomial::owns_storage
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: Botan::CRYSTALS::Polynomial::Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - Botan::CRYSTALS::Polynomial::owns_storage
    linkageType: ''
    returnType: void
    signature: void Polynomial()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:256,1
    - Dst: Botan::CRYSTALS::Polynomial::owns_storage
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coeffs
    argTypes:
    - std::span<T, Trait::N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: Botan::CRYSTALS::Polynomial::Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - Botan::CRYSTALS::Polynomial::owns_storage
    linkageType: ''
    returnType: void
    signature: void Polynomial(std::span<T, Trait::N> coeffs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 258
    functionName: Botan::CRYSTALS::Polynomial::Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Polynomial(const ThisPolynomial& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: Botan::CRYSTALS::Polynomial::Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Polynomial(ThisPolynomial&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 263
    functionName: '& operator=(const ThisPolynomial& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThisPolynomial
    signature: ThisPolynomial & operator=(const ThisPolynomial& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:267,1
    - Dst: owns_storage
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:267,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:268,1
    - Dst: std::span<T, Trait::N>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: '& operator=(ThisPolynomial&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NOMSG
    - std::span<T, Trait::N>
    - owns_storage
    linkageType: ''
    returnType: ThisPolynomial
    signature: ThisPolynomial & operator=(ThisPolynomial&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: ~Polynomial()
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Polynomial()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: Botan::CRYSTALS::Polynomial::size
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::Polynomial::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: Botan::CRYSTALS::Polynomial::domain
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Domain
    signature: Domain domain() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:282,1
    - Dst: std::span<T, Trait::N>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:283,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:284,1
    - Dst: ThisPolynomial::owns_storage
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: Botan::CRYSTALS::Polynomial::clone
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::span<T, Trait::N>
    - BOTAN_DEBUG_ASSERT
    - ThisPolynomial::owns_storage
    - copy_mem
    linkageType: ''
    returnType: ThisPolynomial
    signature: ThisPolynomial clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::ct_all_within_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:290,1
    - Dst: Botan::CRYSTALS::Polynomial::coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: Botan::CRYSTALS::Polynomial::ct_validate_value_range
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Polynomial::coefficients
    - Botan::CRYSTALS::detail::ct_all_within_range
    linkageType: ''
    returnType: bool
    signature: bool ct_validate_value_range(T min, T max) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: Botan::CRYSTALS::Polynomial::hamming_weight
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hamming_weight() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: Botan::CRYSTALS::Polynomial::coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::span<T, Trait::N>
    signature: std::span<T, Trait::N> coefficients()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    functionName: Botan::CRYSTALS::Polynomial::coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::span<const T, Trait::N>
    signature: std::span<const T, Trait::N> coefficients() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 306
    functionName: '& operator[](size_t i)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & operator[](size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: operator[](size_t i) const
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 310
    functionName: Botan::CRYSTALS::Polynomial::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 3
    functionsReached:
    - Botan::CRYSTALS::Polynomial::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: Botan::CRYSTALS::Polynomial::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 4
    functionsReached:
    - Botan::CRYSTALS::Polynomial::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: Botan::CRYSTALS::Polynomial::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 3
    functionsReached:
    - Botan::CRYSTALS::Polynomial::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Polynomial::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 316
    functionName: Botan::CRYSTALS::Polynomial::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 4
    functionsReached:
    - Botan::CRYSTALS::Polynomial::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: Botan::CRYSTALS::Polynomial::owns_storage
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 6
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool owns_storage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::barrett_reduce
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: '& reduce()'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::barrett_reduce
    linkageType: ''
    returnType: ThisPolynomial
    signature: ThisPolynomial & reduce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::poly_cadd_q
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: '& conditional_add_q()'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::poly_cadd_q
    linkageType: ''
    returnType: ThisPolynomial
    signature: ThisPolynomial & conditional_add_q()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 330
    functionName: Botan::CRYSTALS::Polynomial::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 332
    functionName: Botan::CRYSTALS::Polynomial::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::poly_add
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: operator+=(const ThisPolynomial& other)
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::poly_add
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator+=(const ThisPolynomial& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::poly_sub
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: operator-=(const ThisPolynomial& other)
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::poly_sub
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) operator-=(const ThisPolynomial& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:379,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:380,1
    - Dst: Botan::CRYSTALS::PolynomialVector::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:380,1
    - Dst: Botan::CRYSTALS::PolynomialVector::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:381,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:383,1
    - Dst: Polynomial<Trait, D>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:384,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - PolynomialVector<Trait, OtherD>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: Botan::CRYSTALS::PolynomialVector::PolynomialVector
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - subspan
    - std::move
    - emplace_back
    - Botan::CRYSTALS::PolynomialVector::size
    - Polynomial<Trait, D>
    linkageType: ''
    returnType: void
    signature: "void PolynomialVector(\n         PolynomialVector<Trait, OtherD>&&
      other) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::PolynomialVector
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:397,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - PolynomialVector<Trait, OtherD>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: Botan::CRYSTALS::PolynomialVector::from_domain_cast
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::CRYSTALS::PolynomialVector::PolynomialVector
    linkageType: ''
    returnType: PolynomialVector<Trait, D>
    signature: PolynomialVector<Trait, D> from_domain_cast(PolynomialVector<Trait,
      OtherD>&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:403,1
    - Dst: Polynomial<Trait, D>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:404,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - vecsize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: Botan::CRYSTALS::PolynomialVector::PolynomialVector
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Polynomial<Trait, D>
    - emplace_back
    - subspan
    linkageType: ''
    returnType: void
    signature: void PolynomialVector(size_t vecsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 408
    functionName: Botan::CRYSTALS::PolynomialVector::PolynomialVector
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolynomialVector(const ThisPolynomialVector& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 409
    functionName: Botan::CRYSTALS::PolynomialVector::PolynomialVector
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolynomialVector(ThisPolynomialVector&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 410
    functionName: '& operator=(const ThisPolynomialVector& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & operator=(const ThisPolynomialVector& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 411
    functionName: '& operator=(ThisPolynomialVector&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & operator=(ThisPolynomialVector&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: ~PolynomialVector()
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PolynomialVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: Botan::CRYSTALS::PolynomialVector::size
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 4
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: Botan::CRYSTALS::PolynomialVector::domain
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Domain
    signature: Domain domain() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: Botan::CRYSTALS::PolynomialVector::clone
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - copy_mem
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: Botan::CRYSTALS::PolynomialVector::hamming_weight
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hamming_weight() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::ct_all_within_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:440,1
    - Dst: Botan::CRYSTALS::PolynomialVector::coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 441
    functionName: Botan::CRYSTALS::PolynomialVector::ct_validate_value_range
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::coefficients
    - Botan::CRYSTALS::detail::ct_all_within_range
    linkageType: ''
    returnType: bool
    signature: bool ct_validate_value_range(T min, T max) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 443
    functionName: Botan::CRYSTALS::PolynomialVector::coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::span<T>
    signature: std::span<T> coefficients()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 445
    functionName: Botan::CRYSTALS::PolynomialVector::coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::span<const T>
    signature: std::span<const T> coefficients() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:448,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:448,1
    - Dst: m_vec::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:448,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:449,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_add
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:450,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:450,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:450,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 453
    functionName: '& operator+=(const ThisPolynomialVector& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - coefficients
    - BOTAN_ASSERT
    - size
    - m_vec::size
    - Botan::CRYSTALS::Trait_Base::poly_add
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & operator+=(const ThisPolynomialVector& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:456,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:456,1
    - Dst: m_vec::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:456,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:457,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_sub
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:458,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:458,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:458,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 461
    functionName: '& operator-=(const ThisPolynomialVector& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::poly_sub
    - coefficients
    - BOTAN_ASSERT
    - size
    - m_vec::size
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & operator-=(const ThisPolynomialVector& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::barrett_reduce
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:465,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: '& reduce()'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - coefficients
    - Botan::CRYSTALS::Trait_Base::barrett_reduce
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & reduce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::poly_cadd_q
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:472,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 475
    functionName: '& conditional_add_q()'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::poly_cadd_q
    - coefficients
    linkageType: ''
    returnType: ThisPolynomialVector
    signature: ThisPolynomialVector & conditional_add_q()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 477
    functionName: '& operator[](size_t i)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Polynomial<Trait, D>
    signature: Polynomial<Trait, D> & operator[](size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 479
    functionName: '& operator[](size_t i) const'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Polynomial<Trait, D>
    signature: Polynomial<Trait, D> & operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 481
    functionName: Botan::CRYSTALS::PolynomialVector::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 3
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 483
    functionName: Botan::CRYSTALS::PolynomialVector::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 4
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: Botan::CRYSTALS::PolynomialVector::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 3
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialVector::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 487
    functionName: Botan::CRYSTALS::PolynomialVector::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 4
    functionsReached:
    - Botan::CRYSTALS::PolynomialVector::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: Botan::CRYSTALS::PolynomialVector::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::poison_range
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 491
    functionName: Botan::CRYSTALS::PolynomialVector::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_range
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mat
    argTypes:
    - std::vector<PolynomialVector<Trait>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 503
    functionName: Botan::CRYSTALS::PolynomialMatrix::PolynomialMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void PolynomialMatrix(std::vector<PolynomialVector<Trait>> mat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 505
    functionName: Botan::CRYSTALS::PolynomialMatrix::PolynomialMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolynomialMatrix(const ThisPolynomialMatrix& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 506
    functionName: Botan::CRYSTALS::PolynomialMatrix::PolynomialMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolynomialMatrix(ThisPolynomialMatrix&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 507
    functionName: '& operator=(const ThisPolynomialMatrix& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThisPolynomialMatrix
    signature: ThisPolynomialMatrix & operator=(const ThisPolynomialMatrix& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ThisPolynomialMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    functionName: '& operator=(ThisPolynomialMatrix&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThisPolynomialMatrix
    signature: ThisPolynomialMatrix & operator=(ThisPolynomialMatrix&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 509
    functionName: ~PolynomialMatrix()
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PolynomialMatrix()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialMatrix::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    functionName: Botan::CRYSTALS::PolynomialMatrix::size
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::PolynomialMatrix::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:514,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rows
    - cols
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 518
    functionName: Botan::CRYSTALS::PolynomialMatrix::PolynomialMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - emplace_back
    - reserve
    linkageType: ''
    returnType: void
    signature: void PolynomialMatrix(size_t rows, size_t cols)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 520
    functionName: '& operator[](size_t i)'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::NTT>
    signature: PolynomialVector<Trait, Domain::NTT> & operator[](size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 522
    functionName: '& operator[](size_t i) const'
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::NTT>
    signature: PolynomialVector<Trait, Domain::NTT> & operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialMatrix::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 524
    functionName: Botan::CRYSTALS::PolynomialMatrix::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 3
    functionsReached:
    - Botan::CRYSTALS::PolynomialMatrix::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialMatrix::begin
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 526
    functionName: Botan::CRYSTALS::PolynomialMatrix::begin
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 4
    functionsReached:
    - Botan::CRYSTALS::PolynomialMatrix::begin
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialMatrix::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 528
    functionName: Botan::CRYSTALS::PolynomialMatrix::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 3
    functionsReached:
    - Botan::CRYSTALS::PolynomialMatrix::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::PolynomialMatrix::end
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 530
    functionName: Botan::CRYSTALS::PolynomialMatrix::end
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 4
    functionsReached:
    - Botan::CRYSTALS::PolynomialMatrix::end
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 532
    functionName: Botan::CRYSTALS::PolynomialMatrix::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::poison_range
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison_range
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 534
    functionName: Botan::CRYSTALS::PolynomialMatrix::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_range
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::to_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Polynomial<Trait, D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: Botan::CRYSTALS::detail::montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::to_montgomery
    linkageType: ''
    returnType: void
    signature: void montgomery(Polynomial<Trait, D>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:551,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' out'
    - ' a'
    - ' b'
    argTypes:
    - Polynomial<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 555
    functionName: Botan::CRYSTALS::detail::dot_product
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT
    - size
    - reduce
    linkageType: ''
    returnType: void
    signature: "void dot_product(Polynomial<Trait, Domain::NTT>& out,\n                 const
      PolynomialVector<Trait, Domain::NTT>& a,\n                 const PolynomialVector<Trait,
      Domain::NTT>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::Trait_Base::to_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Polynomial<Trait, D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: Botan::CRYSTALS::detail::montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::to_montgomery
    linkageType: ''
    returnType: void
    signature: void montgomery(Polynomial<Trait, D>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:550,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:551,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' out'
    - ' a'
    - ' b'
    argTypes:
    - Polynomial<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 555
    functionName: Botan::CRYSTALS::detail::dot_product
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT
    - size
    - reduce
    linkageType: ''
    returnType: void
    signature: "void dot_product(Polynomial<Trait, Domain::NTT>& out,\n                 const
      PolynomialVector<Trait, Domain::NTT>& a,\n                 const PolynomialVector<Trait,
      Domain::NTT>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail::domain_cast<Domain::NTT>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:561,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:561,1
    - Dst: Botan_Tests::Mock_Trait::ntt
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:562,1
    - Dst: auto::coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Polynomial<Trait, Domain::Normal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 564
    functionName: Botan::CRYSTALS::ntt
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan_Tests::Mock_Trait::ntt
    - auto::coefficients
    - detail::domain_cast<Domain::NTT>
    linkageType: ''
    returnType: Polynomial<Trait, Domain::NTT>
    signature: Polynomial<Trait, Domain::NTT> ntt(Polynomial<Trait, Domain::Normal>
      p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail::domain_cast<Domain::Normal>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:568,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:568,1
    - Dst: Botan_Tests::Mock_Trait::inverse_ntt
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:569,1
    - Dst: auto::coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p_ntt
    argTypes:
    - Polynomial<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 571
    functionName: Botan::CRYSTALS::inverse_ntt
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - auto::coefficients
    - detail::domain_cast<Domain::Normal>
    - Botan_Tests::Mock_Trait::inverse_ntt
    linkageType: ''
    returnType: Polynomial<Trait, Domain::Normal>
    signature: Polynomial<Trait, Domain::Normal> inverse_ntt(Polynomial<Trait, Domain::NTT>
      p_ntt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail::domain_cast<Domain::NTT>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:575,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:575,1
    - Dst: Botan_Tests::Mock_Trait::ntt
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:577,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - polyvec
    argTypes:
    - PolynomialVector<Trait, Domain::Normal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 580
    functionName: Botan::CRYSTALS::ntt
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan_Tests::Mock_Trait::ntt
    - coefficients
    - detail::domain_cast<Domain::NTT>
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::NTT>
    signature: PolynomialVector<Trait, Domain::NTT> ntt(PolynomialVector<Trait, Domain::Normal>
      polyvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail::domain_cast<Domain::Normal>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:584,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:584,1
    - Dst: Botan_Tests::Mock_Trait::inverse_ntt
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:586,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - polyvec_ntt
    argTypes:
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: Botan::CRYSTALS::inverse_ntt
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - std::move
    - detail::domain_cast<Domain::Normal>
    - coefficients
    - Botan_Tests::Mock_Trait::inverse_ntt
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::Normal>
    signature: PolynomialVector<Trait, Domain::Normal> inverse_ntt(PolynomialVector<Trait,
      Domain::NTT> polyvec_ntt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Polynomial<Trait, D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 592
    functionDepth: 5
    functionLinenumber: 592
    functionLinenumberEnd: 595
    functionName: Botan::CRYSTALS::montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::detail::montgomery
    linkageType: ''
    returnType: Polynomial<Trait, D>
    signature: Polynomial<Trait, D> montgomery(Polynomial<Trait, D> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - polyvec
    argTypes:
    - PolynomialVector<Trait, D>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 5
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: Botan::CRYSTALS::montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::detail::montgomery
    linkageType: ''
    returnType: PolynomialVector<Trait, D>
    signature: PolynomialVector<Trait, D> montgomery(PolynomialVector<Trait, D> polyvec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:608,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:608,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:608,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:609,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:610,1
    - Dst: Botan::CRYSTALS::Trait_Base::poly_add
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:611,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:611,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:611,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - PolynomialVector<Trait, Domain::Normal>
    - PolynomialVector<Trait, Domain::Normal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 614
    functionName: "operator+(const PolynomialVector<Trait, Domain::Normal>& a,\n                                                  const
      PolynomialVector<Trait, Domain::Normal>& b)"
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - size
    - BOTAN_DEBUG_ASSERT
    - Botan::CRYSTALS::Trait_Base::poly_add
    - coefficients
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::Normal>
    signature: "PolynomialVector<Trait, Domain::Normal> operator+(const PolynomialVector<Trait,
      Domain::Normal>& a,\n                                                  const
      PolynomialVector<Trait, Domain::Normal>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:619,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:620,1
    - Dst: Botan::CRYSTALS::Trait_Base::polyvec_pointwise_acc_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:621,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:621,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:621,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' mat'
    - ' vec'
    argTypes:
    - PolynomialMatrix<Trait>
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 617
    functionDepth: 4
    functionLinenumber: 617
    functionLinenumberEnd: 624
    functionName: "operator*(const PolynomialMatrix<Trait>& mat,\n                                               const
      PolynomialVector<Trait, Domain::NTT>& vec)"
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::Trait_Base::polyvec_pointwise_acc_montgomery
    - size
    - coefficients
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::NTT>
    signature: "PolynomialVector<Trait, Domain::NTT> operator*(const PolynomialMatrix<Trait>&
      mat,\n                                               const PolynomialVector<Trait,
      Domain::NTT>& vec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::dot_product
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - PolynomialVector<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 632
    functionName: "operator*(const PolynomialVector<Trait, Domain::NTT>& a,\n                                         const
      PolynomialVector<Trait, Domain::NTT>& b)"
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::detail::dot_product
    linkageType: ''
    returnType: Polynomial<Trait, Domain::NTT>
    signature: "Polynomial<Trait, Domain::NTT> operator*(const PolynomialVector<Trait,
      Domain::NTT>& a,\n                                         const PolynomialVector<Trait,
      Domain::NTT>& b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:637,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:638,1
    - Dst: Botan_Tests::Mock_Trait::poly_pointwise_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:639,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:639,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:639,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' p'
    - ' pv'
    argTypes:
    - Polynomial<Trait, Domain::NTT>
    - PolynomialVector<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 642
    functionName: "operator*(const Polynomial<Trait, Domain::NTT>& p,\n                                               const
      PolynomialVector<Trait, Domain::NTT>& pv)"
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - size
    - coefficients
    - Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::NTT>
    signature: "PolynomialVector<Trait, Domain::NTT> operator*(const Polynomial<Trait,
      Domain::NTT>& p,\n                                               const PolynomialVector<Trait,
      Domain::NTT>& pv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Mock_Trait::poly_pointwise_montgomery
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:648,1
    - Dst: Polynomial::coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:648,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:648,1
    - Dst: coefficients
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Polynomial<Trait, Domain::NTT>
    - Polynomial<Trait, Domain::NTT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 650
    functionName: "operator*(const Polynomial<Trait, Domain::NTT>& a,\n                                         const
      Polynomial<Trait, Domain::NTT>& b)"
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - Polynomial::coefficients
    - coefficients
    - Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    linkageType: ''
    returnType: Polynomial<Trait, Domain::NTT>
    signature: "Polynomial<Trait, Domain::NTT> operator*(const Polynomial<Trait, Domain::NTT>&
      a,\n                                         const Polynomial<Trait, Domain::NTT>&
      b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:654,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:655,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' pv'
    - shift
    argTypes:
    - PolynomialVector<Trait, Domain::Normal>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 662
    functionName: operator<<(const PolynomialVector<Trait, Domain::Normal>& pv, size_t
      shift)
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - size
    linkageType: ''
    returnType: PolynomialVector<Trait, Domain::Normal>
    signature: PolynomialVector<Trait, Domain::Normal> operator<<(const PolynomialVector<Trait,
      Domain::Normal>& pv, size_t shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::CRYSTALS::detail::as_byte_source
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 0
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: auto
    signature: auto as_byte_source(BufferSlicer& slicer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' xof'
    argTypes:
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::CRYSTALS::detail::as_byte_source
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: auto
    signature: auto as_byte_source(Botan::XOF& xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::CRYSTALS::detail::as_byte_source
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 0
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: auto
    signature: auto as_byte_source(BufferSlicer& slicer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' xof'
    argTypes:
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::CRYSTALS::detail::as_byte_source
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 0
    functionsReached:
    - output
    linkageType: ''
    returnType: auto
    signature: auto as_byte_source(Botan::XOF& xof)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:120,1
    - Dst: remaining_capacity
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:120,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:120,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:134,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:141,1
    - Dst: static_cast<typename trait::sink_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:142,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:146,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:166,1
    - Dst: append
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:167,1
    - Dst: template first<trait::bytes_per_pack>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - map
    argTypes:
    - Polynomial<PolyTrait, D>
    - BufferStuffer
    - MapFnT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 169
    functionName: Botan::CRYSTALS::pack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - store_le
    - static_cast<typename trait::sink_t>
    - map
    - append
    - size
    - template first<trait::bytes_per_pack>
    - remaining_capacity
    linkageType: ''
    returnType: void
    signature: void pack(const Polynomial<PolyTrait, D>& p, BufferStuffer& stuffer,
      MapFnT map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::as_byte_source
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:194,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:199,1
    - Dst: get_bytes
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:200,1
    - Dst: template first<trait::bytes_per_pack>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:200,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:201,1
    - Dst: unmap
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:216,1
    - Dst: static_cast<typename trait::unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' p'
    - ' byte_source'
    - unmap
    argTypes:
    - Polynomial<PolyTrait, D>
    - ByteSourceT
    - UnmapFnT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 219
    functionName: Botan::CRYSTALS::unpack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::detail::as_byte_source
    - load_le
    - static_cast<typename trait::unsigned_T>
    - size
    - template first<trait::bytes_per_pack>
    - unmap
    - get_bytes
    linkageType: ''
    returnType: void
    signature: void unpack(Polynomial<PolyTrait, D>& p, ByteSourceT& byte_source,
      UnmapFnT unmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::pack
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:225,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - Polynomial<PolyTrait, D>
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: Botan::CRYSTALS::pack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::pack
    - static_cast<unsigned_T>
    linkageType: ''
    returnType: void
    signature: void pack(const Polynomial<PolyTrait, D>& p, BufferStuffer& stuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::unpack
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:232,1
    - Dst: static_cast<typename PolyTrait::T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' byte_source'
    argTypes:
    - Polynomial<PolyTrait, D>
    - ByteSourceT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: Botan::CRYSTALS::unpack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::unpack
    - static_cast<typename PolyTrait::T>
    linkageType: ''
    returnType: void
    signature: void unpack(Polynomial<PolyTrait, D>& p, ByteSourceT& byte_source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::CRYSTALS::detail::as_byte_source
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 1
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: auto
    signature: auto as_byte_source(BufferSlicer& slicer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' xof'
    argTypes:
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::CRYSTALS::detail::as_byte_source
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 1
    functionsReached:
    - output
    linkageType: ''
    returnType: auto
    signature: auto as_byte_source(Botan::XOF& xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_into
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::CRYSTALS::detail::as_byte_source
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 1
    functionsReached:
    - copy_into
    linkageType: ''
    returnType: auto
    signature: auto as_byte_source(BufferSlicer& slicer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' xof'
    argTypes:
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::CRYSTALS::detail::as_byte_source
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 1
    functionsReached:
    - output
    linkageType: ''
    returnType: auto
    signature: auto as_byte_source(Botan::XOF& xof)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:120,1
    - Dst: remaining_capacity
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:120,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:120,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:134,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:141,1
    - Dst: static_cast<typename trait::sink_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:142,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:146,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:166,1
    - Dst: append
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:167,1
    - Dst: template first<trait::bytes_per_pack>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - map
    argTypes:
    - Polynomial<PolyTrait, D>
    - BufferStuffer
    - MapFnT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 169
    functionName: Botan::CRYSTALS::pack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 1
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - store_le
    - static_cast<typename trait::sink_t>
    - map
    - append
    - size
    - template first<trait::bytes_per_pack>
    - remaining_capacity
    linkageType: ''
    returnType: void
    signature: void pack(const Polynomial<PolyTrait, D>& p, BufferStuffer& stuffer,
      MapFnT map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::detail::as_byte_source
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:194,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:199,1
    - Dst: get_bytes
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:200,1
    - Dst: template first<trait::bytes_per_pack>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:200,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:201,1
    - Dst: unmap
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:216,1
    - Dst: static_cast<typename trait::unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' p'
    - ' byte_source'
    - unmap
    argTypes:
    - Polynomial<PolyTrait, D>
    - ByteSourceT
    - UnmapFnT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 219
    functionName: Botan::CRYSTALS::unpack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 1
    functionsReached:
    - Botan::CRYSTALS::detail::as_byte_source
    - load_le
    - static_cast<typename trait::unsigned_T>
    - size
    - template first<trait::bytes_per_pack>
    - unmap
    - get_bytes
    linkageType: ''
    returnType: void
    signature: void unpack(Polynomial<PolyTrait, D>& p, ByteSourceT& byte_source,
      UnmapFnT unmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::pack
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:225,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - Polynomial<PolyTrait, D>
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: Botan::CRYSTALS::pack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::pack
    - static_cast<unsigned_T>
    linkageType: ''
    returnType: void
    signature: void pack(const Polynomial<PolyTrait, D>& p, BufferStuffer& stuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CRYSTALS::unpack
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:232,1
    - Dst: static_cast<typename PolyTrait::T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' byte_source'
    argTypes:
    - Polynomial<PolyTrait, D>
    - ByteSourceT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: Botan::CRYSTALS::unpack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 2
    functionsReached:
    - Botan::CRYSTALS::unpack
    - static_cast<typename PolyTrait::T>
    linkageType: ''
    returnType: void
    signature: void unpack(Polynomial<PolyTrait, D>& p, ByteSourceT& byte_source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T2
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan::montgomery_R
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - T2
    linkageType: ''
    returnType: T
    signature: T montgomery_R(T q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:54,1
    - Dst: Botan::montgomery_R
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:54,1
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:54,1
    - Dst: Botan::montgomery_R
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::montgomery_R2
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - Botan::montgomery_R
    - static_cast<T2>
    linkageType: ''
    returnType: T
    signature: T montgomery_R2(T q)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:71,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:82,1
    - Dst: std::make_tuple
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:82,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:82,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:83,1
    - Dst: std::make_tuple
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:83,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:83,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: Botan::extended_euclidean_algorithm
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - std::make_tuple
    - Botan::swap
    - std::tie
    - static_cast<T>
    linkageType: ''
    returnType: eea_result<T>
    signature: eea_result<T> extended_euclidean_algorithm(T a, T b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T2
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:97,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:98,1
    - Dst: Botan::extended_euclidean_algorithm
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Botan::modular_inverse
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - static_cast<T>
    - Botan::extended_euclidean_algorithm
    - T2
    linkageType: ''
    returnType: T
    signature: T modular_inverse(T q, T2 m = T2(1) << sizeof(T) * 8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: Botan::bitlen
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - Botan::ceil_log2
    linkageType: ''
    returnType: auto
    signature: auto bitlen(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:117,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:134,1
    - Dst: csubq
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:135,1
    - Dst: pow
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:135,1
    - Dst: bitreverse
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - q
    - monty
    - root_of_unity
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: Botan::precompute_zetas
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - pow
    - Botan::ceil_log2
    - std::array::size
    - csubq
    - bitreverse
    linkageType: ''
    returnType: auto
    signature: auto precompute_zetas(T q, T monty, T root_of_unity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::array<uint8_t, bytes>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: Botan::detail::Bounded_XOF::default_transformer
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto default_transformer(std::array<uint8_t, bytes> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: Botan::detail::Bounded_XOF::default_predicate
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool default_predicate(T /*v*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::detail::Bounded_XOF::Bounded_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Bounded_XOF()\n         requires std::default_initializable<XofT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - xof
    argTypes:
    - XofT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: Botan::detail::Bounded_XOF::Bounded_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bounded_XOF(XofT xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::Bounded_XOF::next
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:181,1
    - Dst: std::forward<PredicateFnT>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: Botan::detail::Bounded_XOF::next_byte
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - Botan::detail::Bounded_XOF::next
    - std::forward<PredicateFnT>
    linkageType: ''
    returnType: auto
    signature: auto next_byte(PredicateFnT&& predicate = default_predicate<1, uint8_t>)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transformer
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:197,1
    - Dst: Botan::detail::Bounded_XOF::take
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:197,1
    - Dst: predicate
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: Botan::detail::Bounded_XOF::next
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 1
    functionsReached:
    - predicate
    - Botan::detail::Bounded_XOF::take
    - transformer
    linkageType: ''
    returnType: auto
    signature: "auto next(const MapFnT& transformer = default_transformer<bytes>,\n
      \                         const PredicateFnT& predicate = default_predicate<bytes,
      MappedValueT<bytes, MapFnT>>)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:209,1
    - Dst: template output<bytes>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: Botan::detail::Bounded_XOF::take
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 1
    functionsReached:
    - template output<bytes>
    - Internal_Error
    linkageType: ''
    returnType: std::array<uint8_t, bytes>
    signature: std::array<uint8_t, bytes> take()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::array<uint8_t, bytes>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: Botan::detail::Bounded_XOF::default_transformer
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto default_transformer(std::array<uint8_t, bytes> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: Botan::detail::Bounded_XOF::default_predicate
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool default_predicate(T /*v*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::detail::Bounded_XOF::Bounded_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Bounded_XOF()\n         requires std::default_initializable<XofT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - xof
    argTypes:
    - XofT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: Botan::detail::Bounded_XOF::Bounded_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bounded_XOF(XofT xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::Bounded_XOF::next
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:181,1
    - Dst: std::forward<PredicateFnT>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: Botan::detail::Bounded_XOF::next_byte
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - Botan::detail::Bounded_XOF::next
    - std::forward<PredicateFnT>
    linkageType: ''
    returnType: auto
    signature: auto next_byte(PredicateFnT&& predicate = default_predicate<1, uint8_t>)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transformer
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:197,1
    - Dst: Botan::detail::Bounded_XOF::take
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:197,1
    - Dst: predicate
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: Botan::detail::Bounded_XOF::next
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 2
    functionsReached:
    - predicate
    - Botan::detail::Bounded_XOF::take
    - transformer
    linkageType: ''
    returnType: auto
    signature: "auto next(const MapFnT& transformer = default_transformer<bytes>,\n
      \                         const PredicateFnT& predicate = default_predicate<bytes,
      MappedValueT<bytes, MapFnT>>)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:209,1
    - Dst: template output<bytes>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: Botan::detail::Bounded_XOF::take
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 2
    functionsReached:
    - template output<bytes>
    - Internal_Error
    linkageType: ''
    returnType: std::array<uint8_t, bytes>
    signature: std::array<uint8_t, bytes> take()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T2
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan::montgomery_R
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 1
    functionsReached:
    - T2
    linkageType: ''
    returnType: T
    signature: T montgomery_R(T q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:54,1
    - Dst: Botan::montgomery_R
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:54,1
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:54,1
    - Dst: Botan::montgomery_R
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::montgomery_R2
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - Botan::montgomery_R
    - static_cast<T2>
    linkageType: ''
    returnType: T
    signature: T montgomery_R2(T q)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:71,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:82,1
    - Dst: std::make_tuple
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:82,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:82,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:83,1
    - Dst: std::make_tuple
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:83,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:83,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: Botan::extended_euclidean_algorithm
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 1
    functionsReached:
    - std::make_tuple
    - Botan::swap
    - std::tie
    - static_cast<T>
    linkageType: ''
    returnType: eea_result<T>
    signature: eea_result<T> extended_euclidean_algorithm(T a, T b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T2
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:97,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:98,1
    - Dst: Botan::extended_euclidean_algorithm
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Botan::modular_inverse
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - static_cast<T>
    - Botan::extended_euclidean_algorithm
    - T2
    linkageType: ''
    returnType: T
    signature: T modular_inverse(T q, T2 m = T2(1) << sizeof(T) * 8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: Botan::bitlen
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - Botan::ceil_log2
    linkageType: ''
    returnType: auto
    signature: auto bitlen(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:117,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:134,1
    - Dst: csubq
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:135,1
    - Dst: pow
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:135,1
    - Dst: bitreverse
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - q
    - monty
    - root_of_unity
    argTypes:
    - T
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: Botan::precompute_zetas
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - pow
    - Botan::ceil_log2
    - std::array::size
    - csubq
    - bitreverse
    linkageType: ''
    returnType: auto
    signature: auto precompute_zetas(T q, T monty, T root_of_unity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::array<uint8_t, bytes>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: Botan::detail::Bounded_XOF::default_transformer
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto default_transformer(std::array<uint8_t, bytes> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: Botan::detail::Bounded_XOF::default_predicate
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool default_predicate(T /*v*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::detail::Bounded_XOF::Bounded_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Bounded_XOF()\n         requires std::default_initializable<XofT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - xof
    argTypes:
    - XofT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: Botan::detail::Bounded_XOF::Bounded_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bounded_XOF(XofT xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::Bounded_XOF::next
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:181,1
    - Dst: std::forward<PredicateFnT>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: Botan::detail::Bounded_XOF::next_byte
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - Botan::detail::Bounded_XOF::next
    - std::forward<PredicateFnT>
    linkageType: ''
    returnType: auto
    signature: auto next_byte(PredicateFnT&& predicate = default_predicate<1, uint8_t>)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transformer
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:197,1
    - Dst: Botan::detail::Bounded_XOF::take
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:197,1
    - Dst: predicate
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: Botan::detail::Bounded_XOF::next
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 3
    functionsReached:
    - predicate
    - Botan::detail::Bounded_XOF::take
    - transformer
    linkageType: ''
    returnType: auto
    signature: "auto next(const MapFnT& transformer = default_transformer<bytes>,\n
      \                         const PredicateFnT& predicate = default_predicate<bytes,
      MappedValueT<bytes, MapFnT>>)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:209,1
    - Dst: template output<bytes>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: Botan::detail::Bounded_XOF::take
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 3
    functionsReached:
    - template output<bytes>
    - Internal_Error
    linkageType: ''
    returnType: std::array<uint8_t, bytes>
    signature: std::array<uint8_t, bytes> take()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::array<uint8_t, bytes>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: Botan::detail::Bounded_XOF::default_transformer
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: auto default_transformer(std::array<uint8_t, bytes> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: Botan::detail::Bounded_XOF::default_predicate
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool default_predicate(T /*v*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: Botan::detail::Bounded_XOF::Bounded_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Bounded_XOF()\n         requires std::default_initializable<XofT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - xof
    argTypes:
    - XofT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: Botan::detail::Bounded_XOF::Bounded_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bounded_XOF(XofT xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::detail::Bounded_XOF::next
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:181,1
    - Dst: std::forward<PredicateFnT>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: Botan::detail::Bounded_XOF::next_byte
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 0
    functionsReached:
    - Botan::detail::Bounded_XOF::next
    - std::forward<PredicateFnT>
    linkageType: ''
    returnType: auto
    signature: auto next_byte(PredicateFnT&& predicate = default_predicate<1, uint8_t>)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transformer
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:197,1
    - Dst: Botan::detail::Bounded_XOF::take
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:197,1
    - Dst: predicate
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: Botan::detail::Bounded_XOF::next
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 4
    functionsReached:
    - predicate
    - Botan::detail::Bounded_XOF::take
    - transformer
    linkageType: ''
    returnType: auto
    signature: "auto next(const MapFnT& transformer = default_transformer<bytes>,\n
      \                         const PredicateFnT& predicate = default_predicate<bytes,
      MappedValueT<bytes, MapFnT>>)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:209,1
    - Dst: template output<bytes>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: Botan::detail::Bounded_XOF::take
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_helpers.h
    functionUses: 4
    functionsReached:
    - template output<bytes>
    - Internal_Error
    linkageType: ''
    returnType: std::array<uint8_t, bytes>
    signature: std::array<uint8_t, bytes> take()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' data'
    - label
    argTypes:
    - std::vector<uint8_t, Alloc>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::PEM_Code::encode
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.h
    functionUses: 27
    functionsReached:
    - size
    - data
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string encode(const std::vector<uint8_t, Alloc>& data, std::string_view
      label, size_t line_width = 64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' data'
    - label
    argTypes:
    - std::vector<uint8_t, Alloc>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::PEM_Code::encode
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.h
    functionUses: 28
    functionsReached:
    - size
    - data
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string encode(const std::vector<uint8_t, Alloc>& data, std::string_view
      label, size_t line_width = 64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' data'
    - label
    argTypes:
    - std::vector<uint8_t, Alloc>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::PEM_Code::encode
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.h
    functionUses: 29
    functionsReached:
    - size
    - data
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string encode(const std::vector<uint8_t, Alloc>& data, std::string_view
      label, size_t line_width = 64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pem/pem.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' data'
    - label
    argTypes:
    - std::vector<uint8_t, Alloc>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::PEM_Code::encode
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.h
    functionUses: 30
    functionsReached:
    - size
    - data
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string encode(const std::vector<uint8_t, Alloc>& data, std::string_view
      label, size_t line_width = 64)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:21,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:23,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:25,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:27,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:27,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:28,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - width
    - in
    argTypes:
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: Botan::PEM_Code::linewrap
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - std::string::size
    - std::string_view::size
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string linewrap(size_t width, std::string_view in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:21,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:23,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:25,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:27,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:27,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:28,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - width
    - in
    argTypes:
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: Botan::PEM_Code::linewrap
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - std::string::size
    - std::string_view::size
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string linewrap(size_t width, std::string_view in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:40,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:41,1
    - Dst: Botan::PEM_Code::linewrap
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:43,1
    - Dst: base64_encode
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - der
    - length
    - label
    - width
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: Botan::PEM_Code::encode
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 30
    functionsReached:
    - base64_encode
    - Botan::PEM_Code::linewrap
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string encode(const uint8_t der[], size_t length, std::string_view
      label, size_t width)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:51,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:53,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' source'
    - label_want
    argTypes:
    - DataSource
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: Botan::PEM_Code::decode_check_label
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 16
    functionsReached:
    - fmt
    - Botan::PEM_Code::decode
    - Decoding_Error
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decode_check_label(DataSource& source, std::string_view
      label_want)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:65,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:71,1
    - Dst: read_byte
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:72,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:75,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:77,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:80,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:86,1
    - Dst: read_byte
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:87,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:90,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:92,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:95,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:99,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:105,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:107,1
    - Dst: read_byte
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:108,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:111,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:113,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:120,1
    - Dst: base64_decode
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:124,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:124,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 2
    argNames:
    - ' source'
    - ' label'
    argTypes:
    - DataSource
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 125
    functionName: Botan::PEM_Code::decode
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 13
    functionsReached:
    - fmt
    - base64_decode
    - read_byte
    - Decoding_Error
    - std::vector::push_back
    - std::vector::size
    - std::vector::data
    - clear
    - static_cast<char>
    - std::string::length
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decode(DataSource& source, std::string& label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pem
    - label_want
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: Botan::PEM_Code::decode_check_label
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 17
    functionsReached:
    - Botan::PEM_Code::decode_check_label
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decode_check_label(std::string_view pem, std::string_view
      label_want)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pem
    - ' label'
    argTypes:
    - std::string_view
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: Botan::PEM_Code::decode
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 14
    functionsReached:
    - Botan::PEM_Code::decode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decode(std::string_view pem, std::string& label)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:141,1
    - Dst: peek
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:144,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:144,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:144,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:146,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:153,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' source'
    - extra
    - search_range
    argTypes:
    - DataSource
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 165
    functionName: Botan::PEM_Code::matches
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 6
    functionsReached:
    - fmt
    - secure_vector::size
    - std::string::size
    - peek
    - static_cast<char>
    - secure_vector::data
    - std::string::length
    linkageType: ''
    returnType: bool
    signature: bool matches(DataSource& source, std::string_view extra, size_t search_range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:21,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:23,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:25,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:27,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:27,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:28,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - width
    - in
    argTypes:
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: Botan::PEM_Code::linewrap
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 1
    functionsReached:
    - std::string::push_back
    - std::string::size
    - std::string_view::size
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string linewrap(size_t width, std::string_view in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:21,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:23,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:25,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:27,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:27,1
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:28,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - width
    - in
    argTypes:
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: Botan::PEM_Code::linewrap
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 1
    functionsReached:
    - std::string::push_back
    - std::string::size
    - std::string_view::size
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string linewrap(size_t width, std::string_view in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:40,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:41,1
    - Dst: Botan::PEM_Code::linewrap
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:43,1
    - Dst: base64_encode
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - der
    - length
    - label
    - width
    argTypes:
    - uint8_t[]
    - size_t
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: Botan::PEM_Code::encode
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 30
    functionsReached:
    - base64_encode
    - Botan::PEM_Code::linewrap
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string encode(const uint8_t der[], size_t length, std::string_view
      label, size_t width)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:51,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:53,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' source'
    - label_want
    argTypes:
    - DataSource
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: Botan::PEM_Code::decode_check_label
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 17
    functionsReached:
    - fmt
    - Botan::PEM_Code::decode
    - Decoding_Error
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decode_check_label(DataSource& source, std::string_view
      label_want)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:65,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:71,1
    - Dst: read_byte
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:72,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:75,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:77,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:80,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:86,1
    - Dst: read_byte
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:87,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:90,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:92,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:95,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:99,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:105,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:107,1
    - Dst: read_byte
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:108,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:111,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:113,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:120,1
    - Dst: base64_decode
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:124,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:124,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:124,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 2
    argNames:
    - ' source'
    - ' label'
    argTypes:
    - DataSource
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 125
    functionName: Botan::PEM_Code::decode
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 15
    functionsReached:
    - fmt
    - base64_decode
    - read_byte
    - Decoding_Error
    - std::vector::push_back
    - std::vector::size
    - std::vector::data
    - clear
    - static_cast<char>
    - std::string::length
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decode(DataSource& source, std::string& label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pem
    - label_want
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: Botan::PEM_Code::decode_check_label
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 18
    functionsReached:
    - Botan::PEM_Code::decode_check_label
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decode_check_label(std::string_view pem, std::string_view
      label_want)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pem
    - ' label'
    argTypes:
    - std::string_view
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: Botan::PEM_Code::decode
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 16
    functionsReached:
    - Botan::PEM_Code::decode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> decode(std::string_view pem, std::string& label)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:141,1
    - Dst: peek
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:144,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:144,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:144,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:146,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:153,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/pubkey/pem/pem.cpp:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' source'
    - extra
    - search_range
    argTypes:
    - DataSource
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 165
    functionName: Botan::PEM_Code::matches
    functionSourceFile: /src/botan/src/lib/pubkey/pem/pem.cpp
    functionUses: 6
    functionsReached:
    - fmt
    - secure_vector::size
    - std::string::size
    - peek
    - static_cast<char>
    - secure_vector::data
    - std::string::length
    linkageType: ''
    returnType: bool
    signature: bool matches(DataSource& source, std::string_view extra, size_t search_range)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' public_point'
    argTypes:
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::ECKCDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_PublicKey(const EC_Group& group, const EC_Point& public_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::ECKCDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_PublicKey(const AlgorithmIdentifier& alg_id, std::span<const
      uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' public_point'
    argTypes:
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::ECKCDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_PublicKey(const EC_Group& group, const EC_Point& public_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Botan::ECKCDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_PublicKey(const AlgorithmIdentifier& alg_id, std::span<const
      uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECKCDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:26,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:26,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan::ECKCDSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECKCDSA_PublicKey>
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> ECKCDSA_PrivateKey::public_key() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:30,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: Botan::ECKCDSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::KeyPair::signature_consistency_check
    - Botan::EC_PrivateKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool ECKCDSA_PrivateKey::check_key(RandomNumberGenerator& rng, bool
      strong) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:44,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:51,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:51,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Algorithm_Not_Found
    - Botan::HashFunction::create
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> eckcdsa_signature_hash(std::string_view
      padding)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:63,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:63,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:69,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:70,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::oid
    - auto::size
    - Botan::split_on
    - Botan::HashFunction::create_or_throw
    - Botan::Decoding_Error
    - parameters_are_empty
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> eckcdsa_signature_hash(const AlgorithmIdentifier&
      alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::xy_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:77,1
    - Dst: auto::resize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' point'
    - hash_block_size
    argTypes:
    - EC_AffinePoint
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: Botan::eckcdsa_prefix
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::resize
    - Botan::xy_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> eckcdsa_prefix(const EC_AffinePoint& point, size_t
      hash_block_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:109,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: erase
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' digest'
    - group_order_bytes
    argTypes:
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: Botan::truncate_hash_if_needed
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::begin
    - Botan::size
    - erase
    linkageType: ''
    returnType: void
    signature: void truncate_hash_if_needed(std::vector<uint8_t>& digest, size_t group_order_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:121,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:122,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: Botan::ECKCDSA_Signature_Operation::ECKCDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - domain
    - hash_block_size
    - _private_key
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Signature_Operation(const ECKCDSA_PrivateKey& eckcdsa,
      std::string_view padding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:129,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: Botan::ECKCDSA_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    - Dst: Botan::ECKCDSA_Signature_Operation::raw_sign
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: Botan::ECKCDSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::raw_sign
    - final_stdvec
    - truncate_hash_if_needed
    - get_order_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::ECKCDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: Botan::ECKCDSA_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:159,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:160,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: Botan::ECKCDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - name
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECKCDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:165,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:171,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:171,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:175,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:176,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:179,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:180,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:183,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 184
    functionName: Botan::ECKCDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 1
    functionsReached:
    - auto::is_zero
    - concat
    - Botan::EC_Scalar::random
    - xor_buf
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bytes_mod_order
    - truncate_hash_if_needed
    - final_stdvec
    - Internal_Error
    - get_order_bytes
    - auto::serialize
    - Botan::ECKCDSA_Signature_Operation::update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECKCDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:192,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:193,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - hash_block_size
    - domain
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation(const ECKCDSA_PublicKey& eckcdsa,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:199,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:200,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - ' alg_id'
    argTypes:
    - ECKCDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - hash_block_size
    - domain
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation(const ECKCDSA_PublicKey& eckcdsa,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::ECKCDSA_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: Botan::ECKCDSA_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 1
    functionsReached:
    - size
    - data
    - Botan::ECKCDSA_Verification_Operation::update
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation::update(std::span<const uint8_t>
      msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    - Dst: Botan::ECKCDSA_Verification_Operation::verify
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: Botan::ECKCDSA_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Verification_Operation::verify
    - final_stdvec
    - truncate_hash_if_needed
    - get_order_bytes
    linkageType: ''
    returnType: bool
    signature: bool ECKCDSA_Verification_Operation::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:237,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:239,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:239,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:240,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:244,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:248,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:248,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:250,1
    - Dst: mul2_vartime
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,1
    - Dst: constant_time_compare
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - msg
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 260
    functionName: Botan::ECKCDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 1
    functionsReached:
    - min
    - auto::size
    - xor_buf
    - mul2_vartime
    - Botan::EC_Scalar::from_bytes_mod_order
    - auto::value
    - truncate_hash_if_needed
    - std::span<const uint8_t>::last
    - constant_time_compare
    - auto::x_bytes
    - get_order_bytes
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - Botan::EC_Scalar::deserialize
    - process
    linkageType: ''
    returnType: bool
    signature: bool ECKCDSA_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:44,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:51,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:51,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Algorithm_Not_Found
    - Botan::HashFunction::create
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> eckcdsa_signature_hash(std::string_view
      padding)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:63,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:63,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:69,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:70,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::oid
    - auto::size
    - Botan::split_on
    - Botan::HashFunction::create_or_throw
    - Botan::Decoding_Error
    - parameters_are_empty
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> eckcdsa_signature_hash(const AlgorithmIdentifier&
      alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::xy_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:77,1
    - Dst: auto::resize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' point'
    - hash_block_size
    argTypes:
    - EC_AffinePoint
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: Botan::eckcdsa_prefix
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::resize
    - Botan::xy_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> eckcdsa_prefix(const EC_AffinePoint& point, size_t
      hash_block_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:109,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: erase
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' digest'
    - group_order_bytes
    argTypes:
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: Botan::truncate_hash_if_needed
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::begin
    - Botan::size
    - erase
    linkageType: ''
    returnType: void
    signature: void truncate_hash_if_needed(std::vector<uint8_t>& digest, size_t group_order_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:121,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:122,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: Botan::ECKCDSA_Signature_Operation::ECKCDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - domain
    - hash_block_size
    - _private_key
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Signature_Operation(const ECKCDSA_PrivateKey& eckcdsa,
      std::string_view padding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:129,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: Botan::ECKCDSA_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 3
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    - Dst: Botan::ECKCDSA_Signature_Operation::raw_sign
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: Botan::ECKCDSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::raw_sign
    - final_stdvec
    - truncate_hash_if_needed
    - get_order_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::ECKCDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: Botan::ECKCDSA_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:159,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:160,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: Botan::ECKCDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - name
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECKCDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:165,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:171,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:171,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:175,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:176,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:179,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:180,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:183,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 184
    functionName: Botan::ECKCDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 2
    functionsReached:
    - auto::is_zero
    - concat
    - Botan::EC_Scalar::random
    - xor_buf
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bytes_mod_order
    - truncate_hash_if_needed
    - final_stdvec
    - Internal_Error
    - get_order_bytes
    - auto::serialize
    - Botan::ECKCDSA_Signature_Operation::update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECKCDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:192,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:193,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - hash_block_size
    - domain
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation(const ECKCDSA_PublicKey& eckcdsa,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:199,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:200,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - ' alg_id'
    argTypes:
    - ECKCDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - hash_block_size
    - domain
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation(const ECKCDSA_PublicKey& eckcdsa,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::ECKCDSA_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: Botan::ECKCDSA_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 2
    functionsReached:
    - size
    - data
    - Botan::ECKCDSA_Verification_Operation::update
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation::update(std::span<const uint8_t>
      msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    - Dst: Botan::ECKCDSA_Verification_Operation::verify
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: Botan::ECKCDSA_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Verification_Operation::verify
    - final_stdvec
    - truncate_hash_if_needed
    - get_order_bytes
    linkageType: ''
    returnType: bool
    signature: bool ECKCDSA_Verification_Operation::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:237,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:239,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:239,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:240,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:244,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:248,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:248,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:250,1
    - Dst: mul2_vartime
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,1
    - Dst: constant_time_compare
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - msg
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 260
    functionName: Botan::ECKCDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 2
    functionsReached:
    - min
    - auto::size
    - xor_buf
    - mul2_vartime
    - Botan::EC_Scalar::from_bytes_mod_order
    - auto::value
    - truncate_hash_if_needed
    - std::span<const uint8_t>::last
    - constant_time_compare
    - auto::x_bytes
    - get_order_bytes
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - Botan::EC_Scalar::deserialize
    - process
    linkageType: ''
    returnType: bool
    signature: bool ECKCDSA_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: Botan::ECKCDSA_PublicKey::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> ECKCDSA_PublicKey::_signature_element_size_for_DER_encoding()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:269,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: Botan::ECKCDSA_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<ECKCDSA_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> ECKCDSA_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:274,1
    - Dst: std::make_unique<ECKCDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:275,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:277,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: Botan::ECKCDSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<ECKCDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECKCDSA_PublicKey::create_verification_op(std::string_view
      params,\n                                                                                std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:282,1
    - Dst: std::make_unique<ECKCDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:283,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:286,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: Botan::ECKCDSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<ECKCDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECKCDSA_PublicKey::create_x509_verification_op(\n
      \  const AlgorithmIdentifier& signature_algorithm, std::string_view provider)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:292,1
    - Dst: std::make_unique<ECKCDSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:293,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:295,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: Botan::ECKCDSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - algo_name
    - std::make_unique<ECKCDSA_Signature_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> ECKCDSA_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                           std::string_view
      params,\n                                                                           std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECKCDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:26,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:26,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan::ECKCDSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECKCDSA_PublicKey>
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> ECKCDSA_PrivateKey::public_key() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:30,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: Botan::ECKCDSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::KeyPair::signature_consistency_check
    - Botan::EC_PrivateKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool ECKCDSA_PrivateKey::check_key(RandomNumberGenerator& rng, bool
      strong) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:44,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:51,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:51,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Algorithm_Not_Found
    - Botan::HashFunction::create
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> eckcdsa_signature_hash(std::string_view
      padding)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:63,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:63,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:69,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:70,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::oid
    - auto::size
    - Botan::split_on
    - Botan::HashFunction::create_or_throw
    - Botan::Decoding_Error
    - parameters_are_empty
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> eckcdsa_signature_hash(const AlgorithmIdentifier&
      alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::xy_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:77,1
    - Dst: auto::resize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' point'
    - hash_block_size
    argTypes:
    - EC_AffinePoint
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: Botan::eckcdsa_prefix
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::resize
    - Botan::xy_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> eckcdsa_prefix(const EC_AffinePoint& point, size_t
      hash_block_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:109,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: erase
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' digest'
    - group_order_bytes
    argTypes:
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: Botan::truncate_hash_if_needed
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::begin
    - Botan::size
    - erase
    linkageType: ''
    returnType: void
    signature: void truncate_hash_if_needed(std::vector<uint8_t>& digest, size_t group_order_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:121,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:122,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: Botan::ECKCDSA_Signature_Operation::ECKCDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - domain
    - hash_block_size
    - _private_key
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Signature_Operation(const ECKCDSA_PrivateKey& eckcdsa,
      std::string_view padding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:129,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: Botan::ECKCDSA_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 5
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    - Dst: Botan::ECKCDSA_Signature_Operation::raw_sign
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: Botan::ECKCDSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::raw_sign
    - final_stdvec
    - truncate_hash_if_needed
    - get_order_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::ECKCDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: Botan::ECKCDSA_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:159,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:160,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: Botan::ECKCDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - name
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECKCDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:165,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:171,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:171,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:175,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:176,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:179,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:180,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:183,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 184
    functionName: Botan::ECKCDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 3
    functionsReached:
    - auto::is_zero
    - concat
    - Botan::EC_Scalar::random
    - xor_buf
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bytes_mod_order
    - truncate_hash_if_needed
    - final_stdvec
    - Internal_Error
    - get_order_bytes
    - auto::serialize
    - Botan::ECKCDSA_Signature_Operation::update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECKCDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:192,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:193,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - hash_block_size
    - domain
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation(const ECKCDSA_PublicKey& eckcdsa,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:199,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:200,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - ' alg_id'
    argTypes:
    - ECKCDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - hash_block_size
    - domain
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation(const ECKCDSA_PublicKey& eckcdsa,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::ECKCDSA_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: Botan::ECKCDSA_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 3
    functionsReached:
    - size
    - data
    - Botan::ECKCDSA_Verification_Operation::update
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation::update(std::span<const uint8_t>
      msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    - Dst: Botan::ECKCDSA_Verification_Operation::verify
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: Botan::ECKCDSA_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Verification_Operation::verify
    - final_stdvec
    - truncate_hash_if_needed
    - get_order_bytes
    linkageType: ''
    returnType: bool
    signature: bool ECKCDSA_Verification_Operation::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:237,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:239,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:239,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:240,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:244,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:248,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:248,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:250,1
    - Dst: mul2_vartime
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,1
    - Dst: constant_time_compare
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - msg
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 260
    functionName: Botan::ECKCDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 3
    functionsReached:
    - min
    - auto::size
    - xor_buf
    - mul2_vartime
    - Botan::EC_Scalar::from_bytes_mod_order
    - auto::value
    - truncate_hash_if_needed
    - std::span<const uint8_t>::last
    - constant_time_compare
    - auto::x_bytes
    - get_order_bytes
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - Botan::EC_Scalar::deserialize
    - process
    linkageType: ''
    returnType: bool
    signature: bool ECKCDSA_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:44,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:51,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:51,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Algorithm_Not_Found
    - Botan::HashFunction::create
    - SCAN_Name::algo_name
    - SCAN_Name::arg_count
    - SCAN_Name::arg
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> eckcdsa_signature_hash(std::string_view
      padding)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:63,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:63,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:66,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:69,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:70,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::oid
    - auto::size
    - Botan::split_on
    - Botan::HashFunction::create_or_throw
    - Botan::Decoding_Error
    - parameters_are_empty
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> eckcdsa_signature_hash(const AlgorithmIdentifier&
      alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::xy_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:77,1
    - Dst: auto::resize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' point'
    - hash_block_size
    argTypes:
    - EC_AffinePoint
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: Botan::eckcdsa_prefix
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::resize
    - Botan::xy_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> eckcdsa_prefix(const EC_AffinePoint& point, size_t
      hash_block_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:109,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: erase
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' digest'
    - group_order_bytes
    argTypes:
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: Botan::truncate_hash_if_needed
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::begin
    - Botan::size
    - erase
    linkageType: ''
    returnType: void
    signature: void truncate_hash_if_needed(std::vector<uint8_t>& digest, size_t group_order_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:121,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:122,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: Botan::ECKCDSA_Signature_Operation::ECKCDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - domain
    - hash_block_size
    - _private_key
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Signature_Operation(const ECKCDSA_PrivateKey& eckcdsa,
      std::string_view padding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:129,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: Botan::ECKCDSA_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 7
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    - Dst: Botan::ECKCDSA_Signature_Operation::raw_sign
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: Botan::ECKCDSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::raw_sign
    - final_stdvec
    - truncate_hash_if_needed
    - get_order_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::ECKCDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: Botan::ECKCDSA_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:159,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:160,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: Botan::ECKCDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - name
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECKCDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:165,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:171,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:171,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:175,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:176,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:179,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:180,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:183,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 184
    functionName: Botan::ECKCDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 4
    functionsReached:
    - auto::is_zero
    - concat
    - Botan::EC_Scalar::random
    - xor_buf
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bytes_mod_order
    - truncate_hash_if_needed
    - final_stdvec
    - Internal_Error
    - get_order_bytes
    - auto::serialize
    - Botan::ECKCDSA_Signature_Operation::update
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECKCDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:192,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:193,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - hash_block_size
    - domain
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation(const ECKCDSA_PublicKey& eckcdsa,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:199,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:200,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - ' alg_id'
    argTypes:
    - ECKCDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - eckcdsa_prefix
    - _public_ec_point
    - hash_block_size
    - domain
    - eckcdsa_signature_hash
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation(const ECKCDSA_PublicKey& eckcdsa,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::ECKCDSA_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:224,1
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: Botan::ECKCDSA_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 4
    functionsReached:
    - size
    - data
    - Botan::ECKCDSA_Verification_Operation::update
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_Verification_Operation::update(std::span<const uint8_t>
      msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    - Dst: Botan::ECKCDSA_Verification_Operation::verify
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: Botan::ECKCDSA_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Verification_Operation::verify
    - final_stdvec
    - truncate_hash_if_needed
    - get_order_bytes
    linkageType: ''
    returnType: bool
    signature: bool ECKCDSA_Verification_Operation::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:237,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:239,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:239,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:240,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:244,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:248,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:248,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:250,1
    - Dst: mul2_vartime
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,1
    - Dst: constant_time_compare
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - msg
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 260
    functionName: Botan::ECKCDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 4
    functionsReached:
    - min
    - auto::size
    - xor_buf
    - mul2_vartime
    - Botan::EC_Scalar::from_bytes_mod_order
    - auto::value
    - truncate_hash_if_needed
    - std::span<const uint8_t>::last
    - constant_time_compare
    - auto::x_bytes
    - get_order_bytes
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    - Botan::EC_Scalar::deserialize
    - process
    linkageType: ''
    returnType: bool
    signature: bool ECKCDSA_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: Botan::ECKCDSA_PublicKey::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> ECKCDSA_PublicKey::_signature_element_size_for_DER_encoding()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:269,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: Botan::ECKCDSA_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<ECKCDSA_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> ECKCDSA_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:274,1
    - Dst: std::make_unique<ECKCDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:275,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:277,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: Botan::ECKCDSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<ECKCDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECKCDSA_PublicKey::create_verification_op(std::string_view
      params,\n                                                                                std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:282,1
    - Dst: std::make_unique<ECKCDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:283,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:286,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: Botan::ECKCDSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<ECKCDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECKCDSA_PublicKey::create_x509_verification_op(\n
      \  const AlgorithmIdentifier& signature_algorithm, std::string_view provider)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:292,1
    - Dst: std::make_unique<ECKCDSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:293,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:295,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: Botan::ECKCDSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - algo_name
    - std::make_unique<ECKCDSA_Signature_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> ECKCDSA_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                           std::string_view
      params,\n                                                                           std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group'
    - ' y'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: Botan::ElGamal_PublicKey::ElGamal_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PublicKey>
    linkageType: ''
    returnType: void
    signature: void ElGamal_PublicKey::ElGamal_PublicKey(const DL_Group& group, const
      BigInt& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::ElGamal_PublicKey::ElGamal_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PublicKey>
    linkageType: ''
    returnType: void
    signature: void ElGamal_PublicKey::ElGamal_PublicKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ElGamal_PublicKey::estimated_strength
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan::ElGamal_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 1
    functionsReached:
    - Botan::ElGamal_PublicKey::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t ElGamal_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::ElGamal_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - p_bits
    linkageType: ''
    returnType: size_t
    signature: size_t ElGamal_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:36,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:36,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::ElGamal_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - object_identifier
    - AlgorithmIdentifier
    - group
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ElGamal_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_as_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::ElGamal_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - public_key_as_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ElGamal_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::ElGamal_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ElGamal_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:48,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: '& ElGamal_PublicKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & ElGamal_PublicKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ElGamal_PrivateKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:52,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::ElGamal_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ElGamal_PrivateKey>
    - group
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> ElGamal_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ElGamal_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::ElGamal_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 1
    functionsReached:
    - Botan::ElGamal_PublicKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool ElGamal_PublicKey::check_key(RandomNumberGenerator& rng, bool
      strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:60,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - RandomNumberGenerator
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::ElGamal_PrivateKey::public_key
    - std::make_shared<DL_PrivateKey>
    linkageType: ''
    returnType: void
    signature: void ElGamal_PrivateKey::ElGamal_PrivateKey(RandomNumberGenerator&
      rng, const DL_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:65,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::ElGamal_PrivateKey::public_key
    - std::make_shared<DL_PrivateKey>
    linkageType: ''
    returnType: void
    signature: void ElGamal_PrivateKey::ElGamal_PrivateKey(const DL_Group& group,
      const BigInt& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:70,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::ElGamal_PrivateKey::public_key
    - std::make_shared<DL_PrivateKey>
    linkageType: ''
    returnType: void
    signature: void ElGamal_PrivateKey::ElGamal_PrivateKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Public_Key>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:75,1
    - Dst: ElGamal_PublicKey::ElGamal_PublicKey
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan::ElGamal_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 3
    functionsReached:
    - std::unique_ptr<Public_Key>
    - ElGamal_PublicKey::ElGamal_PublicKey
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> ElGamal_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:79,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: '& ElGamal_PrivateKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & ElGamal_PrivateKey::get_int_field(std::string_view field)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::ElGamal_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ElGamal_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ElGamal_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::ElGamal_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 1
    functionsReached:
    - Botan::ElGamal_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ElGamal_PrivateKey::raw_private_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ElGamal_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:91,1
    - Dst: Botan::KeyPair::encryption_consistency_check
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: Botan::ElGamal_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 1
    functionsReached:
    - Botan::KeyPair::encryption_consistency_check
    - Botan::ElGamal_PrivateKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool ElGamal_PrivateKey::check_key(RandomNumberGenerator& rng, bool
      strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' key'
    - padding
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: Botan::ElGamal_Encryption_Operation::ElGamal_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - monty_precompute
    - public_key
    - group
    linkageType: ''
    returnType: void
    signature: void ElGamal_Encryption_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::ElGamal_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t /*ptext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::ElGamal_Encryption_Operation::max_ptext_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t max_ptext_input_bits() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:132,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:134,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:135,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:146,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:150,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:150,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:152,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:155,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:155,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:156,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptext
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 158
    functionName: Botan::ElGamal_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - power_g_p
    - get_p
    - Invalid_Argument
    - monty_execute
    - BigInt::serialize_to
    - p_bytes
    - p_bits
    - BufferStuffer::next
    - multiply_mod_p
    - group
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> ElGamal_Encryption_Operation::raw_encrypt(std::span<const
      uint8_t> ptext,\n                                                               RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:171,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - padding
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: Botan::ElGamal_Decryption_Operation::ElGamal_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - group
    linkageType: ''
    returnType: void
    signature: "void ElGamal_Decryption_Operation(const std::shared_ptr<const DL_PrivateKey>&
      key,\n                                   std::string_view padding,\n                                   RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::ElGamal_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t /*ctext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:181,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: Botan::ElGamal_Decryption_Operation::powermod_x_p
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 1
    functionsReached:
    - private_key
    - group
    linkageType: ''
    returnType: BigInt
    signature: BigInt powermod_x_p(const BigInt& v) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:188,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:190,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:192,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:196,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:197,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:200,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:203,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: inverse_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ctext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 208
    functionName: Botan::ElGamal_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - blind
    - Invalid_Argument
    - get_p
    - inverse_mod_p
    - unblind
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - p_bytes
    - std::span<const uint8_t>::last
    - group
    - multiply_mod_p
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ElGamal_Decryption_Operation::raw_decrypt(std::span<const
      uint8_t> ctext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' key'
    - padding
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: Botan::ElGamal_Encryption_Operation::ElGamal_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - monty_precompute
    - public_key
    - group
    linkageType: ''
    returnType: void
    signature: void ElGamal_Encryption_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::ElGamal_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t /*ptext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::ElGamal_Encryption_Operation::max_ptext_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t max_ptext_input_bits() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:132,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:134,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:135,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:146,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:150,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:150,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:152,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:155,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:155,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:156,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptext
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 158
    functionName: Botan::ElGamal_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - power_g_p
    - get_p
    - Invalid_Argument
    - monty_execute
    - BigInt::serialize_to
    - p_bytes
    - p_bits
    - BufferStuffer::next
    - multiply_mod_p
    - group
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> ElGamal_Encryption_Operation::raw_encrypt(std::span<const
      uint8_t> ptext,\n                                                               RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:171,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - padding
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: Botan::ElGamal_Decryption_Operation::ElGamal_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - group
    linkageType: ''
    returnType: void
    signature: "void ElGamal_Decryption_Operation(const std::shared_ptr<const DL_PrivateKey>&
      key,\n                                   std::string_view padding,\n                                   RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::ElGamal_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t /*ctext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:181,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: Botan::ElGamal_Decryption_Operation::powermod_x_p
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 3
    functionsReached:
    - private_key
    - group
    linkageType: ''
    returnType: BigInt
    signature: BigInt powermod_x_p(const BigInt& v) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:188,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:190,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:192,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:196,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:197,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:200,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:203,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: inverse_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ctext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 208
    functionName: Botan::ElGamal_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - blind
    - Invalid_Argument
    - get_p
    - inverse_mod_p
    - unblind
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - p_bytes
    - std::span<const uint8_t>::last
    - group
    - multiply_mod_p
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ElGamal_Decryption_Operation::raw_decrypt(std::span<const
      uint8_t> ctext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:215,1
    - Dst: std::make_unique<ElGamal_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:216,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:218,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: Botan::ElGamal_PublicKey::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - algo_name
    - std::make_unique<ElGamal_Encryption_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Encryption>
    signature: "std::unique_ptr<PK_Ops::Encryption> ElGamal_PublicKey::create_encryption_op(RandomNumberGenerator&
      /*rng*/,\n                                                                            std::string_view
      params,\n                                                                            std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:224,1
    - Dst: std::make_unique<ElGamal_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:225,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:227,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: Botan::ElGamal_PrivateKey::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<ElGamal_Decryption_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Decryption>
    signature: "std::unique_ptr<PK_Ops::Decryption> ElGamal_PrivateKey::create_decryption_op(RandomNumberGenerator&
      rng,\n                                                                             std::string_view
      params,\n                                                                             std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group'
    - ' y'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: Botan::ElGamal_PublicKey::ElGamal_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PublicKey>
    linkageType: ''
    returnType: void
    signature: void ElGamal_PublicKey::ElGamal_PublicKey(const DL_Group& group, const
      BigInt& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::ElGamal_PublicKey::ElGamal_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PublicKey>
    linkageType: ''
    returnType: void
    signature: void ElGamal_PublicKey::ElGamal_PublicKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ElGamal_PublicKey::estimated_strength
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan::ElGamal_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 2
    functionsReached:
    - Botan::ElGamal_PublicKey::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t ElGamal_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: Botan::ElGamal_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - p_bits
    linkageType: ''
    returnType: size_t
    signature: size_t ElGamal_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:36,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:36,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::ElGamal_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - object_identifier
    - AlgorithmIdentifier
    - group
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ElGamal_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_as_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::ElGamal_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - public_key_as_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ElGamal_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan::ElGamal_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ElGamal_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:48,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: '& ElGamal_PublicKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & ElGamal_PublicKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ElGamal_PrivateKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:52,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::ElGamal_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ElGamal_PrivateKey>
    - group
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> ElGamal_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ElGamal_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::ElGamal_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 2
    functionsReached:
    - Botan::ElGamal_PublicKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool ElGamal_PublicKey::check_key(RandomNumberGenerator& rng, bool
      strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:60,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - RandomNumberGenerator
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::ElGamal_PrivateKey::public_key
    - std::make_shared<DL_PrivateKey>
    linkageType: ''
    returnType: void
    signature: void ElGamal_PrivateKey::ElGamal_PrivateKey(RandomNumberGenerator&
      rng, const DL_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:65,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::ElGamal_PrivateKey::public_key
    - std::make_shared<DL_PrivateKey>
    linkageType: ''
    returnType: void
    signature: void ElGamal_PrivateKey::ElGamal_PrivateKey(const DL_Group& group,
      const BigInt& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:70,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::ElGamal_PrivateKey::public_key
    - std::make_shared<DL_PrivateKey>
    linkageType: ''
    returnType: void
    signature: void ElGamal_PrivateKey::ElGamal_PrivateKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Public_Key>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:75,1
    - Dst: ElGamal_PublicKey::ElGamal_PublicKey
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Botan::ElGamal_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 6
    functionsReached:
    - std::unique_ptr<Public_Key>
    - ElGamal_PublicKey::ElGamal_PublicKey
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> ElGamal_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:79,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: '& ElGamal_PrivateKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & ElGamal_PrivateKey::get_int_field(std::string_view field)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::ElGamal_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ElGamal_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ElGamal_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::ElGamal_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 2
    functionsReached:
    - Botan::ElGamal_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ElGamal_PrivateKey::raw_private_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ElGamal_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:91,1
    - Dst: Botan::KeyPair::encryption_consistency_check
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: Botan::ElGamal_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 2
    functionsReached:
    - Botan::KeyPair::encryption_consistency_check
    - Botan::ElGamal_PrivateKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool ElGamal_PrivateKey::check_key(RandomNumberGenerator& rng, bool
      strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' key'
    - padding
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: Botan::ElGamal_Encryption_Operation::ElGamal_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - monty_precompute
    - public_key
    - group
    linkageType: ''
    returnType: void
    signature: void ElGamal_Encryption_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::ElGamal_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t /*ptext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::ElGamal_Encryption_Operation::max_ptext_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t max_ptext_input_bits() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:132,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:134,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:135,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:146,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:150,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:150,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:152,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:155,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:155,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:156,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptext
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 158
    functionName: Botan::ElGamal_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - power_g_p
    - get_p
    - Invalid_Argument
    - monty_execute
    - BigInt::serialize_to
    - p_bytes
    - p_bits
    - BufferStuffer::next
    - multiply_mod_p
    - group
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> ElGamal_Encryption_Operation::raw_encrypt(std::span<const
      uint8_t> ptext,\n                                                               RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:171,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - padding
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: Botan::ElGamal_Decryption_Operation::ElGamal_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - group
    linkageType: ''
    returnType: void
    signature: "void ElGamal_Decryption_Operation(const std::shared_ptr<const DL_PrivateKey>&
      key,\n                                   std::string_view padding,\n                                   RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::ElGamal_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t /*ctext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:181,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: Botan::ElGamal_Decryption_Operation::powermod_x_p
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 5
    functionsReached:
    - private_key
    - group
    linkageType: ''
    returnType: BigInt
    signature: BigInt powermod_x_p(const BigInt& v) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:188,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:190,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:192,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:196,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:197,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:200,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:203,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: inverse_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ctext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 208
    functionName: Botan::ElGamal_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - blind
    - Invalid_Argument
    - get_p
    - inverse_mod_p
    - unblind
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - p_bytes
    - std::span<const uint8_t>::last
    - group
    - multiply_mod_p
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ElGamal_Decryption_Operation::raw_decrypt(std::span<const
      uint8_t> ctext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' key'
    - padding
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: Botan::ElGamal_Encryption_Operation::ElGamal_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - monty_precompute
    - public_key
    - group
    linkageType: ''
    returnType: void
    signature: void ElGamal_Encryption_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: Botan::ElGamal_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t /*ptext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::ElGamal_Encryption_Operation::max_ptext_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t max_ptext_input_bits() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:132,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:134,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:135,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:146,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:150,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:150,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:152,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:155,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:155,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:156,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptext
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 158
    functionName: Botan::ElGamal_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - power_g_p
    - get_p
    - Invalid_Argument
    - monty_execute
    - BigInt::serialize_to
    - p_bytes
    - p_bits
    - BufferStuffer::next
    - multiply_mod_p
    - group
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> ElGamal_Encryption_Operation::raw_encrypt(std::span<const
      uint8_t> ptext,\n                                                               RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:171,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - padding
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: Botan::ElGamal_Decryption_Operation::ElGamal_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - group
    linkageType: ''
    returnType: void
    signature: "void ElGamal_Decryption_Operation(const std::shared_ptr<const DL_PrivateKey>&
      key,\n                                   std::string_view padding,\n                                   RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: Botan::ElGamal_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t /*ctext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:181,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: Botan::ElGamal_Decryption_Operation::powermod_x_p
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 7
    functionsReached:
    - private_key
    - group
    linkageType: ''
    returnType: BigInt
    signature: BigInt powermod_x_p(const BigInt& v) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:188,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:190,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:192,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:196,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:197,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:200,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:203,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: inverse_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:205,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ctext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 208
    functionName: Botan::ElGamal_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - blind
    - Invalid_Argument
    - get_p
    - inverse_mod_p
    - unblind
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - p_bytes
    - std::span<const uint8_t>::last
    - group
    - multiply_mod_p
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ElGamal_Decryption_Operation::raw_decrypt(std::span<const
      uint8_t> ctext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:215,1
    - Dst: std::make_unique<ElGamal_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:216,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:218,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: Botan::ElGamal_PublicKey::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - algo_name
    - std::make_unique<ElGamal_Encryption_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Encryption>
    signature: "std::unique_ptr<PK_Ops::Encryption> ElGamal_PublicKey::create_encryption_op(RandomNumberGenerator&
      /*rng*/,\n                                                                            std::string_view
      params,\n                                                                            std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:224,1
    - Dst: std::make_unique<ElGamal_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:225,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:227,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: Botan::ElGamal_PrivateKey::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<ElGamal_Decryption_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Decryption>
    signature: "std::unique_ptr<PK_Ops::Decryption> ElGamal_PrivateKey::create_decryption_op(RandomNumberGenerator&
      rng,\n                                                                             std::string_view
      params,\n                                                                             std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::ElGamal_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ElGamal_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::ElGamal_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ElGamal_PublicKey(std::shared_ptr<const DL_PublicKey> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::ElGamal_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ElGamal_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::ElGamal_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ElGamal_PublicKey(std::shared_ptr<const DL_PublicKey> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: '& encryptors()'
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PK_KEM_Encryptor>
    signature: std::vector<PK_KEM_Encryptor> & encryptors()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: '& encryptors() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PK_KEM_Encryptor>
    signature: std::vector<PK_KEM_Encryptor> & encryptors() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '& decryptors()'
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PK_KEM_Decryptor>
    signature: std::vector<PK_KEM_Decryptor> & decryptors()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: '& decryptors() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PK_KEM_Decryptor>
    signature: std::vector<PK_KEM_Decryptor> & decryptors() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: '& encryptors()'
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PK_KEM_Encryptor>
    signature: std::vector<PK_KEM_Encryptor> & encryptors()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: '& encryptors() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PK_KEM_Encryptor>
    signature: std::vector<PK_KEM_Encryptor> & encryptors() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '& decryptors()'
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PK_KEM_Decryptor>
    signature: std::vector<PK_KEM_Decryptor> & decryptors()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: '& decryptors() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<PK_KEM_Decryptor>
    signature: std::vector<PK_KEM_Decryptor> & decryptors() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:18,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:19,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:19,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:21,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:22,1
    - Dst: Botan::Hybrid_PublicKey::supports_operation
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:22,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:23,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:23,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:24,1
    - Dst: key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:24,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:25,1
    - Dst: estimated_strength
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: Botan::Hybrid_PublicKey::Hybrid_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - Botan::Hybrid_PublicKey::supports_operation
    - algo_name
    - std::move
    - max
    - BOTAN_ARG_CHECK
    - size
    - key_length
    - estimated_strength
    - fmt
    linkageType: ''
    returnType: void
    signature: void Hybrid_PublicKey::Hybrid_PublicKey(std::vector<std::unique_ptr<Public_Key>>
      pks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:30,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:30,1
    - Dst: Botan::Hybrid_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::Hybrid_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 1
    functionsReached:
    - Botan::Hybrid_PublicKey::check_key
    - public_keys
    - reduce
    linkageType: ''
    returnType: bool
    signature: bool Hybrid_PublicKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:34,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:34,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:34,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:35,1
    - Dst: Botan::Hybrid_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: Botan::Hybrid_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 1
    functionsReached:
    - concat
    - public_keys
    - std::vector<uint8_t>
    - reduce
    - Botan::Hybrid_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hybrid_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::Hybrid_PublicKey::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Hybrid_PublicKey::supports_operation(PublicKeyOperation op) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:46,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:46,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:47,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:48,1
    - Dst: generate_another
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: Botan::Hybrid_PublicKey::generate_other_sks_from_pks
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - generate_another
    - public_keys
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Private_Key>>
    signature: "std::vector<std::unique_ptr<Private_Key>> Hybrid_PublicKey::generate_other_sks_from_pks(\n
      \  RandomNumberGenerator& rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:54,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:55,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:55,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:57,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:58,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - private_keys
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: Botan::Hybrid_PrivateKey::Hybrid_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ARG_CHECK
    - size
    - supports_operation
    linkageType: ''
    returnType: void
    signature: void Hybrid_PrivateKey::Hybrid_PrivateKey(std::vector<std::unique_ptr<Private_Key>>
      private_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::Hybrid_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Hybrid_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:68,1
    - Dst: private_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:68,1
    - Dst: Botan::Hybrid_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::Hybrid_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 3
    functionsReached:
    - Botan::Hybrid_PrivateKey::check_key
    - private_keys
    - reduce
    linkageType: ''
    returnType: bool
    signature: bool Hybrid_PrivateKey::check_key(RandomNumberGenerator& rng, bool
      strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:74,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:74,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:76,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:77,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' private_keys'
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan::Hybrid_PrivateKey::extract_public_keys
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - size
    - public_key
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Public_Key>>
    signature: "std::vector<std::unique_ptr<Public_Key>> Hybrid_PrivateKey::extract_public_keys(\n
      \  const std::vector<std::unique_ptr<Private_Key>>& private_keys)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:18,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:19,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:19,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:21,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:22,1
    - Dst: Botan::Hybrid_PublicKey::supports_operation
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:22,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:23,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:23,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:24,1
    - Dst: key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:24,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:25,1
    - Dst: estimated_strength
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: Botan::Hybrid_PublicKey::Hybrid_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - Botan::Hybrid_PublicKey::supports_operation
    - algo_name
    - std::move
    - max
    - BOTAN_ARG_CHECK
    - size
    - key_length
    - estimated_strength
    - fmt
    linkageType: ''
    returnType: void
    signature: void Hybrid_PublicKey::Hybrid_PublicKey(std::vector<std::unique_ptr<Public_Key>>
      pks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:30,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:30,1
    - Dst: Botan::Hybrid_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::Hybrid_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 2
    functionsReached:
    - Botan::Hybrid_PublicKey::check_key
    - public_keys
    - reduce
    linkageType: ''
    returnType: bool
    signature: bool Hybrid_PublicKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:34,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:34,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:34,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:35,1
    - Dst: Botan::Hybrid_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: Botan::Hybrid_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 2
    functionsReached:
    - concat
    - public_keys
    - std::vector<uint8_t>
    - reduce
    - Botan::Hybrid_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hybrid_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::Hybrid_PublicKey::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Hybrid_PublicKey::supports_operation(PublicKeyOperation op) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:46,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:46,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:47,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:48,1
    - Dst: generate_another
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: Botan::Hybrid_PublicKey::generate_other_sks_from_pks
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - generate_another
    - public_keys
    - std::vector::push_back
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Private_Key>>
    signature: "std::vector<std::unique_ptr<Private_Key>> Hybrid_PublicKey::generate_other_sks_from_pks(\n
      \  RandomNumberGenerator& rng) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:54,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:55,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:55,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:57,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:58,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - private_keys
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: Botan::Hybrid_PrivateKey::Hybrid_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ARG_CHECK
    - size
    - supports_operation
    linkageType: ''
    returnType: void
    signature: void Hybrid_PrivateKey::Hybrid_PrivateKey(std::vector<std::unique_ptr<Private_Key>>
      private_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::Hybrid_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Hybrid_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:68,1
    - Dst: private_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:68,1
    - Dst: Botan::Hybrid_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::Hybrid_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 4
    functionsReached:
    - Botan::Hybrid_PrivateKey::check_key
    - private_keys
    - reduce
    linkageType: ''
    returnType: bool
    signature: bool Hybrid_PrivateKey::check_key(RandomNumberGenerator& rng, bool
      strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:74,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:74,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:76,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:77,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' private_keys'
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan::Hybrid_PrivateKey::extract_public_keys
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - size
    - public_key
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Public_Key>>
    signature: "std::vector<std::unique_ptr<Public_Key>> Hybrid_PrivateKey::extract_public_keys(\n
      \  const std::vector<std::unique_ptr<Private_Key>>& private_keys)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:19,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:19,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:21,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' public_keys'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: Botan::KEM_Encryption_with_Combiner::KEM_Encryption_with_Combiner
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - size
    - emplace_back
    - reserve
    linkageType: ''
    returnType: void
    signature: "void KEM_Encryption_with_Combiner::KEM_Encryption_with_Combiner(const
      std::vector<std::unique_ptr<Public_Key>>& public_keys,\n                                                           std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:31,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:31,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:31,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:33,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:33,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:33,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:37,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:37,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:40,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:40,1
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:43,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:44,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:45,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:45,1
    - Dst: Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:47,1
    - Dst: combine_shared_secrets
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 49
    functionName: Botan::KEM_Encryption_with_Combiner::kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - shared_key_length
    - Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
    - std::vector::push_back
    - std::span<uint8_t>::size
    - KEM_Encapsulation::destructure
    - std::move
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - size
    - combine_shared_secrets
    - encrypt
    linkageType: ''
    returnType: void
    signature: "void KEM_Encryption_with_Combiner::kem_encrypt(std::span<uint8_t>
      out_encapsulated_key,\n                                               std::span<uint8_t>
      out_shared_key,\n                                               RandomNumberGenerator&
      rng,\n                                               size_t desired_shared_key_len,\n
      \                                              std::span<const uint8_t> salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:54,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:54,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:55,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:55,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:55,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:56,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:56,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:56,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:58,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:59,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:59,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:59,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:61,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:61,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:63,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - out_ciphertext
    - ' ciphertexts'
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::vector<std::vector<uint8_t>>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - BufferStuffer::full
    - std::span<uint8_t>::size
    - BufferStuffer::append
    - BOTAN_ARG_CHECK
    - size
    - at
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: "void KEM_Encryption_with_Combiner::combine_ciphertexts(std::span<uint8_t>
      out_ciphertext,\n                                                       const
      std::vector<std::vector<uint8_t>>& ciphertexts,\n                                                       std::span<const
      uint8_t> salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:71,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:71,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:73,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' private_keys'
    - ' rng'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: Botan::KEM_Decryption_with_Combiner::KEM_Decryption_with_Combiner
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    - size
    - emplace_back
    - reserve
    linkageType: ''
    returnType: void
    signature: "void KEM_Decryption_with_Combiner::KEM_Decryption_with_Combiner(\n
      \  const std::vector<std::unique_ptr<Private_Key>>& private_keys,\n   RandomNumberGenerator&
      rng,\n   std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:83,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:83,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:83,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:86,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:86,1
    - Dst: Botan::KEM_Decryption_with_Combiner::split_ciphertexts
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:87,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:88,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:90,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:91,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:91,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:91,1
    - Dst: combine_shared_secrets
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - out_shared_key
    - encapsulated_key
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 95
    functionName: Botan::KEM_Decryption_with_Combiner::kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::KEM_Decryption_with_Combiner::split_ciphertexts
    - shared_key_length
    - auto::size
    - std::vector::push_back
    - std::span<uint8_t>::size
    - BOTAN_ASSERT
    - auto::at
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - size
    - at
    - combine_shared_secrets
    - std::span<const uint8_t>::size
    - Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    linkageType: ''
    returnType: void
    signature: "void KEM_Decryption_with_Combiner::kem_decrypt(std::span<uint8_t>
      out_shared_key,\n                                               std::span<const
      uint8_t> encapsulated_key,\n                                               size_t
      desired_shared_key_len,\n                                               std::span<const
      uint8_t> salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:99,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:99,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:99,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:101,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:101,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:104,1
    - Dst: BufferSlicer::copy_as_vector
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:104,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:104,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:106,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - concat_ciphertext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: Botan::KEM_Decryption_with_Combiner::split_ciphertexts
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 1
    functionsReached:
    - BufferSlicer::empty
    - std::vector::push_back
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - size
    - BufferSlicer::copy_as_vector
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: "std::vector<std::vector<uint8_t>> KEM_Decryption_with_Combiner::split_ciphertexts(\n
      \  std::span<const uint8_t> concat_ciphertext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:19,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:19,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:21,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' public_keys'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: Botan::KEM_Encryption_with_Combiner::KEM_Encryption_with_Combiner
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - size
    - emplace_back
    - reserve
    linkageType: ''
    returnType: void
    signature: "void KEM_Encryption_with_Combiner::KEM_Encryption_with_Combiner(const
      std::vector<std::unique_ptr<Public_Key>>& public_keys,\n                                                           std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:31,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:31,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:31,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:33,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:33,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:33,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:37,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:37,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:40,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:40,1
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:43,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:44,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:45,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:45,1
    - Dst: Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:47,1
    - Dst: combine_shared_secrets
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 49
    functionName: Botan::KEM_Encryption_with_Combiner::kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - shared_key_length
    - Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
    - std::vector::push_back
    - std::span<uint8_t>::size
    - KEM_Encapsulation::destructure
    - std::move
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - size
    - combine_shared_secrets
    - encrypt
    linkageType: ''
    returnType: void
    signature: "void KEM_Encryption_with_Combiner::kem_encrypt(std::span<uint8_t>
      out_encapsulated_key,\n                                               std::span<uint8_t>
      out_shared_key,\n                                               RandomNumberGenerator&
      rng,\n                                               size_t desired_shared_key_len,\n
      \                                              std::span<const uint8_t> salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:54,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:54,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:55,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:55,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:55,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:56,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:56,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:56,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:58,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:59,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:59,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:59,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:61,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:61,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:63,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - out_ciphertext
    - ' ciphertexts'
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::vector<std::vector<uint8_t>>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - BufferStuffer::full
    - std::span<uint8_t>::size
    - BufferStuffer::append
    - BOTAN_ARG_CHECK
    - size
    - at
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: "void KEM_Encryption_with_Combiner::combine_ciphertexts(std::span<uint8_t>
      out_ciphertext,\n                                                       const
      std::vector<std::vector<uint8_t>>& ciphertexts,\n                                                       std::span<const
      uint8_t> salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:71,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:71,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:73,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' private_keys'
    - ' rng'
    - provider
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: Botan::KEM_Decryption_with_Combiner::KEM_Decryption_with_Combiner
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    - size
    - emplace_back
    - reserve
    linkageType: ''
    returnType: void
    signature: "void KEM_Decryption_with_Combiner::KEM_Decryption_with_Combiner(\n
      \  const std::vector<std::unique_ptr<Private_Key>>& private_keys,\n   RandomNumberGenerator&
      rng,\n   std::string_view provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:83,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:83,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:83,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:86,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:86,1
    - Dst: Botan::KEM_Decryption_with_Combiner::split_ciphertexts
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:87,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:88,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:90,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:91,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:91,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:91,1
    - Dst: combine_shared_secrets
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - out_shared_key
    - encapsulated_key
    - desired_shared_key_len
    - salt
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    - size_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 95
    functionName: Botan::KEM_Decryption_with_Combiner::kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 0
    functionsReached:
    - Botan::KEM_Decryption_with_Combiner::split_ciphertexts
    - shared_key_length
    - auto::size
    - std::vector::push_back
    - std::span<uint8_t>::size
    - BOTAN_ASSERT
    - auto::at
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - size
    - at
    - combine_shared_secrets
    - std::span<const uint8_t>::size
    - Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    linkageType: ''
    returnType: void
    signature: "void KEM_Decryption_with_Combiner::kem_decrypt(std::span<uint8_t>
      out_shared_key,\n                                               std::span<const
      uint8_t> encapsulated_key,\n                                               size_t
      desired_shared_key_len,\n                                               std::span<const
      uint8_t> salt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:99,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:99,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:99,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:101,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:101,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:104,1
    - Dst: BufferSlicer::copy_as_vector
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:104,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:104,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:106,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - concat_ciphertext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: Botan::KEM_Decryption_with_Combiner::split_ciphertexts
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 2
    functionsReached:
    - BufferSlicer::empty
    - std::vector::push_back
    - std::vector::reserve
    - BOTAN_ARG_CHECK
    - size
    - BufferSlicer::copy_as_vector
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: "std::vector<std::vector<uint8_t>> KEM_Decryption_with_Combiner::split_ciphertexts(\n
      \  std::span<const uint8_t> concat_ciphertext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h:61,1
    - Dst: Botan::Hybrid_PublicKey
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 84
    functionName: Botan::Hybrid_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 1
    functionsReached:
    - Botan::Hybrid_PublicKey
    - raw_public_key_bits
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Hybrid_PublicKey
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::Hybrid_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hybrid_PublicKey(Hybrid_PublicKey&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::Hybrid_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hybrid_PublicKey(const Hybrid_PublicKey&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: ~Hybrid_PublicKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Hybrid_PublicKey() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::public_keys
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Public_Key>>
    signature: std::vector<std::unique_ptr<Public_Key>> & public_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hybrid_PrivateKey
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 129
    functionName: Botan::BOTAN_DIAGNOSTIC_IGNORE_INHERITED_VIA_DOMINANCE
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached:
    - Botan::Hybrid_PrivateKey
    linkageType: ''
    returnType: BOTAN_DIAGNOSTIC_PUSH
    signature: BOTAN_DIAGNOSTIC_PUSH BOTAN_DIAGNOSTIC_IGNORE_INHERITED_VIA_DOMINANCE
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan::Hybrid_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hybrid_PrivateKey(Hybrid_PrivateKey&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: ~Hybrid_PrivateKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Hybrid_PrivateKey() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::private_keys
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Private_Key>>
    signature: std::vector<std::unique_ptr<Private_Key>> & private_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h:61,1
    - Dst: Botan::Hybrid_PublicKey
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 84
    functionName: Botan::Hybrid_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 2
    functionsReached:
    - Botan::Hybrid_PublicKey
    - raw_public_key_bits
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Hybrid_PublicKey
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::Hybrid_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hybrid_PublicKey(Hybrid_PublicKey&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::Hybrid_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hybrid_PublicKey(const Hybrid_PublicKey&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: ~Hybrid_PublicKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Hybrid_PublicKey() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::public_keys
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Public_Key>>
    signature: std::vector<std::unique_ptr<Public_Key>> & public_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Hybrid_PrivateKey
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 129
    functionName: Botan::BOTAN_DIAGNOSTIC_IGNORE_INHERITED_VIA_DOMINANCE
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached:
    - Botan::Hybrid_PrivateKey
    linkageType: ''
    returnType: BOTAN_DIAGNOSTIC_PUSH
    signature: BOTAN_DIAGNOSTIC_PUSH BOTAN_DIAGNOSTIC_IGNORE_INHERITED_VIA_DOMINANCE
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan::Hybrid_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hybrid_PrivateKey(Hybrid_PrivateKey&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: ~Hybrid_PrivateKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Hybrid_PrivateKey() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::private_keys
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Private_Key>>
    signature: std::vector<std::unique_ptr<Private_Key>> & private_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_hash::new_object
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:20,1
    - Dst: m_msg_hash::new_object
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: Botan::XMSS_Hash::XMSS_Hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp
    functionUses: 0
    functionsReached:
    - m_hash::new_object
    - m_msg_hash::new_object
    linkageType: ''
    returnType: void
    signature: void XMSS_Hash::XMSS_Hash(const XMSS_Hash& hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:25,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:25,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:26,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:26,1
    - Dst: hash_id_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:27,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:29,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:29,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:29,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:32,1
    - Dst: Botan::XMSS_Hash::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: Botan::XMSS_Hash::XMSS_Hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Hash::output_length
    - Lookup_Error
    - hash_id_size
    - Botan::HashFunction::create
    - hash_function_name
    - fmt
    linkageType: ''
    returnType: void
    signature: void XMSS_Hash::XMSS_Hash(const XMSS_Parameters& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:38,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:39,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:40,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:41,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:41,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:41,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:42,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:42,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:42,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:43,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:43,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - randomness
    - root
    - index_bytes
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: Botan::XMSS_Hash::h_msg_init
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp
    functionUses: 0
    functionsReached:
    - clear
    - update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: "void XMSS_Hash::h_msg_init(std::span<const uint8_t> randomness,\n
      \                          std::span<const uint8_t> root,\n                           std::span<const
      uint8_t> index_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:47,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:47,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::XMSS_Hash::h_msg_update
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - update
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void XMSS_Hash::h_msg_update(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan::XMSS_Hash::h_msg_final
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_Hash::h_msg_final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_hash::new_object
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:20,1
    - Dst: m_msg_hash::new_object
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: Botan::XMSS_Hash::XMSS_Hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp
    functionUses: 0
    functionsReached:
    - m_hash::new_object
    - m_msg_hash::new_object
    linkageType: ''
    returnType: void
    signature: void XMSS_Hash::XMSS_Hash(const XMSS_Hash& hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:25,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:25,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:26,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:26,1
    - Dst: hash_id_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:27,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:29,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:29,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:29,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:32,1
    - Dst: Botan::XMSS_Hash::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: Botan::XMSS_Hash::XMSS_Hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Hash::output_length
    - Lookup_Error
    - hash_id_size
    - Botan::HashFunction::create
    - hash_function_name
    - fmt
    linkageType: ''
    returnType: void
    signature: void XMSS_Hash::XMSS_Hash(const XMSS_Parameters& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:38,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:39,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:40,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:41,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:41,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:41,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:42,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:42,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:42,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:43,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:43,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - randomness
    - root
    - index_bytes
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: Botan::XMSS_Hash::h_msg_init
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp
    functionUses: 0
    functionsReached:
    - clear
    - update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: "void XMSS_Hash::h_msg_init(std::span<const uint8_t> randomness,\n
      \                          std::span<const uint8_t> root,\n                           std::span<const
      uint8_t> index_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:47,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:47,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::XMSS_Hash::h_msg_update
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - update
    - std::span<const uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void XMSS_Hash::h_msg_update(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan::XMSS_Hash::h_msg_final
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.cpp
    functionUses: 0
    functionsReached:
    - final
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_Hash::h_msg_final()
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp:86,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp:86,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 87
    functionName: Botan::XMSS_Parameters::xmss_id_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp
    functionUses: 4
    functionsReached:
    - Lookup_Error
    - fmt
    linkageType: ''
    returnType: XMSS_Parameters::xmss_algorithm_t
    signature: XMSS_Parameters::xmss_algorithm_t XMSS_Parameters::xmss_id_from_string(std::string_view
      param_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Parameters::xmss_id_from_string
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: Botan::XMSS_Parameters::XMSS_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp
    functionUses: 8
    functionsReached:
    - Botan::XMSS_Parameters::xmss_id_from_string
    linkageType: ''
    returnType: void
    signature: void XMSS_Parameters::XMSS_Parameters(std::string_view param_set)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp:327,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp:327,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 236
    argCount: 1
    argNames:
    - oid
    argTypes:
    - xmss_algorithm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 329
    functionName: Botan::XMSS_Parameters::XMSS_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp
    functionUses: 8
    functionsReached:
    - Not_Implemented
    - std::to_string
    linkageType: ''
    returnType: void
    signature: void XMSS_Parameters::XMSS_Parameters(xmss_algorithm_t oid)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp:86,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp:86,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 87
    functionName: Botan::XMSS_Parameters::xmss_id_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp
    functionUses: 5
    functionsReached:
    - Lookup_Error
    - fmt
    linkageType: ''
    returnType: XMSS_Parameters::xmss_algorithm_t
    signature: XMSS_Parameters::xmss_algorithm_t XMSS_Parameters::xmss_id_from_string(std::string_view
      param_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Parameters::xmss_id_from_string
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: Botan::XMSS_Parameters::XMSS_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp
    functionUses: 8
    functionsReached:
    - Botan::XMSS_Parameters::xmss_id_from_string
    linkageType: ''
    returnType: void
    signature: void XMSS_Parameters::XMSS_Parameters(std::string_view param_set)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp:327,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp:327,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 236
    argCount: 1
    argNames:
    - oid
    argTypes:
    - xmss_algorithm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 329
    functionName: Botan::XMSS_Parameters::XMSS_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp
    functionUses: 8
    functionsReached:
    - Not_Implemented
    - std::to_string
    linkageType: ''
    returnType: void
    signature: void XMSS_Parameters::XMSS_Parameters(xmss_algorithm_t oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:54,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:54,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:55,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: XMSS_Address::set_hash_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:63,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:63,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:71,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,1
    - Dst: f
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - ' params'
    - ' result'
    - start_idx
    - steps
    - adrs
    - seed
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - secure_vector<uint8_t>
    - size_t
    - size_t
    - XMSS_Address
    - std::span<const uint8_t>
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 77
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - f
    - Botan::xor_buf
    - secure_vector::data
    - Botan::data
    - prf
    - Botan::wots_parameter
    - Botan::size
    - XMSS_Address::set_key_mask_mode
    - XMSS_Address::set_hash_address
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - XMSS_Address::bytes
    linkageType: ''
    returnType: void
    signature: "void chain(const XMSS_WOTS_Parameters& params,\n           secure_vector<uint8_t>&
      result,\n           size_t start_idx,\n           size_t steps,\n           XMSS_Address
      adrs,\n           std::span<const uint8_t> seed,\n           XMSS_Hash& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:54,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:54,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:55,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: XMSS_Address::set_hash_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:63,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:63,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:71,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,1
    - Dst: f
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - ' params'
    - ' result'
    - start_idx
    - steps
    - adrs
    - seed
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - secure_vector<uint8_t>
    - size_t
    - size_t
    - XMSS_Address
    - std::span<const uint8_t>
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 77
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - f
    - Botan::xor_buf
    - secure_vector::data
    - Botan::data
    - prf
    - Botan::wots_parameter
    - Botan::size
    - XMSS_Address::set_key_mask_mode
    - XMSS_Address::set_hash_address
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - XMSS_Address::bytes
    linkageType: ''
    returnType: void
    signature: "void chain(const XMSS_WOTS_Parameters& params,\n           secure_vector<uint8_t>&
      result,\n           size_t start_idx,\n           size_t steps,\n           XMSS_Address
      adrs,\n           std::span<const uint8_t> seed,\n           XMSS_Hash& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:86,1
    - Dst: key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:86,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:87,1
    - Dst: XMSS_Address::set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:88,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:88,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:89,1
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - params
    - public_seed
    - ' private_key'
    - adrs
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - std::span<const uint8_t>
    - XMSS_WOTS_PrivateKey
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: Botan::XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - key_data
    - static_cast<uint32_t>
    - std::move
    - wots_parameter
    - len
    - XMSS_Address::set_chain_address
    - chain
    linkageType: ''
    returnType: void
    signature: "void XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey(XMSS_WOTS_Parameters
      params,\n                                         std::span<const uint8_t> public_seed,\n
      \                                        const XMSS_WOTS_PrivateKey& private_key,\n
      \                                        XMSS_Address adrs,\n                                         XMSS_Hash&
      hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:99,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:99,1
    - Dst: base_w
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:100,1
    - Dst: len_1
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:100,1
    - Dst: append_checksum
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:102,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:104,1
    - Dst: XMSS_Address::set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:105,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:105,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:106,1
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - params
    - public_seed
    - signature
    - ' msg'
    - adrs
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - std::span<const uint8_t>
    - wots_keysig_t
    - secure_vector<uint8_t>
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: Botan::XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - std::move
    - base_w
    - append_checksum
    - len_1
    - wots_parameter
    - len
    - XMSS_Address::set_chain_address
    - chain
    linkageType: ''
    returnType: void
    signature: "void XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey(XMSS_WOTS_Parameters
      params,\n                                         std::span<const uint8_t> public_seed,\n
      \                                        wots_keysig_t signature,\n                                         const
      secure_vector<uint8_t>& msg,\n                                         XMSS_Address
      adrs,\n                                         XMSS_Hash& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_w
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:120,1
    - Dst: len_1
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:120,1
    - Dst: append_checksum
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:122,1
    - Dst: Botan::XMSS_WOTS_PrivateKey::key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:123,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:125,1
    - Dst: XMSS_Address::set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:126,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:126,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' msg'
    - public_seed
    - adrs
    - ' hash'
    argTypes:
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 131
    functionName: Botan::XMSS_WOTS_PrivateKey::sign
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::XMSS_WOTS_PrivateKey::key_data
    - base_w
    - append_checksum
    - len_1
    - len
    - XMSS_Address::set_chain_address
    - chain
    linkageType: ''
    returnType: wots_keysig_t
    signature: "wots_keysig_t XMSS_WOTS_PrivateKey::sign(const secure_vector<uint8_t>&
      msg,\n                                         std::span<const uint8_t> public_seed,\n
      \                                        XMSS_Address adrs,\n                                         XMSS_Hash&
      hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:138,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:139,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:139,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:140,1
    - Dst: XMSS_Address::set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:141,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:141,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:142,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:142,1
    - Dst: prf_keygen
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - params
    - public_seed
    - private_seed
    - adrs
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: Botan::XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - concat
    - resize
    - static_cast<uint32_t>
    - std::move
    - len
    - prf_keygen
    - XMSS_Address::set_chain_address
    - XMSS_Address::bytes
    linkageType: ''
    returnType: void
    signature: "void XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey(XMSS_WOTS_Parameters
      params,\n                                           std::span<const uint8_t>
      public_seed,\n                                           std::span<const uint8_t>
      private_seed,\n                                           XMSS_Address adrs,\n
      \                                          XMSS_Hash& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:152,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:153,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:153,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:156,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:156,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:158,1
    - Dst: xmss_concat<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:159,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - params
    - private_seed
    - adrs
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - std::span<const uint8_t>
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: Botan::XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - resize
    - std::move
    - prf
    - len
    - xmss_concat<size_t>
    - XMSS_Address::bytes
    linkageType: ''
    returnType: void
    signature: "void XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey(XMSS_WOTS_Parameters
      params,\n                                           std::span<const uint8_t>
      private_seed,\n                                           XMSS_Address adrs,\n
      \                                          XMSS_Hash& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:54,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:54,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:55,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: XMSS_Address::set_hash_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:63,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:63,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:71,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,1
    - Dst: f
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - ' params'
    - ' result'
    - start_idx
    - steps
    - adrs
    - seed
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - secure_vector<uint8_t>
    - size_t
    - size_t
    - XMSS_Address
    - std::span<const uint8_t>
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 77
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - f
    - Botan::xor_buf
    - secure_vector::data
    - Botan::data
    - prf
    - Botan::wots_parameter
    - Botan::size
    - XMSS_Address::set_key_mask_mode
    - XMSS_Address::set_hash_address
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - XMSS_Address::bytes
    linkageType: ''
    returnType: void
    signature: "void chain(const XMSS_WOTS_Parameters& params,\n           secure_vector<uint8_t>&
      result,\n           size_t start_idx,\n           size_t steps,\n           XMSS_Address
      adrs,\n           std::span<const uint8_t> seed,\n           XMSS_Hash& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:54,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:54,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:55,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: XMSS_Address::set_hash_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:63,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:63,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:68,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:71,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,1
    - Dst: f
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - ' params'
    - ' result'
    - start_idx
    - steps
    - adrs
    - seed
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - secure_vector<uint8_t>
    - size_t
    - size_t
    - XMSS_Address
    - std::span<const uint8_t>
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 77
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - f
    - Botan::xor_buf
    - secure_vector::data
    - Botan::data
    - prf
    - Botan::wots_parameter
    - Botan::size
    - XMSS_Address::set_key_mask_mode
    - XMSS_Address::set_hash_address
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - XMSS_Address::bytes
    linkageType: ''
    returnType: void
    signature: "void chain(const XMSS_WOTS_Parameters& params,\n           secure_vector<uint8_t>&
      result,\n           size_t start_idx,\n           size_t steps,\n           XMSS_Address
      adrs,\n           std::span<const uint8_t> seed,\n           XMSS_Hash& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:86,1
    - Dst: key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:86,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:87,1
    - Dst: XMSS_Address::set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:88,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:88,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:89,1
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - params
    - public_seed
    - ' private_key'
    - adrs
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - std::span<const uint8_t>
    - XMSS_WOTS_PrivateKey
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: Botan::XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - key_data
    - static_cast<uint32_t>
    - std::move
    - wots_parameter
    - len
    - XMSS_Address::set_chain_address
    - chain
    linkageType: ''
    returnType: void
    signature: "void XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey(XMSS_WOTS_Parameters
      params,\n                                         std::span<const uint8_t> public_seed,\n
      \                                        const XMSS_WOTS_PrivateKey& private_key,\n
      \                                        XMSS_Address adrs,\n                                         XMSS_Hash&
      hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:99,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:99,1
    - Dst: base_w
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:100,1
    - Dst: len_1
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:100,1
    - Dst: append_checksum
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:102,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:104,1
    - Dst: XMSS_Address::set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:105,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:105,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:106,1
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - params
    - public_seed
    - signature
    - ' msg'
    - adrs
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - std::span<const uint8_t>
    - wots_keysig_t
    - secure_vector<uint8_t>
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: Botan::XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - std::move
    - base_w
    - append_checksum
    - len_1
    - wots_parameter
    - len
    - XMSS_Address::set_chain_address
    - chain
    linkageType: ''
    returnType: void
    signature: "void XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey(XMSS_WOTS_Parameters
      params,\n                                         std::span<const uint8_t> public_seed,\n
      \                                        wots_keysig_t signature,\n                                         const
      secure_vector<uint8_t>& msg,\n                                         XMSS_Address
      adrs,\n                                         XMSS_Hash& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_w
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:120,1
    - Dst: len_1
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:120,1
    - Dst: append_checksum
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:122,1
    - Dst: Botan::XMSS_WOTS_PrivateKey::key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:123,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:125,1
    - Dst: XMSS_Address::set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:126,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:126,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' msg'
    - public_seed
    - adrs
    - ' hash'
    argTypes:
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 131
    functionName: Botan::XMSS_WOTS_PrivateKey::sign
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::XMSS_WOTS_PrivateKey::key_data
    - base_w
    - append_checksum
    - len_1
    - len
    - XMSS_Address::set_chain_address
    - chain
    linkageType: ''
    returnType: wots_keysig_t
    signature: "wots_keysig_t XMSS_WOTS_PrivateKey::sign(const secure_vector<uint8_t>&
      msg,\n                                         std::span<const uint8_t> public_seed,\n
      \                                        XMSS_Address adrs,\n                                         XMSS_Hash&
      hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:138,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:139,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:139,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:140,1
    - Dst: XMSS_Address::set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:141,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:141,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:142,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:142,1
    - Dst: prf_keygen
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - params
    - public_seed
    - private_seed
    - adrs
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: Botan::XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - concat
    - resize
    - static_cast<uint32_t>
    - std::move
    - len
    - prf_keygen
    - XMSS_Address::set_chain_address
    - XMSS_Address::bytes
    linkageType: ''
    returnType: void
    signature: "void XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey(XMSS_WOTS_Parameters
      params,\n                                           std::span<const uint8_t>
      public_seed,\n                                           std::span<const uint8_t>
      private_seed,\n                                           XMSS_Address adrs,\n
      \                                          XMSS_Hash& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:152,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:153,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:153,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:156,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:156,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:158,1
    - Dst: xmss_concat<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:159,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - params
    - private_seed
    - adrs
    - ' hash'
    argTypes:
    - XMSS_WOTS_Parameters
    - std::span<const uint8_t>
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: Botan::XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - resize
    - std::move
    - prf
    - len
    - xmss_concat<size_t>
    - XMSS_Address::bytes
    linkageType: ''
    returnType: void
    signature: "void XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey(XMSS_WOTS_Parameters
      params,\n                                           std::span<const uint8_t>
      private_seed,\n                                           XMSS_Address adrs,\n
      \                                          XMSS_Hash& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - XMSS_WOTS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::XMSS_WOTS_Base::XMSS_WOTS_Base
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void XMSS_WOTS_Base(XMSS_WOTS_Parameters params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.h:29,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - params
    - key_data
    argTypes:
    - XMSS_WOTS_Parameters
    - wots_keysig_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: Botan::XMSS_WOTS_Base::XMSS_WOTS_Base
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void XMSS_WOTS_Base(XMSS_WOTS_Parameters params, wots_keysig_t key_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& key_data() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: wots_keysig_t
    signature: wots_keysig_t & key_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - XMSS_WOTS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::XMSS_WOTS_Base::XMSS_WOTS_Base
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void XMSS_WOTS_Base(XMSS_WOTS_Parameters params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.h:29,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - params
    - key_data
    argTypes:
    - XMSS_WOTS_Parameters
    - wots_keysig_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: Botan::XMSS_WOTS_Base::XMSS_WOTS_Base
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void XMSS_WOTS_Base(XMSS_WOTS_Parameters params, wots_keysig_t key_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& key_data() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: wots_keysig_t
    signature: wots_keysig_t & key_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::XMSS_Address::get_layer_addr
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_layer_addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::XMSS_Address::set_layer_addr
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void set_layer_addr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::XMSS_Address::get_tree_addr
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_tree_addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::XMSS_Address::set_tree_addr
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void set_tree_addr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Type>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::XMSS_Address::get_type
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - static_cast<Type>
    linkageType: ''
    returnType: Type
    signature: Type get_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:94,1
    - Dst: std::fill
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:95,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:95,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan::XMSS_Address::set_type
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - end
    - std::fill
    - static_cast<uint8_t>
    - begin
    linkageType: ''
    returnType: void
    signature: void set_type(Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Mask
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::XMSS_Address::get_key_mask_mode
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Key_Mask
    linkageType: ''
    returnType: Key_Mask
    signature: Key_Mask get_key_mask_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:113,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:113,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - Key_Mask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: Botan::XMSS_Address::set_key_mask_mode
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void set_key_mask_mode(Key_Mask value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:126,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:126,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: Botan::XMSS_Address::get_ots_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_ots_address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:140,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:140,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: Botan::XMSS_Address::set_ots_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_hi32
    linkageType: ''
    returnType: void
    signature: void set_ots_address(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:154,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:154,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: Botan::XMSS_Address::get_ltree_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_ltree_address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:168,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:168,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: Botan::XMSS_Address::set_ltree_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_hi32
    linkageType: ''
    returnType: void
    signature: void set_ltree_address(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:181,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:181,1
    - Dst: Botan::XMSS_Address::get_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: Botan::XMSS_Address::get_chain_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_lo32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_chain_address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:192,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:192,1
    - Dst: Botan::XMSS_Address::set_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: Botan::XMSS_Address::set_chain_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_lo32
    linkageType: ''
    returnType: void
    signature: void set_chain_address(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:206,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:206,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:206,1
    - Dst: Botan::XMSS_Address::get_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: Botan::XMSS_Address::get_tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_lo32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_tree_height() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:220,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:220,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:220,1
    - Dst: Botan::XMSS_Address::set_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: Botan::XMSS_Address::set_tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_lo32
    linkageType: ''
    returnType: void
    signature: void set_tree_height(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:234,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:234,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: Botan::XMSS_Address::get_hash_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_hash_address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:248,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:248,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: Botan::XMSS_Address::set_hash_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_hi32
    linkageType: ''
    returnType: void
    signature: void set_hash_address(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:262,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:262,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:262,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: Botan::XMSS_Address::get_tree_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_tree_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:276,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:276,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:276,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: Botan::XMSS_Address::set_tree_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_hi32
    linkageType: ''
    returnType: void
    signature: void set_tree_index(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 282
    functionName: Botan::XMSS_Address::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Address::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan::XMSS_Address::size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 1
    functionsReached:
    - Botan::XMSS_Address::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 289
    functionName: Botan::XMSS_Address::XMSS_Address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::set_type
    linkageType: ''
    returnType: void
    signature: void XMSS_Address()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: ~XMSS_Address()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~XMSS_Address()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan::XMSS_Address::XMSS_Address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Address(const XMSS_Address& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    functionName: Botan::XMSS_Address::XMSS_Address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Address(XMSS_Address&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    functionName: '& operator=(const XMSS_Address& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Address
    signature: XMSS_Address & operator=(const XMSS_Address& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: '& operator=(XMSS_Address&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Address
    signature: XMSS_Address & operator=(XMSS_Address&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan::XMSS_Address::XMSS_Address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::set_type
    linkageType: ''
    returnType: void
    signature: void XMSS_Address(Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: Botan::XMSS_Address::get_hi32
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_hi32(size_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - value
    argTypes:
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 311
    functionName: Botan::XMSS_Address::set_hi32
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_hi32(size_t offset, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: Botan::XMSS_Address::get_lo32
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_lo32(size_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - value
    argTypes:
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: Botan::XMSS_Address::set_lo32
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_lo32(size_t offset, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::XMSS_Address::get_layer_addr
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_layer_addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::XMSS_Address::set_layer_addr
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void set_layer_addr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::XMSS_Address::get_tree_addr
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_tree_addr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::XMSS_Address::set_tree_addr
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void set_tree_addr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Type>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::XMSS_Address::get_type
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 13
    functionsReached:
    - static_cast<Type>
    linkageType: ''
    returnType: Type
    signature: Type get_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:94,1
    - Dst: std::fill
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:95,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:95,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Botan::XMSS_Address::set_type
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 2
    functionsReached:
    - end
    - std::fill
    - static_cast<uint8_t>
    - begin
    linkageType: ''
    returnType: void
    signature: void set_type(Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key_Mask
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::XMSS_Address::get_key_mask_mode
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Key_Mask
    linkageType: ''
    returnType: Key_Mask
    signature: Key_Mask get_key_mask_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:113,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:113,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - Key_Mask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: Botan::XMSS_Address::set_key_mask_mode
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void set_key_mask_mode(Key_Mask value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:126,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:126,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: Botan::XMSS_Address::get_ots_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_ots_address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:140,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:140,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: Botan::XMSS_Address::set_ots_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_hi32
    linkageType: ''
    returnType: void
    signature: void set_ots_address(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:154,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:154,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: Botan::XMSS_Address::get_ltree_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_ltree_address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:168,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:168,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: Botan::XMSS_Address::set_ltree_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_hi32
    linkageType: ''
    returnType: void
    signature: void set_ltree_address(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:181,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:181,1
    - Dst: Botan::XMSS_Address::get_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: Botan::XMSS_Address::get_chain_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_lo32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_chain_address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:192,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:192,1
    - Dst: Botan::XMSS_Address::set_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: Botan::XMSS_Address::set_chain_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_lo32
    linkageType: ''
    returnType: void
    signature: void set_chain_address(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:206,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:206,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:206,1
    - Dst: Botan::XMSS_Address::get_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: Botan::XMSS_Address::get_tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_lo32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_tree_height() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:220,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:220,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:220,1
    - Dst: Botan::XMSS_Address::set_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: Botan::XMSS_Address::set_tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_lo32
    linkageType: ''
    returnType: void
    signature: void set_tree_height(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:234,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:234,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: Botan::XMSS_Address::get_hash_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_hash_address() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:248,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:248,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: Botan::XMSS_Address::set_hash_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_hi32
    linkageType: ''
    returnType: void
    signature: void set_hash_address(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:262,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:262,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:262,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: Botan::XMSS_Address::get_tree_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_tree_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:276,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:276,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:276,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: Botan::XMSS_Address::set_tree_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::set_hi32
    linkageType: ''
    returnType: void
    signature: void set_tree_index(uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 282
    functionName: Botan::XMSS_Address::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Address::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Botan::XMSS_Address::size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 2
    functionsReached:
    - Botan::XMSS_Address::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 289
    functionName: Botan::XMSS_Address::XMSS_Address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::set_type
    linkageType: ''
    returnType: void
    signature: void XMSS_Address()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: ~XMSS_Address()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~XMSS_Address()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: Botan::XMSS_Address::XMSS_Address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Address(const XMSS_Address& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    functionName: Botan::XMSS_Address::XMSS_Address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Address(XMSS_Address&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    functionName: '& operator=(const XMSS_Address& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Address
    signature: XMSS_Address & operator=(const XMSS_Address& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: '& operator=(XMSS_Address&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Address
    signature: XMSS_Address & operator=(XMSS_Address&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: Botan::XMSS_Address::XMSS_Address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::set_type
    linkageType: ''
    returnType: void
    signature: void XMSS_Address(Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: Botan::XMSS_Address::get_hi32
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_hi32(size_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - value
    argTypes:
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 311
    functionName: Botan::XMSS_Address::set_hi32
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_hi32(size_t offset, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: Botan::XMSS_Address::get_lo32
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_lo32(size_t offset) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - value
    argTypes:
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: Botan::XMSS_Address::set_lo32
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_lo32(size_t offset, uint32_t value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:17,1
    - Dst: XMSS_Parameters::len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:18,1
    - Dst: XMSS_Parameters::tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:18,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:18,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:19,1
    - Dst: XMSS_Parameters::total_number_of_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:26,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:27,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:30,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:31,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:32,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:32,1
    - Dst: XMSS_Parameters::len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:34,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:36,1
    - Dst: ots_signature::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:37,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:37,1
    - Dst: ots_signature::back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:38,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:38,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:39,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:39,1
    - Dst: ots_signature::back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:39,1
    - Dst: XMSS_Parameters::tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:42,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:44,1
    - Dst: authentication_path::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:45,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:45,1
    - Dst: authentication_path::back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:46,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:46,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:47,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:47,1
    - Dst: authentication_path::back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:47,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - oid
    - raw_sig
    argTypes:
    - XMSS_Parameters::xmss_algorithm_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 49
    functionName: Botan::XMSS_Signature::XMSS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp
    functionUses: 0
    functionsReached:
    - XMSS_Parameters::element_size
    - copy
    - Decoding_Error
    - authentication_path::push_back
    - XMSS_Parameters::total_number_of_signatures
    - authentication_path::back
    - secure_vector<uint8_t>
    - ots_signature::push_back
    - std::span<const uint8_t>::begin
    - ots_signature::back
    - XMSS_Parameters::tree_height
    - XMSS_Parameters::len
    - std::back_inserter
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature::XMSS_Signature(XMSS_Parameters::xmss_algorithm_t
      oid, std::span<const uint8_t> raw_sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:52,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:53,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:54,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:55,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:57,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:57,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:57,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:57,1
    - Dst: tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:59,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:60,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:60,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:60,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:60,1
    - Dst: tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:63,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:64,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:64,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:64,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: Botan::XMSS_Signature::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp
    functionUses: 0
    functionsReached:
    - tree
    - copy
    - begin
    - std::back_inserter
    - static_cast<uint8_t>
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> XMSS_Signature::bytes() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:17,1
    - Dst: XMSS_Parameters::len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:18,1
    - Dst: XMSS_Parameters::tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:18,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:18,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:19,1
    - Dst: XMSS_Parameters::total_number_of_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:26,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:27,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:30,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:31,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:32,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:32,1
    - Dst: XMSS_Parameters::len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:34,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:36,1
    - Dst: ots_signature::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:37,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:37,1
    - Dst: ots_signature::back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:38,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:38,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:39,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:39,1
    - Dst: ots_signature::back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:39,1
    - Dst: XMSS_Parameters::tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:42,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:44,1
    - Dst: authentication_path::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:45,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:45,1
    - Dst: authentication_path::back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:46,1
    - Dst: XMSS_Parameters::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:46,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:47,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:47,1
    - Dst: authentication_path::back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:47,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - oid
    - raw_sig
    argTypes:
    - XMSS_Parameters::xmss_algorithm_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 49
    functionName: Botan::XMSS_Signature::XMSS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp
    functionUses: 0
    functionsReached:
    - XMSS_Parameters::element_size
    - copy
    - Decoding_Error
    - authentication_path::push_back
    - XMSS_Parameters::total_number_of_signatures
    - authentication_path::back
    - secure_vector<uint8_t>
    - ots_signature::push_back
    - std::span<const uint8_t>::begin
    - ots_signature::back
    - XMSS_Parameters::tree_height
    - XMSS_Parameters::len
    - std::back_inserter
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature::XMSS_Signature(XMSS_Parameters::xmss_algorithm_t
      oid, std::span<const uint8_t> raw_sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:52,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:53,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:54,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:55,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:57,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:57,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:57,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:57,1
    - Dst: tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:59,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:60,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:60,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:60,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:60,1
    - Dst: tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:63,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:64,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:64,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:64,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: Botan::XMSS_Signature::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.cpp
    functionUses: 0
    functionsReached:
    - tree
    - copy
    - begin
    - std::back_inserter
    - static_cast<uint8_t>
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> XMSS_Signature::bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' public_key'
    argTypes:
    - XMSS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: Botan::XMSS_Verification_Operation::XMSS_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 0
    functionsReached:
    - xmss_parameters
    linkageType: ''
    returnType: void
    signature: void XMSS_Verification_Operation::XMSS_Verification_Operation(const
      XMSS_PublicKey& public_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:25,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:27,1
    - Dst: unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:27,1
    - Dst: XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:29,1
    - Dst: XMSS_Address::set_ots_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:30,1
    - Dst: ots_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:32,1
    - Dst: tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:33,1
    - Dst: XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:35,1
    - Dst: XMSS_Address::set_ltree_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:36,1
    - Dst: Botan::XMSS_Common_Ops::create_l_tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:39,1
    - Dst: XMSS_WOTS_PublicKey::key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:39,1
    - Dst: XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:41,1
    - Dst: XMSS_Address::set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:42,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:44,1
    - Dst: XMSS_Address::set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:45,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:45,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:46,1
    - Dst: XMSS_Address::set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:47,1
    - Dst: XMSS_Address::get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:47,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:48,1
    - Dst: tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:49,1
    - Dst: XMSS_Address::set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:51,1
    - Dst: XMSS_Address::get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:51,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:52,1
    - Dst: tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - ' sig'
    - ' msg'
    - ' seed'
    argTypes:
    - XMSS_Signature
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 58
    functionName: Botan::XMSS_Verification_Operation::root_from_signature
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - ots_oid
    - xmss_parameters
    - Botan::XMSS_Common_Ops::create_l_tree
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - XMSS_Address::set_tree_index
    - static_cast<size_t>
    - XMSS_Address::set_type
    - XMSS_Address::set_ltree_address
    - unused_leaf_index
    - XMSS_Address::get_tree_index
    - tree_height
    - tree
    - XMSS_WOTS_PublicKey::key_data
    - XMSS_Address::set_ots_address
    - XMSS_Address::set_tree_height
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> XMSS_Verification_Operation::root_from_signature(const
      XMSS_Signature& sig,\n                                                                        const
      secure_vector<uint8_t>& msg,\n                                                                        const
      secure_vector<uint8_t>& seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:64,1
    - Dst: unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:64,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:64,1
    - Dst: h_msg
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:65,1
    - Dst: randomness
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:65,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:65,1
    - Dst: Botan::XMSS_Verification_Operation::root_from_signature
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:67,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:67,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' sig'
    - ' msg'
    - ' public_key'
    argTypes:
    - XMSS_Signature
    - secure_vector<uint8_t>
    - XMSS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: Botan::XMSS_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 0
    functionsReached:
    - randomness
    - public_seed
    - root
    - h_msg
    - xmss_concat
    - xmss_parameters
    - Botan::XMSS_Verification_Operation::root_from_signature
    - unused_leaf_index
    linkageType: ''
    returnType: bool
    signature: "bool XMSS_Verification_Operation::verify(const XMSS_Signature& sig,\n
      \                                        const secure_vector<uint8_t>& msg,\n
      \                                        const XMSS_PublicKey& public_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:80,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:80,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:80,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan::XMSS_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void XMSS_Verification_Operation::update(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:85,1
    - Dst: Botan::XMSS_Verification_Operation::verify
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:86,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:87,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: Botan::XMSS_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Verification_Operation::verify
    - clear
    - xmss_parameters
    linkageType: ''
    returnType: bool
    signature: bool XMSS_Verification_Operation::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' public_key'
    argTypes:
    - XMSS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: Botan::XMSS_Verification_Operation::XMSS_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 0
    functionsReached:
    - xmss_parameters
    linkageType: ''
    returnType: void
    signature: void XMSS_Verification_Operation::XMSS_Verification_Operation(const
      XMSS_PublicKey& public_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:25,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:27,1
    - Dst: unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:27,1
    - Dst: XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:29,1
    - Dst: XMSS_Address::set_ots_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:30,1
    - Dst: ots_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:32,1
    - Dst: tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:33,1
    - Dst: XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:35,1
    - Dst: XMSS_Address::set_ltree_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:36,1
    - Dst: Botan::XMSS_Common_Ops::create_l_tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:39,1
    - Dst: XMSS_WOTS_PublicKey::key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:39,1
    - Dst: XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:41,1
    - Dst: XMSS_Address::set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:42,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:44,1
    - Dst: XMSS_Address::set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:45,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:45,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:46,1
    - Dst: XMSS_Address::set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:47,1
    - Dst: XMSS_Address::get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:47,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:48,1
    - Dst: tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:49,1
    - Dst: XMSS_Address::set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:51,1
    - Dst: XMSS_Address::get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:51,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:52,1
    - Dst: tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - ' sig'
    - ' msg'
    - ' seed'
    argTypes:
    - XMSS_Signature
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 58
    functionName: Botan::XMSS_Verification_Operation::root_from_signature
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - ots_oid
    - xmss_parameters
    - Botan::XMSS_Common_Ops::create_l_tree
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - XMSS_Address::set_tree_index
    - static_cast<size_t>
    - XMSS_Address::set_type
    - XMSS_Address::set_ltree_address
    - unused_leaf_index
    - XMSS_Address::get_tree_index
    - tree_height
    - tree
    - XMSS_WOTS_PublicKey::key_data
    - XMSS_Address::set_ots_address
    - XMSS_Address::set_tree_height
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> XMSS_Verification_Operation::root_from_signature(const
      XMSS_Signature& sig,\n                                                                        const
      secure_vector<uint8_t>& msg,\n                                                                        const
      secure_vector<uint8_t>& seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:64,1
    - Dst: unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:64,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:64,1
    - Dst: h_msg
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:65,1
    - Dst: randomness
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:65,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:65,1
    - Dst: Botan::XMSS_Verification_Operation::root_from_signature
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:67,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:67,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' sig'
    - ' msg'
    - ' public_key'
    argTypes:
    - XMSS_Signature
    - secure_vector<uint8_t>
    - XMSS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: Botan::XMSS_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 1
    functionsReached:
    - randomness
    - public_seed
    - root
    - h_msg
    - xmss_concat
    - xmss_parameters
    - Botan::XMSS_Verification_Operation::root_from_signature
    - unused_leaf_index
    linkageType: ''
    returnType: bool
    signature: "bool XMSS_Verification_Operation::verify(const XMSS_Signature& sig,\n
      \                                        const secure_vector<uint8_t>& msg,\n
      \                                        const XMSS_PublicKey& public_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:80,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:80,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:80,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan::XMSS_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 0
    functionsReached:
    - insert
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void XMSS_Verification_Operation::update(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:85,1
    - Dst: Botan::XMSS_Verification_Operation::verify
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:86,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:87,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: Botan::XMSS_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Verification_Operation::verify
    - clear
    - xmss_parameters
    linkageType: ''
    returnType: bool
    signature: bool XMSS_Verification_Operation::is_valid_signature(std::span<const
      uint8_t> sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - XMSS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: Botan::XMSS_Signature_Operation::XMSS_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - xmss_parameters
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Operation::XMSS_Signature_Operation(const XMSS_PrivateKey&
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:31,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:33,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:33,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:33,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:33,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan::XMSS_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - element_size
    - len
    - tree_height
    - xmss_parameters
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_Signature_Operation::signature_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Signature_Operation::initialize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:37,1
    - Dst: h_msg_update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Botan::XMSS_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Signature_Operation::initialize
    - h_msg_update
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Operation::update(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Signature_Operation::initialize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:42,1
    - Dst: h_msg_final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:44,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:46,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:47,1
    - Dst: XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:50,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:52,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    - Dst: tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:54,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:54,1
    - Dst: XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:57,1
    - Dst: XMSS_Address::set_ots_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:58,1
    - Dst: wots_private_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:63,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:63,1
    - Dst: XMSS_Signature::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 68
    functionName: Botan::XMSS_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - wots_private_key_for
    - public_seed
    - h_msg_final
    - xmss_parameters
    - Botan::XMSS_Signature_Operation::initialize
    - static_cast<size_t>
    - XMSS_Address::set_type
    - tree_hash
    - XMSS_Signature::bytes
    - tree_height
    - XMSS_Address::set_ots_address
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> XMSS_Signature_Operation::sign(RandomNumberGenerator&
      /*rng*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:79,1
    - Dst: reserve_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:79,1
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:82,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:83,1
    - Dst: prf_value
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:83,1
    - Dst: secure_vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:84,1
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:85,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:85,1
    - Dst: h_msg_init
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:86,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 88
    functionName: Botan::XMSS_Signature_Operation::initialize
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - secure_vector::clear
    - prf
    - root
    - xmss_concat
    - xmss_parameters
    - h_msg_init
    - prf_value
    - reserve_unused_leaf_index
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Operation::initialize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:91,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::XMSS_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier XMSS_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - XMSS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: Botan::XMSS_Signature_Operation::XMSS_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - xmss_parameters
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Operation::XMSS_Signature_Operation(const XMSS_PrivateKey&
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:31,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:33,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:33,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:33,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:33,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan::XMSS_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - element_size
    - len
    - tree_height
    - xmss_parameters
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_Signature_Operation::signature_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Signature_Operation::initialize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:37,1
    - Dst: h_msg_update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Botan::XMSS_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Signature_Operation::initialize
    - h_msg_update
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Operation::update(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Signature_Operation::initialize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:42,1
    - Dst: h_msg_final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:44,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:46,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:47,1
    - Dst: XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:50,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:52,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    - Dst: tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:54,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:54,1
    - Dst: XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:57,1
    - Dst: XMSS_Address::set_ots_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:58,1
    - Dst: wots_private_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:63,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:63,1
    - Dst: XMSS_Signature::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 68
    functionName: Botan::XMSS_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - wots_private_key_for
    - public_seed
    - h_msg_final
    - xmss_parameters
    - Botan::XMSS_Signature_Operation::initialize
    - static_cast<size_t>
    - XMSS_Address::set_type
    - tree_hash
    - XMSS_Signature::bytes
    - tree_height
    - XMSS_Address::set_ots_address
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> XMSS_Signature_Operation::sign(RandomNumberGenerator&
      /*rng*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:79,1
    - Dst: reserve_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:79,1
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:82,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:83,1
    - Dst: prf_value
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:83,1
    - Dst: secure_vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:84,1
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:85,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:85,1
    - Dst: h_msg_init
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:86,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 88
    functionName: Botan::XMSS_Signature_Operation::initialize
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint32_t>
    - secure_vector::clear
    - prf
    - root
    - xmss_concat
    - xmss_parameters
    - h_msg_init
    - prf_value
    - reserve_unused_leaf_index
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature_Operation::initialize()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:91,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::XMSS_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier XMSS_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Signature_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::XMSS_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.h
    functionUses: 1
    functionsReached:
    - Botan::XMSS_Signature_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Signature_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::XMSS_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.h
    functionUses: 2
    functionsReached:
    - Botan::XMSS_Signature_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Verification_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::XMSS_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.h
    functionUses: 1
    functionsReached:
    - Botan::XMSS_Verification_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Verification_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::XMSS_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.h
    functionUses: 2
    functionsReached:
    - Botan::XMSS_Verification_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.h:50,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - leaf_idx
    - randomness
    - tree_sig
    argTypes:
    - size_t
    - secure_vector<uint8_t>
    - XMSS_Signature::TreeSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: Botan::XMSS_Signature::XMSS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature(size_t leaf_idx, secure_vector<uint8_t> randomness,
      XMSS_Signature::TreeSignature tree_sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::XMSS_Signature::unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t unused_leaf_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& randomness() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & randomness() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& tree() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Signature::TreeSignature
    signature: XMSS_Signature::TreeSignature & tree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::XMSS_Signature::set_unused_leaf_idx
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_unused_leaf_idx(size_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& randomness()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & randomness()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - randomness
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::XMSS_Signature::set_randomness
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_randomness(secure_vector<uint8_t> randomness)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& tree()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Signature::TreeSignature
    signature: XMSS_Signature::TreeSignature & tree()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree_sig
    argTypes:
    - XMSS_Signature::TreeSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::XMSS_Signature::set_tree
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_tree(XMSS_Signature::TreeSignature tree_sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.h:50,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - leaf_idx
    - randomness
    - tree_sig
    argTypes:
    - size_t
    - secure_vector<uint8_t>
    - XMSS_Signature::TreeSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: Botan::XMSS_Signature::XMSS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void XMSS_Signature(size_t leaf_idx, secure_vector<uint8_t> randomness,
      XMSS_Signature::TreeSignature tree_sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::XMSS_Signature::unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t unused_leaf_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& randomness() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & randomness() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& tree() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Signature::TreeSignature
    signature: XMSS_Signature::TreeSignature & tree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::XMSS_Signature::set_unused_leaf_idx
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_unused_leaf_idx(size_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& randomness()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & randomness()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - randomness
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::XMSS_Signature::set_randomness
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_randomness(secure_vector<uint8_t> randomness)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& tree()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Signature::TreeSignature
    signature: XMSS_Signature::TreeSignature & tree()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree_sig
    argTypes:
    - XMSS_Signature::TreeSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::XMSS_Signature::set_tree
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void set_tree(XMSS_Signature::TreeSignature tree_sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:47,1
    - Dst: Botan::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:47,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:48,1
    - Dst: Botan::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:48,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - key_bits
    - ' xmss_params'
    argTypes:
    - std::span<const uint8_t>
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: Botan::extract_raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Botan::raw_legacy_private_key_size
    - secure_vector::assign
    - Botan::raw_private_key_size
    - std::span<const uint8_t>::begin
    - Botan::BER_Decoder
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> extract_raw_private_key(std::span<const uint8_t>
      key_bits, const XMSS_Parameters& xmss_params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:47,1
    - Dst: Botan::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:47,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:48,1
    - Dst: Botan::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:48,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - key_bits
    - ' xmss_params'
    argTypes:
    - std::span<const uint8_t>
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: Botan::extract_raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Botan::raw_legacy_private_key_size
    - secure_vector::assign
    - Botan::raw_private_key_size
    - std::span<const uint8_t>::begin
    - Botan::BER_Decoder
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> extract_raw_private_key(std::span<const uint8_t>
      key_bits, const XMSS_Parameters& xmss_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:68,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:68,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:69,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:69,1
    - Dst: Botan::Stateful_Key_Index_Registry::KeyId::KeyId
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:70,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' xmss_params'
    - ' wots_params'
    - wots_derivation_method
    - ' rng'
    argTypes:
    - XMSS_Parameters
    - XMSS_WOTS_Parameters
    - WOTS_Derivation_Method
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: Botan::XMSS_PrivateKey_Internal::XMSS_PrivateKey_Internal
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - element_size
    - oid
    - random_vec
    - Botan::Stateful_Key_Index_Registry::KeyId::KeyId
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey_Internal(const XMSS_Parameters& xmss_params,\n
      \                              const XMSS_WOTS_Parameters& wots_params,\n                               WOTS_Derivation_Method
      wots_derivation_method,\n                               RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:81,1
    - Dst: Botan::Stateful_Key_Index_Registry::KeyId::KeyId
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:82,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' xmss_params'
    - ' wots_params'
    - wots_derivation_method
    - private_seed
    - prf
    argTypes:
    - XMSS_Parameters
    - XMSS_WOTS_Parameters
    - WOTS_Derivation_Method
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: Botan::XMSS_PrivateKey_Internal::XMSS_PrivateKey_Internal
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - oid
    - Botan::Stateful_Key_Index_Registry::KeyId::KeyId
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey_Internal(const XMSS_Parameters& xmss_params,\n
      \                              const XMSS_WOTS_Parameters& wots_params,\n                               WOTS_Derivation_Method
      wots_derivation_method,\n                               secure_vector<uint8_t>
      private_seed,\n                               secure_vector<uint8_t> prf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extract_raw_private_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:98,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:100,1
    - Dst: raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:100,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:101,1
    - Dst: raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:101,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:102,1
    - Dst: BufferSlicer::skip
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:108,1
    - Dst: raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:108,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:110,1
    - Dst: load_be
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:111,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:111,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:112,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:113,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:116,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:116,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:117,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:117,1
    - Dst: Botan::Stateful_Key_Index_Registry::KeyId::KeyId
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:119,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:119,1
    - Dst: Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:122,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:127,1
    - Dst: static_cast<WOTS_Derivation_Method>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:127,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:127,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:129,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ' xmss_params'
    - ' wots_params'
    - key_bits
    argTypes:
    - XMSS_Parameters
    - XMSS_WOTS_Parameters
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 130
    functionName: Botan::XMSS_PrivateKey_Internal::XMSS_PrivateKey_Internal
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - raw_private_key_size
    - auto::data
    - element_size
    - raw_public_key_size
    - Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
    - BufferSlicer::copy_as_secure_vector
    - Botan::Stateful_Key_Index_Registry::KeyId::KeyId
    - static_cast<WOTS_Derivation_Method>
    - raw_legacy_private_key_size
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    - load_be
    - BufferSlicer::skip
    - BufferSlicer::empty
    - extract_raw_private_key
    - Decoding_Error
    - secure_vector::size
    - oid
    - tree_height
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey_Internal(const XMSS_Parameters& xmss_params,\n
      \                              const XMSS_WOTS_Parameters& wots_params,\n                               std::span<const
      uint8_t> key_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:134,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:134,1
    - Dst: Botan::XMSS_PrivateKey_Internal::unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:134,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:134,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:137,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:137,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - raw_public_key
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: Botan::XMSS_PrivateKey_Internal::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - concat
    - static_cast<uint32_t>
    - std::vector::push_back
    - std::vector::data
    - Botan::XMSS_PrivateKey_Internal::unused_leaf_index
    - store_be
    - static_cast<uint8_t>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> serialize(std::vector<uint8_t> raw_public_key)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: '& prf_value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & prf_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: '& private_seed()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & private_seed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: '& wots_parameters()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_WOTS_Parameters
    signature: XMSS_WOTS_Parameters & wots_parameters()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: Botan::XMSS_PrivateKey_Internal::wots_derivation_method
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WOTS_Derivation_Method
    signature: WOTS_Derivation_Method wots_derivation_method() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:152,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:153,1
    - Dst: Stateful_Key_Index_Registry::global
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - tree_height
    - Stateful_Key_Index_Registry::global
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void set_unused_leaf_index(size_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Stateful_Key_Index_Registry::global
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:160,1
    - Dst: total_number_of_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:161,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:162,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: Botan::XMSS_PrivateKey_Internal::reserve_unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Stateful_Key_Index_Registry::global
    - static_cast<size_t>
    - total_number_of_signatures
    - Decoding_Error
    linkageType: ''
    returnType: size_t
    signature: size_t reserve_unused_leaf_index()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stateful_Key_Index_Registry::global
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:169,1
    - Dst: checked_cast_to<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: Botan::XMSS_PrivateKey_Internal::unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - Stateful_Key_Index_Registry::global
    - checked_cast_to<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t unused_leaf_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: total_number_of_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:174,1
    - Dst: Stateful_Key_Index_Registry::global
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: Botan::XMSS_PrivateKey_Internal::remaining_signatures
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Stateful_Key_Index_Registry::global
    - total_number_of_signatures
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t remaining_signatures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<XMSS_PrivateKey_Internal>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: Botan::XMSS_PrivateKey::XMSS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - std::make_shared<XMSS_PrivateKey_Internal>
    linkageType: ''
    returnType: void
    signature: void XMSS_PrivateKey::XMSS_PrivateKey(std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<XMSS_PrivateKey_Internal>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:196,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:199,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xmss_algo_id
    - ' rng'
    - wots_derivation_method
    argTypes:
    - XMSS_Parameters::xmss_algorithm_t
    - RandomNumberGenerator
    - WOTS_Derivation_Method
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: Botan::XMSS_PrivateKey::XMSS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - std::make_shared<XMSS_PrivateKey_Internal>
    - Botan::XMSS_PrivateKey::tree_hash
    - tree_height
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey::XMSS_PrivateKey(XMSS_Parameters::xmss_algorithm_t
      xmss_algo_id,\n                                 RandomNumberGenerator& rng,\n
      \                                WOTS_Derivation_Method wots_derivation_method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:209,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:209,1
    - Dst: std::make_shared<XMSS_PrivateKey_Internal>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:210,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:211,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:211,1
    - Dst: set_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:212,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:213,1
    - Dst: prf_value
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:213,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:213,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:215,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:215,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - xmss_algo_id
    - idx_leaf
    - wots_priv_seed
    - prf
    - root
    - public_seed
    - wots_derivation_method
    argTypes:
    - XMSS_Parameters::xmss_algorithm_t
    - size_t
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - WOTS_Derivation_Method
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: Botan::XMSS_PrivateKey::XMSS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - std::make_shared<XMSS_PrivateKey_Internal>
    - private_seed
    - set_unused_leaf_index
    - std::move
    - element_size
    - BOTAN_ARG_CHECK
    - prf_value
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey::XMSS_PrivateKey(XMSS_Parameters::xmss_algorithm_t
      xmss_algo_id,\n                                 size_t idx_leaf,\n                                 secure_vector<uint8_t>
      wots_priv_seed,\n                                 secure_vector<uint8_t> prf,\n
      \                                secure_vector<uint8_t> root,\n                                 secure_vector<uint8_t>
      public_seed,\n                                 WOTS_Derivation_Method wots_derivation_method)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:223,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:224,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:224,1
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:230,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:232,1
    - Dst: worker_count
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:232,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash_subtree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:238,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:242,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:246,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:248,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:253,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:253,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:265,1
    - Dst: run
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:265,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:267,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:270,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:271,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:275,1
    - Dst: std::vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:277,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:281,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:282,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:282,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:284,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:285,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:285,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:287,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:287,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:288,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:288,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:290,1
    - Dst: run
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:290,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:291,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:292,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:293,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:295,1
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:295,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:296,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:297,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:301,1
    - Dst: std::vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:303,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:307,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:307,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:308,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:308,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:309,1
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:310,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash_subtree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - start_idx
    - target_node_height
    - ' adrs'
    - ' hash'
    argTypes:
    - size_t
    - size_t
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 318
    functionName: Botan::XMSS_PrivateKey::tree_hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - set_tree_height
    - static_cast<uint32_t>
    - set_tree_index
    - BOTAN_ASSERT
    - element_size
    - std::vector::begin
    - std::ref
    - Thread_Pool::global_instance
    - min
    - secure_vector<uint8_t>
    - get
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - worker_count
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint8_t>
    - std::vector::size
    - std::vector::clear
    - Botan::XMSS_PrivateKey::tree_hash_subtree
    - Botan::XMSS_PrivateKey::public_seed
    - std::cref
    - std::vector::push_back
    - static_cast<size_t>
    - run
    - get_tree_index
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> XMSS_PrivateKey::tree_hash(size_t start_idx,\n
      \                                                 size_t target_node_height,\n
      \                                                 const XMSS_Address& adrs,\n
      \                                                 XMSS_Hash& hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:325,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:328,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:328,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:337,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:340,1
    - Dst: set_ots_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:341,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:341,1
    - Dst: Botan::XMSS_PrivateKey::wots_public_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:343,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:345,1
    - Dst: set_ltree_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:346,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:346,1
    - Dst: Botan::XMSS_Common_Ops::create_l_tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:347,1
    - Dst: XMSS_WOTS_PublicKey::key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:347,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:350,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:351,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:352,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:352,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:355,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:355,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:356,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:360,1
    - Dst: get_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - ' result'
    - start_idx
    - target_node_height
    - ' adrs'
    - ' hash'
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    - size_t
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 365
    functionName: Botan::XMSS_PrivateKey::tree_hash_subtree
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - set_tree_height
    - static_cast<uint32_t>
    - set_ltree_address
    - set_tree_index
    - get_tree_height
    - secure_vector<uint8_t>
    - Botan::XMSS_Common_Ops::create_l_tree
    - element_size
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - static_cast<size_t>
    - get_tree_index
    - set_type
    - Botan::XMSS_PrivateKey::public_seed
    - Botan::XMSS_PrivateKey::wots_public_key_for
    - XMSS_WOTS_PublicKey::key_data
    - set_ots_address
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey::tree_hash_subtree(secure_vector<uint8_t>& result,\n
      \                                       size_t start_idx,\n                                        size_t
      target_node_height,\n                                        XMSS_Address& adrs,\n
      \                                       XMSS_Hash& hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::wots_private_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:368,1
    - Dst: XMSS_WOTS_PublicKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:369,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' adrs'
    - ' hash'
    argTypes:
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: Botan::XMSS_PrivateKey::wots_public_key_for
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - XMSS_WOTS_PublicKey
    - Botan::XMSS_PrivateKey::wots_private_key_for
    - wots_parameters
    linkageType: ''
    returnType: XMSS_WOTS_PublicKey
    signature: XMSS_WOTS_PublicKey XMSS_PrivateKey::wots_public_key_for(const XMSS_Address&
      adrs, XMSS_Hash& hash) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::wots_derivation_method
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:373,1
    - Dst: XMSS_WOTS_PrivateKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:375,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:376,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:376,1
    - Dst: XMSS_WOTS_PrivateKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:378,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:378,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:378,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' adrs'
    - ' hash'
    argTypes:
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: Botan::XMSS_PrivateKey::wots_private_key_for
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - private_seed
    - Botan::XMSS_PrivateKey::wots_derivation_method
    - XMSS_WOTS_PrivateKey
    - Invalid_State
    - wots_parameters
    linkageType: ''
    returnType: XMSS_WOTS_PrivateKey
    signature: XMSS_WOTS_PrivateKey XMSS_PrivateKey::wots_private_key_for(const XMSS_Address&
      adrs, XMSS_Hash& hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:385,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: Botan::XMSS_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - Botan::XMSS_PrivateKey::raw_private_key
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::reserve_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: Botan::XMSS_PrivateKey::reserve_unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - Botan::XMSS_PrivateKey::reserve_unused_leaf_index
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_PrivateKey::reserve_unused_leaf_index()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: Botan::XMSS_PrivateKey::unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - Botan::XMSS_PrivateKey::unused_leaf_index
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_PrivateKey::unused_leaf_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checked_cast_to<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:397,1
    - Dst: Botan::XMSS_PrivateKey::remaining_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: Botan::XMSS_PrivateKey::remaining_signatures
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - Botan::XMSS_PrivateKey::remaining_signatures
    - checked_cast_to<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_PrivateKey::remaining_signatures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::remaining_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: Botan::XMSS_PrivateKey::remaining_operations
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - Botan::XMSS_PrivateKey::remaining_signatures
    linkageType: ''
    returnType: std::optional<uint64_t>
    signature: std::optional<uint64_t> XMSS_PrivateKey::remaining_operations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prf_value
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: '& XMSS_PrivateKey::prf_value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - prf_value
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & XMSS_PrivateKey::prf_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:409,1
    - Dst: raw_public_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 410
    functionName: Botan::XMSS_PrivateKey::raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 5
    functionsReached:
    - raw_public_key
    - serialize
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_PrivateKey::raw_private_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::wots_derivation_method
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: Botan::XMSS_PrivateKey::wots_derivation_method
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - Botan::XMSS_PrivateKey::wots_derivation_method
    linkageType: ''
    returnType: WOTS_Derivation_Method
    signature: WOTS_Derivation_Method XMSS_PrivateKey::wots_derivation_method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<XMSS_PublicKey>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:417,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:417,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:417,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Botan::XMSS_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - root
    - std::make_unique<XMSS_PublicKey>
    - xmss_parameters
    - public_seed
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> XMSS_PrivateKey::public_key() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:423,1
    - Dst: std::make_unique<XMSS_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:424,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:427,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 428
    functionName: Botan::XMSS_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<XMSS_Signature_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> XMSS_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                        std::string_view
      /*params*/,\n                                                                        std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:47,1
    - Dst: Botan::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:47,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:48,1
    - Dst: Botan::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:48,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - key_bits
    - ' xmss_params'
    argTypes:
    - std::span<const uint8_t>
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: Botan::extract_raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Botan::raw_legacy_private_key_size
    - secure_vector::assign
    - Botan::raw_private_key_size
    - std::span<const uint8_t>::begin
    - Botan::BER_Decoder
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> extract_raw_private_key(std::span<const uint8_t>
      key_bits, const XMSS_Parameters& xmss_params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:47,1
    - Dst: Botan::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:47,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:48,1
    - Dst: Botan::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:48,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - key_bits
    - ' xmss_params'
    argTypes:
    - std::span<const uint8_t>
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: Botan::extract_raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Botan::raw_legacy_private_key_size
    - secure_vector::assign
    - Botan::raw_private_key_size
    - std::span<const uint8_t>::begin
    - Botan::BER_Decoder
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> extract_raw_private_key(std::span<const uint8_t>
      key_bits, const XMSS_Parameters& xmss_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:68,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:68,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:69,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:69,1
    - Dst: Botan::Stateful_Key_Index_Registry::KeyId::KeyId
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:70,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' xmss_params'
    - ' wots_params'
    - wots_derivation_method
    - ' rng'
    argTypes:
    - XMSS_Parameters
    - XMSS_WOTS_Parameters
    - WOTS_Derivation_Method
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: Botan::XMSS_PrivateKey_Internal::XMSS_PrivateKey_Internal
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - element_size
    - oid
    - random_vec
    - Botan::Stateful_Key_Index_Registry::KeyId::KeyId
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey_Internal(const XMSS_Parameters& xmss_params,\n
      \                              const XMSS_WOTS_Parameters& wots_params,\n                               WOTS_Derivation_Method
      wots_derivation_method,\n                               RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:81,1
    - Dst: Botan::Stateful_Key_Index_Registry::KeyId::KeyId
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:82,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' xmss_params'
    - ' wots_params'
    - wots_derivation_method
    - private_seed
    - prf
    argTypes:
    - XMSS_Parameters
    - XMSS_WOTS_Parameters
    - WOTS_Derivation_Method
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: Botan::XMSS_PrivateKey_Internal::XMSS_PrivateKey_Internal
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - oid
    - Botan::Stateful_Key_Index_Registry::KeyId::KeyId
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey_Internal(const XMSS_Parameters& xmss_params,\n
      \                              const XMSS_WOTS_Parameters& wots_params,\n                               WOTS_Derivation_Method
      wots_derivation_method,\n                               secure_vector<uint8_t>
      private_seed,\n                               secure_vector<uint8_t> prf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extract_raw_private_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:98,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:100,1
    - Dst: raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:100,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:101,1
    - Dst: raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:101,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:102,1
    - Dst: BufferSlicer::skip
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:108,1
    - Dst: raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:108,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:110,1
    - Dst: load_be
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:111,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:111,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:112,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:113,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:116,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:116,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:117,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:117,1
    - Dst: Botan::Stateful_Key_Index_Registry::KeyId::KeyId
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:119,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:119,1
    - Dst: Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:122,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:127,1
    - Dst: static_cast<WOTS_Derivation_Method>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:127,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:127,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:129,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ' xmss_params'
    - ' wots_params'
    - key_bits
    argTypes:
    - XMSS_Parameters
    - XMSS_WOTS_Parameters
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 130
    functionName: Botan::XMSS_PrivateKey_Internal::XMSS_PrivateKey_Internal
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - raw_private_key_size
    - auto::data
    - element_size
    - raw_public_key_size
    - Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
    - BufferSlicer::copy_as_secure_vector
    - Botan::Stateful_Key_Index_Registry::KeyId::KeyId
    - static_cast<WOTS_Derivation_Method>
    - raw_legacy_private_key_size
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    - load_be
    - BufferSlicer::skip
    - BufferSlicer::empty
    - extract_raw_private_key
    - Decoding_Error
    - secure_vector::size
    - oid
    - tree_height
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey_Internal(const XMSS_Parameters& xmss_params,\n
      \                              const XMSS_WOTS_Parameters& wots_params,\n                               std::span<const
      uint8_t> key_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:134,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:134,1
    - Dst: Botan::XMSS_PrivateKey_Internal::unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:134,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:134,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:137,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:137,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - raw_public_key
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: Botan::XMSS_PrivateKey_Internal::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - concat
    - static_cast<uint32_t>
    - std::vector::push_back
    - std::vector::data
    - Botan::XMSS_PrivateKey_Internal::unused_leaf_index
    - store_be
    - static_cast<uint8_t>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> serialize(std::vector<uint8_t> raw_public_key)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: '& prf_value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & prf_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: '& private_seed()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & private_seed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: '& wots_parameters()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_WOTS_Parameters
    signature: XMSS_WOTS_Parameters & wots_parameters()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: Botan::XMSS_PrivateKey_Internal::wots_derivation_method
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WOTS_Derivation_Method
    signature: WOTS_Derivation_Method wots_derivation_method() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:152,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:153,1
    - Dst: Stateful_Key_Index_Registry::global
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - tree_height
    - Stateful_Key_Index_Registry::global
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void set_unused_leaf_index(size_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Stateful_Key_Index_Registry::global
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:160,1
    - Dst: total_number_of_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:161,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:162,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: Botan::XMSS_PrivateKey_Internal::reserve_unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Stateful_Key_Index_Registry::global
    - static_cast<size_t>
    - total_number_of_signatures
    - Decoding_Error
    linkageType: ''
    returnType: size_t
    signature: size_t reserve_unused_leaf_index()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Stateful_Key_Index_Registry::global
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:169,1
    - Dst: checked_cast_to<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: Botan::XMSS_PrivateKey_Internal::unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - Stateful_Key_Index_Registry::global
    - checked_cast_to<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t unused_leaf_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: total_number_of_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:174,1
    - Dst: Stateful_Key_Index_Registry::global
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: Botan::XMSS_PrivateKey_Internal::remaining_signatures
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Stateful_Key_Index_Registry::global
    - total_number_of_signatures
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t remaining_signatures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<XMSS_PrivateKey_Internal>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: Botan::XMSS_PrivateKey::XMSS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - std::make_shared<XMSS_PrivateKey_Internal>
    linkageType: ''
    returnType: void
    signature: void XMSS_PrivateKey::XMSS_PrivateKey(std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<XMSS_PrivateKey_Internal>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:196,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:199,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xmss_algo_id
    - ' rng'
    - wots_derivation_method
    argTypes:
    - XMSS_Parameters::xmss_algorithm_t
    - RandomNumberGenerator
    - WOTS_Derivation_Method
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: Botan::XMSS_PrivateKey::XMSS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - std::make_shared<XMSS_PrivateKey_Internal>
    - Botan::XMSS_PrivateKey::tree_hash
    - tree_height
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey::XMSS_PrivateKey(XMSS_Parameters::xmss_algorithm_t
      xmss_algo_id,\n                                 RandomNumberGenerator& rng,\n
      \                                WOTS_Derivation_Method wots_derivation_method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:209,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:209,1
    - Dst: std::make_shared<XMSS_PrivateKey_Internal>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:210,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:211,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:211,1
    - Dst: set_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:212,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:213,1
    - Dst: prf_value
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:213,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:213,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:215,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:215,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - xmss_algo_id
    - idx_leaf
    - wots_priv_seed
    - prf
    - root
    - public_seed
    - wots_derivation_method
    argTypes:
    - XMSS_Parameters::xmss_algorithm_t
    - size_t
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - WOTS_Derivation_Method
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: Botan::XMSS_PrivateKey::XMSS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - std::make_shared<XMSS_PrivateKey_Internal>
    - private_seed
    - set_unused_leaf_index
    - std::move
    - element_size
    - BOTAN_ARG_CHECK
    - prf_value
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey::XMSS_PrivateKey(XMSS_Parameters::xmss_algorithm_t
      xmss_algo_id,\n                                 size_t idx_leaf,\n                                 secure_vector<uint8_t>
      wots_priv_seed,\n                                 secure_vector<uint8_t> prf,\n
      \                                secure_vector<uint8_t> root,\n                                 secure_vector<uint8_t>
      public_seed,\n                                 WOTS_Derivation_Method wots_derivation_method)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:223,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:224,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:224,1
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:230,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:232,1
    - Dst: worker_count
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:232,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash_subtree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:238,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:242,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:246,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:248,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:253,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:253,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:265,1
    - Dst: run
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:265,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:267,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:270,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:271,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:275,1
    - Dst: std::vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:277,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:281,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:282,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:282,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:284,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:285,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:285,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:287,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:287,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:288,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:288,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:290,1
    - Dst: run
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:290,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:291,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:292,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:293,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:295,1
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:295,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:296,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:297,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:301,1
    - Dst: std::vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:303,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:307,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:307,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:308,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:308,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:309,1
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:310,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash_subtree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - start_idx
    - target_node_height
    - ' adrs'
    - ' hash'
    argTypes:
    - size_t
    - size_t
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 318
    functionName: Botan::XMSS_PrivateKey::tree_hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - set_tree_height
    - static_cast<uint32_t>
    - set_tree_index
    - BOTAN_ASSERT
    - element_size
    - std::vector::begin
    - std::ref
    - Thread_Pool::global_instance
    - min
    - secure_vector<uint8_t>
    - get
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - worker_count
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint8_t>
    - std::vector::size
    - std::vector::clear
    - Botan::XMSS_PrivateKey::tree_hash_subtree
    - Botan::XMSS_PrivateKey::public_seed
    - std::cref
    - std::vector::push_back
    - static_cast<size_t>
    - run
    - get_tree_index
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> XMSS_PrivateKey::tree_hash(size_t start_idx,\n
      \                                                 size_t target_node_height,\n
      \                                                 const XMSS_Address& adrs,\n
      \                                                 XMSS_Hash& hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:325,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:328,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:328,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:337,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:340,1
    - Dst: set_ots_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:341,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:341,1
    - Dst: Botan::XMSS_PrivateKey::wots_public_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:343,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:345,1
    - Dst: set_ltree_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:346,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:346,1
    - Dst: Botan::XMSS_Common_Ops::create_l_tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:347,1
    - Dst: XMSS_WOTS_PublicKey::key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:347,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:350,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:351,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:352,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:352,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:355,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:355,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:356,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:360,1
    - Dst: get_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - ' result'
    - start_idx
    - target_node_height
    - ' adrs'
    - ' hash'
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    - size_t
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 365
    functionName: Botan::XMSS_PrivateKey::tree_hash_subtree
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - set_tree_height
    - static_cast<uint32_t>
    - set_ltree_address
    - set_tree_index
    - get_tree_height
    - secure_vector<uint8_t>
    - Botan::XMSS_Common_Ops::create_l_tree
    - element_size
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - static_cast<size_t>
    - get_tree_index
    - set_type
    - Botan::XMSS_PrivateKey::public_seed
    - Botan::XMSS_PrivateKey::wots_public_key_for
    - XMSS_WOTS_PublicKey::key_data
    - set_ots_address
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey::tree_hash_subtree(secure_vector<uint8_t>& result,\n
      \                                       size_t start_idx,\n                                        size_t
      target_node_height,\n                                        XMSS_Address& adrs,\n
      \                                       XMSS_Hash& hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::wots_private_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:368,1
    - Dst: XMSS_WOTS_PublicKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:369,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' adrs'
    - ' hash'
    argTypes:
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: Botan::XMSS_PrivateKey::wots_public_key_for
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - XMSS_WOTS_PublicKey
    - Botan::XMSS_PrivateKey::wots_private_key_for
    - wots_parameters
    linkageType: ''
    returnType: XMSS_WOTS_PublicKey
    signature: XMSS_WOTS_PublicKey XMSS_PrivateKey::wots_public_key_for(const XMSS_Address&
      adrs, XMSS_Hash& hash) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::wots_derivation_method
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:373,1
    - Dst: XMSS_WOTS_PrivateKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:375,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:376,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:376,1
    - Dst: XMSS_WOTS_PrivateKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:378,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:378,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:378,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' adrs'
    - ' hash'
    argTypes:
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: Botan::XMSS_PrivateKey::wots_private_key_for
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - private_seed
    - Botan::XMSS_PrivateKey::wots_derivation_method
    - XMSS_WOTS_PrivateKey
    - Invalid_State
    - wots_parameters
    linkageType: ''
    returnType: XMSS_WOTS_PrivateKey
    signature: XMSS_WOTS_PrivateKey XMSS_PrivateKey::wots_private_key_for(const XMSS_Address&
      adrs, XMSS_Hash& hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:385,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: Botan::XMSS_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - Botan::XMSS_PrivateKey::raw_private_key
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::reserve_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: Botan::XMSS_PrivateKey::reserve_unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - Botan::XMSS_PrivateKey::reserve_unused_leaf_index
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_PrivateKey::reserve_unused_leaf_index()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: Botan::XMSS_PrivateKey::unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - Botan::XMSS_PrivateKey::unused_leaf_index
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_PrivateKey::unused_leaf_index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checked_cast_to<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:397,1
    - Dst: Botan::XMSS_PrivateKey::remaining_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: Botan::XMSS_PrivateKey::remaining_signatures
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 3
    functionsReached:
    - Botan::XMSS_PrivateKey::remaining_signatures
    - checked_cast_to<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_PrivateKey::remaining_signatures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::remaining_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: Botan::XMSS_PrivateKey::remaining_operations
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - Botan::XMSS_PrivateKey::remaining_signatures
    linkageType: ''
    returnType: std::optional<uint64_t>
    signature: std::optional<uint64_t> XMSS_PrivateKey::remaining_operations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prf_value
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: '& XMSS_PrivateKey::prf_value() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - prf_value
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & XMSS_PrivateKey::prf_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:409,1
    - Dst: raw_public_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 410
    functionName: Botan::XMSS_PrivateKey::raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 6
    functionsReached:
    - raw_public_key
    - serialize
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_PrivateKey::raw_private_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::wots_derivation_method
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: Botan::XMSS_PrivateKey::wots_derivation_method
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - Botan::XMSS_PrivateKey::wots_derivation_method
    linkageType: ''
    returnType: WOTS_Derivation_Method
    signature: WOTS_Derivation_Method XMSS_PrivateKey::wots_derivation_method() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<XMSS_PublicKey>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:417,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:417,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:417,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: Botan::XMSS_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - root
    - std::make_unique<XMSS_PublicKey>
    - xmss_parameters
    - public_seed
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> XMSS_PrivateKey::public_key() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:423,1
    - Dst: std::make_unique<XMSS_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:424,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:427,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 428
    functionName: Botan::XMSS_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<XMSS_Signature_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> XMSS_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                        std::string_view
      /*params*/,\n                                                                        std::string_view
      provider) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:48,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:48,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 49
    functionName: Botan::XMSS_WOTS_Parameters::xmss_wots_id_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 0
    functionsReached:
    - Lookup_Error
    - fmt
    linkageType: ''
    returnType: XMSS_WOTS_Parameters::ots_algorithm_t
    signature: XMSS_WOTS_Parameters::ots_algorithm_t XMSS_WOTS_Parameters::xmss_wots_id_from_string(std::string_view
      param_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_WOTS_Parameters::xmss_wots_id_from_string
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: Botan::XMSS_WOTS_Parameters::XMSS_WOTS_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_WOTS_Parameters::xmss_wots_id_from_string
    linkageType: ''
    returnType: void
    signature: void XMSS_WOTS_Parameters::XMSS_WOTS_Parameters(std::string_view param_set)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:113,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:117,1
    - Dst: std::ceil
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:117,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:117,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:118,1
    - Dst: floor
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:118,1
    - Dst: log2
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:118,1
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:118,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 65
    argCount: 1
    argNames:
    - oid
    argTypes:
    - ots_algorithm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 122
    functionName: Botan::XMSS_WOTS_Parameters::XMSS_WOTS_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 0
    functionsReached:
    - floor
    - BOTAN_ASSERT
    - Not_Implemented
    - wots_parameter
    - element_size
    - static_cast<size_t>
    - std::ceil
    - log2
    linkageType: ''
    returnType: void
    signature: void XMSS_WOTS_Parameters::XMSS_WOTS_Parameters(ots_algorithm_t oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:126,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' msg'
    - out_size
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 142
    functionName: Botan::XMSS_WOTS_Parameters::base_w
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::push_back
    - static_cast<uint8_t>
    - secure_vector::reserve
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_WOTS_Parameters::base_w(const secure_vector<uint8_t>&
      msg, size_t out_size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:146,1
    - Dst: std::ceil
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:146,1
    - Dst: static_cast<float>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:146,1
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:148,1
    - Dst: Botan::XMSS_WOTS_Parameters::base_w
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: Botan::XMSS_WOTS_Parameters::base_w
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 1
    functionsReached:
    - xmss_concat
    - static_cast<float>
    - static_cast<size_t>
    - Botan::XMSS_WOTS_Parameters::base_w
    - std::ceil
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_WOTS_Parameters::base_w(size_t value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:156,1
    - Dst: Botan::XMSS_WOTS_Parameters::base_w
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:159,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:160,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:160,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:160,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: Botan::XMSS_WOTS_Parameters::append_checksum
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::end
    - std::move
    - secure_vector::begin
    - wots_parameter
    - Botan::XMSS_WOTS_Parameters::base_w
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void XMSS_WOTS_Parameters::append_checksum(secure_vector<uint8_t>&
      data) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:48,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:48,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 49
    functionName: Botan::XMSS_WOTS_Parameters::xmss_wots_id_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 1
    functionsReached:
    - Lookup_Error
    - fmt
    linkageType: ''
    returnType: XMSS_WOTS_Parameters::ots_algorithm_t
    signature: XMSS_WOTS_Parameters::ots_algorithm_t XMSS_WOTS_Parameters::xmss_wots_id_from_string(std::string_view
      param_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_WOTS_Parameters::xmss_wots_id_from_string
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: Botan::XMSS_WOTS_Parameters::XMSS_WOTS_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_WOTS_Parameters::xmss_wots_id_from_string
    linkageType: ''
    returnType: void
    signature: void XMSS_WOTS_Parameters::XMSS_WOTS_Parameters(std::string_view param_set)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:113,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:117,1
    - Dst: std::ceil
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:117,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:117,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:118,1
    - Dst: floor
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:118,1
    - Dst: log2
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:118,1
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:118,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 65
    argCount: 1
    argNames:
    - oid
    argTypes:
    - ots_algorithm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 122
    functionName: Botan::XMSS_WOTS_Parameters::XMSS_WOTS_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 0
    functionsReached:
    - floor
    - BOTAN_ASSERT
    - Not_Implemented
    - wots_parameter
    - element_size
    - static_cast<size_t>
    - std::ceil
    - log2
    linkageType: ''
    returnType: void
    signature: void XMSS_WOTS_Parameters::XMSS_WOTS_Parameters(ots_algorithm_t oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:126,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' msg'
    - out_size
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 142
    functionName: Botan::XMSS_WOTS_Parameters::base_w
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 2
    functionsReached:
    - secure_vector::push_back
    - static_cast<uint8_t>
    - secure_vector::reserve
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_WOTS_Parameters::base_w(const secure_vector<uint8_t>&
      msg, size_t out_size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:146,1
    - Dst: std::ceil
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:146,1
    - Dst: static_cast<float>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:146,1
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:148,1
    - Dst: Botan::XMSS_WOTS_Parameters::base_w
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: Botan::XMSS_WOTS_Parameters::base_w
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 3
    functionsReached:
    - xmss_concat
    - static_cast<float>
    - static_cast<size_t>
    - Botan::XMSS_WOTS_Parameters::base_w
    - std::ceil
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_WOTS_Parameters::base_w(size_t value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:156,1
    - Dst: Botan::XMSS_WOTS_Parameters::base_w
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:159,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:160,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:160,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:160,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: Botan::XMSS_WOTS_Parameters::append_checksum
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::end
    - std::move
    - secure_vector::begin
    - wots_parameter
    - Botan::XMSS_WOTS_Parameters::base_w
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void XMSS_WOTS_Parameters::append_checksum(secure_vector<uint8_t>&
      data) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:32,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:33,1
    - Dst: static_cast<XMSS_Parameters::xmss_algorithm_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - raw_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: Botan::deserialize_xmss_oid
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XMSS_Parameters::xmss_algorithm_t>
    - Botan::Decoding_Error
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: XMSS_Parameters::xmss_algorithm_t
    signature: XMSS_Parameters::xmss_algorithm_t deserialize_xmss_oid(std::span<const
      uint8_t> raw_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: XMSS_Parameters::raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: XMSS_Parameters::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: Botan::extract_raw_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - XMSS_Parameters::raw_public_key_size
    - XMSS_Parameters::raw_legacy_private_key_size
    - std::vector::assign
    - std::span<const uint8_t>::end
    - Botan::Decoding_Error
    - std::span<const uint8_t>::begin
    - Botan::BER_Decoder
    - XMSS_Parameters::raw_private_key_size
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> extract_raw_public_key(std::span<const uint8_t>
      key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:32,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:33,1
    - Dst: static_cast<XMSS_Parameters::xmss_algorithm_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - raw_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: Botan::deserialize_xmss_oid
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XMSS_Parameters::xmss_algorithm_t>
    - Botan::Decoding_Error
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: XMSS_Parameters::xmss_algorithm_t
    signature: XMSS_Parameters::xmss_algorithm_t deserialize_xmss_oid(std::span<const
      uint8_t> raw_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: XMSS_Parameters::raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: XMSS_Parameters::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: Botan::extract_raw_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - XMSS_Parameters::raw_public_key_size
    - XMSS_Parameters::raw_legacy_private_key_size
    - std::vector::assign
    - std::span<const uint8_t>::end
    - Botan::Decoding_Error
    - std::span<const uint8_t>::begin
    - Botan::BER_Decoder
    - XMSS_Parameters::raw_private_key_size
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> extract_raw_public_key(std::span<const uint8_t>
      key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ots_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:72,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:73,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:74,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - xmss_oid
    - ' rng'
    argTypes:
    - XMSS_Parameters::xmss_algorithm_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - element_size
    - ots_oid
    - random_vec
    linkageType: ''
    returnType: void
    signature: void XMSS_PublicKey::XMSS_PublicKey(XMSS_Parameters::xmss_algorithm_t
      xmss_oid, RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extract_raw_public_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:77,1
    - Dst: deserialize_xmss_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:78,1
    - Dst: ots_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:79,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:80,1
    - Dst: raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:80,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:81,1
    - Dst: BufferSlicer::skip
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:85,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:87,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:87,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:88,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - ots_oid
    - Decoding_Error
    - BufferSlicer::copy_as_secure_vector
    - extract_raw_public_key
    - element_size
    - raw_public_key_size
    - size
    - BufferSlicer::skip
    - deserialize_xmss_oid
    linkageType: ''
    returnType: void
    signature: void XMSS_PublicKey::XMSS_PublicKey(std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ots_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:95,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:96,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:97,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:98,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:98,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:98,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:99,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:99,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - xmss_oid
    - root
    - public_seed
    argTypes:
    - XMSS_Parameters::xmss_algorithm_t
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - ots_oid
    - std::move
    - element_size
    - BOTAN_ARG_CHECK
    - size
    linkageType: ''
    returnType: void
    signature: "void XMSS_PublicKey::XMSS_PublicKey(XMSS_Parameters::xmss_algorithm_t
      xmss_oid,\n                               secure_vector<uint8_t> root,\n                               secure_vector<uint8_t>
      public_seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:104,1
    - Dst: std::make_unique<XMSS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:105,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:107,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: Botan::XMSS_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<XMSS_Verification_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> XMSS_PublicKey::create_verification_op(std::string_view
      /*params*/,\n                                                                             std::string_view
      provider) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:112,1
    - Dst: Botan::XMSS_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:113,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:114,1
    - Dst: std::make_unique<XMSS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:116,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:118,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: Botan::XMSS_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - algo_name
    - Botan::XMSS_PublicKey::algorithm_identifier
    - Provider_Not_Found
    - std::string_view::empty
    - std::make_unique<XMSS_Verification_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> XMSS_PublicKey::create_x509_verification_op(const
      AlgorithmIdentifier& alg_id,\n                                                                                  std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:122,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:122,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:122,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: Botan::XMSS_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - concat
    - static_cast<uint32_t>
    - oid
    - store_be
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> XMSS_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:127,1
    - Dst: Botan::XMSS_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Botan::XMSS_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - Botan::XMSS_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> XMSS_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Botan::XMSS_PublicKey::raw_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> XMSS_PublicKey::raw_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<XMSS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:139,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: Botan::XMSS_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<XMSS_PrivateKey>
    - oid
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> XMSS_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:32,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:33,1
    - Dst: static_cast<XMSS_Parameters::xmss_algorithm_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - raw_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: Botan::deserialize_xmss_oid
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XMSS_Parameters::xmss_algorithm_t>
    - Botan::Decoding_Error
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: XMSS_Parameters::xmss_algorithm_t
    signature: XMSS_Parameters::xmss_algorithm_t deserialize_xmss_oid(std::span<const
      uint8_t> raw_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: XMSS_Parameters::raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: XMSS_Parameters::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: Botan::extract_raw_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - XMSS_Parameters::raw_public_key_size
    - XMSS_Parameters::raw_legacy_private_key_size
    - std::vector::assign
    - std::span<const uint8_t>::end
    - Botan::Decoding_Error
    - std::span<const uint8_t>::begin
    - Botan::BER_Decoder
    - XMSS_Parameters::raw_private_key_size
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> extract_raw_public_key(std::span<const uint8_t>
      key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:32,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:33,1
    - Dst: static_cast<XMSS_Parameters::xmss_algorithm_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - raw_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: Botan::deserialize_xmss_oid
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - static_cast<XMSS_Parameters::xmss_algorithm_t>
    - Botan::Decoding_Error
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: XMSS_Parameters::xmss_algorithm_t
    signature: XMSS_Parameters::xmss_algorithm_t deserialize_xmss_oid(std::span<const
      uint8_t> raw_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: XMSS_Parameters::raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: XMSS_Parameters::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:60,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: Botan::extract_raw_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - XMSS_Parameters::raw_public_key_size
    - XMSS_Parameters::raw_legacy_private_key_size
    - std::vector::assign
    - std::span<const uint8_t>::end
    - Botan::Decoding_Error
    - std::span<const uint8_t>::begin
    - Botan::BER_Decoder
    - XMSS_Parameters::raw_private_key_size
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> extract_raw_public_key(std::span<const uint8_t>
      key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ots_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:72,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:73,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:74,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - xmss_oid
    - ' rng'
    argTypes:
    - XMSS_Parameters::xmss_algorithm_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - element_size
    - ots_oid
    - random_vec
    linkageType: ''
    returnType: void
    signature: void XMSS_PublicKey::XMSS_PublicKey(XMSS_Parameters::xmss_algorithm_t
      xmss_oid, RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extract_raw_public_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:77,1
    - Dst: deserialize_xmss_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:78,1
    - Dst: ots_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:79,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:80,1
    - Dst: raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:80,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:81,1
    - Dst: BufferSlicer::skip
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:85,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:87,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:87,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:88,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - ots_oid
    - Decoding_Error
    - BufferSlicer::copy_as_secure_vector
    - extract_raw_public_key
    - element_size
    - raw_public_key_size
    - size
    - BufferSlicer::skip
    - deserialize_xmss_oid
    linkageType: ''
    returnType: void
    signature: void XMSS_PublicKey::XMSS_PublicKey(std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ots_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:95,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:96,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:97,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:98,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:98,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:98,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:99,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:99,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - xmss_oid
    - root
    - public_seed
    argTypes:
    - XMSS_Parameters::xmss_algorithm_t
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - ots_oid
    - std::move
    - element_size
    - BOTAN_ARG_CHECK
    - size
    linkageType: ''
    returnType: void
    signature: "void XMSS_PublicKey::XMSS_PublicKey(XMSS_Parameters::xmss_algorithm_t
      xmss_oid,\n                               secure_vector<uint8_t> root,\n                               secure_vector<uint8_t>
      public_seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:104,1
    - Dst: std::make_unique<XMSS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:105,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:107,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: Botan::XMSS_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<XMSS_Verification_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> XMSS_PublicKey::create_verification_op(std::string_view
      /*params*/,\n                                                                             std::string_view
      provider) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:112,1
    - Dst: Botan::XMSS_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:113,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:114,1
    - Dst: std::make_unique<XMSS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:116,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:118,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: Botan::XMSS_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - algo_name
    - Botan::XMSS_PublicKey::algorithm_identifier
    - Provider_Not_Found
    - std::string_view::empty
    - std::make_unique<XMSS_Verification_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> XMSS_PublicKey::create_x509_verification_op(const
      AlgorithmIdentifier& alg_id,\n                                                                                  std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:122,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:122,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:122,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: Botan::XMSS_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 2
    functionsReached:
    - concat
    - static_cast<uint32_t>
    - oid
    - store_be
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> XMSS_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:127,1
    - Dst: Botan::XMSS_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: Botan::XMSS_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - Botan::XMSS_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> XMSS_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Botan::XMSS_PublicKey::raw_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> XMSS_PublicKey::raw_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<XMSS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:139,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: Botan::XMSS_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<XMSS_PrivateKey>
    - oid
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> XMSS_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::XMSS_Hash::XMSS_Hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Hash(XMSS_Hash&& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: ~XMSS_Hash()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~XMSS_Hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(const XMSS_Hash&)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Hash
    signature: XMSS_Hash & operator=(const XMSS_Hash&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: '& operator=(XMSS_Hash&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Hash
    signature: XMSS_Hash & operator=(XMSS_Hash&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::XMSS_Hash::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:41,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:42,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:43,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:43,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:43,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:44,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:44,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:44,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - hash_id
    - ' result'
    - key
    - data
    argTypes:
    - uint8_t
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan::XMSS_Hash::calculate_hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - update
    - std::span<const uint8_t>::data
    - final
    linkageType: ''
    returnType: void
    signature: "void calculate_hash(const uint8_t hash_id,\n                                 secure_vector<uint8_t>&
      result,\n                                 std::span<const uint8_t> key,\n                                 std::span<const
      uint8_t> data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::calculate_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - key
    - data
    argTypes:
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::XMSS_Hash::prf
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Hash::calculate_hash
    linkageType: ''
    returnType: void
    signature: void prf(secure_vector<uint8_t>& result, std::span<const uint8_t> key,
      std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::calculate_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - key
    - data
    argTypes:
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: Botan::XMSS_Hash::prf_keygen
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Hash::calculate_hash
    linkageType: ''
    returnType: void
    signature: "void prf_keygen(secure_vector<uint8_t>& result,\n                             std::span<const
      uint8_t> key,\n                             std::span<const uint8_t> data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::calculate_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - key
    - data
    argTypes:
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::XMSS_Hash::f
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Hash::calculate_hash
    linkageType: ''
    returnType: void
    signature: void f(secure_vector<uint8_t>& result, std::span<const uint8_t> key,
      std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::calculate_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - key
    - data
    argTypes:
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Botan::XMSS_Hash::h
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Hash::calculate_hash
    linkageType: ''
    returnType: void
    signature: void h(secure_vector<uint8_t>& result, std::span<const uint8_t> key,
      std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::h_msg_init
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:116,1
    - Dst: Botan::XMSS_Hash::h_msg_update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:117,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - randomness
    - root
    - index_bytes
    - data
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: Botan::XMSS_Hash::h_msg
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Hash::h_msg_update
    - Botan::XMSS_Hash::h_msg_init
    - final
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> h_msg(std::span<const uint8_t> randomness,\n
      \                                  std::span<const uint8_t> root,\n                                   std::span<const
      uint8_t> index_bytes,\n                                   std::span<const uint8_t>
      data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::XMSS_Hash::output_length
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 3
    functionsReached:
    - Botan::XMSS_Hash::output_length
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::XMSS_Hash::XMSS_Hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Hash(XMSS_Hash&& hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: ~XMSS_Hash()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~XMSS_Hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(const XMSS_Hash&)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Hash
    signature: XMSS_Hash & operator=(const XMSS_Hash&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: '& operator=(XMSS_Hash&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Hash
    signature: XMSS_Hash & operator=(XMSS_Hash&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::XMSS_Hash::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:41,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:42,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:43,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:43,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:43,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:44,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:44,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:44,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - hash_id
    - ' result'
    - key
    - data
    argTypes:
    - uint8_t
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan::XMSS_Hash::calculate_hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 4
    functionsReached:
    - std::span<const uint8_t>::size
    - update
    - std::span<const uint8_t>::data
    - final
    linkageType: ''
    returnType: void
    signature: "void calculate_hash(const uint8_t hash_id,\n                                 secure_vector<uint8_t>&
      result,\n                                 std::span<const uint8_t> key,\n                                 std::span<const
      uint8_t> data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::calculate_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - key
    - data
    argTypes:
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::XMSS_Hash::prf
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Hash::calculate_hash
    linkageType: ''
    returnType: void
    signature: void prf(secure_vector<uint8_t>& result, std::span<const uint8_t> key,
      std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::calculate_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - key
    - data
    argTypes:
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: Botan::XMSS_Hash::prf_keygen
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Hash::calculate_hash
    linkageType: ''
    returnType: void
    signature: "void prf_keygen(secure_vector<uint8_t>& result,\n                             std::span<const
      uint8_t> key,\n                             std::span<const uint8_t> data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::calculate_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - key
    - data
    argTypes:
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::XMSS_Hash::f
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Hash::calculate_hash
    linkageType: ''
    returnType: void
    signature: void f(secure_vector<uint8_t>& result, std::span<const uint8_t> key,
      std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::calculate_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - key
    - data
    argTypes:
    - secure_vector<uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Botan::XMSS_Hash::h
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Hash::calculate_hash
    linkageType: ''
    returnType: void
    signature: void h(secure_vector<uint8_t>& result, std::span<const uint8_t> key,
      std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::h_msg_init
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:116,1
    - Dst: Botan::XMSS_Hash::h_msg_update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:117,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - randomness
    - root
    - index_bytes
    - data
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: Botan::XMSS_Hash::h_msg
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Hash::h_msg_update
    - Botan::XMSS_Hash::h_msg_init
    - final
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> h_msg(std::span<const uint8_t> randomness,\n
      \                                  std::span<const uint8_t> root,\n                                   std::span<const
      uint8_t> index_bytes,\n                                   std::span<const uint8_t>
      data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Hash::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_hash.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::XMSS_Hash::output_length
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_hash.h
    functionUses: 4
    functionsReached:
    - Botan::XMSS_Hash::output_length
    linkageType: ''
    returnType: size_t
    signature: size_t output_length() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:29,1
    - Dst: std::reverse_copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:31,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:31,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:33,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' target'
    - ' src'
    argTypes:
    - secure_vector<uint8_t>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: Botan::xmss_concat
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_tools.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t*>
    - std::back_inserter
    - std::reverse_copy
    - Botan::copy
    linkageType: ''
    returnType: void
    signature: void xmss_concat(secure_vector<uint8_t>& target, const T& src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:49,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:49,1
    - Dst: Botan::resize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:51,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:51,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:54,1
    - Dst: std::reverse_copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:56,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:56,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:58,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' target'
    - ' src'
    - len
    argTypes:
    - secure_vector<uint8_t>
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: Botan::xmss_concat
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_tools.h
    functionUses: 0
    functionsReached:
    - min
    - Botan::resize
    - reinterpret_cast<const uint8_t*>
    - std::reverse_copy
    - Botan::size
    - static_cast<size_t>
    - Botan::copy
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void xmss_concat(secure_vector<uint8_t>& target, const T& src, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:29,1
    - Dst: std::reverse_copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:31,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:31,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:33,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' target'
    - ' src'
    argTypes:
    - secure_vector<uint8_t>
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: Botan::xmss_concat
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_tools.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t*>
    - std::back_inserter
    - std::reverse_copy
    - Botan::copy
    linkageType: ''
    returnType: void
    signature: void xmss_concat(secure_vector<uint8_t>& target, const T& src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:49,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:49,1
    - Dst: Botan::resize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:51,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:51,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:54,1
    - Dst: std::reverse_copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:56,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:56,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:58,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_tools.h:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' target'
    - ' src'
    - len
    argTypes:
    - secure_vector<uint8_t>
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: Botan::xmss_concat
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_tools.h
    functionUses: 0
    functionsReached:
    - min
    - Botan::resize
    - reinterpret_cast<const uint8_t*>
    - std::reverse_copy
    - Botan::size
    - static_cast<size_t>
    - Botan::copy
    - std::back_inserter
    linkageType: ''
    returnType: void
    signature: void xmss_concat(secure_vector<uint8_t>& target, const T& src, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss.h:73,1
    - Dst: Botan::object_identifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached:
    - Botan::object_identifier
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_key(RandomNumberGenerator& /*rng*/, bool /*strong*/) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::estimated_strength
      Src: /src/botan/src/lib/pubkey/xmss/xmss.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 1
    functionsReached:
    - Botan::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::estimated_strength
      Src: /src/botan/src/lib/pubkey/xmss/xmss.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached:
    - Botan::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan::public_seed
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & public_seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan::root
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & root() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan::xmss_parameters
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Parameters
    signature: XMSS_Parameters & xmss_parameters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss.h:73,1
    - Dst: Botan::object_identifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached:
    - Botan::object_identifier
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_key(RandomNumberGenerator& /*rng*/, bool /*strong*/) const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::estimated_strength
      Src: /src/botan/src/lib/pubkey/xmss/xmss.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 3
    functionsReached:
    - Botan::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::estimated_strength
      Src: /src/botan/src/lib/pubkey/xmss/xmss.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached:
    - Botan::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan::public_seed
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & public_seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan::root
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & root() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan::xmss_parameters
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Parameters
    signature: XMSS_Parameters & xmss_parameters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: stateful_operation
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool stateful_operation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 117
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: XMSS_WOTS_Parameters
    signature: XMSS_WOTS_Parameters final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::name
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::element_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t element_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::wots_parameter
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t wots_parameter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::len
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan::len_1
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::len_2
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::lg_w
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t lg_w() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::oid
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: ots_algorithm_t
    signature: ots_algorithm_t oid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - XMSS_WOTS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: operator==(const XMSS_WOTS_Parameters& p) const
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const XMSS_WOTS_Parameters& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: Botan::std::name
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void std::string& name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Botan::hash_function_name
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hash_function_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: Botan::element_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t element_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: Botan::hash_id_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_id_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan::tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tree_height() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:201,1
    - Dst: Botan::tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: Botan::total_number_of_signatures
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - Botan::tree_height
    linkageType: ''
    returnType: size_t
    signature: size_t total_number_of_signatures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::wots_parameter
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t wots_parameter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan::len
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: Botan::oid
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: xmss_algorithm_t
    signature: xmss_algorithm_t oid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan::ots_oid
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_WOTS_Parameters::ots_algorithm_t
    signature: XMSS_WOTS_Parameters::ots_algorithm_t ots_oid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: Botan::raw_public_key_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached:
    - Botan::element_size
    linkageType: ''
    returnType: size_t
    signature: size_t raw_public_key_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:226,1
    - Dst: Botan::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: Botan::raw_legacy_private_key_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 4
    functionsReached:
    - Botan::element_size
    - Botan::raw_public_key_size
    linkageType: ''
    returnType: size_t
    signature: size_t raw_legacy_private_key_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: Botan::raw_private_key_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 4
    functionsReached:
    - Botan::raw_legacy_private_key_size
    linkageType: ''
    returnType: size_t
    signature: size_t raw_private_key_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: operator==(const XMSS_Parameters& p) const
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const XMSS_Parameters& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 117
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: XMSS_WOTS_Parameters
    signature: XMSS_WOTS_Parameters final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: Botan::name
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::element_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t element_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::wots_parameter
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t wots_parameter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::len
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan::len_1
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: Botan::len_2
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::lg_w
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t lg_w() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::oid
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: ots_algorithm_t
    signature: ots_algorithm_t oid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - XMSS_WOTS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: operator==(const XMSS_WOTS_Parameters& p) const
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const XMSS_WOTS_Parameters& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: Botan::std::name
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void std::string& name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: Botan::hash_function_name
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hash_function_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: Botan::element_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t element_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: Botan::hash_id_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_id_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: Botan::tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t tree_height() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:201,1
    - Dst: Botan::tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: Botan::total_number_of_signatures
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - Botan::tree_height
    linkageType: ''
    returnType: size_t
    signature: size_t total_number_of_signatures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: Botan::wots_parameter
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t wots_parameter() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: Botan::len
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: Botan::oid
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: xmss_algorithm_t
    signature: xmss_algorithm_t oid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: Botan::ots_oid
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_WOTS_Parameters::ots_algorithm_t
    signature: XMSS_WOTS_Parameters::ots_algorithm_t ots_oid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: Botan::raw_public_key_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 1
    functionsReached:
    - Botan::element_size
    linkageType: ''
    returnType: size_t
    signature: size_t raw_public_key_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:226,1
    - Dst: Botan::element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: Botan::raw_legacy_private_key_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 5
    functionsReached:
    - Botan::element_size
    - Botan::raw_public_key_size
    linkageType: ''
    returnType: size_t
    signature: size_t raw_legacy_private_key_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: Botan::raw_private_key_size
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 4
    functionsReached:
    - Botan::raw_legacy_private_key_size
    linkageType: ''
    returnType: size_t
    signature: size_t raw_private_key_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: operator==(const XMSS_Parameters& p) const
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const XMSS_Parameters& p) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:22,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:24,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:24,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:26,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:28,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:28,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:30,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:32,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:32,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:34,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:34,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:34,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:34,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:34,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:37,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:38,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:40,1
    - Dst: h
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - ' result'
    - ' left'
    - ' right'
    - adrs
    - ' seed'
    - ' hash'
    - ' params'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - XMSS_Address
    - secure_vector<uint8_t>
    - XMSS_Hash
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 44
    functionName: Botan::XMSS_Common_Ops::randomize_tree_hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp
    functionUses: 6
    functionsReached:
    - h
    - BOTAN_ASSERT
    - prf
    - secure_vector::size
    - element_size
    - size
    - XMSS_Address::set_key_mask_mode
    - XMSS_Address::bytes
    linkageType: ''
    returnType: void
    signature: "void XMSS_Common_Ops::randomize_tree_hash(secure_vector<uint8_t>&
      result,\n                                          const secure_vector<uint8_t>&
      left,\n                                          const secure_vector<uint8_t>&
      right,\n                                          XMSS_Address adrs,\n                                          const
      secure_vector<uint8_t>& seed,\n                                          XMSS_Hash&
      hash,\n                                          const XMSS_Parameters& params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:52,1
    - Dst: XMSS_Address::set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:53,1
    - Dst: XMSS_Address::set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:57,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:57,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:58,1
    - Dst: XMSS_Address::set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:64,1
    - Dst: XMSS_Address::get_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - ' result'
    - pk
    - adrs
    - ' seed'
    - ' hash'
    - ' params'
    argTypes:
    - secure_vector<uint8_t>
    - wots_keysig_t
    - XMSS_Address
    - secure_vector<uint8_t>
    - XMSS_Hash
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: Botan::XMSS_Common_Ops::create_l_tree
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp
    functionUses: 4
    functionsReached:
    - XMSS_Address::get_tree_height
    - static_cast<uint32_t>
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - XMSS_Address::set_tree_index
    - len
    - XMSS_Address::set_tree_height
    linkageType: ''
    returnType: void
    signature: "void XMSS_Common_Ops::create_l_tree(secure_vector<uint8_t>& result,\n
      \                                   wots_keysig_t pk,\n                                    XMSS_Address
      adrs,\n                                    const secure_vector<uint8_t>& seed,\n
      \                                   XMSS_Hash& hash,\n                                    const
      XMSS_Parameters& params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:22,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:24,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:24,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:26,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:28,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:28,1
    - Dst: XMSS_Address::set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:30,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:32,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:32,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:34,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:34,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:34,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:34,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:34,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:37,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:38,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:40,1
    - Dst: h
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - ' result'
    - ' left'
    - ' right'
    - adrs
    - ' seed'
    - ' hash'
    - ' params'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - XMSS_Address
    - secure_vector<uint8_t>
    - XMSS_Hash
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 44
    functionName: Botan::XMSS_Common_Ops::randomize_tree_hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp
    functionUses: 7
    functionsReached:
    - h
    - BOTAN_ASSERT
    - prf
    - secure_vector::size
    - element_size
    - size
    - XMSS_Address::set_key_mask_mode
    - XMSS_Address::bytes
    linkageType: ''
    returnType: void
    signature: "void XMSS_Common_Ops::randomize_tree_hash(secure_vector<uint8_t>&
      result,\n                                          const secure_vector<uint8_t>&
      left,\n                                          const secure_vector<uint8_t>&
      right,\n                                          XMSS_Address adrs,\n                                          const
      secure_vector<uint8_t>& seed,\n                                          XMSS_Hash&
      hash,\n                                          const XMSS_Parameters& params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:52,1
    - Dst: XMSS_Address::set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:53,1
    - Dst: XMSS_Address::set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:57,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:57,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:58,1
    - Dst: XMSS_Address::set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:64,1
    - Dst: XMSS_Address::get_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - ' result'
    - pk
    - adrs
    - ' seed'
    - ' hash'
    - ' params'
    argTypes:
    - secure_vector<uint8_t>
    - wots_keysig_t
    - XMSS_Address
    - secure_vector<uint8_t>
    - XMSS_Hash
    - XMSS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: Botan::XMSS_Common_Ops::create_l_tree
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp
    functionUses: 4
    functionsReached:
    - XMSS_Address::get_tree_height
    - static_cast<uint32_t>
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - XMSS_Address::set_tree_index
    - len
    - XMSS_Address::set_tree_height
    linkageType: ''
    returnType: void
    signature: "void XMSS_Common_Ops::create_l_tree(secure_vector<uint8_t>& result,\n
      \                                   wots_keysig_t pk,\n                                    XMSS_Address
      adrs,\n                                    const secure_vector<uint8_t>& seed,\n
      \                                   XMSS_Hash& hash,\n                                    const
      XMSS_Parameters& params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' public_point'
    argTypes:
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::GOST_3410_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GOST_3410_PublicKey(const EC_Group& group, const EC_Point& public_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::_default_x509_signature_format
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Signature_Format
    signature: Signature_Format _default_x509_signature_format() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' public_point'
    argTypes:
    - EC_Group
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::GOST_3410_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GOST_3410_PublicKey(const EC_Group& group, const EC_Point& public_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::_default_x509_signature_format
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Signature_Format
    signature: Signature_Format _default_x509_signature_format() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: pkcs8_algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h
    functionUses: 2
    functionsReached:
    - Botan::EC_PublicKey::algorithm_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier pkcs8_algorithm_identifier() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_Group::get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:23,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:25,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - domain
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: Botan::check_domain
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Decoding_Error
    - EC_Group::get_p_bits
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group check_domain(EC_Group domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_Group::get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:23,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:25,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - domain
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: Botan::check_domain
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Decoding_Error
    - EC_Group::get_p_bits
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group check_domain(EC_Group domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Botan::GOST_3410_PublicKey::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> GOST_3410_PublicKey::_signature_element_size_for_DER_encoding()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:37,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:39,1
    - Dst: std::swap
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:43,1
    - Dst: std::swap
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:44,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: Botan::GOST_3410_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - _public_ec_point
    - auto::size
    - std::swap
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> GOST_3410_PublicKey::public_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:53,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:56,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: Botan::GOST_3410_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - Encoding_Error
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string GOST_3410_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:65,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:66,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:68,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: Botan::GOST_3410_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - object_identifier
    - AlgorithmIdentifier
    - domain
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier GOST_3410_PublicKey::algorithm_identifier() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:77,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:77,1
    - Dst: check_domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:79,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:79,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:84,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:84,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:88,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:92,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:92,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:93,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:94,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:94,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:94,1
    - Dst: std::vector::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:94,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:95,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:95,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:95,1
    - Dst: std::vector::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:95,1
    - Dst: std::make_shared<EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:97,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 98
    functionName: Botan::GOST_3410_PublicKey::GOST_3410_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - Botan::EC_Group::from_OID
    - Decoding_Error
    - std::vector::push_back
    - parameters
    - std::vector::end
    - std::vector::rend
    - auto::get_p_bits
    - std::move
    - std::vector::reserve
    - std::vector::rbegin
    - check_domain
    - std::vector::insert
    - std::make_shared<EC_PublicKey_Data>
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void GOST_3410_PublicKey::GOST_3410_PublicKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:101,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' domain'
    - ' x'
    argTypes:
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Botan::GOST_3410_PrivateKey::GOST_3410_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - check_domain
    - Botan::EC_Scalar::from_bigint
    linkageType: ''
    returnType: void
    signature: void GOST_3410_PrivateKey::GOST_3410_PrivateKey(const EC_Group& domain,
      const BigInt& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:104,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - domain
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: Botan::GOST_3410_PrivateKey::GOST_3410_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - check_domain
    linkageType: ''
    returnType: void
    signature: void GOST_3410_PrivateKey::GOST_3410_PrivateKey(RandomNumberGenerator&
      rng, EC_Group domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - ' domain'
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: Botan::GOST_3410_PrivateKey::GOST_3410_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - check_domain
    linkageType: ''
    returnType: void
    signature: void GOST_3410_PrivateKey::GOST_3410_PrivateKey(RandomNumberGenerator&
      rng, const EC_Group& domain, const BigInt& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<GOST_3410_PublicKey>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:110,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:110,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Botan::GOST_3410_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<GOST_3410_PublicKey>
    - _public_ec_point
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> GOST_3410_PrivateKey::public_key() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:118,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:119,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - msg
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: Botan::gost_msg_to_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::one
    - Botan::EC_Scalar::from_bytes_mod_order
    - std::span<const uint8_t>::rend
    - std::span<const uint8_t>::rbegin
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar gost_msg_to_scalar(const EC_Group& group, std::span<const
      uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:132,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost_3410'
    - hash_fn
    argTypes:
    - GOST_3410_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: Botan::GOST_3410_Signature_Operation::GOST_3410_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - _private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Signature_Operation(const GOST_3410_PrivateKey& gost_3410,
      std::string_view hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::GOST_3410_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:146,1
    - Dst: get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:148,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:161,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:162,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 166
    functionName: Botan::GOST_3410_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - hash_function
    - AlgorithmIdentifier
    - get_p_bits
    - Not_Implemented
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier GOST_3410_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:169,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:172,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:176,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: Botan::GOST_3410_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::gk_x_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - Internal_Error
    - gost_msg_to_scalar
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> GOST_3410_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:183,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:184,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:187,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: Botan::gost_hash_from_algid
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - parameters_are_empty
    - Botan::fmt
    - Botan::oid
    - Botan::Decoding_Error
    linkageType: ''
    returnType: std::string
    signature: std::string gost_hash_from_algid(const AlgorithmIdentifier& alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:210,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - padding
    argTypes:
    - GOST_3410_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: Botan::GOST_3410_Verification_Operation::GOST_3410_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Verification_Operation(const GOST_3410_PublicKey& gost,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gost_hash_from_algid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:213,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:214,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - ' alg_id'
    argTypes:
    - GOST_3410_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: Botan::GOST_3410_Verification_Operation::GOST_3410_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - gost_hash_from_algid
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Verification_Operation(const GOST_3410_PublicKey& gost,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:225,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:226,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:228,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:228,1
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:229,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:231,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:234,1
    - Dst: negate
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - msg
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: Botan::GOST_3410_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - negate
    - Botan::EC_Scalar::deserialize_pair
    - is_nonzero
    - auto::invert_vartime
    - auto::value
    - gost_msg_to_scalar
    linkageType: ''
    returnType: bool
    signature: bool GOST_3410_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:118,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:119,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - msg
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: Botan::gost_msg_to_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::one
    - Botan::EC_Scalar::from_bytes_mod_order
    - std::span<const uint8_t>::rend
    - std::span<const uint8_t>::rbegin
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar gost_msg_to_scalar(const EC_Group& group, std::span<const
      uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:132,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost_3410'
    - hash_fn
    argTypes:
    - GOST_3410_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: Botan::GOST_3410_Signature_Operation::GOST_3410_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - _private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Signature_Operation(const GOST_3410_PrivateKey& gost_3410,
      std::string_view hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::GOST_3410_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:146,1
    - Dst: get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:148,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:161,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:162,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 166
    functionName: Botan::GOST_3410_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - hash_function
    - AlgorithmIdentifier
    - get_p_bits
    - Not_Implemented
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier GOST_3410_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:169,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:172,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:176,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: Botan::GOST_3410_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::gk_x_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - Internal_Error
    - gost_msg_to_scalar
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> GOST_3410_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:183,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:184,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:187,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: Botan::gost_hash_from_algid
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - parameters_are_empty
    - Botan::fmt
    - Botan::oid
    - Botan::Decoding_Error
    linkageType: ''
    returnType: std::string
    signature: std::string gost_hash_from_algid(const AlgorithmIdentifier& alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:210,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - padding
    argTypes:
    - GOST_3410_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: Botan::GOST_3410_Verification_Operation::GOST_3410_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Verification_Operation(const GOST_3410_PublicKey& gost,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gost_hash_from_algid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:213,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:214,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - ' alg_id'
    argTypes:
    - GOST_3410_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: Botan::GOST_3410_Verification_Operation::GOST_3410_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - gost_hash_from_algid
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Verification_Operation(const GOST_3410_PublicKey& gost,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:225,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:226,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:228,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:228,1
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:229,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:231,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:234,1
    - Dst: negate
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - msg
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: Botan::GOST_3410_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - negate
    - Botan::EC_Scalar::deserialize_pair
    - is_nonzero
    - auto::invert_vartime
    - auto::value
    - gost_msg_to_scalar
    linkageType: ''
    returnType: bool
    signature: bool GOST_3410_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<GOST_3410_PrivateKey>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:244,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Botan::GOST_3410_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<GOST_3410_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> GOST_3410_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:249,1
    - Dst: std::make_unique<GOST_3410_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:250,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:252,1
    - Dst: Botan::GOST_3410_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: Botan::GOST_3410_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<GOST_3410_Verification_Operation>
    - Provider_Not_Found
    - Botan::GOST_3410_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> GOST_3410_PublicKey::create_verification_op(std::string_view
      params,\n                                                                                  std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:257,1
    - Dst: std::make_unique<GOST_3410_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:258,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:261,1
    - Dst: Botan::GOST_3410_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: Botan::GOST_3410_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<GOST_3410_Verification_Operation>
    - Provider_Not_Found
    - Botan::GOST_3410_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> GOST_3410_PublicKey::create_x509_verification_op(\n
      \  const AlgorithmIdentifier& signature_algorithm, std::string_view provider)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:267,1
    - Dst: std::make_unique<GOST_3410_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:268,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:270,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: Botan::GOST_3410_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<GOST_3410_Signature_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> GOST_3410_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                             std::string_view
      params,\n                                                                             std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_Group::get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:23,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:25,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - domain
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: Botan::check_domain
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Decoding_Error
    - EC_Group::get_p_bits
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group check_domain(EC_Group domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_Group::get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:23,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:25,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - domain
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: Botan::check_domain
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Decoding_Error
    - EC_Group::get_p_bits
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group check_domain(EC_Group domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Botan::GOST_3410_PublicKey::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> GOST_3410_PublicKey::_signature_element_size_for_DER_encoding()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:37,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:39,1
    - Dst: std::swap
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:43,1
    - Dst: std::swap
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:44,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: Botan::GOST_3410_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - _public_ec_point
    - auto::size
    - std::swap
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> GOST_3410_PublicKey::public_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:53,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:56,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: Botan::GOST_3410_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 2
    functionsReached:
    - domain
    - Encoding_Error
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string GOST_3410_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:65,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:66,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:68,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: Botan::GOST_3410_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    - object_identifier
    - AlgorithmIdentifier
    - domain
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier GOST_3410_PublicKey::algorithm_identifier() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:77,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:77,1
    - Dst: check_domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:79,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:79,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:84,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:84,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:88,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:92,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:92,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:93,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:94,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:94,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:94,1
    - Dst: std::vector::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:94,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:95,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:95,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:95,1
    - Dst: std::vector::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:95,1
    - Dst: std::make_shared<EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:97,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 98
    functionName: Botan::GOST_3410_PublicKey::GOST_3410_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - Botan::EC_Group::from_OID
    - Decoding_Error
    - std::vector::push_back
    - parameters
    - std::vector::end
    - std::vector::rend
    - auto::get_p_bits
    - std::move
    - std::vector::reserve
    - std::vector::rbegin
    - check_domain
    - std::vector::insert
    - std::make_shared<EC_PublicKey_Data>
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void GOST_3410_PublicKey::GOST_3410_PublicKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:101,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' domain'
    - ' x'
    argTypes:
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Botan::GOST_3410_PrivateKey::GOST_3410_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - check_domain
    - Botan::EC_Scalar::from_bigint
    linkageType: ''
    returnType: void
    signature: void GOST_3410_PrivateKey::GOST_3410_PrivateKey(const EC_Group& domain,
      const BigInt& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:104,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - domain
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: Botan::GOST_3410_PrivateKey::GOST_3410_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - check_domain
    linkageType: ''
    returnType: void
    signature: void GOST_3410_PrivateKey::GOST_3410_PrivateKey(RandomNumberGenerator&
      rng, EC_Group domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - ' domain'
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: Botan::GOST_3410_PrivateKey::GOST_3410_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - check_domain
    linkageType: ''
    returnType: void
    signature: void GOST_3410_PrivateKey::GOST_3410_PrivateKey(RandomNumberGenerator&
      rng, const EC_Group& domain, const BigInt& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<GOST_3410_PublicKey>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:110,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:110,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Botan::GOST_3410_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<GOST_3410_PublicKey>
    - _public_ec_point
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> GOST_3410_PrivateKey::public_key() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:118,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:119,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - msg
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: Botan::gost_msg_to_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::one
    - Botan::EC_Scalar::from_bytes_mod_order
    - std::span<const uint8_t>::rend
    - std::span<const uint8_t>::rbegin
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar gost_msg_to_scalar(const EC_Group& group, std::span<const
      uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:132,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost_3410'
    - hash_fn
    argTypes:
    - GOST_3410_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: Botan::GOST_3410_Signature_Operation::GOST_3410_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - _private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Signature_Operation(const GOST_3410_PrivateKey& gost_3410,
      std::string_view hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::GOST_3410_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:146,1
    - Dst: get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:148,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:161,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:162,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 166
    functionName: Botan::GOST_3410_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - hash_function
    - AlgorithmIdentifier
    - get_p_bits
    - Not_Implemented
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier GOST_3410_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:169,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:172,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:176,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: Botan::GOST_3410_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::gk_x_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - Internal_Error
    - gost_msg_to_scalar
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> GOST_3410_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:183,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:184,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:187,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: Botan::gost_hash_from_algid
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - parameters_are_empty
    - Botan::fmt
    - Botan::oid
    - Botan::Decoding_Error
    linkageType: ''
    returnType: std::string
    signature: std::string gost_hash_from_algid(const AlgorithmIdentifier& alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:210,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - padding
    argTypes:
    - GOST_3410_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: Botan::GOST_3410_Verification_Operation::GOST_3410_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Verification_Operation(const GOST_3410_PublicKey& gost,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gost_hash_from_algid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:213,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:214,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - ' alg_id'
    argTypes:
    - GOST_3410_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: Botan::GOST_3410_Verification_Operation::GOST_3410_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - gost_hash_from_algid
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Verification_Operation(const GOST_3410_PublicKey& gost,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:225,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:226,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:228,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:228,1
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:229,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:231,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:234,1
    - Dst: negate
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - msg
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: Botan::GOST_3410_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - negate
    - Botan::EC_Scalar::deserialize_pair
    - is_nonzero
    - auto::invert_vartime
    - auto::value
    - gost_msg_to_scalar
    linkageType: ''
    returnType: bool
    signature: bool GOST_3410_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:118,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:119,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - msg
    argTypes:
    - EC_Group
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: Botan::gost_msg_to_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::one
    - Botan::EC_Scalar::from_bytes_mod_order
    - std::span<const uint8_t>::rend
    - std::span<const uint8_t>::rbegin
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar gost_msg_to_scalar(const EC_Group& group, std::span<const
      uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:132,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost_3410'
    - hash_fn
    argTypes:
    - GOST_3410_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: Botan::GOST_3410_Signature_Operation::GOST_3410_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - _private_key
    - domain
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Signature_Operation(const GOST_3410_PrivateKey& gost_3410,
      std::string_view hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::GOST_3410_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:146,1
    - Dst: get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:148,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:161,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:162,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 166
    functionName: Botan::GOST_3410_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - hash_function
    - AlgorithmIdentifier
    - get_p_bits
    - Not_Implemented
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier GOST_3410_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:169,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:172,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:176,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: Botan::GOST_3410_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::gk_x_mod_order
    - Botan::EC_Scalar::deserialize_pair
    - Internal_Error
    - gost_msg_to_scalar
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> GOST_3410_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:183,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:184,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:187,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: Botan::gost_hash_from_algid
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - parameters_are_empty
    - Botan::fmt
    - Botan::oid
    - Botan::Decoding_Error
    linkageType: ''
    returnType: std::string
    signature: std::string gost_hash_from_algid(const AlgorithmIdentifier& alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:210,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - padding
    argTypes:
    - GOST_3410_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: Botan::GOST_3410_Verification_Operation::GOST_3410_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Verification_Operation(const GOST_3410_PublicKey& gost,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gost_hash_from_algid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:213,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:214,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - ' alg_id'
    argTypes:
    - GOST_3410_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: Botan::GOST_3410_Verification_Operation::GOST_3410_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - gost_hash_from_algid
    linkageType: ''
    returnType: void
    signature: void GOST_3410_Verification_Operation(const GOST_3410_PublicKey& gost,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:225,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:226,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:228,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:228,1
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:229,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:231,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:234,1
    - Dst: negate
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - msg
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: Botan::GOST_3410_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - negate
    - Botan::EC_Scalar::deserialize_pair
    - is_nonzero
    - auto::invert_vartime
    - auto::value
    - gost_msg_to_scalar
    linkageType: ''
    returnType: bool
    signature: bool GOST_3410_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<GOST_3410_PrivateKey>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:244,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Botan::GOST_3410_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<GOST_3410_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> GOST_3410_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:249,1
    - Dst: std::make_unique<GOST_3410_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:250,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:252,1
    - Dst: Botan::GOST_3410_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: Botan::GOST_3410_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<GOST_3410_Verification_Operation>
    - Provider_Not_Found
    - Botan::GOST_3410_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> GOST_3410_PublicKey::create_verification_op(std::string_view
      params,\n                                                                                  std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:257,1
    - Dst: std::make_unique<GOST_3410_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:258,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:261,1
    - Dst: Botan::GOST_3410_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: Botan::GOST_3410_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - std::make_unique<GOST_3410_Verification_Operation>
    - Provider_Not_Found
    - Botan::GOST_3410_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> GOST_3410_PublicKey::create_x509_verification_op(\n
      \  const AlgorithmIdentifier& signature_algorithm, std::string_view provider)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:267,1
    - Dst: std::make_unique<GOST_3410_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:268,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:270,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: Botan::GOST_3410_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<GOST_3410_Signature_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> GOST_3410_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                             std::string_view
      params,\n                                                                             std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:24,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:24,1
    - Dst: SHAKE_128_XOF
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:26,1
    - Dst: FrodoSeedA
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:26,1
    - Dst: Botan::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:27,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:28,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:28,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:29,1
    - Dst: Botan::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: Botan::create_shake_row_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h
    functionUses: 0
    functionsReached:
    - Botan::mode
    - Botan::update
    - Botan::clear
    - Botan::output
    - SHAKE_128_XOF
    - FrodoSeedA
    - BOTAN_ASSERT_NOMSG
    - Botan::store_le
    linkageType: ''
    returnType: auto
    signature: auto create_shake_row_generator(const FrodoKEMConstants& constants,
      StrongSpan<const FrodoSeedA> seed_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:24,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:24,1
    - Dst: SHAKE_128_XOF
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:26,1
    - Dst: FrodoSeedA
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:26,1
    - Dst: Botan::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:27,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:28,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:28,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:29,1
    - Dst: Botan::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: Botan::create_shake_row_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem/frodo_shake_generator.h
    functionUses: 0
    functionsReached:
    - Botan::mode
    - Botan::update
    - Botan::clear
    - Botan::output
    - SHAKE_128_XOF
    - FrodoSeedA
    - BOTAN_ASSERT_NOMSG
    - Botan::store_le
    linkageType: ''
    returnType: auto
    signature: auto create_shake_row_generator(const FrodoKEMConstants& constants,
      StrongSpan<const FrodoSeedA> seed_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:24,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:24,1
    - Dst: AES_128::set_key
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:28,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:32,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:32,1
    - Dst: setup_aes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:32,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:35,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:35,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:41,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:41,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:42,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:42,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:45,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:45,1
    - Dst: AES_128::encrypt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: Botan::create_aes_row_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h
    functionUses: 0
    functionsReached:
    - Botan::mode
    - BufferStuffer::full
    - Botan::n
    - AES_128::set_key
    - BOTAN_DEBUG_ASSERT
    - BufferStuffer::remaining_capacity
    - BufferStuffer::append
    - static_cast<uint16_t>
    - BufferStuffer::next
    - AES_128::encrypt
    - BOTAN_ASSERT_NOMSG
    - Botan::store_le
    - Botan::clear_mem
    - setup_aes
    linkageType: ''
    returnType: auto
    signature: auto create_aes_row_generator(const FrodoKEMConstants& constants, StrongSpan<const
      FrodoSeedA> seed_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:24,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:24,1
    - Dst: AES_128::set_key
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:28,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:32,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:32,1
    - Dst: setup_aes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:32,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:35,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:35,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:41,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:41,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:42,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:42,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:45,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:45,1
    - Dst: AES_128::encrypt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: Botan::create_aes_row_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h
    functionUses: 0
    functionsReached:
    - Botan::mode
    - BufferStuffer::full
    - Botan::n
    - AES_128::set_key
    - BOTAN_DEBUG_ASSERT
    - BufferStuffer::remaining_capacity
    - BufferStuffer::append
    - static_cast<uint16_t>
    - BufferStuffer::next
    - AES_128::encrypt
    - BOTAN_ASSERT_NOMSG
    - Botan::store_le
    - Botan::clear_mem
    - setup_aes
    linkageType: ''
    returnType: auto
    signature: auto create_aes_row_generator(const FrodoKEMConstants& constants, StrongSpan<const
      FrodoSeedA> seed_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:39,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:41,1
    - Dst: FrodoDomainSeparator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:75,1
    - Dst: FrodoDomainSeparator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 97
    functionName: Botan::FrodoKEMConstants
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - Botan::size
    - at
    - FrodoDomainSeparator
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API FrodoKEMConstants
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::FrodoKEMConstants
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FrodoKEMConstants(const FrodoKEMConstants& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::FrodoKEMConstants
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FrodoKEMConstants(FrodoKEMConstants&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::mode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: FrodoKEMMode
    signature: FrodoKEMMode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::cdf_table_len
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - Botan::size
    linkageType: ''
    returnType: size_t
    signature: size_t cdf_table_len() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::cdf_table_at
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t cdf_table_at(size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::n
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::b
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::d
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t d() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::n_bar
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t n_bar() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::len_a_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_a_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::len_se_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_se_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::len_sec_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_sec_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::len_salt_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_salt_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::len_ct_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_ct_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::len_public_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_public_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::len_private_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_private_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::len_packed_b_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_packed_b_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::len_packed_c_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_packed_c_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoDomainSeparator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan::encapsulation_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - FrodoDomainSeparator
    linkageType: ''
    returnType: FrodoDomainSeparator
    signature: FrodoDomainSeparator encapsulation_domain_separator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoDomainSeparator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::keygen_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - FrodoDomainSeparator
    linkageType: ''
    returnType: FrodoDomainSeparator
    signature: FrodoDomainSeparator keygen_domain_separator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:39,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:41,1
    - Dst: FrodoDomainSeparator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:75,1
    - Dst: FrodoDomainSeparator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 97
    functionName: Botan::FrodoKEMConstants
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - Botan::size
    - at
    - FrodoDomainSeparator
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API FrodoKEMConstants
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::FrodoKEMConstants
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FrodoKEMConstants(const FrodoKEMConstants& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::FrodoKEMConstants
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FrodoKEMConstants(FrodoKEMConstants&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::mode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: FrodoKEMMode
    signature: FrodoKEMMode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::cdf_table_len
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - Botan::size
    linkageType: ''
    returnType: size_t
    signature: size_t cdf_table_len() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::cdf_table_at
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t cdf_table_at(size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::n
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::b
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::d
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t d() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::n_bar
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t n_bar() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::len_a_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_a_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::len_se_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_se_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::len_sec_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_sec_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::len_salt_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_salt_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Botan::len_ct_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_ct_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::len_public_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_public_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Botan::len_private_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_private_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::len_packed_b_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_packed_b_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::len_packed_c_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len_packed_c_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoDomainSeparator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan::encapsulation_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - FrodoDomainSeparator
    linkageType: ''
    returnType: FrodoDomainSeparator
    signature: FrodoDomainSeparator encapsulation_domain_separator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoDomainSeparator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::keygen_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - FrodoDomainSeparator
    linkageType: ''
    returnType: FrodoDomainSeparator
    signature: FrodoDomainSeparator keygen_domain_separator() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:59,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:59,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 60
    functionName: Botan::FrodoKEM_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: FrodoKEMMode::Mode
    signature: FrodoKEMMode::Mode FrodoKEM_mode_from_string(std::string_view str)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:59,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:59,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 60
    functionName: Botan::FrodoKEM_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: FrodoKEMMode::Mode
    signature: FrodoKEMMode::Mode FrodoKEM_mode_from_string(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mode
    argTypes:
    - Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::FrodoKEMMode::FrodoKEMMode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FrodoKEMMode::FrodoKEMMode(Mode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEM_mode_from_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:66,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::FrodoKEMMode::FrodoKEMMode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 8
    functionsReached:
    - to_formatted_string
    - FrodoKEM_mode_from_string
    linkageType: ''
    returnType: void
    signature: void FrodoKEMMode::FrodoKEMMode(const OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEM_mode_from_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::FrodoKEMMode::FrodoKEMMode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 8
    functionsReached:
    - FrodoKEM_mode_from_string
    linkageType: ''
    returnType: void
    signature: void FrodoKEMMode::FrodoKEMMode(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:71,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::FrodoKEMMode::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - Botan::FrodoKEMMode::to_string
    linkageType: ''
    returnType: OID
    signature: OID FrodoKEMMode::object_identifier() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_aes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:75,1
    - Dst: is_shake
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: Botan::FrodoKEMMode::is_available
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 4
    functionsReached:
    - is_aes
    - is_shake
    linkageType: ''
    returnType: bool
    signature: bool FrodoKEMMode::is_available() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 124
    functionName: Botan::FrodoKEMMode::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 5
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::string
    signature: std::string FrodoKEMMode::to_string() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:59,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:59,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 60
    functionName: Botan::FrodoKEM_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: FrodoKEMMode::Mode
    signature: FrodoKEMMode::Mode FrodoKEM_mode_from_string(std::string_view str)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:59,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:59,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 60
    functionName: Botan::FrodoKEM_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: FrodoKEMMode::Mode
    signature: FrodoKEMMode::Mode FrodoKEM_mode_from_string(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mode
    argTypes:
    - Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::FrodoKEMMode::FrodoKEMMode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FrodoKEMMode::FrodoKEMMode(Mode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEM_mode_from_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:66,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::FrodoKEMMode::FrodoKEMMode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 8
    functionsReached:
    - to_formatted_string
    - FrodoKEM_mode_from_string
    linkageType: ''
    returnType: void
    signature: void FrodoKEMMode::FrodoKEMMode(const OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEM_mode_from_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::FrodoKEMMode::FrodoKEMMode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 8
    functionsReached:
    - FrodoKEM_mode_from_string
    linkageType: ''
    returnType: void
    signature: void FrodoKEMMode::FrodoKEMMode(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:71,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Botan::FrodoKEMMode::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - Botan::FrodoKEMMode::to_string
    linkageType: ''
    returnType: OID
    signature: OID FrodoKEMMode::object_identifier() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_aes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:75,1
    - Dst: is_shake
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: Botan::FrodoKEMMode::is_available
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 4
    functionsReached:
    - is_aes
    - is_shake
    linkageType: ''
    returnType: bool
    signature: bool FrodoKEMMode::is_available() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 124
    functionName: Botan::FrodoKEMMode::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 6
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::string
    signature: std::string FrodoKEMMode::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:36,1
    - Dst: create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:37,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:38,1
    - Dst: Botan::FrodoKEM_PublicKeyInternal::serialize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:38,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:39,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - constants
    - seed_a
    - b
    argTypes:
    - FrodoKEMConstants
    - FrodoSeedA
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: Botan::FrodoKEM_PublicKeyInternal::FrodoKEM_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::output
    - auto::update
    - Botan::FrodoKEM_PublicKeyInternal::serialize
    - create_xof
    - len_sec_bytes
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PublicKeyInternal(FrodoKEMConstants constants, FrodoSeedA
      seed_a, FrodoMatrix b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& constants() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoKEMConstants
    signature: FrodoKEMConstants & constants() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& seed_a() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoSeedA
    signature: FrodoSeedA & seed_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& b() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix & b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: '& hash() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoPublicKeyHash
    signature: FrodoPublicKeyHash & hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:50,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:50,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::FrodoKEM_PublicKeyInternal::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 1
    functionsReached:
    - b
    - concat
    - seed_a
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:62,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - s_trans
    argTypes:
    - FrodoSeedS
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: Botan::FrodoKEM_PrivateKeyInternal::FrodoKEM_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PrivateKeyInternal(FrodoSeedS s, FrodoMatrix s_trans)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: '& s() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoSeedS
    signature: FrodoSeedS & s() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: '& s_trans() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix & s_trans() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::FrodoKEM_PrivateKeyInternal::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison_all
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::FrodoKEM_PrivateKeyInternal::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - kdf
    argTypes:
    - std::shared_ptr<FrodoKEM_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: Botan::Frodo_KEM_Encryptor::Frodo_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Frodo_KEM_Encryptor(std::shared_ptr<FrodoKEM_PublicKeyInternal>
      key, std::string_view kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: Botan::Frodo_KEM_Encryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::Frodo_KEM_Encryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:95,1
    - Dst: create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:96,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:97,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:101,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:101,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:102,1
    - Dst: len_packed_c_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:102,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:103,1
    - Dst: len_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:103,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:105,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:105,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:107,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:107,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:108,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:110,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:112,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:112,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:113,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:114,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:116,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:116,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:119,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:119,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:120,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:126,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:126,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:128,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:131,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:133,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:133,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:135,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:137,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:139,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:141,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:142,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:143,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 146
    functionName: Botan::Frodo_KEM_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - n
    - random_vec
    - encapsulation_domain_separator
    - n_bar
    - Botan::FrodoMatrix::add
    - auto::pack
    - auto::clear
    - len_sec_bytes
    - hash
    - Botan::FrodoMatrix::make_sample_generator
    - sample_generator
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - seed_a
    - BufferStuffer::full
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - len_packed_b_bytes
    - len_se_bytes
    - len_packed_c_bytes
    - Botan::CT::poison
    - randomize
    - std::tuple
    - create_xof
    - Botan::CT::unpoison_all
    - len_salt_bytes
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - BufferStuffer::next
    - auto::output
    - b
    - constants
    - Botan::FrodoMatrix::encode
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      out_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - public_key
    - private_key
    - kdf
    argTypes:
    - std::shared_ptr<FrodoKEM_PublicKeyInternal>
    - std::shared_ptr<FrodoKEM_PrivateKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Botan::Frodo_KEM_Decryptor::Frodo_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Frodo_KEM_Decryptor(std::shared_ptr<FrodoKEM_PublicKeyInternal>
      public_key,\n                          std::shared_ptr<FrodoKEM_PrivateKeyInternal>
      private_key,\n                          std::string_view kdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan::Frodo_KEM_Decryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan::Frodo_KEM_Decryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:164,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:166,1
    - Dst: create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:167,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:168,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:170,1
    - Dst: len_ct_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:170,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:171,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:175,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:175,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:176,1
    - Dst: len_packed_c_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:176,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: len_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:178,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:178,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: Botan::FrodoMatrix::mul_bs
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:183,1
    - Dst: s_trans
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:183,1
    - Dst: Botan::FrodoMatrix::sub
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:184,1
    - Dst: auto::decode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:186,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:188,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:188,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:189,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:190,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:193,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:193,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:194,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:196,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:196,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:197,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:202,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:202,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:205,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:207,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:207,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:209,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:210,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:215,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:216,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:221,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:221,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:226,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:227,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:228,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 231
    functionName: Botan::Frodo_KEM_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - n
    - auto::data
    - encapsulation_domain_separator
    - auto::reduce
    - auto::constant_time_compare
    - len_ct_bytes
    - n_bar
    - Botan::FrodoMatrix::mul_bs
    - Botan::FrodoMatrix::add
    - auto::decode
    - auto::clear
    - len_sec_bytes
    - hash
    - Botan::FrodoMatrix::make_sample_generator
    - Botan::CT::conditional_copy_mem
    - sample_generator
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - BufferSlicer::take
    - seed_a
    - s_trans
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - Invalid_Argument
    - len_packed_b_bytes
    - len_se_bytes
    - len_packed_c_bytes
    - Botan::FrodoMatrix::unpack
    - BufferSlicer::empty
    - Botan::CT::scoped_poison
    - create_xof
    - std::tuple
    - s
    - len_salt_bytes
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - std::vector::data
    - auto::output
    - b
    - constants
    - Botan::FrodoMatrix::sub
    - Botan::FrodoMatrix::encode
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_kem_decrypt(std::span<uint8_t> out_shared_key, std::span<const
      uint8_t> encapsulated_key) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - kdf
    argTypes:
    - std::shared_ptr<FrodoKEM_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: Botan::Frodo_KEM_Encryptor::Frodo_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Frodo_KEM_Encryptor(std::shared_ptr<FrodoKEM_PublicKeyInternal>
      key, std::string_view kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: Botan::Frodo_KEM_Encryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::Frodo_KEM_Encryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:95,1
    - Dst: create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:96,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:97,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:101,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:101,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:102,1
    - Dst: len_packed_c_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:102,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:103,1
    - Dst: len_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:103,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:105,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:105,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:107,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:107,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:108,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:110,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:112,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:112,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:113,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:114,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:116,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:116,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:119,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:119,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:120,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:126,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:126,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:128,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:131,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:133,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:133,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:135,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:137,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:139,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:141,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:142,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:143,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 146
    functionName: Botan::Frodo_KEM_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - n
    - random_vec
    - encapsulation_domain_separator
    - n_bar
    - Botan::FrodoMatrix::add
    - auto::pack
    - auto::clear
    - len_sec_bytes
    - hash
    - Botan::FrodoMatrix::make_sample_generator
    - sample_generator
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - seed_a
    - BufferStuffer::full
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - len_packed_b_bytes
    - len_se_bytes
    - len_packed_c_bytes
    - Botan::CT::poison
    - randomize
    - std::tuple
    - create_xof
    - Botan::CT::unpoison_all
    - len_salt_bytes
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - BufferStuffer::next
    - auto::output
    - b
    - constants
    - Botan::FrodoMatrix::encode
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      out_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - public_key
    - private_key
    - kdf
    argTypes:
    - std::shared_ptr<FrodoKEM_PublicKeyInternal>
    - std::shared_ptr<FrodoKEM_PrivateKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Botan::Frodo_KEM_Decryptor::Frodo_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Frodo_KEM_Decryptor(std::shared_ptr<FrodoKEM_PublicKeyInternal>
      public_key,\n                          std::shared_ptr<FrodoKEM_PrivateKeyInternal>
      private_key,\n                          std::string_view kdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan::Frodo_KEM_Decryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan::Frodo_KEM_Decryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:164,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:166,1
    - Dst: create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:167,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:168,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:170,1
    - Dst: len_ct_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:170,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:171,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:175,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:175,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:176,1
    - Dst: len_packed_c_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:176,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: len_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:178,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:178,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: Botan::FrodoMatrix::mul_bs
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:183,1
    - Dst: s_trans
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:183,1
    - Dst: Botan::FrodoMatrix::sub
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:184,1
    - Dst: auto::decode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:186,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:188,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:188,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:189,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:190,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:193,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:193,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:194,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:196,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:196,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:197,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:202,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:202,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:205,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:207,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:207,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:209,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:210,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:215,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:216,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:221,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:221,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:226,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:227,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:228,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 231
    functionName: Botan::Frodo_KEM_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - n
    - auto::data
    - encapsulation_domain_separator
    - auto::reduce
    - auto::constant_time_compare
    - len_ct_bytes
    - n_bar
    - Botan::FrodoMatrix::mul_bs
    - Botan::FrodoMatrix::add
    - auto::decode
    - auto::clear
    - len_sec_bytes
    - hash
    - Botan::FrodoMatrix::make_sample_generator
    - Botan::CT::conditional_copy_mem
    - sample_generator
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - BufferSlicer::take
    - seed_a
    - s_trans
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - Invalid_Argument
    - len_packed_b_bytes
    - len_se_bytes
    - len_packed_c_bytes
    - Botan::FrodoMatrix::unpack
    - BufferSlicer::empty
    - Botan::CT::scoped_poison
    - create_xof
    - std::tuple
    - s
    - len_salt_bytes
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - std::vector::data
    - auto::output
    - b
    - constants
    - Botan::FrodoMatrix::sub
    - Botan::FrodoMatrix::encode
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_kem_decrypt(std::span<uint8_t> out_shared_key, std::span<const
      uint8_t> encapsulated_key) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:246,1
    - Dst: FrodoKEMConstants::len_public_key_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:246,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:247,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:251,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:251,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:252,1
    - Dst: FrodoKEMConstants::d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:252,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:252,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:253,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:253,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:255,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:255,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:255,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:255,1
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pub_key
    - mode
    argTypes:
    - std::span<const uint8_t>
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: Botan::FrodoKEM_PublicKey::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - BufferSlicer::copy
    - FrodoKEMConstants::d
    - std::move
    - FrodoKEMConstants::n_bar
    - FrodoKEMConstants::len_a_bytes
    - std::tuple
    - FrodoKEMConstants::n
    - Botan::FrodoMatrix::unpack
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - FrodoKEMConstants::len_public_key_bytes
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PublicKey::FrodoKEM_PublicKey(std::span<const uint8_t>
      pub_key, FrodoKEMMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:261,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: Botan::FrodoKEM_PublicKey::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - FrodoKEMMode
    - oid
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PublicKey::FrodoKEM_PublicKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:264,1
    - Dst: m_public::constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:265,1
    - Dst: m_public::seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:265,1
    - Dst: m_public::b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEM_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: Botan::FrodoKEM_PublicKey::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - m_public::constants
    - m_public::seed_a
    - m_public::b
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PublicKey::FrodoKEM_PublicKey(const FrodoKEM_PublicKey&
      other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:270,1
    - Dst: m_public::constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:271,1
    - Dst: m_public::seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:271,1
    - Dst: m_public::b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEM_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: '& FrodoKEM_PublicKey::operator=(const FrodoKEM_PublicKey& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - m_public::constants
    - m_public::seed_a
    - m_public::b
    linkageType: ''
    returnType: FrodoKEM_PublicKey
    signature: FrodoKEM_PublicKey & FrodoKEM_PublicKey::operator=(const FrodoKEM_PublicKey&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:277,1
    - Dst: Botan::FrodoKEM_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: Botan::FrodoKEM_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEM_PublicKey::object_identifier
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier FrodoKEM_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: Botan::FrodoKEM_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 1
    functionsReached:
    - constants
    linkageType: ''
    returnType: OID
    signature: OID FrodoKEM_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: Botan::FrodoKEM_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t FrodoKEM_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: Botan::FrodoKEM_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t FrodoKEM_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:293,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:293,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:293,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: Botan::FrodoKEM_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - b
    - concat
    - constants
    - seed_a
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> FrodoKEM_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoKEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: Botan::FrodoKEM_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEM_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> FrodoKEM_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: Botan::FrodoKEM_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FrodoKEM_PublicKey::check_key(RandomNumberGenerator& /*rng*/,
      bool /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:307,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: Botan::FrodoKEM_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<FrodoKEM_PrivateKey>
    - constants
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> FrodoKEM_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:312,1
    - Dst: std::make_unique<Frodo_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:313,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:315,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: Botan::FrodoKEM_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<Frodo_KEM_Encryptor>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> FrodoKEM_PublicKey::create_kem_encryption_op(std::string_view
      params,\n                                                                                     std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEMConstants::create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:324,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:326,1
    - Dst: FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:326,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:327,1
    - Dst: FrodoKEMConstants::len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:327,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:328,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:328,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:330,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:332,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:333,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:333,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:334,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:336,1
    - Dst: FrodoKEMConstants::keygen_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:336,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:337,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:339,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:340,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:340,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:340,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:340,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:341,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:341,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:341,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:341,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:342,1
    - Dst: Botan::FrodoMatrix::mul_add_as_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:344,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:346,1
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:348,1
    - Dst: std::make_shared<FrodoKEM_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:349,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:349,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' rng'
    - mode
    argTypes:
    - RandomNumberGenerator
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 350
    functionName: Botan::FrodoKEM_PrivateKey::FrodoKEM_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - Botan::CT::poison_all
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - auto::clear
    - Botan::FrodoMatrix::make_sample_generator
    - std::move
    - FrodoKEMConstants::n_bar
    - FrodoKEMConstants::len_sec_bytes
    - sample_generator
    - auto::update
    - FrodoKEMConstants::n
    - FrodoKEMConstants::create_xof
    - FrodoKEMConstants::keygen_domain_separator
    - FrodoKEMConstants::len_se_bytes
    - std::tuple
    - Botan::CT::unpoison_all
    - std::make_shared<FrodoKEM_PrivateKeyInternal>
    - FrodoKEMConstants::len_a_bytes
    - Botan::FrodoMatrix::mul_add_as_plus_e
    - auto::output
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PrivateKey::FrodoKEM_PrivateKey(RandomNumberGenerator&
      rng, FrodoKEMMode mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:355,1
    - Dst: FrodoKEMConstants::len_private_key_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:355,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:356,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:360,1
    - Dst: FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:360,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:361,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:361,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: FrodoKEMConstants::d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:363,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:363,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:363,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:365,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:365,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: Botan::FrodoMatrix::deserialize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    - Dst: std::make_shared<FrodoKEM_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:371,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:371,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:371,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:373,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sk
    - mode
    argTypes:
    - std::span<const uint8_t>
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 374
    functionName: Botan::FrodoKEM_PrivateKey::FrodoKEM_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - hash
    - std::move
    - FrodoKEMConstants::n_bar
    - FrodoKEMConstants::len_sec_bytes
    - FrodoKEMConstants::n
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    - BOTAN_STATE_CHECK
    - Invalid_Argument
    - BufferSlicer::copy
    - FrodoKEMConstants::d
    - Botan::FrodoMatrix::unpack
    - BufferSlicer::empty
    - FrodoKEMConstants::len_private_key_bytes
    - std::tuple
    - std::make_shared<FrodoKEM_PrivateKeyInternal>
    - FrodoKEMConstants::len_a_bytes
    - Botan::FrodoMatrix::deserialize
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PrivateKey::FrodoKEM_PrivateKey(std::span<const uint8_t>
      sk, FrodoKEMMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:377,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: Botan::FrodoKEM_PrivateKey::FrodoKEM_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - FrodoKEMMode
    - oid
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PrivateKey::FrodoKEM_PrivateKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<FrodoKEM_PublicKey>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: Botan::FrodoKEM_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<FrodoKEM_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> FrodoKEM_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoKEM_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: Botan::FrodoKEM_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEM_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> FrodoKEM_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:388,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:388,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:389,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:390,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:390,1
    - Dst: s_trans
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:391,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 393
    functionName: Botan::FrodoKEM_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 1
    functionsReached:
    - s_trans
    - hash
    - concat
    - s
    - b
    - constants
    - seed_a
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> FrodoKEM_PrivateKey::raw_private_key_bits()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:398,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:399,1
    - Dst: std::make_unique<Frodo_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:400,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:402,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: Botan::FrodoKEM_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Frodo_KEM_Decryptor>
    - algo_name
    - BOTAN_UNUSED
    - Provider_Not_Found
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> FrodoKEM_PrivateKey::create_kem_decryption_op(RandomNumberGenerator&
      rng,\n                                                                                      std::string_view
      params,\n                                                                                      std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:36,1
    - Dst: create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:37,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:38,1
    - Dst: Botan::FrodoKEM_PublicKeyInternal::serialize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:38,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:39,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - constants
    - seed_a
    - b
    argTypes:
    - FrodoKEMConstants
    - FrodoSeedA
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: Botan::FrodoKEM_PublicKeyInternal::FrodoKEM_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::output
    - auto::update
    - Botan::FrodoKEM_PublicKeyInternal::serialize
    - create_xof
    - len_sec_bytes
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PublicKeyInternal(FrodoKEMConstants constants, FrodoSeedA
      seed_a, FrodoMatrix b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& constants() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoKEMConstants
    signature: FrodoKEMConstants & constants() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& seed_a() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoSeedA
    signature: FrodoSeedA & seed_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& b() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix & b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: '& hash() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoPublicKeyHash
    signature: FrodoPublicKeyHash & hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:50,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:50,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan::FrodoKEM_PublicKeyInternal::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 2
    functionsReached:
    - b
    - concat
    - seed_a
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:62,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - s_trans
    argTypes:
    - FrodoSeedS
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: Botan::FrodoKEM_PrivateKeyInternal::FrodoKEM_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PrivateKeyInternal(FrodoSeedS s, FrodoMatrix s_trans)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: '& s() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoSeedS
    signature: FrodoSeedS & s() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: '& s_trans() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix & s_trans() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::FrodoKEM_PrivateKeyInternal::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison_all
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::FrodoKEM_PrivateKeyInternal::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - kdf
    argTypes:
    - std::shared_ptr<FrodoKEM_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: Botan::Frodo_KEM_Encryptor::Frodo_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Frodo_KEM_Encryptor(std::shared_ptr<FrodoKEM_PublicKeyInternal>
      key, std::string_view kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: Botan::Frodo_KEM_Encryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::Frodo_KEM_Encryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:95,1
    - Dst: create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:96,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:97,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:101,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:101,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:102,1
    - Dst: len_packed_c_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:102,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:103,1
    - Dst: len_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:103,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:105,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:105,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:107,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:107,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:108,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:110,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:112,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:112,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:113,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:114,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:116,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:116,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:119,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:119,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:120,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:126,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:126,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:128,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:131,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:133,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:133,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:135,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:137,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:139,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:141,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:142,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:143,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 146
    functionName: Botan::Frodo_KEM_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - n
    - random_vec
    - encapsulation_domain_separator
    - n_bar
    - Botan::FrodoMatrix::add
    - auto::pack
    - auto::clear
    - len_sec_bytes
    - hash
    - Botan::FrodoMatrix::make_sample_generator
    - sample_generator
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - seed_a
    - BufferStuffer::full
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - len_packed_b_bytes
    - len_se_bytes
    - len_packed_c_bytes
    - Botan::CT::poison
    - randomize
    - std::tuple
    - create_xof
    - Botan::CT::unpoison_all
    - len_salt_bytes
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - BufferStuffer::next
    - auto::output
    - b
    - constants
    - Botan::FrodoMatrix::encode
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      out_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - public_key
    - private_key
    - kdf
    argTypes:
    - std::shared_ptr<FrodoKEM_PublicKeyInternal>
    - std::shared_ptr<FrodoKEM_PrivateKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Botan::Frodo_KEM_Decryptor::Frodo_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Frodo_KEM_Decryptor(std::shared_ptr<FrodoKEM_PublicKeyInternal>
      public_key,\n                          std::shared_ptr<FrodoKEM_PrivateKeyInternal>
      private_key,\n                          std::string_view kdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan::Frodo_KEM_Decryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan::Frodo_KEM_Decryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:164,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:166,1
    - Dst: create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:167,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:168,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:170,1
    - Dst: len_ct_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:170,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:171,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:175,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:175,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:176,1
    - Dst: len_packed_c_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:176,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: len_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:178,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:178,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: Botan::FrodoMatrix::mul_bs
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:183,1
    - Dst: s_trans
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:183,1
    - Dst: Botan::FrodoMatrix::sub
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:184,1
    - Dst: auto::decode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:186,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:188,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:188,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:189,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:190,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:193,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:193,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:194,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:196,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:196,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:197,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:202,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:202,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:205,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:207,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:207,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:209,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:210,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:215,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:216,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:221,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:221,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:226,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:227,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:228,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 231
    functionName: Botan::Frodo_KEM_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - n
    - auto::data
    - encapsulation_domain_separator
    - auto::reduce
    - auto::constant_time_compare
    - len_ct_bytes
    - n_bar
    - Botan::FrodoMatrix::mul_bs
    - Botan::FrodoMatrix::add
    - auto::decode
    - auto::clear
    - len_sec_bytes
    - hash
    - Botan::FrodoMatrix::make_sample_generator
    - Botan::CT::conditional_copy_mem
    - sample_generator
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - BufferSlicer::take
    - seed_a
    - s_trans
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - Invalid_Argument
    - len_packed_b_bytes
    - len_se_bytes
    - len_packed_c_bytes
    - Botan::FrodoMatrix::unpack
    - BufferSlicer::empty
    - Botan::CT::scoped_poison
    - create_xof
    - std::tuple
    - s
    - len_salt_bytes
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - std::vector::data
    - auto::output
    - b
    - constants
    - Botan::FrodoMatrix::sub
    - Botan::FrodoMatrix::encode
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_kem_decrypt(std::span<uint8_t> out_shared_key, std::span<const
      uint8_t> encapsulated_key) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - kdf
    argTypes:
    - std::shared_ptr<FrodoKEM_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: Botan::Frodo_KEM_Encryptor::Frodo_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Frodo_KEM_Encryptor(std::shared_ptr<FrodoKEM_PublicKeyInternal>
      key, std::string_view kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: Botan::Frodo_KEM_Encryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::Frodo_KEM_Encryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:95,1
    - Dst: create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:96,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:97,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:101,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:101,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:102,1
    - Dst: len_packed_c_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:102,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:103,1
    - Dst: len_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:103,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:105,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:105,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:107,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:107,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:108,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:110,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:112,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:112,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:113,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:114,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:116,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:116,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:119,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:119,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:120,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:122,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:124,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:126,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:126,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:128,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:131,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:133,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:133,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:135,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:137,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:139,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:141,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:142,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:143,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 146
    functionName: Botan::Frodo_KEM_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - n
    - random_vec
    - encapsulation_domain_separator
    - n_bar
    - Botan::FrodoMatrix::add
    - auto::pack
    - auto::clear
    - len_sec_bytes
    - hash
    - Botan::FrodoMatrix::make_sample_generator
    - sample_generator
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - seed_a
    - BufferStuffer::full
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - len_packed_b_bytes
    - len_se_bytes
    - len_packed_c_bytes
    - Botan::CT::poison
    - randomize
    - std::tuple
    - create_xof
    - Botan::CT::unpoison_all
    - len_salt_bytes
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - BufferStuffer::next
    - auto::output
    - b
    - constants
    - Botan::FrodoMatrix::encode
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      out_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - public_key
    - private_key
    - kdf
    argTypes:
    - std::shared_ptr<FrodoKEM_PublicKeyInternal>
    - std::shared_ptr<FrodoKEM_PrivateKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Botan::Frodo_KEM_Decryptor::Frodo_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Frodo_KEM_Decryptor(std::shared_ptr<FrodoKEM_PublicKeyInternal>
      public_key,\n                          std::shared_ptr<FrodoKEM_PrivateKeyInternal>
      private_key,\n                          std::string_view kdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: Botan::Frodo_KEM_Decryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan::Frodo_KEM_Decryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:164,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:166,1
    - Dst: create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:167,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:168,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:170,1
    - Dst: len_ct_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:170,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:171,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:175,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:175,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:176,1
    - Dst: len_packed_c_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:176,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: len_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:178,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:178,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:181,1
    - Dst: Botan::FrodoMatrix::mul_bs
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:183,1
    - Dst: s_trans
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:183,1
    - Dst: Botan::FrodoMatrix::sub
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:184,1
    - Dst: auto::decode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:186,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:188,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:188,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:189,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:190,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:193,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:193,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:194,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:196,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:196,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:197,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:198,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:200,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:202,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:202,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:205,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:207,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:207,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:209,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:210,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:215,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:216,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:221,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:221,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:224,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:226,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:227,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:228,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 231
    functionName: Botan::Frodo_KEM_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - n
    - auto::data
    - encapsulation_domain_separator
    - auto::reduce
    - auto::constant_time_compare
    - len_ct_bytes
    - n_bar
    - Botan::FrodoMatrix::mul_bs
    - Botan::FrodoMatrix::add
    - auto::decode
    - auto::clear
    - len_sec_bytes
    - hash
    - Botan::FrodoMatrix::make_sample_generator
    - Botan::CT::conditional_copy_mem
    - sample_generator
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - BufferSlicer::take
    - seed_a
    - s_trans
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - Invalid_Argument
    - len_packed_b_bytes
    - len_se_bytes
    - len_packed_c_bytes
    - Botan::FrodoMatrix::unpack
    - BufferSlicer::empty
    - Botan::CT::scoped_poison
    - create_xof
    - std::tuple
    - s
    - len_salt_bytes
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - std::vector::data
    - auto::output
    - b
    - constants
    - Botan::FrodoMatrix::sub
    - Botan::FrodoMatrix::encode
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_kem_decrypt(std::span<uint8_t> out_shared_key, std::span<const
      uint8_t> encapsulated_key) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:246,1
    - Dst: FrodoKEMConstants::len_public_key_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:246,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:247,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:251,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:251,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:252,1
    - Dst: FrodoKEMConstants::d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:252,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:252,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:253,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:253,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:255,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:255,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:255,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:255,1
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pub_key
    - mode
    argTypes:
    - std::span<const uint8_t>
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: Botan::FrodoKEM_PublicKey::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - BufferSlicer::copy
    - FrodoKEMConstants::d
    - std::move
    - FrodoKEMConstants::n_bar
    - FrodoKEMConstants::len_a_bytes
    - std::tuple
    - FrodoKEMConstants::n
    - Botan::FrodoMatrix::unpack
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - FrodoKEMConstants::len_public_key_bytes
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PublicKey::FrodoKEM_PublicKey(std::span<const uint8_t>
      pub_key, FrodoKEMMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:261,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: Botan::FrodoKEM_PublicKey::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - FrodoKEMMode
    - oid
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PublicKey::FrodoKEM_PublicKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:264,1
    - Dst: m_public::constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:265,1
    - Dst: m_public::seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:265,1
    - Dst: m_public::b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEM_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: Botan::FrodoKEM_PublicKey::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - m_public::constants
    - m_public::seed_a
    - m_public::b
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PublicKey::FrodoKEM_PublicKey(const FrodoKEM_PublicKey&
      other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:270,1
    - Dst: m_public::constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:271,1
    - Dst: m_public::seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:271,1
    - Dst: m_public::b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEM_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: '& FrodoKEM_PublicKey::operator=(const FrodoKEM_PublicKey& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - m_public::constants
    - m_public::seed_a
    - m_public::b
    linkageType: ''
    returnType: FrodoKEM_PublicKey
    signature: FrodoKEM_PublicKey & FrodoKEM_PublicKey::operator=(const FrodoKEM_PublicKey&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:277,1
    - Dst: Botan::FrodoKEM_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: Botan::FrodoKEM_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEM_PublicKey::object_identifier
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier FrodoKEM_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: Botan::FrodoKEM_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 2
    functionsReached:
    - constants
    linkageType: ''
    returnType: OID
    signature: OID FrodoKEM_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: Botan::FrodoKEM_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t FrodoKEM_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: Botan::FrodoKEM_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - constants
    linkageType: ''
    returnType: size_t
    signature: size_t FrodoKEM_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:293,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:293,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:293,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: Botan::FrodoKEM_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 1
    functionsReached:
    - b
    - concat
    - constants
    - seed_a
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> FrodoKEM_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoKEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: Botan::FrodoKEM_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEM_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> FrodoKEM_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: Botan::FrodoKEM_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FrodoKEM_PublicKey::check_key(RandomNumberGenerator& /*rng*/,
      bool /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:307,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: Botan::FrodoKEM_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<FrodoKEM_PrivateKey>
    - constants
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> FrodoKEM_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:312,1
    - Dst: std::make_unique<Frodo_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:313,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:315,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: Botan::FrodoKEM_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::empty
    - Provider_Not_Found
    - std::make_unique<Frodo_KEM_Encryptor>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> FrodoKEM_PublicKey::create_kem_encryption_op(std::string_view
      params,\n                                                                                     std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEMConstants::create_xof
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:324,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:326,1
    - Dst: FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:326,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:327,1
    - Dst: FrodoKEMConstants::len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:327,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:328,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:328,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:330,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:332,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:333,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:333,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:334,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:336,1
    - Dst: FrodoKEMConstants::keygen_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:336,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:337,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:339,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:340,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:340,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:340,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:340,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:341,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:341,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:341,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:341,1
    - Dst: auto::clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:342,1
    - Dst: Botan::FrodoMatrix::mul_add_as_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:344,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:346,1
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:348,1
    - Dst: std::make_shared<FrodoKEM_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:349,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:349,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' rng'
    - mode
    argTypes:
    - RandomNumberGenerator
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 350
    functionName: Botan::FrodoKEM_PrivateKey::FrodoKEM_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - Botan::CT::poison_all
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - auto::clear
    - Botan::FrodoMatrix::make_sample_generator
    - std::move
    - FrodoKEMConstants::n_bar
    - FrodoKEMConstants::len_sec_bytes
    - sample_generator
    - auto::update
    - FrodoKEMConstants::n
    - FrodoKEMConstants::create_xof
    - FrodoKEMConstants::keygen_domain_separator
    - FrodoKEMConstants::len_se_bytes
    - std::tuple
    - Botan::CT::unpoison_all
    - std::make_shared<FrodoKEM_PrivateKeyInternal>
    - FrodoKEMConstants::len_a_bytes
    - Botan::FrodoMatrix::mul_add_as_plus_e
    - auto::output
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PrivateKey::FrodoKEM_PrivateKey(RandomNumberGenerator&
      rng, FrodoKEMMode mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:355,1
    - Dst: FrodoKEMConstants::len_private_key_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:355,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:356,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:360,1
    - Dst: FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:360,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:361,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:361,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: FrodoKEMConstants::d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:363,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:363,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:363,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:365,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:365,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: Botan::FrodoMatrix::deserialize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    - Dst: std::make_shared<FrodoKEM_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:371,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:371,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:371,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:373,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sk
    - mode
    argTypes:
    - std::span<const uint8_t>
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 374
    functionName: Botan::FrodoKEM_PrivateKey::FrodoKEM_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - hash
    - std::move
    - FrodoKEMConstants::n_bar
    - FrodoKEMConstants::len_sec_bytes
    - FrodoKEMConstants::n
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    - BOTAN_STATE_CHECK
    - Invalid_Argument
    - BufferSlicer::copy
    - FrodoKEMConstants::d
    - Botan::FrodoMatrix::unpack
    - BufferSlicer::empty
    - FrodoKEMConstants::len_private_key_bytes
    - std::tuple
    - std::make_shared<FrodoKEM_PrivateKeyInternal>
    - FrodoKEMConstants::len_a_bytes
    - Botan::FrodoMatrix::deserialize
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PrivateKey::FrodoKEM_PrivateKey(std::span<const uint8_t>
      sk, FrodoKEMMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:377,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: Botan::FrodoKEM_PrivateKey::FrodoKEM_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - FrodoKEMMode
    - oid
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PrivateKey::FrodoKEM_PrivateKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<FrodoKEM_PublicKey>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: Botan::FrodoKEM_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<FrodoKEM_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> FrodoKEM_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoKEM_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: Botan::FrodoKEM_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEM_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> FrodoKEM_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:388,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:388,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:389,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:390,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:390,1
    - Dst: s_trans
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:391,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 393
    functionName: Botan::FrodoKEM_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 2
    functionsReached:
    - s_trans
    - hash
    - concat
    - s
    - b
    - constants
    - seed_a
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> FrodoKEM_PrivateKey::raw_private_key_bits()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:398,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:399,1
    - Dst: std::make_unique<Frodo_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:400,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:402,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: Botan::FrodoKEM_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Frodo_KEM_Decryptor>
    - algo_name
    - BOTAN_UNUSED
    - Provider_Not_Found
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> FrodoKEM_PrivateKey::create_kem_decryption_op(RandomNumberGenerator&
      rng,\n                                                                                      std::string_view
      params,\n                                                                                      std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::FrodoMatrix::elements_at
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t elements_at(size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:36,1
    - Dst: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:37,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: Botan::FrodoMatrix::packed_size
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::FrodoMatrix::element_count
    - d
    linkageType: ''
    returnType: size_t
    signature: size_t packed_size(const FrodoKEMConstants& constants) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoMatrix::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan::FrodoMatrix::pack
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 1
    functionsReached:
    - Botan::FrodoMatrix::pack
    linkageType: ''
    returnType: FrodoPackedMatrix
    signature: FrodoPackedMatrix pack(const FrodoKEMConstants& constants) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::FrodoMatrix::dimensions
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Dimensions
    signature: Dimensions dimensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::FrodoMatrix::element_count
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t element_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan::FrodoMatrix::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::FrodoMatrix::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:136,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:136,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' dimensions'
    - elements
    argTypes:
    - Dimensions
    - secure_vector<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: Botan::FrodoMatrix::FrodoMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::get<1>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void FrodoMatrix(const Dimensions& dimensions, secure_vector<uint16_t>
      elements)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::FrodoMatrix::elements_at
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t elements_at(size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:36,1
    - Dst: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:37,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: Botan::FrodoMatrix::packed_size
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::FrodoMatrix::element_count
    - d
    linkageType: ''
    returnType: size_t
    signature: size_t packed_size(const FrodoKEMConstants& constants) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoMatrix::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan::FrodoMatrix::pack
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 2
    functionsReached:
    - Botan::FrodoMatrix::pack
    linkageType: ''
    returnType: FrodoPackedMatrix
    signature: FrodoPackedMatrix pack(const FrodoKEMConstants& constants) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::FrodoMatrix::dimensions
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Dimensions
    signature: Dimensions dimensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::FrodoMatrix::element_count
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 2
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t element_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan::FrodoMatrix::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::FrodoMatrix::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:136,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:136,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' dimensions'
    - elements
    argTypes:
    - Dimensions
    - secure_vector<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: Botan::FrodoMatrix::FrodoMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::get<1>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void FrodoMatrix(const Dimensions& dimensions, secure_vector<uint16_t>
      elements)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEMMode::is_available
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:19,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:20,1
    - Dst: FrodoKEMMode::to_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:20,1
    - Dst: FrodoKEMMode::is_ephemeral
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:23,1
    - Dst: FrodoKEMMode::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:27,1
    - Dst: FrodoKEMMode::is_static
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:36,1
    - Dst: FrodoKEMMode::is_ephemeral
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:39,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:42,1
    - Dst: FrodoKEMMode::is_static
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:58,1
    - Dst: FrodoKEMMode::is_ephemeral
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:61,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:64,1
    - Dst: FrodoKEMMode::is_static
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:80,1
    - Dst: FrodoKEMMode::is_ephemeral
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:83,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:86,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:95,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 70
    argCount: 1
    argNames:
    - mode
    argTypes:
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 96
    functionName: Botan::FrodoKEMConstants::FrodoKEMConstants
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - FrodoKEMMode::to_string
    - FrodoKEMMode::mode
    - Botan::XOF::create_or_throw
    - FrodoKEMMode::is_available
    - Not_Implemented
    - FrodoKEMMode::is_ephemeral
    - FrodoKEMMode::is_static
    linkageType: ''
    returnType: void
    signature: void FrodoKEMConstants::FrodoKEMConstants(FrodoKEMMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: FrodoKEMConstants::~FrodoKEMConstants()
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FrodoKEMConstants::~FrodoKEMConstants()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_object
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan::FrodoKEMConstants::create_xof
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp
    functionUses: 0
    functionsReached:
    - new_object
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> FrodoKEMConstants::create_xof() const
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: FrodoKEMMode::is_available
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:19,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:20,1
    - Dst: FrodoKEMMode::to_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:20,1
    - Dst: FrodoKEMMode::is_ephemeral
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:23,1
    - Dst: FrodoKEMMode::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:27,1
    - Dst: FrodoKEMMode::is_static
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:36,1
    - Dst: FrodoKEMMode::is_ephemeral
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:39,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:42,1
    - Dst: FrodoKEMMode::is_static
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:58,1
    - Dst: FrodoKEMMode::is_ephemeral
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:61,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:64,1
    - Dst: FrodoKEMMode::is_static
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:80,1
    - Dst: FrodoKEMMode::is_ephemeral
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:83,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:86,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:95,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 70
    argCount: 1
    argNames:
    - mode
    argTypes:
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 96
    functionName: Botan::FrodoKEMConstants::FrodoKEMConstants
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - FrodoKEMMode::to_string
    - FrodoKEMMode::mode
    - Botan::XOF::create_or_throw
    - FrodoKEMMode::is_available
    - Not_Implemented
    - FrodoKEMMode::is_ephemeral
    - FrodoKEMMode::is_static
    linkageType: ''
    returnType: void
    signature: void FrodoKEMConstants::FrodoKEMConstants(FrodoKEMMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: FrodoKEMConstants::~FrodoKEMConstants()
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FrodoKEMConstants::~FrodoKEMConstants()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_object
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: Botan::FrodoKEMConstants::create_xof
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp
    functionUses: 0
    functionsReached:
    - new_object
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> FrodoKEMConstants::create_xof() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::mode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Mode
    signature: Mode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::is_ephemeral
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_ephemeral() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::is_static
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_static() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::is_shake
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_shake() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan::is_aes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_aes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: operator==(const FrodoKEMMode& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const FrodoKEMMode& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: operator!=(const FrodoKEMMode& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const FrodoKEMMode& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::mode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Mode
    signature: Mode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::is_ephemeral
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_ephemeral() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::is_static
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_static() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::is_shake
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_shake() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan::is_aes
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_aes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: operator==(const FrodoKEMMode& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const FrodoKEMMode& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: operator!=(const FrodoKEMMode& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const FrodoKEMMode& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PublicKey(FrodoKEM_PublicKey&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: ~FrodoKEM_PublicKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FrodoKEM_PublicKey() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FrodoKEM_PublicKey(FrodoKEM_PublicKey&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: ~FrodoKEM_PublicKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FrodoKEM_PublicKey() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dimensions'
    argTypes:
    - FrodoMatrix::Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::make_elements_vector
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::get<1>
    - secure_vector<uint16_t>
    - std::get<0>
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> make_elements_vector(const FrodoMatrix::Dimensions&
      dimensions)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:45,1
    - Dst: Botan::create_aes_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:51,1
    - Dst: Botan::create_shake_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:52,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: Botan::make_row_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - Botan::mode
    - Botan::create_aes_row_generator
    - Botan::create_shake_row_generator
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::function<void(std::span<uint8_t> out, uint16_t i)>
    signature: "std::function<void(std::span<uint8_t> out, uint16_t i)> make_row_generator(const
      FrodoKEMConstants& constants,\n                                                                           StrongSpan<const
      FrodoSeedA> seed_a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dimensions'
    argTypes:
    - FrodoMatrix::Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::make_elements_vector
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::get<1>
    - secure_vector<uint16_t>
    - std::get<0>
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> make_elements_vector(const FrodoMatrix::Dimensions&
      dimensions)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:45,1
    - Dst: Botan::create_aes_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:51,1
    - Dst: Botan::create_shake_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:52,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: Botan::make_row_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - Botan::mode
    - Botan::create_aes_row_generator
    - Botan::create_shake_row_generator
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::function<void(std::span<uint8_t> out, uint16_t i)>
    signature: "std::function<void(std::span<uint8_t> out, uint16_t i)> make_row_generator(const
      FrodoKEMConstants& constants,\n                                                                           StrongSpan<const
      FrodoSeedA> seed_a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:66,1
    - Dst: StrongSpan<const FrodoSampleR>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:66,1
    - Dst: StrongSpan<const FrodoSampleR>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:67,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:69,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:70,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:70,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:72,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:72,1
    - Dst: StrongSpan<const FrodoSampleR>::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:72,1
    - Dst: Botan::CT::value_barrier
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:75,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:75,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:76,1
    - Dst: cdf_table_len
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:81,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:83,1
    - Dst: cdf_table_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:83,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:86,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:88,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:91,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' constants'
    - ' dimensions'
    - r
    argTypes:
    - FrodoKEMConstants
    - Dimensions
    - StrongSpan<const FrodoSampleR>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 92
    functionName: Botan::FrodoMatrix::sample
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - make_elements_vector
    - auto::data
    - auto::size
    - load_le
    - StrongSpan<const FrodoSampleR>::data
    - cdf_table_len
    - std::move
    - Botan::CT::value_barrier
    - static_cast<uint16_t>
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::bigint_ct_is_lt
    - auto::select
    - BOTAN_ASSERT_NOMSG
    - StrongSpan<const FrodoSampleR>::size
    - cdf_table_at
    - Botan::CT::Mask::expand_bit
    linkageType: ''
    returnType: FrodoMatrix
    signature: "FrodoMatrix FrodoMatrix::sample(const FrodoKEMConstants& constants,\n
      \                               const Dimensions& dimensions,\n                                StrongSpan<const
      FrodoSampleR> r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoMatrix::sample
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:97,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:99,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:99,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' constants'
    - ' shake'
    argTypes:
    - FrodoKEMConstants
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: Botan::FrodoMatrix::make_sample_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 10
    functionsReached:
    - Botan::FrodoMatrix::sample
    - std::get<1>
    - output
    - std::get<0>
    linkageType: ''
    returnType: std::function<FrodoMatrix(const FrodoMatrix::Dimensions& dimensions)>
    signature: "std::function<FrodoMatrix(const FrodoMatrix::Dimensions& dimensions)>
      FrodoMatrix::make_sample_generator(\n   const FrodoKEMConstants& constants,
      Botan::XOF& shake)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:104,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:104,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dims
    argTypes:
    - Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: Botan::FrodoMatrix::FrodoMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 1
    functionsReached:
    - make_elements_vector
    - std::get<1>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void FrodoMatrix::FrodoMatrix(Dimensions dims)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:110,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:110,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:110,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:110,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:110,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:116,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:116,1
    - Dst: make_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:117,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:123,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:126,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:127,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:129,1
    - Dst: BufferStuffer
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:130,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:134,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:134,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:134,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:134,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:135,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:135,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:135,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:135,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:136,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:136,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:136,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:136,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:139,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:139,1
    - Dst: std::span::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:139,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:139,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:141,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:143,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:148,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:148,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:151,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:151,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:151,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:151,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:152,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:152,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:152,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:153,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:153,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:153,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:153,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:154,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:154,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:154,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:154,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:156,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:156,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:156,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:156,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:156,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:157,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:157,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:157,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:157,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:157,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ' constants'
    - ' s'
    - ' e'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 164
    functionName: Botan::FrodoMatrix::mul_add_as_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - n
    - std::array::at
    - Botan::FrodoMatrix::dimensions
    - BOTAN_ASSERT
    - n_bar
    - BufferStuffer
    - std::span::data
    - std::move
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - std::vector::at
    - row_generator
    - std::vector::size
    - auto::next
    - make_elements_vector
    - reinterpret_cast<uint8_t*>
    - std::get<0>
    - load_le
    - auto::at
    - static_cast<uint16_t>
    - std::vector::data
    - make_row_generator
    - std::get<1>
    linkageType: ''
    returnType: FrodoMatrix
    signature: "FrodoMatrix FrodoMatrix::mul_add_as_plus_e(const FrodoKEMConstants&
      constants,\n                                           const FrodoMatrix& s,\n
      \                                          const FrodoMatrix& e,\n                                           StrongSpan<const
      FrodoSeedA> seed_a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:171,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:171,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:171,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:171,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: make_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:177,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:183,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:185,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:185,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:186,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:189,1
    - Dst: BufferStuffer
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:190,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:193,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:193,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:193,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:193,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:194,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:194,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:194,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:194,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:195,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:195,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:195,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:195,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:196,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:196,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:196,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:196,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:197,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:197,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:197,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:197,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:198,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:198,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:198,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:198,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:199,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:199,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:199,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:199,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:200,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:200,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:200,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:200,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: std::span::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:205,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:209,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:209,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:211,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:212,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:212,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:214,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:214,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:214,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:216,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:216,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - ' constants'
    - ' s'
    - ' e'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 222
    functionName: Botan::FrodoMatrix::mul_add_sa_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 8
    functionsReached:
    - n
    - Botan::FrodoMatrix::dimensions
    - BOTAN_ASSERT
    - n_bar
    - BufferStuffer
    - std::span::data
    - std::move
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - std::vector::at
    - row_generator
    - std::vector::size
    - auto::next
    - reinterpret_cast<uint8_t*>
    - std::get<0>
    - load_le
    - auto::at
    - static_cast<uint16_t>
    - std::vector::data
    - make_row_generator
    - std::get<1>
    linkageType: ''
    returnType: FrodoMatrix
    signature: "FrodoMatrix FrodoMatrix::mul_add_sa_plus_e(const FrodoKEMConstants&
      constants,\n                                           const FrodoMatrix& s,\n
      \                                          const FrodoMatrix& e,\n                                           StrongSpan<const
      FrodoSeedA> seed_a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:229,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:229,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:229,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:229,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:236,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:236,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:239,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:241,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:242,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:242,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:242,1
    - Dst: static_cast<uint32_t /* to avoid integral promotion */>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:243,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:243,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:243,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:244,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:244,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - ' constants'
    - ' b'
    - ' s'
    - ' e'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 250
    functionName: Botan::FrodoMatrix::mul_add_sb_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 8
    functionsReached:
    - n
    - make_elements_vector
    - Botan::FrodoMatrix::dimensions
    - BOTAN_ASSERT
    - std::get<0>
    - auto::at
    - std::move
    - static_cast<uint16_t>
    - n_bar
    - Botan::FrodoMatrix::FrodoMatrix
    - std::get<1>
    - Botan::FrodoMatrix::elements_at
    - static_cast<uint32_t /* to avoid integral promotion */>
    linkageType: ''
    returnType: FrodoMatrix
    signature: "FrodoMatrix FrodoMatrix::mul_add_sb_plus_e(const FrodoKEMConstants&
      constants,\n                                           const FrodoMatrix& b,\n
      \                                          const FrodoMatrix& s,\n                                           const
      FrodoMatrix& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:253,1
    - Dst: std::make_tuple<size_t, size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:255,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:255,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:255,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:256,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:258,1
    - Dst: StrongSpan<const FrodoPlaintext>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:258,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:258,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:258,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:258,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:261,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:261,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:263,1
    - Dst: static_cast<uint64_t /* avoiding integral promotion */>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:264,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:264,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:267,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:267,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:267,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:267,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:268,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:272,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' constants'
    - in
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoPlaintext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 273
    functionName: Botan::FrodoMatrix::encode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 8
    functionsReached:
    - StrongSpan<const FrodoPlaintext>::size
    - static_cast<uint64_t /* avoiding integral promotion */>
    - make_elements_vector
    - auto::at
    - std::move
    - static_cast<uint16_t>
    - n_bar
    - d
    - Botan::FrodoMatrix::FrodoMatrix
    - b
    - BOTAN_ASSERT_NOMSG
    - std::make_tuple<size_t, size_t>
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix FrodoMatrix::encode(const FrodoKEMConstants& constants,
      StrongSpan<const FrodoPlaintext> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:277,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:277,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:277,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:278,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:278,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:278,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:278,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:279,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:279,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:279,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:281,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:281,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:283,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:283,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:284,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:284,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:284,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:287,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:287,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' constants'
    - ' a'
    - ' b'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 288
    functionName: Botan::FrodoMatrix::add
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 8
    functionsReached:
    - make_elements_vector
    - std::get<0>
    - Botan::FrodoMatrix::dimensions
    - auto::at
    - std::move
    - n_bar
    - Botan::FrodoMatrix::FrodoMatrix
    - std::get<1>
    - Botan::FrodoMatrix::elements_at
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix FrodoMatrix::add(const FrodoKEMConstants& constants, const
      FrodoMatrix& a, const FrodoMatrix& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:292,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:292,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:292,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:293,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:293,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:293,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:293,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:294,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:294,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:294,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:296,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:296,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:298,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:298,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:299,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:299,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:299,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:302,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:302,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' constants'
    - ' a'
    - ' b'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 303
    functionName: Botan::FrodoMatrix::sub
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - make_elements_vector
    - std::get<0>
    - Botan::FrodoMatrix::dimensions
    - auto::at
    - std::move
    - n_bar
    - Botan::FrodoMatrix::FrodoMatrix
    - std::get<1>
    - Botan::FrodoMatrix::elements_at
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix FrodoMatrix::sub(const FrodoKEMConstants& constants, const
      FrodoMatrix& a, const FrodoMatrix& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:308,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:308,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:308,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:309,1
    - Dst: m_elements::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:309,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: Botan::FrodoMatrix::constant_time_compare
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::CT::is_equal
    - Botan::FrodoMatrix::dimensions
    - reinterpret_cast<const uint8_t*>
    - size
    - BOTAN_ASSERT_NOMSG
    - m_elements::data
    linkageType: ''
    returnType: CT::Mask<uint8_t>
    signature: CT::Mask<uint8_t> FrodoMatrix::constant_time_compare(const FrodoMatrix&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:314,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:314,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:315,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:317,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:318,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:319,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:319,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:321,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:323,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:323,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:326,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:326,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:328,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:333,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' constants'
    - ' b'
    - ' s'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 334
    functionName: Botan::FrodoMatrix::mul_bs
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - n
    - make_elements_vector
    - auto::at
    - std::move
    - static_cast<uint16_t>
    - n_bar
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix FrodoMatrix::mul_bs(const FrodoKEMConstants& constants,
      const FrodoMatrix& b, const FrodoMatrix& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoMatrix::packed_size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:337,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:338,1
    - Dst: StrongSpan<FrodoPackedMatrix>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:338,1
    - Dst: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:345,1
    - Dst: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:345,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:359,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:359,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:360,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:361,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:362,1
    - Dst: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:367,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:368,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:369,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:369,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ' constants'
    - out
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<FrodoPackedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 380
    functionName: Botan::FrodoMatrix::pack
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - min
    - StrongSpan<FrodoPackedMatrix>::size
    - static_cast<uint16_t>
    - d
    - at
    - Botan::FrodoMatrix::packed_size
    - BOTAN_ASSERT_NOMSG
    - Botan::FrodoMatrix::element_count
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void FrodoMatrix::pack(const FrodoKEMConstants& constants, StrongSpan<FrodoPackedMatrix>
      out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:383,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:385,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:386,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:386,1
    - Dst: FrodoSerializedMatrix::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 390
    functionName: Botan::FrodoMatrix::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - FrodoSerializedMatrix::data
    - size
    - at
    - store_le
    linkageType: ''
    returnType: FrodoSerializedMatrix
    signature: FrodoSerializedMatrix FrodoMatrix::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:393,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:393,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:394,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:394,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:395,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:395,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:397,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:404,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:404,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:404,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:404,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:405,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:405,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:406,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:406,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:409,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 415
    functionName: Botan::FrodoMatrix::decode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - static_cast<uint16_t>
    - n_bar
    - d
    - b
    - at
    linkageType: ''
    returnType: FrodoPlaintext
    signature: FrodoPlaintext FrodoMatrix::decode(const FrodoKEMConstants& constants)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:420,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:420,1
    - Dst: StrongSpan<const FrodoPackedMatrix>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:421,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:422,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:422,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:422,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:424,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:424,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:426,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:447,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:447,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:448,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:451,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:451,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:451,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:454,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:471,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:471,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - ' constants'
    - ' dimensions'
    - packed_bytes
    argTypes:
    - FrodoKEMConstants
    - Dimensions
    - StrongSpan<const FrodoPackedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 472
    functionName: Botan::FrodoMatrix::unpack
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 8
    functionsReached:
    - ceil_tobytes
    - min
    - make_elements_vector
    - std::get<0>
    - auto::at
    - std::move
    - StrongSpan<const FrodoPackedMatrix>::size
    - static_cast<uint16_t>
    - d
    - Botan::FrodoMatrix::FrodoMatrix
    - static_cast<size_t>
    - std::get<1>
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint8_t>
    linkageType: ''
    returnType: FrodoMatrix
    signature: "FrodoMatrix FrodoMatrix::unpack(const FrodoKEMConstants& constants,\n
      \                               const Dimensions& dimensions,\n                                StrongSpan<const
      FrodoPackedMatrix> packed_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:475,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:476,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:476,1
    - Dst: StrongSpan<const FrodoSerializedMatrix>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:476,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:477,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:477,1
    - Dst: StrongSpan<const FrodoSerializedMatrix>::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:477,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:477,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:478,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' dimensions'
    - bytes
    argTypes:
    - Dimensions
    - StrongSpan<const FrodoSerializedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: Botan::FrodoMatrix::deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - make_elements_vector
    - auto::data
    - auto::size
    - load_le
    - std::move
    - Botan::FrodoMatrix::FrodoMatrix
    - StrongSpan<const FrodoSerializedMatrix>::size
    - BOTAN_ASSERT_NOMSG
    - StrongSpan<const FrodoSerializedMatrix>::data
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix FrodoMatrix::deserialize(const Dimensions& dimensions,
      StrongSpan<const FrodoSerializedMatrix> bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:483,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: Botan::FrodoMatrix::reduce
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - d
    linkageType: ''
    returnType: void
    signature: void FrodoMatrix::reduce(const FrodoKEMConstants& constants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dimensions'
    argTypes:
    - FrodoMatrix::Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::make_elements_vector
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::get<1>
    - secure_vector<uint16_t>
    - std::get<0>
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> make_elements_vector(const FrodoMatrix::Dimensions&
      dimensions)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:45,1
    - Dst: Botan::create_aes_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:51,1
    - Dst: Botan::create_shake_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:52,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: Botan::make_row_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - Botan::mode
    - Botan::create_aes_row_generator
    - Botan::create_shake_row_generator
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::function<void(std::span<uint8_t> out, uint16_t i)>
    signature: "std::function<void(std::span<uint8_t> out, uint16_t i)> make_row_generator(const
      FrodoKEMConstants& constants,\n                                                                           StrongSpan<const
      FrodoSeedA> seed_a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dimensions'
    argTypes:
    - FrodoMatrix::Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::make_elements_vector
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::get<1>
    - secure_vector<uint16_t>
    - std::get<0>
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> make_elements_vector(const FrodoMatrix::Dimensions&
      dimensions)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:45,1
    - Dst: Botan::create_aes_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:51,1
    - Dst: Botan::create_shake_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:52,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: Botan::make_row_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - Botan::mode
    - Botan::create_aes_row_generator
    - Botan::create_shake_row_generator
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::function<void(std::span<uint8_t> out, uint16_t i)>
    signature: "std::function<void(std::span<uint8_t> out, uint16_t i)> make_row_generator(const
      FrodoKEMConstants& constants,\n                                                                           StrongSpan<const
      FrodoSeedA> seed_a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:66,1
    - Dst: StrongSpan<const FrodoSampleR>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:66,1
    - Dst: StrongSpan<const FrodoSampleR>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:67,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:69,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:70,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:70,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:72,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:72,1
    - Dst: StrongSpan<const FrodoSampleR>::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:72,1
    - Dst: Botan::CT::value_barrier
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:75,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:75,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:76,1
    - Dst: cdf_table_len
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:81,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:83,1
    - Dst: cdf_table_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:83,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:86,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:88,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:91,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' constants'
    - ' dimensions'
    - r
    argTypes:
    - FrodoKEMConstants
    - Dimensions
    - StrongSpan<const FrodoSampleR>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 92
    functionName: Botan::FrodoMatrix::sample
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 1
    functionsReached:
    - make_elements_vector
    - auto::data
    - auto::size
    - load_le
    - StrongSpan<const FrodoSampleR>::data
    - cdf_table_len
    - std::move
    - Botan::CT::value_barrier
    - static_cast<uint16_t>
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::bigint_ct_is_lt
    - auto::select
    - BOTAN_ASSERT_NOMSG
    - StrongSpan<const FrodoSampleR>::size
    - cdf_table_at
    - Botan::CT::Mask::expand_bit
    linkageType: ''
    returnType: FrodoMatrix
    signature: "FrodoMatrix FrodoMatrix::sample(const FrodoKEMConstants& constants,\n
      \                               const Dimensions& dimensions,\n                                StrongSpan<const
      FrodoSampleR> r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoMatrix::sample
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:97,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:99,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:99,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' constants'
    - ' shake'
    argTypes:
    - FrodoKEMConstants
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: Botan::FrodoMatrix::make_sample_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 10
    functionsReached:
    - Botan::FrodoMatrix::sample
    - std::get<1>
    - output
    - std::get<0>
    linkageType: ''
    returnType: std::function<FrodoMatrix(const FrodoMatrix::Dimensions& dimensions)>
    signature: "std::function<FrodoMatrix(const FrodoMatrix::Dimensions& dimensions)>
      FrodoMatrix::make_sample_generator(\n   const FrodoKEMConstants& constants,
      Botan::XOF& shake)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:104,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:104,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dims
    argTypes:
    - Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: Botan::FrodoMatrix::FrodoMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 11
    functionsReached:
    - make_elements_vector
    - std::get<1>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void FrodoMatrix::FrodoMatrix(Dimensions dims)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:110,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:110,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:110,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:110,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:110,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:113,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:116,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:116,1
    - Dst: make_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:117,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:123,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:126,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:127,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:129,1
    - Dst: BufferStuffer
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:130,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:134,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:134,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:134,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:134,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:135,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:135,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:135,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:135,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:136,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:136,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:136,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:136,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:139,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:139,1
    - Dst: std::span::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:139,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:139,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:141,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:143,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:148,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:148,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:151,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:151,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:151,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:151,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:152,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:152,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:152,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:153,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:153,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:153,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:153,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:154,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:154,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:154,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:154,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:156,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:156,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:156,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:156,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:156,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:157,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:157,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:157,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:157,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:157,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ' constants'
    - ' s'
    - ' e'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 164
    functionName: Botan::FrodoMatrix::mul_add_as_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - n
    - std::array::at
    - Botan::FrodoMatrix::dimensions
    - BOTAN_ASSERT
    - n_bar
    - BufferStuffer
    - std::span::data
    - std::move
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - std::vector::at
    - row_generator
    - std::vector::size
    - auto::next
    - make_elements_vector
    - reinterpret_cast<uint8_t*>
    - std::get<0>
    - load_le
    - auto::at
    - static_cast<uint16_t>
    - std::vector::data
    - make_row_generator
    - std::get<1>
    linkageType: ''
    returnType: FrodoMatrix
    signature: "FrodoMatrix FrodoMatrix::mul_add_as_plus_e(const FrodoKEMConstants&
      constants,\n                                           const FrodoMatrix& s,\n
      \                                          const FrodoMatrix& e,\n                                           StrongSpan<const
      FrodoSeedA> seed_a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:171,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:171,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:171,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:171,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:173,1
    - Dst: make_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:177,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:183,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:185,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:185,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:186,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:189,1
    - Dst: BufferStuffer
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:190,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:193,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:193,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:193,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:193,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:194,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:194,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:194,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:194,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:195,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:195,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:195,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:195,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:196,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:196,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:196,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:196,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:197,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:197,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:197,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:197,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:198,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:198,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:198,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:198,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:199,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:199,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:199,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:199,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:200,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:200,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:200,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:200,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: std::span::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:205,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:209,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:209,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:211,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:212,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:212,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:214,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:214,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:214,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:216,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:216,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - ' constants'
    - ' s'
    - ' e'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 222
    functionName: Botan::FrodoMatrix::mul_add_sa_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 8
    functionsReached:
    - n
    - Botan::FrodoMatrix::dimensions
    - BOTAN_ASSERT
    - n_bar
    - BufferStuffer
    - std::span::data
    - std::move
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - std::vector::at
    - row_generator
    - std::vector::size
    - auto::next
    - reinterpret_cast<uint8_t*>
    - std::get<0>
    - load_le
    - auto::at
    - static_cast<uint16_t>
    - std::vector::data
    - make_row_generator
    - std::get<1>
    linkageType: ''
    returnType: FrodoMatrix
    signature: "FrodoMatrix FrodoMatrix::mul_add_sa_plus_e(const FrodoKEMConstants&
      constants,\n                                           const FrodoMatrix& s,\n
      \                                          const FrodoMatrix& e,\n                                           StrongSpan<const
      FrodoSeedA> seed_a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:229,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:229,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:229,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:229,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:231,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:233,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:236,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:236,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:239,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:241,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:242,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:242,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:242,1
    - Dst: static_cast<uint32_t /* to avoid integral promotion */>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:243,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:243,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:243,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:244,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:244,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - ' constants'
    - ' b'
    - ' s'
    - ' e'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 250
    functionName: Botan::FrodoMatrix::mul_add_sb_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 8
    functionsReached:
    - n
    - make_elements_vector
    - Botan::FrodoMatrix::dimensions
    - BOTAN_ASSERT
    - std::get<0>
    - auto::at
    - std::move
    - static_cast<uint16_t>
    - n_bar
    - Botan::FrodoMatrix::FrodoMatrix
    - std::get<1>
    - Botan::FrodoMatrix::elements_at
    - static_cast<uint32_t /* to avoid integral promotion */>
    linkageType: ''
    returnType: FrodoMatrix
    signature: "FrodoMatrix FrodoMatrix::mul_add_sb_plus_e(const FrodoKEMConstants&
      constants,\n                                           const FrodoMatrix& b,\n
      \                                          const FrodoMatrix& s,\n                                           const
      FrodoMatrix& e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:253,1
    - Dst: std::make_tuple<size_t, size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:255,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:255,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:255,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:256,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:258,1
    - Dst: StrongSpan<const FrodoPlaintext>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:258,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:258,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:258,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:258,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:261,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:261,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:263,1
    - Dst: static_cast<uint64_t /* avoiding integral promotion */>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:264,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:264,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:267,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:267,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:267,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:267,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:268,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:272,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' constants'
    - in
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoPlaintext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 273
    functionName: Botan::FrodoMatrix::encode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 8
    functionsReached:
    - StrongSpan<const FrodoPlaintext>::size
    - static_cast<uint64_t /* avoiding integral promotion */>
    - make_elements_vector
    - auto::at
    - std::move
    - static_cast<uint16_t>
    - n_bar
    - d
    - Botan::FrodoMatrix::FrodoMatrix
    - b
    - BOTAN_ASSERT_NOMSG
    - std::make_tuple<size_t, size_t>
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix FrodoMatrix::encode(const FrodoKEMConstants& constants,
      StrongSpan<const FrodoPlaintext> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:277,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:277,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:277,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:278,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:278,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:278,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:278,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:279,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:279,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:279,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:281,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:281,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:283,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:283,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:284,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:284,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:284,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:287,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:287,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' constants'
    - ' a'
    - ' b'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 288
    functionName: Botan::FrodoMatrix::add
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 8
    functionsReached:
    - make_elements_vector
    - std::get<0>
    - Botan::FrodoMatrix::dimensions
    - auto::at
    - std::move
    - n_bar
    - Botan::FrodoMatrix::FrodoMatrix
    - std::get<1>
    - Botan::FrodoMatrix::elements_at
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix FrodoMatrix::add(const FrodoKEMConstants& constants, const
      FrodoMatrix& a, const FrodoMatrix& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:292,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:292,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:292,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:293,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:293,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:293,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:293,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:294,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:294,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:294,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:296,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:296,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:298,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:298,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:299,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:299,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:299,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:302,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:302,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' constants'
    - ' a'
    - ' b'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 303
    functionName: Botan::FrodoMatrix::sub
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - make_elements_vector
    - std::get<0>
    - Botan::FrodoMatrix::dimensions
    - auto::at
    - std::move
    - n_bar
    - Botan::FrodoMatrix::FrodoMatrix
    - std::get<1>
    - Botan::FrodoMatrix::elements_at
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix FrodoMatrix::sub(const FrodoKEMConstants& constants, const
      FrodoMatrix& a, const FrodoMatrix& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:308,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:308,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:308,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:309,1
    - Dst: m_elements::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:309,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: Botan::FrodoMatrix::constant_time_compare
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::CT::is_equal
    - Botan::FrodoMatrix::dimensions
    - reinterpret_cast<const uint8_t*>
    - size
    - BOTAN_ASSERT_NOMSG
    - m_elements::data
    linkageType: ''
    returnType: CT::Mask<uint8_t>
    signature: CT::Mask<uint8_t> FrodoMatrix::constant_time_compare(const FrodoMatrix&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:314,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:314,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:315,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:317,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:318,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:319,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:319,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:321,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:323,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:323,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:326,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:326,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:328,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:333,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' constants'
    - ' b'
    - ' s'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 334
    functionName: Botan::FrodoMatrix::mul_bs
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - n
    - make_elements_vector
    - auto::at
    - std::move
    - static_cast<uint16_t>
    - n_bar
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix FrodoMatrix::mul_bs(const FrodoKEMConstants& constants,
      const FrodoMatrix& b, const FrodoMatrix& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::FrodoMatrix::packed_size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:337,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:338,1
    - Dst: StrongSpan<FrodoPackedMatrix>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:338,1
    - Dst: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:345,1
    - Dst: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:345,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:359,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:359,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:360,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:361,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:362,1
    - Dst: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:367,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:368,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:369,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:369,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ' constants'
    - out
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<FrodoPackedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 380
    functionName: Botan::FrodoMatrix::pack
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - min
    - StrongSpan<FrodoPackedMatrix>::size
    - static_cast<uint16_t>
    - d
    - at
    - Botan::FrodoMatrix::packed_size
    - BOTAN_ASSERT_NOMSG
    - Botan::FrodoMatrix::element_count
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void FrodoMatrix::pack(const FrodoKEMConstants& constants, StrongSpan<FrodoPackedMatrix>
      out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:383,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:385,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:386,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:386,1
    - Dst: FrodoSerializedMatrix::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 390
    functionName: Botan::FrodoMatrix::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - FrodoSerializedMatrix::data
    - size
    - at
    - store_le
    linkageType: ''
    returnType: FrodoSerializedMatrix
    signature: FrodoSerializedMatrix FrodoMatrix::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:393,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:393,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:394,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:394,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:395,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:395,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:397,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:404,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:404,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:404,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:404,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:405,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:405,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:406,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:406,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:409,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 415
    functionName: Botan::FrodoMatrix::decode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - static_cast<uint16_t>
    - n_bar
    - d
    - b
    - at
    linkageType: ''
    returnType: FrodoPlaintext
    signature: FrodoPlaintext FrodoMatrix::decode(const FrodoKEMConstants& constants)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:420,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:420,1
    - Dst: StrongSpan<const FrodoPackedMatrix>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:421,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:422,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:422,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:422,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:424,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:424,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:426,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:447,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:447,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:448,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:451,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:451,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:451,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:454,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:471,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:471,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - ' constants'
    - ' dimensions'
    - packed_bytes
    argTypes:
    - FrodoKEMConstants
    - Dimensions
    - StrongSpan<const FrodoPackedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 472
    functionName: Botan::FrodoMatrix::unpack
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 8
    functionsReached:
    - ceil_tobytes
    - min
    - make_elements_vector
    - std::get<0>
    - auto::at
    - std::move
    - StrongSpan<const FrodoPackedMatrix>::size
    - static_cast<uint16_t>
    - d
    - Botan::FrodoMatrix::FrodoMatrix
    - static_cast<size_t>
    - std::get<1>
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint8_t>
    linkageType: ''
    returnType: FrodoMatrix
    signature: "FrodoMatrix FrodoMatrix::unpack(const FrodoKEMConstants& constants,\n
      \                               const Dimensions& dimensions,\n                                StrongSpan<const
      FrodoPackedMatrix> packed_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:475,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:476,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:476,1
    - Dst: StrongSpan<const FrodoSerializedMatrix>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:476,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:477,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:477,1
    - Dst: StrongSpan<const FrodoSerializedMatrix>::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:477,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:477,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:478,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' dimensions'
    - bytes
    argTypes:
    - Dimensions
    - StrongSpan<const FrodoSerializedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: Botan::FrodoMatrix::deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - make_elements_vector
    - auto::data
    - auto::size
    - load_le
    - std::move
    - Botan::FrodoMatrix::FrodoMatrix
    - StrongSpan<const FrodoSerializedMatrix>::size
    - BOTAN_ASSERT_NOMSG
    - StrongSpan<const FrodoSerializedMatrix>::data
    linkageType: ''
    returnType: FrodoMatrix
    signature: FrodoMatrix FrodoMatrix::deserialize(const Dimensions& dimensions,
      StrongSpan<const FrodoSerializedMatrix> bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:483,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: Botan::FrodoMatrix::reduce
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - d
    linkageType: ''
    returnType: void
    signature: void FrodoMatrix::reduce(const FrodoKEMConstants& constants)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::Blinder::Blinder
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Blinder(const Blinder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::Blinder::Blinder
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Blinder(Blinder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& operator=(const Blinder&)'
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Blinder
    signature: Blinder & operator=(const Blinder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: '& operator=(Blinder&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Blinder
    signature: Blinder & operator=(Blinder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: ~Blinder()
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Blinder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: '& rng() const'
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RandomNumberGenerator
    signature: RandomNumberGenerator & rng() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::Blinder::Blinder
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Blinder(const Blinder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::Blinder::Blinder
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Blinder(Blinder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& operator=(const Blinder&)'
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Blinder
    signature: Blinder & operator=(const Blinder&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: '& operator=(Blinder&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Blinder
    signature: Blinder & operator=(Blinder&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: ~Blinder()
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Blinder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: '& rng() const'
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RandomNumberGenerator
    signature: RandomNumberGenerator & rng() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:18,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:19,1
    - Dst: modulus_bits
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:20,1
    - Dst: Botan::Blinder::blinding_nonce
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:22,1
    - Dst: m_fwd_fn
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:23,1
    - Dst: m_inv_fn
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' reducer'
    - ' rng'
    - fwd
    - inv
    argTypes:
    - Barrett_Reduction
    - RandomNumberGenerator
    - std::function<BigInt(const BigInt&)>
    - std::function<BigInt(const BigInt&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 25
    functionName: Botan::Blinder::Blinder
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::Blinder::blinding_nonce
    - m_inv_fn
    - m_fwd_fn
    - modulus_bits
    linkageType: ''
    returnType: void
    signature: "void Blinder::Blinder(const Barrett_Reduction& reducer,\n                 RandomNumberGenerator&
      rng,\n                 std::function<BigInt(const BigInt&)> fwd,\n                 std::function<BigInt(const
      BigInt&)> inv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan::Blinder::blinding_nonce
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.cpp
    functionUses: 1
    functionsReached:
    - BigInt
    linkageType: ''
    returnType: BigInt
    signature: BigInt Blinder::blinding_nonce() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Blinder::blinding_nonce
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:35,1
    - Dst: m_fwd_fn
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:36,1
    - Dst: m_inv_fn
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:37,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:40,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:41,1
    - Dst: multiply
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: Botan::Blinder::blind
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.cpp
    functionUses: 0
    functionsReached:
    - square
    - m_inv_fn
    - Botan::Blinder::blinding_nonce
    - m_fwd_fn
    - multiply
    linkageType: ''
    returnType: BigInt
    signature: BigInt Blinder::blind(const BigInt& i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: multiply
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::Blinder::unblind
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.cpp
    functionUses: 0
    functionsReached:
    - multiply
    linkageType: ''
    returnType: BigInt
    signature: BigInt Blinder::unblind(const BigInt& i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:18,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:19,1
    - Dst: modulus_bits
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:20,1
    - Dst: Botan::Blinder::blinding_nonce
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:22,1
    - Dst: m_fwd_fn
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:23,1
    - Dst: m_inv_fn
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' reducer'
    - ' rng'
    - fwd
    - inv
    argTypes:
    - Barrett_Reduction
    - RandomNumberGenerator
    - std::function<BigInt(const BigInt&)>
    - std::function<BigInt(const BigInt&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 25
    functionName: Botan::Blinder::Blinder
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::Blinder::blinding_nonce
    - m_inv_fn
    - m_fwd_fn
    - modulus_bits
    linkageType: ''
    returnType: void
    signature: "void Blinder::Blinder(const Barrett_Reduction& reducer,\n                 RandomNumberGenerator&
      rng,\n                 std::function<BigInt(const BigInt&)> fwd,\n                 std::function<BigInt(const
      BigInt&)> inv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan::Blinder::blinding_nonce
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.cpp
    functionUses: 3
    functionsReached:
    - BigInt
    linkageType: ''
    returnType: BigInt
    signature: BigInt Blinder::blinding_nonce() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Blinder::blinding_nonce
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:35,1
    - Dst: m_fwd_fn
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:36,1
    - Dst: m_inv_fn
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:37,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:40,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:41,1
    - Dst: multiply
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: Botan::Blinder::blind
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.cpp
    functionUses: 0
    functionsReached:
    - square
    - m_inv_fn
    - Botan::Blinder::blinding_nonce
    - m_fwd_fn
    - multiply
    linkageType: ''
    returnType: BigInt
    signature: BigInt Blinder::blind(const BigInt& i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: multiply
      Src: /src/botan/src/lib/pubkey/blinding/blinding.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::Blinder::unblind
    functionSourceFile: /src/botan/src/lib/pubkey/blinding/blinding.cpp
    functionUses: 0
    functionsReached:
    - multiply
    linkageType: ''
    returnType: BigInt
    signature: BigInt Blinder::unblind(const BigInt& i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RFC6979_Nonce_Generator
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 48
    functionName: Botan::RFC6979_Nonce_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h
    functionUses: 1
    functionsReached:
    - Botan::RFC6979_Nonce_Generator
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API RFC6979_Nonce_Generator
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RFC6979_Nonce_Generator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::RFC6979_Nonce_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6979_Nonce_Generator(const RFC6979_Nonce_Generator& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h:57,1
    - Dst: RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' q'
    - ' h'
    - hash
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: Botan::generate_rfc6979_nonce
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h
    functionUses: 4
    functionsReached:
    - bits
    - RFC6979_Nonce_Generator::nonce_for
    linkageType: ''
    returnType: BigInt
    signature: BigInt generate_rfc6979_nonce(const BigInt& x, const BigInt& q, const
      BigInt& h, std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RFC6979_Nonce_Generator
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 48
    functionName: Botan::RFC6979_Nonce_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h
    functionUses: 2
    functionsReached:
    - Botan::RFC6979_Nonce_Generator
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API RFC6979_Nonce_Generator
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RFC6979_Nonce_Generator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::RFC6979_Nonce_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6979_Nonce_Generator(const RFC6979_Nonce_Generator& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h:57,1
    - Dst: RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' x'
    - ' q'
    - ' h'
    - hash
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: Botan::generate_rfc6979_nonce
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h
    functionUses: 4
    functionsReached:
    - bits
    - RFC6979_Nonce_Generator::nonce_for
    linkageType: ''
    returnType: BigInt
    signature: BigInt generate_rfc6979_nonce(const BigInt& x, const BigInt& q, const
      BigInt& h, std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RFC6979_Nonce_Generator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: Botan::RFC6979_Nonce_Generator::RFC6979_Nonce_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6979_Nonce_Generator::RFC6979_Nonce_Generator(RFC6979_Nonce_Generator&&
      other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: RFC6979_Nonce_Generator::~RFC6979_Nonce_Generator()
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6979_Nonce_Generator::~RFC6979_Nonce_Generator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HMAC_DRBG>
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:24,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:24,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:24,1
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:26,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hash
    - order_bits
    - ' x'
    argTypes:
    - std::string_view
    - size_t
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: Botan::RFC6979_Nonce_Generator::RFC6979_Nonce_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - std::make_unique<HMAC_DRBG>
    - first
    - serialize_to
    - fmt
    linkageType: ''
    returnType: void
    signature: void RFC6979_Nonce_Generator::RFC6979_Nonce_Generator(std::string_view
      hash, size_t order_bits, const BigInt& x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:30,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:30,1
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:32,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:32,1
    - Dst: initialize_with
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:34,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:37,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:42,1
    - Dst: BigInt::_assign_from_bytes
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - ' order'
    - ' m'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 55
    functionName: Botan::RFC6979_Nonce_Generator::nonce_for
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - initialize_with
    - BigInt::_assign_from_bytes
    - last
    - bits
    - randomize
    - BOTAN_ASSERT_NOMSG
    - serialize_to
    linkageType: ''
    returnType: BigInt
    signature: BigInt RFC6979_Nonce_Generator::nonce_for(const BigInt& order, const
      BigInt& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HMAC_DRBG>
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:60,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:60,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:60,1
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:62,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hash
    - order_bits
    - ' scalar'
    argTypes:
    - std::string_view
    - size_t
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: Botan::RFC6979_Nonce_Generator::RFC6979_Nonce_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - std::make_unique<HMAC_DRBG>
    - first
    - serialize_to
    - fmt
    linkageType: ''
    returnType: void
    signature: void RFC6979_Nonce_Generator::RFC6979_Nonce_Generator(std::string_view
      hash, size_t order_bits, const EC_Scalar& scalar)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:66,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:66,1
    - Dst: initialize_with
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:68,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:71,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:74,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' group'
    - ' m'
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 89
    functionName: Botan::RFC6979_Nonce_Generator::nonce_for
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 4
    functionsReached:
    - initialize_with
    - last
    - randomize
    - BOTAN_ASSERT_NOMSG
    - Botan::EC_Scalar::deserialize
    - serialize_to
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar RFC6979_Nonce_Generator::nonce_for(const EC_Group& group,
      const EC_Scalar& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RFC6979_Nonce_Generator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: Botan::RFC6979_Nonce_Generator::RFC6979_Nonce_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6979_Nonce_Generator::RFC6979_Nonce_Generator(RFC6979_Nonce_Generator&&
      other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: RFC6979_Nonce_Generator::~RFC6979_Nonce_Generator()
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RFC6979_Nonce_Generator::~RFC6979_Nonce_Generator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HMAC_DRBG>
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:24,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:24,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:24,1
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:26,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hash
    - order_bits
    - ' x'
    argTypes:
    - std::string_view
    - size_t
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: Botan::RFC6979_Nonce_Generator::RFC6979_Nonce_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - std::make_unique<HMAC_DRBG>
    - first
    - serialize_to
    - fmt
    linkageType: ''
    returnType: void
    signature: void RFC6979_Nonce_Generator::RFC6979_Nonce_Generator(std::string_view
      hash, size_t order_bits, const BigInt& x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:30,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:30,1
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:32,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:32,1
    - Dst: initialize_with
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:34,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:37,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:42,1
    - Dst: BigInt::_assign_from_bytes
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - ' order'
    - ' m'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 55
    functionName: Botan::RFC6979_Nonce_Generator::nonce_for
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - initialize_with
    - BigInt::_assign_from_bytes
    - last
    - bits
    - randomize
    - BOTAN_ASSERT_NOMSG
    - serialize_to
    linkageType: ''
    returnType: BigInt
    signature: BigInt RFC6979_Nonce_Generator::nonce_for(const BigInt& order, const
      BigInt& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HMAC_DRBG>
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:60,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:60,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:60,1
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:62,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hash
    - order_bits
    - ' scalar'
    argTypes:
    - std::string_view
    - size_t
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: Botan::RFC6979_Nonce_Generator::RFC6979_Nonce_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    - std::make_unique<HMAC_DRBG>
    - first
    - serialize_to
    - fmt
    linkageType: ''
    returnType: void
    signature: void RFC6979_Nonce_Generator::RFC6979_Nonce_Generator(std::string_view
      hash, size_t order_bits, const EC_Scalar& scalar)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: serialize_to
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:66,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:66,1
    - Dst: initialize_with
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:68,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:71,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:74,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' group'
    - ' m'
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 89
    functionName: Botan::RFC6979_Nonce_Generator::nonce_for
    functionSourceFile: /src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp
    functionUses: 4
    functionsReached:
    - initialize_with
    - last
    - randomize
    - BOTAN_ASSERT_NOMSG
    - Botan::EC_Scalar::deserialize
    - serialize_to
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar RFC6979_Nonce_Generator::nonce_for(const EC_Group& group,
      const EC_Scalar& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::public_value
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 1
    functionsReached:
    - Botan::public_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::public_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 1
    functionsReached:
    - Botan::public_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::generate_another
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 1
    functionsReached:
    - Botan::generate_another
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> generate_another(RandomNumberGenerator&
      rng) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::public_value
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 2
    functionsReached:
    - Botan::public_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::public_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 2
    functionsReached:
    - Botan::public_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::generate_another
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 2
    functionsReached:
    - Botan::generate_another
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> generate_another(RandomNumberGenerator&
      rng) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECIES_ECDH_KA_Operation
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:70,1
    - Dst: Botan::PK_Ops::Key_Agreement_with_KDF
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:71,1
    - Dst: m_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:71,1
    - Dst: m_rng
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:71,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:73,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:76,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:78,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:78,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 87
    functionName: Botan::PK_Ops::Key_Agreement_with_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_Ops::Key_Agreement_with_KDF
    - Decoding_Error
    - ECIES_ECDH_KA_Operation
    - m_key
    - _private_key
    - m_rng
    - auto::mul
    - Botan::EC_AffinePoint::deserialize
    - domain
    linkageType: ''
    returnType: BOTAN_DIAGNOSTIC_POP
    signature: BOTAN_DIAGNOSTIC_POP PK_Ops::Key_Agreement_with_KDF
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:76,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:78,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:78,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: Botan::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::domain
    - Botan::Decoding_Error
    - auto::mul
    - Botan::EC_AffinePoint::deserialize
    - _private_key
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_agree(const uint8_t w[], size_t w_len) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECIES_ECDH_KA_Operation>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: Botan::ECIES_PrivateKey::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECIES_ECDH_KA_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> ECIES_PrivateKey::create_key_agreement_op(RandomNumberGenerator&
      rng,\n                                                                                 std::string_view
      /*params*/,\n                                                                                 std::string_view
      /*provider*/) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const ECDH_PrivateKey*>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:110,1
    - Dst: Botan::cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:113,1
    - Dst: Botan::old_cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:113,1
    - Dst: Botan::check_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:113,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:118,1
    - Dst: Botan::cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:121,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:123,1
    - Dst: ECIES_PrivateKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:123,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 4
    argNames:
    - ' private_key'
    - ' ecies_params'
    - for_encryption
    - ' rng'
    argTypes:
    - PK_Key_Agreement_Key
    - ECIES_KA_Params
    - bool
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 127
    functionName: Botan::create_key_agreement
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const ECDH_PrivateKey*>
    - Botan::Invalid_Argument
    - PK_Key_Agreement
    - Botan::old_cofactor_mode
    - ECIES_PrivateKey
    - Botan::cofactor_mode
    - Botan::check_mode
    linkageType: ''
    returnType: PK_Key_Agreement
    signature: "PK_Key_Agreement create_key_agreement(const PK_Key_Agreement_Key&
      private_key,\n                                      const ECIES_KA_Params& ecies_params,\n
      \                                     bool for_encryption,\n                                      RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::public_value
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 3
    functionsReached:
    - Botan::public_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::public_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 3
    functionsReached:
    - Botan::public_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::generate_another
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 3
    functionsReached:
    - Botan::generate_another
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> generate_another(RandomNumberGenerator&
      rng) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::public_value
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 4
    functionsReached:
    - Botan::public_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::public_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 4
    functionsReached:
    - Botan::public_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> public_key() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::generate_another
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Botan::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 4
    functionsReached:
    - Botan::generate_another
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> generate_another(RandomNumberGenerator&
      rng) const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECIES_ECDH_KA_Operation
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:70,1
    - Dst: Botan::PK_Ops::Key_Agreement_with_KDF
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:71,1
    - Dst: m_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:71,1
    - Dst: m_rng
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:71,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:73,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:76,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:78,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:78,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 87
    functionName: Botan::PK_Ops::Key_Agreement_with_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_Ops::Key_Agreement_with_KDF
    - Decoding_Error
    - ECIES_ECDH_KA_Operation
    - m_key
    - _private_key
    - m_rng
    - auto::mul
    - Botan::EC_AffinePoint::deserialize
    - domain
    linkageType: ''
    returnType: BOTAN_DIAGNOSTIC_POP
    signature: BOTAN_DIAGNOSTIC_POP PK_Ops::Key_Agreement_with_KDF
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:76,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:78,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:78,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: Botan::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::domain
    - Botan::Decoding_Error
    - auto::mul
    - Botan::EC_AffinePoint::deserialize
    - _private_key
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_agree(const uint8_t w[], size_t w_len) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECIES_ECDH_KA_Operation>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: Botan::ECIES_PrivateKey::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECIES_ECDH_KA_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> ECIES_PrivateKey::create_key_agreement_op(RandomNumberGenerator&
      rng,\n                                                                                 std::string_view
      /*params*/,\n                                                                                 std::string_view
      /*provider*/) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const ECDH_PrivateKey*>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:110,1
    - Dst: Botan::cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:113,1
    - Dst: Botan::old_cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:113,1
    - Dst: Botan::check_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:113,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:118,1
    - Dst: Botan::cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:121,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:123,1
    - Dst: ECIES_PrivateKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:123,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 4
    argNames:
    - ' private_key'
    - ' ecies_params'
    - for_encryption
    - ' rng'
    argTypes:
    - PK_Key_Agreement_Key
    - ECIES_KA_Params
    - bool
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 127
    functionName: Botan::create_key_agreement
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const ECDH_PrivateKey*>
    - Botan::Invalid_Argument
    - PK_Key_Agreement
    - Botan::old_cofactor_mode
    - ECIES_PrivateKey
    - Botan::cofactor_mode
    - Botan::check_mode
    linkageType: ''
    returnType: PK_Key_Agreement
    signature: "PK_Key_Agreement create_key_agreement(const PK_Key_Agreement_Key&
      private_key,\n                                      const ECIES_KA_Params& ecies_params,\n
      \                                     bool for_encryption,\n                                      RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_key_agreement
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' private_key'
    - ' ecies_params'
    - for_encryption
    - ' rng'
    argTypes:
    - PK_Key_Agreement_Key
    - ECIES_KA_Params
    - bool
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: ECIES_KA_Operation::ECIES_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - create_key_agreement
    linkageType: ''
    returnType: void
    signature: "void ECIES_KA_Operation::ECIES_KA_Operation(const PK_Key_Agreement_Key&
      private_key,\n                                       const ECIES_KA_Params&
      ecies_params,\n                                       bool for_encryption,\n
      \                                      RandomNumberGenerator& rng)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:142,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:143,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:146,1
    - Dst: kdf
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:146,1
    - Dst: old_cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:152,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:152,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:153,1
    - Dst: single_hash_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:159,1
    - Dst: EC_Point::encode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:164,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:164,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:168,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:168,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:168,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:168,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:169,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:169,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:169,1
    - Dst: SymmetricKey::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:169,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:172,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:172,1
    - Dst: secret_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ' eph_public_key_bin'
    - ' other_public_key_point'
    argTypes:
    - std::vector<uint8_t>
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 173
    functionName: ECIES_KA_Operation::derive_secret
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 4
    functionsReached:
    - is_zero
    - auto::derive_key
    - secure_vector::end
    - SymmetricKey::end
    - single_hash_mode
    - group
    - old_cofactor_mode
    - std::vector::size
    - Invalid_Argument
    - secret_length
    - EC_Point::encode
    - SymmetricKey
    - Botan::PBKDF::create_or_throw
    - kdf
    - std::vector::data
    - point_format
    - derive_key
    - SymmetricKey::begin
    - secure_vector::insert
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey ECIES_KA_Operation::derive_secret(const std::vector<uint8_t>&
      eph_public_key_bin,\n                                               const EC_Point&
      other_public_key_point) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:181,1
    - Dst: is_identity
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:181,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:183,1
    - Dst: kdf
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:183,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:187,1
    - Dst: old_cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:191,1
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:191,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:193,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:193,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:194,1
    - Dst: single_hash_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:200,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:201,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:201,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:201,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:205,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:205,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:209,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:209,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:209,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:209,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:210,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:210,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:210,1
    - Dst: SymmetricKey::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:210,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:213,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:213,1
    - Dst: secret_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - eph_public_key_bin
    - ' other_public_key_point'
    argTypes:
    - std::span<const uint8_t>
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 214
    functionName: ECIES_KA_Operation::derive_secret
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 4
    functionsReached:
    - get_cofactor
    - std::span<const uint8_t>::begin
    - auto::derive_key
    - secure_vector::end
    - has_cofactor
    - is_identity
    - SymmetricKey::end
    - BOTAN_ARG_CHECK
    - single_hash_mode
    - Botan::EC_Scalar::from_bigint
    - auto::mul
    - group
    - old_cofactor_mode
    - std::vector::size
    - std::span<const uint8_t>::end
    - secure_vector::assign
    - secret_length
    - SymmetricKey
    - Botan::PBKDF::create_or_throw
    - kdf
    - std::vector::data
    - point_format
    - auto::serialize
    - derive_key
    - SymmetricKey::begin
    - secure_vector::insert
    linkageType: ''
    returnType: SymmetricKey
    signature: "SymmetricKey ECIES_KA_Operation::derive_secret(std::span<const uint8_t>
      eph_public_key_bin,\n                                               const EC_AffinePoint&
      other_public_key_point) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' group'
    - kdf
    - length
    - point_format
    - flags
    argTypes:
    - EC_Group
    - std::string_view
    - size_t
    - EC_Point_Format
    - ECIES_Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: ECIES_KA_Params::ECIES_KA_Params
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ECIES_KA_Params::ECIES_KA_Params(\n   const EC_Group& group,
      std::string_view kdf, size_t length, EC_Point_Format point_format, ECIES_Flags
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' group'
    - kdf
    - length
    - point_format
    - single_hash_mode
    argTypes:
    - EC_Group
    - std::string_view
    - size_t
    - EC_Point_Format
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: ECIES_KA_Params::ECIES_KA_Params
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ECIES_KA_Params::ECIES_KA_Params(\n   const EC_Group& group,
      std::string_view kdf, size_t length, EC_Point_Format point_format, bool single_hash_mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:252,1
    - Dst: old_cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:252,1
    - Dst: check_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:252,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 8
    argNames:
    - ' group'
    - kdf
    - dem_algo_spec
    - dem_key_len
    - mac_spec
    - mac_key_len
    - point_format
    - flags
    argTypes:
    - EC_Group
    - std::string_view
    - std::string_view
    - size_t
    - std::string_view
    - size_t
    - EC_Point_Format
    - ECIES_Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 255
    functionName: ECIES_System_Params::ECIES_System_Params
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 4
    functionsReached:
    - Invalid_Argument
    - old_cofactor_mode
    - check_mode
    - cofactor_mode
    linkageType: ''
    returnType: void
    signature: "void ECIES_System_Params::ECIES_System_Params(const EC_Group& group,\n
      \                                        std::string_view kdf,\n                                         std::string_view
      dem_algo_spec,\n                                         size_t dem_key_len,\n
      \                                        std::string_view mac_spec,\n                                         size_t
      mac_key_len,\n                                         EC_Point_Format point_format,\n
      \                                        ECIES_Flags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 8
    argNames:
    - ' group'
    - kdf
    - dem_algo_spec
    - dem_key_len
    - mac_spec
    - mac_key_len
    - point_format
    - single_hash_mode
    argTypes:
    - EC_Group
    - std::string_view
    - std::string_view
    - size_t
    - std::string_view
    - size_t
    - EC_Point_Format
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: ECIES_System_Params::ECIES_System_Params
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ECIES_System_Params::ECIES_System_Params(const EC_Group& group,\n
      \                                        std::string_view kdf,\n                                         std::string_view
      dem_algo_spec,\n                                         size_t dem_key_len,\n
      \                                        std::string_view mac_spec,\n                                         size_t
      mac_key_len,\n                                         EC_Point_Format point_format,\n
      \                                        bool single_hash_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: ECIES_System_Params::create_mac
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> ECIES_System_Params::create_mac()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create_or_throw
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - direction
    argTypes:
    - Cipher_Dir
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: ECIES_System_Params::create_cipher
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::Cipher_Mode::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<Cipher_Mode>
    signature: std::unique_ptr<Cipher_Mode> ECIES_System_Params::create_cipher(Cipher_Dir
      direction) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:287,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:288,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:292,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:292,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:292,1
    - Dst: create_mac
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:294,1
    - Dst: create_cipher
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' private_key'
    - ' ecies_params'
    - ' rng'
    argTypes:
    - PK_Key_Agreement_Key
    - ECIES_System_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 296
    functionName: ECIES_Encryptor::ECIES_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - public_value
    - EC_AffinePoint
    - point_format
    - group
    - create_mac
    - create_cipher
    linkageType: ''
    returnType: void
    signature: "void ECIES_Encryptor::ECIES_Encryptor(const PK_Key_Agreement_Key&
      private_key,\n                                 const ECIES_System_Params& ecies_params,\n
      \                                RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDH_PrivateKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:302,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - ' ecies_params'
    argTypes:
    - RandomNumberGenerator
    - ECIES_System_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: ECIES_Encryptor::ECIES_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - ECDH_PrivateKey
    - group
    linkageType: ''
    returnType: void
    signature: void ECIES_Encryptor::ECIES_Encryptor(RandomNumberGenerator& rng, const
      ECIES_System_Params& ecies_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: ECIES_Encryptor::maximum_input_size
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ECIES_Encryptor::maximum_input_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:313,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:313,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: ECIES_Encryptor::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - size
    - output_length
    linkageType: ''
    returnType: size_t
    signature: size_t ECIES_Encryptor::ciphertext_length(size_t ptext_len) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:322,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:323,1
    - Dst: derive_secret
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:326,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:326,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:330,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:330,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:330,1
    - Dst: dem_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:330,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:331,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:331,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:331,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:332,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:332,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:335,1
    - Dst: bits_of
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:335,1
    - Dst: finish
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:338,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:341,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:341,1
    - Dst: dem_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:341,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:341,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:342,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:343,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:344,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:346,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 350
    functionName: ECIES_Encryptor::enc
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - bits_of
    - Invalid_State
    - empty
    - concat
    - mac_keylen
    - Invalid_Argument
    - start
    - derive_secret
    - name
    - value
    - update
    - dem_keylen
    - has_value
    - set_key
    - finish
    - valid_nonce_length
    - SymmetricKey
    - final
    - size
    - SymmetricKey::begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> ECIES_Encryptor::enc(const uint8_t data[],\n
      \                                         size_t length,\n                                          RandomNumberGenerator&
      /*unused*/) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_mac
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:369,1
    - Dst: create_cipher
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key'
    - ' ecies_params'
    - ' rng'
    argTypes:
    - PK_Key_Agreement_Key
    - ECIES_System_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 371
    functionName: ECIES_Decryptor::ECIES_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - create_mac
    - create_cipher
    linkageType: ''
    returnType: void
    signature: "void ECIES_Decryptor::ECIES_Decryptor(const PK_Key_Agreement_Key&
      key,\n                                 const ECIES_System_Params& ecies_params,\n
      \                                RandomNumberGenerator& rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - format
    argTypes:
    - EC_Group
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 382
    functionName: compute_point_size
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - get_p_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t compute_point_size(const EC_Group& group, EC_Point_Format format)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - format
    argTypes:
    - EC_Group
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 382
    functionName: compute_point_size
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - get_p_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t compute_point_size(const EC_Group& group, EC_Point_Format format)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compute_point_size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:387,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:387,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:387,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:388,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: ECIES_Decryptor::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - group
    - output_length
    - point_format
    - compute_point_size
    linkageType: ''
    returnType: size_t
    signature: size_t ECIES_Decryptor::plaintext_length(size_t ctext_len) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: compute_point_size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:401,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:401,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:401,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:403,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:404,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:409,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:410,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:413,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:413,1
    - Dst: derive_secret
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:420,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:423,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:423,1
    - Dst: dem_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:423,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:423,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:424,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:425,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:426,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:428,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:429,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:434,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:434,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:434,1
    - Dst: dem_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:434,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:435,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:435,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:435,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:436,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:436,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:438,1
    - Dst: bits_of
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:438,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:443,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:443,1
    - Dst: finish
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:444,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:450,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - ' valid_mask'
    - in
    - in_len
    argTypes:
    - uint8_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 451
    functionName: ECIES_Decryptor::do_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - bits_of
    - std::vector::begin
    - output_length
    - empty
    - CT::is_equal<uint8_t>
    - std::vector::end
    - EC_AffinePoint
    - mac_keylen
    - secure_vector<uint8_t>
    - compute_point_size
    - group
    - Invalid_Argument
    - start
    - derive_secret
    - name
    - update
    - dem_keylen
    - set_key
    - finish
    - valid_nonce_length
    - Decoding_Error
    - SymmetricKey
    - final
    - point_format
    - size
    - SymmetricKey::begin
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ECIES_Decryptor::do_decrypt(uint8_t& valid_mask,
      const uint8_t in[], size_t in_len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ECIES_Flags>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:67,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:67,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ECIES_Flags
    - ECIES_Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: operator|(ECIES_Flags a, ECIES_Flags b)
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - static_cast<ECIES_Flags>
    linkageType: ''
    returnType: ECIES_Flags
    signature: ECIES_Flags operator|(ECIES_Flags a, ECIES_Flags b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ECIES_Flags>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:71,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:71,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ECIES_Flags
    - ECIES_Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: operator&(ECIES_Flags a, ECIES_Flags b)
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - static_cast<ECIES_Flags>
    linkageType: ''
    returnType: ECIES_Flags
    signature: ECIES_Flags operator&(ECIES_Flags a, ECIES_Flags b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::ECIES_KA_Params
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECIES_KA_Params(const ECIES_KA_Params&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::ECIES_KA_Params
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECIES_KA_Params(ECIES_KA_Params&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: ~ECIES_KA_Params()
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ECIES_KA_Params()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::group
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group & group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan::secret_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t secret_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: Botan::single_hash_mode
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool single_hash_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::cofactor_mode
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cofactor_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan::old_cofactor_mode
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool old_cofactor_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::check_mode
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::point_format
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_Point_Format
    signature: EC_Point_Format point_format() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: Botan::kdf
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & kdf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::kdf
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan::kdf_spec
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached:
    - Botan::kdf
    linkageType: ''
    returnType: std::string
    signature: std::string & kdf_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::domain
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 4
    functionsReached:
    - Botan::group
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group & domain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::compression_type
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached:
    - Botan::point_format
    linkageType: ''
    returnType: EC_Point_Format
    signature: EC_Point_Format compression_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ECIES_Flags>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:67,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:67,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ECIES_Flags
    - ECIES_Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: operator|(ECIES_Flags a, ECIES_Flags b)
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - static_cast<ECIES_Flags>
    linkageType: ''
    returnType: ECIES_Flags
    signature: ECIES_Flags operator|(ECIES_Flags a, ECIES_Flags b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ECIES_Flags>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:71,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:71,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ECIES_Flags
    - ECIES_Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: operator&(ECIES_Flags a, ECIES_Flags b)
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - static_cast<ECIES_Flags>
    linkageType: ''
    returnType: ECIES_Flags
    signature: ECIES_Flags operator&(ECIES_Flags a, ECIES_Flags b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::ECIES_KA_Params
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECIES_KA_Params(const ECIES_KA_Params&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::ECIES_KA_Params
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECIES_KA_Params(ECIES_KA_Params&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: ~ECIES_KA_Params()
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ECIES_KA_Params()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::group
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group & group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan::secret_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t secret_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: Botan::single_hash_mode
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool single_hash_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: Botan::cofactor_mode
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cofactor_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan::old_cofactor_mode
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool old_cofactor_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::check_mode
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: Botan::point_format
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_Point_Format
    signature: EC_Point_Format point_format() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: Botan::kdf
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & kdf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::kdf
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Botan::kdf_spec
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached:
    - Botan::kdf
    linkageType: ''
    returnType: std::string
    signature: std::string & kdf_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::domain
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 4
    functionsReached:
    - Botan::group
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group & domain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: Botan::compression_type
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached:
    - Botan::point_format
    linkageType: ''
    returnType: EC_Point_Format
    signature: EC_Point_Format compression_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECIES_System_Params
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:165,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 223
    functionName: ECIES_KA_Params
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached:
    - ECIES_System_Params
    - BOTAN_DEPRECATED
    linkageType: ''
    returnType: ECIES_System_Params
    signature: ECIES_System_Params ECIES_KA_Params
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: ECIES_System_Params
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECIES_System_Params(const ECIES_System_Params&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: ECIES_System_Params
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECIES_System_Params(ECIES_System_Params&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: ~ECIES_System_Params() override
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ECIES_System_Params() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: dem_keylen
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dem_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    functionName: mac_keylen
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mac_keylen() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECIES_Encryptor
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:275,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:289,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:289,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:300,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:300,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:300,1
    - Dst: ECIES_KA_Operation::ECIES_KA_Operation
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:309,1
    - Dst: ECIES_System_Params::ECIES_System_Params
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 317
    functionName: PK_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached:
    - ECIES_KA_Operation::ECIES_KA_Operation
    - EC_AffinePoint
    - begin
    - ECIES_Encryptor
    - group
    - assign
    - ECIES_System_Params::ECIES_System_Params
    - end
    linkageType: ''
    returnType: ECIES_Encryptor
    signature: ECIES_Encryptor PK_Encryptor
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:289,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' public_point'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: set_other_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 12
    functionsReached:
    - EC_AffinePoint
    - group
    linkageType: ''
    returnType: void
    signature: void set_other_key(const EC_Point& public_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pt'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: set_other_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_other_key(const EC_AffinePoint& pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' iv'
    argTypes:
    - InitializationVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: set_initialization_vector
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_initialization_vector(const InitializationVector& iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:300,1
    - Dst: std::string_view::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:300,1
    - Dst: std::string_view::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - label
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: set_label
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 18
    functionsReached:
    - std::string_view::end
    - assign
    - std::string_view::begin
    linkageType: ''
    returnType: void
    signature: void set_label(std::string_view label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECIES_Decryptor
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:329,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:337,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:337,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:337,1
    - Dst: ECIES_KA_Operation::ECIES_KA_Operation
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:344,1
    - Dst: ECIES_System_Params::ECIES_System_Params
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 350
    functionName: PK_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 0
    functionsReached:
    - ECIES_KA_Operation::ECIES_KA_Operation
    - std::vector<uint8_t>
    - begin
    - ECIES_Decryptor
    - ECIES_System_Params::ECIES_System_Params
    - end
    linkageType: ''
    returnType: ECIES_Decryptor
    signature: ECIES_Decryptor PK_Decryptor
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' iv'
    argTypes:
    - InitializationVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 334
    functionName: set_initialization_vector
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_initialization_vector(const InitializationVector& iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:337,1
    - Dst: std::string_view::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:337,1
    - Dst: std::string_view::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - label
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 337
    functionName: set_label
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.h
    functionUses: 18
    functionsReached:
    - std::string_view::end
    - std::vector<uint8_t>
    - std::string_view::begin
    linkageType: ''
    returnType: void
    signature: void set_label(std::string_view label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:25,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:27,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:28,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:30,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:31,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:31,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:32,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:32,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:32,1
    - Dst: KDF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:34,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:34,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    argTypes:
    - StrongSpan<KyberCompressedCiphertext>
    - StrongSpan<KyberSharedSecret>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: Botan::Kyber_KEM_Encryptor::encapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp
    functionUses: 0
    functionsReached:
    - mode
    - random_vec
    - G
    - Botan::CT::unpoison_all
    - H
    - Botan::CT::poison
    - KDF
    - indcpa_encrypt
    - precomputed_matrix_At
    - H_public_key_bits_raw
    linkageType: ''
    returnType: void
    signature: "void Kyber_KEM_Encryptor::encapsulate(StrongSpan<KyberCompressedCiphertext>
      out_encapsulated_key,\n                                      StrongSpan<KyberSharedSecret>
      out_shared_key,\n                                      RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:43,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:45,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:47,1
    - Dst: z
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:48,1
    - Dst: indcpa_decrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:50,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:51,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:53,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:53,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:53,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:56,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:56,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:56,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:57,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:57,1
    - Dst: KyberSharedSecret::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:57,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:58,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:59,1
    - Dst: KyberSharedSecret::data
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:59,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:59,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:59,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:59,1
    - Dst: KDF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:61,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:61,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - StrongSpan<KyberSharedSecret>
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: Botan::Kyber_KEM_Decryptor::decapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp
    functionUses: 0
    functionsReached:
    - data
    - KyberSharedSecret::data
    - indcpa_decrypt
    - auto::size
    - CT::is_equal<uint8_t>
    - Botan::CT::conditional_copy_mem
    - KyberSharedSecret::size
    - StrongSpan<const KyberCompressedCiphertext>::size
    - indcpa_encrypt
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - H_public_key_bits_raw
    - mode
    - z
    - H
    - precomputed_matrix_At
    - Botan::CT::scoped_poison
    - G
    - KDF
    - size
    linkageType: ''
    returnType: void
    signature: "void Kyber_KEM_Decryptor::decapsulate(StrongSpan<KyberSharedSecret>
      out_shared_key,\n                                      StrongSpan<const KyberCompressedCiphertext>
      encapsulated_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:25,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:27,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:28,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:30,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:31,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:31,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:32,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:32,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:32,1
    - Dst: KDF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:34,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:34,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    argTypes:
    - StrongSpan<KyberCompressedCiphertext>
    - StrongSpan<KyberSharedSecret>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: Botan::Kyber_KEM_Encryptor::encapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp
    functionUses: 0
    functionsReached:
    - mode
    - random_vec
    - G
    - Botan::CT::unpoison_all
    - H
    - Botan::CT::poison
    - KDF
    - indcpa_encrypt
    - precomputed_matrix_At
    - H_public_key_bits_raw
    linkageType: ''
    returnType: void
    signature: "void Kyber_KEM_Encryptor::encapsulate(StrongSpan<KyberCompressedCiphertext>
      out_encapsulated_key,\n                                      StrongSpan<KyberSharedSecret>
      out_shared_key,\n                                      RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:43,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:45,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:47,1
    - Dst: z
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:48,1
    - Dst: indcpa_decrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:50,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:51,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:53,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:53,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:53,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:56,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:56,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:56,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:57,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:57,1
    - Dst: KyberSharedSecret::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:57,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:58,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:59,1
    - Dst: KyberSharedSecret::data
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:59,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:59,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:59,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:59,1
    - Dst: KDF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:61,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:61,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - StrongSpan<KyberSharedSecret>
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: Botan::Kyber_KEM_Decryptor::decapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp
    functionUses: 0
    functionsReached:
    - data
    - KyberSharedSecret::data
    - indcpa_decrypt
    - auto::size
    - CT::is_equal<uint8_t>
    - Botan::CT::conditional_copy_mem
    - KyberSharedSecret::size
    - StrongSpan<const KyberCompressedCiphertext>::size
    - indcpa_encrypt
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - H_public_key_bits_raw
    - mode
    - z
    - H
    - precomputed_matrix_At
    - Botan::CT::scoped_poison
    - G
    - KDF
    - size
    linkageType: ''
    returnType: void
    signature: "void Kyber_KEM_Decryptor::decapsulate(StrongSpan<KyberSharedSecret>
      out_shared_key,\n                                      StrongSpan<const KyberCompressedCiphertext>
      encapsulated_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - kdf
    argTypes:
    - std::shared_ptr<const Kyber_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::Kyber_KEM_Encryptor::Kyber_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Kyber_KEM_Encryptor(std::shared_ptr<const Kyber_PublicKeyInternal>
      key, std::string_view kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:40,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - private_key
    - public_key
    - kdf
    argTypes:
    - std::shared_ptr<const Kyber_PrivateKeyInternal>
    - std::shared_ptr<const Kyber_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan::Kyber_KEM_Decryptor::Kyber_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Kyber_KEM_Decryptor(std::shared_ptr<const Kyber_PrivateKeyInternal>
      private_key,\n                          std::shared_ptr<const Kyber_PublicKeyInternal>
      public_key,\n                          std::string_view kdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - kdf
    argTypes:
    - std::shared_ptr<const Kyber_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Botan::Kyber_KEM_Encryptor::Kyber_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Kyber_KEM_Encryptor(std::shared_ptr<const Kyber_PublicKeyInternal>
      key, std::string_view kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:40,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - private_key
    - public_key
    - kdf
    argTypes:
    - std::shared_ptr<const Kyber_PrivateKeyInternal>
    - std::shared_ptr<const Kyber_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan::Kyber_KEM_Decryptor::Kyber_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Kyber_KEM_Decryptor(std::shared_ptr<const Kyber_PrivateKeyInternal>
      private_key,\n                          std::shared_ptr<const Kyber_PublicKeyInternal>
      public_key,\n                          std::string_view kdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::seed_expansion_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::array<uint8_t, 1>>
    signature: "std::optional<std::array<uint8_t, 1>> seed_expansion_domain_separator(\n
      \        const KyberConstants& /*constants*/) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_G
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_G() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_H() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_J
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_J() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:40,1
    - Dst: Botan::Kyber_Modern_Symmetric_Primitives::init_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::XOF::create_or_throw
    - Botan::Kyber_Modern_Symmetric_Primitives::init_PRF
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: std::unique_ptr<Botan::XOF> create_PRF(std::span<const uint8_t> seed,
      const uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:46,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:47,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::init_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 1
    functionsReached:
    - clear
    - update
    linkageType: ''
    returnType: void
    signature: void init_PRF(Botan::XOF& xof, std::span<const uint8_t> seed, const
      uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:53,1
    - Dst: Botan::Kyber_Modern_Symmetric_Primitives::init_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - matrix_position
    argTypes:
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Modern_Symmetric_Primitives::init_XOF
    - Botan::XOF::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: "std::unique_ptr<Botan::XOF> create_XOF(std::span<const uint8_t> seed,\n
      \                                            std::tuple<uint8_t, uint8_t> matrix_position)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:61,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:62,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:64,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:64,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - matrix_position
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::init_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 1
    functionsReached:
    - clear
    - update
    - std::get<1>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: "void init_XOF(Botan::XOF& xof,\n                    std::span<const
      uint8_t> seed,\n                    std::tuple<uint8_t, uint8_t> matrix_position)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::seed_expansion_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::array<uint8_t, 1>>
    signature: "std::optional<std::array<uint8_t, 1>> seed_expansion_domain_separator(\n
      \        const KyberConstants& /*constants*/) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_G
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_G() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_H() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_J
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_J() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:40,1
    - Dst: Botan::Kyber_Modern_Symmetric_Primitives::init_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::XOF::create_or_throw
    - Botan::Kyber_Modern_Symmetric_Primitives::init_PRF
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: std::unique_ptr<Botan::XOF> create_PRF(std::span<const uint8_t> seed,
      const uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:46,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:47,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::init_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 2
    functionsReached:
    - clear
    - update
    linkageType: ''
    returnType: void
    signature: void init_PRF(Botan::XOF& xof, std::span<const uint8_t> seed, const
      uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:53,1
    - Dst: Botan::Kyber_Modern_Symmetric_Primitives::init_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - matrix_position
    argTypes:
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::create_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Modern_Symmetric_Primitives::init_XOF
    - Botan::XOF::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: "std::unique_ptr<Botan::XOF> create_XOF(std::span<const uint8_t> seed,\n
      \                                            std::tuple<uint8_t, uint8_t> matrix_position)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:61,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:62,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:64,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:64,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - matrix_position
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::init_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 2
    functionsReached:
    - clear
    - update
    - std::get<1>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: "void init_XOF(Botan::XOF& xof,\n                    std::span<const
      uint8_t> seed,\n                    std::tuple<uint8_t, uint8_t> matrix_position)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::Kyber_90s_Symmetric_Primitives::seed_expansion_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::array<uint8_t, 1>>
    signature: "std::optional<std::array<uint8_t, 1>> seed_expansion_domain_separator(\n
      \        const KyberConstants& /*constants*/) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_G
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_G() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_H() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_J
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_J() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<AES_256_CTR_XOF>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:41,1
    - Dst: Botan::Kyber_90s_Symmetric_Primitives::init_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_90s_Symmetric_Primitives::init_PRF
    - std::make_unique<AES_256_CTR_XOF>
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: std::unique_ptr<Botan::XOF> create_PRF(std::span<const uint8_t> seed,
      const uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:47,1
    - Dst: dynamic_cast<AES_256_CTR_XOF&>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: Botan::Kyber_90s_Symmetric_Primitives::init_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 1
    functionsReached:
    - clear
    - dynamic_cast<AES_256_CTR_XOF&>
    linkageType: ''
    returnType: void
    signature: void init_PRF(Botan::XOF& xof, std::span<const uint8_t> seed, const
      uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<AES_256_CTR_XOF>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:53,1
    - Dst: Botan::Kyber_90s_Symmetric_Primitives::init_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - mpos
    argTypes:
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - std::make_unique<AES_256_CTR_XOF>
    - Botan::Kyber_90s_Symmetric_Primitives::init_XOF
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: "std::unique_ptr<Botan::XOF> create_XOF(std::span<const uint8_t> seed,\n
      \                                            std::tuple<uint8_t, uint8_t> mpos)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:59,1
    - Dst: dynamic_cast<AES_256_CTR_XOF&>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:60,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:60,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - mpos
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: Botan::Kyber_90s_Symmetric_Primitives::init_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 1
    functionsReached:
    - clear
    - dynamic_cast<AES_256_CTR_XOF&>
    - std::get<1>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void init_XOF(Botan::XOF& xof, std::span<const uint8_t> seed, std::tuple<uint8_t,
      uint8_t> mpos) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::Kyber_90s_Symmetric_Primitives::seed_expansion_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::array<uint8_t, 1>>
    signature: "std::optional<std::array<uint8_t, 1>> seed_expansion_domain_separator(\n
      \        const KyberConstants& /*constants*/) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_G
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_G() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_H() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_J
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_J() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<AES_256_CTR_XOF>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:41,1
    - Dst: Botan::Kyber_90s_Symmetric_Primitives::init_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_90s_Symmetric_Primitives::init_PRF
    - std::make_unique<AES_256_CTR_XOF>
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: std::unique_ptr<Botan::XOF> create_PRF(std::span<const uint8_t> seed,
      const uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:47,1
    - Dst: dynamic_cast<AES_256_CTR_XOF&>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: Botan::Kyber_90s_Symmetric_Primitives::init_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 2
    functionsReached:
    - clear
    - dynamic_cast<AES_256_CTR_XOF&>
    linkageType: ''
    returnType: void
    signature: void init_PRF(Botan::XOF& xof, std::span<const uint8_t> seed, const
      uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<AES_256_CTR_XOF>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:53,1
    - Dst: Botan::Kyber_90s_Symmetric_Primitives::init_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - mpos
    argTypes:
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: Botan::Kyber_90s_Symmetric_Primitives::create_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - std::make_unique<AES_256_CTR_XOF>
    - Botan::Kyber_90s_Symmetric_Primitives::init_XOF
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: "std::unique_ptr<Botan::XOF> create_XOF(std::span<const uint8_t> seed,\n
      \                                            std::tuple<uint8_t, uint8_t> mpos)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:59,1
    - Dst: dynamic_cast<AES_256_CTR_XOF&>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:60,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:60,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - mpos
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: Botan::Kyber_90s_Symmetric_Primitives::init_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 2
    functionsReached:
    - clear
    - dynamic_cast<AES_256_CTR_XOF&>
    - std::get<1>
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void init_XOF(Botan::XOF& xof, std::span<const uint8_t> seed, std::tuple<uint8_t,
      uint8_t> mpos) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - kdf
    argTypes:
    - std::shared_ptr<const Kyber_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: Botan::ML_KEM_Encryptor::ML_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ML_KEM_Encryptor(std::shared_ptr<const Kyber_PublicKeyInternal>
      key, std::string_view kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:45,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - private_key
    - public_key
    - kdf
    argTypes:
    - std::shared_ptr<const Kyber_PrivateKeyInternal>
    - std::shared_ptr<const Kyber_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: Botan::ML_KEM_Decryptor::ML_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void ML_KEM_Decryptor(std::shared_ptr<const Kyber_PrivateKeyInternal>
      private_key,\n                       std::shared_ptr<const Kyber_PublicKeyInternal>
      public_key,\n                       std::string_view kdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: Botan::ML_KEM_Symmetric_Primitives::seed_expansion_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - k
    linkageType: ''
    returnType: std::optional<std::array<uint8_t, 1>>
    signature: std::optional<std::array<uint8_t, 1>> seed_expansion_domain_separator(const
      KyberConstants& mode) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_G
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_G() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_H() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_J
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_J() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:80,1
    - Dst: Botan::ML_KEM_Symmetric_Primitives::init_PRF
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::ML_KEM_Symmetric_Primitives::init_PRF
    - Botan::XOF::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: std::unique_ptr<Botan::XOF> create_PRF(std::span<const uint8_t> seed,
      const uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:86,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:87,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:88,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: Botan::ML_KEM_Symmetric_Primitives::init_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 1
    functionsReached:
    - clear
    - update
    - store_be
    linkageType: ''
    returnType: void
    signature: void init_PRF(Botan::XOF& xof, std::span<const uint8_t> seed, const
      uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:93,1
    - Dst: Botan::ML_KEM_Symmetric_Primitives::init_XOF
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - matrix_position
    argTypes:
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::XOF::create_or_throw
    - Botan::ML_KEM_Symmetric_Primitives::init_XOF
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: "std::unique_ptr<Botan::XOF> create_XOF(std::span<const uint8_t> seed,\n
      \                                            std::tuple<uint8_t, uint8_t> matrix_position)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:101,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:102,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:103,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:103,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:103,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:103,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - matrix_position
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan::ML_KEM_Symmetric_Primitives::init_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 1
    functionsReached:
    - std::get<0>
    - make_uint16
    - clear
    - std::get<1>
    - store_be
    - update
    linkageType: ''
    returnType: void
    signature: "void init_XOF(Botan::XOF& xof,\n                    std::span<const
      uint8_t> seed,\n                    std::tuple<uint8_t, uint8_t> matrix_position)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - kdf
    argTypes:
    - std::shared_ptr<const Kyber_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: Botan::ML_KEM_Encryptor::ML_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ML_KEM_Encryptor(std::shared_ptr<const Kyber_PublicKeyInternal>
      key, std::string_view kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:45,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - private_key
    - public_key
    - kdf
    argTypes:
    - std::shared_ptr<const Kyber_PrivateKeyInternal>
    - std::shared_ptr<const Kyber_PublicKeyInternal>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: Botan::ML_KEM_Decryptor::ML_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void ML_KEM_Decryptor(std::shared_ptr<const Kyber_PrivateKeyInternal>
      private_key,\n                       std::shared_ptr<const Kyber_PublicKeyInternal>
      public_key,\n                       std::string_view kdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: Botan::ML_KEM_Symmetric_Primitives::seed_expansion_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - k
    linkageType: ''
    returnType: std::optional<std::array<uint8_t, 1>>
    signature: std::optional<std::array<uint8_t, 1>> seed_expansion_domain_separator(const
      KyberConstants& mode) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_G
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_G() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_H() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_J
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_J() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> create_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:80,1
    - Dst: Botan::ML_KEM_Symmetric_Primitives::init_PRF
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::ML_KEM_Symmetric_Primitives::init_PRF
    - Botan::XOF::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: std::unique_ptr<Botan::XOF> create_PRF(std::span<const uint8_t> seed,
      const uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:86,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:87,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:88,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: Botan::ML_KEM_Symmetric_Primitives::init_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 2
    functionsReached:
    - clear
    - update
    - store_be
    linkageType: ''
    returnType: void
    signature: void init_PRF(Botan::XOF& xof, std::span<const uint8_t> seed, const
      uint8_t nonce) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:93,1
    - Dst: Botan::ML_KEM_Symmetric_Primitives::init_XOF
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - matrix_position
    argTypes:
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: Botan::ML_KEM_Symmetric_Primitives::create_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::XOF::create_or_throw
    - Botan::ML_KEM_Symmetric_Primitives::init_XOF
    linkageType: ''
    returnType: std::unique_ptr<Botan::XOF>
    signature: "std::unique_ptr<Botan::XOF> create_XOF(std::span<const uint8_t> seed,\n
      \                                            std::tuple<uint8_t, uint8_t> matrix_position)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:101,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:102,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:103,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:103,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:103,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:103,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - matrix_position
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan::ML_KEM_Symmetric_Primitives::init_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 2
    functionsReached:
    - std::get<0>
    - make_uint16
    - clear
    - std::get<1>
    - store_be
    - update
    linkageType: ''
    returnType: void
    signature: "void init_XOF(Botan::XOF& xof,\n                    std::span<const
      uint8_t> seed,\n                    std::tuple<uint8_t, uint8_t> matrix_position)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:27,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:29,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:30,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:32,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:32,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:33,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:33,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:33,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:36,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    argTypes:
    - StrongSpan<KyberCompressedCiphertext>
    - StrongSpan<KyberSharedSecret>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: Botan::ML_KEM_Encryptor::encapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp
    functionUses: 0
    functionsReached:
    - mode
    - random_vec
    - G
    - Botan::CT::unpoison_all
    - indcpa_encrypt
    - copy_mem
    - precomputed_matrix_At
    - Botan::CT::scoped_poison
    - H_public_key_bits_raw
    linkageType: ''
    returnType: void
    signature: "void ML_KEM_Encryptor::encapsulate(StrongSpan<KyberCompressedCiphertext>
      out_encapsulated_key,\n                                   StrongSpan<KyberSharedSecret>
      out_shared_key,\n                                   RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:49,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:51,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:53,1
    - Dst: z
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:54,1
    - Dst: indcpa_decrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:56,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:57,1
    - Dst: J
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:59,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:60,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:60,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:60,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:62,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:62,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:62,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: StrongSpan<KyberSharedSecret>::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: StrongSpan<KyberSharedSecret>::data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out_shared_key
    - c
    argTypes:
    - StrongSpan<KyberSharedSecret>
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: Botan::ML_KEM_Decryptor::decapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp
    functionUses: 0
    functionsReached:
    - data
    - auto::data
    - StrongSpan<KyberSharedSecret>::data
    - indcpa_decrypt
    - auto::size
    - CT::is_equal<uint8_t>
    - Botan::CT::conditional_copy_mem
    - StrongSpan<const KyberCompressedCiphertext>::size
    - indcpa_encrypt
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - J
    - H_public_key_bits_raw
    - mode
    - StrongSpan<KyberSharedSecret>::size
    - z
    - precomputed_matrix_At
    - Botan::CT::scoped_poison
    - G
    - size
    linkageType: ''
    returnType: void
    signature: "void ML_KEM_Decryptor::decapsulate(StrongSpan<KyberSharedSecret> out_shared_key,\n
      \                                  StrongSpan<const KyberCompressedCiphertext>
      c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:27,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:29,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:30,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:32,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:32,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:33,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:33,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:33,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:36,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    argTypes:
    - StrongSpan<KyberCompressedCiphertext>
    - StrongSpan<KyberSharedSecret>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: Botan::ML_KEM_Encryptor::encapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp
    functionUses: 0
    functionsReached:
    - mode
    - random_vec
    - G
    - Botan::CT::unpoison_all
    - indcpa_encrypt
    - copy_mem
    - precomputed_matrix_At
    - Botan::CT::scoped_poison
    - H_public_key_bits_raw
    linkageType: ''
    returnType: void
    signature: "void ML_KEM_Encryptor::encapsulate(StrongSpan<KyberCompressedCiphertext>
      out_encapsulated_key,\n                                   StrongSpan<KyberSharedSecret>
      out_shared_key,\n                                   RandomNumberGenerator& rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:49,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:51,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:53,1
    - Dst: z
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:54,1
    - Dst: indcpa_decrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:56,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:57,1
    - Dst: J
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:59,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:60,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:60,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:60,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:62,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:62,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:62,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: StrongSpan<KyberSharedSecret>::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: StrongSpan<KyberSharedSecret>::data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out_shared_key
    - c
    argTypes:
    - StrongSpan<KyberSharedSecret>
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: Botan::ML_KEM_Decryptor::decapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp
    functionUses: 0
    functionsReached:
    - data
    - auto::data
    - StrongSpan<KyberSharedSecret>::data
    - indcpa_decrypt
    - auto::size
    - CT::is_equal<uint8_t>
    - Botan::CT::conditional_copy_mem
    - StrongSpan<const KyberCompressedCiphertext>::size
    - indcpa_encrypt
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::unpoison
    - J
    - H_public_key_bits_raw
    - mode
    - StrongSpan<KyberSharedSecret>::size
    - z
    - precomputed_matrix_At
    - Botan::CT::scoped_poison
    - G
    - size
    linkageType: ''
    returnType: void
    signature: "void ML_KEM_Decryptor::decapsulate(StrongSpan<KyberSharedSecret> out_shared_key,\n
      \                                  StrongSpan<const KyberCompressedCiphertext>
      c)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:71,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: Botan::kyber_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: KyberMode::Mode
    signature: KyberMode::Mode kyber_mode_from_string(std::string_view str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:71,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: Botan::kyber_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: KyberMode::Mode
    signature: KyberMode::Mode kyber_mode_from_string(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mode
    argTypes:
    - Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::KyberMode::KyberMode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberMode::KyberMode(Mode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kyber_mode_from_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:78,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::KyberMode::KyberMode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 10
    functionsReached:
    - to_formatted_string
    - kyber_mode_from_string
    linkageType: ''
    returnType: void
    signature: void KyberMode::KyberMode(const OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kyber_mode_from_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::KyberMode::KyberMode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 10
    functionsReached:
    - kyber_mode_from_string
    linkageType: ''
    returnType: void
    signature: void KyberMode::KyberMode(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:83,1
    - Dst: Botan::KyberMode::to_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::KyberMode::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - Botan::KyberMode::to_string
    linkageType: ''
    returnType: OID
    signature: OID KyberMode::object_identifier() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 109
    functionName: Botan::KyberMode::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::string
    signature: std::string KyberMode::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan::KyberMode::is_90s
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KyberMode::is_90s() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::is_90s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: Botan::KyberMode::is_modern
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::KyberMode::is_90s
    linkageType: ''
    returnType: bool
    signature: bool KyberMode::is_modern() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: Botan::KyberMode::is_ml_kem
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KyberMode::is_ml_kem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: Botan::KyberMode::is_kyber_round3
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KyberMode::is_kyber_round3() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:130,1
    - Dst: Botan::KyberMode::is_modern
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:130,1
    - Dst: Botan::KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:136,1
    - Dst: Botan::KyberMode::is_90s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:136,1
    - Dst: Botan::KyberMode::is_ml_kem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: Botan::KyberMode::is_available
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - Botan::KyberMode::is_modern
    - Botan::KyberMode::is_kyber_round3
    - Botan::KyberMode::is_90s
    - Botan::KyberMode::is_ml_kem
    linkageType: ''
    returnType: bool
    signature: bool KyberMode::is_available() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan::Kyber_PublicKey::mode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    linkageType: ''
    returnType: KyberMode
    signature: KyberMode Kyber_PublicKey::mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Botan::Kyber_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    linkageType: ''
    returnType: std::string
    signature: std::string Kyber_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:163,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: Botan::Kyber_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Kyber_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: Botan::Kyber_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    linkageType: ''
    returnType: OID
    signature: OID Kyber_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: Botan::Kyber_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    linkageType: ''
    returnType: size_t
    signature: size_t Kyber_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KyberMode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:175,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: Botan::Kyber_PublicKey::Kyber_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - KyberMode
    - oid
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKey::Kyber_PublicKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:178,1
    - Dst: KyberSerializedPublicKey
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pub_key
    - mode
    argTypes:
    - std::span<const uint8_t>
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: Botan::Kyber_PublicKey::Kyber_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - std::make_shared<Kyber_PublicKeyInternal>
    - KyberSerializedPublicKey
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKey::Kyber_PublicKey(std::span<const uint8_t> pub_key,
      KyberMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:182,1
    - Dst: m_public::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:183,1
    - Dst: m_public::t
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:183,1
    - Dst: m_public::rho
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Kyber_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Botan::Kyber_PublicKey::Kyber_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - m_public::rho
    - m_public::mode
    - m_public::t
    - std::make_shared<Kyber_PublicKeyInternal>
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKey::Kyber_PublicKey(const Kyber_PublicKey& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: Botan::Kyber_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - public_key_bits_raw
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Kyber_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: Botan::Kyber_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Kyber_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Botan::Kyber_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    linkageType: ''
    returnType: size_t
    signature: size_t Kyber_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:205,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:206,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:206,1
    - Dst: public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:208,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    - Dst: std::equal
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: Botan::Kyber_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    - std::equal
    - Botan::Kyber_Algos::encode_polynomial_vector
    - std::vector::end
    - public_key_bits_raw
    - begin
    - size
    - std::vector::begin
    - t
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: bool Kyber_PublicKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Kyber_PrivateKey>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:213,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: Botan::Kyber_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    - std::make_unique<Kyber_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Kyber_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:220,1
    - Dst: Botan::Kyber_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:221,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:221,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - mode
    argTypes:
    - RandomNumberGenerator
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: Botan::Kyber_PrivateKey::Kyber_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - Botan::Kyber_Algos::expand_keypair
    - random_vec
    - std::tie
    linkageType: ''
    returnType: void
    signature: void Kyber_PrivateKey::Kyber_PrivateKey(RandomNumberGenerator& rng,
      KyberMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KyberMode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:227,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: Botan::Kyber_PrivateKey::Kyber_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - KyberMode
    - oid
    linkageType: ''
    returnType: void
    signature: void Kyber_PrivateKey::Kyber_PrivateKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: KyberConstants::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:232,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:232,1
    - Dst: KyberConstants::seed_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:232,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:233,1
    - Dst: Seed_Expanding_Keypair_Codec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:233,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:233,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:234,1
    - Dst: KyberConstants::expanded_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:234,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:235,1
    - Dst: Expanded_Keypair_Codec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:235,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:235,1
    - Dst: KyberConstants::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:236,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:236,1
    - Dst: KyberConstants::seed_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:236,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:237,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:239,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - sk
    - m
    argTypes:
    - std::span<const uint8_t>
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 241
    functionName: Botan::Kyber_PrivateKey::Kyber_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - Invalid_Argument
    - std::tie
    - std::move
    - KyberConstants::expanded_private_key_bytes
    - KyberConstants::mode
    - Expanded_Keypair_Codec
    - std::span<const uint8_t>::size
    - KyberConstants::seed_private_key_bytes
    - Seed_Expanding_Keypair_Codec
    linkageType: ''
    returnType: void
    signature: void Kyber_PrivateKey::Kyber_PrivateKey(std::span<const uint8_t> sk,
      KyberMode m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Kyber_PublicKey>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Botan::Kyber_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Kyber_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> Kyber_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PrivateKey::private_key_bits
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: Botan::Kyber_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PrivateKey::private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Kyber_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PrivateKey::private_key_bits_with_format
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:252,1
    - Dst: Botan::Kyber_PrivateKey::private_key_format
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: Botan::Kyber_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 2
    functionsReached:
    - Botan::Kyber_PrivateKey::private_key_format
    - Botan::Kyber_PrivateKey::private_key_bits_with_format
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Kyber_PrivateKey::private_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:263,1
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:270,1
    - Dst: PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:270,1
    - Dst: PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 274
    functionName: Botan::Kyber_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - KEM_Encapsulation::destructure
    - Botan::Kyber_PublicKey::check_key
    - PK_KEM_Decryptor::decrypt
    - PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: bool
    signature: bool Kyber_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:278,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:280,1
    - Dst: std::make_unique<Kyber_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:281,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:286,1
    - Dst: std::make_unique<ML_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:287,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:291,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:293,1
    - Dst: Botan::Kyber_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: Botan::Kyber_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Kyber_KEM_Encryptor>
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_PublicKey::mode
    - Provider_Not_Found
    - std::make_unique<ML_KEM_Encryptor>
    - Botan::Kyber_PublicKey::algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> Kyber_PublicKey::create_kem_encryption_op(std::string_view
      params,\n                                                                                  std::string_view
      provider) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:299,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:300,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:302,1
    - Dst: std::make_unique<Kyber_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:303,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:308,1
    - Dst: std::make_unique<ML_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:309,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:313,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:315,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 316
    functionName: Botan::Kyber_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - mode
    - std::make_unique<Kyber_KEM_Decryptor>
    - BOTAN_ASSERT_UNREACHABLE
    - algo_name
    - BOTAN_UNUSED
    - std::make_unique<ML_KEM_Decryptor>
    - Provider_Not_Found
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> Kyber_PrivateKey::create_kem_decryption_op(RandomNumberGenerator&
      rng,\n                                                                                   std::string_view
      params,\n                                                                                   std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:319,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:319,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: Botan::Kyber_PrivateKey::private_key_format
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - mode
    - seed
    - has_value
    linkageType: ''
    returnType: MlPrivateKeyFormat
    signature: MlPrivateKeyFormat Kyber_PrivateKey::private_key_format() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PrivateKey::private_key_format
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:326,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:327,1
    - Dst: std::make_unique<Seed_Expanding_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:332,1
    - Dst: std::make_unique<Expanded_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:334,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:336,1
    - Dst: auto::encode_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - format
    argTypes:
    - MlPrivateKeyFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 339
    functionName: Botan::Kyber_PrivateKey::private_key_bits_with_format
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_PrivateKey::private_key_format
    - std::make_unique<Expanded_Keypair_Codec>
    - auto::encode_keypair
    - std::make_unique<Seed_Expanding_Keypair_Codec>
    - Encoding_Error
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Kyber_PrivateKey::private_key_bits_with_format(MlPrivateKeyFormat
      format) const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:71,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: Botan::kyber_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: KyberMode::Mode
    signature: KyberMode::Mode kyber_mode_from_string(std::string_view str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:71,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: Botan::kyber_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: KyberMode::Mode
    signature: KyberMode::Mode kyber_mode_from_string(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mode
    argTypes:
    - Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::KyberMode::KyberMode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberMode::KyberMode(Mode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kyber_mode_from_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:78,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::KyberMode::KyberMode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 10
    functionsReached:
    - to_formatted_string
    - kyber_mode_from_string
    linkageType: ''
    returnType: void
    signature: void KyberMode::KyberMode(const OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kyber_mode_from_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: Botan::KyberMode::KyberMode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 10
    functionsReached:
    - kyber_mode_from_string
    linkageType: ''
    returnType: void
    signature: void KyberMode::KyberMode(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:83,1
    - Dst: Botan::KyberMode::to_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan::KyberMode::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - Botan::KyberMode::to_string
    linkageType: ''
    returnType: OID
    signature: OID KyberMode::object_identifier() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 109
    functionName: Botan::KyberMode::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::string
    signature: std::string KyberMode::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: Botan::KyberMode::is_90s
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KyberMode::is_90s() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::is_90s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: Botan::KyberMode::is_modern
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - Botan::KyberMode::is_90s
    linkageType: ''
    returnType: bool
    signature: bool KyberMode::is_modern() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: Botan::KyberMode::is_ml_kem
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KyberMode::is_ml_kem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: Botan::KyberMode::is_kyber_round3
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KyberMode::is_kyber_round3() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:130,1
    - Dst: Botan::KyberMode::is_modern
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:130,1
    - Dst: Botan::KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:136,1
    - Dst: Botan::KyberMode::is_90s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:136,1
    - Dst: Botan::KyberMode::is_ml_kem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: Botan::KyberMode::is_available
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - Botan::KyberMode::is_modern
    - Botan::KyberMode::is_kyber_round3
    - Botan::KyberMode::is_90s
    - Botan::KyberMode::is_ml_kem
    linkageType: ''
    returnType: bool
    signature: bool KyberMode::is_available() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Botan::Kyber_PublicKey::mode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 10
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    linkageType: ''
    returnType: KyberMode
    signature: KyberMode Kyber_PublicKey::mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Botan::Kyber_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    linkageType: ''
    returnType: std::string
    signature: std::string Kyber_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:163,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: Botan::Kyber_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Kyber_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: Botan::Kyber_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    linkageType: ''
    returnType: OID
    signature: OID Kyber_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: Botan::Kyber_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    linkageType: ''
    returnType: size_t
    signature: size_t Kyber_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KyberMode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:175,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: Botan::Kyber_PublicKey::Kyber_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - KyberMode
    - oid
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKey::Kyber_PublicKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:178,1
    - Dst: KyberSerializedPublicKey
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pub_key
    - mode
    argTypes:
    - std::span<const uint8_t>
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: Botan::Kyber_PublicKey::Kyber_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - std::make_shared<Kyber_PublicKeyInternal>
    - KyberSerializedPublicKey
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKey::Kyber_PublicKey(std::span<const uint8_t> pub_key,
      KyberMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:182,1
    - Dst: m_public::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:183,1
    - Dst: m_public::t
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:183,1
    - Dst: m_public::rho
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Kyber_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Botan::Kyber_PublicKey::Kyber_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - m_public::rho
    - m_public::mode
    - m_public::t
    - std::make_shared<Kyber_PublicKeyInternal>
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKey::Kyber_PublicKey(const Kyber_PublicKey& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: Botan::Kyber_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - public_key_bits_raw
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Kyber_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: Botan::Kyber_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Kyber_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: Botan::Kyber_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    linkageType: ''
    returnType: size_t
    signature: size_t Kyber_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:205,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:206,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:206,1
    - Dst: public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:208,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    - Dst: std::equal
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: Botan::Kyber_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    - std::equal
    - Botan::Kyber_Algos::encode_polynomial_vector
    - std::vector::end
    - public_key_bits_raw
    - begin
    - size
    - std::vector::begin
    - t
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: bool Kyber_PublicKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Kyber_PrivateKey>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:213,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: Botan::Kyber_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey::mode
    - std::make_unique<Kyber_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Kyber_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:220,1
    - Dst: Botan::Kyber_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:221,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:221,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - mode
    argTypes:
    - RandomNumberGenerator
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: Botan::Kyber_PrivateKey::Kyber_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - Botan::Kyber_Algos::expand_keypair
    - random_vec
    - std::tie
    linkageType: ''
    returnType: void
    signature: void Kyber_PrivateKey::Kyber_PrivateKey(RandomNumberGenerator& rng,
      KyberMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KyberMode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:227,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: Botan::Kyber_PrivateKey::Kyber_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - KyberMode
    - oid
    linkageType: ''
    returnType: void
    signature: void Kyber_PrivateKey::Kyber_PrivateKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> key_bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: KyberConstants::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:232,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:232,1
    - Dst: KyberConstants::seed_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:232,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:233,1
    - Dst: Seed_Expanding_Keypair_Codec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:233,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:233,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:234,1
    - Dst: KyberConstants::expanded_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:234,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:235,1
    - Dst: Expanded_Keypair_Codec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:235,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:235,1
    - Dst: KyberConstants::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:236,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:236,1
    - Dst: KyberConstants::seed_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:236,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:237,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:239,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - sk
    - m
    argTypes:
    - std::span<const uint8_t>
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 241
    functionName: Botan::Kyber_PrivateKey::Kyber_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - Invalid_Argument
    - std::tie
    - std::move
    - KyberConstants::expanded_private_key_bytes
    - KyberConstants::mode
    - Expanded_Keypair_Codec
    - std::span<const uint8_t>::size
    - KyberConstants::seed_private_key_bytes
    - Seed_Expanding_Keypair_Codec
    linkageType: ''
    returnType: void
    signature: void Kyber_PrivateKey::Kyber_PrivateKey(std::span<const uint8_t> sk,
      KyberMode m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Kyber_PublicKey>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Botan::Kyber_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Kyber_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> Kyber_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PrivateKey::private_key_bits
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: Botan::Kyber_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PrivateKey::private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Kyber_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PrivateKey::private_key_bits_with_format
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:252,1
    - Dst: Botan::Kyber_PrivateKey::private_key_format
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: Botan::Kyber_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 3
    functionsReached:
    - Botan::Kyber_PrivateKey::private_key_format
    - Botan::Kyber_PrivateKey::private_key_bits_with_format
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Kyber_PrivateKey::private_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:263,1
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:270,1
    - Dst: PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:270,1
    - Dst: PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 274
    functionName: Botan::Kyber_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - KEM_Encapsulation::destructure
    - Botan::Kyber_PublicKey::check_key
    - PK_KEM_Decryptor::decrypt
    - PK_KEM_Encryptor::encrypt
    linkageType: ''
    returnType: bool
    signature: bool Kyber_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:278,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:280,1
    - Dst: std::make_unique<Kyber_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:281,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:286,1
    - Dst: std::make_unique<ML_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:287,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:291,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:293,1
    - Dst: Botan::Kyber_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: Botan::Kyber_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Kyber_KEM_Encryptor>
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_PublicKey::mode
    - Provider_Not_Found
    - std::make_unique<ML_KEM_Encryptor>
    - Botan::Kyber_PublicKey::algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> Kyber_PublicKey::create_kem_encryption_op(std::string_view
      params,\n                                                                                  std::string_view
      provider) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:299,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:300,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:302,1
    - Dst: std::make_unique<Kyber_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:303,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:308,1
    - Dst: std::make_unique<ML_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:309,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:313,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:315,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 316
    functionName: Botan::Kyber_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - mode
    - std::make_unique<Kyber_KEM_Decryptor>
    - BOTAN_ASSERT_UNREACHABLE
    - algo_name
    - BOTAN_UNUSED
    - std::make_unique<ML_KEM_Decryptor>
    - Provider_Not_Found
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> Kyber_PrivateKey::create_kem_decryption_op(RandomNumberGenerator&
      rng,\n                                                                                   std::string_view
      params,\n                                                                                   std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:319,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:319,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: Botan::Kyber_PrivateKey::private_key_format
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 3
    functionsReached:
    - mode
    - seed
    - has_value
    linkageType: ''
    returnType: MlPrivateKeyFormat
    signature: MlPrivateKeyFormat Kyber_PrivateKey::private_key_format() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PrivateKey::private_key_format
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:326,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:327,1
    - Dst: std::make_unique<Seed_Expanding_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:332,1
    - Dst: std::make_unique<Expanded_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:334,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:336,1
    - Dst: auto::encode_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - format
    argTypes:
    - MlPrivateKeyFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 339
    functionName: Botan::Kyber_PrivateKey::private_key_bits_with_format
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_PrivateKey::private_key_format
    - std::make_unique<Expanded_Keypair_Codec>
    - auto::encode_keypair
    - std::make_unique<Seed_Expanding_Keypair_Codec>
    - Encoding_Error
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Kyber_PrivateKey::private_key_bits_with_format(MlPrivateKeyFormat
      format) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: ~Kyber_Keypair_Codec()
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Kyber_Keypair_Codec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ciphertext_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:58,1
    - Dst: Botan::Kyber_PublicKeyInternal::indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' m'
    - ' r'
    - ' At'
    - ' mode'
    argTypes:
    - KyberMessage
    - KyberEncryptionRandomness
    - KyberPolyMat
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: Botan::Kyber_PublicKeyInternal::indcpa_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 1
    functionsReached:
    - ciphertext_bytes
    - Botan::Kyber_PublicKeyInternal::indcpa_encrypt
    linkageType: ''
    returnType: KyberCompressedCiphertext
    signature: "KyberCompressedCiphertext indcpa_encrypt(const KyberMessage& m,\n
      \                                              const KyberEncryptionRandomness&
      r,\n                                               const KyberPolyMat& At,\n
      \                                              const KyberConstants& mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& t() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberPolyVecNTT
    signature: KyberPolyVecNTT & t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& rho() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberSeedRho
    signature: KyberSeedRho & rho() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& mode() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& public_key_bits_raw() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberSerializedPublicKey
    signature: KyberSerializedPublicKey & public_key_bits_raw() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: '& H_public_key_bits_raw() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberHashedPublicKey
    signature: KyberHashedPublicKey & H_public_key_bits_raw() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::Kyber_PublicKeyInternal::Kyber_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKeyInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:86,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:86,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mode
    - s
    - seed
    argTypes:
    - KyberConstants
    - KyberPolyVecNTT
    - KyberPrivateKeySeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: Botan::Kyber_PrivateKeyInternal::Kyber_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Kyber_PrivateKeyInternal(KyberConstants mode, KyberPolyVecNTT
      s, KyberPrivateKeySeed seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: '& s()'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberPolyVecNTT
    signature: KyberPolyVecNTT & s()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: '& s() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberPolyVecNTT
    signature: KyberPolyVecNTT & s() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: '& seed() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberPrivateKeySeed
    signature: KyberPrivateKeySeed & seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: '& z() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberImplicitRejectionValue
    signature: KyberImplicitRejectionValue & z() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: '& mode() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan::Kyber_PrivateKeyInternal::Kyber_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Kyber_PrivateKeyInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan::Kyber_PrivateKeyInternal::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached:
    - Botan::CT::poison_all
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::Kyber_PrivateKeyInternal::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: ~Kyber_Keypair_Codec()
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Kyber_Keypair_Codec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ciphertext_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:58,1
    - Dst: Botan::Kyber_PublicKeyInternal::indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' m'
    - ' r'
    - ' At'
    - ' mode'
    argTypes:
    - KyberMessage
    - KyberEncryptionRandomness
    - KyberPolyMat
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: Botan::Kyber_PublicKeyInternal::indcpa_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 2
    functionsReached:
    - ciphertext_bytes
    - Botan::Kyber_PublicKeyInternal::indcpa_encrypt
    linkageType: ''
    returnType: KyberCompressedCiphertext
    signature: "KyberCompressedCiphertext indcpa_encrypt(const KyberMessage& m,\n
      \                                              const KyberEncryptionRandomness&
      r,\n                                               const KyberPolyMat& At,\n
      \                                              const KyberConstants& mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& t() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberPolyVecNTT
    signature: KyberPolyVecNTT & t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& rho() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberSeedRho
    signature: KyberSeedRho & rho() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: '& mode() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& public_key_bits_raw() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberSerializedPublicKey
    signature: KyberSerializedPublicKey & public_key_bits_raw() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: '& H_public_key_bits_raw() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberHashedPublicKey
    signature: KyberHashedPublicKey & H_public_key_bits_raw() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::Kyber_PublicKeyInternal::Kyber_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKeyInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:86,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:86,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mode
    - s
    - seed
    argTypes:
    - KyberConstants
    - KyberPolyVecNTT
    - KyberPrivateKeySeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: Botan::Kyber_PrivateKeyInternal::Kyber_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Kyber_PrivateKeyInternal(KyberConstants mode, KyberPolyVecNTT
      s, KyberPrivateKeySeed seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: '& s()'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberPolyVecNTT
    signature: KyberPolyVecNTT & s()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: '& s() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberPolyVecNTT
    signature: KyberPolyVecNTT & s() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: '& seed() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberPrivateKeySeed
    signature: KyberPrivateKeySeed & seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: '& z() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberImplicitRejectionValue
    signature: KyberImplicitRejectionValue & z() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: '& mode() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan::Kyber_PrivateKeyInternal::Kyber_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Kyber_PrivateKeyInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan::Kyber_PrivateKeyInternal::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached:
    - Botan::CT::poison_all
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::Kyber_PrivateKeyInternal::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: ~Kyber_Symmetric_Primitives()
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Kyber_Symmetric_Primitives()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - StrongSpan<const KyberMessage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_H
    linkageType: ''
    returnType: KyberMessage
    signature: KyberMessage H(StrongSpan<const KyberMessage> m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_H
    linkageType: ''
    returnType: KyberHashedCiphertext
    signature: KyberHashedCiphertext H(StrongSpan<const KyberCompressedCiphertext>
      r) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk
    argTypes:
    - StrongSpan<const KyberSerializedPublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_H
    linkageType: ''
    returnType: KyberHashedPublicKey
    signature: KyberHashedPublicKey H(StrongSpan<const KyberSerializedPublicKey> pk)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: seed_expansion_domain_separator
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:46,1
    - Dst: Botan::Kyber_Symmetric_Primitives::G_split
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:47,1
    - Dst: Botan::Kyber_Symmetric_Primitives::G_split
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - seed
    - ' mode'
    argTypes:
    - StrongSpan<const KyberSeedRandomness>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: Botan::Kyber_Symmetric_Primitives::G
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - seed_expansion_domain_separator
    - Botan::Kyber_Symmetric_Primitives::G_split
    linkageType: ''
    returnType: std::pair<KyberSeedRho, KyberSeedSigma>
    signature: "std::pair<KyberSeedRho, KyberSeedSigma> G(StrongSpan<const KyberSeedRandomness>
      seed,\n                                                const KyberConstants&
      mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Symmetric_Primitives::G_split
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - pubkey_hash
    argTypes:
    - StrongSpan<const KyberMessage>
    - StrongSpan<const KyberHashedPublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::Kyber_Symmetric_Primitives::G
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Symmetric_Primitives::G_split
    linkageType: ''
    returnType: std::pair<KyberSharedSecret, KyberEncryptionRandomness>
    signature: "std::pair<KyberSharedSecret, KyberEncryptionRandomness> G(\n         StrongSpan<const
      KyberMessage> msg, StrongSpan<const KyberHashedPublicKey> pubkey_hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_J
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:60,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:61,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:62,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - rejection_value
    - ciphertext
    argTypes:
    - StrongSpan<const KyberImplicitRejectionValue>
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Botan::Kyber_Symmetric_Primitives::J
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_J
    - auto::update
    - auto::final
    linkageType: ''
    returnType: KyberSharedSecret
    signature: "KyberSharedSecret J(StrongSpan<const KyberImplicitRejectionValue>
      rejection_value,\n                          StrongSpan<const KyberCompressedCiphertext>
      ciphertext) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_KDF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:70,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:71,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:72,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - shared_secret
    - hashed_ciphertext
    argTypes:
    - StrongSpan<KyberSharedSecret>
    - StrongSpan<const KyberSharedSecret>
    - StrongSpan<const KyberHashedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: Botan::Kyber_Symmetric_Primitives::KDF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_KDF
    - auto::update
    - auto::final
    linkageType: ''
    returnType: void
    signature: "void KDF(StrongSpan<KyberSharedSecret> out,\n               StrongSpan<const
      KyberSharedSecret> shared_secret,\n               StrongSpan<const KyberHashedCiphertext>
      hashed_ciphertext) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:79,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:79,1
    - Dst: create_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - seed
    - nonce
    - outlen
    argTypes:
    - KyberSigmaOrEncryptionRandomness
    - uint8_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: Botan::Kyber_Symmetric_Primitives::PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - std::visit
    - get
    - create_PRF
    linkageType: ''
    returnType: KyberSamplingRandomness
    signature: "KyberSamplingRandomness PRF(KyberSigmaOrEncryptionRandomness seed,\n
      \                                 const uint8_t nonce,\n                                  const
      size_t outlen) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:88,1
    - Dst: init_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - matrix_position
    argTypes:
    - std::unique_ptr<Botan::XOF>
    - StrongSpan<const KyberSeedRho>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: Botan::Kyber_Symmetric_Primitives::setup_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_XOF
    - init_XOF
    linkageType: ''
    returnType: void
    signature: "void setup_XOF(std::unique_ptr<Botan::XOF>& xof,\n                     StrongSpan<const
      KyberSeedRho> seed,\n                     std::tuple<uint8_t, uint8_t> matrix_position)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:97,1
    - Dst: init_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - std::unique_ptr<Botan::XOF>
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: Botan::Kyber_Symmetric_Primitives::setup_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - init_PRF
    - create_PRF
    linkageType: ''
    returnType: void
    signature: void setup_PRF(std::unique_ptr<Botan::XOF>& xof, std::span<const uint8_t>
      seed, uint8_t nonce) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_G
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:108,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:109,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:110,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:114,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:115,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:116,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: Botan::Kyber_Symmetric_Primitives::G_split
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 2
    functionsReached:
    - BufferSlicer::copy
    - auto::update
    - auto::final
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - create_G
    linkageType: ''
    returnType: std::pair<T1, T2>
    signature: std::pair<T1, T2> G_split(const InputTs&... inputs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: ~Kyber_Symmetric_Primitives()
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Kyber_Symmetric_Primitives()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - StrongSpan<const KyberMessage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_H
    linkageType: ''
    returnType: KyberMessage
    signature: KyberMessage H(StrongSpan<const KyberMessage> m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_H
    linkageType: ''
    returnType: KyberHashedCiphertext
    signature: KyberHashedCiphertext H(StrongSpan<const KyberCompressedCiphertext>
      r) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk
    argTypes:
    - StrongSpan<const KyberSerializedPublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_H
    linkageType: ''
    returnType: KyberHashedPublicKey
    signature: KyberHashedPublicKey H(StrongSpan<const KyberSerializedPublicKey> pk)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: seed_expansion_domain_separator
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:46,1
    - Dst: Botan::Kyber_Symmetric_Primitives::G_split
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:47,1
    - Dst: Botan::Kyber_Symmetric_Primitives::G_split
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - seed
    - ' mode'
    argTypes:
    - StrongSpan<const KyberSeedRandomness>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: Botan::Kyber_Symmetric_Primitives::G
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - seed_expansion_domain_separator
    - Botan::Kyber_Symmetric_Primitives::G_split
    linkageType: ''
    returnType: std::pair<KyberSeedRho, KyberSeedSigma>
    signature: "std::pair<KyberSeedRho, KyberSeedSigma> G(StrongSpan<const KyberSeedRandomness>
      seed,\n                                                const KyberConstants&
      mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Symmetric_Primitives::G_split
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - pubkey_hash
    argTypes:
    - StrongSpan<const KyberMessage>
    - StrongSpan<const KyberHashedPublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::Kyber_Symmetric_Primitives::G
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Symmetric_Primitives::G_split
    linkageType: ''
    returnType: std::pair<KyberSharedSecret, KyberEncryptionRandomness>
    signature: "std::pair<KyberSharedSecret, KyberEncryptionRandomness> G(\n         StrongSpan<const
      KyberMessage> msg, StrongSpan<const KyberHashedPublicKey> pubkey_hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_J
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:60,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:61,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:62,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - rejection_value
    - ciphertext
    argTypes:
    - StrongSpan<const KyberImplicitRejectionValue>
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Botan::Kyber_Symmetric_Primitives::J
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_J
    - auto::update
    - auto::final
    linkageType: ''
    returnType: KyberSharedSecret
    signature: "KyberSharedSecret J(StrongSpan<const KyberImplicitRejectionValue>
      rejection_value,\n                          StrongSpan<const KyberCompressedCiphertext>
      ciphertext) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_KDF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:70,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:71,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:72,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - shared_secret
    - hashed_ciphertext
    argTypes:
    - StrongSpan<KyberSharedSecret>
    - StrongSpan<const KyberSharedSecret>
    - StrongSpan<const KyberHashedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: Botan::Kyber_Symmetric_Primitives::KDF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_KDF
    - auto::update
    - auto::final
    linkageType: ''
    returnType: void
    signature: "void KDF(StrongSpan<KyberSharedSecret> out,\n               StrongSpan<const
      KyberSharedSecret> shared_secret,\n               StrongSpan<const KyberHashedCiphertext>
      hashed_ciphertext) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:79,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:79,1
    - Dst: create_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - seed
    - nonce
    - outlen
    argTypes:
    - KyberSigmaOrEncryptionRandomness
    - uint8_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: Botan::Kyber_Symmetric_Primitives::PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - std::visit
    - get
    - create_PRF
    linkageType: ''
    returnType: KyberSamplingRandomness
    signature: "KyberSamplingRandomness PRF(KyberSigmaOrEncryptionRandomness seed,\n
      \                                 const uint8_t nonce,\n                                  const
      size_t outlen) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:88,1
    - Dst: init_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - matrix_position
    argTypes:
    - std::unique_ptr<Botan::XOF>
    - StrongSpan<const KyberSeedRho>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: Botan::Kyber_Symmetric_Primitives::setup_XOF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - create_XOF
    - init_XOF
    linkageType: ''
    returnType: void
    signature: "void setup_XOF(std::unique_ptr<Botan::XOF>& xof,\n                     StrongSpan<const
      KyberSeedRho> seed,\n                     std::tuple<uint8_t, uint8_t> matrix_position)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:97,1
    - Dst: init_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - std::unique_ptr<Botan::XOF>
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: Botan::Kyber_Symmetric_Primitives::setup_PRF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - init_PRF
    - create_PRF
    linkageType: ''
    returnType: void
    signature: void setup_PRF(std::unique_ptr<Botan::XOF>& xof, std::span<const uint8_t>
      seed, uint8_t nonce) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_G
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:108,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:109,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:110,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:114,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:115,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:116,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: Botan::Kyber_Symmetric_Primitives::G_split
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 4
    functionsReached:
    - BufferSlicer::copy
    - auto::update
    - auto::final
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - create_G
    linkageType: ''
    returnType: std::pair<T1, T2>
    signature: std::pair<T1, T2> G_split(const InputTs&... inputs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:49,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' vec'
    - ' mode'
    argTypes:
    - KyberPolyVecNTT
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: Botan::Kyber_Algos::encode_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 3
    functionsReached:
    - Botan::Kyber_Algos::encode_polynomial_vector
    - polynomial_vector_bytes
    linkageType: ''
    returnType: T
    signature: T encode_polynomial_vector(const KyberPolyVecNTT& vec, const KyberConstants&
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - seed
    - ' mode'
    argTypes:
    - StrongSpan<const SeedT>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: Botan::Kyber_Algos::PolynomialSampler::PolynomialSampler
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolynomialSampler(StrongSpan<const SeedT> seed, const KyberConstants&
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:68,1
    - Dst: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:70,1
    - Dst: eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached:
    - eta1
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    - k
    linkageType: ''
    returnType: KyberPolyVec
    signature: KyberPolyVec sample_polynomial_vector_cbd_eta1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:79,1
    - Dst: eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    - eta2
    linkageType: ''
    returnType: KyberPoly
    signature: "KyberPoly sample_polynomial_cbd_eta2()\n         requires std::same_as<KyberEncryptionRandomness,
      SeedT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:86,1
    - Dst: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:88,1
    - Dst: eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta2
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    - k
    - eta2
    linkageType: ''
    returnType: KyberPolyVec
    signature: "KyberPolyVec sample_polynomial_vector_cbd_eta2()\n         requires
      std::same_as<KyberEncryptionRandomness, SeedT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:95,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:96,1
    - Dst: setup_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:97,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: Botan::Kyber_Algos::PolynomialSampler::prf
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached:
    - output
    - symmetric_primitives
    - get
    - setup_PRF
    linkageType: ''
    returnType: KyberSamplingRandomness
    signature: KyberSamplingRandomness prf(size_t bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::PolynomialSampler::prf
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:105,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:105,1
    - Dst: Botan::Kyber_Algos::PolynomialSampler::prf
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:107,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:107,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:110,1
    - Dst: sample_polynomial_from_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' poly'
    - eta
    argTypes:
    - KyberPoly
    - KyberConstants::KyberEta
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 114
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 3
    functionsReached:
    - sample_polynomial_from_cbd
    - Botan::Kyber_Algos::PolynomialSampler::prf
    - size
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void sample_poly_cbd(KyberPoly& poly, KyberConstants::KyberEta eta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:49,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' vec'
    - ' mode'
    argTypes:
    - KyberPolyVecNTT
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: Botan::Kyber_Algos::encode_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 4
    functionsReached:
    - Botan::Kyber_Algos::encode_polynomial_vector
    - polynomial_vector_bytes
    linkageType: ''
    returnType: T
    signature: T encode_polynomial_vector(const KyberPolyVecNTT& vec, const KyberConstants&
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - seed
    - ' mode'
    argTypes:
    - StrongSpan<const SeedT>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: Botan::Kyber_Algos::PolynomialSampler::PolynomialSampler
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolynomialSampler(StrongSpan<const SeedT> seed, const KyberConstants&
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:68,1
    - Dst: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:70,1
    - Dst: eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached:
    - eta1
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    - k
    linkageType: ''
    returnType: KyberPolyVec
    signature: KyberPolyVec sample_polynomial_vector_cbd_eta1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:79,1
    - Dst: eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    - eta2
    linkageType: ''
    returnType: KyberPoly
    signature: "KyberPoly sample_polynomial_cbd_eta2()\n         requires std::same_as<KyberEncryptionRandomness,
      SeedT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:86,1
    - Dst: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:88,1
    - Dst: eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta2
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    - k
    - eta2
    linkageType: ''
    returnType: KyberPolyVec
    signature: "KyberPolyVec sample_polynomial_vector_cbd_eta2()\n         requires
      std::same_as<KyberEncryptionRandomness, SeedT>"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:95,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:96,1
    - Dst: setup_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:97,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: Botan::Kyber_Algos::PolynomialSampler::prf
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 1
    functionsReached:
    - output
    - symmetric_primitives
    - get
    - setup_PRF
    linkageType: ''
    returnType: KyberSamplingRandomness
    signature: KyberSamplingRandomness prf(size_t bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::PolynomialSampler::prf
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:105,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:105,1
    - Dst: Botan::Kyber_Algos::PolynomialSampler::prf
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:107,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:107,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:110,1
    - Dst: sample_polynomial_from_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' poly'
    - eta
    argTypes:
    - KyberPoly
    - KyberConstants::KyberEta
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 114
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 6
    functionsReached:
    - sample_polynomial_from_cbd
    - Botan::Kyber_Algos::PolynomialSampler::prf
    - size
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void sample_poly_cbd(KyberPoly& poly, KyberConstants::KyberEta eta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t, 3>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::Kyber_Algos::load_le3
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h
    functionUses: 0
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t load_le3(std::span<const uint8_t, 3> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:34,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:35,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:49,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - KyberConstants::T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: Botan::Kyber_Algos::compress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - BOTAN_DEBUG_ASSERT
    - static_cast<unsigned_T>
    linkageType: ''
    returnType: std::make_unsigned_t<KyberConstants::T>
    signature: std::make_unsigned_t<KyberConstants::T> compress(KyberConstants::T
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:65,1
    - Dst: static_cast<KyberConstants::T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:69,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::make_unsigned_t<KyberConstants::T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: Botan::Kyber_Algos::decompress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h
    functionUses: 0
    functionsReached:
    - static_cast<KyberConstants::T>
    - static_cast<uint32_t>
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: KyberConstants::T
    signature: KyberConstants::T decompress(std::make_unsigned_t<KyberConstants::T>
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t, 3>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::Kyber_Algos::load_le3
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h
    functionUses: 0
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t load_le3(std::span<const uint8_t, 3> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:34,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:35,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:49,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - KyberConstants::T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: Botan::Kyber_Algos::compress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - BOTAN_DEBUG_ASSERT
    - static_cast<unsigned_T>
    linkageType: ''
    returnType: std::make_unsigned_t<KyberConstants::T>
    signature: std::make_unsigned_t<KyberConstants::T> compress(KyberConstants::T
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:65,1
    - Dst: static_cast<KyberConstants::T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:69,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::make_unsigned_t<KyberConstants::T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: Botan::Kyber_Algos::decompress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_helpers.h
    functionUses: 0
    functionsReached:
    - static_cast<KyberConstants::T>
    - static_cast<uint32_t>
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: KyberConstants::T
    signature: KyberConstants::T decompress(std::make_unsigned_t<KyberConstants::T>
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:30,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:30,1
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:31,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - T2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: Botan::KyberPolyTraits::montgomery_reduce_coefficient
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h
    functionUses: 0
    functionsReached:
    - static_cast<T2>
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T montgomery_reduce_coefficient(T2 a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:39,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: Botan::KyberPolyTraits::barrett_reduce_coefficient
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h
    functionUses: 0
    functionsReached:
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T barrett_reduce_coefficient(T a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:56,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:57,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:58,1
    - Dst: barrett_reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: Botan::KyberPolyTraits::ntt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    - barrett_reduce
    - static_cast<T>
    linkageType: ''
    returnType: void
    signature: void ntt(std::span<T, N> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberPolyTraits::barrett_reduce_coefficient
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:83,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:83,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:84,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:84,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: Botan::KyberPolyTraits::inverse_ntt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    - Botan::KyberPolyTraits::barrett_reduce_coefficient
    - static_cast<T>
    linkageType: ''
    returnType: void
    signature: void inverse_ntt(std::span<T, N> p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:107,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:107,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:107,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:107,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:108,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:108,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:108,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:111,1
    - Dst: Tq_elem_count
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:121,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:123,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:124,1
    - Dst: basemul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:124,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:124,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:124,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:125,1
    - Dst: basemul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:125,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:125,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - result
    - lhs
    - rhs
    argTypes:
    - std::span<T, N>
    - std::span<const T, N>
    - std::span<const T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 127
    functionName: Botan::KyberPolyTraits::poly_pointwise_montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    - static_cast<T>
    - basemul
    - size
    - Tq_elem
    - Tq_elem_count
    linkageType: ''
    returnType: void
    signature: "void poly_pointwise_montgomery(std::span<T, N> result,\n                                                      std::span<const
      T, N> lhs,\n                                                      std::span<const
      T, N> rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:30,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:30,1
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:31,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - T2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: Botan::KyberPolyTraits::montgomery_reduce_coefficient
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h
    functionUses: 0
    functionsReached:
    - static_cast<T2>
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T montgomery_reduce_coefficient(T2 a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:39,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: Botan::KyberPolyTraits::barrett_reduce_coefficient
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h
    functionUses: 1
    functionsReached:
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T barrett_reduce_coefficient(T a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:56,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:57,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:58,1
    - Dst: barrett_reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: Botan::KyberPolyTraits::ntt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    - barrett_reduce
    - static_cast<T>
    linkageType: ''
    returnType: void
    signature: void ntt(std::span<T, N> p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberPolyTraits::barrett_reduce_coefficient
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:83,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:83,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:84,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:84,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: Botan::KyberPolyTraits::inverse_ntt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    - Botan::KyberPolyTraits::barrett_reduce_coefficient
    - static_cast<T>
    linkageType: ''
    returnType: void
    signature: void inverse_ntt(std::span<T, N> p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:107,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:107,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:107,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:107,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:108,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:108,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:108,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:111,1
    - Dst: Tq_elem_count
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:121,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:123,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:124,1
    - Dst: basemul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:124,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:124,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:124,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:125,1
    - Dst: basemul
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:125,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:125,1
    - Dst: Tq_elem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - result
    - lhs
    - rhs
    argTypes:
    - std::span<T, N>
    - std::span<const T, N>
    - std::span<const T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 127
    functionName: Botan::KyberPolyTraits::poly_pointwise_montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    - static_cast<T>
    - basemul
    - size
    - Tq_elem
    - Tq_elem_count
    linkageType: ''
    returnType: void
    signature: "void poly_pointwise_montgomery(std::span<T, N> result,\n                                                      std::span<const
      T, N> lhs,\n                                                      std::span<const
      T, N> rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<(1 << d) - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::Kyber_Algos::poly_compress_and_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - CRYSTALS::pack<(1 << d) - 1>
    linkageType: ''
    returnType: void
    signature: void poly_compress_and_encode(BufferStuffer& bs, const KyberPoly& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<KyberConstants::Q - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPolyNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan::Kyber_Algos::byte_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - CRYSTALS::pack<KyberConstants::Q - 1>
    linkageType: ''
    returnType: void
    signature: void byte_encode(BufferStuffer& bs, const KyberPolyNTT& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<(1 << d) - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::Kyber_Algos::poly_decode_and_decompress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - CRYSTALS::unpack<(1 << d) - 1>
    linkageType: ''
    returnType: void
    signature: void poly_decode_and_decompress(KyberPoly& p, BufferSlicer& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<KyberConstants::Q - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:62,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:64,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPolyNTT
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: Botan::Kyber_Algos::byte_decode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - CRYSTALS::unpack<KyberConstants::Q - 1>
    - ct_validate_value_range
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void byte_decode(KyberPolyNTT& p, BufferSlicer& bs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:82,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:85,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:91,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:97,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:98,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:98,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:101,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:104,1
    - Dst: sample
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - KyberPolyNTT
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 114
    functionName: Botan::Kyber_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::load_le3
    - std::exchange
    - lowerthan_q
    - static_cast<uint16_t>
    - sample
    - Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - has_value
    linkageType: ''
    returnType: void
    signature: void sample_ntt_uniform(KyberPolyNTT& p, XOF& xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:133,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:134,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:134,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:151,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 152
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_le
    - size
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void sample_poly_cbd<KyberConstants::KyberEta::_2>(KyberPoly& poly,\n
      \                                                  StrongSpan<const KyberSamplingRandomness>
      randomness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:162,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:163,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:163,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:181,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 182
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::load_le3
    - size
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void sample_poly_cbd<KyberConstants::KyberEta::_3>(KyberPoly& poly,\n
      \                                                  StrongSpan<const KyberSamplingRandomness>
      randomness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<(1 << d) - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::Kyber_Algos::poly_compress_and_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - CRYSTALS::pack<(1 << d) - 1>
    linkageType: ''
    returnType: void
    signature: void poly_compress_and_encode(BufferStuffer& bs, const KyberPoly& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<KyberConstants::Q - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPolyNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan::Kyber_Algos::byte_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - CRYSTALS::pack<KyberConstants::Q - 1>
    linkageType: ''
    returnType: void
    signature: void byte_encode(BufferStuffer& bs, const KyberPolyNTT& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<(1 << d) - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::Kyber_Algos::poly_decode_and_decompress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - CRYSTALS::unpack<(1 << d) - 1>
    linkageType: ''
    returnType: void
    signature: void poly_decode_and_decompress(KyberPoly& p, BufferSlicer& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<KyberConstants::Q - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:62,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:64,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPolyNTT
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: Botan::Kyber_Algos::byte_decode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - CRYSTALS::unpack<KyberConstants::Q - 1>
    - ct_validate_value_range
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void byte_decode(KyberPolyNTT& p, BufferSlicer& bs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:82,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:85,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:91,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:97,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:98,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:98,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:101,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:104,1
    - Dst: sample
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - KyberPolyNTT
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 114
    functionName: Botan::Kyber_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::load_le3
    - std::exchange
    - lowerthan_q
    - static_cast<uint16_t>
    - sample
    - Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - has_value
    linkageType: ''
    returnType: void
    signature: void sample_ntt_uniform(KyberPolyNTT& p, XOF& xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:133,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:134,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:134,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:151,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 152
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_le
    - size
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void sample_poly_cbd<KyberConstants::KyberEta::_2>(KyberPoly& poly,\n
      \                                                  StrongSpan<const KyberSamplingRandomness>
      randomness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:162,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:163,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:163,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:181,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 182
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::load_le3
    - size
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void sample_poly_cbd<KyberConstants::KyberEta::_3>(KyberPoly& poly,\n
      \                                                  StrongSpan<const KyberSamplingRandomness>
      randomness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::byte_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:189,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:191,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - ' vec'
    argTypes:
    - std::span<uint8_t>
    - KyberPolyVecNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: Botan::Kyber_Algos::encode_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 4
    functionsReached:
    - BufferStuffer::full
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::byte_encode
    linkageType: ''
    returnType: void
    signature: void encode_polynomial_vector(std::span<uint8_t> out, const KyberPolyVecNTT&
      vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:195,1
    - Dst: Botan::Kyber_Algos::byte_decode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:199,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:201,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 204
    functionName: Botan::Kyber_Algos::decode_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::byte_decode
    - k
    linkageType: ''
    returnType: KyberPolyVecNTT
    signature: KyberPolyVecNTT decode_polynomial_vector(std::span<const uint8_t> a,
      const KyberConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:207,1
    - Dst: StrongSpan<const KyberMessage>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:207,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - StrongSpan<const KyberMessage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: Botan::Kyber_Algos::polynomial_from_message
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - StrongSpan<const KyberMessage>::size
    linkageType: ''
    returnType: KyberPoly
    signature: KyberPoly polynomial_from_message(StrongSpan<const KyberMessage> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:215,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: Botan::Kyber_Algos::polynomial_to_message
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - size
    - Botan::Kyber_Algos::poly_compress_and_encode
    linkageType: ''
    returnType: KyberMessage
    signature: KyberMessage polynomial_to_message(const KyberPoly& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' sink'
    - ' polyvec'
    argTypes:
    - BufferStuffer
    - KyberPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: Botan::Kyber_Algos::polyvec_compress_and_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::poly_compress_and_encode
    linkageType: ''
    returnType: void
    signature: void polyvec_compress_and_encode(BufferStuffer& sink, const KyberPolyVec&
      polyvec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:233,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:235,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:236,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:236,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:239,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:240,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:240,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - ' pv'
    - ' mode'
    argTypes:
    - std::span<uint8_t>
    - KyberPolyVec
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: Botan::Kyber_Algos::compress_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - d_u
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::polyvec_compress_and_encode
    linkageType: ''
    returnType: void
    signature: void compress_polyvec(std::span<uint8_t> out, const KyberPolyVec& pv,
      const KyberConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:250,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:253,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:253,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:256,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:257,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:257,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - ' p'
    - ' mode'
    argTypes:
    - std::span<uint8_t>
    - KyberPoly
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 262
    functionName: Botan::Kyber_Algos::compress_poly
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::poly_compress_and_encode
    - d_v
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void compress_poly(std::span<uint8_t> out, const KyberPoly& p, const
      KyberConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' polyvec'
    - ' source'
    argTypes:
    - KyberPolyVec
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: Botan::Kyber_Algos::polyvec_decode_and_decompress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::poly_decode_and_decompress
    linkageType: ''
    returnType: void
    signature: void polyvec_decode_and_decompress(KyberPolyVec& polyvec, BufferSlicer&
      source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:275,1
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:278,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:280,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:281,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:281,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:284,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:285,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:285,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 290
    functionName: Botan::Kyber_Algos::decompress_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - polynomial_vector_compressed_bytes
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - k
    - Botan::Kyber_Algos::polyvec_decode_and_decompress
    - d_u
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: KyberPolyVec
    signature: KyberPolyVec decompress_polynomial_vector(std::span<const uint8_t>
      buffer, const KyberConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:298,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:300,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:301,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:301,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:304,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:305,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:305,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 310
    functionName: Botan::Kyber_Algos::decompress_polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - polynomial_compressed_bytes
    - d_v
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: KyberPoly
    signature: KyberPoly decompress_polynomial(std::span<const uint8_t> buffer, const
      KyberConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' sink'
    - ' polyvec'
    argTypes:
    - BufferStuffer
    - KyberPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: Botan::Kyber_Algos::polyvec_compress_and_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Kyber_Algos::poly_compress_and_encode
    linkageType: ''
    returnType: void
    signature: void polyvec_compress_and_encode(BufferStuffer& sink, const KyberPolyVec&
      polyvec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:233,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:235,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:236,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:236,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:239,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:240,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:240,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - ' pv'
    - ' mode'
    argTypes:
    - std::span<uint8_t>
    - KyberPolyVec
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: Botan::Kyber_Algos::compress_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - d_u
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::polyvec_compress_and_encode
    linkageType: ''
    returnType: void
    signature: void compress_polyvec(std::span<uint8_t> out, const KyberPolyVec& pv,
      const KyberConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:250,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:253,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:253,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:256,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:257,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:257,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - ' p'
    - ' mode'
    argTypes:
    - std::span<uint8_t>
    - KyberPoly
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 262
    functionName: Botan::Kyber_Algos::compress_poly
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::poly_compress_and_encode
    - d_v
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void compress_poly(std::span<uint8_t> out, const KyberPoly& p, const
      KyberConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' polyvec'
    - ' source'
    argTypes:
    - KyberPolyVec
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: Botan::Kyber_Algos::polyvec_decode_and_decompress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Kyber_Algos::poly_decode_and_decompress
    linkageType: ''
    returnType: void
    signature: void polyvec_decode_and_decompress(KyberPolyVec& polyvec, BufferSlicer&
      source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:275,1
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:278,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:280,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:281,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:281,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:284,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:285,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:285,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 290
    functionName: Botan::Kyber_Algos::decompress_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - polynomial_vector_compressed_bytes
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - k
    - Botan::Kyber_Algos::polyvec_decode_and_decompress
    - d_u
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: KyberPolyVec
    signature: KyberPolyVec decompress_polynomial_vector(std::span<const uint8_t>
      buffer, const KyberConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:298,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:300,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:301,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:301,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:304,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:305,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:305,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 310
    functionName: Botan::Kyber_Algos::decompress_polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - polynomial_compressed_bytes
    - d_v
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: KyberPoly
    signature: KyberPoly decompress_polynomial(std::span<const uint8_t> buffer, const
      KyberConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:324,1
    - Dst: KyberPrivateKeySeed::d::has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:324,1
    - Dst: KyberPrivateKeySeed::d::value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:325,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:327,1
    - Dst: KyberConstants::symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:328,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:329,1
    - Dst: Botan::Kyber_Algos::sample_matrix
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:333,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:337,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:337,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:338,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:338,1
    - Dst: montgomery
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:340,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:342,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:346,1
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:349,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:349,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:349,1
    - Dst: std::make_shared<Kyber_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:350,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:350,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:350,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - seed
    - mode
    argTypes:
    - KyberPrivateKeySeed
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 352
    functionName: Botan::Kyber_Algos::expand_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 2
    functionsReached:
    - Botan::CT::unpoison_all
    - KyberConstants::symmetric_primitives
    - ntt
    - auto::reduce
    - std::move
    - std::make_shared<Kyber_PrivateKeyInternal>
    - KyberPrivateKeySeed::d::value
    - BOTAN_ARG_CHECK
    - Botan::CT::poison
    - Botan::Kyber_Algos::sample_matrix
    - montgomery
    - std::make_shared<Kyber_PublicKeyInternal>
    - KyberPrivateKeySeed::d::has_value
    - Botan::CT::unpoison
    - Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
    linkageType: ''
    returnType: KyberInternalKeypair
    signature: KyberInternalKeypair expand_keypair(KyberPrivateKeySeed seed, KyberConstants
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::compress_polyvec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:359,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:359,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:359,1
    - Dst: Botan::Kyber_Algos::compress_poly
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:360,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:360,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:360,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:361,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - out
    - ' u'
    - ' v'
    - ' m_mode'
    argTypes:
    - StrongSpan<KyberCompressedCiphertext>
    - KyberPolyVec
    - KyberPoly
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 362
    functionName: Botan::Kyber_Algos::compress_ciphertext
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - polynomial_vector_compressed_bytes
    - BufferStuffer::next
    - polynomial_compressed_bytes
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::compress_poly
    - Botan::Kyber_Algos::compress_polyvec
    linkageType: ''
    returnType: void
    signature: "void compress_ciphertext(StrongSpan<KyberCompressedCiphertext> out,\n
      \                        const KyberPolyVec& u,\n                         const
      KyberPoly& v,\n                         const KyberConstants& m_mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:366,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:367,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:370,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:371,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:375,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:376,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:377,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:377,1
    - Dst: Botan::Kyber_Algos::decompress_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:379,1
    - Dst: Botan::Kyber_Algos::decompress_polynomial
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ct
    - ' mode'
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 380
    functionName: Botan::Kyber_Algos::decompress_ciphertext
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - polynomial_vector_compressed_bytes
    - Botan::Kyber_Algos::decompress_polynomial_vector
    - Decoding_Error
    - Botan::Kyber_Algos::decompress_polynomial
    - StrongSpan<const KyberCompressedCiphertext>::size
    - polynomial_compressed_bytes
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: std::pair<KyberPolyVec, KyberPoly>
    signature: "std::pair<KyberPolyVec, KyberPoly> decompress_ciphertext(StrongSpan<const
      KyberCompressedCiphertext> ct,\n                                                         const
      KyberConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:383,1
    - Dst: StrongSpan<const KyberSeedRho>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:383,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:385,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:385,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:387,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:390,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:391,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:392,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:392,1
    - Dst: setup_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:393,1
    - Dst: Botan::Kyber_Algos::sample_ntt_uniform
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - seed
    - transposed
    - ' mode'
    argTypes:
    - StrongSpan<const KyberSeedRho>
    - bool
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 399
    functionName: Botan::Kyber_Algos::sample_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - setup_XOF
    - StrongSpan<const KyberSeedRho>::size
    - BOTAN_ASSERT
    - k
    - Botan::Kyber_Algos::sample_ntt_uniform
    - symmetric_primitives
    - std::tuple
    linkageType: ''
    returnType: KyberPolyMat
    signature: KyberPolyMat sample_matrix(StrongSpan<const KyberSeedRho> seed, bool
      transposed, const KyberConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:412,1
    - Dst: Botan::Kyber_Algos::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:414,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' poly'
    - eta
    - ' randomness'
    argTypes:
    - KyberPoly
    - KyberConstants::KyberEta
    - KyberSamplingRandomness
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 418
    functionName: Botan::Kyber_Algos::sample_polynomial_from_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::sample_poly_cbd
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void sample_polynomial_from_cbd(KyberPoly& poly,\n                                KyberConstants::KyberEta
      eta,\n                                const KyberSamplingRandomness& randomness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<(1 << d) - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::Kyber_Algos::poly_compress_and_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 5
    functionsReached:
    - CRYSTALS::pack<(1 << d) - 1>
    linkageType: ''
    returnType: void
    signature: void poly_compress_and_encode(BufferStuffer& bs, const KyberPoly& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<KyberConstants::Q - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPolyNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan::Kyber_Algos::byte_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - CRYSTALS::pack<KyberConstants::Q - 1>
    linkageType: ''
    returnType: void
    signature: void byte_encode(BufferStuffer& bs, const KyberPolyNTT& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<(1 << d) - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::Kyber_Algos::poly_decode_and_decompress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 5
    functionsReached:
    - CRYSTALS::unpack<(1 << d) - 1>
    linkageType: ''
    returnType: void
    signature: void poly_decode_and_decompress(KyberPoly& p, BufferSlicer& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<KyberConstants::Q - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:62,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:64,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPolyNTT
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: Botan::Kyber_Algos::byte_decode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - CRYSTALS::unpack<KyberConstants::Q - 1>
    - ct_validate_value_range
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void byte_decode(KyberPolyNTT& p, BufferSlicer& bs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:82,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:85,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:91,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:97,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:98,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:98,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:101,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:104,1
    - Dst: sample
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - KyberPolyNTT
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 114
    functionName: Botan::Kyber_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Kyber_Algos::load_le3
    - std::exchange
    - lowerthan_q
    - static_cast<uint16_t>
    - sample
    - Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - has_value
    linkageType: ''
    returnType: void
    signature: void sample_ntt_uniform(KyberPolyNTT& p, XOF& xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:133,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:134,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:134,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:151,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 152
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_le
    - size
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void sample_poly_cbd<KyberConstants::KyberEta::_2>(KyberPoly& poly,\n
      \                                                  StrongSpan<const KyberSamplingRandomness>
      randomness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:162,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:163,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:163,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:181,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 182
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Kyber_Algos::load_le3
    - size
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void sample_poly_cbd<KyberConstants::KyberEta::_3>(KyberPoly& poly,\n
      \                                                  StrongSpan<const KyberSamplingRandomness>
      randomness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<(1 << d) - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::Kyber_Algos::poly_compress_and_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 5
    functionsReached:
    - CRYSTALS::pack<(1 << d) - 1>
    linkageType: ''
    returnType: void
    signature: void poly_compress_and_encode(BufferStuffer& bs, const KyberPoly& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<KyberConstants::Q - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPolyNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Botan::Kyber_Algos::byte_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - CRYSTALS::pack<KyberConstants::Q - 1>
    linkageType: ''
    returnType: void
    signature: void byte_encode(BufferStuffer& bs, const KyberPolyNTT& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<(1 << d) - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::Kyber_Algos::poly_decode_and_decompress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 5
    functionsReached:
    - CRYSTALS::unpack<(1 << d) - 1>
    linkageType: ''
    returnType: void
    signature: void poly_decode_and_decompress(KyberPoly& p, BufferSlicer& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<KyberConstants::Q - 1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:62,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:64,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPolyNTT
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: Botan::Kyber_Algos::byte_decode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - CRYSTALS::unpack<KyberConstants::Q - 1>
    - ct_validate_value_range
    - Decoding_Error
    linkageType: ''
    returnType: void
    signature: void byte_decode(KyberPolyNTT& p, BufferSlicer& bs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:82,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:85,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:91,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:97,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:98,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:98,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:101,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:104,1
    - Dst: sample
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - KyberPolyNTT
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 114
    functionName: Botan::Kyber_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Kyber_Algos::load_le3
    - std::exchange
    - lowerthan_q
    - static_cast<uint16_t>
    - sample
    - Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - has_value
    linkageType: ''
    returnType: void
    signature: void sample_ntt_uniform(KyberPolyNTT& p, XOF& xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:133,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:134,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:134,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:151,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 152
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_le
    - size
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void sample_poly_cbd<KyberConstants::KyberEta::_2>(KyberPoly& poly,\n
      \                                                  StrongSpan<const KyberSamplingRandomness>
      randomness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:162,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:163,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:163,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:181,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 182
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Kyber_Algos::load_le3
    - size
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void sample_poly_cbd<KyberConstants::KyberEta::_3>(KyberPoly& poly,\n
      \                                                  StrongSpan<const KyberSamplingRandomness>
      randomness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::byte_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:189,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:191,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - ' vec'
    argTypes:
    - std::span<uint8_t>
    - KyberPolyVecNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: Botan::Kyber_Algos::encode_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 4
    functionsReached:
    - BufferStuffer::full
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::byte_encode
    linkageType: ''
    returnType: void
    signature: void encode_polynomial_vector(std::span<uint8_t> out, const KyberPolyVecNTT&
      vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:195,1
    - Dst: Botan::Kyber_Algos::byte_decode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:199,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:201,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 204
    functionName: Botan::Kyber_Algos::decode_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::byte_decode
    - k
    linkageType: ''
    returnType: KyberPolyVecNTT
    signature: KyberPolyVecNTT decode_polynomial_vector(std::span<const uint8_t> a,
      const KyberConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:207,1
    - Dst: StrongSpan<const KyberMessage>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:207,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - StrongSpan<const KyberMessage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: Botan::Kyber_Algos::polynomial_from_message
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - StrongSpan<const KyberMessage>::size
    linkageType: ''
    returnType: KyberPoly
    signature: KyberPoly polynomial_from_message(StrongSpan<const KyberMessage> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:215,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: Botan::Kyber_Algos::polynomial_to_message
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - size
    - Botan::Kyber_Algos::poly_compress_and_encode
    linkageType: ''
    returnType: KyberMessage
    signature: KyberMessage polynomial_to_message(const KyberPoly& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' sink'
    - ' polyvec'
    argTypes:
    - BufferStuffer
    - KyberPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: Botan::Kyber_Algos::polyvec_compress_and_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 2
    functionsReached:
    - Botan::Kyber_Algos::poly_compress_and_encode
    linkageType: ''
    returnType: void
    signature: void polyvec_compress_and_encode(BufferStuffer& sink, const KyberPolyVec&
      polyvec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:233,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:235,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:236,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:236,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:239,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:240,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:240,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - ' pv'
    - ' mode'
    argTypes:
    - std::span<uint8_t>
    - KyberPolyVec
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: Botan::Kyber_Algos::compress_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - d_u
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::polyvec_compress_and_encode
    linkageType: ''
    returnType: void
    signature: void compress_polyvec(std::span<uint8_t> out, const KyberPolyVec& pv,
      const KyberConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:250,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:253,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:253,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:256,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:257,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:257,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - ' p'
    - ' mode'
    argTypes:
    - std::span<uint8_t>
    - KyberPoly
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 262
    functionName: Botan::Kyber_Algos::compress_poly
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::poly_compress_and_encode
    - d_v
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void compress_poly(std::span<uint8_t> out, const KyberPoly& p, const
      KyberConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' polyvec'
    - ' source'
    argTypes:
    - KyberPolyVec
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: Botan::Kyber_Algos::polyvec_decode_and_decompress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 2
    functionsReached:
    - Botan::Kyber_Algos::poly_decode_and_decompress
    linkageType: ''
    returnType: void
    signature: void polyvec_decode_and_decompress(KyberPolyVec& polyvec, BufferSlicer&
      source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:275,1
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:278,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:280,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:281,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:281,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:284,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:285,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:285,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 290
    functionName: Botan::Kyber_Algos::decompress_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - polynomial_vector_compressed_bytes
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - k
    - Botan::Kyber_Algos::polyvec_decode_and_decompress
    - d_u
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: KyberPolyVec
    signature: KyberPolyVec decompress_polynomial_vector(std::span<const uint8_t>
      buffer, const KyberConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:298,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:300,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:301,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:301,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:304,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:305,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:305,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 310
    functionName: Botan::Kyber_Algos::decompress_polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - polynomial_compressed_bytes
    - d_v
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: KyberPoly
    signature: KyberPoly decompress_polynomial(std::span<const uint8_t> buffer, const
      KyberConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' sink'
    - ' polyvec'
    argTypes:
    - BufferStuffer
    - KyberPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: Botan::Kyber_Algos::polyvec_compress_and_encode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 3
    functionsReached:
    - Botan::Kyber_Algos::poly_compress_and_encode
    linkageType: ''
    returnType: void
    signature: void polyvec_compress_and_encode(BufferStuffer& sink, const KyberPolyVec&
      polyvec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:233,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:235,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:236,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:236,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:239,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:240,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:240,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - ' pv'
    - ' mode'
    argTypes:
    - std::span<uint8_t>
    - KyberPolyVec
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: Botan::Kyber_Algos::compress_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - d_u
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::polyvec_compress_and_encode
    linkageType: ''
    returnType: void
    signature: void compress_polyvec(std::span<uint8_t> out, const KyberPolyVec& pv,
      const KyberConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:250,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:253,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:253,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:256,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:257,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:257,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - ' p'
    - ' mode'
    argTypes:
    - std::span<uint8_t>
    - KyberPoly
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 262
    functionName: Botan::Kyber_Algos::compress_poly
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::poly_compress_and_encode
    - d_v
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void compress_poly(std::span<uint8_t> out, const KyberPoly& p, const
      KyberConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' polyvec'
    - ' source'
    argTypes:
    - KyberPolyVec
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: Botan::Kyber_Algos::polyvec_decode_and_decompress
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 3
    functionsReached:
    - Botan::Kyber_Algos::poly_decode_and_decompress
    linkageType: ''
    returnType: void
    signature: void polyvec_decode_and_decompress(KyberPolyVec& polyvec, BufferSlicer&
      source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:272,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:275,1
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:278,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:280,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:281,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:281,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:284,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:285,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:285,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 290
    functionName: Botan::Kyber_Algos::decompress_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - polynomial_vector_compressed_bytes
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - k
    - Botan::Kyber_Algos::polyvec_decode_and_decompress
    - d_u
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: KyberPolyVec
    signature: KyberPolyVec decompress_polynomial_vector(std::span<const uint8_t>
      buffer, const KyberConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:293,1
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:298,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:300,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:301,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:301,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:304,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:305,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:305,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 310
    functionName: Botan::Kyber_Algos::decompress_polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - polynomial_compressed_bytes
    - d_v
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: KyberPoly
    signature: KyberPoly decompress_polynomial(std::span<const uint8_t> buffer, const
      KyberConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:324,1
    - Dst: KyberPrivateKeySeed::d::has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:324,1
    - Dst: KyberPrivateKeySeed::d::value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:325,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:327,1
    - Dst: KyberConstants::symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:328,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:329,1
    - Dst: Botan::Kyber_Algos::sample_matrix
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:333,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:337,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:337,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:338,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:338,1
    - Dst: montgomery
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:340,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:342,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:346,1
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:349,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:349,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:349,1
    - Dst: std::make_shared<Kyber_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:350,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:350,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:350,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - seed
    - mode
    argTypes:
    - KyberPrivateKeySeed
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 352
    functionName: Botan::Kyber_Algos::expand_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 2
    functionsReached:
    - Botan::CT::unpoison_all
    - KyberConstants::symmetric_primitives
    - ntt
    - auto::reduce
    - std::move
    - std::make_shared<Kyber_PrivateKeyInternal>
    - KyberPrivateKeySeed::d::value
    - BOTAN_ARG_CHECK
    - Botan::CT::poison
    - Botan::Kyber_Algos::sample_matrix
    - montgomery
    - std::make_shared<Kyber_PublicKeyInternal>
    - KyberPrivateKeySeed::d::has_value
    - Botan::CT::unpoison
    - Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
    linkageType: ''
    returnType: KyberInternalKeypair
    signature: KyberInternalKeypair expand_keypair(KyberPrivateKeySeed seed, KyberConstants
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::compress_polyvec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:359,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:359,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:359,1
    - Dst: Botan::Kyber_Algos::compress_poly
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:360,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:360,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:360,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:361,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - out
    - ' u'
    - ' v'
    - ' m_mode'
    argTypes:
    - StrongSpan<KyberCompressedCiphertext>
    - KyberPolyVec
    - KyberPoly
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 362
    functionName: Botan::Kyber_Algos::compress_ciphertext
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - polynomial_vector_compressed_bytes
    - BufferStuffer::next
    - polynomial_compressed_bytes
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::compress_poly
    - Botan::Kyber_Algos::compress_polyvec
    linkageType: ''
    returnType: void
    signature: "void compress_ciphertext(StrongSpan<KyberCompressedCiphertext> out,\n
      \                        const KyberPolyVec& u,\n                         const
      KyberPoly& v,\n                         const KyberConstants& m_mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:366,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:367,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:370,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:371,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:375,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:376,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:377,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:377,1
    - Dst: Botan::Kyber_Algos::decompress_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:379,1
    - Dst: Botan::Kyber_Algos::decompress_polynomial
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ct
    - ' mode'
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 380
    functionName: Botan::Kyber_Algos::decompress_ciphertext
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - polynomial_vector_compressed_bytes
    - Botan::Kyber_Algos::decompress_polynomial_vector
    - Decoding_Error
    - Botan::Kyber_Algos::decompress_polynomial
    - StrongSpan<const KyberCompressedCiphertext>::size
    - polynomial_compressed_bytes
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::take
    linkageType: ''
    returnType: std::pair<KyberPolyVec, KyberPoly>
    signature: "std::pair<KyberPolyVec, KyberPoly> decompress_ciphertext(StrongSpan<const
      KyberCompressedCiphertext> ct,\n                                                         const
      KyberConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:383,1
    - Dst: StrongSpan<const KyberSeedRho>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:383,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:385,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:385,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:387,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:390,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:391,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:392,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:392,1
    - Dst: setup_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:393,1
    - Dst: Botan::Kyber_Algos::sample_ntt_uniform
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - seed
    - transposed
    - ' mode'
    argTypes:
    - StrongSpan<const KyberSeedRho>
    - bool
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 399
    functionName: Botan::Kyber_Algos::sample_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 2
    functionsReached:
    - setup_XOF
    - StrongSpan<const KyberSeedRho>::size
    - BOTAN_ASSERT
    - k
    - Botan::Kyber_Algos::sample_ntt_uniform
    - symmetric_primitives
    - std::tuple
    linkageType: ''
    returnType: KyberPolyMat
    signature: KyberPolyMat sample_matrix(StrongSpan<const KyberSeedRho> seed, bool
      transposed, const KyberConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:412,1
    - Dst: Botan::Kyber_Algos::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:414,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' poly'
    - eta
    - ' randomness'
    argTypes:
    - KyberPoly
    - KyberConstants::KyberEta
    - KyberSamplingRandomness
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 418
    functionName: Botan::Kyber_Algos::sample_polynomial_from_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::sample_poly_cbd
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void sample_polynomial_from_cbd(KyberPoly& poly,\n                                KyberConstants::KyberEta
      eta,\n                                const KyberSamplingRandomness& randomness)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: KyberMode::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:31,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:63,1
    - Dst: KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:67,1
    - Dst: KyberMode::is_90s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:67,1
    - Dst: std::make_unique<Kyber_90s_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:68,1
    - Dst: KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:73,1
    - Dst: KyberMode::is_modern
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:73,1
    - Dst: std::make_unique<Kyber_Modern_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:74,1
    - Dst: KyberMode::is_ml_kem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:79,1
    - Dst: std::make_unique<ML_KEM_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:80,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:85,1
    - Dst: Botan::KyberConstants::k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:85,1
    - Dst: Botan::KyberConstants::d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:86,1
    - Dst: Botan::KyberConstants::k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:86,1
    - Dst: Botan::KyberConstants::d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:87,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:89,1
    - Dst: Botan::KyberConstants::public_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:89,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:93,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 1
    argNames:
    - mode
    argTypes:
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 95
    functionName: Botan::KyberConstants::KyberConstants
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ML_KEM_Symmetric_Primitives>
    - static_cast<uint32_t>
    - KyberMode::mode
    - BOTAN_ASSERT_UNREACHABLE
    - KyberMode::is_modern
    - KyberMode::is_90s
    - Not_Implemented
    - KyberMode::is_ml_kem
    - bitlen
    - Botan::KyberConstants::k
    - std::make_unique<Kyber_90s_Symmetric_Primitives>
    - Botan::KyberConstants::d_u
    - std::make_unique<Kyber_Modern_Symmetric_Primitives>
    - Botan::KyberConstants::d_v
    - KyberMode::is_kyber_round3
    - Botan::KyberConstants::public_key_bytes
    linkageType: ''
    returnType: void
    signature: void KyberConstants::KyberConstants(KyberMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: KyberConstants::~KyberConstants()
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberConstants::~KyberConstants()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: KyberMode::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:31,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:63,1
    - Dst: KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:67,1
    - Dst: KyberMode::is_90s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:67,1
    - Dst: std::make_unique<Kyber_90s_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:68,1
    - Dst: KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:73,1
    - Dst: KyberMode::is_modern
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:73,1
    - Dst: std::make_unique<Kyber_Modern_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:74,1
    - Dst: KyberMode::is_ml_kem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:79,1
    - Dst: std::make_unique<ML_KEM_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:80,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:85,1
    - Dst: Botan::KyberConstants::k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:85,1
    - Dst: Botan::KyberConstants::d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:86,1
    - Dst: Botan::KyberConstants::k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:86,1
    - Dst: Botan::KyberConstants::d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:87,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:89,1
    - Dst: Botan::KyberConstants::public_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:89,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:93,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 1
    argNames:
    - mode
    argTypes:
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 95
    functionName: Botan::KyberConstants::KyberConstants
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ML_KEM_Symmetric_Primitives>
    - static_cast<uint32_t>
    - KyberMode::mode
    - BOTAN_ASSERT_UNREACHABLE
    - KyberMode::is_modern
    - KyberMode::is_90s
    - Not_Implemented
    - KyberMode::is_ml_kem
    - bitlen
    - Botan::KyberConstants::k
    - std::make_unique<Kyber_90s_Symmetric_Primitives>
    - Botan::KyberConstants::d_u
    - std::make_unique<Kyber_Modern_Symmetric_Primitives>
    - Botan::KyberConstants::d_v
    - KyberMode::is_kyber_round3
    - Botan::KyberConstants::public_key_bytes
    linkageType: ''
    returnType: void
    signature: void KyberConstants::KyberConstants(KyberMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: KyberConstants::~KyberConstants()
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberConstants::~KyberConstants()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan::mode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: Mode
    signature: Mode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: operator==(const KyberMode& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const KyberMode& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: operator!=(const KyberMode& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const KyberMode& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan::mode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: Mode
    signature: Mode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: operator==(const KyberMode& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const KyberMode& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: operator!=(const KyberMode& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const KyberMode& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Kyber_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Kyber_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKey(Kyber_PublicKey&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: ~Kyber_PublicKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Kyber_PublicKey() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::KyberConstants::KyberConstants
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberConstants(const KyberConstants& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::KyberConstants::KyberConstants
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberConstants(KyberConstants&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& operator=(const KyberConstants& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & operator=(const KyberConstants& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: '& operator=(KyberConstants&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & operator=(KyberConstants&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::KyberConstants::mode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberMode
    signature: KyberMode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberConstants::k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::KyberConstants::canonical_parameter_set_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached:
    - Botan::KyberConstants::k
    linkageType: ''
    returnType: size_t
    signature: size_t canonical_parameter_set_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::KyberConstants::k
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t k() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan::KyberConstants::eta1
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberEta
    signature: KyberEta eta1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::KyberConstants::eta2
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberEta
    signature: KyberEta eta2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan::KyberConstants::d_u
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: KyberDu
    signature: KyberDu d_u() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::KyberConstants::d_v
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: KyberDv
    signature: KyberDv d_v() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::KyberConstants::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberStrength
    signature: KyberStrength estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::KyberConstants::polynomial_vector_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t polynomial_vector_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan::KyberConstants::polynomial_vector_compressed_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t polynomial_vector_compressed_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan::KyberConstants::polynomial_compressed_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t polynomial_compressed_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberConstants::polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h:108,1
    - Dst: Botan::KyberConstants::polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::KyberConstants::ciphertext_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached:
    - Botan::KyberConstants::polynomial_vector_compressed_bytes
    - Botan::KyberConstants::polynomial_compressed_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan::KyberConstants::shared_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t shared_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberConstants::polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan::KyberConstants::public_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 2
    functionsReached:
    - Botan::KyberConstants::polynomial_vector_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t public_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan::KyberConstants::expanded_private_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t expanded_private_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan::KyberConstants::seed_private_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t seed_private_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: '& symmetric_primitives() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Kyber_Symmetric_Primitives
    signature: Kyber_Symmetric_Primitives & symmetric_primitives() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::KyberConstants::KyberConstants
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberConstants(const KyberConstants& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::KyberConstants::KyberConstants
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberConstants(KyberConstants&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& operator=(const KyberConstants& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & operator=(const KyberConstants& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: '& operator=(KyberConstants&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & operator=(KyberConstants&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::KyberConstants::mode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberMode
    signature: KyberMode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberConstants::k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::KyberConstants::canonical_parameter_set_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached:
    - Botan::KyberConstants::k
    linkageType: ''
    returnType: size_t
    signature: size_t canonical_parameter_set_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::KyberConstants::k
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t k() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan::KyberConstants::eta1
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberEta
    signature: KyberEta eta1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::KyberConstants::eta2
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberEta
    signature: KyberEta eta2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan::KyberConstants::d_u
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: KyberDu
    signature: KyberDu d_u() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::KyberConstants::d_v
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: KyberDv
    signature: KyberDv d_v() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::KyberConstants::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberStrength
    signature: KyberStrength estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::KyberConstants::polynomial_vector_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t polynomial_vector_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: Botan::KyberConstants::polynomial_vector_compressed_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t polynomial_vector_compressed_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan::KyberConstants::polynomial_compressed_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t polynomial_compressed_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberConstants::polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h:108,1
    - Dst: Botan::KyberConstants::polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: Botan::KyberConstants::ciphertext_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached:
    - Botan::KyberConstants::polynomial_vector_compressed_bytes
    - Botan::KyberConstants::polynomial_compressed_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan::KyberConstants::shared_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t shared_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KyberConstants::polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: Botan::KyberConstants::public_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 2
    functionsReached:
    - Botan::KyberConstants::polynomial_vector_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t public_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: Botan::KyberConstants::expanded_private_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t expanded_private_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan::KyberConstants::seed_private_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t seed_private_key_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: '& symmetric_primitives() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Kyber_Symmetric_Primitives
    signature: Kyber_Symmetric_Primitives & symmetric_primitives() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:21,1
    - Dst: Botan::Kyber_Algos::sample_matrix
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:21,1
    - Dst: rho
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' pk'
    argTypes:
    - Kyber_PublicKeyInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: Botan::Kyber_KEM_Operation_Base::Kyber_KEM_Operation_Base
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::sample_matrix
    - mode
    - rho
    linkageType: ''
    returnType: void
    signature: void Kyber_KEM_Operation_Base(const Kyber_PublicKeyInternal& pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: '& mode() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: '& precomputed_matrix_At() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberPolyMat
    signature: KyberPolyMat & precomputed_matrix_At() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::Kyber_KEM_Encryptor_Base::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::Kyber_KEM_Encryptor_Base::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encapsulate
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:46,1
    - Dst: StrongSpan<KyberCompressedCiphertext>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:46,1
    - Dst: StrongSpan<KyberSharedSecret>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: Botan::Kyber_KEM_Encryptor_Base::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - encapsulate
    - StrongSpan<KyberCompressedCiphertext>
    - StrongSpan<KyberSharedSecret>
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      out_shared_key,\n                           RandomNumberGenerator& rng) final"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kdf
    - ' pk'
    argTypes:
    - std::string_view
    - Kyber_PublicKeyInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: Botan::Kyber_KEM_Encryptor_Base::Kyber_KEM_Encryptor_Base
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Kyber_KEM_Encryptor_Base(std::string_view kdf, const Kyber_PublicKeyInternal&
      pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::Kyber_KEM_Decryptor_Base::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::Kyber_KEM_Decryptor_Base::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decapsulate
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:68,1
    - Dst: StrongSpan<KyberSharedSecret>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:68,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan::Kyber_KEM_Decryptor_Base::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - decapsulate
    - StrongSpan<const KyberCompressedCiphertext>
    - StrongSpan<KyberSharedSecret>
    linkageType: ''
    returnType: void
    signature: void raw_kem_decrypt(std::span<uint8_t> out_shared_key, std::span<const
      uint8_t> encapsulated_key) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kdf
    - ' pk'
    argTypes:
    - std::string_view
    - Kyber_PublicKeyInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: Botan::Kyber_KEM_Decryptor_Base::Kyber_KEM_Decryptor_Base
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Kyber_KEM_Decryptor_Base(std::string_view kdf, const Kyber_PublicKeyInternal&
      pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:21,1
    - Dst: Botan::Kyber_Algos::sample_matrix
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:21,1
    - Dst: rho
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' pk'
    argTypes:
    - Kyber_PublicKeyInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: Botan::Kyber_KEM_Operation_Base::Kyber_KEM_Operation_Base
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::sample_matrix
    - mode
    - rho
    linkageType: ''
    returnType: void
    signature: void Kyber_KEM_Operation_Base(const Kyber_PublicKeyInternal& pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: '& mode() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: '& precomputed_matrix_At() const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KyberPolyMat
    signature: KyberPolyMat & precomputed_matrix_At() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Botan::Kyber_KEM_Encryptor_Base::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Botan::Kyber_KEM_Encryptor_Base::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encapsulate
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:46,1
    - Dst: StrongSpan<KyberCompressedCiphertext>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:46,1
    - Dst: StrongSpan<KyberSharedSecret>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_encapsulated_key
    - out_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: Botan::Kyber_KEM_Encryptor_Base::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - encapsulate
    - StrongSpan<KyberCompressedCiphertext>
    - StrongSpan<KyberSharedSecret>
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      out_shared_key,\n                           RandomNumberGenerator& rng) final"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kdf
    - ' pk'
    argTypes:
    - std::string_view
    - Kyber_PublicKeyInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: Botan::Kyber_KEM_Encryptor_Base::Kyber_KEM_Encryptor_Base
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Kyber_KEM_Encryptor_Base(std::string_view kdf, const Kyber_PublicKeyInternal&
      pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::Kyber_KEM_Decryptor_Base::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::Kyber_KEM_Decryptor_Base::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decapsulate
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:68,1
    - Dst: StrongSpan<KyberSharedSecret>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:68,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Botan::Kyber_KEM_Decryptor_Base::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached:
    - decapsulate
    - StrongSpan<const KyberCompressedCiphertext>
    - StrongSpan<KyberSharedSecret>
    linkageType: ''
    returnType: void
    signature: void raw_kem_decrypt(std::span<uint8_t> out_shared_key, std::span<const
      uint8_t> encapsulated_key) final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kdf
    - ' pk'
    argTypes:
    - std::string_view
    - Kyber_PublicKeyInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: Botan::Kyber_KEM_Decryptor_Base::Kyber_KEM_Decryptor_Base
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Kyber_KEM_Decryptor_Base(std::string_view kdf, const Kyber_PublicKeyInternal&
      pk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KyberSerializedPublicKey::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:23,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - public_key
    - expected_length
    argTypes:
    - KyberSerializedPublicKey
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: Botan::validate_public_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - KyberSerializedPublicKey::size
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: KyberSerializedPublicKey
    signature: KyberSerializedPublicKey validate_public_key_length(KyberSerializedPublicKey
      public_key, size_t expected_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KyberSerializedPublicKey::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:23,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - public_key
    - expected_length
    argTypes:
    - KyberSerializedPublicKey
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: Botan::validate_public_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - KyberSerializedPublicKey::size
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: KyberSerializedPublicKey
    signature: KyberSerializedPublicKey validate_public_key_length(KyberSerializedPublicKey
      public_key, size_t expected_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:41,1
    - Dst: Botan::Kyber_Algos::decode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:44,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:44,1
    - Dst: KyberConstants::polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:44,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:45,1
    - Dst: KyberConstants::public_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:45,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:46,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:47,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:49,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:49,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:51,1
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:54,1
    - Dst: std::make_shared<Kyber_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:56,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:57,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:61,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:64,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:65,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:65,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:65,1
    - Dst: std::equal
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:66,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:66,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:67,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sk
    - mode
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: Botan::Expanded_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    - auto::begin
    - auto::size
    - BufferSlicer::copy
    - KyberConstants::polynomial_vector_bytes
    - std::move
    - std::make_shared<Kyber_PrivateKeyInternal>
    - BOTAN_ASSERT
    - Botan::Kyber_Algos::decode_polynomial_vector
    - std::equal
    - KyberConstants::public_key_bytes
    - KyberInternalKeypair::first::H_public_key_bits_raw
    - BOTAN_ARG_CHECK
    - std::make_shared<Kyber_PublicKeyInternal>
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::scoped_poison
    - BufferSlicer::take
    linkageType: ''
    returnType: KyberInternalKeypair
    signature: KyberInternalKeypair Expanded_Keypair_Codec::decode_keypair(std::span<const
      uint8_t> sk, KyberConstants mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:75,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:76,1
    - Dst: KyberInternalKeypair::first::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:77,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:78,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:79,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:79,1
    - Dst: KyberInternalKeypair::second::s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:79,1
    - Dst: KyberInternalKeypair::first::public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:80,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:81,1
    - Dst: KyberInternalKeypair::second::z
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:82,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - KyberInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: Botan::Expanded_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - concat
    - KyberInternalKeypair::second::s
    - Botan::Kyber_Algos::encode_polynomial_vector
    - KyberInternalKeypair::second::z
    - KyberInternalKeypair::first::mode
    - KyberInternalKeypair::first::public_key_bits_raw
    - KyberInternalKeypair::first::H_public_key_bits_raw
    - BOTAN_ASSERT_NONNULL
    - Botan::CT::unpoison
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Expanded_Keypair_Codec::encode_keypair(KyberInternalKeypair
      keypair) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:91,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:92,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:94,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:94,1
    - Dst: Botan::Kyber_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:95,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:95,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - private_key
    - mode
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: Botan::Seed_Expanding_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - BufferSlicer::copy
    - std::move
    - Botan::Kyber_Algos::expand_keypair
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: KyberInternalKeypair
    signature: "KyberInternalKeypair Seed_Expanding_Keypair_Codec::decode_keypair(std::span<const
      uint8_t> private_key,\n                                                                  KyberConstants
      mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:99,1
    - Dst: KyberInternalKeypair::second::seed
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:100,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:101,1
    - Dst: d::has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:101,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:102,1
    - Dst: d::value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - KyberInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::Seed_Expanding_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - KyberInternalKeypair::second::seed
    - concat
    - d::value
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_NONNULL
    - d::has_value
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Seed_Expanding_Keypair_Codec::encode_keypair(KyberInternalKeypair
      keypair) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:106,1
    - Dst: validate_public_key_length
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:107,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:107,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:107,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:108,1
    - Dst: Botan::Kyber_Algos::decode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:109,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:110,1
    - Dst: polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:110,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mode
    - public_key
    argTypes:
    - KyberConstants
    - KyberSerializedPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan::Kyber_PublicKeyInternal::Kyber_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - first
    - validate_public_key_length
    - std::move
    - last
    - Botan::Kyber_Algos::decode_polynomial_vector
    - polynomial_vector_bytes
    - public_key_bytes
    - symmetric_primitives
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKeyInternal::Kyber_PublicKeyInternal(KyberConstants
      mode, KyberSerializedPublicKey public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:114,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:115,1
    - Dst: Kyber_Algos::encode_polynomial_vector<std::vector<uint8_t>>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:115,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:116,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:117,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mode
    - t
    - rho
    argTypes:
    - KyberConstants
    - KyberPolyVecNTT
    - KyberSeedRho
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: Botan::Kyber_PublicKeyInternal::Kyber_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - concat
    - symmetric_primitives
    - Kyber_Algos::encode_polynomial_vector<std::vector<uint8_t>>
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKeyInternal::Kyber_PublicKeyInternal(KyberConstants
      mode, KyberPolyVecNTT t, KyberSeedRho rho)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:137,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:137,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:138,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:139,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:141,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:143,1
    - Dst: Botan::Kyber_Algos::polynomial_from_message
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:145,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:146,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:149,1
    - Dst: Botan::Kyber_Algos::compress_ciphertext
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - out_ct
    - m
    - r
    - ' At'
    - ' mode'
    argTypes:
    - StrongSpan<KyberCompressedCiphertext>
    - StrongSpan<const KyberMessage>
    - StrongSpan<const KyberEncryptionRandomness>
    - KyberPolyMat
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 152
    functionName: Botan::Kyber_PublicKeyInternal::indcpa_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 2
    functionsReached:
    - Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta2
    - Botan::Kyber_Algos::compress_ciphertext
    - Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
    - ntt
    - auto::reduce
    - Botan::Kyber_Algos::polynomial_from_message
    - inverse_ntt
    - Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
    linkageType: ''
    returnType: void
    signature: "void Kyber_PublicKeyInternal::indcpa_encrypt(StrongSpan<KyberCompressedCiphertext>
      out_ct,\n                                             StrongSpan<const KyberMessage>
      m,\n                                             StrongSpan<const KyberEncryptionRandomness>
      r,\n                                             const KyberPolyMat& At,\n                                             const
      KyberConstants& mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::decompress_ciphertext
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:161,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:162,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:162,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:162,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:163,1
    - Dst: Botan::Kyber_Algos::polynomial_to_message
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ct
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 4
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: Botan::Kyber_PrivateKeyInternal::indcpa_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::polynomial_to_message
    - ntt
    - std::move
    - reduce
    - Botan::Kyber_Algos::decompress_ciphertext
    - inverse_ntt
    linkageType: ''
    returnType: KyberMessage
    signature: KyberMessage Kyber_PrivateKeyInternal::indcpa_decrypt(StrongSpan<const
      KyberCompressedCiphertext> ct) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KyberSerializedPublicKey::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:23,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - public_key
    - expected_length
    argTypes:
    - KyberSerializedPublicKey
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: Botan::validate_public_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - KyberSerializedPublicKey::size
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: KyberSerializedPublicKey
    signature: KyberSerializedPublicKey validate_public_key_length(KyberSerializedPublicKey
      public_key, size_t expected_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KyberSerializedPublicKey::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:23,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - public_key
    - expected_length
    argTypes:
    - KyberSerializedPublicKey
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: Botan::validate_public_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - KyberSerializedPublicKey::size
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: KyberSerializedPublicKey
    signature: KyberSerializedPublicKey validate_public_key_length(KyberSerializedPublicKey
      public_key, size_t expected_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:41,1
    - Dst: Botan::Kyber_Algos::decode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:44,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:44,1
    - Dst: KyberConstants::polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:44,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:45,1
    - Dst: KyberConstants::public_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:45,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:46,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:47,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:49,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:49,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:51,1
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:54,1
    - Dst: std::make_shared<Kyber_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:55,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:56,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:57,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:61,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:64,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:65,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:65,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:65,1
    - Dst: std::equal
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:66,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:66,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:67,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sk
    - mode
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: Botan::Expanded_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    - auto::begin
    - auto::size
    - BufferSlicer::copy
    - KyberConstants::polynomial_vector_bytes
    - std::move
    - std::make_shared<Kyber_PrivateKeyInternal>
    - BOTAN_ASSERT
    - Botan::Kyber_Algos::decode_polynomial_vector
    - std::equal
    - KyberConstants::public_key_bytes
    - KyberInternalKeypair::first::H_public_key_bits_raw
    - BOTAN_ARG_CHECK
    - std::make_shared<Kyber_PublicKeyInternal>
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::scoped_poison
    - BufferSlicer::take
    linkageType: ''
    returnType: KyberInternalKeypair
    signature: KyberInternalKeypair Expanded_Keypair_Codec::decode_keypair(std::span<const
      uint8_t> sk, KyberConstants mode) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:75,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:76,1
    - Dst: KyberInternalKeypair::first::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:77,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:78,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:79,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:79,1
    - Dst: KyberInternalKeypair::second::s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:79,1
    - Dst: KyberInternalKeypair::first::public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:80,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:81,1
    - Dst: KyberInternalKeypair::second::z
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:82,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - KyberInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: Botan::Expanded_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - concat
    - KyberInternalKeypair::second::s
    - Botan::Kyber_Algos::encode_polynomial_vector
    - KyberInternalKeypair::second::z
    - KyberInternalKeypair::first::mode
    - KyberInternalKeypair::first::public_key_bits_raw
    - KyberInternalKeypair::first::H_public_key_bits_raw
    - BOTAN_ASSERT_NONNULL
    - Botan::CT::unpoison
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Expanded_Keypair_Codec::encode_keypair(KyberInternalKeypair
      keypair) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:91,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:92,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:94,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:94,1
    - Dst: Botan::Kyber_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:95,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:95,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - private_key
    - mode
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: Botan::Seed_Expanding_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - BufferSlicer::copy
    - std::move
    - Botan::Kyber_Algos::expand_keypair
    - BufferSlicer::empty
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: KyberInternalKeypair
    signature: "KyberInternalKeypair Seed_Expanding_Keypair_Codec::decode_keypair(std::span<const
      uint8_t> private_key,\n                                                                  KyberConstants
      mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:99,1
    - Dst: KyberInternalKeypair::second::seed
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:100,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:101,1
    - Dst: d::has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:101,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:102,1
    - Dst: d::value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - KyberInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::Seed_Expanding_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - KyberInternalKeypair::second::seed
    - concat
    - d::value
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_NONNULL
    - d::has_value
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Seed_Expanding_Keypair_Codec::encode_keypair(KyberInternalKeypair
      keypair) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:106,1
    - Dst: validate_public_key_length
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:107,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:107,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:107,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:108,1
    - Dst: Botan::Kyber_Algos::decode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:109,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:110,1
    - Dst: polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:110,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mode
    - public_key
    argTypes:
    - KyberConstants
    - KyberSerializedPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan::Kyber_PublicKeyInternal::Kyber_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - first
    - validate_public_key_length
    - std::move
    - last
    - Botan::Kyber_Algos::decode_polynomial_vector
    - polynomial_vector_bytes
    - public_key_bytes
    - symmetric_primitives
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKeyInternal::Kyber_PublicKeyInternal(KyberConstants
      mode, KyberSerializedPublicKey public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:114,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:115,1
    - Dst: Kyber_Algos::encode_polynomial_vector<std::vector<uint8_t>>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:115,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:116,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:117,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mode
    - t
    - rho
    argTypes:
    - KyberConstants
    - KyberPolyVecNTT
    - KyberSeedRho
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: Botan::Kyber_PublicKeyInternal::Kyber_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - concat
    - symmetric_primitives
    - Kyber_Algos::encode_polynomial_vector<std::vector<uint8_t>>
    linkageType: ''
    returnType: void
    signature: void Kyber_PublicKeyInternal::Kyber_PublicKeyInternal(KyberConstants
      mode, KyberPolyVecNTT t, KyberSeedRho rho)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:137,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:137,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:138,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:139,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:141,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:143,1
    - Dst: Botan::Kyber_Algos::polynomial_from_message
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:145,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:146,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:149,1
    - Dst: Botan::Kyber_Algos::compress_ciphertext
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - out_ct
    - m
    - r
    - ' At'
    - ' mode'
    argTypes:
    - StrongSpan<KyberCompressedCiphertext>
    - StrongSpan<const KyberMessage>
    - StrongSpan<const KyberEncryptionRandomness>
    - KyberPolyMat
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 152
    functionName: Botan::Kyber_PublicKeyInternal::indcpa_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 2
    functionsReached:
    - Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta2
    - Botan::Kyber_Algos::compress_ciphertext
    - Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
    - ntt
    - auto::reduce
    - Botan::Kyber_Algos::polynomial_from_message
    - inverse_ntt
    - Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
    linkageType: ''
    returnType: void
    signature: "void Kyber_PublicKeyInternal::indcpa_encrypt(StrongSpan<KyberCompressedCiphertext>
      out_ct,\n                                             StrongSpan<const KyberMessage>
      m,\n                                             StrongSpan<const KyberEncryptionRandomness>
      r,\n                                             const KyberPolyMat& At,\n                                             const
      KyberConstants& mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::decompress_ciphertext
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:161,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:162,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:162,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:162,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:163,1
    - Dst: Botan::Kyber_Algos::polynomial_to_message
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ct
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 4
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: Botan::Kyber_PrivateKeyInternal::indcpa_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_Algos::polynomial_to_message
    - ntt
    - std::move
    - reduce
    - Botan::Kyber_Algos::decompress_ciphertext
    - inverse_ntt
    linkageType: ''
    returnType: KyberMessage
    signature: KyberMessage Kyber_PrivateKeyInternal::indcpa_decrypt(StrongSpan<const
      KyberCompressedCiphertext> ct) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::Gf448Elem::Gf448Elem
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 0
    functionsReached:
    - copy_mem
    linkageType: ''
    returnType: void
    signature: void Gf448Elem(std::span<const uint64_t, WORDS_448> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Gf448Elem::Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::Gf448Elem::zero
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 0
    functionsReached:
    - Botan::Gf448Elem::Gf448Elem
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Gf448Elem::Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::Gf448Elem::one
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 0
    functionsReached:
    - Botan::Gf448Elem::Gf448Elem
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem one()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: operator!=(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan::Gf448Elem::words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::span<uint64_t, WORDS_448>
    signature: std::span<uint64_t, WORDS_448> words()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan::Gf448Elem::words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::span<const uint64_t, WORDS_448>
    signature: std::span<const uint64_t, WORDS_448> words() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::Gf448Elem::Gf448Elem
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 2
    functionsReached:
    - copy_mem
    linkageType: ''
    returnType: void
    signature: void Gf448Elem(std::span<const uint64_t, WORDS_448> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Gf448Elem::Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::Gf448Elem::zero
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 0
    functionsReached:
    - Botan::Gf448Elem::Gf448Elem
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Gf448Elem::Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::Gf448Elem::one
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 0
    functionsReached:
    - Botan::Gf448Elem::Gf448Elem
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem one()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: operator!=(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: Botan::Gf448Elem::words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::span<uint64_t, WORDS_448>
    signature: std::span<uint64_t, WORDS_448> words()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: Botan::Gf448Elem::words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::span<const uint64_t, WORDS_448>
    signature: std::span<const uint64_t, WORDS_448> words() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: Botan::words_for_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t words_for_bits(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::words_for_bits
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:36,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:37,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:48,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:48,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 70
    functionName: Botan::Scalar448
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h
    functionUses: 4
    functionsReached:
    - Botan::copy_mem
    - std::span
    - Botan::words_for_bits
    - Botan::store_le
    - Botan::ceil_tobytes
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Scalar448
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:48,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: Botan::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h
    functionUses: 1
    functionsReached:
    - Botan::store_le
    - std::span
    linkageType: ''
    returnType: std::array<uint8_t, S>
    signature: "std::array<uint8_t, S> to_bytes() const\n         requires(S >= BYTES)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: Botan::words_for_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t words_for_bits(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::words_for_bits
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:36,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:37,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:48,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:48,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 70
    functionName: Botan::Scalar448
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h
    functionUses: 4
    functionsReached:
    - Botan::copy_mem
    - std::span
    - Botan::words_for_bits
    - Botan::store_le
    - Botan::ceil_tobytes
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Scalar448
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:48,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: Botan::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h
    functionUses: 1
    functionsReached:
    - Botan::store_le
    - std::span
    linkageType: ''
    returnType: std::array<uint8_t, S>
    signature: "std::array<uint8_t, S> to_bytes() const\n         requires(S >= BYTES)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:34,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:35,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:36,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:39,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:42,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:43,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:44,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:49,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:50,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - h_3
    - h_1
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 8>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 59
    functionName: Botan::reduce_after_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: void reduce_after_add(std::span<uint64_t, WORDS_448> h_3, std::span<const
      uint64_t, 8> h_1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:75,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:78,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:79,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:80,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:81,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:82,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:83,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:90,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:92,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:93,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:94,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:109,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:110,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:111,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:112,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:113,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:114,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:115,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 14>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 119
    functionName: Botan::reduce_after_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::reduce_after_add
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: void reduce_after_mul(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, 14> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:128,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:129,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:130,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:131,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:132,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:133,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:134,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: Botan::gf_mul_a24
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_madd2
    - Botan::reduce_after_add
    linkageType: ''
    returnType: void
    signature: void gf_mul_a24(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::comba_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: Botan::gf_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::reduce_after_mul
    - std::span<const uint64_t, WORDS_448>::data
    - Botan::comba_mul
    - std::array::data
    linkageType: ''
    returnType: void
    signature: "void gf_mul(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::comba_sqr
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Botan::gf_square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::reduce_after_mul
    - Botan::comba_sqr
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    linkageType: ''
    returnType: void
    signature: void gf_square(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:159,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:160,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:161,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:162,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:163,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:164,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:165,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 169
    functionName: Botan::gf_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::reduce_after_add
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: "void gf_add(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:183,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:184,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:185,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:186,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:187,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:188,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:189,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:196,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:197,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:198,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:199,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:200,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:201,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:202,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:208,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:209,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:210,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 215
    functionName: Botan::gf_sub
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    linkageType: ''
    returnType: void
    signature: "void gf_sub(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:219,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - a
    - n
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: Botan::gf_sqr_n
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_square
    linkageType: ''
    returnType: void
    signature: void gf_sqr_n(std::span<uint64_t, WORDS_448> out, std::span<const uint64_t,
      WORDS_448> a, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:250,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:258,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:259,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:263,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:264,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:268,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:269,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:273,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:274,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:278,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:282,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:286,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:287,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:291,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:292,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:296,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:297,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:300,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:301,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:304,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 3
    argNames:
    - x222
    - x223
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 306
    functionName: Botan::gf_pow_2_222m1
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_sqr_n
    - Botan::gf_mul
    - Botan::gf_square
    linkageType: ''
    returnType: void
    signature: "void gf_pow_2_222m1(std::span<uint64_t, WORDS_448> x222,\n                    std::span<uint64_t,
      WORDS_448> x223,\n                    std::span<const uint64_t, WORDS_448> a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_pow_2_222m1
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:319,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:323,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:325,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: Botan::gf_inv
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    - Botan::gf_sqr_n
    - Botan::gf_pow_2_222m1
    linkageType: ''
    returnType: void
    signature: void gf_inv(std::span<uint64_t, WORDS_448> out, std::span<const uint64_t,
      WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:347,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 352
    functionName: Botan::to_canonical
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    - std::array::data
    - std::span<const uint64_t, WORDS_448>::data
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: std::array<uint64_t, WORDS_448>
    signature: std::array<uint64_t, WORDS_448> to_canonical(std::span<const uint64_t,
      WORDS_448> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:34,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:35,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:36,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:39,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:42,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:43,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:44,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:49,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:50,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - h_3
    - h_1
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 8>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 59
    functionName: Botan::reduce_after_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 3
    functionsReached:
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: void reduce_after_add(std::span<uint64_t, WORDS_448> h_3, std::span<const
      uint64_t, 8> h_1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:75,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:78,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:79,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:80,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:81,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:82,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:83,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:90,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:92,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:93,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:94,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:109,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:110,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:111,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:112,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:113,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:114,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:115,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 14>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 119
    functionName: Botan::reduce_after_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 2
    functionsReached:
    - Botan::reduce_after_add
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: void reduce_after_mul(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, 14> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:128,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:129,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:130,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:131,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:132,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:133,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:134,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: Botan::gf_mul_a24
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_madd2
    - Botan::reduce_after_add
    linkageType: ''
    returnType: void
    signature: void gf_mul_a24(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::comba_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: Botan::gf_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 2
    functionsReached:
    - Botan::reduce_after_mul
    - std::span<const uint64_t, WORDS_448>::data
    - Botan::comba_mul
    - std::array::data
    linkageType: ''
    returnType: void
    signature: "void gf_mul(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::comba_sqr
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Botan::gf_square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 2
    functionsReached:
    - Botan::reduce_after_mul
    - Botan::comba_sqr
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    linkageType: ''
    returnType: void
    signature: void gf_square(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:159,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:160,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:161,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:162,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:163,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:164,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:165,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 169
    functionName: Botan::gf_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::reduce_after_add
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: "void gf_add(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:183,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:184,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:185,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:186,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:187,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:188,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:189,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:196,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:197,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:198,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:199,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:200,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:201,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:202,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:208,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:209,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:210,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 215
    functionName: Botan::gf_sub
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    linkageType: ''
    returnType: void
    signature: "void gf_sub(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:219,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - a
    - n
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: Botan::gf_sqr_n
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 2
    functionsReached:
    - Botan::gf_square
    linkageType: ''
    returnType: void
    signature: void gf_sqr_n(std::span<uint64_t, WORDS_448> out, std::span<const uint64_t,
      WORDS_448> a, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:250,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:258,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:259,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:263,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:264,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:268,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:269,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:273,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:274,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:278,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:282,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:286,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:287,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:291,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:292,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:296,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:297,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:300,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:301,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:304,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 3
    argNames:
    - x222
    - x223
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 306
    functionName: Botan::gf_pow_2_222m1
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 1
    functionsReached:
    - Botan::gf_sqr_n
    - Botan::gf_mul
    - Botan::gf_square
    linkageType: ''
    returnType: void
    signature: "void gf_pow_2_222m1(std::span<uint64_t, WORDS_448> x222,\n                    std::span<uint64_t,
      WORDS_448> x223,\n                    std::span<const uint64_t, WORDS_448> a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_pow_2_222m1
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:319,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:323,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:325,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: Botan::gf_inv
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    - Botan::gf_sqr_n
    - Botan::gf_pow_2_222m1
    linkageType: ''
    returnType: void
    signature: void gf_inv(std::span<uint64_t, WORDS_448> out, std::span<const uint64_t,
      WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:347,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 352
    functionName: Botan::to_canonical
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    - std::array::data
    - std::span<const uint64_t, WORDS_448>::data
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: std::array<uint64_t, WORDS_448>
    signature: std::array<uint64_t, WORDS_448> to_canonical(std::span<const uint64_t,
      WORDS_448> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: Botan::Gf448Elem::Gf448Elem
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 4
    functionsReached:
    - load_le
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::Gf448Elem(std::span<const uint8_t, BYTES_448> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - least_sig_word
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: Botan::Gf448Elem::Gf448Elem
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 4
    functionsReached:
    - clear_mem
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::Gf448Elem(uint64_t least_sig_word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:366,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: Botan::Gf448Elem::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - to_canonical
    - store_le
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::to_bytes(std::span<uint8_t, BYTES_448> out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Gf448Elem::to_bytes
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: Botan::Gf448Elem::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 1
    functionsReached:
    - Botan::Gf448Elem::to_bytes
    linkageType: ''
    returnType: std::array<uint8_t, BYTES_448>
    signature: std::array<uint8_t, BYTES_448> Gf448Elem::to_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mask
    - ' other'
    argTypes:
    - CT::Mask<uint64_t>
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: Botan::Gf448Elem::ct_cond_swap
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - CT::Mask<uint64_t>::conditional_swap
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::ct_cond_swap(CT::Mask<uint64_t> mask, Gf448Elem& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::select_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:382,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:382,1
    - Dst: m_x::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:382,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mask
    - ' other'
    argTypes:
    - CT::Mask<uint64_t>
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: Botan::Gf448Elem::ct_cond_assign
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - CT::Mask<uint64_t>::select_n
    - data
    - m_x::data
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::ct_cond_assign(CT::Mask<uint64_t> mask, const Gf448Elem&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: Gf448Elem::operator+(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - gf_add
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem Gf448Elem::operator+(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 395
    functionName: Gf448Elem::operator-(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - gf_sub
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem Gf448Elem::operator-(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: Gf448Elem::operator-() const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - gf_sub
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem Gf448Elem::operator-() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 407
    functionName: Gf448Elem::operator*(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - gf_mul
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem Gf448Elem::operator*(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_inv
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:411,1
    - Dst: gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: Gf448Elem::operator/(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - gf_inv
    - gf_mul
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem Gf448Elem::operator/(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:417,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:418,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:419,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:419,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: Gf448Elem::operator==(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - to_canonical
    - Botan::CT::is_equal
    linkageType: ''
    returnType: bool
    signature: bool Gf448Elem::operator==(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:423,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:425,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: Botan::Gf448Elem::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - to_canonical
    - auto::data
    - Botan::CT::all_zeros
    linkageType: ''
    returnType: bool
    signature: bool Gf448Elem::is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: Botan::Gf448Elem::is_odd
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - to_canonical
    linkageType: ''
    returnType: bool
    signature: bool Gf448Elem::is_odd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:434,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:435,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:436,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:436,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: Botan::Gf448Elem::bytes_are_canonical_representation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - to_canonical
    - Botan::CT::is_equal
    - load_le
    linkageType: ''
    returnType: bool
    signature: bool Gf448Elem::bytes_are_canonical_representation(std::span<const
      uint8_t, BYTES_448> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_a24
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:441,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:441,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: Botan::mul_a24
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - words
    - Gf448Elem::words
    - Botan::gf_mul_a24
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem mul_a24(const Gf448Elem& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:447,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:447,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: Botan::square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - words
    - Gf448Elem::words
    - Botan::gf_square
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem square(const Gf448Elem& elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_pow_2_222m1
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:457,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:457,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:460,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:460,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:461,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:461,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 463
    functionName: Botan::root
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - words
    - Botan::gf_mul
    - Botan::gf_pow_2_222m1
    - Botan::gf_sqr_n
    - Gf448Elem::words
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem root(const Gf448Elem& elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:34,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:35,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:36,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:39,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:42,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:43,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:44,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:49,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:50,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - h_3
    - h_1
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 8>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 59
    functionName: Botan::reduce_after_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 6
    functionsReached:
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: void reduce_after_add(std::span<uint64_t, WORDS_448> h_3, std::span<const
      uint64_t, 8> h_1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:75,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:78,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:79,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:80,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:81,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:82,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:83,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:90,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:92,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:93,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:94,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:109,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:110,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:111,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:112,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:113,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:114,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:115,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 14>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 119
    functionName: Botan::reduce_after_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 4
    functionsReached:
    - Botan::reduce_after_add
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: void reduce_after_mul(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, 14> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:128,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:129,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:130,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:131,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:132,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:133,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:134,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: Botan::gf_mul_a24
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 1
    functionsReached:
    - Botan::word_madd2
    - Botan::reduce_after_add
    linkageType: ''
    returnType: void
    signature: void gf_mul_a24(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::comba_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: Botan::gf_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 5
    functionsReached:
    - Botan::reduce_after_mul
    - std::span<const uint64_t, WORDS_448>::data
    - Botan::comba_mul
    - std::array::data
    linkageType: ''
    returnType: void
    signature: "void gf_mul(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::comba_sqr
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Botan::gf_square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 5
    functionsReached:
    - Botan::reduce_after_mul
    - Botan::comba_sqr
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    linkageType: ''
    returnType: void
    signature: void gf_square(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:159,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:160,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:161,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:162,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:163,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:164,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:165,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 169
    functionName: Botan::gf_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::reduce_after_add
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: "void gf_add(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:183,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:184,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:185,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:186,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:187,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:188,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:189,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:196,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:197,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:198,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:199,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:200,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:201,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:202,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:208,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:209,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:210,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 215
    functionName: Botan::gf_sub
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    linkageType: ''
    returnType: void
    signature: "void gf_sub(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:219,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - a
    - n
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: Botan::gf_sqr_n
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 5
    functionsReached:
    - Botan::gf_square
    linkageType: ''
    returnType: void
    signature: void gf_sqr_n(std::span<uint64_t, WORDS_448> out, std::span<const uint64_t,
      WORDS_448> a, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:250,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:258,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:259,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:263,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:264,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:268,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:269,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:273,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:274,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:278,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:282,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:286,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:287,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:291,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:292,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:296,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:297,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:300,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:301,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:304,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 3
    argNames:
    - x222
    - x223
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 306
    functionName: Botan::gf_pow_2_222m1
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 3
    functionsReached:
    - Botan::gf_sqr_n
    - Botan::gf_mul
    - Botan::gf_square
    linkageType: ''
    returnType: void
    signature: "void gf_pow_2_222m1(std::span<uint64_t, WORDS_448> x222,\n                    std::span<uint64_t,
      WORDS_448> x223,\n                    std::span<const uint64_t, WORDS_448> a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_pow_2_222m1
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:319,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:323,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:325,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: Botan::gf_inv
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    - Botan::gf_sqr_n
    - Botan::gf_pow_2_222m1
    linkageType: ''
    returnType: void
    signature: void gf_inv(std::span<uint64_t, WORDS_448> out, std::span<const uint64_t,
      WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:347,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 352
    functionName: Botan::to_canonical
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    - std::array::data
    - std::span<const uint64_t, WORDS_448>::data
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: std::array<uint64_t, WORDS_448>
    signature: std::array<uint64_t, WORDS_448> to_canonical(std::span<const uint64_t,
      WORDS_448> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:34,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:35,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:36,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:39,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:42,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:43,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:44,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:49,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:50,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - h_3
    - h_1
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 8>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 59
    functionName: Botan::reduce_after_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 9
    functionsReached:
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: void reduce_after_add(std::span<uint64_t, WORDS_448> h_3, std::span<const
      uint64_t, 8> h_1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:75,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:78,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:79,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:80,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:81,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:82,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:83,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:90,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:92,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:93,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:94,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:109,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:110,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:111,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:112,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:113,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:114,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:115,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 14>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 119
    functionName: Botan::reduce_after_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 6
    functionsReached:
    - Botan::reduce_after_add
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: void reduce_after_mul(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, 14> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:128,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:129,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:130,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:131,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:132,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:133,1
    - Dst: Botan::word_madd2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:134,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: Botan::gf_mul_a24
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 1
    functionsReached:
    - Botan::word_madd2
    - Botan::reduce_after_add
    linkageType: ''
    returnType: void
    signature: void gf_mul_a24(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::comba_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:143,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: Botan::gf_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 7
    functionsReached:
    - Botan::reduce_after_mul
    - std::span<const uint64_t, WORDS_448>::data
    - Botan::comba_mul
    - std::array::data
    linkageType: ''
    returnType: void
    signature: "void gf_mul(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::comba_sqr
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:149,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Botan::gf_square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 7
    functionsReached:
    - Botan::reduce_after_mul
    - Botan::comba_sqr
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    linkageType: ''
    returnType: void
    signature: void gf_square(std::span<uint64_t, WORDS_448> out, std::span<const
      uint64_t, WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:159,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:160,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:161,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:162,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:163,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:164,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:165,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 169
    functionName: Botan::gf_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::reduce_after_add
    - Botan::word_add
    linkageType: ''
    returnType: void
    signature: "void gf_add(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:183,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:184,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:185,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:186,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:187,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:188,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:189,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:196,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:197,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:198,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:199,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:200,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:201,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:202,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:208,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:209,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:210,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 215
    functionName: Botan::gf_sub
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    linkageType: ''
    returnType: void
    signature: "void gf_sub(std::span<uint64_t, WORDS_448> out,\n            std::span<const
      uint64_t, WORDS_448> a,\n            std::span<const uint64_t, WORDS_448> b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:219,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - a
    - n
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: Botan::gf_sqr_n
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 7
    functionsReached:
    - Botan::gf_square
    linkageType: ''
    returnType: void
    signature: void gf_sqr_n(std::span<uint64_t, WORDS_448> out, std::span<const uint64_t,
      WORDS_448> a, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:250,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:258,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:259,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:263,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:264,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:268,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:269,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:273,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:274,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:278,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:282,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:286,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:287,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:291,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:292,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:296,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:297,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:300,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:301,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:304,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 3
    argNames:
    - x222
    - x223
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 306
    functionName: Botan::gf_pow_2_222m1
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 4
    functionsReached:
    - Botan::gf_sqr_n
    - Botan::gf_mul
    - Botan::gf_square
    linkageType: ''
    returnType: void
    signature: "void gf_pow_2_222m1(std::span<uint64_t, WORDS_448> x222,\n                    std::span<uint64_t,
      WORDS_448> x223,\n                    std::span<const uint64_t, WORDS_448> a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_pow_2_222m1
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:319,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:323,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:325,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: Botan::gf_inv
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    - Botan::gf_sqr_n
    - Botan::gf_pow_2_222m1
    linkageType: ''
    returnType: void
    signature: void gf_inv(std::span<uint64_t, WORDS_448> out, std::span<const uint64_t,
      WORDS_448> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:347,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 352
    functionName: Botan::to_canonical
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    - std::array::data
    - std::span<const uint64_t, WORDS_448>::data
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: std::array<uint64_t, WORDS_448>
    signature: std::array<uint64_t, WORDS_448> to_canonical(std::span<const uint64_t,
      WORDS_448> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: Botan::Gf448Elem::Gf448Elem
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 4
    functionsReached:
    - load_le
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::Gf448Elem(std::span<const uint8_t, BYTES_448> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - least_sig_word
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: Botan::Gf448Elem::Gf448Elem
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 4
    functionsReached:
    - clear_mem
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::Gf448Elem(uint64_t least_sig_word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:366,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: Botan::Gf448Elem::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 1
    functionsReached:
    - to_canonical
    - store_le
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::to_bytes(std::span<uint8_t, BYTES_448> out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Gf448Elem::to_bytes
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: Botan::Gf448Elem::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 2
    functionsReached:
    - Botan::Gf448Elem::to_bytes
    linkageType: ''
    returnType: std::array<uint8_t, BYTES_448>
    signature: std::array<uint8_t, BYTES_448> Gf448Elem::to_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mask
    - ' other'
    argTypes:
    - CT::Mask<uint64_t>
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: Botan::Gf448Elem::ct_cond_swap
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - CT::Mask<uint64_t>::conditional_swap
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::ct_cond_swap(CT::Mask<uint64_t> mask, Gf448Elem& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::select_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:382,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:382,1
    - Dst: m_x::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:382,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mask
    - ' other'
    argTypes:
    - CT::Mask<uint64_t>
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: Botan::Gf448Elem::ct_cond_assign
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - CT::Mask<uint64_t>::select_n
    - data
    - m_x::data
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::ct_cond_assign(CT::Mask<uint64_t> mask, const Gf448Elem&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: Gf448Elem::operator+(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - gf_add
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem Gf448Elem::operator+(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 395
    functionName: Gf448Elem::operator-(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - gf_sub
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem Gf448Elem::operator-(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: Gf448Elem::operator-() const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - gf_sub
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem Gf448Elem::operator-() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 407
    functionName: Gf448Elem::operator*(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - gf_mul
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem Gf448Elem::operator*(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_inv
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:411,1
    - Dst: gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: Gf448Elem::operator/(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - gf_inv
    - gf_mul
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem Gf448Elem::operator/(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:417,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:418,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:419,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:419,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: Gf448Elem::operator==(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - to_canonical
    - Botan::CT::is_equal
    linkageType: ''
    returnType: bool
    signature: bool Gf448Elem::operator==(const Gf448Elem& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:423,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:425,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: Botan::Gf448Elem::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - to_canonical
    - auto::data
    - Botan::CT::all_zeros
    linkageType: ''
    returnType: bool
    signature: bool Gf448Elem::is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: Botan::Gf448Elem::is_odd
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - to_canonical
    linkageType: ''
    returnType: bool
    signature: bool Gf448Elem::is_odd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:434,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:435,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:436,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:436,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: Botan::Gf448Elem::bytes_are_canonical_representation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - to_canonical
    - Botan::CT::is_equal
    - load_le
    linkageType: ''
    returnType: bool
    signature: bool Gf448Elem::bytes_are_canonical_representation(std::span<const
      uint8_t, BYTES_448> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_a24
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:441,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:441,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: Botan::mul_a24
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - words
    - Gf448Elem::words
    - Botan::gf_mul_a24
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem mul_a24(const Gf448Elem& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:447,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:447,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: Botan::square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - words
    - Gf448Elem::words
    - Botan::gf_square
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem square(const Gf448Elem& elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_pow_2_222m1
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:457,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:457,1
    - Dst: Botan::gf_sqr_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:460,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:460,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:461,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:461,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 463
    functionName: Botan::root
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - words
    - Botan::gf_mul
    - Botan::gf_pow_2_222m1
    - Botan::gf_sqr_n
    - Gf448Elem::words
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem root(const Gf448Elem& elem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:24,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:24,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:25,1
    - Dst: std::array<word, 1>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:25,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:28,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:28,1
    - Dst: word
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:30,1
    - Dst: Botan::bigint_shr2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::span<const word, S>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const word, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: Botan::div_mod_2_446
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - std::span<const word, S>::size
    - std::make_pair
    - std::span
    - word
    - std::span<const word, S>::data
    - std::array<word, 1>
    - std::array::data
    - Botan::bigint_shr2
    linkageType: ''
    returnType: auto
    signature: auto div_mod_2_446(std::span<const word, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan::c_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: std::array<word, WORDS_C>
    signature: std::array<word, WORDS_C> c_words()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: Botan::big_l_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: std::array<word, Scalar448::WORDS> big_l_words()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::c_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:61,1
    - Dst: Botan::bigint_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const word, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: Botan::mul_c
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::c_words
    - std::array::size
    - std::span<const word, S>::size
    - std::span<const word, S>::data
    - std::array::data
    - Botan::bigint_mul
    linkageType: ''
    returnType: std::array<word, S + WORDS_C>
    signature: std::array<word, S + WORDS_C> mul_c(std::span<const word, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:73,1
    - Dst: Botan::bigint_add2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::span<const word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::span<const word, Scalar448::WORDS>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:75,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - std::span<const word, Scalar448::WORDS>
    - std::span<const word, Scalar448::WORDS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: Botan::add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 3
    functionsReached:
    - std::span<const word, Scalar448::WORDS>::size
    - std::span<const word, Scalar448::WORDS>::data
    - BOTAN_ASSERT
    - Botan::copy_mem
    - std::array::size
    - std::array::data
    - Botan::bigint_add2
    - Botan::CT::unpoison
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: "std::array<word, Scalar448::WORDS> add(std::span<const word, Scalar448::WORDS>
      x,\n                                       std::span<const word, Scalar448::WORDS>
      y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:87,1
    - Dst: Botan::big_l_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:88,1
    - Dst: Botan::bigint_sub2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:91,1
    - Dst: auto::select_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::span<word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::span<word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: auto::as_choice
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<word, Scalar448::WORDS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: Botan::ct_subtract_L_if_bigger
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - std::span<word, Scalar448::WORDS>::data
    - Botan::bigint_sub2
    - auto::data
    - auto::size
    - Botan::sha512_msg_expand
    - Botan::copy_mem
    - Botan::big_l_words
    - std::array::size
    - auto::as_choice
    - std::array::data
    - auto::select_n
    linkageType: ''
    returnType: CT::Choice
    signature: CT::Choice ct_subtract_L_if_bigger(std::span<word, Scalar448::WORDS>
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::words_for_bits
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:98,1
    - Dst: Botan::words_for_bits
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:99,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:101,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:101,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::bytes_to_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::words_for_bits
    - Botan::load_le
    - std::span
    linkageType: ''
    returnType: std::array<word, words_for_bits(S * 8)>
    signature: std::array<word, words_for_bits(S * 8)> bytes_to_words(std::span<const
      uint8_t, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:114,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:114,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:119,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:119,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:120,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:120,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:121,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:124,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:124,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:125,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:125,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:126,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:129,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:129,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:130,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:130,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:131,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::array<word, WORDS_REDUCE_SZ>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: Botan::ct_reduce_mod_L
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::mul_c
    - Botan::data
    - std::span
    - Botan::ct_subtract_L_if_bigger
    - Botan::size
    - BOTAN_ASSERT_NOMSG
    - Botan::add
    - Botan::CT::all_zeros
    - Botan::div_mod_2_446
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: std::array<word, Scalar448::WORDS> ct_reduce_mod_L(const std::array<word,
      WORDS_REDUCE_SZ> x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:24,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:24,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:25,1
    - Dst: std::array<word, 1>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:25,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:28,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:28,1
    - Dst: word
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:30,1
    - Dst: Botan::bigint_shr2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::span<const word, S>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const word, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: Botan::div_mod_2_446
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 1
    functionsReached:
    - Botan::copy_mem
    - std::span<const word, S>::size
    - std::make_pair
    - std::span
    - word
    - std::span<const word, S>::data
    - std::array<word, 1>
    - std::array::data
    - Botan::bigint_shr2
    linkageType: ''
    returnType: auto
    signature: auto div_mod_2_446(std::span<const word, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan::c_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: std::array<word, WORDS_C>
    signature: std::array<word, WORDS_C> c_words()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: Botan::big_l_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: std::array<word, Scalar448::WORDS> big_l_words()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::c_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:61,1
    - Dst: Botan::bigint_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const word, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: Botan::mul_c
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 1
    functionsReached:
    - Botan::c_words
    - std::array::size
    - std::span<const word, S>::size
    - std::span<const word, S>::data
    - std::array::data
    - Botan::bigint_mul
    linkageType: ''
    returnType: std::array<word, S + WORDS_C>
    signature: std::array<word, S + WORDS_C> mul_c(std::span<const word, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:73,1
    - Dst: Botan::bigint_add2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::span<const word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::span<const word, Scalar448::WORDS>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:75,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - std::span<const word, Scalar448::WORDS>
    - std::span<const word, Scalar448::WORDS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: Botan::add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 4
    functionsReached:
    - std::span<const word, Scalar448::WORDS>::size
    - std::span<const word, Scalar448::WORDS>::data
    - BOTAN_ASSERT
    - Botan::copy_mem
    - std::array::size
    - std::array::data
    - Botan::bigint_add2
    - Botan::CT::unpoison
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: "std::array<word, Scalar448::WORDS> add(std::span<const word, Scalar448::WORDS>
      x,\n                                       std::span<const word, Scalar448::WORDS>
      y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:87,1
    - Dst: Botan::big_l_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:88,1
    - Dst: Botan::bigint_sub2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:91,1
    - Dst: auto::select_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::span<word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::span<word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: auto::as_choice
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<word, Scalar448::WORDS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: Botan::ct_subtract_L_if_bigger
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 1
    functionsReached:
    - std::span<word, Scalar448::WORDS>::data
    - Botan::bigint_sub2
    - auto::data
    - auto::size
    - Botan::sha512_msg_expand
    - Botan::copy_mem
    - Botan::big_l_words
    - std::array::size
    - auto::as_choice
    - std::array::data
    - auto::select_n
    linkageType: ''
    returnType: CT::Choice
    signature: CT::Choice ct_subtract_L_if_bigger(std::span<word, Scalar448::WORDS>
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::words_for_bits
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:98,1
    - Dst: Botan::words_for_bits
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:99,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:101,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:101,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::bytes_to_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::words_for_bits
    - Botan::load_le
    - std::span
    linkageType: ''
    returnType: std::array<word, words_for_bits(S * 8)>
    signature: std::array<word, words_for_bits(S * 8)> bytes_to_words(std::span<const
      uint8_t, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:114,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:114,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:119,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:119,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:120,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:120,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:121,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:124,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:124,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:125,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:125,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:126,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:129,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:129,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:130,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:130,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:131,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::array<word, WORDS_REDUCE_SZ>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: Botan::ct_reduce_mod_L
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::mul_c
    - Botan::data
    - std::span
    - Botan::ct_subtract_L_if_bigger
    - Botan::size
    - BOTAN_ASSERT_NOMSG
    - Botan::add
    - Botan::CT::all_zeros
    - Botan::div_mod_2_446
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: std::array<word, Scalar448::WORDS> ct_reduce_mod_L(const std::array<word,
      WORDS_REDUCE_SZ> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:149,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:149,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:151,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:151,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:151,1
    - Dst: bytes_to_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:153,1
    - Dst: std::span<const uint8_t, 114>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:153,1
    - Dst: ct_reduce_mod_L
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - in_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: Botan::Scalar448::Scalar448
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - std::span
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t, 114>
    - bytes_to_words
    - std::span<const uint8_t>::size
    - ct_reduce_mod_L
    linkageType: ''
    returnType: void
    signature: void Scalar448::Scalar448(std::span<const uint8_t> in_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bit_pos
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: Botan::Scalar448::get_bit
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: bool
    signature: bool Scalar448::get_bit(size_t bit_pos) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:164,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:173,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - starting_pos
    - width
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 186
    functionName: Botan::Scalar448::get_window
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - min
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Scalar448::get_window(size_t starting_pos, size_t width) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:189,1
    - Dst: ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:190,1
    - Dst: Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Scalar448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: Scalar448::operator+(const Scalar448& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - add
    - Scalar448
    - ct_subtract_L_if_bigger
    linkageType: ''
    returnType: Scalar448
    signature: Scalar448 Scalar448::operator+(const Scalar448& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bigint_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:197,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:197,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:198,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:199,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:200,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:201,1
    - Dst: m_scalar_words::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:202,1
    - Dst: m_scalar_words::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:203,1
    - Dst: m_scalar_words::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:204,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:205,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:206,1
    - Dst: Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:208,1
    - Dst: ct_reduce_mod_L
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Scalar448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: Scalar448::operator*(const Scalar448& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - data
    - m_scalar_words::data
    - std::array::size
    - Scalar448
    - size
    - m_scalar_words::size
    - std::array::data
    - bigint_mul
    - ct_reduce_mod_L
    linkageType: ''
    returnType: Scalar448
    signature: Scalar448 Scalar448::operator*(const Scalar448& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:212,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:212,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:214,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:215,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:215,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:215,1
    - Dst: bytes_to_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:216,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:216,1
    - Dst: Botan::CT::Mask::from_choice
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:217,1
    - Dst: ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:217,1
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: Botan::Scalar448::bytes_are_reduced
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - as_bool
    - std::span<const uint8_t>::subspan
    - auto::data
    - auto::size
    - ct_subtract_L_if_bigger
    - std::span<const uint8_t>::first
    - BOTAN_ARG_CHECK
    - bytes_to_words
    - Botan::CT::Mask::from_choice
    - std::span<const uint8_t>::size
    - Botan::CT::all_zeros
    linkageType: ''
    returnType: bool
    signature: bool Scalar448::bytes_are_reduced(std::span<const uint8_t> x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:24,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:24,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:25,1
    - Dst: std::array<word, 1>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:25,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:28,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:28,1
    - Dst: word
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:30,1
    - Dst: Botan::bigint_shr2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::span<const word, S>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const word, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: Botan::div_mod_2_446
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 2
    functionsReached:
    - Botan::copy_mem
    - std::span<const word, S>::size
    - std::make_pair
    - std::span
    - word
    - std::span<const word, S>::data
    - std::array<word, 1>
    - std::array::data
    - Botan::bigint_shr2
    linkageType: ''
    returnType: auto
    signature: auto div_mod_2_446(std::span<const word, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan::c_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 2
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: std::array<word, WORDS_C>
    signature: std::array<word, WORDS_C> c_words()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: Botan::big_l_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 2
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: std::array<word, Scalar448::WORDS> big_l_words()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::c_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:61,1
    - Dst: Botan::bigint_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const word, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: Botan::mul_c
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 2
    functionsReached:
    - Botan::c_words
    - std::array::size
    - std::span<const word, S>::size
    - std::span<const word, S>::data
    - std::array::data
    - Botan::bigint_mul
    linkageType: ''
    returnType: std::array<word, S + WORDS_C>
    signature: std::array<word, S + WORDS_C> mul_c(std::span<const word, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:73,1
    - Dst: Botan::bigint_add2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::span<const word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::span<const word, Scalar448::WORDS>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:75,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - std::span<const word, Scalar448::WORDS>
    - std::span<const word, Scalar448::WORDS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: Botan::add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 5
    functionsReached:
    - std::span<const word, Scalar448::WORDS>::size
    - std::span<const word, Scalar448::WORDS>::data
    - BOTAN_ASSERT
    - Botan::copy_mem
    - std::array::size
    - std::array::data
    - Botan::bigint_add2
    - Botan::CT::unpoison
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: "std::array<word, Scalar448::WORDS> add(std::span<const word, Scalar448::WORDS>
      x,\n                                       std::span<const word, Scalar448::WORDS>
      y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:87,1
    - Dst: Botan::big_l_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:88,1
    - Dst: Botan::bigint_sub2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:91,1
    - Dst: auto::select_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::span<word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::span<word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: auto::as_choice
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<word, Scalar448::WORDS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: Botan::ct_subtract_L_if_bigger
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 2
    functionsReached:
    - std::span<word, Scalar448::WORDS>::data
    - Botan::bigint_sub2
    - auto::data
    - auto::size
    - Botan::sha512_msg_expand
    - Botan::copy_mem
    - Botan::big_l_words
    - std::array::size
    - auto::as_choice
    - std::array::data
    - auto::select_n
    linkageType: ''
    returnType: CT::Choice
    signature: CT::Choice ct_subtract_L_if_bigger(std::span<word, Scalar448::WORDS>
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::words_for_bits
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:98,1
    - Dst: Botan::words_for_bits
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:99,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:101,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:101,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::bytes_to_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::words_for_bits
    - Botan::load_le
    - std::span
    linkageType: ''
    returnType: std::array<word, words_for_bits(S * 8)>
    signature: std::array<word, words_for_bits(S * 8)> bytes_to_words(std::span<const
      uint8_t, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:114,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:114,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:119,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:119,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:120,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:120,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:121,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:124,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:124,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:125,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:125,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:126,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:129,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:129,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:130,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:130,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:131,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::array<word, WORDS_REDUCE_SZ>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: Botan::ct_reduce_mod_L
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::mul_c
    - Botan::data
    - std::span
    - Botan::ct_subtract_L_if_bigger
    - Botan::size
    - BOTAN_ASSERT_NOMSG
    - Botan::add
    - Botan::CT::all_zeros
    - Botan::div_mod_2_446
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: std::array<word, Scalar448::WORDS> ct_reduce_mod_L(const std::array<word,
      WORDS_REDUCE_SZ> x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:24,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:24,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:25,1
    - Dst: std::array<word, 1>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:25,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:28,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:28,1
    - Dst: word
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:30,1
    - Dst: Botan::bigint_shr2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::span<const word, S>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:33,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const word, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: Botan::div_mod_2_446
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 3
    functionsReached:
    - Botan::copy_mem
    - std::span<const word, S>::size
    - std::make_pair
    - std::span
    - word
    - std::span<const word, S>::data
    - std::array<word, 1>
    - std::array::data
    - Botan::bigint_shr2
    linkageType: ''
    returnType: auto
    signature: auto div_mod_2_446(std::span<const word, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan::c_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 3
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: std::array<word, WORDS_C>
    signature: std::array<word, WORDS_C> c_words()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: Botan::big_l_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 3
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: std::array<word, Scalar448::WORDS> big_l_words()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::c_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:61,1
    - Dst: Botan::bigint_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::span<const word, S>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const word, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: Botan::mul_c
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 3
    functionsReached:
    - Botan::c_words
    - std::array::size
    - std::span<const word, S>::size
    - std::span<const word, S>::data
    - std::array::data
    - Botan::bigint_mul
    linkageType: ''
    returnType: std::array<word, S + WORDS_C>
    signature: std::array<word, S + WORDS_C> mul_c(std::span<const word, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:73,1
    - Dst: Botan::bigint_add2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::span<const word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: std::span<const word, Scalar448::WORDS>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:74,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:75,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - std::span<const word, Scalar448::WORDS>
    - std::span<const word, Scalar448::WORDS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: Botan::add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 6
    functionsReached:
    - std::span<const word, Scalar448::WORDS>::size
    - std::span<const word, Scalar448::WORDS>::data
    - BOTAN_ASSERT
    - Botan::copy_mem
    - std::array::size
    - std::array::data
    - Botan::bigint_add2
    - Botan::CT::unpoison
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: "std::array<word, Scalar448::WORDS> add(std::span<const word, Scalar448::WORDS>
      x,\n                                       std::span<const word, Scalar448::WORDS>
      y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:87,1
    - Dst: Botan::big_l_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:88,1
    - Dst: Botan::bigint_sub2
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:90,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:91,1
    - Dst: auto::select_n
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::span<word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::span<word, Scalar448::WORDS>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:92,1
    - Dst: auto::as_choice
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<word, Scalar448::WORDS>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: Botan::ct_subtract_L_if_bigger
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 3
    functionsReached:
    - std::span<word, Scalar448::WORDS>::data
    - Botan::bigint_sub2
    - auto::data
    - auto::size
    - Botan::sha512_msg_expand
    - Botan::copy_mem
    - Botan::big_l_words
    - std::array::size
    - auto::as_choice
    - std::array::data
    - auto::select_n
    linkageType: ''
    returnType: CT::Choice
    signature: CT::Choice ct_subtract_L_if_bigger(std::span<word, Scalar448::WORDS>
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::words_for_bits
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:98,1
    - Dst: Botan::words_for_bits
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:99,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:101,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:101,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, S>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::bytes_to_words
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::words_for_bits
    - Botan::load_le
    - std::span
    linkageType: ''
    returnType: std::array<word, words_for_bits(S * 8)>
    signature: std::array<word, words_for_bits(S * 8)> bytes_to_words(std::span<const
      uint8_t, S> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:114,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:114,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:119,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:119,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:120,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:120,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:121,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:124,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:124,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:125,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:125,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:126,1
    - Dst: Botan::mul_c
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:129,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:129,1
    - Dst: Botan::div_mod_2_446
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:130,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:130,1
    - Dst: Botan::add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:131,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:133,1
    - Dst: Botan::ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::array<word, WORDS_REDUCE_SZ>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: Botan::ct_reduce_mod_L
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - Botan::mul_c
    - Botan::data
    - std::span
    - Botan::ct_subtract_L_if_bigger
    - Botan::size
    - BOTAN_ASSERT_NOMSG
    - Botan::add
    - Botan::CT::all_zeros
    - Botan::div_mod_2_446
    linkageType: ''
    returnType: std::array<word, Scalar448::WORDS>
    signature: std::array<word, Scalar448::WORDS> ct_reduce_mod_L(const std::array<word,
      WORDS_REDUCE_SZ> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:149,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:149,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:151,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:151,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:151,1
    - Dst: bytes_to_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:153,1
    - Dst: std::span<const uint8_t, 114>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:153,1
    - Dst: ct_reduce_mod_L
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - in_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: Botan::Scalar448::Scalar448
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - std::span
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t, 114>
    - bytes_to_words
    - std::span<const uint8_t>::size
    - ct_reduce_mod_L
    linkageType: ''
    returnType: void
    signature: void Scalar448::Scalar448(std::span<const uint8_t> in_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bit_pos
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: Botan::Scalar448::get_bit
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: bool
    signature: bool Scalar448::get_bit(size_t bit_pos) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:164,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:173,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - starting_pos
    - width
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 186
    functionName: Botan::Scalar448::get_window
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - min
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Scalar448::get_window(size_t starting_pos, size_t width) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:189,1
    - Dst: ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:190,1
    - Dst: Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Scalar448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: Scalar448::operator+(const Scalar448& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - add
    - Scalar448
    - ct_subtract_L_if_bigger
    linkageType: ''
    returnType: Scalar448
    signature: Scalar448 Scalar448::operator+(const Scalar448& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bigint_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:197,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:197,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:198,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:199,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:200,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:201,1
    - Dst: m_scalar_words::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:202,1
    - Dst: m_scalar_words::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:203,1
    - Dst: m_scalar_words::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:204,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:205,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:206,1
    - Dst: Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:208,1
    - Dst: ct_reduce_mod_L
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Scalar448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: Scalar448::operator*(const Scalar448& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - data
    - m_scalar_words::data
    - std::array::size
    - Scalar448
    - size
    - m_scalar_words::size
    - std::array::data
    - bigint_mul
    - ct_reduce_mod_L
    linkageType: ''
    returnType: Scalar448
    signature: Scalar448 Scalar448::operator*(const Scalar448& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:212,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:212,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:214,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:215,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:215,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:215,1
    - Dst: bytes_to_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:216,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:216,1
    - Dst: Botan::CT::Mask::from_choice
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:217,1
    - Dst: ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:217,1
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: Botan::Scalar448::bytes_are_reduced
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - as_bool
    - std::span<const uint8_t>::subspan
    - auto::data
    - auto::size
    - ct_subtract_L_if_bigger
    - std::span<const uint8_t>::first
    - BOTAN_ARG_CHECK
    - bytes_to_words
    - Botan::CT::Mask::from_choice
    - std::span<const uint8_t>::size
    - Botan::CT::all_zeros
    linkageType: ''
    returnType: bool
    signature: bool Scalar448::bytes_are_reduced(std::span<const uint8_t> x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::x448_basepoint
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:23,1
    - Dst: Botan::decode_scalar
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:23,1
    - Dst: Botan::encode_point
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:24,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mypublic
    - secret
    argTypes:
    - std::span<uint8_t, X448_LEN>
    - std::span<const uint8_t, X448_LEN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: Botan::x448_basepoint_from_data
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::encode_point
    - Botan::decode_scalar
    - Botan::x448_basepoint
    linkageType: ''
    returnType: void
    signature: void x448_basepoint_from_data(std::span<uint8_t, X448_LEN> mypublic,
      std::span<const uint8_t, X448_LEN> secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:30,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:31,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: Botan::ber_decode_sk
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - secure_vector::size
    - Botan::BER_Decoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ber_decode_sk(std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::x448_basepoint
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:23,1
    - Dst: Botan::decode_scalar
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:23,1
    - Dst: Botan::encode_point
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:24,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mypublic
    - secret
    argTypes:
    - std::span<uint8_t, X448_LEN>
    - std::span<const uint8_t, X448_LEN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: Botan::x448_basepoint_from_data
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy_mem
    - Botan::encode_point
    - Botan::decode_scalar
    - Botan::x448_basepoint
    linkageType: ''
    returnType: void
    signature: void x448_basepoint_from_data(std::span<uint8_t, X448_LEN> mypublic,
      std::span<const uint8_t, X448_LEN> secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:30,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:31,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: Botan::ber_decode_sk
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - secure_vector::size
    - Botan::BER_Decoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ber_decode_sk(std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:38,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::X448_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - object_identifier
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier X448_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: Botan::X448_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool X448_PublicKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:46,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::X448_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> X448_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X448_PublicKey: